@vkontakte/videoplayer-core 2.0.135-beta.2 → 2.0.135-dev.02bf1429.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/es2024.esm.js CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @vkontakte/videoplayer-core v2.0.135-beta.2
3
- * Fri, 27 Jun 2025 12:26:17 GMT
2
+ * @vkontakte/videoplayer-core v2.0.135-dev.02bf1429.0
3
+ * Tue, 08 Jul 2025 08:01:11 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/2-0-135/doc/
5
5
  */
6
- var xx=Object.create;var xp=Object.defineProperty;var Ex=Object.getOwnPropertyDescriptor;var wx=Object.getOwnPropertyNames;var Ax=Object.getPrototypeOf,Px=Object.prototype.hasOwnProperty;var m=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var kx=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of wx(e))!Px.call(s,r)&&r!==t&&xp(s,r,{get:()=>e[r],enumerable:!(i=Ex(e,r))||i.enumerable});return s};var C=(s,e,t)=>(t=s!=null?xx(Ax(s)):{},kx(e||!s||!s.__esModule?xp(t,"default",{value:s,enumerable:!0}):t,s));var ve=m((Ru,wp)=>{"use strict";var Yr=function(s){return s&&s.Math===Math&&s};wp.exports=Yr(typeof globalThis=="object"&&globalThis)||Yr(typeof window=="object"&&window)||Yr(typeof self=="object"&&self)||Yr(typeof global=="object"&&global)||Yr(typeof Ru=="object"&&Ru)||function(){return this}()||Function("return this")()});var Le=m((HV,Ap)=>{"use strict";Ap.exports=function(s){try{return!!s()}catch{return!0}}});var Kr=m((zV,Pp)=>{"use strict";var Rx=Le();Pp.exports=!Rx(function(){var s=function(){}.bind();return typeof s!="function"||s.hasOwnProperty("prototype")})});var Mu=m((QV,Lp)=>{"use strict";var Mx=Kr(),Mp=Function.prototype,kp=Mp.apply,Rp=Mp.call;Lp.exports=typeof Reflect=="object"&&Reflect.apply||(Mx?Rp.bind(kp):function(){return Rp.apply(kp,arguments)})});var Pe=m((GV,Dp)=>{"use strict";var Bp=Kr(),$p=Function.prototype,Lu=$p.call,Lx=Bp&&$p.bind.bind(Lu,Lu);Dp.exports=Bp?Lx:function(s){return function(){return Lu.apply(s,arguments)}}});var Ai=m((WV,Vp)=>{"use strict";var Cp=Pe(),Bx=Cp({}.toString),$x=Cp("".slice);Vp.exports=function(s){return $x(Bx(s),8,-1)}});var Bu=m((YV,Op)=>{"use strict";var Dx=Ai(),Cx=Pe();Op.exports=function(s){if(Dx(s)==="Function")return Cx(s)}});var me=m((KV,_p)=>{"use strict";var $u=typeof document=="object"&&document.all;_p.exports=typeof $u>"u"&&$u!==void 0?function(s){return typeof s=="function"||s===$u}:function(s){return typeof s=="function"}});var ut=m((XV,Fp)=>{"use strict";var Vx=Le();Fp.exports=!Vx(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var lt=m((JV,Np)=>{"use strict";var Ox=Kr(),mn=Function.prototype.call;Np.exports=Ox?mn.bind(mn):function(){return mn.apply(mn,arguments)}});var Du=m(jp=>{"use strict";var Up={}.propertyIsEnumerable,qp=Object.getOwnPropertyDescriptor,_x=qp&&!Up.call({1:2},1);jp.f=_x?function(e){var t=qp(this,e);return!!t&&t.enumerable}:Up});var Xr=m((eO,Hp)=>{"use strict";Hp.exports=function(s,e){return{enumerable:!(s&1),configurable:!(s&2),writable:!(s&4),value:e}}});var Qp=m((tO,zp)=>{"use strict";var Fx=Pe(),Nx=Le(),Ux=Ai(),Cu=Object,qx=Fx("".split);zp.exports=Nx(function(){return!Cu("z").propertyIsEnumerable(0)})?function(s){return Ux(s)==="String"?qx(s,""):Cu(s)}:Cu});var Zi=m((iO,Gp)=>{"use strict";Gp.exports=function(s){return s==null}});var ui=m((rO,Wp)=>{"use strict";var jx=Zi(),Hx=TypeError;Wp.exports=function(s){if(jx(s))throw new Hx("Can't call method on "+s);return s}});var Pi=m((sO,Yp)=>{"use strict";var zx=Qp(),Qx=ui();Yp.exports=function(s){return zx(Qx(s))}});var ct=m((aO,Kp)=>{"use strict";var Gx=me();Kp.exports=function(s){return typeof s=="object"?s!==null:Gx(s)}});var er=m((nO,Xp)=>{"use strict";Xp.exports={}});var Yt=m((oO,Zp)=>{"use strict";var Vu=er(),Ou=ve(),Wx=me(),Jp=function(s){return Wx(s)?s:void 0};Zp.exports=function(s,e){return arguments.length<2?Jp(Vu[s])||Jp(Ou[s]):Vu[s]&&Vu[s][e]||Ou[s]&&Ou[s][e]}});var Jr=m((uO,eh)=>{"use strict";var Yx=Pe();eh.exports=Yx({}.isPrototypeOf)});var ki=m((lO,rh)=>{"use strict";var Kx=ve(),th=Kx.navigator,ih=th&&th.userAgent;rh.exports=ih?String(ih):""});var Fu=m((cO,lh)=>{"use strict";var uh=ve(),_u=ki(),sh=uh.process,ah=uh.Deno,nh=sh&&sh.versions||ah&&ah.version,oh=nh&&nh.v8,xt,bn;oh&&(xt=oh.split("."),bn=xt[0]>0&&xt[0]<4?1:+(xt[0]+xt[1]));!bn&&_u&&(xt=_u.match(/Edge\/(\d+)/),(!xt||xt[1]>=74)&&(xt=_u.match(/Chrome\/(\d+)/),xt&&(bn=+xt[1])));lh.exports=bn});var Nu=m((dO,dh)=>{"use strict";var ch=Fu(),Xx=Le(),Jx=ve(),Zx=Jx.String;dh.exports=!!Object.getOwnPropertySymbols&&!Xx(function(){var s=Symbol("symbol detection");return!Zx(s)||!(Object(s)instanceof Symbol)||!Symbol.sham&&ch&&ch<41})});var Uu=m((pO,ph)=>{"use strict";var eE=Nu();ph.exports=eE&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var qu=m((hO,hh)=>{"use strict";var tE=Yt(),iE=me(),rE=Jr(),sE=Uu(),aE=Object;hh.exports=sE?function(s){return typeof s=="symbol"}:function(s){var e=tE("Symbol");return iE(e)&&rE(e.prototype,aE(s))}});var Zr=m((fO,fh)=>{"use strict";var nE=String;fh.exports=function(s){try{return nE(s)}catch{return"Object"}}});var Bt=m((mO,mh)=>{"use strict";var oE=me(),uE=Zr(),lE=TypeError;mh.exports=function(s){if(oE(s))return s;throw new lE(uE(s)+" is not a function")}});var es=m((bO,bh)=>{"use strict";var cE=Bt(),dE=Zi();bh.exports=function(s,e){var t=s[e];return dE(t)?void 0:cE(t)}});var Sh=m((gO,gh)=>{"use strict";var ju=lt(),Hu=me(),zu=ct(),pE=TypeError;gh.exports=function(s,e){var t,i;if(e==="string"&&Hu(t=s.toString)&&!zu(i=ju(t,s))||Hu(t=s.valueOf)&&!zu(i=ju(t,s))||e!=="string"&&Hu(t=s.toString)&&!zu(i=ju(t,s)))return i;throw new pE("Can't convert object to primitive value")}});var Et=m((SO,vh)=>{"use strict";vh.exports=!0});var Ih=m((vO,Th)=>{"use strict";var yh=ve(),hE=Object.defineProperty;Th.exports=function(s,e){try{hE(yh,s,{value:e,configurable:!0,writable:!0})}catch{yh[s]=e}return e}});var ts=m((yO,wh)=>{"use strict";var fE=Et(),mE=ve(),bE=Ih(),xh="__core-js_shared__",Eh=wh.exports=mE[xh]||bE(xh,{});(Eh.versions||(Eh.versions=[])).push({version:"3.38.0",mode:fE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var Qu=m((TO,Ph)=>{"use strict";var Ah=ts();Ph.exports=function(s,e){return Ah[s]||(Ah[s]=e||{})}});var tr=m((IO,kh)=>{"use strict";var gE=ui(),SE=Object;kh.exports=function(s){return SE(gE(s))}});var wt=m((xO,Rh)=>{"use strict";var vE=Pe(),yE=tr(),TE=vE({}.hasOwnProperty);Rh.exports=Object.hasOwn||function(e,t){return TE(yE(e),t)}});var Gu=m((EO,Mh)=>{"use strict";var IE=Pe(),xE=0,EE=Math.random(),wE=IE(1 .toString);Mh.exports=function(s){return"Symbol("+(s===void 0?"":s)+")_"+wE(++xE+EE,36)}});var Be=m((wO,Bh)=>{"use strict";var AE=ve(),PE=Qu(),Lh=wt(),kE=Gu(),RE=Nu(),ME=Uu(),ir=AE.Symbol,Wu=PE("wks"),LE=ME?ir.for||ir:ir&&ir.withoutSetter||kE;Bh.exports=function(s){return Lh(Wu,s)||(Wu[s]=RE&&Lh(ir,s)?ir[s]:LE("Symbol."+s)),Wu[s]}});var Vh=m((AO,Ch)=>{"use strict";var BE=lt(),$h=ct(),Dh=qu(),$E=es(),DE=Sh(),CE=Be(),VE=TypeError,OE=CE("toPrimitive");Ch.exports=function(s,e){if(!$h(s)||Dh(s))return s;var t=$E(s,OE),i;if(t){if(e===void 0&&(e="default"),i=BE(t,s,e),!$h(i)||Dh(i))return i;throw new VE("Can't convert object to primitive value")}return e===void 0&&(e="number"),DE(s,e)}});var Yu=m((PO,Oh)=>{"use strict";var _E=Vh(),FE=qu();Oh.exports=function(s){var e=_E(s,"string");return FE(e)?e:e+""}});var gn=m((kO,Fh)=>{"use strict";var NE=ve(),_h=ct(),Ku=NE.document,UE=_h(Ku)&&_h(Ku.createElement);Fh.exports=function(s){return UE?Ku.createElement(s):{}}});var Xu=m((RO,Nh)=>{"use strict";var qE=ut(),jE=Le(),HE=gn();Nh.exports=!qE&&!jE(function(){return Object.defineProperty(HE("div"),"a",{get:function(){return 7}}).a!==7})});var jh=m(qh=>{"use strict";var zE=ut(),QE=lt(),GE=Du(),WE=Xr(),YE=Pi(),KE=Yu(),XE=wt(),JE=Xu(),Uh=Object.getOwnPropertyDescriptor;qh.f=zE?Uh:function(e,t){if(e=YE(e),t=KE(t),JE)try{return Uh(e,t)}catch{}if(XE(e,t))return WE(!QE(GE.f,e,t),e[t])}});var Ju=m((LO,Hh)=>{"use strict";var ZE=Le(),ew=me(),tw=/#|\.prototype\./,is=function(s,e){var t=rw[iw(s)];return t===aw?!0:t===sw?!1:ew(e)?ZE(e):!!e},iw=is.normalize=function(s){return String(s).replace(tw,".").toLowerCase()},rw=is.data={},sw=is.NATIVE="N",aw=is.POLYFILL="P";Hh.exports=is});var rr=m((BO,Qh)=>{"use strict";var zh=Bu(),nw=Bt(),ow=Kr(),uw=zh(zh.bind);Qh.exports=function(s,e){return nw(s),e===void 0?s:ow?uw(s,e):function(){return s.apply(e,arguments)}}});var Zu=m(($O,Gh)=>{"use strict";var lw=ut(),cw=Le();Gh.exports=lw&&cw(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var $t=m((DO,Wh)=>{"use strict";var dw=ct(),pw=String,hw=TypeError;Wh.exports=function(s){if(dw(s))return s;throw new hw(pw(s)+" is not an object")}});var Ri=m(Kh=>{"use strict";var fw=ut(),mw=Xu(),bw=Zu(),Sn=$t(),Yh=Yu(),gw=TypeError,el=Object.defineProperty,Sw=Object.getOwnPropertyDescriptor,tl="enumerable",il="configurable",rl="writable";Kh.f=fw?bw?function(e,t,i){if(Sn(e),t=Yh(t),Sn(i),typeof e=="function"&&t==="prototype"&&"value"in i&&rl in i&&!i[rl]){var r=Sw(e,t);r&&r[rl]&&(e[t]=i.value,i={configurable:il in i?i[il]:r[il],enumerable:tl in i?i[tl]:r[tl],writable:!1})}return el(e,t,i)}:el:function(e,t,i){if(Sn(e),t=Yh(t),Sn(i),mw)try{return el(e,t,i)}catch{}if("get"in i||"set"in i)throw new gw("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var sr=m((VO,Xh)=>{"use strict";var vw=ut(),yw=Ri(),Tw=Xr();Xh.exports=vw?function(s,e,t){return yw.f(s,e,Tw(1,t))}:function(s,e,t){return s[e]=t,s}});var Ie=m((OO,Zh)=>{"use strict";var rs=ve(),Iw=Mu(),xw=Bu(),Ew=me(),ww=jh().f,Aw=Ju(),ar=er(),Pw=rr(),nr=sr(),Jh=wt();ts();var kw=function(s){var e=function(t,i,r){if(this instanceof e){switch(arguments.length){case 0:return new s;case 1:return new s(t);case 2:return new s(t,i)}return new s(t,i,r)}return Iw(s,this,arguments)};return e.prototype=s.prototype,e};Zh.exports=function(s,e){var t=s.target,i=s.global,r=s.stat,a=s.proto,n=i?rs:r?rs[t]:rs[t]&&rs[t].prototype,o=i?ar:ar[t]||nr(ar,t,{})[t],u=o.prototype,l,d,c,p,h,f,b,g,S;for(p in e)l=Aw(i?p:t+(r?".":"#")+p,s.forced),d=!l&&n&&Jh(n,p),f=o[p],d&&(s.dontCallGetSet?(S=ww(n,p),b=S&&S.value):b=n[p]),h=d&&b?b:e[p],!(!l&&!a&&typeof f==typeof h)&&(s.bind&&d?g=Pw(h,rs):s.wrap&&d?g=kw(h):a&&Ew(h)?g=xw(h):g=h,(s.sham||h&&h.sham||f&&f.sham)&&nr(g,"sham",!0),nr(o,p,g),a&&(c=t+"Prototype",Jh(ar,c)||nr(ar,c,{}),nr(ar[c],p,h),s.real&&u&&(l||!u[p])&&nr(u,p,h)))}});var tf=m((_O,ef)=>{"use strict";var Rw=Math.ceil,Mw=Math.floor;ef.exports=Math.trunc||function(e){var t=+e;return(t>0?Mw:Rw)(t)}});var ss=m((FO,rf)=>{"use strict";var Lw=tf();rf.exports=function(s){var e=+s;return e!==e||e===0?0:Lw(e)}});var af=m((NO,sf)=>{"use strict";var Bw=ss(),$w=Math.max,Dw=Math.min;sf.exports=function(s,e){var t=Bw(s);return t<0?$w(t+e,0):Dw(t,e)}});var sl=m((UO,nf)=>{"use strict";var Cw=ss(),Vw=Math.min;nf.exports=function(s){var e=Cw(s);return e>0?Vw(e,9007199254740991):0}});var or=m((qO,of)=>{"use strict";var Ow=sl();of.exports=function(s){return Ow(s.length)}});var al=m((jO,lf)=>{"use strict";var _w=Pi(),Fw=af(),Nw=or(),uf=function(s){return function(e,t,i){var r=_w(e),a=Nw(r);if(a===0)return!s&&-1;var n=Fw(i,a),o;if(s&&t!==t){for(;a>n;)if(o=r[n++],o!==o)return!0}else for(;a>n;n++)if((s||n in r)&&r[n]===t)return s||n||0;return!s&&-1}};lf.exports={includes:uf(!0),indexOf:uf(!1)}});var as=m((HO,cf)=>{"use strict";cf.exports=function(){}});var df=m(()=>{"use strict";var Uw=Ie(),qw=al().includes,jw=Le(),Hw=as(),zw=jw(function(){return!Array(1).includes()});Uw({target:"Array",proto:!0,forced:zw},{includes:function(e){return qw(this,e,arguments.length>1?arguments[1]:void 0)}});Hw("includes")});var li=m((GO,pf)=>{"use strict";var Qw=Yt();pf.exports=Qw});var ff=m((WO,hf)=>{"use strict";df();var Gw=li();hf.exports=Gw("Array","includes")});var bf=m((YO,mf)=>{"use strict";var Ww=ff();mf.exports=Ww});var dt=m((KO,gf)=>{"use strict";var Yw=bf();gf.exports=Yw});var Tn=m((u_,wf)=>{"use strict";var rA=Qu(),sA=Gu(),Ef=rA("keys");wf.exports=function(s){return Ef[s]||(Ef[s]=sA(s))}});var Pf=m((l_,Af)=>{"use strict";var aA=Le();Af.exports=!aA(function(){function s(){}return s.prototype.constructor=null,Object.getPrototypeOf(new s)!==s.prototype})});var In=m((c_,Rf)=>{"use strict";var nA=wt(),oA=me(),uA=tr(),lA=Tn(),cA=Pf(),kf=lA("IE_PROTO"),ul=Object,dA=ul.prototype;Rf.exports=cA?ul.getPrototypeOf:function(s){var e=uA(s);if(nA(e,kf))return e[kf];var t=e.constructor;return oA(t)&&e instanceof t?t.prototype:e instanceof ul?dA:null}});var xn=m((d_,Mf)=>{"use strict";Mf.exports={}});var $f=m((p_,Bf)=>{"use strict";var pA=Pe(),ll=wt(),hA=Pi(),fA=al().indexOf,mA=xn(),Lf=pA([].push);Bf.exports=function(s,e){var t=hA(s),i=0,r=[],a;for(a in t)!ll(mA,a)&&ll(t,a)&&Lf(r,a);for(;e.length>i;)ll(t,a=e[i++])&&(~fA(r,a)||Lf(r,a));return r}});var cl=m((h_,Df)=>{"use strict";Df.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var dl=m((f_,Cf)=>{"use strict";var bA=$f(),gA=cl();Cf.exports=Object.keys||function(e){return bA(e,gA)}});var pl=m((m_,Nf)=>{"use strict";var Of=ut(),SA=Le(),_f=Pe(),vA=In(),yA=dl(),TA=Pi(),IA=Du().f,Ff=_f(IA),xA=_f([].push),EA=Of&&SA(function(){var s=Object.create(null);return s[2]=2,!Ff(s,2)}),Vf=function(s){return function(e){for(var t=TA(e),i=yA(t),r=EA&&vA(t)===null,a=i.length,n=0,o=[],u;a>n;)u=i[n++],(!Of||(r?u in t:Ff(t,u)))&&xA(o,s?[u,t[u]]:t[u]);return o}};Nf.exports={entries:Vf(!0),values:Vf(!1)}});var Uf=m(()=>{"use strict";var wA=Ie(),AA=pl().entries;wA({target:"Object",stat:!0},{entries:function(e){return AA(e)}})});var jf=m((S_,qf)=>{"use strict";Uf();var PA=er();qf.exports=PA.Object.entries});var zf=m((v_,Hf)=>{"use strict";var kA=jf();Hf.exports=kA});var Mi=m((y_,Qf)=>{"use strict";var RA=zf();Qf.exports=RA});var Li=m((T_,Gf)=>{"use strict";Gf.exports={}});var Kf=m((I_,Yf)=>{"use strict";var MA=ve(),LA=me(),Wf=MA.WeakMap;Yf.exports=LA(Wf)&&/native code/.test(String(Wf))});var bl=m((x_,Zf)=>{"use strict";var BA=Kf(),Jf=ve(),$A=ct(),DA=sr(),hl=wt(),fl=ts(),CA=Tn(),VA=xn(),Xf="Object already initialized",ml=Jf.TypeError,OA=Jf.WeakMap,En,ns,wn,_A=function(s){return wn(s)?ns(s):En(s,{})},FA=function(s){return function(e){var t;if(!$A(e)||(t=ns(e)).type!==s)throw new ml("Incompatible receiver, "+s+" required");return t}};BA||fl.state?(At=fl.state||(fl.state=new OA),At.get=At.get,At.has=At.has,At.set=At.set,En=function(s,e){if(At.has(s))throw new ml(Xf);return e.facade=s,At.set(s,e),e},ns=function(s){return At.get(s)||{}},wn=function(s){return At.has(s)}):(Bi=CA("state"),VA[Bi]=!0,En=function(s,e){if(hl(s,Bi))throw new ml(Xf);return e.facade=s,DA(s,Bi,e),e},ns=function(s){return hl(s,Bi)?s[Bi]:{}},wn=function(s){return hl(s,Bi)});var At,Bi;Zf.exports={set:En,get:ns,has:wn,enforce:_A,getterFor:FA}});var vl=m((E_,tm)=>{"use strict";var gl=ut(),NA=wt(),em=Function.prototype,UA=gl&&Object.getOwnPropertyDescriptor,Sl=NA(em,"name"),qA=Sl&&function(){}.name==="something",jA=Sl&&(!gl||gl&&UA(em,"name").configurable);tm.exports={EXISTS:Sl,PROPER:qA,CONFIGURABLE:jA}});var rm=m(im=>{"use strict";var HA=ut(),zA=Zu(),QA=Ri(),GA=$t(),WA=Pi(),YA=dl();im.f=HA&&!zA?Object.defineProperties:function(e,t){GA(e);for(var i=WA(t),r=YA(t),a=r.length,n=0,o;a>n;)QA.f(e,o=r[n++],i[o]);return e}});var yl=m((A_,sm)=>{"use strict";var KA=Yt();sm.exports=KA("document","documentElement")});var El=m((P_,dm)=>{"use strict";var XA=$t(),JA=rm(),am=cl(),ZA=xn(),eP=yl(),tP=gn(),iP=Tn(),nm=">",om="<",Il="prototype",xl="script",lm=iP("IE_PROTO"),Tl=function(){},cm=function(s){return om+xl+nm+s+om+"/"+xl+nm},um=function(s){s.write(cm("")),s.close();var e=s.parentWindow.Object;return s=null,e},rP=function(){var s=tP("iframe"),e="java"+xl+":",t;return s.style.display="none",eP.appendChild(s),s.src=String(e),t=s.contentWindow.document,t.open(),t.write(cm("document.F=Object")),t.close(),t.F},An,Pn=function(){try{An=new ActiveXObject("htmlfile")}catch{}Pn=typeof document<"u"?document.domain&&An?um(An):rP():um(An);for(var s=am.length;s--;)delete Pn[Il][am[s]];return Pn()};ZA[lm]=!0;dm.exports=Object.create||function(e,t){var i;return e!==null?(Tl[Il]=XA(e),i=new Tl,Tl[Il]=null,i[lm]=e):i=Pn(),t===void 0?i:JA.f(i,t)}});var ur=m((k_,pm)=>{"use strict";var sP=sr();pm.exports=function(s,e,t,i){return i&&i.enumerable?s[e]=t:sP(s,e,t),s}});var kl=m((R_,mm)=>{"use strict";var aP=Le(),nP=me(),oP=ct(),uP=El(),hm=In(),lP=ur(),cP=Be(),dP=Et(),Pl=cP("iterator"),fm=!1,Kt,wl,Al;[].keys&&(Al=[].keys(),"next"in Al?(wl=hm(hm(Al)),wl!==Object.prototype&&(Kt=wl)):fm=!0);var pP=!oP(Kt)||aP(function(){var s={};return Kt[Pl].call(s)!==s});pP?Kt={}:dP&&(Kt=uP(Kt));nP(Kt[Pl])||lP(Kt,Pl,function(){return this});mm.exports={IteratorPrototype:Kt,BUGGY_SAFARI_ITERATORS:fm}});var kn=m((M_,gm)=>{"use strict";var hP=Be(),fP=hP("toStringTag"),bm={};bm[fP]="z";gm.exports=String(bm)==="[object z]"});var os=m((L_,Sm)=>{"use strict";var mP=kn(),bP=me(),Rn=Ai(),gP=Be(),SP=gP("toStringTag"),vP=Object,yP=Rn(function(){return arguments}())==="Arguments",TP=function(s,e){try{return s[e]}catch{}};Sm.exports=mP?Rn:function(s){var e,t,i;return s===void 0?"Undefined":s===null?"Null":typeof(t=TP(e=vP(s),SP))=="string"?t:yP?Rn(e):(i=Rn(e))==="Object"&&bP(e.callee)?"Arguments":i}});var ym=m((B_,vm)=>{"use strict";var IP=kn(),xP=os();vm.exports=IP?{}.toString:function(){return"[object "+xP(this)+"]"}});var us=m(($_,Im)=>{"use strict";var EP=kn(),wP=Ri().f,AP=sr(),PP=wt(),kP=ym(),RP=Be(),Tm=RP("toStringTag");Im.exports=function(s,e,t,i){var r=t?s:s&&s.prototype;r&&(PP(r,Tm)||wP(r,Tm,{configurable:!0,value:e}),i&&!EP&&AP(r,"toString",kP))}});var Em=m((D_,xm)=>{"use strict";var MP=kl().IteratorPrototype,LP=El(),BP=Xr(),$P=us(),DP=Li(),CP=function(){return this};xm.exports=function(s,e,t,i){var r=e+" Iterator";return s.prototype=LP(MP,{next:BP(+!i,t)}),$P(s,r,!1,!0),DP[r]=CP,s}});var Am=m((C_,wm)=>{"use strict";var VP=Pe(),OP=Bt();wm.exports=function(s,e,t){try{return VP(OP(Object.getOwnPropertyDescriptor(s,e)[t]))}catch{}}});var km=m((V_,Pm)=>{"use strict";var _P=ct();Pm.exports=function(s){return _P(s)||s===null}});var Mm=m((O_,Rm)=>{"use strict";var FP=km(),NP=String,UP=TypeError;Rm.exports=function(s){if(FP(s))return s;throw new UP("Can't set "+NP(s)+" as a prototype")}});var Rl=m((__,Lm)=>{"use strict";var qP=Am(),jP=ct(),HP=ui(),zP=Mm();Lm.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,e={},t;try{t=qP(Object.prototype,"__proto__","set"),t(e,[]),s=e instanceof Array}catch{}return function(r,a){return HP(r),zP(a),jP(r)&&(s?t(r,a):r.__proto__=a),r}}():void 0)});var qm=m((F_,Um)=>{"use strict";var QP=Ie(),GP=lt(),Mn=Et(),Fm=vl(),WP=me(),YP=Em(),Bm=In(),$m=Rl(),KP=us(),XP=sr(),Ml=ur(),JP=Be(),Dm=Li(),Nm=kl(),ZP=Fm.PROPER,ek=Fm.CONFIGURABLE,Cm=Nm.IteratorPrototype,Ln=Nm.BUGGY_SAFARI_ITERATORS,ls=JP("iterator"),Vm="keys",cs="values",Om="entries",_m=function(){return this};Um.exports=function(s,e,t,i,r,a,n){YP(t,e,i);var o=function(S){if(S===r&&p)return p;if(!Ln&&S&&S in d)return d[S];switch(S){case Vm:return function(){return new t(this,S)};case cs:return function(){return new t(this,S)};case Om:return function(){return new t(this,S)}}return function(){return new t(this)}},u=e+" Iterator",l=!1,d=s.prototype,c=d[ls]||d["@@iterator"]||r&&d[r],p=!Ln&&c||o(r),h=e==="Array"&&d.entries||c,f,b,g;if(h&&(f=Bm(h.call(new s)),f!==Object.prototype&&f.next&&(!Mn&&Bm(f)!==Cm&&($m?$m(f,Cm):WP(f[ls])||Ml(f,ls,_m)),KP(f,u,!0,!0),Mn&&(Dm[u]=_m))),ZP&&r===cs&&c&&c.name!==cs&&(!Mn&&ek?XP(d,"name",cs):(l=!0,p=function(){return GP(c,this)})),r)if(b={values:o(cs),keys:a?p:o(Vm),entries:o(Om)},n)for(g in b)(Ln||l||!(g in d))&&Ml(d,g,b[g]);else QP({target:e,proto:!0,forced:Ln||l},b);return(!Mn||n)&&d[ls]!==p&&Ml(d,ls,p,{name:r}),Dm[e]=p,b}});var Hm=m((N_,jm)=>{"use strict";jm.exports=function(s,e){return{value:s,done:e}}});var Bl=m((U_,Ym)=>{"use strict";var tk=Pi(),Ll=as(),zm=Li(),Gm=bl(),ik=Ri().f,rk=qm(),Bn=Hm(),sk=Et(),ak=ut(),Wm="Array Iterator",nk=Gm.set,ok=Gm.getterFor(Wm);Ym.exports=rk(Array,"Array",function(s,e){nk(this,{type:Wm,target:tk(s),index:0,kind:e})},function(){var s=ok(this),e=s.target,t=s.index++;if(!e||t>=e.length)return s.target=void 0,Bn(void 0,!0);switch(s.kind){case"keys":return Bn(t,!1);case"values":return Bn(e[t],!1)}return Bn([t,e[t]],!1)},"values");var Qm=zm.Arguments=zm.Array;Ll("keys");Ll("values");Ll("entries");if(!sk&&ak&&Qm.name!=="values")try{ik(Qm,"name",{value:"values"})}catch{}});var Xm=m((q_,Km)=>{"use strict";var uk=Be(),lk=Li(),ck=uk("iterator"),dk=Array.prototype;Km.exports=function(s){return s!==void 0&&(lk.Array===s||dk[ck]===s)}});var $l=m((j_,Zm)=>{"use strict";var pk=os(),Jm=es(),hk=Zi(),fk=Li(),mk=Be(),bk=mk("iterator");Zm.exports=function(s){if(!hk(s))return Jm(s,bk)||Jm(s,"@@iterator")||fk[pk(s)]}});var tb=m((H_,eb)=>{"use strict";var gk=lt(),Sk=Bt(),vk=$t(),yk=Zr(),Tk=$l(),Ik=TypeError;eb.exports=function(s,e){var t=arguments.length<2?Tk(s):e;if(Sk(t))return vk(gk(t,s));throw new Ik(yk(s)+" is not iterable")}});var sb=m((z_,rb)=>{"use strict";var xk=lt(),ib=$t(),Ek=es();rb.exports=function(s,e,t){var i,r;ib(s);try{if(i=Ek(s,"return"),!i){if(e==="throw")throw t;return t}i=xk(i,s)}catch(a){r=!0,i=a}if(e==="throw")throw t;if(r)throw i;return ib(i),t}});var Dn=m((Q_,ub)=>{"use strict";var wk=rr(),Ak=lt(),Pk=$t(),kk=Zr(),Rk=Xm(),Mk=or(),ab=Jr(),Lk=tb(),Bk=$l(),nb=sb(),$k=TypeError,$n=function(s,e){this.stopped=s,this.result=e},ob=$n.prototype;ub.exports=function(s,e,t){var i=t&&t.that,r=!!(t&&t.AS_ENTRIES),a=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),u=wk(e,i),l,d,c,p,h,f,b,g=function(T){return l&&nb(l,"normal",T),new $n(!0,T)},S=function(T){return r?(Pk(T),o?u(T[0],T[1],g):u(T[0],T[1])):o?u(T,g):u(T)};if(a)l=s.iterator;else if(n)l=s;else{if(d=Bk(s),!d)throw new $k(kk(s)+" is not iterable");if(Rk(d)){for(c=0,p=Mk(s);p>c;c++)if(h=S(s[c]),h&&ab(ob,h))return h;return new $n(!1)}l=Lk(s,d)}for(f=a?s.next:l.next;!(b=Ak(f,l)).done;){try{h=S(b.value)}catch(T){nb(l,"throw",T)}if(typeof h=="object"&&h&&ab(ob,h))return h}return new $n(!1)}});var cb=m((G_,lb)=>{"use strict";var Dk=ut(),Ck=Ri(),Vk=Xr();lb.exports=function(s,e,t){Dk?Ck.f(s,e,Vk(0,t)):s[e]=t}});var db=m(()=>{"use strict";var Ok=Ie(),_k=Dn(),Fk=cb();Ok({target:"Object",stat:!0},{fromEntries:function(e){var t={};return _k(e,function(i,r){Fk(t,i,r)},{AS_ENTRIES:!0}),t}})});var hb=m((K_,pb)=>{"use strict";Bl();db();var Nk=er();pb.exports=Nk.Object.fromEntries});var mb=m((X_,fb)=>{"use strict";fb.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var gb=m(()=>{"use strict";Bl();var Uk=mb(),qk=ve(),jk=us(),bb=Li();for(Cn in Uk)jk(qk[Cn],Cn),bb[Cn]=bb.Array;var Cn});var vb=m((eF,Sb)=>{"use strict";var Hk=hb();gb();Sb.exports=Hk});var Dl=m((tF,yb)=>{"use strict";var zk=vb();yb.exports=zk});var Tb=m(()=>{"use strict"});var Cl=m((sF,Ib)=>{"use strict";var ds=ve(),Qk=ki(),Gk=Ai(),Vn=function(s){return Qk.slice(0,s.length)===s};Ib.exports=function(){return Vn("Bun/")?"BUN":Vn("Cloudflare-Workers")?"CLOUDFLARE":Vn("Deno/")?"DENO":Vn("Node.js/")?"NODE":ds.Bun&&typeof Bun.version=="string"?"BUN":ds.Deno&&typeof Deno.version=="object"?"DENO":Gk(ds.process)==="process"?"NODE":ds.window&&ds.document?"BROWSER":"REST"}()});var On=m((aF,xb)=>{"use strict";var Wk=Cl();xb.exports=Wk==="NODE"});var wb=m((nF,Eb)=>{"use strict";var Yk=Ri();Eb.exports=function(s,e,t){return Yk.f(s,e,t)}});var kb=m((oF,Pb)=>{"use strict";var Kk=Yt(),Xk=wb(),Jk=Be(),Zk=ut(),Ab=Jk("species");Pb.exports=function(s){var e=Kk(s);Zk&&e&&!e[Ab]&&Xk(e,Ab,{configurable:!0,get:function(){return this}})}});var Mb=m((uF,Rb)=>{"use strict";var eR=Jr(),tR=TypeError;Rb.exports=function(s,e){if(eR(e,s))return s;throw new tR("Incorrect invocation")}});var Ol=m((lF,Lb)=>{"use strict";var iR=Pe(),rR=me(),Vl=ts(),sR=iR(Function.toString);rR(Vl.inspectSource)||(Vl.inspectSource=function(s){return sR(s)});Lb.exports=Vl.inspectSource});var Fl=m((cF,Vb)=>{"use strict";var aR=Pe(),nR=Le(),Bb=me(),oR=os(),uR=Yt(),lR=Ol(),$b=function(){},Db=uR("Reflect","construct"),_l=/^\s*(?:class|function)\b/,cR=aR(_l.exec),dR=!_l.test($b),ps=function(e){if(!Bb(e))return!1;try{return Db($b,[],e),!0}catch{return!1}},Cb=function(e){if(!Bb(e))return!1;switch(oR(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return dR||!!cR(_l,lR(e))}catch{return!0}};Cb.sham=!0;Vb.exports=!Db||nR(function(){var s;return ps(ps.call)||!ps(Object)||!ps(function(){s=!0})||s})?Cb:ps});var _b=m((dF,Ob)=>{"use strict";var pR=Fl(),hR=Zr(),fR=TypeError;Ob.exports=function(s){if(pR(s))return s;throw new fR(hR(s)+" is not a constructor")}});var Nl=m((pF,Nb)=>{"use strict";var Fb=$t(),mR=_b(),bR=Zi(),gR=Be(),SR=gR("species");Nb.exports=function(s,e){var t=Fb(s).constructor,i;return t===void 0||bR(i=Fb(t)[SR])?e:mR(i)}});var qb=m((hF,Ub)=>{"use strict";var vR=Pe();Ub.exports=vR([].slice)});var Hb=m((fF,jb)=>{"use strict";var yR=TypeError;jb.exports=function(s,e){if(s<e)throw new yR("Not enough arguments");return s}});var Ul=m((mF,zb)=>{"use strict";var TR=ki();zb.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(TR)});var Kl=m((bF,eg)=>{"use strict";var pt=ve(),IR=Mu(),xR=rr(),Qb=me(),ER=wt(),Zb=Le(),Gb=yl(),wR=qb(),Wb=gn(),AR=Hb(),PR=Ul(),kR=On(),Gl=pt.setImmediate,Wl=pt.clearImmediate,RR=pt.process,ql=pt.Dispatch,MR=pt.Function,Yb=pt.MessageChannel,LR=pt.String,jl=0,hs={},Kb="onreadystatechange",fs,$i,Hl,zl;Zb(function(){fs=pt.location});var Yl=function(s){if(ER(hs,s)){var e=hs[s];delete hs[s],e()}},Ql=function(s){return function(){Yl(s)}},Xb=function(s){Yl(s.data)},Jb=function(s){pt.postMessage(LR(s),fs.protocol+"//"+fs.host)};(!Gl||!Wl)&&(Gl=function(e){AR(arguments.length,1);var t=Qb(e)?e:MR(e),i=wR(arguments,1);return hs[++jl]=function(){IR(t,void 0,i)},$i(jl),jl},Wl=function(e){delete hs[e]},kR?$i=function(s){RR.nextTick(Ql(s))}:ql&&ql.now?$i=function(s){ql.now(Ql(s))}:Yb&&!PR?(Hl=new Yb,zl=Hl.port2,Hl.port1.onmessage=Xb,$i=xR(zl.postMessage,zl)):pt.addEventListener&&Qb(pt.postMessage)&&!pt.importScripts&&fs&&fs.protocol!=="file:"&&!Zb(Jb)?($i=Jb,pt.addEventListener("message",Xb,!1)):Kb in Wb("script")?$i=function(s){Gb.appendChild(Wb("script"))[Kb]=function(){Gb.removeChild(this),Yl(s)}}:$i=function(s){setTimeout(Ql(s),0)});eg.exports={set:Gl,clear:Wl}});var rg=m((gF,ig)=>{"use strict";var tg=ve(),BR=ut(),$R=Object.getOwnPropertyDescriptor;ig.exports=function(s){if(!BR)return tg[s];var e=$R(tg,s);return e&&e.value}});var Xl=m((SF,ag)=>{"use strict";var sg=function(){this.head=null,this.tail=null};sg.prototype={add:function(s){var e={item:s,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var s=this.head;if(s){var e=this.head=s.next;return e===null&&(this.tail=null),s.item}}};ag.exports=sg});var og=m((vF,ng)=>{"use strict";var DR=ki();ng.exports=/ipad|iphone|ipod/i.test(DR)&&typeof Pebble<"u"});var lg=m((yF,ug)=>{"use strict";var CR=ki();ug.exports=/web0s(?!.*chrome)/i.test(CR)});var bg=m((TF,mg)=>{"use strict";var cr=ve(),VR=rg(),cg=rr(),Jl=Kl().set,OR=Xl(),_R=Ul(),FR=og(),NR=lg(),Zl=On(),dg=cr.MutationObserver||cr.WebKitMutationObserver,pg=cr.document,hg=cr.process,_n=cr.Promise,ic=VR("queueMicrotask"),lr,ec,tc,Fn,fg;ic||(ms=new OR,bs=function(){var s,e;for(Zl&&(s=hg.domain)&&s.exit();e=ms.get();)try{e()}catch(t){throw ms.head&&lr(),t}s&&s.enter()},!_R&&!Zl&&!NR&&dg&&pg?(ec=!0,tc=pg.createTextNode(""),new dg(bs).observe(tc,{characterData:!0}),lr=function(){tc.data=ec=!ec}):!FR&&_n&&_n.resolve?(Fn=_n.resolve(void 0),Fn.constructor=_n,fg=cg(Fn.then,Fn),lr=function(){fg(bs)}):Zl?lr=function(){hg.nextTick(bs)}:(Jl=cg(Jl,cr),lr=function(){Jl(bs)}),ic=function(s){ms.head||lr(),ms.add(s)});var ms,bs;mg.exports=ic});var Sg=m((IF,gg)=>{"use strict";gg.exports=function(s,e){try{arguments.length===1?console.error(s):console.error(s,e)}catch{}}});var Nn=m((xF,vg)=>{"use strict";vg.exports=function(s){try{return{error:!1,value:s()}}catch(e){return{error:!0,value:e}}}});var Di=m((EF,yg)=>{"use strict";var UR=ve();yg.exports=UR.Promise});var dr=m((wF,Eg)=>{"use strict";var qR=ve(),gs=Di(),jR=me(),HR=Ju(),zR=Ol(),QR=Be(),Tg=Cl(),GR=Et(),rc=Fu(),Ig=gs&&gs.prototype,WR=QR("species"),sc=!1,xg=jR(qR.PromiseRejectionEvent),YR=HR("Promise",function(){var s=zR(gs),e=s!==String(gs);if(!e&&rc===66||GR&&!(Ig.catch&&Ig.finally))return!0;if(!rc||rc<51||!/native code/.test(s)){var t=new gs(function(a){a(1)}),i=function(a){a(function(){},function(){})},r=t.constructor={};if(r[WR]=i,sc=t.then(function(){})instanceof i,!sc)return!0}return!e&&(Tg==="BROWSER"||Tg==="DENO")&&!xg});Eg.exports={CONSTRUCTOR:YR,REJECTION_EVENT:xg,SUBCLASSING:sc}});var pr=m((AF,Ag)=>{"use strict";var wg=Bt(),KR=TypeError,XR=function(s){var e,t;this.promise=new s(function(i,r){if(e!==void 0||t!==void 0)throw new KR("Bad Promise constructor");e=i,t=r}),this.resolve=wg(e),this.reject=wg(t)};Ag.exports.f=function(s){return new XR(s)}});var zg=m(()=>{"use strict";var JR=Ie(),ZR=Et(),Hn=On(),ci=ve(),br=lt(),Pg=ur(),kg=Rl(),eM=us(),tM=kb(),iM=Bt(),jn=me(),rM=ct(),sM=Mb(),aM=Nl(),$g=Kl().set,lc=bg(),nM=Sg(),oM=Nn(),uM=Xl(),Dg=bl(),zn=Di(),cc=dr(),Cg=pr(),Qn="Promise",Vg=cc.CONSTRUCTOR,lM=cc.REJECTION_EVENT,cM=cc.SUBCLASSING,ac=Dg.getterFor(Qn),dM=Dg.set,hr=zn&&zn.prototype,Ci=zn,Un=hr,Og=ci.TypeError,nc=ci.document,dc=ci.process,oc=Cg.f,pM=oc,hM=!!(nc&&nc.createEvent&&ci.dispatchEvent),_g="unhandledrejection",fM="rejectionhandled",Rg=0,Fg=1,mM=2,pc=1,Ng=2,qn,Mg,bM,Lg,Ug=function(s){var e;return rM(s)&&jn(e=s.then)?e:!1},qg=function(s,e){var t=e.value,i=e.state===Fg,r=i?s.ok:s.fail,a=s.resolve,n=s.reject,o=s.domain,u,l,d;try{r?(i||(e.rejection===Ng&&SM(e),e.rejection=pc),r===!0?u=t:(o&&o.enter(),u=r(t),o&&(o.exit(),d=!0)),u===s.promise?n(new Og("Promise-chain cycle")):(l=Ug(u))?br(l,u,a,n):a(u)):n(t)}catch(c){o&&!d&&o.exit(),n(c)}},jg=function(s,e){s.notified||(s.notified=!0,lc(function(){for(var t=s.reactions,i;i=t.get();)qg(i,s);s.notified=!1,e&&!s.rejection&&gM(s)}))},Hg=function(s,e,t){var i,r;hM?(i=nc.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(s,!1,!0),ci.dispatchEvent(i)):i={promise:e,reason:t},!lM&&(r=ci["on"+s])?r(i):s===_g&&nM("Unhandled promise rejection",t)},gM=function(s){br($g,ci,function(){var e=s.facade,t=s.value,i=Bg(s),r;if(i&&(r=oM(function(){Hn?dc.emit("unhandledRejection",t,e):Hg(_g,e,t)}),s.rejection=Hn||Bg(s)?Ng:pc,r.error))throw r.value})},Bg=function(s){return s.rejection!==pc&&!s.parent},SM=function(s){br($g,ci,function(){var e=s.facade;Hn?dc.emit("rejectionHandled",e):Hg(fM,e,s.value)})},fr=function(s,e,t){return function(i){s(e,i,t)}},mr=function(s,e,t){s.done||(s.done=!0,t&&(s=t),s.value=e,s.state=mM,jg(s,!0))},uc=function(s,e,t){if(!s.done){s.done=!0,t&&(s=t);try{if(s.facade===e)throw new Og("Promise can't be resolved itself");var i=Ug(e);i?lc(function(){var r={done:!1};try{br(i,e,fr(uc,r,s),fr(mr,r,s))}catch(a){mr(r,a,s)}}):(s.value=e,s.state=Fg,jg(s,!1))}catch(r){mr({done:!1},r,s)}}};if(Vg&&(Ci=function(e){sM(this,Un),iM(e),br(qn,this);var t=ac(this);try{e(fr(uc,t),fr(mr,t))}catch(i){mr(t,i)}},Un=Ci.prototype,qn=function(e){dM(this,{type:Qn,done:!1,notified:!1,parent:!1,reactions:new uM,rejection:!1,state:Rg,value:void 0})},qn.prototype=Pg(Un,"then",function(e,t){var i=ac(this),r=oc(aM(this,Ci));return i.parent=!0,r.ok=jn(e)?e:!0,r.fail=jn(t)&&t,r.domain=Hn?dc.domain:void 0,i.state===Rg?i.reactions.add(r):lc(function(){qg(r,i)}),r.promise}),Mg=function(){var s=new qn,e=ac(s);this.promise=s,this.resolve=fr(uc,e),this.reject=fr(mr,e)},Cg.f=oc=function(s){return s===Ci||s===bM?new Mg(s):pM(s)},!ZR&&jn(zn)&&hr!==Object.prototype)){Lg=hr.then,cM||Pg(hr,"then",function(e,t){var i=this;return new Ci(function(r,a){br(Lg,i,r,a)}).then(e,t)},{unsafe:!0});try{delete hr.constructor}catch{}kg&&kg(hr,Un)}JR({global:!0,constructor:!0,wrap:!0,forced:Vg},{Promise:Ci});eM(Ci,Qn,!1,!0);tM(Qn)});var Kg=m((RF,Yg)=>{"use strict";var vM=Be(),Gg=vM("iterator"),Wg=!1;try{Qg=0,hc={next:function(){return{done:!!Qg++}},return:function(){Wg=!0}},hc[Gg]=function(){return this},Array.from(hc,function(){throw 2})}catch{}var Qg,hc;Yg.exports=function(s,e){try{if(!e&&!Wg)return!1}catch{return!1}var t=!1;try{var i={};i[Gg]=function(){return{next:function(){return{done:t=!0}}}},s(i)}catch{}return t}});var fc=m((MF,Xg)=>{"use strict";var yM=Di(),TM=Kg(),IM=dr().CONSTRUCTOR;Xg.exports=IM||!TM(function(s){yM.all(s).then(void 0,function(){})})});var Jg=m(()=>{"use strict";var xM=Ie(),EM=lt(),wM=Bt(),AM=pr(),PM=Nn(),kM=Dn(),RM=fc();xM({target:"Promise",stat:!0,forced:RM},{all:function(e){var t=this,i=AM.f(t),r=i.resolve,a=i.reject,n=PM(function(){var o=wM(t.resolve),u=[],l=0,d=1;kM(e,function(c){var p=l++,h=!1;d++,EM(o,t,c).then(function(f){h||(h=!0,u[p]=f,--d||r(u))},a)}),--d||r(u)});return n.error&&a(n.value),i.promise}})});var eS=m(()=>{"use strict";var MM=Ie(),LM=Et(),BM=dr().CONSTRUCTOR,bc=Di(),$M=Yt(),DM=me(),CM=ur(),Zg=bc&&bc.prototype;MM({target:"Promise",proto:!0,forced:BM,real:!0},{catch:function(s){return this.then(void 0,s)}});!LM&&DM(bc)&&(mc=$M("Promise").prototype.catch,Zg.catch!==mc&&CM(Zg,"catch",mc,{unsafe:!0}));var mc});var tS=m(()=>{"use strict";var VM=Ie(),OM=lt(),_M=Bt(),FM=pr(),NM=Nn(),UM=Dn(),qM=fc();VM({target:"Promise",stat:!0,forced:qM},{race:function(e){var t=this,i=FM.f(t),r=i.reject,a=NM(function(){var n=_M(t.resolve);UM(e,function(o){OM(n,t,o).then(i.resolve,r)})});return a.error&&r(a.value),i.promise}})});var iS=m(()=>{"use strict";var jM=Ie(),HM=pr(),zM=dr().CONSTRUCTOR;jM({target:"Promise",stat:!0,forced:zM},{reject:function(e){var t=HM.f(this),i=t.reject;return i(e),t.promise}})});var gc=m((FF,rS)=>{"use strict";var QM=$t(),GM=ct(),WM=pr();rS.exports=function(s,e){if(QM(s),GM(e)&&e.constructor===s)return e;var t=WM.f(s),i=t.resolve;return i(e),t.promise}});var nS=m(()=>{"use strict";var YM=Ie(),KM=Yt(),sS=Et(),XM=Di(),aS=dr().CONSTRUCTOR,JM=gc(),ZM=KM("Promise"),eL=sS&&!aS;YM({target:"Promise",stat:!0,forced:sS||aS},{resolve:function(e){return JM(eL&&this===ZM?XM:this,e)}})});var oS=m(()=>{"use strict";zg();Jg();eS();tS();iS();nS()});var dS=m(()=>{"use strict";var tL=Ie(),iL=Et(),Gn=Di(),rL=Le(),lS=Yt(),cS=me(),sL=Nl(),uS=gc(),aL=ur(),vc=Gn&&Gn.prototype,nL=!!Gn&&rL(function(){vc.finally.call({then:function(){}},function(){})});tL({target:"Promise",proto:!0,real:!0,forced:nL},{finally:function(s){var e=sL(this,lS("Promise")),t=cS(s);return this.then(t?function(i){return uS(e,s()).then(function(){return i})}:s,t?function(i){return uS(e,s()).then(function(){throw i})}:s)}});!iL&&cS(Gn)&&(Sc=lS("Promise").prototype.finally,vc.finally!==Sc&&aL(vc,"finally",Sc,{unsafe:!0}));var Sc});var hS=m((QF,pS)=>{"use strict";Tb();oS();dS();var oL=li();pS.exports=oL("Promise","finally")});var mS=m((GF,fS)=>{"use strict";var uL=hS();fS.exports=uL});var Wn=m((WF,bS)=>{"use strict";var lL=mS();bS.exports=lL});var RS=m(()=>{"use strict";var xL=Ie(),EL=pl().values;xL({target:"Object",stat:!0},{values:function(e){return EL(e)}})});var LS=m((BN,MS)=>{"use strict";RS();var wL=er();MS.exports=wL.Object.values});var $S=m(($N,BS)=>{"use strict";var AL=LS();BS.exports=AL});var _i=m((DN,DS)=>{"use strict";var PL=$S();DS.exports=PL});var XS=m(()=>{"use strict";var KL=Ie(),XL=tr(),JL=or(),ZL=ss(),eB=as();KL({target:"Array",proto:!0},{at:function(e){var t=XL(this),i=JL(t),r=ZL(e),a=r>=0?r:i+r;return a<0||a>=i?void 0:t[a]}});eB("at")});var ZS=m((jU,JS)=>{"use strict";XS();var tB=li();JS.exports=tB("Array","at")});var tv=m((HU,ev)=>{"use strict";var iB=ZS();ev.exports=iB});var Pt=m((zU,iv)=>{"use strict";var rB=tv();iv.exports=rB});var qc=m((L1,Cv)=>{"use strict";var OB=Ai();Cv.exports=Array.isArray||function(e){return OB(e)==="Array"}});var Ov=m((B1,Vv)=>{"use strict";var _B=TypeError,FB=9007199254740991;Vv.exports=function(s){if(s>FB)throw _B("Maximum allowed index exceeded");return s}});var Nv=m(($1,Fv)=>{"use strict";var NB=qc(),UB=or(),qB=Ov(),jB=rr(),_v=function(s,e,t,i,r,a,n,o){for(var u=r,l=0,d=n?jB(n,o):!1,c,p;l<i;)l in t&&(c=d?d(t[l],l,e):t[l],a>0&&NB(c)?(p=UB(c),u=_v(s,e,c,p,u,a-1)-1):(qB(u+1),s[u]=c),u++),l++;return u};Fv.exports=_v});var Hv=m((D1,jv)=>{"use strict";var Uv=qc(),HB=Fl(),zB=ct(),QB=Be(),GB=QB("species"),qv=Array;jv.exports=function(s){var e;return Uv(s)&&(e=s.constructor,HB(e)&&(e===qv||Uv(e.prototype))?e=void 0:zB(e)&&(e=e[GB],e===null&&(e=void 0))),e===void 0?qv:e}});var Qv=m((C1,zv)=>{"use strict";var WB=Hv();zv.exports=function(s,e){return new(WB(s))(e===0?0:e)}});var Gv=m(()=>{"use strict";var YB=Ie(),KB=Nv(),XB=Bt(),JB=tr(),ZB=or(),e$=Qv();YB({target:"Array",proto:!0},{flatMap:function(e){var t=JB(this),i=ZB(t),r;return XB(e),r=e$(t,0),r.length=KB(r,t,t,i,0,1,e,arguments.length>1?arguments[1]:void 0),r}})});var Wv=m(()=>{"use strict";var t$=as();t$("flatMap")});var Kv=m((N1,Yv)=>{"use strict";Gv();Wv();var i$=li();Yv.exports=i$("Array","flatMap")});var Jv=m((U1,Xv)=>{"use strict";var r$=Kv();Xv.exports=r$});var Ds=m((q1,Zv)=>{"use strict";var s$=Jv();Zv.exports=s$});var Cs=m((j1,ey)=>{"use strict";var a$=os(),n$=String;ey.exports=function(s){if(a$(s)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return n$(s)}});var jc=m((H1,ty)=>{"use strict";ty.exports=`
7
- \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`});var sy=m((z1,ry)=>{"use strict";var o$=Pe(),u$=ui(),l$=Cs(),zc=jc(),iy=o$("".replace),c$=RegExp("^["+zc+"]+"),d$=RegExp("(^|[^"+zc+"])["+zc+"]+$"),Hc=function(s){return function(e){var t=l$(u$(e));return s&1&&(t=iy(t,c$,"")),s&2&&(t=iy(t,d$,"$1")),t}};ry.exports={start:Hc(1),end:Hc(2),trim:Hc(3)}});var uy=m((Q1,oy)=>{"use strict";var p$=vl().PROPER,h$=Le(),ay=jc(),ny="\u200B\x85\u180E";oy.exports=function(s){return h$(function(){return!!ay[s]()||ny[s]()!==ny||p$&&ay[s].name!==s})}});var Qc=m((G1,ly)=>{"use strict";var f$=sy().start,m$=uy();ly.exports=m$("trimStart")?function(){return f$(this)}:"".trimStart});var dy=m(()=>{"use strict";var b$=Ie(),cy=Qc();b$({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==cy},{trimLeft:cy})});var hy=m(()=>{"use strict";dy();var g$=Ie(),py=Qc();g$({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==py},{trimStart:py})});var my=m((J1,fy)=>{"use strict";hy();var S$=li();fy.exports=S$("String","trimLeft")});var gy=m((Z1,by)=>{"use strict";var v$=my();by.exports=v$});var vy=m((ej,Sy)=>{"use strict";var y$=gy();Sy.exports=y$});var Dy=m(()=>{"use strict"});var Cy=m(()=>{"use strict"});var Oy=m((D2,Vy)=>{"use strict";var j$=ct(),H$=Ai(),z$=Be(),Q$=z$("match");Vy.exports=function(s){var e;return j$(s)&&((e=s[Q$])!==void 0?!!e:H$(s)==="RegExp")}});var Fy=m((C2,_y)=>{"use strict";var G$=$t();_y.exports=function(){var s=G$(this),e="";return s.hasIndices&&(e+="d"),s.global&&(e+="g"),s.ignoreCase&&(e+="i"),s.multiline&&(e+="m"),s.dotAll&&(e+="s"),s.unicode&&(e+="u"),s.unicodeSets&&(e+="v"),s.sticky&&(e+="y"),e}});var qy=m((V2,Uy)=>{"use strict";var W$=lt(),Y$=wt(),K$=Jr(),X$=Fy(),Ny=RegExp.prototype;Uy.exports=function(s){var e=s.flags;return e===void 0&&!("flags"in Ny)&&!Y$(s,"flags")&&K$(Ny,s)?W$(X$,s):e}});var Hy=m((O2,jy)=>{"use strict";var Jc=Pe(),J$=tr(),Z$=Math.floor,Kc=Jc("".charAt),eD=Jc("".replace),Xc=Jc("".slice),tD=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,iD=/\$([$&'`]|\d{1,2})/g;jy.exports=function(s,e,t,i,r,a){var n=t+s.length,o=i.length,u=iD;return r!==void 0&&(r=J$(r),u=tD),eD(a,u,function(l,d){var c;switch(Kc(d,0)){case"$":return"$";case"&":return s;case"`":return Xc(e,0,t);case"'":return Xc(e,n);case"<":c=r[Xc(d,1,-1)];break;default:var p=+d;if(p===0)return l;if(p>o){var h=Z$(p/10);return h===0?l:h<=o?i[h-1]===void 0?Kc(d,1):i[h-1]+Kc(d,1):l}c=i[p-1]}return c===void 0?"":c})}});var Gy=m(()=>{"use strict";var rD=Ie(),sD=lt(),ed=Pe(),zy=ui(),aD=me(),nD=Zi(),oD=Oy(),Mr=Cs(),uD=es(),lD=qy(),cD=Hy(),dD=Be(),pD=Et(),hD=dD("replace"),fD=TypeError,Zc=ed("".indexOf),mD=ed("".replace),Qy=ed("".slice),bD=Math.max;rD({target:"String",proto:!0},{replaceAll:function(e,t){var i=zy(this),r,a,n,o,u,l,d,c,p,h,f=0,b="";if(!nD(e)){if(r=oD(e),r&&(a=Mr(zy(lD(e))),!~Zc(a,"g")))throw new fD("`.replaceAll` does not allow non-global regexes");if(n=uD(e,hD),n)return sD(n,e,i,t);if(pD&&r)return mD(Mr(i),e,t)}for(o=Mr(i),u=Mr(e),l=aD(t),l||(t=Mr(t)),d=u.length,c=bD(1,d),p=Zc(o,u);p!==-1;)h=l?Mr(t(u,p,o)):cD(u,o,p,[],void 0,t),b+=Qy(o,f,p)+h,f=p+d,p=p+c>o.length?-1:Zc(o,u,p+c);return f<o.length&&(b+=Qy(o,f)),b}})});var Yy=m((N2,Wy)=>{"use strict";Dy();Cy();Gy();var gD=li();Wy.exports=gD("String","replaceAll")});var Xy=m((U2,Ky)=>{"use strict";var SD=Yy();Ky.exports=SD});var td=m((q2,Jy)=>{"use strict";var vD=Xy();Jy.exports=vD});var eT=m((j2,Zy)=>{"use strict";var yD=ss(),TD=Cs(),ID=ui(),xD=RangeError;Zy.exports=function(e){var t=TD(ID(this)),i="",r=yD(e);if(r<0||r===1/0)throw new xD("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))r&1&&(i+=t);return i}});var aT=m((H2,sT)=>{"use strict";var rT=Pe(),ED=sl(),tT=Cs(),wD=eT(),AD=ui(),PD=rT(wD),kD=rT("".slice),RD=Math.ceil,iT=function(s){return function(e,t,i){var r=tT(AD(e)),a=ED(t),n=r.length,o=i===void 0?" ":tT(i),u,l;return a<=n||o===""?r:(u=a-n,l=PD(o,RD(u/o.length)),l.length>u&&(l=kD(l,0,u)),s?r+l:l+r)}};sT.exports={start:iT(!1),end:iT(!0)}});var oT=m((z2,nT)=>{"use strict";var MD=ki();nT.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(MD)});var uT=m(()=>{"use strict";var LD=Ie(),BD=aT().start,$D=oT();LD({target:"String",proto:!0,forced:$D},{padStart:function(e){return BD(this,e,arguments.length>1?arguments[1]:void 0)}})});var cT=m((W2,lT)=>{"use strict";uT();var DD=li();lT.exports=DD("String","padStart")});var pT=m((Y2,dT)=>{"use strict";var CD=cT();dT.exports=CD});var id=m((K2,hT)=>{"use strict";var VD=pT();hT.exports=VD});var Ep="2.0.135-beta.2";var Qe=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(Qe||{}),Wt=(y=>(y.MPEG="MPEG",y.DASH="DASH",y.DASH_SEP="DASH_SEP",y.DASH_SEP_VK="DASH_SEP",y.DASH_WEBM="DASH_WEBM",y.DASH_WEBM_AV1="DASH_WEBM_AV1",y.DASH_STREAMS="DASH_STREAMS",y.DASH_WEBM_VK="DASH_WEBM",y.DASH_ONDEMAND="DASH_ONDEMAND",y.DASH_ONDEMAND_VK="DASH_ONDEMAND",y.DASH_LIVE="DASH_LIVE",y.DASH_LIVE_CMAF="DASH_LIVE_CMAF",y.DASH_LIVE_WEBM="DASH_LIVE_WEBM",y.HLS="HLS",y.HLS_ONDEMAND="HLS_ONDEMAND",y.HLS_JS="HLS",y.HLS_LIVE="HLS_LIVE",y.HLS_LIVE_CMAF="HLS_LIVE_CMAF",y.WEB_RTC_LIVE="WEB_RTC_LIVE",y))(Wt||{});var hn=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(hn||{}),Pu=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Pu||{});var ku=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(ku||{}),fn=(i=>(i.TRAFFIC_SAVING="traffic_saving",i.HIGH_QUALITY="high_quality",i.UNKNOWN="unknown",i))(fn||{});var Ix=C(dt(),1);import{assertNever as xf,assertNonNullable as Kw,isNonNullable as vn,ValueSubject as nl,Subject as Xw,Subscription as Jw,merge as Zw,observableFrom as eA,fromEvent as vf,map as yf,tap as Tf,filterChanged as tA,isNullable as ol,ErrorCategory as If}from"@vkontakte/videoplayer-shared/es2024";var Sf=s=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",s),i.onload=()=>e(),i.onerror=r=>t(r),document.body.appendChild(i)});var yn=class{constructor(e){this.connection$=new nl(void 0);this.castState$=new nl("NOT_AVAILABLE");this.errorEvent$=new Xw;this.realCastState$=new nl("NOT_AVAILABLE");this.subscription=new Jw;this.isDestroyed=!1;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=vn(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&!this.isDestroyed&&this.initializeCastApi()},r||Sf("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:If.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){vn(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();ol(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();ol(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.isDestroyed=!0,this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(vf(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(r=>{switch(r.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return xf(r.sessionState)}})).add(Zw(vf(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Tf(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),yf(r=>r.castState)),eA([i.getCastState()])).pipe(tA(),yf(iA),Tf(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",n=vn(this.connection$.getValue());if(a&&!n){let o=i.getCurrentSession();Kw(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(ol(l)||l===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!a&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?vn(this.connection$.getValue())?"CONNECTED":"AVAILABLE":r)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(r){this.errorEvent$.next({id:"ChromecastInitializer",category:If.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},iA=s=>{switch(s){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return xf(s)}};var mp=C(dt(),1),rx=C(Mi(),1),sx=C(Dl(),1);var AS=C(Wn(),1);import{assertNever as gS}from"@vkontakte/videoplayer-shared/es2024";var be=(s,e=0,t=0)=>{switch(t){case 0:return s.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return s;let i=new URL(s);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(s);return!i.searchParams.get("offset_p")&&e===0?s:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:gS(t)}return s},di=(s,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(s);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(s);return Number(t.searchParams.get("offset_p")??0)}default:gS(e)}};var M=(s,e,t=!1)=>{let i=s.getTransition();(t||!i||i.to===e)&&s.setState(e)};import{isNonNullable as cL,Subject as Yn,merge as SS}from"@vkontakte/videoplayer-shared/es2024";var U=class{constructor(e){this.transitionStarted$=new Yn;this.transitionEnded$=new Yn;this.transitionUpdated$=new Yn;this.forceChanged$=new Yn;this.stateChangeStarted$=SS(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=SS(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||cL(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as dL}from"@vkontakte/videoplayer-shared/es2024";var vS=s=>{switch(s){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return dL(s)}};import{assertNever as gr,assertNonNullable as Vi,debounce as yS,ErrorCategory as TS,fromEvent as Oi,isNonNullable as IS,map as xS,merge as ES,observableFrom as pL,Subject as hL,Subscription as yc,timeout as fL,getHighestQuality as mL}from"@vkontakte/videoplayer-shared/es2024";var bL=5,gL=5,SL=500,wS=7e3,Ss=class{constructor(e){this.subscription=new yc;this.loadMediaTimeoutSubscription=new yc;this.videoState=new U("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(r?.to!=="paused"&&a.state==="requested"&&e!=="stopped"){this.seek(a.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:gr(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:gr(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:gr(e)}break}default:gr(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(vS(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new yc;this.subscription.add(e),this.subscription.add(ES(this.videoState.stateChangeStarted$.pipe(xS(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(xS(r=>`stateChangeEnded$ ${JSON.stringify(r)}`))).subscribe(r=>this.log({message:`[videoState] ${r}`})));let t=(r,a)=>this.subscription.add(r.subscribe(a));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let r=new hL;e.add(r.pipe(yS(SL)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(n=>{this.logRemoteEvent(n);let o=n.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>bL)&&r.next(o),a=o})),e.add(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,n=r.value,o=this.params.output.isBuffering$.getValue(),u=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<gL&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),M(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:gr(n)}}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=ES(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,pL(["init"])).pipe(yS(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),M(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),M(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),M(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),M(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&M(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,r,a;switch(e){case"MPEG":{let l=t[e];Vi(l);let d=mL(Object.keys(l));Vi(d);let c=l[d];Vi(c),i=c,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];Vi(l),i=l.url,r="application/x-mpegurl",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let l=t[e];Vi(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];Vi(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];Vi(l),i=be(l.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let l="Unsupported format for Chromecast",d=new Error(l);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:TS.VIDEO_PIPELINE,message:l,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return gr(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);n.contentUrl=i,n.streamType=a,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return IS(o)&&(n.metadata.title=o),IS(u)&&(n.metadata.subtitle=u),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((r,a)=>{this.loadMediaTimeoutSubscription.add(fL(wS).subscribe(()=>a(`timeout(${wS})`)))});(0,AS.default)(Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},r=>{let a=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${r}`;this.log({message:a}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:TS.VIDEO_PIPELINE,message:a,thrown:r})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};var Nc=C(dt(),1);import{clearVideoElement as kS}from"@vkontakte/videoplayer-shared/es2024";import{clearVideoElement as vL}from"@vkontakte/videoplayer-shared/es2024";var PS=s=>{try{s.pause(),s.playbackRate=0,vL(s),s.remove()}catch(e){console.error(e)}};import{fromEvent as yL,Subscription as TL}from"@vkontakte/videoplayer-shared/es2024";var Tc=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},Ic=window.WeakMap?new WeakMap:new Tc,xc=window.WeakMap?new WeakMap:new Map,IL=(s,e=20)=>{let t=0;return yL(s,"ratechange").subscribe(i=>{t++,t>=e&&(s.currentTime=s.currentTime,t=0)})},Ge=(s,{audioVideoSyncRate:e,disableYandexPiP:t})=>{let i=s.querySelector("video"),r=!!i;i?kS(i):(i=document.createElement("video"),s.appendChild(i)),Ic.set(i,r);let a=new TL;return a.add(IL(i,e)),xc.set(i,a),i.setAttribute("crossorigin","anonymous"),i.setAttribute("playsinline","playsinline"),t&&i.setAttribute("x-yandex-pip","false"),i.controls=!1,i.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),i},We=s=>{xc.get(s)?.unsubscribe(),xc.delete(s);let t=Ic.get(s);Ic.delete(s),t?kS(s):PS(s)};var wc=C(_i(),1);import{assertNonNullable as ys,isNonNullable as Ct,isNullable as ML,fromEvent as Sr,merge as CS,observableFrom as VS,filterChanged as OS,map as Ts,Subject as _S,Subscription as LL,ValueSubject as BL,ErrorCategory as $L}from"@vkontakte/videoplayer-shared/es2024";import{isNonNullable as Ec,isNullable as kL,Subscription as RL}from"@vkontakte/videoplayer-shared/es2024";var Kn=(s,e,t,{equal:i=(n,o)=>n===o,changed$:r,onError:a}={})=>{let n=s.getState(),o=e(),u=kL(r),l=new RL;return r&&l.add(r.subscribe(d=>{let c=s.getState();i(d,c)&&s.setState(d)},a)),i(o,n)||(t(n),u&&s.setState(n)),l.add(s.stateChangeStarted$.subscribe(d=>{t(d.to),u&&s.setState(d.to)},a)),l},Dt=(s,e,t)=>Kn(e,()=>s.loop,i=>{Ec(i)&&(s.loop=i)},{onError:t}),Ye=(s,e,t,i)=>Kn(e,()=>({muted:s.muted,volume:s.volume}),r=>{Ec(r)&&(s.muted=r.muted,s.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),mt=(s,e,t,i)=>Kn(e,()=>s.playbackRate,r=>{Ec(r)&&(s.playbackRate=r)},{changed$:t,onError:i}),vs=Kn;var DL=s=>["__",s.language,s.label].join("|"),CL=(s,e)=>{if(s.id===e)return!0;let[t,i,r]=e.split("|");return s.language===i&&s.label===r},Ac=class s{constructor(e){this.available$=new _S;this.current$=new BL(void 0);this.error$=new _S;this.subscription=new LL;this.externalTracks=new Map;this.internalTracks=new Map;this.baseURL=e}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:$L.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:a})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(vs(t.internalTextTracks,()=>(0,wc.default)(this.internalTracks),a=>{Ct(a)&&this.setInternal(a)},{equal:(a,n)=>Ct(a)&&Ct(n)&&a.length===n.length&&a.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(Ts(a=>a.filter(({type:n})=>n==="internal"))),onError:r})),this.subscription.add(vs(t.externalTextTracks,()=>(0,wc.default)(this.externalTracks),a=>{Ct(a)&&this.setExternal(a)},{equal:(a,n)=>Ct(a)&&Ct(n)&&a.length===n.length&&a.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(Ts(a=>a.filter(({type:n})=>n==="external"))),onError:r})),this.subscription.add(vs(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(vs(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){ys(this.video);let{textTracks:e}=this.video;this.subscription.add(Sr(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(CS(Sr(e,"addtrack"),Sr(e,"removetrack"),VS(["init"])).pipe(Ts(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),OS((i,r)=>i.length===r.length&&i.every(({id:a},n)=>a===r[n].id))).subscribe(this.available$)),this.subscription.add(CS(Sr(e,"change"),VS(["init"])).pipe(Ts(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Ts(i=>i&&this.htmlTextTrackToITextTrack(i).id),OS()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Sr(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let n=a.target?.cues??null;n&&n.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Sr(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let r=i;Ct(t.align)&&(r.align=t.align),Ct(t.position)&&(r.position=t.position),Ct(t.size)&&(r.size=t.size),Ct(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){ys(this.video);let t=[...this.video.textTracks];return e?t:t.filter(s.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:DL(e),a=this.externalTracks.has(r),n=(a?this.externalTracks.get(r)?.isAuto:this.internalTracks.get(r)?.isAuto)??r.includes("auto");return a?{id:r,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(r)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:r,isAuto:a})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===r&&n.isAuto===a)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(r=>r.id===i)).forEach(([,i])=>this.detach(i))}select(e){ys(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(ML(e)||!CL(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){ys(this.video);let t=document.createElement("track");this.baseURL?t.setAttribute("src",new URL(e.url,this.baseURL).toString()):t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){ys(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},bt=Ac;var Fi=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var FS=s=>{let e=s;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Pc=s=>{let e=FS(s);return!!(e&&e.fullscreenElement&&e.fullscreenElement===s)},NS=s=>{let e=FS(s);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===s)};import{fromEvent as Ue,map as Vt,merge as ro,filterChanged as WS,isNonNullable as YS,Subject as HL,filter as Rc,mapTo as Mc,combine as zL,once as QL,throttle as GL,ErrorCategory as WL,ValueSubject as KS,Subscription as YL}from"@vkontakte/videoplayer-shared/es2024";var VL=3,US=(s,e,t=VL)=>{let i=0,r=0;for(let a=0;a<s.length;a++){let n=s.start(a),o=s.end(a);if(n<=e&&e<=o){if(i=n,r=o,!t)return{from:i,to:r};for(let u=a-1;u>=0;u--)s.end(u)+t>=i&&(i=s.start(u));for(let u=a+1;u<s.length;u++)s.start(u)-t<=r&&(r=s.end(u))}}return{from:i,to:r}};var Xn=class{constructor(){this._isMiuiBrowser=!1}get current(){return this._current}get isChrome(){return this.current==="Chrome"}get isFirefox(){return this.current==="Firefox"}get isSafari(){return this.current==="Safari"}get isOpera(){return this.current==="Opera"}get isEdge(){return this.current==="Edge"}get isYandex(){return this.current==="Yandex"}get isSamsungBrowser(){return this.current==="SamsungBrowser"}get currentVersion(){return this._current_version}get chromeVersion(){return this._chromeVersion}get firefoxVersion(){return this._firefoxVersion}get safariVersion(){return this._safariVersion}get operaVersion(){return this._operaVersion}get edgeVersion(){return this._edgeVersion}get yandexVersion(){return this._yandexVersion}get isMiuiBrowser(){return this._isMiuiBrowser}detect(){let{userAgent:e}=navigator;try{let t=/yabrowser/i.test(e)?"Yandex":void 0,i=/samsungbrowser/i.test(e)?"SamsungBrowser":void 0,r=/chrome|crios/i.test(e)?"Chrome":void 0,a=/chromium/i.test(e)?"Chromium":void 0,n=/firefox|fxios/i.test(e)?"Firefox":void 0,o=/webkit|safari|khtml/i.test(e)?"Safari":void 0,u=/opr\//i.test(e)?"Opera":void 0,l=/edg/i.test(e)?"Edge":void 0;this._isMiuiBrowser=/(XiaoMi)|(MiuiBrowser)/i.test(e),this._current=t||i||n||u||l||r||a||o||"Rest"}catch(t){console.error(t)}this.isChrome&&this.detectChromeVersion(),this.isFirefox&&this.detectFirefoxVersion(),this.isSafari&&this.detectSafariVersion(),this.isOpera&&this.detectOperaVersion(),this.isEdge&&this.detectEdgeVersion(),this.isYandex&&this.detectYandexVersion()}detectVersion(e){try{let{userAgent:t}=window.navigator,i=t.match(e);if(!i)return;let r=i[1],a=parseInt(r,10);if(!isNaN(a))return this._current_version=a,a}catch(t){console.error(t)}}detectChromeVersion(){this._chromeVersion=this.detectVersion(/Chrome\/(\d+\.\d+)/)}detectFirefoxVersion(){this._firefoxVersion=this.detectVersion(/Firefox\/(\d+\.\d+)/)}detectSafariVersion(){this._safariVersion=this.detectVersion(/Version\/(\d+)/)}detectOperaVersion(){this._operaVersion=this.detectVersion(/OPR\/(\d+\.\d+)/)}detectEdgeVersion(){this._edgeVersion=this.detectVersion(/Edg\/(\d+\.\d+)/)}detectYandexVersion(){this._yandexVersion=this.detectVersion(/YaBrowser\/(\d+\.\d+\.\d+)/)}};var qS=C(dt(),1);var Is=()=>/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion??navigator.userAgent)||navigator?.userAgentData?.mobile;var Jn=class{constructor(e){this._highEntropyValues={};this._displayChecker=e}get current(){return this._current}get isIOS(){let e=["iPhone","iPad","iPod"];return this._highEntropyValues.platform==="iOS"||(0,qS.default)(e,this.current)}get isMac(){return this._highEntropyValues.platform==="macOS"||this.current==="Mac"}get isApple(){return this.isIOS||this.isMac}get isIphoneOrOldIpad(){if(!this.isApple||!this._displayChecker.isTouch)return!1;let e=this.current==="iPad"||this._displayChecker.width>700,t=this._iosVersion;return!e||e&&!!t&&t<16}get isAndroid(){return this._highEntropyValues.platform==="Android"||this.current==="Android"}get isMobile(){return this._highEntropyValues.mobile||this._isMobile}get iOSVersion(){return this._iosVersion}detect(){let{userAgent:e}=navigator;try{this._isMobile=Is()}catch(t){console.error(t)}this.detectDevice(e),this.detectHighEntropyValues(),this.isIOS&&this.detectIOSVersion()}async detectHighEntropyValues(){let{userAgentData:e}=navigator;if(e?.getHighEntropyValues){let t=await e.getHighEntropyValues(["architecture","bitness","brands","mobile","platform","formFactor","model","platformVersion","wow64"]);this._highEntropyValues=t}}detectDevice(e){try{let t=/android/i.test(e)?"Android":void 0,i=/iphone/i.test(e)?"iPhone":void 0,r=/ipad/i.test(e)?"iPad":void 0,a=/ipod/i.test(e)?"iPod":void 0,n=/mac/i.test(e)?"Mac":void 0,o=/webOS|BlackBerry|IEMobile|Opera Mini/i.test(e)?"RestMobile":void 0;this._current=t||i||r||a||o||n||"Desktop"}catch(t){console.error(t)}}detectIOSVersion(){try{if(this._highEntropyValues.platformVersion){let a=this._highEntropyValues.platformVersion.split(".").slice(0,2).join("."),n=parseFloat(a);this._iosVersion=n;return}let{userAgent:e}=window.navigator,t=e.match(/OS (\d+(_\d+)?)/i);if(!t)return;let i=t[1].replace(/_/g,".");if(!i)return;let r=parseFloat(i);if(isNaN(r))return;this._iosVersion=r}catch(e){console.error(e)}}};var Zn=class{get isTouch(){return typeof this._maxTouchPoints=="number"?this._maxTouchPoints>1:"ontouchstart"in window}get maxTouchPoints(){return this._maxTouchPoints}get height(){return this._height}get width(){return this._width}get screenHeight(){return this._screenHeight}get screenWidth(){return this._screenWidth}get pixelRatio(){return this._pixelRatio}get isHDR(){return this._isHdr}get colorDepth(){return this._colorDepth}detect(){let{maxTouchPoints:e}=navigator;try{this._maxTouchPoints=e??0,this._isHdr=!!matchMedia("(dynamic-range: high)")?.matches,this._colorDepth=screen.colorDepth}catch(t){console.error(t)}try{this._pixelRatio=window.devicePixelRatio||1,this._height=screen.height,this._width=screen.width,this._height=screen.height,this._screenHeight=this._height*this._pixelRatio,this._screenWidth=this._width*this._pixelRatio}catch(t){console.error(t)}}};var ht=()=>window.ManagedMediaSource||window.MediaSource,vr=()=>!!(window.ManagedMediaSource&&window.ManagedSourceBuffer?.prototype?.appendBuffer),jS=()=>!!(window.MediaSource&&window.SourceBuffer?.prototype?.appendBuffer),eo=()=>window.ManagedMediaSource?new ManagedMediaSource:new MediaSource;var OL=document.createElement("video"),_L='video/mp4; codecs="avc1.42000a,mp4a.40.2"',FL='video/mp4; codecs="hev1.1.6.L93.B0"',HS='video/webm; codecs="vp09.00.10.08"',zS='video/webm; codecs="av01.0.00M.08"',NL='audio/mp4; codecs="mp4a.40.2"',UL='audio/webm; codecs="opus"',QS,qL=async()=>{if(!window.navigator.mediaCapabilities)return;let s={type:"media-source",video:{contentType:"video/webm",width:1280,height:720,bitrate:1e6,framerate:30}},[e,t]=await Promise.all([window.navigator.mediaCapabilities.decodingInfo({...s,video:{...s.video,contentType:zS}}),window.navigator.mediaCapabilities.decodingInfo({...s,video:{...s.video,contentType:HS}})]);QS={DASH_WEBM_AV1:e,DASH_WEBM:t}};qL().catch(s=>{console.log(OL),console.error(s)});var to=class{constructor(e,t){this._deviceChecker=e,this._browserChecker=t}get protocols(){return this._protocols}get containers(){return this._containers}get codecs(){return this._codecs}get webmDecodingInfo(){return QS}get supportedCodecs(){return Object.keys(this._codecs).filter(e=>this._codecs[e])}get nativeHlsSupported(){return this._nativeHlsSupported}detect(){this._video=document.createElement("video");try{this._protocols={mms:vr(),mse:jS(),hls:!!(this._video.canPlayType?.("application/x-mpegurl")||this._video.canPlayType?.("vnd.apple.mpegURL")),webrtc:!!window.RTCPeerConnection,ws:!!window.WebSocket},this._containers={mp4:!!this._video.canPlayType?.("video/mp4"),webm:!!this._video.canPlayType?.("video/webm"),cmaf:!0};let e=!!ht()?.isTypeSupported?.(_L),t=!!ht()?.isTypeSupported?.(FL),i=!!ht()?.isTypeSupported?.(NL);this._codecs={h264:e,h265:t,vp9:!!ht()?.isTypeSupported?.(HS),av1:!!ht()?.isTypeSupported?.(zS),aac:i,opus:!!ht()?.isTypeSupported?.(UL),mpeg:(e||t)&&i},this._nativeHlsSupported=this._protocols.hls&&this._containers.mp4}catch(e){console.error(e)}try{this.destroyVideoElement()}catch(e){console.error("Error destroying video element:",e)}}destroyVideoElement(){if(!this._video)return;if(this._video.pause(),this._video.currentTime=0,this._video.removeAttribute("src"),this._video.src="",this._video.load(),this._video.remove){this._video.remove(),this._video=null;return}this._video.parentNode&&this._video.parentNode.removeChild(this._video);let e=this._video.cloneNode(!1);this._video.parentNode?.replaceChild(e,this._video),this._video=null}};var GS="audio/mpeg",io=class{supportMp3(){return this._codecs.mp3&&this._containers.mpeg}detect(){this._audio=document.createElement("audio");try{this._containers={mpeg:!!this._audio.canPlayType?.(GS)},this._codecs={mp3:!!ht()?.isTypeSupported?.(GS)}}catch(e){console.error(e)}try{this.destroyAudioElement()}catch(e){console.error("Error destroying audio element:",e)}}destroyAudioElement(){if(!this._audio)return;if(this._audio.pause(),this._audio.currentTime=0,this._audio.removeAttribute("src"),this._audio.src="",this._audio.load(),this._audio.remove){this._audio.remove(),this._audio=null;return}this._audio.parentNode&&this._audio.parentNode.removeChild(this._audio);let e=this._audio.cloneNode(!1);this._audio.parentNode?.replaceChild(e,this._audio),this._audio=null}};import{ValueSubject as jL}from"@vkontakte/videoplayer-shared/es2024";var kc=class{constructor(){this.isInited$=new jL(!1);this._displayChecker=new Zn,this._deviceChecker=new Jn(this._displayChecker),this._browserChecker=new Xn,this._videoChecker=new to(this._deviceChecker,this._browserChecker),this._audioChecker=new io,this.detect()}get display(){return this._displayChecker}get device(){return this._deviceChecker}get browser(){return this._browserChecker}get video(){return this._videoChecker}get audio(){return this._audioChecker}async detect(){this._displayChecker.detect(),this._deviceChecker.detect(),this._browserChecker.detect(),this._videoChecker.detect(),this._audioChecker.detect(),this.isInited$.next(!0)}},F=new kc;var Ke=s=>{let e=v=>Ue(s,v).pipe(Mc(void 0)),t=new YL,i=()=>t.unsubscribe(),r=ro(Ue(s,"progress"),Ue(s,"timeupdate")).pipe(Vt(()=>US(s.buffered,s.currentTime))),a=F.browser.isSafari?zL({play:e("play").pipe(QL()),playing:e("playing")}).pipe(Mc(void 0)):e("playing"),n=Ue(s,"volumechange").pipe(Vt(()=>({muted:s.muted,volume:s.volume}))),o=Ue(s,"ratechange").pipe(Vt(()=>s.playbackRate)),u=Ue(s,"error").pipe(Rc(()=>!!(s.error||s.played.length)),Vt(()=>{let v=s.error;return{id:v?`MediaError#${v.code}`:"HtmlVideoError",category:WL.VIDEO_PIPELINE,message:v?v.message:"Error event from HTML video element",thrown:s.error??void 0}})),l=Ue(s,"timeupdate").pipe(Vt(()=>s.currentTime)),d=["waiting","seeking","seeked","timeupdate"],c=new HL,p=.3,h;t.add(ro(...d.map(v=>Ue(s,v))).subscribe(v=>{let D=s.currentTime;s.loop&&YS(h)&&YS(D)&&h>=s.duration-p&&D<=p&&c.next(h),h=D}));let f=e("pause").pipe(Rc(()=>!s.error&&h!==s.duration)),b=Ue(s,"enterpictureinpicture"),g=Ue(s,"leavepictureinpicture"),S=new KS(NS(s));t.add(b.subscribe(()=>S.next(!0))),t.add(g.subscribe(()=>S.next(!1)));let T=new KS(Pc(s)),y=Ue(s,"fullscreenchange");t.add(y.pipe(Vt(()=>Pc(s))).subscribe(T));let E=.1,w=1e3,L=Ue(s,"timeupdate").pipe(Vt(v=>s.duration-s.currentTime<E),WS()),O=ro(L.pipe(Rc(v=>!s.loop&&v)),Ue(s,"ended")).pipe(GL(w),Mc(void 0)),P=ro(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(v=>Ue(s,v)),L.pipe(Vt(v=>({type:v?"ended":"unknown"})))).pipe(Vt(v=>F.browser.isFirefox&&v.type==="ended"?s.readyState<2:s.readyState<3),WS());return{playing$:a,pause$:f,canplay$:e("canplay"),ended$:O,looped$:c,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:l,durationChange$:Ue(s,"durationchange").pipe(Vt(()=>s.duration)),isBuffering$:P,currentBuffer$:r,volumeState$:n,playbackRateState$:o,inPiP$:S,inFullscreen$:T,enterPip$:b,leavePip$:g,destroy:i}};import{VideoQuality as pi}from"@vkontakte/videoplayer-shared/es2024";var hi=s=>{switch(s){case"mobile":return pi.Q_144P;case"lowest":return pi.Q_240P;case"low":return pi.Q_360P;case"sd":case"medium":return pi.Q_480P;case"hd":case"high":return pi.Q_720P;case"fullhd":case"full":return pi.Q_1080P;case"quadhd":case"quad":return pi.Q_1440P;case"ultrahd":case"ultra":return pi.Q_2160P}};var je=C(Pt(),1),$c=C(dt(),1),Ni=C(Mi(),1);import{isNonNullable as J,isNullable as uo,now as pv,isHigher as lo,isHigherOrEqual as Tr,isInvariantQuality as co,isLowerOrEqual as Ir,videoSizeToQuality as hv,assertNotEmptyArray as po,assertNonNullable as fv}from"@vkontakte/videoplayer-shared/es2024";var Lc=!1,Jt={},rv=s=>{Lc=s},sv=()=>{Jt={}},av=s=>{s(Jt)},xs=(s,e)=>{Lc&&(Jt.meta=Jt.meta??{},Jt.meta[s]=e)},qe=class{constructor(e){this.name=e}next(e){if(!Lc)return;Jt.series=Jt.series??{};let t=Jt.series[this.name]??[];t.push([Date.now(),e]),Jt.series[this.name]=t}};import{isHigher as sB,isHigherOrEqual as XU,isLower as nv,isLowerOrEqual as JU,isNonNullable as so,isNullable as aB,videoHeightToQuality as ao}from"@vkontakte/videoplayer-shared/es2024";function Bc(s,e,t){return!s.max&&s.min===e?"high_quality":!s.min&&s.max===t?"traffic_saving":"unknown"}function no(s,e,t){return!!s&&Bc(s,e,t)==="high_quality"}function yr(s,e,t){return aB(s)||so(s.min)&&so(s.max)&&nv(s.max,s.min)||so(s.min)&&e&&sB(s.min,e)||so(s.max)&&t&&nv(s.max,t)}function ov({limits:s,highestAvailableHeight:e,lowestAvailableHeight:t}){return yr({max:s?.max?ao(s.max):void 0,min:s?.min?ao(s.min):void 0},e?ao(e):void 0,t?ao(t):void 0)}var mv=new qe("best_bitrate"),ho=(s,e,t)=>(e-t)*Math.pow(2,-10*s)+t;var xr=s=>(e,t)=>s*(Number(e.bitrate)-Number(t.bitrate)),fi=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=pv()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},fo='Assertion "ABR Tracks is empty array" failed',oo=new WeakMap,uv=new WeakMap,lv=new WeakMap,Es=(s,e,t,i)=>{let r=[...e].sort(xr(1)),a=[...t].sort(xr(1)),n=a.filter(u=>J(u.bitrate)&&J(s.bitrate)?s.bitrate/u.bitrate>i:!0),o=(0,je.default)(a,Math.round(a.length*r.indexOf(s)/(r.length+1)))??(0,je.default)(a,-1);return o&&(0,$c.default)(n,o)?o:n.length?(0,je.default)(n,-1):(0,je.default)(a,0)},ws=(s,e,t,i)=>{let r=oo.get(e);r||(r=[...e].sort(xr(1)),oo.set(e,r));let a=oo.get(t);a||(a=[...t].sort(xr(1)),oo.set(t,a));let n=lv.get(s);n||(n=a.filter(u=>J(u.bitrate)&&J(s.bitrate)?s.bitrate/u.bitrate>i:!0),lv.set(s,n));let o=(0,je.default)(a,Math.round(a.length*r.indexOf(s)/(r.length+1)))??(0,je.default)(a,-1);return o&&(0,$c.default)(n,o)?o:n.length?(0,je.default)(n,-1):(0,je.default)(a,0)},cv=s=>"quality"in s,mo=(s,e,t,i)=>{let r=J(i?.last?.bitrate)&&J(t?.bitrate)&&i.last.bitrate<t.bitrate?s.trackCooldownIncreaseQuality:s.trackCooldownDecreaseQuality,a=t&&i&&i.history[t.id]&&pv()-i.history[t.id]<=r&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let n=i.last;i?.recordSwitch(n);let o=cv(n)?"video":"audio",u=cv(n)?n.quality:n.bitrate;return e({message:`
6
+ var xx=Object.create;var xp=Object.defineProperty;var Ex=Object.getOwnPropertyDescriptor;var wx=Object.getOwnPropertyNames;var Ax=Object.getPrototypeOf,Px=Object.prototype.hasOwnProperty;var m=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports);var kx=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of wx(e))!Px.call(s,r)&&r!==t&&xp(s,r,{get:()=>e[r],enumerable:!(i=Ex(e,r))||i.enumerable});return s};var C=(s,e,t)=>(t=s!=null?xx(Ax(s)):{},kx(e||!s||!s.__esModule?xp(t,"default",{value:s,enumerable:!0}):t,s));var ve=m((Ru,wp)=>{"use strict";var Yr=function(s){return s&&s.Math===Math&&s};wp.exports=Yr(typeof globalThis=="object"&&globalThis)||Yr(typeof window=="object"&&window)||Yr(typeof self=="object"&&self)||Yr(typeof global=="object"&&global)||Yr(typeof Ru=="object"&&Ru)||function(){return this}()||Function("return this")()});var Le=m((HV,Ap)=>{"use strict";Ap.exports=function(s){try{return!!s()}catch{return!0}}});var Kr=m((zV,Pp)=>{"use strict";var Rx=Le();Pp.exports=!Rx(function(){var s=function(){}.bind();return typeof s!="function"||s.hasOwnProperty("prototype")})});var Mu=m((QV,Lp)=>{"use strict";var Mx=Kr(),Mp=Function.prototype,kp=Mp.apply,Rp=Mp.call;Lp.exports=typeof Reflect=="object"&&Reflect.apply||(Mx?Rp.bind(kp):function(){return Rp.apply(kp,arguments)})});var Pe=m((GV,Dp)=>{"use strict";var Bp=Kr(),$p=Function.prototype,Lu=$p.call,Lx=Bp&&$p.bind.bind(Lu,Lu);Dp.exports=Bp?Lx:function(s){return function(){return Lu.apply(s,arguments)}}});var Ai=m((WV,Vp)=>{"use strict";var Cp=Pe(),Bx=Cp({}.toString),$x=Cp("".slice);Vp.exports=function(s){return $x(Bx(s),8,-1)}});var Bu=m((YV,Op)=>{"use strict";var Dx=Ai(),Cx=Pe();Op.exports=function(s){if(Dx(s)==="Function")return Cx(s)}});var me=m((KV,_p)=>{"use strict";var $u=typeof document=="object"&&document.all;_p.exports=typeof $u>"u"&&$u!==void 0?function(s){return typeof s=="function"||s===$u}:function(s){return typeof s=="function"}});var ut=m((XV,Fp)=>{"use strict";var Vx=Le();Fp.exports=!Vx(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var lt=m((JV,Np)=>{"use strict";var Ox=Kr(),mn=Function.prototype.call;Np.exports=Ox?mn.bind(mn):function(){return mn.apply(mn,arguments)}});var Du=m(jp=>{"use strict";var Up={}.propertyIsEnumerable,qp=Object.getOwnPropertyDescriptor,_x=qp&&!Up.call({1:2},1);jp.f=_x?function(e){var t=qp(this,e);return!!t&&t.enumerable}:Up});var Xr=m((eO,Hp)=>{"use strict";Hp.exports=function(s,e){return{enumerable:!(s&1),configurable:!(s&2),writable:!(s&4),value:e}}});var Qp=m((tO,zp)=>{"use strict";var Fx=Pe(),Nx=Le(),Ux=Ai(),Cu=Object,qx=Fx("".split);zp.exports=Nx(function(){return!Cu("z").propertyIsEnumerable(0)})?function(s){return Ux(s)==="String"?qx(s,""):Cu(s)}:Cu});var Zi=m((iO,Gp)=>{"use strict";Gp.exports=function(s){return s==null}});var ui=m((rO,Wp)=>{"use strict";var jx=Zi(),Hx=TypeError;Wp.exports=function(s){if(jx(s))throw new Hx("Can't call method on "+s);return s}});var Pi=m((sO,Yp)=>{"use strict";var zx=Qp(),Qx=ui();Yp.exports=function(s){return zx(Qx(s))}});var ct=m((aO,Kp)=>{"use strict";var Gx=me();Kp.exports=function(s){return typeof s=="object"?s!==null:Gx(s)}});var er=m((nO,Xp)=>{"use strict";Xp.exports={}});var Yt=m((oO,Zp)=>{"use strict";var Vu=er(),Ou=ve(),Wx=me(),Jp=function(s){return Wx(s)?s:void 0};Zp.exports=function(s,e){return arguments.length<2?Jp(Vu[s])||Jp(Ou[s]):Vu[s]&&Vu[s][e]||Ou[s]&&Ou[s][e]}});var Jr=m((uO,eh)=>{"use strict";var Yx=Pe();eh.exports=Yx({}.isPrototypeOf)});var ki=m((lO,rh)=>{"use strict";var Kx=ve(),th=Kx.navigator,ih=th&&th.userAgent;rh.exports=ih?String(ih):""});var Fu=m((cO,lh)=>{"use strict";var uh=ve(),_u=ki(),sh=uh.process,ah=uh.Deno,nh=sh&&sh.versions||ah&&ah.version,oh=nh&&nh.v8,xt,bn;oh&&(xt=oh.split("."),bn=xt[0]>0&&xt[0]<4?1:+(xt[0]+xt[1]));!bn&&_u&&(xt=_u.match(/Edge\/(\d+)/),(!xt||xt[1]>=74)&&(xt=_u.match(/Chrome\/(\d+)/),xt&&(bn=+xt[1])));lh.exports=bn});var Nu=m((dO,dh)=>{"use strict";var ch=Fu(),Xx=Le(),Jx=ve(),Zx=Jx.String;dh.exports=!!Object.getOwnPropertySymbols&&!Xx(function(){var s=Symbol("symbol detection");return!Zx(s)||!(Object(s)instanceof Symbol)||!Symbol.sham&&ch&&ch<41})});var Uu=m((pO,ph)=>{"use strict";var eE=Nu();ph.exports=eE&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var qu=m((hO,hh)=>{"use strict";var tE=Yt(),iE=me(),rE=Jr(),sE=Uu(),aE=Object;hh.exports=sE?function(s){return typeof s=="symbol"}:function(s){var e=tE("Symbol");return iE(e)&&rE(e.prototype,aE(s))}});var Zr=m((fO,fh)=>{"use strict";var nE=String;fh.exports=function(s){try{return nE(s)}catch{return"Object"}}});var Bt=m((mO,mh)=>{"use strict";var oE=me(),uE=Zr(),lE=TypeError;mh.exports=function(s){if(oE(s))return s;throw new lE(uE(s)+" is not a function")}});var es=m((bO,bh)=>{"use strict";var cE=Bt(),dE=Zi();bh.exports=function(s,e){var t=s[e];return dE(t)?void 0:cE(t)}});var Sh=m((gO,gh)=>{"use strict";var ju=lt(),Hu=me(),zu=ct(),pE=TypeError;gh.exports=function(s,e){var t,i;if(e==="string"&&Hu(t=s.toString)&&!zu(i=ju(t,s))||Hu(t=s.valueOf)&&!zu(i=ju(t,s))||e!=="string"&&Hu(t=s.toString)&&!zu(i=ju(t,s)))return i;throw new pE("Can't convert object to primitive value")}});var Et=m((SO,vh)=>{"use strict";vh.exports=!0});var Ih=m((vO,Th)=>{"use strict";var yh=ve(),hE=Object.defineProperty;Th.exports=function(s,e){try{hE(yh,s,{value:e,configurable:!0,writable:!0})}catch{yh[s]=e}return e}});var ts=m((yO,wh)=>{"use strict";var fE=Et(),mE=ve(),bE=Ih(),xh="__core-js_shared__",Eh=wh.exports=mE[xh]||bE(xh,{});(Eh.versions||(Eh.versions=[])).push({version:"3.38.0",mode:fE?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var Qu=m((TO,Ph)=>{"use strict";var Ah=ts();Ph.exports=function(s,e){return Ah[s]||(Ah[s]=e||{})}});var tr=m((IO,kh)=>{"use strict";var gE=ui(),SE=Object;kh.exports=function(s){return SE(gE(s))}});var wt=m((xO,Rh)=>{"use strict";var vE=Pe(),yE=tr(),TE=vE({}.hasOwnProperty);Rh.exports=Object.hasOwn||function(e,t){return TE(yE(e),t)}});var Gu=m((EO,Mh)=>{"use strict";var IE=Pe(),xE=0,EE=Math.random(),wE=IE(1 .toString);Mh.exports=function(s){return"Symbol("+(s===void 0?"":s)+")_"+wE(++xE+EE,36)}});var Be=m((wO,Bh)=>{"use strict";var AE=ve(),PE=Qu(),Lh=wt(),kE=Gu(),RE=Nu(),ME=Uu(),ir=AE.Symbol,Wu=PE("wks"),LE=ME?ir.for||ir:ir&&ir.withoutSetter||kE;Bh.exports=function(s){return Lh(Wu,s)||(Wu[s]=RE&&Lh(ir,s)?ir[s]:LE("Symbol."+s)),Wu[s]}});var Vh=m((AO,Ch)=>{"use strict";var BE=lt(),$h=ct(),Dh=qu(),$E=es(),DE=Sh(),CE=Be(),VE=TypeError,OE=CE("toPrimitive");Ch.exports=function(s,e){if(!$h(s)||Dh(s))return s;var t=$E(s,OE),i;if(t){if(e===void 0&&(e="default"),i=BE(t,s,e),!$h(i)||Dh(i))return i;throw new VE("Can't convert object to primitive value")}return e===void 0&&(e="number"),DE(s,e)}});var Yu=m((PO,Oh)=>{"use strict";var _E=Vh(),FE=qu();Oh.exports=function(s){var e=_E(s,"string");return FE(e)?e:e+""}});var gn=m((kO,Fh)=>{"use strict";var NE=ve(),_h=ct(),Ku=NE.document,UE=_h(Ku)&&_h(Ku.createElement);Fh.exports=function(s){return UE?Ku.createElement(s):{}}});var Xu=m((RO,Nh)=>{"use strict";var qE=ut(),jE=Le(),HE=gn();Nh.exports=!qE&&!jE(function(){return Object.defineProperty(HE("div"),"a",{get:function(){return 7}}).a!==7})});var jh=m(qh=>{"use strict";var zE=ut(),QE=lt(),GE=Du(),WE=Xr(),YE=Pi(),KE=Yu(),XE=wt(),JE=Xu(),Uh=Object.getOwnPropertyDescriptor;qh.f=zE?Uh:function(e,t){if(e=YE(e),t=KE(t),JE)try{return Uh(e,t)}catch{}if(XE(e,t))return WE(!QE(GE.f,e,t),e[t])}});var Ju=m((LO,Hh)=>{"use strict";var ZE=Le(),ew=me(),tw=/#|\.prototype\./,is=function(s,e){var t=rw[iw(s)];return t===aw?!0:t===sw?!1:ew(e)?ZE(e):!!e},iw=is.normalize=function(s){return String(s).replace(tw,".").toLowerCase()},rw=is.data={},sw=is.NATIVE="N",aw=is.POLYFILL="P";Hh.exports=is});var rr=m((BO,Qh)=>{"use strict";var zh=Bu(),nw=Bt(),ow=Kr(),uw=zh(zh.bind);Qh.exports=function(s,e){return nw(s),e===void 0?s:ow?uw(s,e):function(){return s.apply(e,arguments)}}});var Zu=m(($O,Gh)=>{"use strict";var lw=ut(),cw=Le();Gh.exports=lw&&cw(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var $t=m((DO,Wh)=>{"use strict";var dw=ct(),pw=String,hw=TypeError;Wh.exports=function(s){if(dw(s))return s;throw new hw(pw(s)+" is not an object")}});var Ri=m(Kh=>{"use strict";var fw=ut(),mw=Xu(),bw=Zu(),Sn=$t(),Yh=Yu(),gw=TypeError,el=Object.defineProperty,Sw=Object.getOwnPropertyDescriptor,tl="enumerable",il="configurable",rl="writable";Kh.f=fw?bw?function(e,t,i){if(Sn(e),t=Yh(t),Sn(i),typeof e=="function"&&t==="prototype"&&"value"in i&&rl in i&&!i[rl]){var r=Sw(e,t);r&&r[rl]&&(e[t]=i.value,i={configurable:il in i?i[il]:r[il],enumerable:tl in i?i[tl]:r[tl],writable:!1})}return el(e,t,i)}:el:function(e,t,i){if(Sn(e),t=Yh(t),Sn(i),mw)try{return el(e,t,i)}catch{}if("get"in i||"set"in i)throw new gw("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var sr=m((VO,Xh)=>{"use strict";var vw=ut(),yw=Ri(),Tw=Xr();Xh.exports=vw?function(s,e,t){return yw.f(s,e,Tw(1,t))}:function(s,e,t){return s[e]=t,s}});var Ie=m((OO,Zh)=>{"use strict";var rs=ve(),Iw=Mu(),xw=Bu(),Ew=me(),ww=jh().f,Aw=Ju(),ar=er(),Pw=rr(),nr=sr(),Jh=wt();ts();var kw=function(s){var e=function(t,i,r){if(this instanceof e){switch(arguments.length){case 0:return new s;case 1:return new s(t);case 2:return new s(t,i)}return new s(t,i,r)}return Iw(s,this,arguments)};return e.prototype=s.prototype,e};Zh.exports=function(s,e){var t=s.target,i=s.global,r=s.stat,a=s.proto,n=i?rs:r?rs[t]:rs[t]&&rs[t].prototype,o=i?ar:ar[t]||nr(ar,t,{})[t],u=o.prototype,l,d,c,p,h,f,b,g,S;for(p in e)l=Aw(i?p:t+(r?".":"#")+p,s.forced),d=!l&&n&&Jh(n,p),f=o[p],d&&(s.dontCallGetSet?(S=ww(n,p),b=S&&S.value):b=n[p]),h=d&&b?b:e[p],!(!l&&!a&&typeof f==typeof h)&&(s.bind&&d?g=Pw(h,rs):s.wrap&&d?g=kw(h):a&&Ew(h)?g=xw(h):g=h,(s.sham||h&&h.sham||f&&f.sham)&&nr(g,"sham",!0),nr(o,p,g),a&&(c=t+"Prototype",Jh(ar,c)||nr(ar,c,{}),nr(ar[c],p,h),s.real&&u&&(l||!u[p])&&nr(u,p,h)))}});var tf=m((_O,ef)=>{"use strict";var Rw=Math.ceil,Mw=Math.floor;ef.exports=Math.trunc||function(e){var t=+e;return(t>0?Mw:Rw)(t)}});var ss=m((FO,rf)=>{"use strict";var Lw=tf();rf.exports=function(s){var e=+s;return e!==e||e===0?0:Lw(e)}});var af=m((NO,sf)=>{"use strict";var Bw=ss(),$w=Math.max,Dw=Math.min;sf.exports=function(s,e){var t=Bw(s);return t<0?$w(t+e,0):Dw(t,e)}});var sl=m((UO,nf)=>{"use strict";var Cw=ss(),Vw=Math.min;nf.exports=function(s){var e=Cw(s);return e>0?Vw(e,9007199254740991):0}});var or=m((qO,of)=>{"use strict";var Ow=sl();of.exports=function(s){return Ow(s.length)}});var al=m((jO,lf)=>{"use strict";var _w=Pi(),Fw=af(),Nw=or(),uf=function(s){return function(e,t,i){var r=_w(e),a=Nw(r);if(a===0)return!s&&-1;var n=Fw(i,a),o;if(s&&t!==t){for(;a>n;)if(o=r[n++],o!==o)return!0}else for(;a>n;n++)if((s||n in r)&&r[n]===t)return s||n||0;return!s&&-1}};lf.exports={includes:uf(!0),indexOf:uf(!1)}});var as=m((HO,cf)=>{"use strict";cf.exports=function(){}});var df=m(()=>{"use strict";var Uw=Ie(),qw=al().includes,jw=Le(),Hw=as(),zw=jw(function(){return!Array(1).includes()});Uw({target:"Array",proto:!0,forced:zw},{includes:function(e){return qw(this,e,arguments.length>1?arguments[1]:void 0)}});Hw("includes")});var li=m((GO,pf)=>{"use strict";var Qw=Yt();pf.exports=Qw});var ff=m((WO,hf)=>{"use strict";df();var Gw=li();hf.exports=Gw("Array","includes")});var bf=m((YO,mf)=>{"use strict";var Ww=ff();mf.exports=Ww});var dt=m((KO,gf)=>{"use strict";var Yw=bf();gf.exports=Yw});var Tn=m((u_,wf)=>{"use strict";var rA=Qu(),sA=Gu(),Ef=rA("keys");wf.exports=function(s){return Ef[s]||(Ef[s]=sA(s))}});var Pf=m((l_,Af)=>{"use strict";var aA=Le();Af.exports=!aA(function(){function s(){}return s.prototype.constructor=null,Object.getPrototypeOf(new s)!==s.prototype})});var In=m((c_,Rf)=>{"use strict";var nA=wt(),oA=me(),uA=tr(),lA=Tn(),cA=Pf(),kf=lA("IE_PROTO"),ul=Object,dA=ul.prototype;Rf.exports=cA?ul.getPrototypeOf:function(s){var e=uA(s);if(nA(e,kf))return e[kf];var t=e.constructor;return oA(t)&&e instanceof t?t.prototype:e instanceof ul?dA:null}});var xn=m((d_,Mf)=>{"use strict";Mf.exports={}});var $f=m((p_,Bf)=>{"use strict";var pA=Pe(),ll=wt(),hA=Pi(),fA=al().indexOf,mA=xn(),Lf=pA([].push);Bf.exports=function(s,e){var t=hA(s),i=0,r=[],a;for(a in t)!ll(mA,a)&&ll(t,a)&&Lf(r,a);for(;e.length>i;)ll(t,a=e[i++])&&(~fA(r,a)||Lf(r,a));return r}});var cl=m((h_,Df)=>{"use strict";Df.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var dl=m((f_,Cf)=>{"use strict";var bA=$f(),gA=cl();Cf.exports=Object.keys||function(e){return bA(e,gA)}});var pl=m((m_,Nf)=>{"use strict";var Of=ut(),SA=Le(),_f=Pe(),vA=In(),yA=dl(),TA=Pi(),IA=Du().f,Ff=_f(IA),xA=_f([].push),EA=Of&&SA(function(){var s=Object.create(null);return s[2]=2,!Ff(s,2)}),Vf=function(s){return function(e){for(var t=TA(e),i=yA(t),r=EA&&vA(t)===null,a=i.length,n=0,o=[],u;a>n;)u=i[n++],(!Of||(r?u in t:Ff(t,u)))&&xA(o,s?[u,t[u]]:t[u]);return o}};Nf.exports={entries:Vf(!0),values:Vf(!1)}});var Uf=m(()=>{"use strict";var wA=Ie(),AA=pl().entries;wA({target:"Object",stat:!0},{entries:function(e){return AA(e)}})});var jf=m((S_,qf)=>{"use strict";Uf();var PA=er();qf.exports=PA.Object.entries});var zf=m((v_,Hf)=>{"use strict";var kA=jf();Hf.exports=kA});var Mi=m((y_,Qf)=>{"use strict";var RA=zf();Qf.exports=RA});var Li=m((T_,Gf)=>{"use strict";Gf.exports={}});var Kf=m((I_,Yf)=>{"use strict";var MA=ve(),LA=me(),Wf=MA.WeakMap;Yf.exports=LA(Wf)&&/native code/.test(String(Wf))});var bl=m((x_,Zf)=>{"use strict";var BA=Kf(),Jf=ve(),$A=ct(),DA=sr(),hl=wt(),fl=ts(),CA=Tn(),VA=xn(),Xf="Object already initialized",ml=Jf.TypeError,OA=Jf.WeakMap,En,ns,wn,_A=function(s){return wn(s)?ns(s):En(s,{})},FA=function(s){return function(e){var t;if(!$A(e)||(t=ns(e)).type!==s)throw new ml("Incompatible receiver, "+s+" required");return t}};BA||fl.state?(At=fl.state||(fl.state=new OA),At.get=At.get,At.has=At.has,At.set=At.set,En=function(s,e){if(At.has(s))throw new ml(Xf);return e.facade=s,At.set(s,e),e},ns=function(s){return At.get(s)||{}},wn=function(s){return At.has(s)}):(Bi=CA("state"),VA[Bi]=!0,En=function(s,e){if(hl(s,Bi))throw new ml(Xf);return e.facade=s,DA(s,Bi,e),e},ns=function(s){return hl(s,Bi)?s[Bi]:{}},wn=function(s){return hl(s,Bi)});var At,Bi;Zf.exports={set:En,get:ns,has:wn,enforce:_A,getterFor:FA}});var vl=m((E_,tm)=>{"use strict";var gl=ut(),NA=wt(),em=Function.prototype,UA=gl&&Object.getOwnPropertyDescriptor,Sl=NA(em,"name"),qA=Sl&&function(){}.name==="something",jA=Sl&&(!gl||gl&&UA(em,"name").configurable);tm.exports={EXISTS:Sl,PROPER:qA,CONFIGURABLE:jA}});var rm=m(im=>{"use strict";var HA=ut(),zA=Zu(),QA=Ri(),GA=$t(),WA=Pi(),YA=dl();im.f=HA&&!zA?Object.defineProperties:function(e,t){GA(e);for(var i=WA(t),r=YA(t),a=r.length,n=0,o;a>n;)QA.f(e,o=r[n++],i[o]);return e}});var yl=m((A_,sm)=>{"use strict";var KA=Yt();sm.exports=KA("document","documentElement")});var El=m((P_,dm)=>{"use strict";var XA=$t(),JA=rm(),am=cl(),ZA=xn(),eP=yl(),tP=gn(),iP=Tn(),nm=">",om="<",Il="prototype",xl="script",lm=iP("IE_PROTO"),Tl=function(){},cm=function(s){return om+xl+nm+s+om+"/"+xl+nm},um=function(s){s.write(cm("")),s.close();var e=s.parentWindow.Object;return s=null,e},rP=function(){var s=tP("iframe"),e="java"+xl+":",t;return s.style.display="none",eP.appendChild(s),s.src=String(e),t=s.contentWindow.document,t.open(),t.write(cm("document.F=Object")),t.close(),t.F},An,Pn=function(){try{An=new ActiveXObject("htmlfile")}catch{}Pn=typeof document<"u"?document.domain&&An?um(An):rP():um(An);for(var s=am.length;s--;)delete Pn[Il][am[s]];return Pn()};ZA[lm]=!0;dm.exports=Object.create||function(e,t){var i;return e!==null?(Tl[Il]=XA(e),i=new Tl,Tl[Il]=null,i[lm]=e):i=Pn(),t===void 0?i:JA.f(i,t)}});var ur=m((k_,pm)=>{"use strict";var sP=sr();pm.exports=function(s,e,t,i){return i&&i.enumerable?s[e]=t:sP(s,e,t),s}});var kl=m((R_,mm)=>{"use strict";var aP=Le(),nP=me(),oP=ct(),uP=El(),hm=In(),lP=ur(),cP=Be(),dP=Et(),Pl=cP("iterator"),fm=!1,Kt,wl,Al;[].keys&&(Al=[].keys(),"next"in Al?(wl=hm(hm(Al)),wl!==Object.prototype&&(Kt=wl)):fm=!0);var pP=!oP(Kt)||aP(function(){var s={};return Kt[Pl].call(s)!==s});pP?Kt={}:dP&&(Kt=uP(Kt));nP(Kt[Pl])||lP(Kt,Pl,function(){return this});mm.exports={IteratorPrototype:Kt,BUGGY_SAFARI_ITERATORS:fm}});var kn=m((M_,gm)=>{"use strict";var hP=Be(),fP=hP("toStringTag"),bm={};bm[fP]="z";gm.exports=String(bm)==="[object z]"});var os=m((L_,Sm)=>{"use strict";var mP=kn(),bP=me(),Rn=Ai(),gP=Be(),SP=gP("toStringTag"),vP=Object,yP=Rn(function(){return arguments}())==="Arguments",TP=function(s,e){try{return s[e]}catch{}};Sm.exports=mP?Rn:function(s){var e,t,i;return s===void 0?"Undefined":s===null?"Null":typeof(t=TP(e=vP(s),SP))=="string"?t:yP?Rn(e):(i=Rn(e))==="Object"&&bP(e.callee)?"Arguments":i}});var ym=m((B_,vm)=>{"use strict";var IP=kn(),xP=os();vm.exports=IP?{}.toString:function(){return"[object "+xP(this)+"]"}});var us=m(($_,Im)=>{"use strict";var EP=kn(),wP=Ri().f,AP=sr(),PP=wt(),kP=ym(),RP=Be(),Tm=RP("toStringTag");Im.exports=function(s,e,t,i){var r=t?s:s&&s.prototype;r&&(PP(r,Tm)||wP(r,Tm,{configurable:!0,value:e}),i&&!EP&&AP(r,"toString",kP))}});var Em=m((D_,xm)=>{"use strict";var MP=kl().IteratorPrototype,LP=El(),BP=Xr(),$P=us(),DP=Li(),CP=function(){return this};xm.exports=function(s,e,t,i){var r=e+" Iterator";return s.prototype=LP(MP,{next:BP(+!i,t)}),$P(s,r,!1,!0),DP[r]=CP,s}});var Am=m((C_,wm)=>{"use strict";var VP=Pe(),OP=Bt();wm.exports=function(s,e,t){try{return VP(OP(Object.getOwnPropertyDescriptor(s,e)[t]))}catch{}}});var km=m((V_,Pm)=>{"use strict";var _P=ct();Pm.exports=function(s){return _P(s)||s===null}});var Mm=m((O_,Rm)=>{"use strict";var FP=km(),NP=String,UP=TypeError;Rm.exports=function(s){if(FP(s))return s;throw new UP("Can't set "+NP(s)+" as a prototype")}});var Rl=m((__,Lm)=>{"use strict";var qP=Am(),jP=ct(),HP=ui(),zP=Mm();Lm.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var s=!1,e={},t;try{t=qP(Object.prototype,"__proto__","set"),t(e,[]),s=e instanceof Array}catch{}return function(r,a){return HP(r),zP(a),jP(r)&&(s?t(r,a):r.__proto__=a),r}}():void 0)});var qm=m((F_,Um)=>{"use strict";var QP=Ie(),GP=lt(),Mn=Et(),Fm=vl(),WP=me(),YP=Em(),Bm=In(),$m=Rl(),KP=us(),XP=sr(),Ml=ur(),JP=Be(),Dm=Li(),Nm=kl(),ZP=Fm.PROPER,ek=Fm.CONFIGURABLE,Cm=Nm.IteratorPrototype,Ln=Nm.BUGGY_SAFARI_ITERATORS,ls=JP("iterator"),Vm="keys",cs="values",Om="entries",_m=function(){return this};Um.exports=function(s,e,t,i,r,a,n){YP(t,e,i);var o=function(S){if(S===r&&p)return p;if(!Ln&&S&&S in d)return d[S];switch(S){case Vm:return function(){return new t(this,S)};case cs:return function(){return new t(this,S)};case Om:return function(){return new t(this,S)}}return function(){return new t(this)}},u=e+" Iterator",l=!1,d=s.prototype,c=d[ls]||d["@@iterator"]||r&&d[r],p=!Ln&&c||o(r),h=e==="Array"&&d.entries||c,f,b,g;if(h&&(f=Bm(h.call(new s)),f!==Object.prototype&&f.next&&(!Mn&&Bm(f)!==Cm&&($m?$m(f,Cm):WP(f[ls])||Ml(f,ls,_m)),KP(f,u,!0,!0),Mn&&(Dm[u]=_m))),ZP&&r===cs&&c&&c.name!==cs&&(!Mn&&ek?XP(d,"name",cs):(l=!0,p=function(){return GP(c,this)})),r)if(b={values:o(cs),keys:a?p:o(Vm),entries:o(Om)},n)for(g in b)(Ln||l||!(g in d))&&Ml(d,g,b[g]);else QP({target:e,proto:!0,forced:Ln||l},b);return(!Mn||n)&&d[ls]!==p&&Ml(d,ls,p,{name:r}),Dm[e]=p,b}});var Hm=m((N_,jm)=>{"use strict";jm.exports=function(s,e){return{value:s,done:e}}});var Bl=m((U_,Ym)=>{"use strict";var tk=Pi(),Ll=as(),zm=Li(),Gm=bl(),ik=Ri().f,rk=qm(),Bn=Hm(),sk=Et(),ak=ut(),Wm="Array Iterator",nk=Gm.set,ok=Gm.getterFor(Wm);Ym.exports=rk(Array,"Array",function(s,e){nk(this,{type:Wm,target:tk(s),index:0,kind:e})},function(){var s=ok(this),e=s.target,t=s.index++;if(!e||t>=e.length)return s.target=void 0,Bn(void 0,!0);switch(s.kind){case"keys":return Bn(t,!1);case"values":return Bn(e[t],!1)}return Bn([t,e[t]],!1)},"values");var Qm=zm.Arguments=zm.Array;Ll("keys");Ll("values");Ll("entries");if(!sk&&ak&&Qm.name!=="values")try{ik(Qm,"name",{value:"values"})}catch{}});var Xm=m((q_,Km)=>{"use strict";var uk=Be(),lk=Li(),ck=uk("iterator"),dk=Array.prototype;Km.exports=function(s){return s!==void 0&&(lk.Array===s||dk[ck]===s)}});var $l=m((j_,Zm)=>{"use strict";var pk=os(),Jm=es(),hk=Zi(),fk=Li(),mk=Be(),bk=mk("iterator");Zm.exports=function(s){if(!hk(s))return Jm(s,bk)||Jm(s,"@@iterator")||fk[pk(s)]}});var tb=m((H_,eb)=>{"use strict";var gk=lt(),Sk=Bt(),vk=$t(),yk=Zr(),Tk=$l(),Ik=TypeError;eb.exports=function(s,e){var t=arguments.length<2?Tk(s):e;if(Sk(t))return vk(gk(t,s));throw new Ik(yk(s)+" is not iterable")}});var sb=m((z_,rb)=>{"use strict";var xk=lt(),ib=$t(),Ek=es();rb.exports=function(s,e,t){var i,r;ib(s);try{if(i=Ek(s,"return"),!i){if(e==="throw")throw t;return t}i=xk(i,s)}catch(a){r=!0,i=a}if(e==="throw")throw t;if(r)throw i;return ib(i),t}});var Dn=m((Q_,ub)=>{"use strict";var wk=rr(),Ak=lt(),Pk=$t(),kk=Zr(),Rk=Xm(),Mk=or(),ab=Jr(),Lk=tb(),Bk=$l(),nb=sb(),$k=TypeError,$n=function(s,e){this.stopped=s,this.result=e},ob=$n.prototype;ub.exports=function(s,e,t){var i=t&&t.that,r=!!(t&&t.AS_ENTRIES),a=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),u=wk(e,i),l,d,c,p,h,f,b,g=function(T){return l&&nb(l,"normal",T),new $n(!0,T)},S=function(T){return r?(Pk(T),o?u(T[0],T[1],g):u(T[0],T[1])):o?u(T,g):u(T)};if(a)l=s.iterator;else if(n)l=s;else{if(d=Bk(s),!d)throw new $k(kk(s)+" is not iterable");if(Rk(d)){for(c=0,p=Mk(s);p>c;c++)if(h=S(s[c]),h&&ab(ob,h))return h;return new $n(!1)}l=Lk(s,d)}for(f=a?s.next:l.next;!(b=Ak(f,l)).done;){try{h=S(b.value)}catch(T){nb(l,"throw",T)}if(typeof h=="object"&&h&&ab(ob,h))return h}return new $n(!1)}});var cb=m((G_,lb)=>{"use strict";var Dk=ut(),Ck=Ri(),Vk=Xr();lb.exports=function(s,e,t){Dk?Ck.f(s,e,Vk(0,t)):s[e]=t}});var db=m(()=>{"use strict";var Ok=Ie(),_k=Dn(),Fk=cb();Ok({target:"Object",stat:!0},{fromEntries:function(e){var t={};return _k(e,function(i,r){Fk(t,i,r)},{AS_ENTRIES:!0}),t}})});var hb=m((K_,pb)=>{"use strict";Bl();db();var Nk=er();pb.exports=Nk.Object.fromEntries});var mb=m((X_,fb)=>{"use strict";fb.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var gb=m(()=>{"use strict";Bl();var Uk=mb(),qk=ve(),jk=us(),bb=Li();for(Cn in Uk)jk(qk[Cn],Cn),bb[Cn]=bb.Array;var Cn});var vb=m((eF,Sb)=>{"use strict";var Hk=hb();gb();Sb.exports=Hk});var Dl=m((tF,yb)=>{"use strict";var zk=vb();yb.exports=zk});var Tb=m(()=>{"use strict"});var Cl=m((sF,Ib)=>{"use strict";var ds=ve(),Qk=ki(),Gk=Ai(),Vn=function(s){return Qk.slice(0,s.length)===s};Ib.exports=function(){return Vn("Bun/")?"BUN":Vn("Cloudflare-Workers")?"CLOUDFLARE":Vn("Deno/")?"DENO":Vn("Node.js/")?"NODE":ds.Bun&&typeof Bun.version=="string"?"BUN":ds.Deno&&typeof Deno.version=="object"?"DENO":Gk(ds.process)==="process"?"NODE":ds.window&&ds.document?"BROWSER":"REST"}()});var On=m((aF,xb)=>{"use strict";var Wk=Cl();xb.exports=Wk==="NODE"});var wb=m((nF,Eb)=>{"use strict";var Yk=Ri();Eb.exports=function(s,e,t){return Yk.f(s,e,t)}});var kb=m((oF,Pb)=>{"use strict";var Kk=Yt(),Xk=wb(),Jk=Be(),Zk=ut(),Ab=Jk("species");Pb.exports=function(s){var e=Kk(s);Zk&&e&&!e[Ab]&&Xk(e,Ab,{configurable:!0,get:function(){return this}})}});var Mb=m((uF,Rb)=>{"use strict";var eR=Jr(),tR=TypeError;Rb.exports=function(s,e){if(eR(e,s))return s;throw new tR("Incorrect invocation")}});var Ol=m((lF,Lb)=>{"use strict";var iR=Pe(),rR=me(),Vl=ts(),sR=iR(Function.toString);rR(Vl.inspectSource)||(Vl.inspectSource=function(s){return sR(s)});Lb.exports=Vl.inspectSource});var Fl=m((cF,Vb)=>{"use strict";var aR=Pe(),nR=Le(),Bb=me(),oR=os(),uR=Yt(),lR=Ol(),$b=function(){},Db=uR("Reflect","construct"),_l=/^\s*(?:class|function)\b/,cR=aR(_l.exec),dR=!_l.test($b),ps=function(e){if(!Bb(e))return!1;try{return Db($b,[],e),!0}catch{return!1}},Cb=function(e){if(!Bb(e))return!1;switch(oR(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return dR||!!cR(_l,lR(e))}catch{return!0}};Cb.sham=!0;Vb.exports=!Db||nR(function(){var s;return ps(ps.call)||!ps(Object)||!ps(function(){s=!0})||s})?Cb:ps});var _b=m((dF,Ob)=>{"use strict";var pR=Fl(),hR=Zr(),fR=TypeError;Ob.exports=function(s){if(pR(s))return s;throw new fR(hR(s)+" is not a constructor")}});var Nl=m((pF,Nb)=>{"use strict";var Fb=$t(),mR=_b(),bR=Zi(),gR=Be(),SR=gR("species");Nb.exports=function(s,e){var t=Fb(s).constructor,i;return t===void 0||bR(i=Fb(t)[SR])?e:mR(i)}});var qb=m((hF,Ub)=>{"use strict";var vR=Pe();Ub.exports=vR([].slice)});var Hb=m((fF,jb)=>{"use strict";var yR=TypeError;jb.exports=function(s,e){if(s<e)throw new yR("Not enough arguments");return s}});var Ul=m((mF,zb)=>{"use strict";var TR=ki();zb.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(TR)});var Kl=m((bF,eg)=>{"use strict";var pt=ve(),IR=Mu(),xR=rr(),Qb=me(),ER=wt(),Zb=Le(),Gb=yl(),wR=qb(),Wb=gn(),AR=Hb(),PR=Ul(),kR=On(),Gl=pt.setImmediate,Wl=pt.clearImmediate,RR=pt.process,ql=pt.Dispatch,MR=pt.Function,Yb=pt.MessageChannel,LR=pt.String,jl=0,hs={},Kb="onreadystatechange",fs,$i,Hl,zl;Zb(function(){fs=pt.location});var Yl=function(s){if(ER(hs,s)){var e=hs[s];delete hs[s],e()}},Ql=function(s){return function(){Yl(s)}},Xb=function(s){Yl(s.data)},Jb=function(s){pt.postMessage(LR(s),fs.protocol+"//"+fs.host)};(!Gl||!Wl)&&(Gl=function(e){AR(arguments.length,1);var t=Qb(e)?e:MR(e),i=wR(arguments,1);return hs[++jl]=function(){IR(t,void 0,i)},$i(jl),jl},Wl=function(e){delete hs[e]},kR?$i=function(s){RR.nextTick(Ql(s))}:ql&&ql.now?$i=function(s){ql.now(Ql(s))}:Yb&&!PR?(Hl=new Yb,zl=Hl.port2,Hl.port1.onmessage=Xb,$i=xR(zl.postMessage,zl)):pt.addEventListener&&Qb(pt.postMessage)&&!pt.importScripts&&fs&&fs.protocol!=="file:"&&!Zb(Jb)?($i=Jb,pt.addEventListener("message",Xb,!1)):Kb in Wb("script")?$i=function(s){Gb.appendChild(Wb("script"))[Kb]=function(){Gb.removeChild(this),Yl(s)}}:$i=function(s){setTimeout(Ql(s),0)});eg.exports={set:Gl,clear:Wl}});var rg=m((gF,ig)=>{"use strict";var tg=ve(),BR=ut(),$R=Object.getOwnPropertyDescriptor;ig.exports=function(s){if(!BR)return tg[s];var e=$R(tg,s);return e&&e.value}});var Xl=m((SF,ag)=>{"use strict";var sg=function(){this.head=null,this.tail=null};sg.prototype={add:function(s){var e={item:s,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var s=this.head;if(s){var e=this.head=s.next;return e===null&&(this.tail=null),s.item}}};ag.exports=sg});var og=m((vF,ng)=>{"use strict";var DR=ki();ng.exports=/ipad|iphone|ipod/i.test(DR)&&typeof Pebble<"u"});var lg=m((yF,ug)=>{"use strict";var CR=ki();ug.exports=/web0s(?!.*chrome)/i.test(CR)});var bg=m((TF,mg)=>{"use strict";var cr=ve(),VR=rg(),cg=rr(),Jl=Kl().set,OR=Xl(),_R=Ul(),FR=og(),NR=lg(),Zl=On(),dg=cr.MutationObserver||cr.WebKitMutationObserver,pg=cr.document,hg=cr.process,_n=cr.Promise,ic=VR("queueMicrotask"),lr,ec,tc,Fn,fg;ic||(ms=new OR,bs=function(){var s,e;for(Zl&&(s=hg.domain)&&s.exit();e=ms.get();)try{e()}catch(t){throw ms.head&&lr(),t}s&&s.enter()},!_R&&!Zl&&!NR&&dg&&pg?(ec=!0,tc=pg.createTextNode(""),new dg(bs).observe(tc,{characterData:!0}),lr=function(){tc.data=ec=!ec}):!FR&&_n&&_n.resolve?(Fn=_n.resolve(void 0),Fn.constructor=_n,fg=cg(Fn.then,Fn),lr=function(){fg(bs)}):Zl?lr=function(){hg.nextTick(bs)}:(Jl=cg(Jl,cr),lr=function(){Jl(bs)}),ic=function(s){ms.head||lr(),ms.add(s)});var ms,bs;mg.exports=ic});var Sg=m((IF,gg)=>{"use strict";gg.exports=function(s,e){try{arguments.length===1?console.error(s):console.error(s,e)}catch{}}});var Nn=m((xF,vg)=>{"use strict";vg.exports=function(s){try{return{error:!1,value:s()}}catch(e){return{error:!0,value:e}}}});var Di=m((EF,yg)=>{"use strict";var UR=ve();yg.exports=UR.Promise});var dr=m((wF,Eg)=>{"use strict";var qR=ve(),gs=Di(),jR=me(),HR=Ju(),zR=Ol(),QR=Be(),Tg=Cl(),GR=Et(),rc=Fu(),Ig=gs&&gs.prototype,WR=QR("species"),sc=!1,xg=jR(qR.PromiseRejectionEvent),YR=HR("Promise",function(){var s=zR(gs),e=s!==String(gs);if(!e&&rc===66||GR&&!(Ig.catch&&Ig.finally))return!0;if(!rc||rc<51||!/native code/.test(s)){var t=new gs(function(a){a(1)}),i=function(a){a(function(){},function(){})},r=t.constructor={};if(r[WR]=i,sc=t.then(function(){})instanceof i,!sc)return!0}return!e&&(Tg==="BROWSER"||Tg==="DENO")&&!xg});Eg.exports={CONSTRUCTOR:YR,REJECTION_EVENT:xg,SUBCLASSING:sc}});var pr=m((AF,Ag)=>{"use strict";var wg=Bt(),KR=TypeError,XR=function(s){var e,t;this.promise=new s(function(i,r){if(e!==void 0||t!==void 0)throw new KR("Bad Promise constructor");e=i,t=r}),this.resolve=wg(e),this.reject=wg(t)};Ag.exports.f=function(s){return new XR(s)}});var zg=m(()=>{"use strict";var JR=Ie(),ZR=Et(),Hn=On(),ci=ve(),br=lt(),Pg=ur(),kg=Rl(),eM=us(),tM=kb(),iM=Bt(),jn=me(),rM=ct(),sM=Mb(),aM=Nl(),$g=Kl().set,lc=bg(),nM=Sg(),oM=Nn(),uM=Xl(),Dg=bl(),zn=Di(),cc=dr(),Cg=pr(),Qn="Promise",Vg=cc.CONSTRUCTOR,lM=cc.REJECTION_EVENT,cM=cc.SUBCLASSING,ac=Dg.getterFor(Qn),dM=Dg.set,hr=zn&&zn.prototype,Ci=zn,Un=hr,Og=ci.TypeError,nc=ci.document,dc=ci.process,oc=Cg.f,pM=oc,hM=!!(nc&&nc.createEvent&&ci.dispatchEvent),_g="unhandledrejection",fM="rejectionhandled",Rg=0,Fg=1,mM=2,pc=1,Ng=2,qn,Mg,bM,Lg,Ug=function(s){var e;return rM(s)&&jn(e=s.then)?e:!1},qg=function(s,e){var t=e.value,i=e.state===Fg,r=i?s.ok:s.fail,a=s.resolve,n=s.reject,o=s.domain,u,l,d;try{r?(i||(e.rejection===Ng&&SM(e),e.rejection=pc),r===!0?u=t:(o&&o.enter(),u=r(t),o&&(o.exit(),d=!0)),u===s.promise?n(new Og("Promise-chain cycle")):(l=Ug(u))?br(l,u,a,n):a(u)):n(t)}catch(c){o&&!d&&o.exit(),n(c)}},jg=function(s,e){s.notified||(s.notified=!0,lc(function(){for(var t=s.reactions,i;i=t.get();)qg(i,s);s.notified=!1,e&&!s.rejection&&gM(s)}))},Hg=function(s,e,t){var i,r;hM?(i=nc.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(s,!1,!0),ci.dispatchEvent(i)):i={promise:e,reason:t},!lM&&(r=ci["on"+s])?r(i):s===_g&&nM("Unhandled promise rejection",t)},gM=function(s){br($g,ci,function(){var e=s.facade,t=s.value,i=Bg(s),r;if(i&&(r=oM(function(){Hn?dc.emit("unhandledRejection",t,e):Hg(_g,e,t)}),s.rejection=Hn||Bg(s)?Ng:pc,r.error))throw r.value})},Bg=function(s){return s.rejection!==pc&&!s.parent},SM=function(s){br($g,ci,function(){var e=s.facade;Hn?dc.emit("rejectionHandled",e):Hg(fM,e,s.value)})},fr=function(s,e,t){return function(i){s(e,i,t)}},mr=function(s,e,t){s.done||(s.done=!0,t&&(s=t),s.value=e,s.state=mM,jg(s,!0))},uc=function(s,e,t){if(!s.done){s.done=!0,t&&(s=t);try{if(s.facade===e)throw new Og("Promise can't be resolved itself");var i=Ug(e);i?lc(function(){var r={done:!1};try{br(i,e,fr(uc,r,s),fr(mr,r,s))}catch(a){mr(r,a,s)}}):(s.value=e,s.state=Fg,jg(s,!1))}catch(r){mr({done:!1},r,s)}}};if(Vg&&(Ci=function(e){sM(this,Un),iM(e),br(qn,this);var t=ac(this);try{e(fr(uc,t),fr(mr,t))}catch(i){mr(t,i)}},Un=Ci.prototype,qn=function(e){dM(this,{type:Qn,done:!1,notified:!1,parent:!1,reactions:new uM,rejection:!1,state:Rg,value:void 0})},qn.prototype=Pg(Un,"then",function(e,t){var i=ac(this),r=oc(aM(this,Ci));return i.parent=!0,r.ok=jn(e)?e:!0,r.fail=jn(t)&&t,r.domain=Hn?dc.domain:void 0,i.state===Rg?i.reactions.add(r):lc(function(){qg(r,i)}),r.promise}),Mg=function(){var s=new qn,e=ac(s);this.promise=s,this.resolve=fr(uc,e),this.reject=fr(mr,e)},Cg.f=oc=function(s){return s===Ci||s===bM?new Mg(s):pM(s)},!ZR&&jn(zn)&&hr!==Object.prototype)){Lg=hr.then,cM||Pg(hr,"then",function(e,t){var i=this;return new Ci(function(r,a){br(Lg,i,r,a)}).then(e,t)},{unsafe:!0});try{delete hr.constructor}catch{}kg&&kg(hr,Un)}JR({global:!0,constructor:!0,wrap:!0,forced:Vg},{Promise:Ci});eM(Ci,Qn,!1,!0);tM(Qn)});var Kg=m((RF,Yg)=>{"use strict";var vM=Be(),Gg=vM("iterator"),Wg=!1;try{Qg=0,hc={next:function(){return{done:!!Qg++}},return:function(){Wg=!0}},hc[Gg]=function(){return this},Array.from(hc,function(){throw 2})}catch{}var Qg,hc;Yg.exports=function(s,e){try{if(!e&&!Wg)return!1}catch{return!1}var t=!1;try{var i={};i[Gg]=function(){return{next:function(){return{done:t=!0}}}},s(i)}catch{}return t}});var fc=m((MF,Xg)=>{"use strict";var yM=Di(),TM=Kg(),IM=dr().CONSTRUCTOR;Xg.exports=IM||!TM(function(s){yM.all(s).then(void 0,function(){})})});var Jg=m(()=>{"use strict";var xM=Ie(),EM=lt(),wM=Bt(),AM=pr(),PM=Nn(),kM=Dn(),RM=fc();xM({target:"Promise",stat:!0,forced:RM},{all:function(e){var t=this,i=AM.f(t),r=i.resolve,a=i.reject,n=PM(function(){var o=wM(t.resolve),u=[],l=0,d=1;kM(e,function(c){var p=l++,h=!1;d++,EM(o,t,c).then(function(f){h||(h=!0,u[p]=f,--d||r(u))},a)}),--d||r(u)});return n.error&&a(n.value),i.promise}})});var eS=m(()=>{"use strict";var MM=Ie(),LM=Et(),BM=dr().CONSTRUCTOR,bc=Di(),$M=Yt(),DM=me(),CM=ur(),Zg=bc&&bc.prototype;MM({target:"Promise",proto:!0,forced:BM,real:!0},{catch:function(s){return this.then(void 0,s)}});!LM&&DM(bc)&&(mc=$M("Promise").prototype.catch,Zg.catch!==mc&&CM(Zg,"catch",mc,{unsafe:!0}));var mc});var tS=m(()=>{"use strict";var VM=Ie(),OM=lt(),_M=Bt(),FM=pr(),NM=Nn(),UM=Dn(),qM=fc();VM({target:"Promise",stat:!0,forced:qM},{race:function(e){var t=this,i=FM.f(t),r=i.reject,a=NM(function(){var n=_M(t.resolve);UM(e,function(o){OM(n,t,o).then(i.resolve,r)})});return a.error&&r(a.value),i.promise}})});var iS=m(()=>{"use strict";var jM=Ie(),HM=pr(),zM=dr().CONSTRUCTOR;jM({target:"Promise",stat:!0,forced:zM},{reject:function(e){var t=HM.f(this),i=t.reject;return i(e),t.promise}})});var gc=m((FF,rS)=>{"use strict";var QM=$t(),GM=ct(),WM=pr();rS.exports=function(s,e){if(QM(s),GM(e)&&e.constructor===s)return e;var t=WM.f(s),i=t.resolve;return i(e),t.promise}});var nS=m(()=>{"use strict";var YM=Ie(),KM=Yt(),sS=Et(),XM=Di(),aS=dr().CONSTRUCTOR,JM=gc(),ZM=KM("Promise"),eL=sS&&!aS;YM({target:"Promise",stat:!0,forced:sS||aS},{resolve:function(e){return JM(eL&&this===ZM?XM:this,e)}})});var oS=m(()=>{"use strict";zg();Jg();eS();tS();iS();nS()});var dS=m(()=>{"use strict";var tL=Ie(),iL=Et(),Gn=Di(),rL=Le(),lS=Yt(),cS=me(),sL=Nl(),uS=gc(),aL=ur(),vc=Gn&&Gn.prototype,nL=!!Gn&&rL(function(){vc.finally.call({then:function(){}},function(){})});tL({target:"Promise",proto:!0,real:!0,forced:nL},{finally:function(s){var e=sL(this,lS("Promise")),t=cS(s);return this.then(t?function(i){return uS(e,s()).then(function(){return i})}:s,t?function(i){return uS(e,s()).then(function(){throw i})}:s)}});!iL&&cS(Gn)&&(Sc=lS("Promise").prototype.finally,vc.finally!==Sc&&aL(vc,"finally",Sc,{unsafe:!0}));var Sc});var hS=m((QF,pS)=>{"use strict";Tb();oS();dS();var oL=li();pS.exports=oL("Promise","finally")});var mS=m((GF,fS)=>{"use strict";var uL=hS();fS.exports=uL});var Wn=m((WF,bS)=>{"use strict";var lL=mS();bS.exports=lL});var RS=m(()=>{"use strict";var xL=Ie(),EL=pl().values;xL({target:"Object",stat:!0},{values:function(e){return EL(e)}})});var LS=m((BN,MS)=>{"use strict";RS();var wL=er();MS.exports=wL.Object.values});var $S=m(($N,BS)=>{"use strict";var AL=LS();BS.exports=AL});var _i=m((DN,DS)=>{"use strict";var PL=$S();DS.exports=PL});var XS=m(()=>{"use strict";var KL=Ie(),XL=tr(),JL=or(),ZL=ss(),eB=as();KL({target:"Array",proto:!0},{at:function(e){var t=XL(this),i=JL(t),r=ZL(e),a=r>=0?r:i+r;return a<0||a>=i?void 0:t[a]}});eB("at")});var ZS=m((jU,JS)=>{"use strict";XS();var tB=li();JS.exports=tB("Array","at")});var tv=m((HU,ev)=>{"use strict";var iB=ZS();ev.exports=iB});var Pt=m((zU,iv)=>{"use strict";var rB=tv();iv.exports=rB});var qc=m((Lq,Cv)=>{"use strict";var OB=Ai();Cv.exports=Array.isArray||function(e){return OB(e)==="Array"}});var Ov=m((Bq,Vv)=>{"use strict";var _B=TypeError,FB=9007199254740991;Vv.exports=function(s){if(s>FB)throw _B("Maximum allowed index exceeded");return s}});var Nv=m(($q,Fv)=>{"use strict";var NB=qc(),UB=or(),qB=Ov(),jB=rr(),_v=function(s,e,t,i,r,a,n,o){for(var u=r,l=0,d=n?jB(n,o):!1,c,p;l<i;)l in t&&(c=d?d(t[l],l,e):t[l],a>0&&NB(c)?(p=UB(c),u=_v(s,e,c,p,u,a-1)-1):(qB(u+1),s[u]=c),u++),l++;return u};Fv.exports=_v});var Hv=m((Dq,jv)=>{"use strict";var Uv=qc(),HB=Fl(),zB=ct(),QB=Be(),GB=QB("species"),qv=Array;jv.exports=function(s){var e;return Uv(s)&&(e=s.constructor,HB(e)&&(e===qv||Uv(e.prototype))?e=void 0:zB(e)&&(e=e[GB],e===null&&(e=void 0))),e===void 0?qv:e}});var Qv=m((Cq,zv)=>{"use strict";var WB=Hv();zv.exports=function(s,e){return new(WB(s))(e===0?0:e)}});var Gv=m(()=>{"use strict";var YB=Ie(),KB=Nv(),XB=Bt(),JB=tr(),ZB=or(),e$=Qv();YB({target:"Array",proto:!0},{flatMap:function(e){var t=JB(this),i=ZB(t),r;return XB(e),r=e$(t,0),r.length=KB(r,t,t,i,0,1,e,arguments.length>1?arguments[1]:void 0),r}})});var Wv=m(()=>{"use strict";var t$=as();t$("flatMap")});var Kv=m((Nq,Yv)=>{"use strict";Gv();Wv();var i$=li();Yv.exports=i$("Array","flatMap")});var Jv=m((Uq,Xv)=>{"use strict";var r$=Kv();Xv.exports=r$});var Ds=m((qq,Zv)=>{"use strict";var s$=Jv();Zv.exports=s$});var Cs=m((jq,ey)=>{"use strict";var a$=os(),n$=String;ey.exports=function(s){if(a$(s)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return n$(s)}});var jc=m((Hq,ty)=>{"use strict";ty.exports=`
7
+ \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`});var sy=m((zq,ry)=>{"use strict";var o$=Pe(),u$=ui(),l$=Cs(),zc=jc(),iy=o$("".replace),c$=RegExp("^["+zc+"]+"),d$=RegExp("(^|[^"+zc+"])["+zc+"]+$"),Hc=function(s){return function(e){var t=l$(u$(e));return s&1&&(t=iy(t,c$,"")),s&2&&(t=iy(t,d$,"$1")),t}};ry.exports={start:Hc(1),end:Hc(2),trim:Hc(3)}});var uy=m((Qq,oy)=>{"use strict";var p$=vl().PROPER,h$=Le(),ay=jc(),ny="\u200B\x85\u180E";oy.exports=function(s){return h$(function(){return!!ay[s]()||ny[s]()!==ny||p$&&ay[s].name!==s})}});var Qc=m((Gq,ly)=>{"use strict";var f$=sy().start,m$=uy();ly.exports=m$("trimStart")?function(){return f$(this)}:"".trimStart});var dy=m(()=>{"use strict";var b$=Ie(),cy=Qc();b$({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==cy},{trimLeft:cy})});var hy=m(()=>{"use strict";dy();var g$=Ie(),py=Qc();g$({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==py},{trimStart:py})});var my=m((Jq,fy)=>{"use strict";hy();var S$=li();fy.exports=S$("String","trimLeft")});var gy=m((Zq,by)=>{"use strict";var v$=my();by.exports=v$});var vy=m((ej,Sy)=>{"use strict";var y$=gy();Sy.exports=y$});var Dy=m(()=>{"use strict"});var Cy=m(()=>{"use strict"});var Oy=m((D2,Vy)=>{"use strict";var j$=ct(),H$=Ai(),z$=Be(),Q$=z$("match");Vy.exports=function(s){var e;return j$(s)&&((e=s[Q$])!==void 0?!!e:H$(s)==="RegExp")}});var Fy=m((C2,_y)=>{"use strict";var G$=$t();_y.exports=function(){var s=G$(this),e="";return s.hasIndices&&(e+="d"),s.global&&(e+="g"),s.ignoreCase&&(e+="i"),s.multiline&&(e+="m"),s.dotAll&&(e+="s"),s.unicode&&(e+="u"),s.unicodeSets&&(e+="v"),s.sticky&&(e+="y"),e}});var qy=m((V2,Uy)=>{"use strict";var W$=lt(),Y$=wt(),K$=Jr(),X$=Fy(),Ny=RegExp.prototype;Uy.exports=function(s){var e=s.flags;return e===void 0&&!("flags"in Ny)&&!Y$(s,"flags")&&K$(Ny,s)?W$(X$,s):e}});var Hy=m((O2,jy)=>{"use strict";var Jc=Pe(),J$=tr(),Z$=Math.floor,Kc=Jc("".charAt),eD=Jc("".replace),Xc=Jc("".slice),tD=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,iD=/\$([$&'`]|\d{1,2})/g;jy.exports=function(s,e,t,i,r,a){var n=t+s.length,o=i.length,u=iD;return r!==void 0&&(r=J$(r),u=tD),eD(a,u,function(l,d){var c;switch(Kc(d,0)){case"$":return"$";case"&":return s;case"`":return Xc(e,0,t);case"'":return Xc(e,n);case"<":c=r[Xc(d,1,-1)];break;default:var p=+d;if(p===0)return l;if(p>o){var h=Z$(p/10);return h===0?l:h<=o?i[h-1]===void 0?Kc(d,1):i[h-1]+Kc(d,1):l}c=i[p-1]}return c===void 0?"":c})}});var Gy=m(()=>{"use strict";var rD=Ie(),sD=lt(),ed=Pe(),zy=ui(),aD=me(),nD=Zi(),oD=Oy(),Mr=Cs(),uD=es(),lD=qy(),cD=Hy(),dD=Be(),pD=Et(),hD=dD("replace"),fD=TypeError,Zc=ed("".indexOf),mD=ed("".replace),Qy=ed("".slice),bD=Math.max;rD({target:"String",proto:!0},{replaceAll:function(e,t){var i=zy(this),r,a,n,o,u,l,d,c,p,h,f=0,b="";if(!nD(e)){if(r=oD(e),r&&(a=Mr(zy(lD(e))),!~Zc(a,"g")))throw new fD("`.replaceAll` does not allow non-global regexes");if(n=uD(e,hD),n)return sD(n,e,i,t);if(pD&&r)return mD(Mr(i),e,t)}for(o=Mr(i),u=Mr(e),l=aD(t),l||(t=Mr(t)),d=u.length,c=bD(1,d),p=Zc(o,u);p!==-1;)h=l?Mr(t(u,p,o)):cD(u,o,p,[],void 0,t),b+=Qy(o,f,p)+h,f=p+d,p=p+c>o.length?-1:Zc(o,u,p+c);return f<o.length&&(b+=Qy(o,f)),b}})});var Yy=m((N2,Wy)=>{"use strict";Dy();Cy();Gy();var gD=li();Wy.exports=gD("String","replaceAll")});var Xy=m((U2,Ky)=>{"use strict";var SD=Yy();Ky.exports=SD});var td=m((q2,Jy)=>{"use strict";var vD=Xy();Jy.exports=vD});var eT=m((j2,Zy)=>{"use strict";var yD=ss(),TD=Cs(),ID=ui(),xD=RangeError;Zy.exports=function(e){var t=TD(ID(this)),i="",r=yD(e);if(r<0||r===1/0)throw new xD("Wrong number of repetitions");for(;r>0;(r>>>=1)&&(t+=t))r&1&&(i+=t);return i}});var aT=m((H2,sT)=>{"use strict";var rT=Pe(),ED=sl(),tT=Cs(),wD=eT(),AD=ui(),PD=rT(wD),kD=rT("".slice),RD=Math.ceil,iT=function(s){return function(e,t,i){var r=tT(AD(e)),a=ED(t),n=r.length,o=i===void 0?" ":tT(i),u,l;return a<=n||o===""?r:(u=a-n,l=PD(o,RD(u/o.length)),l.length>u&&(l=kD(l,0,u)),s?r+l:l+r)}};sT.exports={start:iT(!1),end:iT(!0)}});var oT=m((z2,nT)=>{"use strict";var MD=ki();nT.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(MD)});var uT=m(()=>{"use strict";var LD=Ie(),BD=aT().start,$D=oT();LD({target:"String",proto:!0,forced:$D},{padStart:function(e){return BD(this,e,arguments.length>1?arguments[1]:void 0)}})});var cT=m((W2,lT)=>{"use strict";uT();var DD=li();lT.exports=DD("String","padStart")});var pT=m((Y2,dT)=>{"use strict";var CD=cT();dT.exports=CD});var id=m((K2,hT)=>{"use strict";var VD=pT();hT.exports=VD});var Ep="2.0.135-dev.02bf1429.0";var Qe=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(Qe||{}),Wt=(y=>(y.MPEG="MPEG",y.DASH="DASH",y.DASH_SEP="DASH_SEP",y.DASH_SEP_VK="DASH_SEP",y.DASH_WEBM="DASH_WEBM",y.DASH_WEBM_AV1="DASH_WEBM_AV1",y.DASH_STREAMS="DASH_STREAMS",y.DASH_WEBM_VK="DASH_WEBM",y.DASH_ONDEMAND="DASH_ONDEMAND",y.DASH_ONDEMAND_VK="DASH_ONDEMAND",y.DASH_LIVE="DASH_LIVE",y.DASH_LIVE_CMAF="DASH_LIVE_CMAF",y.DASH_LIVE_WEBM="DASH_LIVE_WEBM",y.HLS="HLS",y.HLS_ONDEMAND="HLS_ONDEMAND",y.HLS_JS="HLS",y.HLS_LIVE="HLS_LIVE",y.HLS_LIVE_CMAF="HLS_LIVE_CMAF",y.WEB_RTC_LIVE="WEB_RTC_LIVE",y))(Wt||{});var hn=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(hn||{}),Pu=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Pu||{});var ku=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(ku||{}),fn=(i=>(i.TRAFFIC_SAVING="traffic_saving",i.HIGH_QUALITY="high_quality",i.UNKNOWN="unknown",i))(fn||{});var Ix=C(dt(),1);import{assertNever as xf,assertNonNullable as Kw,isNonNullable as vn,ValueSubject as nl,Subject as Xw,Subscription as Jw,merge as Zw,observableFrom as eA,fromEvent as vf,map as yf,tap as Tf,filterChanged as tA,isNullable as ol,ErrorCategory as If}from"@vkontakte/videoplayer-shared/es2024";var Sf=s=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",s),i.onload=()=>e(),i.onerror=r=>t(r),document.body.appendChild(i)});var yn=class{constructor(e){this.connection$=new nl(void 0);this.castState$=new nl("NOT_AVAILABLE");this.errorEvent$=new Xw;this.realCastState$=new nl("NOT_AVAILABLE");this.subscription=new Jw;this.isDestroyed=!1;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=vn(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&!this.isDestroyed&&this.initializeCastApi()},r||Sf("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:If.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){vn(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();ol(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();ol(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.isDestroyed=!0,this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(vf(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(r=>{switch(r.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return xf(r.sessionState)}})).add(Zw(vf(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Tf(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),yf(r=>r.castState)),eA([i.getCastState()])).pipe(tA(),yf(iA),Tf(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",n=vn(this.connection$.getValue());if(a&&!n){let o=i.getCurrentSession();Kw(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(ol(l)||l===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!a&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?vn(this.connection$.getValue())?"CONNECTED":"AVAILABLE":r)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(r){this.errorEvent$.next({id:"ChromecastInitializer",category:If.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},iA=s=>{switch(s){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return xf(s)}};var mp=C(dt(),1),rx=C(Mi(),1),sx=C(Dl(),1);var AS=C(Wn(),1);import{assertNever as gS}from"@vkontakte/videoplayer-shared/es2024";var be=(s,e=0,t=0)=>{switch(t){case 0:return s.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return s;let i=new URL(s);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(s);return!i.searchParams.get("offset_p")&&e===0?s:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:gS(t)}return s},di=(s,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(s);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(s);return Number(t.searchParams.get("offset_p")??0)}default:gS(e)}};var M=(s,e,t=!1)=>{let i=s.getTransition();(t||!i||i.to===e)&&s.setState(e)};import{isNonNullable as cL,Subject as Yn,merge as SS}from"@vkontakte/videoplayer-shared/es2024";var U=class{constructor(e){this.transitionStarted$=new Yn;this.transitionEnded$=new Yn;this.transitionUpdated$=new Yn;this.forceChanged$=new Yn;this.stateChangeStarted$=SS(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=SS(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||cL(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as dL}from"@vkontakte/videoplayer-shared/es2024";var vS=s=>{switch(s){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return dL(s)}};import{assertNever as gr,assertNonNullable as Vi,debounce as yS,ErrorCategory as TS,fromEvent as Oi,isNonNullable as IS,map as xS,merge as ES,observableFrom as pL,Subject as hL,Subscription as yc,timeout as fL,getHighestQuality as mL}from"@vkontakte/videoplayer-shared/es2024";var bL=5,gL=5,SL=500,wS=7e3,Ss=class{constructor(e){this.subscription=new yc;this.loadMediaTimeoutSubscription=new yc;this.videoState=new U("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(r?.to!=="paused"&&a.state==="requested"&&e!=="stopped"){this.seek(a.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:gr(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:gr(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:gr(e)}break}default:gr(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(vS(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new yc;this.subscription.add(e),this.subscription.add(ES(this.videoState.stateChangeStarted$.pipe(xS(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(xS(r=>`stateChangeEnded$ ${JSON.stringify(r)}`))).subscribe(r=>this.log({message:`[videoState] ${r}`})));let t=(r,a)=>this.subscription.add(r.subscribe(a));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let r=new hL;e.add(r.pipe(yS(SL)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(n=>{this.logRemoteEvent(n);let o=n.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>bL)&&r.next(o),a=o})),e.add(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,n=r.value,o=this.params.output.isBuffering$.getValue(),u=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<gL&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),M(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:gr(n)}}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(Oi(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=ES(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,pL(["init"])).pipe(yS(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),M(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),M(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),M(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),M(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&M(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,r,a;switch(e){case"MPEG":{let l=t[e];Vi(l);let d=mL(Object.keys(l));Vi(d);let c=l[d];Vi(c),i=c,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];Vi(l),i=l.url,r="application/x-mpegurl",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let l=t[e];Vi(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];Vi(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];Vi(l),i=be(l.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let l="Unsupported format for Chromecast",d=new Error(l);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:TS.VIDEO_PIPELINE,message:l,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return gr(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);n.contentUrl=i,n.streamType=a,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return IS(o)&&(n.metadata.title=o),IS(u)&&(n.metadata.subtitle=u),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((r,a)=>{this.loadMediaTimeoutSubscription.add(fL(wS).subscribe(()=>a(`timeout(${wS})`)))});(0,AS.default)(Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},r=>{let a=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${r}`;this.log({message:a}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:TS.VIDEO_PIPELINE,message:a,thrown:r})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};var Nc=C(dt(),1);import{clearVideoElement as kS}from"@vkontakte/videoplayer-shared/es2024";import{clearVideoElement as vL}from"@vkontakte/videoplayer-shared/es2024";var PS=s=>{try{s.pause(),s.playbackRate=0,vL(s),s.remove()}catch(e){console.error(e)}};import{fromEvent as yL,Subscription as TL}from"@vkontakte/videoplayer-shared/es2024";var Tc=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},Ic=window.WeakMap?new WeakMap:new Tc,xc=window.WeakMap?new WeakMap:new Map,IL=(s,e=20)=>{let t=0;return yL(s,"ratechange").subscribe(i=>{t++,t>=e&&(s.currentTime=s.currentTime,t=0)})},Ge=(s,{audioVideoSyncRate:e,disableYandexPiP:t})=>{let i=s.querySelector("video"),r=!!i;i?kS(i):(i=document.createElement("video"),s.appendChild(i)),Ic.set(i,r);let a=new TL;return a.add(IL(i,e)),xc.set(i,a),i.setAttribute("crossorigin","anonymous"),i.setAttribute("playsinline","playsinline"),t&&i.setAttribute("x-yandex-pip","false"),i.controls=!1,i.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),i},We=s=>{xc.get(s)?.unsubscribe(),xc.delete(s);let t=Ic.get(s);Ic.delete(s),t?kS(s):PS(s)};var wc=C(_i(),1);import{assertNonNullable as ys,isNonNullable as Ct,isNullable as ML,fromEvent as Sr,merge as CS,observableFrom as VS,filterChanged as OS,map as Ts,Subject as _S,Subscription as LL,ValueSubject as BL,ErrorCategory as $L}from"@vkontakte/videoplayer-shared/es2024";import{isNonNullable as Ec,isNullable as kL,Subscription as RL}from"@vkontakte/videoplayer-shared/es2024";var Kn=(s,e,t,{equal:i=(n,o)=>n===o,changed$:r,onError:a}={})=>{let n=s.getState(),o=e(),u=kL(r),l=new RL;return r&&l.add(r.subscribe(d=>{let c=s.getState();i(d,c)&&s.setState(d)},a)),i(o,n)||(t(n),u&&s.setState(n)),l.add(s.stateChangeStarted$.subscribe(d=>{t(d.to),u&&s.setState(d.to)},a)),l},Dt=(s,e,t)=>Kn(e,()=>s.loop,i=>{Ec(i)&&(s.loop=i)},{onError:t}),Ye=(s,e,t,i)=>Kn(e,()=>({muted:s.muted,volume:s.volume}),r=>{Ec(r)&&(s.muted=r.muted,s.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),mt=(s,e,t,i)=>Kn(e,()=>s.playbackRate,r=>{Ec(r)&&(s.playbackRate=r)},{changed$:t,onError:i}),vs=Kn;var DL=s=>["__",s.language,s.label].join("|"),CL=(s,e)=>{if(s.id===e)return!0;let[t,i,r]=e.split("|");return s.language===i&&s.label===r},Ac=class s{constructor(e){this.available$=new _S;this.current$=new BL(void 0);this.error$=new _S;this.subscription=new LL;this.externalTracks=new Map;this.internalTracks=new Map;this.baseURL=e}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:$L.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:a})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(vs(t.internalTextTracks,()=>(0,wc.default)(this.internalTracks),a=>{Ct(a)&&this.setInternal(a)},{equal:(a,n)=>Ct(a)&&Ct(n)&&a.length===n.length&&a.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(Ts(a=>a.filter(({type:n})=>n==="internal"))),onError:r})),this.subscription.add(vs(t.externalTextTracks,()=>(0,wc.default)(this.externalTracks),a=>{Ct(a)&&this.setExternal(a)},{equal:(a,n)=>Ct(a)&&Ct(n)&&a.length===n.length&&a.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(Ts(a=>a.filter(({type:n})=>n==="external"))),onError:r})),this.subscription.add(vs(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(vs(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){ys(this.video);let{textTracks:e}=this.video;this.subscription.add(Sr(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(CS(Sr(e,"addtrack"),Sr(e,"removetrack"),VS(["init"])).pipe(Ts(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),OS((i,r)=>i.length===r.length&&i.every(({id:a},n)=>a===r[n].id))).subscribe(this.available$)),this.subscription.add(CS(Sr(e,"change"),VS(["init"])).pipe(Ts(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Ts(i=>i&&this.htmlTextTrackToITextTrack(i).id),OS()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Sr(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let n=a.target?.cues??null;n&&n.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Sr(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let r=i;Ct(t.align)&&(r.align=t.align),Ct(t.position)&&(r.position=t.position),Ct(t.size)&&(r.size=t.size),Ct(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){ys(this.video);let t=[...this.video.textTracks];return e?t:t.filter(s.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:DL(e),a=this.externalTracks.has(r),n=(a?this.externalTracks.get(r)?.isAuto:this.internalTracks.get(r)?.isAuto)??r.includes("auto");return a?{id:r,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(r)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:r,isAuto:a})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===r&&n.isAuto===a)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(r=>r.id===i)).forEach(([,i])=>this.detach(i))}select(e){ys(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(ML(e)||!CL(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){ys(this.video);let t=document.createElement("track");this.baseURL?t.setAttribute("src",new URL(e.url,this.baseURL).toString()):t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){ys(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},bt=Ac;var Fi=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var FS=s=>{let e=s;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Pc=s=>{let e=FS(s);return!!(e&&e.fullscreenElement&&e.fullscreenElement===s)},NS=s=>{let e=FS(s);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===s)};import{fromEvent as Ue,map as Vt,merge as ro,filterChanged as WS,isNonNullable as YS,Subject as HL,filter as Rc,mapTo as Mc,combine as zL,once as QL,throttle as GL,ErrorCategory as WL,ValueSubject as KS,Subscription as YL}from"@vkontakte/videoplayer-shared/es2024";var VL=3,US=(s,e,t=VL)=>{let i=0,r=0;for(let a=0;a<s.length;a++){let n=s.start(a),o=s.end(a);if(n<=e&&e<=o){if(i=n,r=o,!t)return{from:i,to:r};for(let u=a-1;u>=0;u--)s.end(u)+t>=i&&(i=s.start(u));for(let u=a+1;u<s.length;u++)s.start(u)-t<=r&&(r=s.end(u))}}return{from:i,to:r}};var Xn=class{constructor(){this._isMiuiBrowser=!1}get current(){return this._current}get isChrome(){return this.current==="Chrome"}get isFirefox(){return this.current==="Firefox"}get isSafari(){return this.current==="Safari"}get isOpera(){return this.current==="Opera"}get isEdge(){return this.current==="Edge"}get isYandex(){return this.current==="Yandex"}get isSamsungBrowser(){return this.current==="SamsungBrowser"}get currentVersion(){return this._current_version}get chromeVersion(){return this._chromeVersion}get firefoxVersion(){return this._firefoxVersion}get safariVersion(){return this._safariVersion}get operaVersion(){return this._operaVersion}get edgeVersion(){return this._edgeVersion}get yandexVersion(){return this._yandexVersion}get isMiuiBrowser(){return this._isMiuiBrowser}detect(){let{userAgent:e}=navigator;try{let t=/yabrowser/i.test(e)?"Yandex":void 0,i=/samsungbrowser/i.test(e)?"SamsungBrowser":void 0,r=/chrome|crios/i.test(e)?"Chrome":void 0,a=/chromium/i.test(e)?"Chromium":void 0,n=/firefox|fxios/i.test(e)?"Firefox":void 0,o=/webkit|safari|khtml/i.test(e)?"Safari":void 0,u=/opr\//i.test(e)?"Opera":void 0,l=/edg/i.test(e)?"Edge":void 0;this._isMiuiBrowser=/(XiaoMi)|(MiuiBrowser)/i.test(e),this._current=t||i||n||u||l||r||a||o||"Rest"}catch(t){console.error(t)}this.isChrome&&this.detectChromeVersion(),this.isFirefox&&this.detectFirefoxVersion(),this.isSafari&&this.detectSafariVersion(),this.isOpera&&this.detectOperaVersion(),this.isEdge&&this.detectEdgeVersion(),this.isYandex&&this.detectYandexVersion()}detectVersion(e){try{let{userAgent:t}=window.navigator,i=t.match(e);if(!i)return;let r=i[1],a=parseInt(r,10);if(!isNaN(a))return this._current_version=a,a}catch(t){console.error(t)}}detectChromeVersion(){this._chromeVersion=this.detectVersion(/Chrome\/(\d+\.\d+)/)}detectFirefoxVersion(){this._firefoxVersion=this.detectVersion(/Firefox\/(\d+\.\d+)/)}detectSafariVersion(){this._safariVersion=this.detectVersion(/Version\/(\d+)/)}detectOperaVersion(){this._operaVersion=this.detectVersion(/OPR\/(\d+\.\d+)/)}detectEdgeVersion(){this._edgeVersion=this.detectVersion(/Edg\/(\d+\.\d+)/)}detectYandexVersion(){this._yandexVersion=this.detectVersion(/YaBrowser\/(\d+\.\d+\.\d+)/)}};var qS=C(dt(),1);var Is=()=>/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(navigator.appVersion??navigator.userAgent)||navigator?.userAgentData?.mobile;var Jn=class{constructor(e){this._highEntropyValues={};this._displayChecker=e}get current(){return this._current}get isIOS(){let e=["iPhone","iPad","iPod"];return this._highEntropyValues.platform==="iOS"||(0,qS.default)(e,this.current)}get isMac(){return this._highEntropyValues.platform==="macOS"||this.current==="Mac"}get isApple(){return this.isIOS||this.isMac}get isIphoneOrOldIpad(){if(!this.isApple||!this._displayChecker.isTouch)return!1;let e=this.current==="iPad"||this._displayChecker.width>700,t=this._iosVersion;return!e||e&&!!t&&t<16}get isAndroid(){return this._highEntropyValues.platform==="Android"||this.current==="Android"}get isMobile(){return this._highEntropyValues.mobile||this._isMobile}get iOSVersion(){return this._iosVersion}detect(){let{userAgent:e}=navigator;try{this._isMobile=Is()}catch(t){console.error(t)}this.detectDevice(e),this.detectHighEntropyValues(),this.isIOS&&this.detectIOSVersion()}async detectHighEntropyValues(){let{userAgentData:e}=navigator;if(e?.getHighEntropyValues){let t=await e.getHighEntropyValues(["architecture","bitness","brands","mobile","platform","formFactor","model","platformVersion","wow64"]);this._highEntropyValues=t}}detectDevice(e){try{let t=/android/i.test(e)?"Android":void 0,i=/iphone/i.test(e)?"iPhone":void 0,r=/ipad/i.test(e)?"iPad":void 0,a=/ipod/i.test(e)?"iPod":void 0,n=/mac/i.test(e)?"Mac":void 0,o=/webOS|BlackBerry|IEMobile|Opera Mini/i.test(e)?"RestMobile":void 0;this._current=t||i||r||a||o||n||"Desktop"}catch(t){console.error(t)}}detectIOSVersion(){try{if(this._highEntropyValues.platformVersion){let a=this._highEntropyValues.platformVersion.split(".").slice(0,2).join("."),n=parseFloat(a);this._iosVersion=n;return}let{userAgent:e}=window.navigator,t=e.match(/OS (\d+(_\d+)?)/i);if(!t)return;let i=t[1].replace(/_/g,".");if(!i)return;let r=parseFloat(i);if(isNaN(r))return;this._iosVersion=r}catch(e){console.error(e)}}};var Zn=class{get isTouch(){return typeof this._maxTouchPoints=="number"?this._maxTouchPoints>1:"ontouchstart"in window}get maxTouchPoints(){return this._maxTouchPoints}get height(){return this._height}get width(){return this._width}get screenHeight(){return this._screenHeight}get screenWidth(){return this._screenWidth}get pixelRatio(){return this._pixelRatio}get isHDR(){return this._isHdr}get colorDepth(){return this._colorDepth}detect(){let{maxTouchPoints:e}=navigator;try{this._maxTouchPoints=e??0,this._isHdr=!!matchMedia("(dynamic-range: high)")?.matches,this._colorDepth=screen.colorDepth}catch(t){console.error(t)}try{this._pixelRatio=window.devicePixelRatio||1,this._height=screen.height,this._width=screen.width,this._height=screen.height,this._screenHeight=this._height*this._pixelRatio,this._screenWidth=this._width*this._pixelRatio}catch(t){console.error(t)}}};var ht=()=>window.ManagedMediaSource||window.MediaSource,vr=()=>!!(window.ManagedMediaSource&&window.ManagedSourceBuffer?.prototype?.appendBuffer),jS=()=>!!(window.MediaSource&&window.SourceBuffer?.prototype?.appendBuffer),eo=()=>window.ManagedMediaSource?new ManagedMediaSource:new MediaSource;var OL=document.createElement("video"),_L='video/mp4; codecs="avc1.42000a,mp4a.40.2"',FL='video/mp4; codecs="hev1.1.6.L93.B0"',HS='video/webm; codecs="vp09.00.10.08"',zS='video/webm; codecs="av01.0.00M.08"',NL='audio/mp4; codecs="mp4a.40.2"',UL='audio/webm; codecs="opus"',QS,qL=async()=>{if(!window.navigator.mediaCapabilities)return;let s={type:"media-source",video:{contentType:"video/webm",width:1280,height:720,bitrate:1e6,framerate:30}},[e,t]=await Promise.all([window.navigator.mediaCapabilities.decodingInfo({...s,video:{...s.video,contentType:zS}}),window.navigator.mediaCapabilities.decodingInfo({...s,video:{...s.video,contentType:HS}})]);QS={DASH_WEBM_AV1:e,DASH_WEBM:t}};qL().catch(s=>{console.log(OL),console.error(s)});var to=class{constructor(e,t){this._deviceChecker=e,this._browserChecker=t}get protocols(){return this._protocols}get containers(){return this._containers}get codecs(){return this._codecs}get webmDecodingInfo(){return QS}get supportedCodecs(){return Object.keys(this._codecs).filter(e=>this._codecs[e])}get nativeHlsSupported(){return this._nativeHlsSupported}detect(){this._video=document.createElement("video");try{this._protocols={mms:vr(),mse:jS(),hls:!!(this._video.canPlayType?.("application/x-mpegurl")||this._video.canPlayType?.("vnd.apple.mpegURL")),webrtc:!!window.RTCPeerConnection,ws:!!window.WebSocket},this._containers={mp4:!!this._video.canPlayType?.("video/mp4"),webm:!!this._video.canPlayType?.("video/webm"),cmaf:!0};let e=!!ht()?.isTypeSupported?.(_L),t=!!ht()?.isTypeSupported?.(FL),i=!!ht()?.isTypeSupported?.(NL);this._codecs={h264:e,h265:t,vp9:!!ht()?.isTypeSupported?.(HS),av1:!!ht()?.isTypeSupported?.(zS),aac:i,opus:!!ht()?.isTypeSupported?.(UL),mpeg:(e||t)&&i},this._nativeHlsSupported=this._protocols.hls&&this._containers.mp4}catch(e){console.error(e)}try{this.destroyVideoElement()}catch(e){console.error("Error destroying video element:",e)}}destroyVideoElement(){if(!this._video)return;if(this._video.pause(),this._video.currentTime=0,this._video.removeAttribute("src"),this._video.src="",this._video.load(),this._video.remove){this._video.remove(),this._video=null;return}this._video.parentNode&&this._video.parentNode.removeChild(this._video);let e=this._video.cloneNode(!1);this._video.parentNode?.replaceChild(e,this._video),this._video=null}};var GS="audio/mpeg",io=class{supportMp3(){return this._codecs.mp3&&this._containers.mpeg}detect(){this._audio=document.createElement("audio");try{this._containers={mpeg:!!this._audio.canPlayType?.(GS)},this._codecs={mp3:!!ht()?.isTypeSupported?.(GS)}}catch(e){console.error(e)}try{this.destroyAudioElement()}catch(e){console.error("Error destroying audio element:",e)}}destroyAudioElement(){if(!this._audio)return;if(this._audio.pause(),this._audio.currentTime=0,this._audio.removeAttribute("src"),this._audio.src="",this._audio.load(),this._audio.remove){this._audio.remove(),this._audio=null;return}this._audio.parentNode&&this._audio.parentNode.removeChild(this._audio);let e=this._audio.cloneNode(!1);this._audio.parentNode?.replaceChild(e,this._audio),this._audio=null}};import{ValueSubject as jL}from"@vkontakte/videoplayer-shared/es2024";var kc=class{constructor(){this.isInited$=new jL(!1);this._displayChecker=new Zn,this._deviceChecker=new Jn(this._displayChecker),this._browserChecker=new Xn,this._videoChecker=new to(this._deviceChecker,this._browserChecker),this._audioChecker=new io,this.detect()}get display(){return this._displayChecker}get device(){return this._deviceChecker}get browser(){return this._browserChecker}get video(){return this._videoChecker}get audio(){return this._audioChecker}async detect(){this._displayChecker.detect(),this._deviceChecker.detect(),this._browserChecker.detect(),this._videoChecker.detect(),this._audioChecker.detect(),this.isInited$.next(!0)}},F=new kc;var Ke=s=>{let e=v=>Ue(s,v).pipe(Mc(void 0)),t=new YL,i=()=>t.unsubscribe(),r=ro(Ue(s,"progress"),Ue(s,"timeupdate")).pipe(Vt(()=>US(s.buffered,s.currentTime))),a=F.browser.isSafari?zL({play:e("play").pipe(QL()),playing:e("playing")}).pipe(Mc(void 0)):e("playing"),n=Ue(s,"volumechange").pipe(Vt(()=>({muted:s.muted,volume:s.volume}))),o=Ue(s,"ratechange").pipe(Vt(()=>s.playbackRate)),u=Ue(s,"error").pipe(Rc(()=>!!(s.error||s.played.length)),Vt(()=>{let v=s.error;return{id:v?`MediaError#${v.code}`:"HtmlVideoError",category:WL.VIDEO_PIPELINE,message:v?v.message:"Error event from HTML video element",thrown:s.error??void 0}})),l=Ue(s,"timeupdate").pipe(Vt(()=>s.currentTime)),d=["waiting","seeking","seeked","timeupdate"],c=new HL,p=.3,h;t.add(ro(...d.map(v=>Ue(s,v))).subscribe(v=>{let D=s.currentTime;s.loop&&YS(h)&&YS(D)&&h>=s.duration-p&&D<=p&&c.next(h),h=D}));let f=e("pause").pipe(Rc(()=>!s.error&&h!==s.duration)),b=Ue(s,"enterpictureinpicture"),g=Ue(s,"leavepictureinpicture"),S=new KS(NS(s));t.add(b.subscribe(()=>S.next(!0))),t.add(g.subscribe(()=>S.next(!1)));let T=new KS(Pc(s)),y=Ue(s,"fullscreenchange");t.add(y.pipe(Vt(()=>Pc(s))).subscribe(T));let E=.1,w=1e3,L=Ue(s,"timeupdate").pipe(Vt(v=>s.duration-s.currentTime<E),WS()),O=ro(L.pipe(Rc(v=>!s.loop&&v)),Ue(s,"ended")).pipe(GL(w),Mc(void 0)),P=ro(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(v=>Ue(s,v)),L.pipe(Vt(v=>({type:v?"ended":"unknown"})))).pipe(Vt(v=>F.browser.isFirefox&&v.type==="ended"?s.readyState<2:s.readyState<3),WS());return{playing$:a,pause$:f,canplay$:e("canplay"),ended$:O,looped$:c,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:l,durationChange$:Ue(s,"durationchange").pipe(Vt(()=>s.duration)),isBuffering$:P,currentBuffer$:r,volumeState$:n,playbackRateState$:o,inPiP$:S,inFullscreen$:T,enterPip$:b,leavePip$:g,destroy:i}};import{VideoQuality as pi}from"@vkontakte/videoplayer-shared/es2024";var hi=s=>{switch(s){case"mobile":return pi.Q_144P;case"lowest":return pi.Q_240P;case"low":return pi.Q_360P;case"sd":case"medium":return pi.Q_480P;case"hd":case"high":return pi.Q_720P;case"fullhd":case"full":return pi.Q_1080P;case"quadhd":case"quad":return pi.Q_1440P;case"ultrahd":case"ultra":return pi.Q_2160P}};var je=C(Pt(),1),$c=C(dt(),1),Ni=C(Mi(),1);import{isNonNullable as J,isNullable as uo,now as pv,isHigher as lo,isHigherOrEqual as Tr,isInvariantQuality as co,isLowerOrEqual as Ir,videoSizeToQuality as hv,assertNotEmptyArray as po,assertNonNullable as fv}from"@vkontakte/videoplayer-shared/es2024";var Lc=!1,Jt={},rv=s=>{Lc=s},sv=()=>{Jt={}},av=s=>{s(Jt)},xs=(s,e)=>{Lc&&(Jt.meta=Jt.meta??{},Jt.meta[s]=e)},qe=class{constructor(e){this.name=e}next(e){if(!Lc)return;Jt.series=Jt.series??{};let t=Jt.series[this.name]??[];t.push([Date.now(),e]),Jt.series[this.name]=t}};import{isHigher as sB,isHigherOrEqual as XU,isLower as nv,isLowerOrEqual as JU,isNonNullable as so,isNullable as aB,videoHeightToQuality as ao}from"@vkontakte/videoplayer-shared/es2024";function Bc(s,e,t){return!s.max&&s.min===e?"high_quality":!s.min&&s.max===t?"traffic_saving":"unknown"}function no(s,e,t){return!!s&&Bc(s,e,t)==="high_quality"}function yr(s,e,t){return aB(s)||so(s.min)&&so(s.max)&&nv(s.max,s.min)||so(s.min)&&e&&sB(s.min,e)||so(s.max)&&t&&nv(s.max,t)}function ov({limits:s,highestAvailableHeight:e,lowestAvailableHeight:t}){return yr({max:s?.max?ao(s.max):void 0,min:s?.min?ao(s.min):void 0},e?ao(e):void 0,t?ao(t):void 0)}var mv=new qe("best_bitrate"),ho=(s,e,t)=>(e-t)*Math.pow(2,-10*s)+t;var xr=s=>(e,t)=>s*(Number(e.bitrate)-Number(t.bitrate)),fi=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=pv()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},fo='Assertion "ABR Tracks is empty array" failed',oo=new WeakMap,uv=new WeakMap,lv=new WeakMap,Es=(s,e,t,i)=>{let r=[...e].sort(xr(1)),a=[...t].sort(xr(1)),n=a.filter(u=>J(u.bitrate)&&J(s.bitrate)?s.bitrate/u.bitrate>i:!0),o=(0,je.default)(a,Math.round(a.length*r.indexOf(s)/(r.length+1)))??(0,je.default)(a,-1);return o&&(0,$c.default)(n,o)?o:n.length?(0,je.default)(n,-1):(0,je.default)(a,0)},ws=(s,e,t,i)=>{let r=oo.get(e);r||(r=[...e].sort(xr(1)),oo.set(e,r));let a=oo.get(t);a||(a=[...t].sort(xr(1)),oo.set(t,a));let n=lv.get(s);n||(n=a.filter(u=>J(u.bitrate)&&J(s.bitrate)?s.bitrate/u.bitrate>i:!0),lv.set(s,n));let o=(0,je.default)(a,Math.round(a.length*r.indexOf(s)/(r.length+1)))??(0,je.default)(a,-1);return o&&(0,$c.default)(n,o)?o:n.length?(0,je.default)(n,-1):(0,je.default)(a,0)},cv=s=>"quality"in s,mo=(s,e,t,i)=>{let r=J(i?.last?.bitrate)&&J(t?.bitrate)&&i.last.bitrate<t.bitrate?s.trackCooldownIncreaseQuality:s.trackCooldownDecreaseQuality,a=t&&i&&i.history[t.id]&&pv()-i.history[t.id]<=r&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let n=i.last;i?.recordSwitch(n);let o=cv(n)?"video":"audio",u=cv(n)?n.quality:n.bitrate;return e({message:`
8
8
  [last ${o} selected] ${u}
9
9
  `}),n}return i?.recordSwitch(t),t},nB=(s,e)=>Math.log(e)/Math.log(s),bv=({tuning:s,container:e,limits:t,panelSize:i})=>{let r=s.containerSizeFactor;if(i)return{containerSizeLimit:i,containerSizeFactor:r};if(s.usePixelRatio&&F.display.pixelRatio){let a=F.display.pixelRatio;if(s.pixelRatioMultiplier)r*=s.pixelRatioMultiplier*(a-1)+1;else{let n=s.pixelRatioLogBase,[o=0,u=0,l=0]=s.pixelRatioLogCoefficients,d=nB(n,o*a+u)+l;Number.isFinite(d)&&(r*=d)}}return no(t,s.highQualityLimit,s.trafficSavingLimit)&&(r*=2),{containerSizeLimit:s.limitByContainer&&e&&e.width>0&&e.height>0?{width:e.width*r,height:e.height*r}:void 0,containerSizeFactor:r}},dv=new WeakMap,Ot=(s,{container:e,estimatedThroughput:t,tuning:i,limits:r,reserve:a=0,forwardBufferHealth:n,playbackRate:o,current:u,history:l,visible:d,droppedVideoMaxQualityLimit:c,stallsVideoMaxQualityLimit:p,stallsPredictedThroughput:h,abrLogger:f,panelSize:b})=>{po(s,fo);let{containerSizeFactor:g,containerSizeLimit:S}=bv({container:e,tuning:i,limits:r,panelSize:b}),T=i.considerPlaybackRate&&J(o)?o:1,y=dv.get(s);y||(y=s.filter(x=>!co(x.quality)).sort((x,k)=>lo(x.quality,k.quality)?-1:1),dv.set(s,y));let E=(0,je.default)(y,-1)?.quality,w=(0,je.default)(y,0)?.quality,L=yr(r,w,E),O=T*ho(n??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),A={},P=null;for(let x of y){let k=!0;if(S)if(x.size)k=x.size.width<=S.width&&x.size.height<=S.height;else{let R=S&&hv(S);k=R?Ir(x.quality,R):!0}if(!k){A[x.quality]="FitsContainer";continue}let re=h||t,$=J(re)&&isFinite(re)&&J(x.bitrate)?re-a>=x.bitrate*O:!0,q=no(r,i.highQualityLimit,i.trafficSavingLimit)&&r?.min===x.quality;if(!$&&!q){A[x.quality]="FitsThroughput";continue}if(i.lazyQualitySwitch&&J(i.minBufferToSwitchUp)&&u&&!co(u.quality)&&(n??0)<i.minBufferToSwitchUp&&lo(x.quality,u.quality)){A[x.quality]="Buffer";continue}if(!!c&&Tr(x.quality,c)&&!q){A[x.quality]="DroppedFramesLimit";continue}if(!!p&&Tr(x.quality,p)&&!q){A[x.quality]="StallsLimit";continue}let oe=L||(uo(r?.max)||Ir(x.quality,r.max))&&(uo(r?.min)||Tr(x.quality,r.min)),Z=J(d)&&!d?Ir(x.quality,i.backgroundVideoQualityLimit):!0;if(!oe||!Z){A[x.quality]="FitsQualityLimits";continue}P||(P=x)}P&&P.bitrate&&mv.next(P.bitrate);let v=P??(0,je.default)(y,-1)??s[0],D=l?.last,I=mo(i,f,v,l);return J(l)&&I.quality!==D?.quality&&f({message:`
10
10
  [VIDEO TRACKS ABR]
@@ -114,7 +114,7 @@ var xx=Object.create;var xp=Object.defineProperty;var Ex=Object.getOwnPropertyDe
114
114
  minBufferToSwitchUp: ${r.minBufferToSwitchUp},
115
115
 
116
116
  [selected audio track] ${T?.id}
117
- `}),T};var $e=s=>new URL(s).hostname;import{assertNever as Pv,assertNonNullable as kv,combine as PB,debounce as kB,ErrorCategory as Rv,filter as Mv,filterChanged as RB,isNonNullable as _c,map as Io,merge as Lv,observableFrom as MB,once as LB,Subscription as BB,ValueSubject as Fc,videoQualityToHeight as Bv,videoSizeToQuality as $B}from"@vkontakte/videoplayer-shared/es2024";var xv=C(Pt(),1);var Sv=C(dt(),1),gv=s=>{if(s instanceof DOMException&&(0,Sv.default)(["Failed to load because no supported source was found.","The element has no supported sources."],s.message))throw s;return!(s instanceof DOMException&&(s.code===20||s.name==="AbortError"))},Xe=async(s,e)=>{let t=s.muted;try{await s.play()}catch(i){if(!gv(i))return!1;if(e&&e(),t)return console.warn(i),!1;s.muted=!0;try{await s.play()}catch(r){return gv(r)&&(s.muted=!1,console.warn(r)),!1}}return!0};import{isNonNullable as yo,isNullable as lB,assertNonNullable as ks}from"@vkontakte/videoplayer-shared/es2024";var yv=C(_i(),1);import{isNonNullable as vv,assertNonNullable as vo,now as oB}from"@vkontakte/videoplayer-shared/es2024";function ke(){return oB()}function Dc(s){return ke()-s}function Cc(s){let e=s.split("/"),t=e.slice(0,e.length-1).join("/"),i=/^([a-z]+:)?\/\//i,r=n=>i.test(n);return{resolve:(n,o,u=!1)=>{r(n)||(n.startsWith("/")||(n="/"+n),n=t+n);let l=n.indexOf("?")>-1?"&":"?";return u&&(n+=l+"lowLat=1",l="&"),o&&(n+=l+"_rnd="+Math.floor(999999999*Math.random())),n}}}function Tv(s,e,t){let i=(...r)=>{t.apply(null,r),s.removeEventListener(e,i)};s.addEventListener(e,i)}function Er(s,e,t,i){let r=window.XMLHttpRequest,a,n,o,u=!1,l=0,d,c,p=!1,h="arraybuffer",f=7e3,b=2e3,g=()=>{if(u)return;vo(d);let I=Dc(d),x;if(I<b){x=b-I,setTimeout(g,x);return}b*=2,b>f&&(b=f),n&&n.abort(),n=new r,L()},S=I=>(a=I,D),T=I=>(c=I,D),y=()=>(h="json",D),E=()=>{if(!u){if(--l>=0){g(),i&&i();return}u=!0,c&&c(),t&&t()}},w=I=>(p=I,D),L=()=>{d=ke(),n=new r,n.open("get",s);let I=0,x,k=0,re=()=>(vo(d),Math.max(d,Math.max(x||0,k||0)));if(a&&n.addEventListener("progress",$=>{let q=ke();a.updateChunk&&$.loaded>I&&(a.updateChunk(re(),$.loaded-I),I=$.loaded,x=q)}),o&&(n.timeout=o,n.addEventListener("timeout",()=>E())),n.addEventListener("load",()=>{if(u)return;vo(n);let $=n.status;if($>=200&&$<300){let{response:q,responseType:X}=n,ne=q?.byteLength;if(typeof ne=="number"&&a){let ge=ne-I;ge&&a.updateChunk&&a.updateChunk(re(),ge)}X==="json"&&(!q||!(0,yv.default)(q).length)?E():(c&&c(),e(q))}else E()}),n.addEventListener("error",()=>{E()}),p){let $=()=>{vo(n),n.readyState===XMLHttpRequest.HEADERS_RECEIVED&&(k=ke(),n.removeEventListener("readystatechange",$))};n.addEventListener("readystatechange",$)}return n.responseType=h,n.send(),D},D={withBitrateReporting:S,withParallel:w,withJSONResponse:y,withRetryCount:I=>(l=I,D),withRetryInterval:(I,x)=>(vv(I)&&(b=I),vv(x)&&(f=x),D),withTimeout:I=>(o=I,D),withFinally:T,send:L,abort:()=>{n&&(n.abort(),n=void 0),u=!0,c&&c()}};return D}var As=class{constructor(e){this.intervals=[];this.currentRate=0;this.logger=e}_updateRate(e){let t=.2;this.currentRate&&(e<this.currentRate*.1?t=.8:e<this.currentRate*.5?t=.5:e<this.currentRate*.7&&(t=.3)),e=Math.max(1,Math.min(e,100*1024*1024)),this.currentRate=this.currentRate?this.currentRate*(1-t)+e*t:e}_createInterval(e,t,i){return{start:e,end:t,bytes:i}}_doMergeIntervals(e,t){e.start=Math.min(t.start,e.start),e.end=Math.max(t.end,e.end),e.bytes+=t.bytes}_mergeIntervals(e,t){return e.start<=t.end&&t.start<=e.end?(this._doMergeIntervals(e,t),!0):!1}_flushIntervals(){if(!this.intervals.length)return!1;let e=this.intervals[0].start,t=this.intervals[this.intervals.length-1].end-500;if(t-e>2e3){let i=0,r=0;for(;this.intervals.length>0;){let a=this.intervals[0];if(a.end<=t)i+=a.end-a.start,r+=a.bytes,this.intervals.splice(0,1);else{if(a.start>=t)break;{let n=t-a.start,o=a.end-a.start;i+=n;let u=a.bytes*n/o;r+=u,a.start=t,a.bytes-=u}}}if(r>0&&i>0){let a=r*8/(i/1e3);return this._updateRate(a),this.logger(`rate updated, new=${Math.round(a/1024)}K; average=${Math.round(this.currentRate/1024)}K bytes/ms=${Math.round(r)}/${Math.round(i)} interval=${Math.round(t-e)}`),!0}}return!1}_joinIntervals(){let e;do{e=!1;for(let t=0;t<this.intervals.length-1;++t)this._mergeIntervals(this.intervals[t],this.intervals[t+1])&&(this.intervals.splice(t+1,1),e=!0)}while(e)}addInterval(e,t,i){return this.intervals.push(this._createInterval(e,t,i)),this._joinIntervals(),this.intervals.length>100&&(this.logger(`too many intervals (${this.intervals.length}); will merge`,{type:"warn"}),this._doMergeIntervals(this.intervals[1],this.intervals[0]),this.intervals.splice(0,1)),this._flushIntervals()}getBitRate(){return this.currentRate}};var Iv=C(_i(),1);var Ps=class{constructor(e,t,i,r,a){this.pendingQueue=[];this.activeRequests={};this.completeRequests={};this.averageSegmentDuration=2e3;this.lastPrefetchStart=0;this.throttleTimeout=null;this.RETRY_COUNT=e,this.TIMEOUT=t,this.BITRATE_ESTIMATOR=i,this.MAX_PARALLEL_REQUESTS=r,this.logger=a}limitCompleteCount(){let e;for(;(e=Object.keys(this.completeRequests)).length>this._getParallelRequestCount()+2;){let t=e[Math.floor(Math.random()*e.length)];this.logger(`Dropping completed request for url ${t}`,{type:"warn"}),delete this.completeRequests[t]}}_sendRequest(e,t){let i=ke(),r=u=>{delete this.activeRequests[t],this.limitCompleteCount(),this.completeRequests[t]=e,this._sendPending(),e._error=1,e._errorMsg=u,e._errorCB?e._errorCB(u):(this.limitCompleteCount(),this.completeRequests[t]=e)},a=u=>{e._complete=1,e._responseData=u,e._downloadTime=ke()-i,delete this.activeRequests[t],this._sendPending(),e._cb?e._cb(u,e._downloadTime):(this.limitCompleteCount(),this.completeRequests[t]=e)},n=()=>{e._finallyCB&&e._finallyCB()},o=()=>{e._retry=1,e._retryCB&&e._retryCB()};e._request=Er(t,a,()=>r("error"),o),e._request.withRetryCount(this.RETRY_COUNT).withTimeout(this.TIMEOUT).withBitrateReporting(this.BITRATE_ESTIMATOR).withParallel(this._getParallelRequestCount()>1).withFinally(n),this.activeRequests[t]=e,e._request.send(),this.lastPrefetchStart=ke()}_getParallelRequestCount(){return Math.min(this.MAX_PARALLEL_REQUESTS,this.averageSegmentDuration<3e3?3:2)}_getPrefetchDelay(){return Math.max(100,Math.min(5e3,this.averageSegmentDuration/3))}_canSendPending(){let e=this._getParallelRequestCount(),t=ke();if(Object.keys(this.activeRequests).length>=e)return!1;let i=this._getPrefetchDelay()-(t-this.lastPrefetchStart);return this.throttleTimeout&&clearTimeout(this.throttleTimeout),i>0?(this.throttleTimeout=window.setTimeout(()=>this._sendPending(),i),!1):!0}_sendPending(){for(;this._canSendPending();){let e=this.pendingQueue.pop();if(e){if(this.activeRequests[e]||this.completeRequests[e])continue;this.logger(`Submitting pending request url=${e}`),this._sendRequest({},e)}else return}}_removeFromActive(e){delete this.completeRequests[e],delete this.activeRequests[e]}abortAll(){(0,Iv.default)(this.activeRequests).forEach(e=>{e&&e._request&&e._request.abort()}),this.activeRequests={},this.pendingQueue=[],this.completeRequests={}}requestData(e,t,i,r){let a={};return a.send=()=>{let n=this.activeRequests[e]||this.completeRequests[e];if(n)n._cb=t,n._errorCB=i,n._retryCB=r,n._finallyCB=a._finallyCB,n._error||n._complete?(this._removeFromActive(e),setTimeout(()=>{n._complete?(this.logger(`Requested url already prefetched, url=${e}`),t(n._responseData,n._downloadTime)):(this.logger(`Requested url already prefetched with error, url=${e}`),i(n._errorMsg)),a._finallyCB&&a._finallyCB()},0)):this.logger(`Attached to active request, url=${e}`);else{let o=this.pendingQueue.indexOf(e);o!==-1&&this.pendingQueue.splice(o,1),this.logger(`Request not prefetched, starting new request, url=${e}${o===-1?"":"; removed pending"}`),this._sendRequest(a,e)}},a._cb=t,a._errorCB=i,a._retryCB=r,a.abort=function(){a.request&&a.request.abort()},a.withFinally=n=>(a._finallyCB=n,a),a}prefetch(e){this.activeRequests[e]||this.completeRequests[e]?this.logger(`Request already active for url=${e}`):(this.logger(`Added to pending queue; url=${e}`),this.pendingQueue.unshift(e),this._sendPending())}optimizeForSegDuration(e){this.averageSegmentDuration=e}};import{Subject as cB}from"@vkontakte/videoplayer-shared/es2024";var To=1e4,Vc=3;var dB=6e4,pB=10,hB=1,fB=500,Rs=class{constructor(e){this.paused=!1;this.autoQuality=!0;this.autoQualityLimits=void 0;this.buffering=!0;this.destroyed=!1;this.videoPlayStarted=!1;this.lowLatency=!1;this.bitrate=0;this.manifest=[];this.sourceBuffer=0;this.bufferStates=[];this.sourceJitter=-1;this.waitingForFirstBufferAfterSrcChange=!1;this.params=e,this.soundProhibitedEvent$=new cB,this.chunkRateEstimator=new As(this.params.logger),this._initVideo()}attachSource(e){this.manifestUrl=e,this.urlResolver=Cc(e),this.bitrateSwitcher=this._initBitrateSwitcher(),this._initManifest()}setAutoQualityEnabled(e){this.autoQuality=e}setAutoQualityLimits(e){this.autoQualityLimits=e}switchByName(e){let t;for(let i=0;i<this.manifest.length;++i)if(t=this.manifest[i],t.name===e){this._switchToQuality(t);return}}catchUp(){if(this.rep&&this.rep.stop(),this.currentManifestEntry){let e=this.params.playbackState.getState();this.paused=e==="paused",this._initPlayerWith(this.currentManifestEntry),this._notifyBuffering(!0)}}stop(){this.params.videoElement.pause(),this.rep&&(this.rep.stop(),this.rep=null)}pause(){this.paused=!0,this.params.videoElement.pause(),this.videoPlayStarted=!1,this._notifyBuffering(!1)}play(){this.paused=!1;let e=this.lowLatency&&this._getBufferSizeSec()>this.sourceJitter+5;this.rep&&!e?(this.bufferStates=[],this.videoPlayStarted=!1,this.shouldPlay()?this._playVideoElement():this._notifyBuffering(!0)):this.catchUp()}startPlay(e,t){this.autoQuality=t,this._initPlayerWith(e)}destroy(){this.destroyed=!0,this.rep&&(this.rep.stop(),this.rep=null),this.manifestRequest&&this.manifestRequest.abort(),this.manifestRefetchTimer&&(clearTimeout(this.manifestRefetchTimer),this.manifestRefetchTimer=void 0)}reinit(e){this.manifestUrl=e,this.urlResolver=Cc(e),this.catchUp()}_handleNetworkError(){this.params.logger("Fatal network error"),this.params.playerCallback({name:"error",type:"network"})}_retryCallback(){this.params.playerCallback({name:"retry"})}_getBufferSizeSec(){let e=this.params.videoElement,t=0,i=e.buffered.length;return i!==0&&(t=e.buffered.end(i-1)-Math.max(e.currentTime,e.buffered.start(0))),t}_notifyBuffering(e){this.destroyed||(this.params.logger(`buffering: ${e}`),this.params.playerCallback({name:"buffering",isBuffering:e}),this.buffering=e)}_initVideo(){let{videoElement:e,logger:t}=this.params;e.addEventListener("error",()=>{!!e.error&&!this.destroyed&&(t(`Video element error: ${e.error?.code}, details: ${e.error?.message}`),this.params.playerCallback({name:"error",type:"media"}))}),e.addEventListener("timeupdate",()=>{let i=this._getBufferSizeSec();!this.paused&&i<.3?this.buffering||(this.buffering=!0,window.setTimeout(()=>{!this.paused&&this.buffering&&this._notifyBuffering(!0)},(i+.1)*1e3)):this.buffering&&this.videoPlayStarted&&this._notifyBuffering(!1)}),e.addEventListener("playing",()=>{t("playing")}),e.addEventListener("stalled",()=>this._fixupStall()),e.addEventListener("waiting",()=>this._fixupStall())}_fixupStall(){let{logger:e,videoElement:t}=this.params,i=t.buffered.length,r;i!==0&&!this.waitingForFirstBufferAfterSrcChange&&(r=t.buffered.start(i-1),t.currentTime<r&&(e("Fixup stall"),t.currentTime=r))}_selectQuality(e){let{videoElement:t}=this.params,i,r,a,n=t&&1.62*(F.display.pixelRatio||1)*t.offsetHeight||520;for(let o=0;o<this.manifest.length;++o){a=this.manifest[o];let{max:u,min:l}=this.autoQualityLimits||{};!ov({limits:this.autoQualityLimits,highestAvailableHeight:this.manifest[0].video.height,lowestAvailableHeight:(0,xv.default)(this.manifest,-1).video.height})&&(u&&a.video.height>u||l&&a.video.height<l)||(a.bitrate<e&&n>Math.min(a.video.height,a.video.width)?(!r||a.bitrate>r.bitrate)&&(r=a):(!i||i.bitrate>a.bitrate)&&(i=a))}return r||i}shouldPlay(){if(this.paused)return!1;let t=this._getBufferSizeSec()-Math.max(1,this.sourceJitter);return t>3||yo(this.downloadRate)&&(this.downloadRate>1.5&&t>2||this.downloadRate>2&&t>1)}_setVideoSrc(e,t){let{logger:i,videoElement:r,playerCallback:a}=this.params;this.mediaSource=new window.MediaSource,i("setting video src"),r.src=URL.createObjectURL(this.mediaSource),this.mediaSource.addEventListener("sourceopen",()=>{this.mediaSource&&(this.sourceBuffer=this.mediaSource.addSourceBuffer(e.codecs),this.bufferStates=[],t())}),this.videoPlayStarted=!1,r.addEventListener("canplay",()=>{this.shouldPlay()&&(this.videoPlayStarted=!0,this._playVideoElement())});let n=()=>{Tv(r,"progress",()=>{r.buffered.length?(r.currentTime=r.buffered.start(0),this.waitingForFirstBufferAfterSrcChange=!1,a({name:"playing"})):n()})};this.waitingForFirstBufferAfterSrcChange=!0,n()}_initPlayerWith(e){this.bitrate=0,this.rep=0,this.sourceBuffer=0,this.bufferStates=[],this.filesFetcher&&this.filesFetcher.abortAll(),this.filesFetcher=new Ps(Vc,To,this.bitrateSwitcher,this.params.config.maxParallelRequests,this.params.logger),this._setVideoSrc(e,()=>this._switchToQuality(e))}_representation(e){let{logger:t,videoElement:i,playerCallback:r}=this.params,a=!1,n=null,o=null,u=null,l=null,d=!1,c=()=>{let E=a&&(!d||d===this.rep);return E||t("Not running!"),E},p=(E,w,L)=>{u&&u.abort(),u=Er(this.urlResolver.resolve(E,!1),w,L,()=>this._retryCallback()).withTimeout(To).withBitrateReporting(this.bitrateSwitcher).withRetryCount(Vc).withFinally(()=>{u=null}).send()},h=(E,w,L)=>{ks(this.filesFetcher),o?.abort(),o=this.filesFetcher.requestData(this.urlResolver.resolve(E,!1),w,L,()=>this._retryCallback()).withFinally(()=>{o=null}).send()},f=E=>{let w=i.playbackRate;i.playbackRate!==E&&(t(`Playback rate switch: ${w}=>${E}`),i.playbackRate=E)},b=E=>{this.lowLatency=E,t(`lowLatency changed to ${E}`),g()},g=()=>{if(!this.lowLatency&&!this.params.config.isLiveCatchUpMode)f(1);else{let E=this._getBufferSizeSec();if(this.bufferStates.length<5){f(1);return}let L=ke()-1e4,O=0;for(let P=0;P<this.bufferStates.length;P++){let v=this.bufferStates[P];E=Math.min(E,v.buf),v.ts<L&&O++}this.bufferStates.splice(0,O),t(`update playback rate; minBuffer=${E} drop=${O} jitter=${this.sourceJitter}`);let A=E-hB;this.sourceJitter>=0?A-=this.sourceJitter/2:this.sourceJitter-=1,A>3?f(1.15):A>1?f(1.1):A>.3?f(1.05):f(1)}},S=E=>{let w,L=()=>w&&w.start?w.start.length:0,O=$=>w.start[$]/1e3,A=$=>w.dur[$]/1e3,P=$=>w.fragIndex+$,v=($,q)=>({chunkIdx:P($),startTS:O($),dur:A($),discontinuity:q}),D=()=>{let $=0;if(w&&w.dur){let q=this.lowLatency?this.params.config.lowLatencyMinBuffer:this.params.config.minBuffer,X=this.lowLatency?this.params.config.lowLatencyMinBufferSegments:this.params.config.minBufferSegments,ne=q;this.sourceJitter>1&&(ne+=this.sourceJitter-1);let ge=w.dur.length-1;for(;ge>=0&&(ne-=w.dur[ge],!(ne<=0));--ge);$=Math.min(ge,w.dur.length-1-X),$=Math.max($,0)}return v($,!0)},I=$=>{let q=L();if(!(q<=0)){if(yo($)){for(let X=0;X<q;X++)if(O(X)>$)return v(X)}return D()}},x=$=>{let q=L(),X=$?$.chunkIdx+1:0,ne=X-w.fragIndex;if(!(q<=0)){if(!$||ne<0||ne-q>pB)return t(`Resync: offset=${ne} bChunks=${q} chunk=`+JSON.stringify($)),D();if(!(ne>=q))return v(X-w.fragIndex,!1)}},k=($,q,X)=>{l&&l.abort(),l=Er(this.urlResolver.resolve($,!0,this.lowLatency),q,X,()=>this._retryCallback()).withTimeout(To).withRetryCount(Vc).withFinally(()=>{l=null}).withJSONResponse().send()};return{seek:($,q)=>{k(E,X=>{if(!c())return;w=X;let ne=!!w.lowLatency;ne!==this.lowLatency&&b(ne);let ge=0;for(let oe=0;oe<w.dur.length;++oe)ge+=w.dur[oe];ge>0&&(ks(this.filesFetcher),this.filesFetcher.optimizeForSegDuration(ge/w.dur.length)),r({name:"index",zeroTime:w.zeroTime,shiftDuration:w.shiftDuration}),this.sourceJitter=w.hasOwnProperty("jitter")?Math.min(10,Math.max(.01,w.jitter/1e3)):1,$(I(q))},()=>this._handleNetworkError())},nextChunk:x}},T=()=>{a=!1,o&&o.abort(),u&&u.abort(),l&&l.abort(),ks(this.filesFetcher),this.filesFetcher.abortAll()};return d={start:E=>{let{videoElement:w,logger:L}=this.params,O=S(e.jidxUrl),A,P,v,D,I=0,x,k,re,$=()=>{x&&(clearTimeout(x),x=void 0);let V=Math.max(fB,1e3*(this._getBufferSizeSec()-this.sourceJitter-5)),Ee=I+V,Se=ke(),te=Math.min(1e4,Ee-Se);I=Se;let ye=()=>{l||c()&&O.seek(()=>{c()&&(I=ke(),q(),$())})};te>0?x=window.setTimeout(()=>{this.paused?$():ye()},te):ye()},q=()=>{let V;for(;V=O.nextChunk(D);)D=V,Z(V);let Ee=O.nextChunk(v);if(Ee){if(v&&Ee.discontinuity){L("Detected discontinuity; restarting playback"),this.paused?$():(T(),this._initPlayerWith(e));return}oe(Ee)}else $()},X=(V,Ee)=>{if(!c()||!this.sourceBuffer)return;let Se,te,ye,et=Oe=>{window.setTimeout(()=>{c()&&X(V,Ee)},Oe)};if(this.sourceBuffer.updating)L("Source buffer is updating; delaying appendBuffer"),et(100);else{let Oe=ke(),ce=w.currentTime;!this.paused&&w.buffered.length>1&&k===ce&&Oe-re>500&&(L("Stall suspected; trying to fix"),this._fixupStall()),k!==ce&&(k=ce,re=Oe);let tt=this._getBufferSizeSec();if(tt>30)L(`Buffered ${tt} seconds; delaying appendBuffer`),et(2e3);else try{this.sourceBuffer.appendBuffer(V),this.videoPlayStarted?(this.bufferStates.push({ts:Oe,buf:tt}),g(),this.bufferStates.length>200&&this.bufferStates.shift()):this.shouldPlay()&&(this.videoPlayStarted=!0,this._playVideoElement()),Ee&&Ee()}catch(xe){if(xe.name==="QuotaExceededError")L("QuotaExceededError; delaying appendBuffer"),ye=this.sourceBuffer.buffered.length,ye!==0&&(Se=this.sourceBuffer.buffered.start(0),te=ce,te-Se>4&&this.sourceBuffer.remove(Se,te-3)),et(1e3);else throw xe}}},ne=()=>{P&&A&&(L([`Appending chunk, sz=${P.byteLength}:`,JSON.stringify(v)]),X(P,function(){P=null,q()}))},ge=V=>e.fragUrlTemplate.replace("%%id%%",V.chunkIdx),oe=V=>{c()&&h(ge(V),(Ee,Se)=>{if(c()){if(Se/=1e3,P=Ee,v=V,n=V.startTS,Se){let te=Math.min(10,V.dur/Se);this.downloadRate=this.downloadRate?(1-.3)*this.downloadRate+.3*te:te}ne()}},()=>this._handleNetworkError())},Z=V=>{c()&&(ks(this.filesFetcher),this.filesFetcher.prefetch(this.urlResolver.resolve(ge(V),!1)))},R=V=>{c()&&(e.cachedHeader=V,X(V,()=>{A=!0,ne()}))};a=!0,O.seek(V=>{if(c()){if(I=ke(),!V){$();return}D=V,!lB(E)||V.startTS>E?oe(V):(v=V,q())}},E),e.cachedHeader?R(e.cachedHeader):p(e.headerUrl,R,()=>this._handleNetworkError())},stop:T,getTimestampSec:()=>n},d}_switchToQuality(e){let{logger:t,playerCallback:i}=this.params,r;e.bitrate!==this.bitrate&&(this.rep&&(r=this.rep.getTimestampSec(),yo(r)&&(r+=.1),this.rep.stop()),this.currentManifestEntry=e,this.rep=this._representation(e),t(`switch to quality: codecs=${e.codecs}; headerUrl=${e.headerUrl}; bitrate=${e.bitrate}`),this.bitrate=e.bitrate,ks(this.bitrateSwitcher),this.bitrateSwitcher.notifySwitch(this.bitrate),this.rep.start(r),i({name:"qualitySwitch",quality:e}))}_qualityAvailable(e){return yo(this.manifest.find(t=>t.name===e))}_initBitrateSwitcher(){let{logger:e,playerCallback:t}=this.params,i=c=>{if(!this.autoQuality)return;let p,h,f;if(this.currentManifestEntry&&this._qualityAvailable(this.currentManifestEntry.name)&&c<this.bitrate&&(h=this._getBufferSizeSec(),f=c/this.bitrate,h>10&&f>.8||h>15&&f>.5||h>20&&f>.3)){e(`Not switching: buffer=${Math.floor(h)}; bitrate=${this.bitrate}; newRate=${Math.floor(c)}`);return}p=this._selectQuality(c),p?this._switchToQuality(p):e(`Could not find quality by bitrate ${c}`)},a={updateChunk:(p,h)=>{let f=ke();if(this.chunkRateEstimator.addInterval(p,f,h)){let g=this.chunkRateEstimator.getBitRate();return t({name:"bandwidth",size:h,duration:f-p,speed:g}),!0}},get:()=>{let p=this.chunkRateEstimator.getBitRate();return p?p*.85:0}},n=-1/0,o,u=!0,l=()=>{let c=a.get();if(c&&o&&this.autoQuality){if(u&&c>o&&Dc(n)<3e4)return;i(c)}u=this.autoQuality};return{updateChunk:(c,p)=>{let h=a.updateChunk(c,p);return h&&l(),h},notifySwitch:c=>{let p=ke();c<o&&(n=p),o=c}}}_fetchManifest(e,t,i){this.manifestRequest=Er(this.urlResolver.resolve(e,!0),t,i,()=>this._retryCallback()).withJSONResponse().withTimeout(To).withRetryCount(this.params.config.manifestRetryMaxCount).withRetryInterval(this.params.config.manifestRetryInterval,this.params.config.manifestRetryMaxInterval).send().withFinally(()=>{this.manifestRequest=void 0})}_playVideoElement(){let{videoElement:e}=this.params;Xe(e,()=>{this.soundProhibitedEvent$.next()}).then(t=>{t||(this.params.liveOffset.pause(),this.params.videoState.setState("paused"))})}_handleManifestUpdate(e){let{logger:t,playerCallback:i,videoElement:r}=this.params,a=n=>{let o=[];return n?.length?(n.forEach((u,l)=>{u.video&&r.canPlayType(u.codecs).replace(/no/,"")&&window.MediaSource?.isTypeSupported?.(u.codecs)&&(u.index=l,o.push(u))}),o.sort(function(u,l){return u.video&&l.video?l.video.height-u.video.height:l.bitrate-u.bitrate}),o):(i({name:"error",type:"empty_manifest"}),[])};this.manifest=a(e),t(`Valid manifest entries: ${this.manifest.length}/${e.length}`),i({name:"manifest",manifest:this.manifest})}_refetchManifest(e){this.destroyed||(this.manifestRefetchTimer&&clearTimeout(this.manifestRefetchTimer),this.manifestRefetchTimer=window.setTimeout(()=>{this._fetchManifest(e,t=>{this.destroyed||(this._handleManifestUpdate(t),this._refetchManifest(e))},()=>this._refetchManifest(e))},dB))}_initManifest(){this._fetchManifest(this.manifestUrl,e=>{this.destroyed||(this._handleManifestUpdate(e),this._refetchManifest(this.manifestUrl))},()=>this._handleNetworkError())}};var Av=C(Mi(),1);import{debounce as mB,filter as Ev,fromEvent as bB,interval as gB,isHigher as SB,isInvariantQuality as vB,isLower as yB,merge as TB,Subject as wv,Subscription as IB}from"@vkontakte/videoplayer-shared/es2024";var Oc=class{constructor(){this.onDroopedVideoFramesLimit$=new wv;this.subscription=new IB;this.playing=!1;this.tracks=[];this.forceChecker$=new wv;this.isForceCheckCounter=0;this.prevTotalVideoFrames=0;this.prevDroppedVideoFrames=0;this.limitCounts={};this.handleChangeVideoQuality=()=>{let e=this.tracks.find(({size:t})=>t?.height===this.video.videoHeight&&t?.width===this.video.videoWidth);e&&!vB(e.quality)&&this.onChangeQuality(e.quality)};this.checkDroppedFrames=()=>{let{totalVideoFrames:e,droppedVideoFrames:t}=this.video.getVideoPlaybackQuality(),i=e-this.prevTotalVideoFrames,r=t-this.prevDroppedVideoFrames,a=1-(i-r)/i;!isNaN(a)&&a>0&&this.log({message:`[dropped]. current dropped percent: ${a}, limit: ${this.droppedFramesChecker.percentLimit}`}),!isNaN(a)&&a>=this.droppedFramesChecker.percentLimit&&SB(this.currentQuality,this.droppedFramesChecker.minQualityBanLimit)&&(this.limitCounts[this.currentQuality]=(this.limitCounts[this.currentQuality]??0)+1,this.maxQualityLimit=this.getMaxQualityLimit(this.currentQuality),this.currentTimer&&window.clearTimeout(this.currentTimer),this.currentTimer=window.setTimeout(()=>this.maxQualityLimit=this.getMaxQualityLimit(),this.droppedFramesChecker.qualityUpWaitingTime),this.onDroopedVideoFramesLimitTrigger()),this.savePrevFrameCounts(e,t)}}connect(e){this.log=e.logger.createComponentLog("DroppedFramesManager"),this.video=e.video,this.isAuto=e.isAuto,this.tracks=e.tracks,this.droppedFramesChecker=e.droppedFramesChecker,this.subscription.add(e.playing$.subscribe(()=>this.playing=!0)),this.subscription.add(e.pause$.subscribe(()=>this.playing=!1)),this.isEnabled&&this.subscribe()}destroy(){this.currentTimer&&window.clearTimeout(this.currentTimer),this.subscription.unsubscribe()}get droppedVideoMaxQualityLimit(){return this.maxQualityLimit}subscribe(){this.subscription.add(bB(this.video,"resize").subscribe(this.handleChangeVideoQuality));let e=gB(this.droppedFramesChecker.checkTime).pipe(Ev(()=>this.playing),Ev(()=>{let r=!!this.isForceCheckCounter;return r&&(this.isForceCheckCounter-=1),!r})),t=this.forceChecker$.pipe(mB(this.droppedFramesChecker.checkTime)),i=TB(e,t);this.subscription.add(i.subscribe(this.checkDroppedFrames))}onChangeQuality(e){this.currentQuality=e;let{totalVideoFrames:t,droppedVideoFrames:i}=this.video.getVideoPlaybackQuality();this.savePrevFrameCounts(t,i),this.isForceCheckCounter=this.droppedFramesChecker.tickCountAfterQualityChange,this.forceChecker$.next()}onDroopedVideoFramesLimitTrigger(){this.isAuto.getState()&&(this.log({message:`[onDroopedVideoFramesLimit]. maxQualityLimit: ${this.maxQualityLimit}`}),this.onDroopedVideoFramesLimit$.next())}getMaxQualityLimit(e){let t=(0,Av.default)(this.limitCounts).filter(([,i])=>i>=this.droppedFramesChecker.countLimit).sort(([i],[r])=>yB(i,r)?-1:1)?.[0]?.[0];return e??t}get isEnabled(){return this.droppedFramesChecker.enabled&&this.isDroppedFramesCheckerSupport}get isDroppedFramesCheckerSupport(){return!!this.video&&typeof this.video.getVideoPlaybackQuality=="function"}savePrevFrameCounts(e,t){this.prevTotalVideoFrames=e,this.prevDroppedVideoFrames=t}},wr=Oc;import{map as xB,Observable as EB}from"@vkontakte/videoplayer-shared/es2024";import{fromEvent as wB}from"@vkontakte/videoplayer-shared/es2024";var Ms=()=>!!window.documentPictureInPicture?.window||!!document.pictureInPictureElement;var AB=(s,e)=>new EB(t=>{if(!window.IntersectionObserver)return;let i={root:null},r=new IntersectionObserver((n,o)=>{n.forEach(u=>t.next(u.isIntersecting||Ms()))},{...i,...e});r.observe(s);let a=wB(document,"visibilitychange").pipe(xB(n=>!document.hidden||Ms())).subscribe(n=>t.next(n));return()=>{r.unobserve(s),a.unsubscribe()}}),gt=AB;var DB=["paused","playing","ready"],CB=["paused","playing","ready"],Ls=class{constructor(e){this.subscription=new BB;this.videoState=new U("stopped");this.representations$=new Fc([]);this.droppedFramesManager=new wr;this.maxSeekBackTime$=new Fc(1/0);this.zeroTime$=new Fc(void 0);this.liveOffset=new Fi;this._dashCb=e=>{switch(e.name){case"buffering":{let t=e.isBuffering;this.params.output.isBuffering$.next(t);break}case"error":{this.params.output.error$.next({id:`DashLiveProviderInternal:${e.type}`,category:Rv.WTF,message:"LiveDashPlayer reported error"});break}case"manifest":{let t=e.manifest,i=[];for(let r of t){let a=r.name??r.index.toString(10),n=hi(r.name)??$B(r.video),o=r.bitrate/1e3,u={...r.video};if(!n)continue;let l={id:a,quality:n,bitrate:o,size:u};i.push({track:l,representation:r})}this.representations$.next(i),this.params.output.availableVideoTracks$.next(i.map(({track:r})=>r)),this.videoState.getTransition()?.to==="manifest_ready"&&this.videoState.setState("manifest_ready");break}case"qualitySwitch":{let t=e.quality,i=this.representations$.getValue().find(({representation:r})=>r===t)?.track;this.params.output.hostname$.next(new URL(t.headerUrl,this.params.source.url).hostname),_c(i)&&this.params.output.currentVideoTrack$.next(i);break}case"bandwidth":{let{size:t,duration:i}=e;this.params.dependencies.throughputEstimator.addRawSpeed(t,i);break}case"index":{this.maxSeekBackTime$.next(e.shiftDuration||0),this.zeroTime$.next(e.zeroTime);break}}};this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.dash.destroy(),this.video.removeAttribute("src"),this.video.load(),this.videoState.setState("stopped"));return}if(t)return;let n=this.params.desiredState.videoTrack.getTransition(),o=this.params.desiredState.autoVideoTrackSwitching.getTransition();if((0,Nc.default)(CB,e)&&(n||o)){this.prepare();return}if(r?.to!=="paused"&&a.state==="requested"&&(0,Nc.default)(DB,e)){this.seek(a.position-this.liveOffset.getTotalPausedTime());return}switch(e){case"stopped":this.videoState.startTransitionTo("manifest_ready"),this.dash.attachSource(be(this.params.source.url));return;case"manifest_ready":this.videoState.startTransitionTo("ready"),this.prepare();break;case"ready":if(i==="paused")this.videoState.setState("paused");else if(i==="playing"){this.videoState.startTransitionTo("playing");let u=r?.from;u&&u==="ready"&&this.dash.catchUp(),this.dash.play()}return;case"playing":i==="paused"&&(this.videoState.startTransitionTo("paused"),this.liveOffset.pause(),this.dash.pause());return;case"paused":if(i==="playing")if(this.videoState.startTransitionTo("playing"),this.liveOffset.getTotalPausedTime()<this.params.config.maxPausedTime&&this.liveOffset.getTotalOffset()<this.maxSeekBackTime$.getValue())this.liveOffset.resume(),this.dash.play(),this.params.output.position$.next(-this.liveOffset.getTotalOffset()/1e3);else{let u=this.liveOffset.getTotalOffset();u>=this.maxSeekBackTime$.getValue()&&(u=0,this.liveOffset.resetTo(u)),this.liveOffset.resume(),this.params.output.position$.next(-u/1e3),this.dash.reinit(be(this.params.source.url,u))}return;default:return Pv(e)}};this.textTracksManager=new bt(e.source.url),this.params=e,this.log=this.params.dependencies.logger.createComponentLog("DashLiveProvider");let t=r=>{e.output.error$.next({id:"DashLiveProvider",category:Rv.WTF,message:"DashLiveProvider internal logic error",thrown:r})};this.subscription.add(Lv(this.videoState.stateChangeStarted$.pipe(Io(r=>({transition:r,type:"start"}))),this.videoState.stateChangeEnded$.pipe(Io(r=>({transition:r,type:"end"})))).subscribe(({transition:r,type:a})=>{this.log({message:`[videoState change] ${a}: ${JSON.stringify(r)}`})})),this.video=Ge(e.container,e.tuning),this.params.output.element$.next(this.video),this.dash=this.createLiveDashPlayer(),this.subscription.add(this.dash.soundProhibitedEvent$.subscribe(this.params.output.soundProhibitedEvent$)),this.params.output.duration$.next(1/0),this.params.output.position$.next(0),this.params.output.isLive$.next(!0),this.params.output.canChangePlaybackSpeed$.next(!1),this.params.output.hostname$.next($e(this.params.source.url)),this.params.output.autoVideoTrackLimitingAvailable$.next(!0),this.params.output.availableVideoTracks$.next([]),this.params.output.availableAudioTracks$.next([]),this.params.output.isAudioAvailable$.next(!0),this.params.output.availableTextTracks$.next([]),this.params.desiredState.internalTextTracks.setState([]),this.textTracksManager.connect(this.video,this.params.desiredState,this.params.output);let i=Ke(this.video);this.subscription.add(()=>i.destroy()),this.subscription.add(this.representations$.pipe(Io(r=>r.map(({track:a})=>a)),Mv(r=>!!r.length),LB()).subscribe(r=>this.droppedFramesManager.connect({logger:this.params.dependencies.logger,video:this.video,droppedFramesChecker:this.params.tuning.droppedFramesChecker,isAuto:this.params.desiredState.autoVideoTrackSwitching,playing$:i.playing$,pause$:i.pause$,tracks:r}))),this.subscription.add(i.canplay$.subscribe(()=>{this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready")},t)).add(i.pause$.subscribe(()=>{this.videoState.setState("paused")},t)).add(i.playing$.subscribe(()=>{this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.videoState.setState("playing")},t)).add(i.error$.subscribe(this.params.output.error$)).add(this.maxSeekBackTime$.pipe(RB(),Io(r=>-r/1e3)).subscribe(this.params.output.duration$)).add(PB({zeroTime:this.zeroTime$.pipe(Mv(_c)),position:i.timeUpdate$}).subscribe(({zeroTime:r,position:a})=>this.params.output.liveTime$.next(r+a*1e3),t)).add(Dt(this.video,this.params.desiredState.isLooped,t)).add(Ye(this.video,this.params.desiredState.volume,i.volumeState$,t)).add(i.volumeState$.subscribe(this.params.output.volume$,t)).add(mt(this.video,this.params.desiredState.playbackRate,i.playbackRateState$,t)).add(i.loadStart$.subscribe(this.params.output.firstBytesEvent$)).add(i.loadedMetadata$.subscribe(this.params.output.loadedMetadataEvent$)).add(i.playing$.subscribe(this.params.output.firstFrameEvent$)).add(i.canplay$.subscribe(this.params.output.canplay$)).add(i.inPiP$.subscribe(this.params.output.inPiP$)).add(i.inFullscreen$.subscribe(this.params.output.inFullscreen$)).add(gt(this.video).subscribe(this.params.output.elementVisible$)).add(this.params.desiredState.autoVideoTrackLimits.stateChangeStarted$.subscribe(({to:{max:r,min:a}})=>{this.dash.setAutoQualityLimits({max:r&&Bv(r),min:a&&Bv(a)}),this.params.output.autoVideoTrackLimits$.next({max:r,min:a})})).add(this.videoState.stateChangeEnded$.subscribe(r=>{switch(r.to){case"stopped":this.params.output.position$.next(0),this.params.output.duration$.next(1/0),this.params.desiredState.playbackState.setState("stopped");break;case"manifest_ready":case"ready":this.params.desiredState.playbackState.getTransition()?.to==="ready"&&this.params.desiredState.playbackState.setState("ready");break;case"paused":this.params.desiredState.playbackState.setState("paused");break;case"playing":this.params.desiredState.playbackState.setState("playing");break;default:return Pv(r.to)}},t)).add(Lv(e.desiredState.playbackState.stateChangeStarted$,e.desiredState.seekState.stateChangeEnded$,e.desiredState.videoTrack.stateChangeStarted$,e.desiredState.autoVideoTrackSwitching.stateChangeStarted$,this.videoState.stateChangeEnded$,this.droppedFramesManager.onDroopedVideoFramesLimit$,MB(["init"])).pipe(kB(0)).subscribe(this.syncPlayback,t))}destroy(){this.subscription.unsubscribe(),this.textTracksManager.destroy(),this.droppedFramesManager.destroy(),this.dash.destroy(),this.params.output.element$.next(void 0),We(this.video)}createLiveDashPlayer(){let e=new Rs({videoElement:this.video,videoState:this.videoState,playbackState:this.params.desiredState.playbackState,liveOffset:this.liveOffset,config:{maxParallelRequests:this.params.config.maxParallelRequests,minBuffer:this.params.tuning.live.minBuffer,minBufferSegments:this.params.tuning.live.minBufferSegments,lowLatencyMinBuffer:this.params.tuning.live.lowLatencyMinBuffer,lowLatencyMinBufferSegments:this.params.tuning.live.lowLatencyMinBufferSegments,isLiveCatchUpMode:this.params.tuning.live.isLiveCatchUpMode,manifestRetryInterval:this.params.tuning.manifestRetryInterval,manifestRetryMaxInterval:this.params.tuning.manifestRetryMaxInterval,manifestRetryMaxCount:this.params.tuning.manifestRetryMaxCount},playerCallback:this._dashCb,logger:t=>{this.params.dependencies.logger.log({message:String(t),component:"LiveDashPlayer"})}});return e.pause(),e}prepare(){let e=this.representations$.getValue(),t=this.params.desiredState.videoTrack.getTransition()?.to??this.params.desiredState.videoTrack.getState(),i=this.params.desiredState.autoVideoTrackSwitching.getTransition()?.to??this.params.desiredState.autoVideoTrackSwitching.getState(),r=!i&&_c(t)?t:Ot(e.map(({track:l})=>l),{container:this.video.getBoundingClientRect(),panelSize:this.params.panelSize,estimatedThroughput:this.params.dependencies.throughputEstimator.throughput$.getValue(),tuning:this.params.tuning.autoTrackSelection,limits:this.params.desiredState.autoVideoTrackLimits.getState(),droppedVideoMaxQualityLimit:this.droppedFramesManager.droppedVideoMaxQualityLimit,abrLogger:this.params.dependencies.abrLogger}),a=r?.id,n=this.params.desiredState.videoTrack.getTransition(),o=this.params.desiredState.videoTrack.getState()?.id,u=this.params.desiredState.autoVideoTrackSwitching.getTransition();if(r&&(n||a!==o)&&this.setVideoTrack(r),u&&this.setAutoQuality(i),n||u||a!==o){let l=e.find(({track:d})=>d.id===a)?.representation;kv(l,"Representations missing"),this.dash.startPlay(l,i)}}setVideoTrack(e){let t=this.representations$.getValue().find(({track:i})=>i.id===e.id)?.representation;kv(t,`No such representation ${e.id}`),this.dash.switchByName(t.name),this.params.desiredState.videoTrack.setState(e)}setAutoQuality(e){this.dash.setAutoQualityEnabled(e),this.params.desiredState.autoVideoTrackSwitching.setState(e)}seek(e){this.log({message:`[seek] position: ${e}`}),this.params.output.willSeekEvent$.next();let t=this.params.desiredState.playbackState.getState(),i=this.videoState.getState(),r=t==="paused"&&i==="paused",a=-e,n=a<=this.maxSeekBackTime$.getValue()?a:0;this.params.output.position$.next(e/1e3),this.dash.reinit(be(this.params.source.url,n)),r&&this.dash.pause(),this.liveOffset.resetTo(n,r)}};var $v=Ls;var QT=C(dt(),1);var Re=(s,e)=>{let t=0;for(let i=0;i<s.length;i++){let r=s.start(i)*1e3,a=s.end(i)*1e3;r<=e&&e<=a&&(t=a)}return Math.max(t-e,0)};import{assertNever as g0,assertNonNullable as S0,debounce as v0,ErrorCategory as jT,filter as Ad,filterChanged as Yo,fromEvent as y0,isNonNullable as HT,isNullable as T0,map as Pd,merge as Ko,observableFrom as kd,once as zT,Subscription as I0}from"@vkontakte/videoplayer-shared/es2024";var xo=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:i})}removeEventListener(e,t){if(!(e in this.listeners))return;let i=this.listeners[e];for(let r=0,a=i.length;r<a;r++)if(i[r].callback===t){i.splice(r,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let r=0,a=i.length;r<a;r++){let n=i[r];try{n.callback.call(this,e)}catch(o){Promise.resolve().then(()=>{throw o})}n.options&&n.options.once&&this.removeEventListener(e.type,n.callback)}return!e.defaultPrevented}},Ar=class extends xo{constructor(){super(),this.listeners||xo.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}},Bs=class{constructor(){Object.defineProperty(this,"signal",{value:new Ar,writable:!0,configurable:!0})}abort(e){let t;try{t=new Event("abort")}catch{typeof document<"u"?document.createEvent?(t=document.createEvent("Event"),t.initEvent("abort",!1,!1)):(t=document.createEventObject(),t.type="abort"):t={type:"abort",bubbles:!1,cancelable:!1}}let i=e;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(Bs.prototype[Symbol.toStringTag]="AbortController",Ar.prototype[Symbol.toStringTag]="AbortSignal");function Eo(s){return s.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof s.Request=="function"&&!s.Request.prototype.hasOwnProperty("signal")||!s.AbortController}function Uc(s){typeof s=="function"&&(s={fetch:s});let{fetch:e,Request:t=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:r=!1}=s;if(!Eo({fetch:e,Request:t,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:r}))return{fetch:e,Request:a};let a=t;(a&&!a.prototype.hasOwnProperty("signal")||r)&&(a=function(l,d){let c;d&&d.signal&&(c=d.signal,delete d.signal);let p=new t(l,d);return c&&Object.defineProperty(p,"signal",{writable:!1,enumerable:!1,configurable:!0,value:c}),p},a.prototype=t.prototype);let n=e;return{fetch:(u,l)=>{let d=a&&a.prototype.isPrototypeOf(u)?u.signal:l?l.signal:void 0;if(d){let c;try{c=new DOMException("Aborted","AbortError")}catch{c=new Error("Aborted"),c.name="AbortError"}if(d.aborted)return Promise.reject(c);let p=new Promise((h,f)=>{d.addEventListener("abort",()=>f(c),{once:!0})});return l&&l.signal&&delete l.signal,Promise.race([p,n(u,l)])}return n(u,l)},Request:a}}var VB=()=>"fetch"in window,$s=VB()&&Eo({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),Dv=$s?Uc({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,St=$s?Dv.fetch:window.fetch,k1=$s?Dv.Request:window.Request,ee=$s?Bs:window.AbortController,R1=$s?Ar:window.AbortSignal;var yd=C(Ds(),1);var yy=C(vy(),1);import{ErrorCategory as Vs}from"@vkontakte/videoplayer-shared/es2024";var wo=s=>{if(!s)return{id:"EmptyResponse",category:Vs.PARSER,message:"Empty response"};if(s.length<=2&&s.match(/^\d+$/))return{id:`UVError#${s}`,category:Vs.NETWORK,message:`UV Error ${s}`};let e=(0,yy.default)(s).substring(0,100).toLowerCase();if(e.startsWith("<!doctype")||e.startsWith("<html>")||e.startsWith("<body>")||e.startsWith("<head>"))return{id:"UnexpectedHTML",category:Vs.NETWORK,message:"Received unexpected HTML, possibly a ISP block"};if(e.startsWith("<?xml"))return new DOMParser().parseFromString(s,"text/xml").querySelector("parsererror")?{id:"InvalidXML",category:Vs.PARSER,message:"XML parsing error"}:{id:"XMLParserLogicError",category:Vs.PARSER,message:"Response is valid XML, but parser failed"}};var De=(s,e,t=0)=>{for(let i=0;i<s.length;i++)if(s.start(i)*1e3-t<=e&&s.end(i)*1e3+t>e)return!0;return!1};import{abortable as gd,assertNonNullable as Vr,combine as Or,ErrorCategory as Rt,filter as Uo,filterChanged as ma,flattenObject as ba,fromEvent as si,getTraceSubscriptionMethod as ZD,interval as Sd,isNonNullable as ga,isNullable as OT,map as _r,merge as Hi,now as vd,Subject as qo,Subscription as _T,tap as e0,throttle as t0,ValueSubject as de}from"@vkontakte/videoplayer-shared/es2024";var ko=C(dt(),1),$r=C(Pt(),1),Ro=C(Ds(),1);var T$=(s,e={})=>{let i=e.timeout||1,r=performance.now();return window.setTimeout(()=>{s({get didTimeout(){return e.timeout?!1:performance.now()-r-1>i},timeRemaining(){return Math.max(0,1+(performance.now()-r))}})},1)},I$=s=>window.clearTimeout(s),Ty=s=>typeof s=="function"&&s?.toString().endsWith("{ [native code] }"),Iy=!Ty(window.requestIdleCallback)||!Ty(window.cancelIdleCallback),Pr=Iy?T$:window.requestIdleCallback,_t=Iy?I$:window.cancelIdleCallback;var PT=C(Wn(),1);import{assertNever as x$,ErrorCategory as xy,Subject as Ey}from"@vkontakte/videoplayer-shared/es2024";var E$=18,wy=!1;try{wy=F.browser.isSafari&&!!F.browser.safariVersion&&F.browser.safariVersion<=E$}catch(s){console.error(s)}var Gc=class{constructor(e){this.bufferFull$=new Ey;this.error$=new Ey;this.queue=[];this.currentTask=null;this.destroyed=!1;this.abortRequested=!1;this.completeTask=()=>{try{if(this.currentTask){let e=this.currentTask.signal?.aborted;this.currentTask.callback(!e),this.currentTask=null}this.queue.length&&this.pull()}catch(e){this.error$.next({id:"BufferTaskQueueUnknown",category:xy.VIDEO_PIPELINE,message:"Buffer appending or removal failed",thrown:e})}};this.buffer=e,this.buffer.addEventListener("updateend",this.completeTask)}async append(e,t){return t&&t.aborted?!1:new Promise(i=>{let r={operation:"append",data:e,signal:t,callback:i};this.queue.push(r),this.pull()})}async remove(e,t,i){return i&&i.aborted?!1:new Promise(r=>{let a={operation:"remove",from:e,to:t,signal:i,callback:r};this.queue.unshift(a),this.pull()})}async abort(e){return new Promise(t=>{let i,r=a=>{this.abortRequested=!1,t(a)};wy&&e?i={operation:"safariAbort",init:e,callback:r}:i={operation:"abort",callback:r};for(let{callback:a}of this.queue)a(!1);this.abortRequested=!0,i&&(this.queue=[i]),this.pull()})}destroy(){this.destroyed=!0,this.buffer.removeEventListener("updateend",this.completeTask),this.queue=[],this.currentTask=null;try{this.buffer.abort()}catch(e){if(!(e instanceof DOMException&&e.name==="InvalidStateError"))throw e}}pull(){if((this.buffer.updating||this.currentTask||this.destroyed)&&!this.abortRequested)return;let e=this.queue.shift();if(!e)return;if(e.signal?.aborted){e.callback(!1),this.pull();return}this.currentTask=e;let{operation:t}=this.currentTask;try{this.execute(this.currentTask)}catch(r){r instanceof DOMException&&r.name==="QuotaExceededError"&&t==="append"?this.bufferFull$.next(this.currentTask.data.byteLength):r instanceof DOMException&&r.name==="InvalidStateError"||this.error$.next({id:`BufferTaskQueue:${t}`,category:xy.VIDEO_PIPELINE,message:"Buffer operation failed",thrown:r}),this.currentTask.callback(!1),this.currentTask=null}this.currentTask&&this.currentTask.operation==="abort"&&this.completeTask()}execute(e){let{operation:t}=e;switch(t){case"append":this.buffer.appendBuffer(e.data);break;case"remove":this.buffer.remove(e.from/1e3,e.to/1e3);break;case"abort":this.buffer.abort();break;case"safariAbort":{this.buffer.abort(),this.buffer.appendBuffer(e.init);break}default:x$(t)}}},Ay=Gc;var kr=s=>{let e=0;for(let t=0;t<s.length;t++)e+=s.end(t)-s.start(t);return e*1e3};import{abortable as bi,assertNonNullable as Je,ErrorCategory as ti,fromEvent as dd,getExponentialDelay as pd,isNonNullable as Br,isNullable as Ce,now as Po,once as UD,Subject as qD,Subscription as jD,ValueSubject as ji}from"@vkontakte/videoplayer-shared/es2024";var z=class{constructor(e,t){this.cursor=0;this.source=e,this.boxParser=t,this.children=[];let i=this.readUint32();this.type=this.readString(4),this.size32=i<=e.buffer.byteLength-e.byteOffset?i:NaN;let r=this.size32?this.size32-8:void 0,a=e.byteOffset+this.cursor;this.size64=0,this.usertype=0,this.content=new DataView(e.buffer,a,r)}get id(){return this.type}get size(){return this.size32}scanForBoxes(e){return this.boxParser.parse(e)}readString(e,t="ascii"){let r=new TextDecoder(t).decode(new DataView(this.source.buffer,this.source.byteOffset+this.cursor,e));return this.cursor+=e,r}readUint8(){let e=this.source.getUint8(this.cursor);return this.cursor+=1,e}readUint16(){let e=this.source.getUint16(this.cursor);return this.cursor+=2,e}readUint32(){let e=this.source.getUint32(this.cursor);return this.cursor+=4,e}readUint64(){let e=this.source.getBigInt64(this.cursor);return this.cursor+=8,e}};var Rr=class extends z{};var Os=class extends z{constructor(t,i){super(t,i);this.ondemandPrefix="ondemandlivejson";this.ondemandDataReceivedKey="t-in";this.ondemandDataPreparedKey="t-out";let r=this.content.byteOffset,a=r+this.content.byteLength,n=new TextDecoder("ascii").decode(this.content.buffer.slice(r,a)).split(this.ondemandPrefix)[1],o=JSON.parse(n);this.serverDataReceivedTimestamp=o[this.ondemandDataReceivedKey],this.serverDataPreparedTime=o[this.ondemandDataPreparedKey]}};var _s=class extends z{constructor(e,t){super(e,t),this.compatibleBrands=[],this.majorBrand=this.readString(4),this.minorVersion=this.readUint32();let i=this.size-this.cursor;for(;i;){let r=this.readString(4);this.compatibleBrands.push(r),i-=4}}};var Fs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var se=class extends z{constructor(e,t){super(e,t);let i=this.readUint32();this.version=i>>>24,this.flags=i&16777215}};var Ns=class extends se{constructor(e,t){super(e,t),this.creationTime=this.readUint32(),this.modificationTime=this.readUint32(),this.timescale=this.readUint32(),this.duration=this.readUint32(),this.rate=this.readUint32(),this.volume=this.readUint16()}};var Us=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var qs=class extends z{constructor(e,t){super(e,t),this.data=this.content}};var Ui=class extends se{get earliestPresentationTime(){return this.earliestPresentationTime32}get firstOffset(){return this.firstOffset32}constructor(e,t){super(e,t),this.segments=[],this.referenceId=this.readUint32(),this.timescale=this.readUint32(),this.earliestPresentationTime32=this.readUint32(),this.firstOffset32=this.readUint32(),this.earliestPresentationTime64=0,this.firstOffset64=0,this.referenceCount=this.readUint32()&65535;for(let i=0;i<this.referenceCount;i++){let r=this.readUint32(),a=r>>>31,n=r<<1>>>1,o=this.readUint32();r=this.readUint32();let u=r>>>28,l=r<<3>>>3;this.segments.push({referenceType:a,referencedSize:n,subsegmentDuration:o,SAPType:u,SAPDeltaTime:l})}}};var js=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Hs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var zs=class extends se{constructor(e,t){switch(super(e,t),this.readUint8()){case 0:this.stereoMode=0;break;case 1:this.stereoMode=1;break;case 2:this.stereoMode=2;break;case 3:this.stereoMode=3;break;case 4:this.stereoMode=4;break}this.cursor+=1}};var Qs=class extends se{constructor(e,t){super(e,t),this.poseYawDegrees=this.readUint32(),this.posePitchDegrees=this.readUint32(),this.poseRollDegrees=this.readUint32()}};var Gs=class extends se{constructor(e,t){super(e,t),this.projectionBoundsTop=this.readUint32(),this.projectionBoundsBottom=this.readUint32(),this.projectionBoundsLeft=this.readUint32(),this.projectionBoundsRight=this.readUint32()}};var Ws=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Ys=class extends se{constructor(e,t){super(e,t),this.creationTime=this.readUint32(),this.modificationTime=this.readUint32(),this.trackId=this.readUint32(),this.cursor+=4,this.duration=this.readUint32(),this.cursor+=8,this.layer=this.readUint16(),this.alternateGroup=this.readUint16(),this.cursor+=2,this.cursor+=2,this.matrix=[[this.readUint32(),this.readUint32(),this.readUint32()],[this.readUint32(),this.readUint32(),this.readUint32()],[this.readUint32(),this.readUint32(),this.readUint32()]],this.width=this.readUint32(),this.height=this.readUint32()}};var Ks=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Xs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Js=class extends se{constructor(e,t){super(e,t),this.sequenceNumber=this.readUint32()}};var Zs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var ea=class extends se{constructor(e,t){super(e,t),this.trackId=this.readUint32(),this.flags&1&&(this.baseDataOffset=this.readUint64()),this.flags&2&&(this.sampleDescriptionIndex=this.readUint32()),this.flags&8&&(this.defaultSampleDuration=this.readUint32()),this.flags&16&&(this.defaultSampleSize=this.readUint32()),this.flags&32&&(this.defaultSampleFlags=this.readUint32())}};var ta=class extends se{constructor(t,i){super(t,i);this.baseMediaDecodeTime32=0;this.baseMediaDecodeTime64=BigInt(0);this.version===1?this.baseMediaDecodeTime64=this.readUint64():this.baseMediaDecodeTime32=this.readUint32()}get baseMediaDecodeTime(){return this.version===1?this.baseMediaDecodeTime64:this.baseMediaDecodeTime32}};var ia=class extends se{constructor(t,i){super(t,i);this.sampleDuration=[];this.sampleSize=[];this.sampleFlags=[];this.sampleCompositionTimeOffset=[];this.optionalFields=0;this.sampleCount=this.readUint32(),this.flags&1&&(this.dataOffset=this.readUint32()),this.flags&4&&(this.firstSampleFlags=this.readUint32());for(let r=0;r<this.sampleCount;r++)this.flags&256&&this.sampleDuration.push(this.readUint32()),this.flags&512&&this.sampleSize.push(this.readUint32()),this.flags&1024&&this.sampleFlags.push(this.readUint32()),this.flags&2048&&this.sampleCompositionTimeOffset.push(this.readUint32())}};var ra=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var sa=class extends se{constructor(e,t){super(e,t),this.entryCount=this.readUint32(),this.children=this.scanForBoxes(new DataView(this.content.buffer,this.content.byteOffset+8,this.content.byteLength-8))}};var aa=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(new DataView(this.content.buffer,this.content.byteOffset+78,this.content.byteLength-78))}};var A$={ftyp:_s,moov:Fs,mvhd:Ns,moof:Us,mdat:qs,sidx:Ui,trak:js,mdia:Ws,mfhd:Js,tkhd:Ys,traf:Zs,tfhd:ea,tfdt:ta,trun:ia,minf:Ks,sv3d:Hs,st3d:zs,prhd:Qs,proj:Xs,equi:Gs,uuid:Os,stbl:ra,stsd:sa,avc1:aa,unknown:Rr},Zt=class s{constructor(e={}){this.options={offset:0,...e}}parse(e){let t=[],i=this.options.offset;for(;i<e.byteLength;)try{let a=new TextDecoder("ascii").decode(new DataView(e.buffer,e.byteOffset+i+4,4)),n=this.createBox(a,new DataView(e.buffer,e.byteOffset+i));if(!n.size)break;t.push(n),i+=n.size}catch{break}return t}createBox(e,t){let i=A$[e];return i?new i(t,new s):new Rr(t,new s)}};var mi=class{constructor(e){this.index={},this.indexBoxLevel(e)}indexBoxLevel(e){e.forEach(t=>{this.index[t.type]??=[],this.index[t.type].push(t),t.children.length>0&&this.indexBoxLevel(t.children)})}find(e){return this.index[e]&&this.index[e][0]?this.index[e][0]:null}findAll(e){return this.index[e]||[]}};var k$=new TextDecoder("ascii"),R$=s=>k$.decode(new DataView(s.buffer,s.byteOffset+4,4))==="ftyp",M$=s=>{let e=new Ui(s,new Zt),t=e.earliestPresentationTime/e.timescale*1e3,i=s.byteOffset+s.byteLength+e.firstOffset;return e.segments.map(a=>{if(a.referenceType!==0)throw new Error("Unsupported multilevel sidx");let n=a.subsegmentDuration/e.timescale*1e3,o={status:"none",time:{from:t,to:t+n},byte:{from:i,to:i+a.referencedSize-1}};return t+=n,i+=a.referencedSize,o})},L$=(s,e)=>{let i=new Zt().parse(s),r=new mi(i),a=r.findAll("moof"),n=e?r.findAll("uuid"):r.findAll("mdat");if(!(n.length&&a.length))return null;let o=a[0],u=n[n.length-1],l=o.source.byteOffset,c=u.source.byteOffset-o.source.byteOffset+u.size;return new DataView(s.buffer,l,c)},B$=s=>{let t=new Zt().parse(s),i=new mi(t),r={},a=i.findAll("uuid");return a.length?a[a.length-1]:r},$$=s=>{let t=new Zt().parse(s);return new mi(t).find("sidx")?.timescale},D$=(s,e)=>{let i=new Zt().parse(s),a=new mi(i).findAll("traf"),n=a[a.length-1].children.find(c=>c.type==="tfhd"),o=a[a.length-1].children.find(c=>c.type==="tfdt"),u=a[a.length-1].children.find(c=>c.type==="trun"),l=0;return u.sampleDuration.length?l=u.sampleDuration.reduce((c,p)=>c+p,0):l=n.defaultSampleDuration*u.sampleCount,(Number(o.baseMediaDecodeTime)+l)/e*1e3},C$=s=>{let e={is3dVideo:!1,stereoMode:0,projectionType:1,projectionData:{pose:{yaw:0,pitch:0,roll:0},bounds:{top:0,bottom:0,left:0,right:0}}},i=new Zt().parse(s),r=new mi(i);if(r.find("sv3d")){e.is3dVideo=!0;let n=r.find("st3d");n&&(e.stereoMode=n.stereoMode);let o=r.find("prhd");o&&(e.projectionData.pose.yaw=o.poseYawDegrees,e.projectionData.pose.pitch=o.posePitchDegrees,e.projectionData.pose.roll=o.poseRollDegrees);let u=r.find("equi");u&&(e.projectionData.bounds.top=u.projectionBoundsTop,e.projectionData.bounds.right=u.projectionBoundsRight,e.projectionData.bounds.bottom=u.projectionBoundsBottom,e.projectionData.bounds.left=u.projectionBoundsLeft)}return e},Py={validateData:R$,parseInit:C$,getIndexRange:()=>{},parseSegments:M$,parseFeedableSegmentChunk:L$,getChunkEndTime:D$,getServerLatencyTimestamps:B$,getTimescaleFromIndex:$$};var oa=C(dt(),1);import{assertNonNullable as Yc,isNonNullable as Ly,isNullable as O$}from"@vkontakte/videoplayer-shared/es2024";import{assertNever as V$}from"@vkontakte/videoplayer-shared/es2024";var ky={440786851:{type:"master"},17030:{type:"uint"},17143:{type:"uint"},17138:{type:"uint"},17139:{type:"uint"},17026:{type:"string"},17031:{type:"uint"},17029:{type:"uint"},236:{type:"binary"},408125543:{type:"master"},290298740:{type:"master"},19899:{type:"master"},21419:{type:"binary"},21420:{type:"uint"},357149030:{type:"master"},2807729:{type:"uint"},17545:{type:"float"},374648427:{type:"master"},174:{type:"master"},224:{type:"master"},30320:{type:"master"},30321:{type:"uint"},30322:{type:"master"},272869232:{type:"master"},524531317:{type:"master"},231:{type:"uint"},22612:{type:"master"},22743:{type:"uint"},167:{type:"uint"},171:{type:"uint"},163:{type:"binary"},160:{type:"master"},175:{type:"binary"},423732329:{type:"master"},307544935:{type:"master"},475249515:{type:"master"},187:{type:"master"},179:{type:"uint"},183:{type:"master"},247:{type:"uint"},241:{type:"uint"},240:{type:"uint"},178:{type:"uint"},21368:{type:"uint"},234:{type:"uint"},219:{type:"master"},150:{type:"uint"}},Ry=s=>{let e=s.getUint8(0),t=0;e&128?t=1:e&64?t=2:e&32?t=3:e&16&&(t=4);let i=na(s,t),r=i in ky,a=r?ky[i].type:"binary",n=s.getUint8(t),o=0;n&128?o=1:n&64?o=2:n&32?o=3:n&16?o=4:n&8?o=5:n&4?o=6:n&2?o=7:n&1&&(o=8);let u=new DataView(s.buffer,s.byteOffset+t+1,o-1),l=n&255>>o,d=na(u),c=l*2**((o-1)*8)+d,p=t+o,h;return p+c>s.byteLength?h=new DataView(s.buffer,s.byteOffset+p):h=new DataView(s.buffer,s.byteOffset+p,c),{tag:r?i:"0x"+i.toString(16).toUpperCase(),type:a,tagHeaderSize:p,tagSize:p+c,value:h,valueSize:c}},na=(s,e=s.byteLength)=>{switch(e){case 1:return s.getUint8(0);case 2:return s.getUint16(0);case 3:return s.getUint8(0)*2**16+s.getUint16(1);case 4:return s.getUint32(0);case 5:return s.getUint8(0)*2**32+s.getUint32(1);case 6:return s.getUint16(0)*2**32+s.getUint32(2);case 7:{let t=s.getUint8(0)*281474976710656+s.getUint16(1)*4294967296+s.getUint32(3);if(Number.isSafeInteger(t))return t}case 8:throw new ReferenceError("Int64 is not supported")}return 0},kt=(s,e)=>{switch(e){case"int":return s.getInt8(0);case"uint":return na(s);case"float":return s.byteLength===4?s.getFloat32(0):s.getFloat64(0);case"string":return new TextDecoder("ascii").decode(s);case"utf8":return new TextDecoder("utf-8").decode(s);case"date":return new Date(Date.UTC(2001,0)+s.getInt8(0)).getTime();case"master":return s;case"binary":return s;default:V$(e)}},qi=(s,e)=>{let t=0;for(;t<s.byteLength;){let i=new DataView(s.buffer,s.byteOffset+t),r=Ry(i);if(!e(r))return;r.type==="master"&&qi(r.value,e),t=r.value.byteOffset-s.byteOffset+r.valueSize}},My=s=>{if(s.getUint32(0)!==440786851)return!1;let e,t,i,r=Ry(s);return qi(r.value,({tag:a,type:n,value:o})=>(a===17143?e=kt(o,n):a===17026?t=kt(o,n):a===17029&&(i=kt(o,n)),!0)),(e===void 0||e<=1)&&t!==void 0&&t==="webm"&&(i===void 0||i<=2)};var By=[357149030,290298740,374648427,174,224,30320,30321,30322,272869232,524531317,475249515,423732329,307544935],_$=[231,22612,22743,167,171,163,160,175],F$=s=>{let e,t,i,r,a=!1,n=!1,o=!1,u,l,d=!1,c=0;return qi(s,({tag:p,type:h,value:f,valueSize:b})=>{if(p===21419){let g=kt(f,h);l=na(g)}else p!==21420&&(l=void 0);return p===408125543?(e=f.byteOffset,t=f.byteOffset+b):p===357149030?a=!0:p===290298740?n=!0:p===2807729?i=kt(f,h):p===17545?r=kt(f,h):p===21420&&l===475249515?u=kt(f,h):p===374648427?qi(f,({tag:g,type:S,value:T})=>g===30321?(d=kt(T,S)===1,!1):!0):a&&n&&(0,oa.default)(By,p)&&(o=!0),!o}),Yc(e,"Failed to parse webm Segment start"),Yc(t,"Failed to parse webm Segment end"),Yc(r,"Failed to parse webm Segment duration"),i=i??1e6,{segmentStart:Math.round(e/1e9*i*1e3),segmentEnd:Math.round(t/1e9*i*1e3),timeScale:i,segmentDuration:Math.round(r/1e9*i*1e3),cuesSeekPosition:u,is3dVideo:d,stereoMode:c,projectionType:1,projectionData:{pose:{yaw:0,pitch:0,roll:0},bounds:{top:0,bottom:0,left:0,right:0}}}},N$=s=>{if(O$(s.cuesSeekPosition))return;let e=s.segmentStart+s.cuesSeekPosition,t=1024*1024;return{from:e,to:e+t}},U$=(s,e)=>{let t=!1,i=!1,r=o=>Ly(o.time)&&Ly(o.position),a=[],n;return qi(s,({tag:o,type:u,value:l})=>{switch(o){case 475249515:t=!0;break;case 187:n&&r(n)&&a.push(n),n={};break;case 179:n&&(n.time=kt(l,u));break;case 183:break;case 241:n&&(n.position=kt(l,u));break;default:t&&(0,oa.default)(By,o)&&(i=!0)}return!(t&&i)}),n&&r(n)&&a.push(n),a.map((o,u)=>{let{time:l,position:d}=o,c=a[u+1];return{status:"none",time:{from:l,to:c?c.time:e.segmentDuration},byte:{from:e.segmentStart+d,to:c?e.segmentStart+c.position-1:e.segmentEnd-1}}})},q$=s=>{let e=0,t=!1;try{qi(s,i=>i.tag===524531317?i.tagSize<=s.byteLength?(e=i.tagSize,!1):(e+=i.tagHeaderSize,!0):(0,oa.default)(_$,i.tag)?(e+i.tagSize<=s.byteLength&&(e+=i.tagSize,t||=(0,oa.default)([163,160,175],i.tag)),!0):!1)}catch{}return e>0&&e<=s.byteLength&&t?new DataView(s.buffer,s.byteOffset,e):null},$y={validateData:My,parseInit:F$,getIndexRange:N$,parseSegments:U$,parseFeedableSegmentChunk:q$};var ua=s=>{let e=/^(.+)\/([^;]+)(?:;.*)?$/.exec(s);if(e){let[,t,i]=e;if(t==="audio"||t==="video")switch(i){case"webm":return $y;case"mp4":return Py}}throw new ReferenceError(`Unsupported mime type ${s}`)};var ud=C(td(),1),IT=C(Mi(),1),xT=C(id(),1),ET=C(Pt(),1),ld=C(_i(),1);var fT=C(dt(),1),Lr=s=>{let e=s.split("."),[t,...i]=e;if(!t)return!1;switch(t){case"av01":{let[r,a,n]=i;return!!(n&&parseInt(n,10)>8)}case"vp09":{let[r,a,n]=i;return!!(r&&parseInt(r,10)>=2&&n&&parseInt(n,10)>8)}case"avc1":{let r=i[0];if(!r||r.length!==6)return!1;let[a,n]=r.toUpperCase(),o=a+n;return(0,fT.default)(["6E","7A","F4"],o)}}return!1};import{isNonNullable as FD,isNullable as yT}from"@vkontakte/videoplayer-shared/es2024";var Ao=s=>{if(s.includes("/")){let e=s.split("/");return parseInt(e[0])/parseInt(e[1])}else return parseFloat(s)};var mT=s=>{try{let e=OD(),t=s.match(e),{groups:i}=t??{};if(i){let r={};if(i.extensions){let o=i.extensions.toLowerCase().match(/(?:[0-9a-wy-z](?:-[a-z0-9]{2,8})+)/g);Array.from(o||[]).forEach(u=>{r[u[0]]=u.slice(2)})}let a=i.variants?.split(/-/).filter(o=>o!==""),n={extlang:i.extlang,langtag:i.langtag,language:i.language,privateuse:i.privateuse||i.privateuse2,region:i.region,script:i.script,extensions:r,variants:a};return Object.keys(n).forEach(o=>{let u=n[o];(typeof u>"u"||u==="")&&delete n[o]}),n}return null}catch{return null}};function OD(){let s="(?<extlang>(?:[a-z]{3}(?:-[a-z]{3}){0,2}))",e="x(?:-[a-z0-9]{1,8})+",d=`^(?:(?<langtag>${`
117
+ `}),T};var $e=s=>new URL(s).hostname;import{assertNever as Pv,assertNonNullable as kv,combine as PB,debounce as kB,ErrorCategory as Rv,filter as Mv,filterChanged as RB,isNonNullable as _c,map as Io,merge as Lv,observableFrom as MB,once as LB,Subscription as BB,ValueSubject as Fc,videoQualityToHeight as Bv,videoSizeToQuality as $B}from"@vkontakte/videoplayer-shared/es2024";var xv=C(Pt(),1);var Sv=C(dt(),1),gv=s=>{if(s instanceof DOMException&&(0,Sv.default)(["Failed to load because no supported source was found.","The element has no supported sources."],s.message))throw s;return!(s instanceof DOMException&&(s.code===20||s.name==="AbortError"))},Xe=async(s,e)=>{let t=s.muted;try{await s.play()}catch(i){if(!gv(i))return!1;if(e&&e(),t)return console.warn(i),!1;s.muted=!0;try{await s.play()}catch(r){return gv(r)&&(s.muted=!1,console.warn(r)),!1}}return!0};import{isNonNullable as yo,isNullable as lB,assertNonNullable as ks}from"@vkontakte/videoplayer-shared/es2024";var yv=C(_i(),1);import{isNonNullable as vv,assertNonNullable as vo,now as oB}from"@vkontakte/videoplayer-shared/es2024";function ke(){return oB()}function Dc(s){return ke()-s}function Cc(s){let e=s.split("/"),t=e.slice(0,e.length-1).join("/"),i=/^([a-z]+:)?\/\//i,r=n=>i.test(n);return{resolve:(n,o,u=!1)=>{r(n)||(n.startsWith("/")||(n="/"+n),n=t+n);let l=n.indexOf("?")>-1?"&":"?";return u&&(n+=l+"lowLat=1",l="&"),o&&(n+=l+"_rnd="+Math.floor(999999999*Math.random())),n}}}function Tv(s,e,t){let i=(...r)=>{t.apply(null,r),s.removeEventListener(e,i)};s.addEventListener(e,i)}function Er(s,e,t,i){let r=window.XMLHttpRequest,a,n,o,u=!1,l=0,d,c,p=!1,h="arraybuffer",f=7e3,b=2e3,g=()=>{if(u)return;vo(d);let I=Dc(d),x;if(I<b){x=b-I,setTimeout(g,x);return}b*=2,b>f&&(b=f),n&&n.abort(),n=new r,L()},S=I=>(a=I,D),T=I=>(c=I,D),y=()=>(h="json",D),E=()=>{if(!u){if(--l>=0){g(),i&&i();return}u=!0,c&&c(),t&&t()}},w=I=>(p=I,D),L=()=>{d=ke(),n=new r,n.open("get",s);let I=0,x,k=0,re=()=>(vo(d),Math.max(d,Math.max(x||0,k||0)));if(a&&n.addEventListener("progress",$=>{let q=ke();a.updateChunk&&$.loaded>I&&(a.updateChunk(re(),$.loaded-I),I=$.loaded,x=q)}),o&&(n.timeout=o,n.addEventListener("timeout",()=>E())),n.addEventListener("load",()=>{if(u)return;vo(n);let $=n.status;if($>=200&&$<300){let{response:q,responseType:X}=n,ne=q?.byteLength;if(typeof ne=="number"&&a){let ge=ne-I;ge&&a.updateChunk&&a.updateChunk(re(),ge)}X==="json"&&(!q||!(0,yv.default)(q).length)?E():(c&&c(),e(q))}else E()}),n.addEventListener("error",()=>{E()}),p){let $=()=>{vo(n),n.readyState===XMLHttpRequest.HEADERS_RECEIVED&&(k=ke(),n.removeEventListener("readystatechange",$))};n.addEventListener("readystatechange",$)}return n.responseType=h,n.send(),D},D={withBitrateReporting:S,withParallel:w,withJSONResponse:y,withRetryCount:I=>(l=I,D),withRetryInterval:(I,x)=>(vv(I)&&(b=I),vv(x)&&(f=x),D),withTimeout:I=>(o=I,D),withFinally:T,send:L,abort:()=>{n&&(n.abort(),n=void 0),u=!0,c&&c()}};return D}var As=class{constructor(e){this.intervals=[];this.currentRate=0;this.logger=e}_updateRate(e){let t=.2;this.currentRate&&(e<this.currentRate*.1?t=.8:e<this.currentRate*.5?t=.5:e<this.currentRate*.7&&(t=.3)),e=Math.max(1,Math.min(e,100*1024*1024)),this.currentRate=this.currentRate?this.currentRate*(1-t)+e*t:e}_createInterval(e,t,i){return{start:e,end:t,bytes:i}}_doMergeIntervals(e,t){e.start=Math.min(t.start,e.start),e.end=Math.max(t.end,e.end),e.bytes+=t.bytes}_mergeIntervals(e,t){return e.start<=t.end&&t.start<=e.end?(this._doMergeIntervals(e,t),!0):!1}_flushIntervals(){if(!this.intervals.length)return!1;let e=this.intervals[0].start,t=this.intervals[this.intervals.length-1].end-500;if(t-e>2e3){let i=0,r=0;for(;this.intervals.length>0;){let a=this.intervals[0];if(a.end<=t)i+=a.end-a.start,r+=a.bytes,this.intervals.splice(0,1);else{if(a.start>=t)break;{let n=t-a.start,o=a.end-a.start;i+=n;let u=a.bytes*n/o;r+=u,a.start=t,a.bytes-=u}}}if(r>0&&i>0){let a=r*8/(i/1e3);return this._updateRate(a),this.logger(`rate updated, new=${Math.round(a/1024)}K; average=${Math.round(this.currentRate/1024)}K bytes/ms=${Math.round(r)}/${Math.round(i)} interval=${Math.round(t-e)}`),!0}}return!1}_joinIntervals(){let e;do{e=!1;for(let t=0;t<this.intervals.length-1;++t)this._mergeIntervals(this.intervals[t],this.intervals[t+1])&&(this.intervals.splice(t+1,1),e=!0)}while(e)}addInterval(e,t,i){return this.intervals.push(this._createInterval(e,t,i)),this._joinIntervals(),this.intervals.length>100&&(this.logger(`too many intervals (${this.intervals.length}); will merge`,{type:"warn"}),this._doMergeIntervals(this.intervals[1],this.intervals[0]),this.intervals.splice(0,1)),this._flushIntervals()}getBitRate(){return this.currentRate}};var Iv=C(_i(),1);var Ps=class{constructor(e,t,i,r,a){this.pendingQueue=[];this.activeRequests={};this.completeRequests={};this.averageSegmentDuration=2e3;this.lastPrefetchStart=0;this.throttleTimeout=null;this.RETRY_COUNT=e,this.TIMEOUT=t,this.BITRATE_ESTIMATOR=i,this.MAX_PARALLEL_REQUESTS=r,this.logger=a}limitCompleteCount(){let e;for(;(e=Object.keys(this.completeRequests)).length>this._getParallelRequestCount()+2;){let t=e[Math.floor(Math.random()*e.length)];this.logger(`Dropping completed request for url ${t}`,{type:"warn"}),delete this.completeRequests[t]}}_sendRequest(e,t){let i=ke(),r=u=>{delete this.activeRequests[t],this.limitCompleteCount(),this.completeRequests[t]=e,this._sendPending(),e._error=1,e._errorMsg=u,e._errorCB?e._errorCB(u):(this.limitCompleteCount(),this.completeRequests[t]=e)},a=u=>{e._complete=1,e._responseData=u,e._downloadTime=ke()-i,delete this.activeRequests[t],this._sendPending(),e._cb?e._cb(u,e._downloadTime):(this.limitCompleteCount(),this.completeRequests[t]=e)},n=()=>{e._finallyCB&&e._finallyCB()},o=()=>{e._retry=1,e._retryCB&&e._retryCB()};e._request=Er(t,a,()=>r("error"),o),e._request.withRetryCount(this.RETRY_COUNT).withTimeout(this.TIMEOUT).withBitrateReporting(this.BITRATE_ESTIMATOR).withParallel(this._getParallelRequestCount()>1).withFinally(n),this.activeRequests[t]=e,e._request.send(),this.lastPrefetchStart=ke()}_getParallelRequestCount(){return Math.min(this.MAX_PARALLEL_REQUESTS,this.averageSegmentDuration<3e3?3:2)}_getPrefetchDelay(){return Math.max(100,Math.min(5e3,this.averageSegmentDuration/3))}_canSendPending(){let e=this._getParallelRequestCount(),t=ke();if(Object.keys(this.activeRequests).length>=e)return!1;let i=this._getPrefetchDelay()-(t-this.lastPrefetchStart);return this.throttleTimeout&&clearTimeout(this.throttleTimeout),i>0?(this.throttleTimeout=window.setTimeout(()=>this._sendPending(),i),!1):!0}_sendPending(){for(;this._canSendPending();){let e=this.pendingQueue.pop();if(e){if(this.activeRequests[e]||this.completeRequests[e])continue;this.logger(`Submitting pending request url=${e}`),this._sendRequest({},e)}else return}}_removeFromActive(e){delete this.completeRequests[e],delete this.activeRequests[e]}abortAll(){(0,Iv.default)(this.activeRequests).forEach(e=>{e&&e._request&&e._request.abort()}),this.activeRequests={},this.pendingQueue=[],this.completeRequests={}}requestData(e,t,i,r){let a={};return a.send=()=>{let n=this.activeRequests[e]||this.completeRequests[e];if(n)n._cb=t,n._errorCB=i,n._retryCB=r,n._finallyCB=a._finallyCB,n._error||n._complete?(this._removeFromActive(e),setTimeout(()=>{n._complete?(this.logger(`Requested url already prefetched, url=${e}`),t(n._responseData,n._downloadTime)):(this.logger(`Requested url already prefetched with error, url=${e}`),i(n._errorMsg)),a._finallyCB&&a._finallyCB()},0)):this.logger(`Attached to active request, url=${e}`);else{let o=this.pendingQueue.indexOf(e);o!==-1&&this.pendingQueue.splice(o,1),this.logger(`Request not prefetched, starting new request, url=${e}${o===-1?"":"; removed pending"}`),this._sendRequest(a,e)}},a._cb=t,a._errorCB=i,a._retryCB=r,a.abort=function(){a.request&&a.request.abort()},a.withFinally=n=>(a._finallyCB=n,a),a}prefetch(e){this.activeRequests[e]||this.completeRequests[e]?this.logger(`Request already active for url=${e}`):(this.logger(`Added to pending queue; url=${e}`),this.pendingQueue.unshift(e),this._sendPending())}optimizeForSegDuration(e){this.averageSegmentDuration=e}};import{Subject as cB}from"@vkontakte/videoplayer-shared/es2024";var To=1e4,Vc=3;var dB=6e4,pB=10,hB=1,fB=500,Rs=class{constructor(e){this.paused=!1;this.autoQuality=!0;this.autoQualityLimits=void 0;this.buffering=!0;this.destroyed=!1;this.videoPlayStarted=!1;this.lowLatency=!1;this.bitrate=0;this.manifest=[];this.sourceBuffer=0;this.bufferStates=[];this.sourceJitter=-1;this.waitingForFirstBufferAfterSrcChange=!1;this.params=e,this.soundProhibitedEvent$=new cB,this.chunkRateEstimator=new As(this.params.logger),this._initVideo()}attachSource(e){this.manifestUrl=e,this.urlResolver=Cc(e),this.bitrateSwitcher=this._initBitrateSwitcher(),this._initManifest()}setAutoQualityEnabled(e){this.autoQuality=e}setAutoQualityLimits(e){this.autoQualityLimits=e}switchByName(e){let t;for(let i=0;i<this.manifest.length;++i)if(t=this.manifest[i],t.name===e){this._switchToQuality(t);return}}catchUp(){if(this.rep&&this.rep.stop(),this.currentManifestEntry){let e=this.params.playbackState.getState();this.paused=e==="paused",this._initPlayerWith(this.currentManifestEntry),this._notifyBuffering(!0)}}stop(){this.params.videoElement.pause(),this.rep&&(this.rep.stop(),this.rep=null)}pause(){this.paused=!0,this.params.videoElement.pause(),this.videoPlayStarted=!1,this._notifyBuffering(!1)}play(){this.paused=!1;let e=this.lowLatency&&this._getBufferSizeSec()>this.sourceJitter+5;this.rep&&!e?(this.bufferStates=[],this.videoPlayStarted=!1,this.shouldPlay()?this._playVideoElement():this._notifyBuffering(!0)):this.catchUp()}startPlay(e,t){this.autoQuality=t,this._initPlayerWith(e)}destroy(){this.destroyed=!0,this.rep&&(this.rep.stop(),this.rep=null),this.manifestRequest&&this.manifestRequest.abort(),this.manifestRefetchTimer&&(clearTimeout(this.manifestRefetchTimer),this.manifestRefetchTimer=void 0)}reinit(e){this.manifestUrl=e,this.urlResolver=Cc(e),this.catchUp()}_handleNetworkError(){this.params.logger("Fatal network error"),this.params.playerCallback({name:"error",type:"network"})}_retryCallback(){this.params.playerCallback({name:"retry"})}_getBufferSizeSec(){let e=this.params.videoElement,t=0,i=e.buffered.length;return i!==0&&(t=e.buffered.end(i-1)-Math.max(e.currentTime,e.buffered.start(0))),t}_notifyBuffering(e){this.destroyed||(this.params.logger(`buffering: ${e}`),this.params.playerCallback({name:"buffering",isBuffering:e}),this.buffering=e)}_initVideo(){let{videoElement:e,logger:t}=this.params;e.addEventListener("error",()=>{!!e.error&&!this.destroyed&&(t(`Video element error: ${e.error?.code}, details: ${e.error?.message}`),this.params.playerCallback({name:"error",type:"media"}))}),e.addEventListener("timeupdate",()=>{let i=this._getBufferSizeSec();!this.paused&&i<.3?this.buffering||(this.buffering=!0,window.setTimeout(()=>{!this.paused&&this.buffering&&this._notifyBuffering(!0)},(i+.1)*1e3)):this.buffering&&this.videoPlayStarted&&this._notifyBuffering(!1)}),e.addEventListener("playing",()=>{t("playing")}),e.addEventListener("stalled",()=>this._fixupStall()),e.addEventListener("waiting",()=>this._fixupStall())}_fixupStall(){let{logger:e,videoElement:t}=this.params,i=t.buffered.length,r;i!==0&&!this.waitingForFirstBufferAfterSrcChange&&(r=t.buffered.start(i-1),t.currentTime<r&&(e("Fixup stall"),t.currentTime=r))}_selectQuality(e){let{videoElement:t}=this.params,i,r,a,n=t&&1.62*(F.display.pixelRatio||1)*t.offsetHeight||520;for(let o=0;o<this.manifest.length;++o){a=this.manifest[o];let{max:u,min:l}=this.autoQualityLimits||{};!ov({limits:this.autoQualityLimits,highestAvailableHeight:this.manifest[0].video.height,lowestAvailableHeight:(0,xv.default)(this.manifest,-1).video.height})&&(u&&a.video.height>u||l&&a.video.height<l)||(a.bitrate<e&&n>Math.min(a.video.height,a.video.width)?(!r||a.bitrate>r.bitrate)&&(r=a):(!i||i.bitrate>a.bitrate)&&(i=a))}return r||i}shouldPlay(){if(this.paused)return!1;let t=this._getBufferSizeSec()-Math.max(1,this.sourceJitter);return t>3||yo(this.downloadRate)&&(this.downloadRate>1.5&&t>2||this.downloadRate>2&&t>1)}_setVideoSrc(e,t){let{logger:i,videoElement:r,playerCallback:a}=this.params;this.mediaSource=new window.MediaSource,i("setting video src"),r.src=URL.createObjectURL(this.mediaSource),this.mediaSource.addEventListener("sourceopen",()=>{this.mediaSource&&(this.sourceBuffer=this.mediaSource.addSourceBuffer(e.codecs),this.bufferStates=[],t())}),this.videoPlayStarted=!1,r.addEventListener("canplay",()=>{this.shouldPlay()&&(this.videoPlayStarted=!0,this._playVideoElement())});let n=()=>{Tv(r,"progress",()=>{r.buffered.length?(r.currentTime=r.buffered.start(0),this.waitingForFirstBufferAfterSrcChange=!1,a({name:"playing"})):n()})};this.waitingForFirstBufferAfterSrcChange=!0,n()}_initPlayerWith(e){this.bitrate=0,this.rep=0,this.sourceBuffer=0,this.bufferStates=[],this.filesFetcher&&this.filesFetcher.abortAll(),this.filesFetcher=new Ps(Vc,To,this.bitrateSwitcher,this.params.config.maxParallelRequests,this.params.logger),this._setVideoSrc(e,()=>this._switchToQuality(e))}_representation(e){let{logger:t,videoElement:i,playerCallback:r}=this.params,a=!1,n=null,o=null,u=null,l=null,d=!1,c=()=>{let E=a&&(!d||d===this.rep);return E||t("Not running!"),E},p=(E,w,L)=>{u&&u.abort(),u=Er(this.urlResolver.resolve(E,!1),w,L,()=>this._retryCallback()).withTimeout(To).withBitrateReporting(this.bitrateSwitcher).withRetryCount(Vc).withFinally(()=>{u=null}).send()},h=(E,w,L)=>{ks(this.filesFetcher),o?.abort(),o=this.filesFetcher.requestData(this.urlResolver.resolve(E,!1),w,L,()=>this._retryCallback()).withFinally(()=>{o=null}).send()},f=E=>{let w=i.playbackRate;i.playbackRate!==E&&(t(`Playback rate switch: ${w}=>${E}`),i.playbackRate=E)},b=E=>{this.lowLatency=E,t(`lowLatency changed to ${E}`),g()},g=()=>{if(!this.lowLatency&&!this.params.config.isLiveCatchUpMode)f(1);else{let E=this._getBufferSizeSec();if(this.bufferStates.length<5){f(1);return}let L=ke()-1e4,O=0;for(let P=0;P<this.bufferStates.length;P++){let v=this.bufferStates[P];E=Math.min(E,v.buf),v.ts<L&&O++}this.bufferStates.splice(0,O),t(`update playback rate; minBuffer=${E} drop=${O} jitter=${this.sourceJitter}`);let A=E-hB;this.sourceJitter>=0?A-=this.sourceJitter/2:this.sourceJitter-=1,A>3?f(1.15):A>1?f(1.1):A>.3?f(1.05):f(1)}},S=E=>{let w,L=()=>w&&w.start?w.start.length:0,O=$=>w.start[$]/1e3,A=$=>w.dur[$]/1e3,P=$=>w.fragIndex+$,v=($,q)=>({chunkIdx:P($),startTS:O($),dur:A($),discontinuity:q}),D=()=>{let $=0;if(w&&w.dur){let q=this.lowLatency?this.params.config.lowLatencyMinBuffer:this.params.config.minBuffer,X=this.lowLatency?this.params.config.lowLatencyMinBufferSegments:this.params.config.minBufferSegments,ne=q;this.sourceJitter>1&&(ne+=this.sourceJitter-1);let ge=w.dur.length-1;for(;ge>=0&&(ne-=w.dur[ge],!(ne<=0));--ge);$=Math.min(ge,w.dur.length-1-X),$=Math.max($,0)}return v($,!0)},I=$=>{let q=L();if(!(q<=0)){if(yo($)){for(let X=0;X<q;X++)if(O(X)>$)return v(X)}return D()}},x=$=>{let q=L(),X=$?$.chunkIdx+1:0,ne=X-w.fragIndex;if(!(q<=0)){if(!$||ne<0||ne-q>pB)return t(`Resync: offset=${ne} bChunks=${q} chunk=`+JSON.stringify($)),D();if(!(ne>=q))return v(X-w.fragIndex,!1)}},k=($,q,X)=>{l&&l.abort(),l=Er(this.urlResolver.resolve($,!0,this.lowLatency),q,X,()=>this._retryCallback()).withTimeout(To).withRetryCount(Vc).withFinally(()=>{l=null}).withJSONResponse().send()};return{seek:($,q)=>{k(E,X=>{if(!c())return;w=X;let ne=!!w.lowLatency;ne!==this.lowLatency&&b(ne);let ge=0;for(let oe=0;oe<w.dur.length;++oe)ge+=w.dur[oe];ge>0&&(ks(this.filesFetcher),this.filesFetcher.optimizeForSegDuration(ge/w.dur.length)),r({name:"index",zeroTime:w.zeroTime,shiftDuration:w.shiftDuration}),this.sourceJitter=w.hasOwnProperty("jitter")?Math.min(10,Math.max(.01,w.jitter/1e3)):1,$(I(q))},()=>this._handleNetworkError())},nextChunk:x}},T=()=>{a=!1,o&&o.abort(),u&&u.abort(),l&&l.abort(),ks(this.filesFetcher),this.filesFetcher.abortAll()};return d={start:E=>{let{videoElement:w,logger:L}=this.params,O=S(e.jidxUrl),A,P,v,D,I=0,x,k,re,$=()=>{x&&(clearTimeout(x),x=void 0);let V=Math.max(fB,1e3*(this._getBufferSizeSec()-this.sourceJitter-5)),Ee=I+V,Se=ke(),te=Math.min(1e4,Ee-Se);I=Se;let ye=()=>{l||c()&&O.seek(()=>{c()&&(I=ke(),q(),$())})};te>0?x=window.setTimeout(()=>{this.paused?$():ye()},te):ye()},q=()=>{let V;for(;V=O.nextChunk(D);)D=V,Z(V);let Ee=O.nextChunk(v);if(Ee){if(v&&Ee.discontinuity){L("Detected discontinuity; restarting playback"),this.paused?$():(T(),this._initPlayerWith(e));return}oe(Ee)}else $()},X=(V,Ee)=>{if(!c()||!this.sourceBuffer)return;let Se,te,ye,et=Oe=>{window.setTimeout(()=>{c()&&X(V,Ee)},Oe)};if(this.sourceBuffer.updating)L("Source buffer is updating; delaying appendBuffer"),et(100);else{let Oe=ke(),ce=w.currentTime;!this.paused&&w.buffered.length>1&&k===ce&&Oe-re>500&&(L("Stall suspected; trying to fix"),this._fixupStall()),k!==ce&&(k=ce,re=Oe);let tt=this._getBufferSizeSec();if(tt>30)L(`Buffered ${tt} seconds; delaying appendBuffer`),et(2e3);else try{this.sourceBuffer.appendBuffer(V),this.videoPlayStarted?(this.bufferStates.push({ts:Oe,buf:tt}),g(),this.bufferStates.length>200&&this.bufferStates.shift()):this.shouldPlay()&&(this.videoPlayStarted=!0,this._playVideoElement()),Ee&&Ee()}catch(xe){if(xe.name==="QuotaExceededError")L("QuotaExceededError; delaying appendBuffer"),ye=this.sourceBuffer.buffered.length,ye!==0&&(Se=this.sourceBuffer.buffered.start(0),te=ce,te-Se>4&&this.sourceBuffer.remove(Se,te-3)),et(1e3);else throw xe}}},ne=()=>{P&&A&&(L([`Appending chunk, sz=${P.byteLength}:`,JSON.stringify(v)]),X(P,function(){P=null,q()}))},ge=V=>e.fragUrlTemplate.replace("%%id%%",V.chunkIdx),oe=V=>{c()&&h(ge(V),(Ee,Se)=>{if(c()){if(Se/=1e3,P=Ee,v=V,n=V.startTS,Se){let te=Math.min(10,V.dur/Se);this.downloadRate=this.downloadRate?(1-.3)*this.downloadRate+.3*te:te}ne()}},()=>this._handleNetworkError())},Z=V=>{c()&&(ks(this.filesFetcher),this.filesFetcher.prefetch(this.urlResolver.resolve(ge(V),!1)))},R=V=>{c()&&(e.cachedHeader=V,X(V,()=>{A=!0,ne()}))};a=!0,O.seek(V=>{if(c()){if(I=ke(),!V){$();return}D=V,!lB(E)||V.startTS>E?oe(V):(v=V,q())}},E),e.cachedHeader?R(e.cachedHeader):p(e.headerUrl,R,()=>this._handleNetworkError())},stop:T,getTimestampSec:()=>n},d}_switchToQuality(e){let{logger:t,playerCallback:i}=this.params,r;e.bitrate!==this.bitrate&&(this.rep&&(r=this.rep.getTimestampSec(),yo(r)&&(r+=.1),this.rep.stop()),this.currentManifestEntry=e,this.rep=this._representation(e),t(`switch to quality: codecs=${e.codecs}; headerUrl=${e.headerUrl}; bitrate=${e.bitrate}`),this.bitrate=e.bitrate,ks(this.bitrateSwitcher),this.bitrateSwitcher.notifySwitch(this.bitrate),this.rep.start(r),i({name:"qualitySwitch",quality:e}))}_qualityAvailable(e){return yo(this.manifest.find(t=>t.name===e))}_initBitrateSwitcher(){let{logger:e,playerCallback:t}=this.params,i=c=>{if(!this.autoQuality)return;let p,h,f;if(this.currentManifestEntry&&this._qualityAvailable(this.currentManifestEntry.name)&&c<this.bitrate&&(h=this._getBufferSizeSec(),f=c/this.bitrate,h>10&&f>.8||h>15&&f>.5||h>20&&f>.3)){e(`Not switching: buffer=${Math.floor(h)}; bitrate=${this.bitrate}; newRate=${Math.floor(c)}`);return}p=this._selectQuality(c),p?this._switchToQuality(p):e(`Could not find quality by bitrate ${c}`)},a={updateChunk:(p,h)=>{let f=ke();if(this.chunkRateEstimator.addInterval(p,f,h)){let g=this.chunkRateEstimator.getBitRate();return t({name:"bandwidth",size:h,duration:f-p,speed:g}),!0}},get:()=>{let p=this.chunkRateEstimator.getBitRate();return p?p*.85:0}},n=-1/0,o,u=!0,l=()=>{let c=a.get();if(c&&o&&this.autoQuality){if(u&&c>o&&Dc(n)<3e4)return;i(c)}u=this.autoQuality};return{updateChunk:(c,p)=>{let h=a.updateChunk(c,p);return h&&l(),h},notifySwitch:c=>{let p=ke();c<o&&(n=p),o=c}}}_fetchManifest(e,t,i){this.manifestRequest=Er(this.urlResolver.resolve(e,!0),t,i,()=>this._retryCallback()).withJSONResponse().withTimeout(To).withRetryCount(this.params.config.manifestRetryMaxCount).withRetryInterval(this.params.config.manifestRetryInterval,this.params.config.manifestRetryMaxInterval).send().withFinally(()=>{this.manifestRequest=void 0})}_playVideoElement(){let{videoElement:e}=this.params;Xe(e,()=>{this.soundProhibitedEvent$.next()}).then(t=>{t||(this.params.liveOffset.pause(),this.params.videoState.setState("paused"))})}_handleManifestUpdate(e){let{logger:t,playerCallback:i,videoElement:r}=this.params,a=n=>{let o=[];return n?.length?(n.forEach((u,l)=>{u.video&&r.canPlayType(u.codecs).replace(/no/,"")&&window.MediaSource?.isTypeSupported?.(u.codecs)&&(u.index=l,o.push(u))}),o.sort(function(u,l){return u.video&&l.video?l.video.height-u.video.height:l.bitrate-u.bitrate}),o):(i({name:"error",type:"empty_manifest"}),[])};this.manifest=a(e),t(`Valid manifest entries: ${this.manifest.length}/${e.length}`),i({name:"manifest",manifest:this.manifest})}_refetchManifest(e){this.destroyed||(this.manifestRefetchTimer&&clearTimeout(this.manifestRefetchTimer),this.manifestRefetchTimer=window.setTimeout(()=>{this._fetchManifest(e,t=>{this.destroyed||(this._handleManifestUpdate(t),this._refetchManifest(e))},()=>this._refetchManifest(e))},dB))}_initManifest(){this._fetchManifest(this.manifestUrl,e=>{this.destroyed||(this._handleManifestUpdate(e),this._refetchManifest(this.manifestUrl))},()=>this._handleNetworkError())}};var Av=C(Mi(),1);import{debounce as mB,filter as Ev,fromEvent as bB,interval as gB,isHigher as SB,isInvariantQuality as vB,isLower as yB,merge as TB,Subject as wv,Subscription as IB}from"@vkontakte/videoplayer-shared/es2024";var Oc=class{constructor(){this.onDroopedVideoFramesLimit$=new wv;this.subscription=new IB;this.playing=!1;this.tracks=[];this.forceChecker$=new wv;this.isForceCheckCounter=0;this.prevTotalVideoFrames=0;this.prevDroppedVideoFrames=0;this.limitCounts={};this.handleChangeVideoQuality=()=>{let e=this.tracks.find(({size:t})=>t?.height===this.video.videoHeight&&t?.width===this.video.videoWidth);e&&!vB(e.quality)&&this.onChangeQuality(e.quality)};this.checkDroppedFrames=()=>{let{totalVideoFrames:e,droppedVideoFrames:t}=this.video.getVideoPlaybackQuality(),i=e-this.prevTotalVideoFrames,r=t-this.prevDroppedVideoFrames,a=1-(i-r)/i;!isNaN(a)&&a>0&&this.log({message:`[dropped]. current dropped percent: ${a}, limit: ${this.droppedFramesChecker.percentLimit}`}),!isNaN(a)&&a>=this.droppedFramesChecker.percentLimit&&SB(this.currentQuality,this.droppedFramesChecker.minQualityBanLimit)&&(this.limitCounts[this.currentQuality]=(this.limitCounts[this.currentQuality]??0)+1,this.maxQualityLimit=this.getMaxQualityLimit(this.currentQuality),this.currentTimer&&window.clearTimeout(this.currentTimer),this.currentTimer=window.setTimeout(()=>this.maxQualityLimit=this.getMaxQualityLimit(),this.droppedFramesChecker.qualityUpWaitingTime),this.onDroopedVideoFramesLimitTrigger()),this.savePrevFrameCounts(e,t)}}connect(e){this.log=e.logger.createComponentLog("DroppedFramesManager"),this.video=e.video,this.isAuto=e.isAuto,this.tracks=e.tracks,this.droppedFramesChecker=e.droppedFramesChecker,this.subscription.add(e.playing$.subscribe(()=>this.playing=!0)),this.subscription.add(e.pause$.subscribe(()=>this.playing=!1)),this.isEnabled&&this.subscribe()}destroy(){this.currentTimer&&window.clearTimeout(this.currentTimer),this.subscription.unsubscribe()}get droppedVideoMaxQualityLimit(){return this.maxQualityLimit}subscribe(){this.subscription.add(bB(this.video,"resize").subscribe(this.handleChangeVideoQuality));let e=gB(this.droppedFramesChecker.checkTime).pipe(Ev(()=>this.playing),Ev(()=>{let r=!!this.isForceCheckCounter;return r&&(this.isForceCheckCounter-=1),!r})),t=this.forceChecker$.pipe(mB(this.droppedFramesChecker.checkTime)),i=TB(e,t);this.subscription.add(i.subscribe(this.checkDroppedFrames))}onChangeQuality(e){this.currentQuality=e;let{totalVideoFrames:t,droppedVideoFrames:i}=this.video.getVideoPlaybackQuality();this.savePrevFrameCounts(t,i),this.isForceCheckCounter=this.droppedFramesChecker.tickCountAfterQualityChange,this.forceChecker$.next()}onDroopedVideoFramesLimitTrigger(){this.isAuto.getState()&&(this.log({message:`[onDroopedVideoFramesLimit]. maxQualityLimit: ${this.maxQualityLimit}`}),this.onDroopedVideoFramesLimit$.next())}getMaxQualityLimit(e){let t=(0,Av.default)(this.limitCounts).filter(([,i])=>i>=this.droppedFramesChecker.countLimit).sort(([i],[r])=>yB(i,r)?-1:1)?.[0]?.[0];return e??t}get isEnabled(){return this.droppedFramesChecker.enabled&&this.isDroppedFramesCheckerSupport}get isDroppedFramesCheckerSupport(){return!!this.video&&typeof this.video.getVideoPlaybackQuality=="function"}savePrevFrameCounts(e,t){this.prevTotalVideoFrames=e,this.prevDroppedVideoFrames=t}},wr=Oc;import{map as xB,Observable as EB}from"@vkontakte/videoplayer-shared/es2024";import{fromEvent as wB}from"@vkontakte/videoplayer-shared/es2024";var Ms=()=>!!window.documentPictureInPicture?.window||!!document.pictureInPictureElement;var AB=(s,e)=>new EB(t=>{if(!window.IntersectionObserver)return;let i={root:null},r=new IntersectionObserver((n,o)=>{n.forEach(u=>t.next(u.isIntersecting||Ms()))},{...i,...e});r.observe(s);let a=wB(document,"visibilitychange").pipe(xB(n=>!document.hidden||Ms())).subscribe(n=>t.next(n));return()=>{r.unobserve(s),a.unsubscribe()}}),gt=AB;var DB=["paused","playing","ready"],CB=["paused","playing","ready"],Ls=class{constructor(e){this.subscription=new BB;this.videoState=new U("stopped");this.representations$=new Fc([]);this.droppedFramesManager=new wr;this.maxSeekBackTime$=new Fc(1/0);this.zeroTime$=new Fc(void 0);this.liveOffset=new Fi;this._dashCb=e=>{switch(e.name){case"buffering":{let t=e.isBuffering;this.params.output.isBuffering$.next(t);break}case"error":{this.params.output.error$.next({id:`DashLiveProviderInternal:${e.type}`,category:Rv.WTF,message:"LiveDashPlayer reported error"});break}case"manifest":{let t=e.manifest,i=[];for(let r of t){let a=r.name??r.index.toString(10),n=hi(r.name)??$B(r.video),o=r.bitrate/1e3,u={...r.video};if(!n)continue;let l={id:a,quality:n,bitrate:o,size:u};i.push({track:l,representation:r})}this.representations$.next(i),this.params.output.availableVideoTracks$.next(i.map(({track:r})=>r)),this.videoState.getTransition()?.to==="manifest_ready"&&this.videoState.setState("manifest_ready");break}case"qualitySwitch":{let t=e.quality,i=this.representations$.getValue().find(({representation:r})=>r===t)?.track;this.params.output.hostname$.next(new URL(t.headerUrl,this.params.source.url).hostname),_c(i)&&this.params.output.currentVideoTrack$.next(i);break}case"bandwidth":{let{size:t,duration:i}=e;this.params.dependencies.throughputEstimator.addRawSpeed(t,i);break}case"index":{this.maxSeekBackTime$.next(e.shiftDuration||0),this.zeroTime$.next(e.zeroTime);break}}};this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.dash.destroy(),this.video.removeAttribute("src"),this.video.load(),this.videoState.setState("stopped"));return}if(t)return;let n=this.params.desiredState.videoTrack.getTransition(),o=this.params.desiredState.autoVideoTrackSwitching.getTransition();if((0,Nc.default)(CB,e)&&(n||o)){this.prepare();return}if(r?.to!=="paused"&&a.state==="requested"&&(0,Nc.default)(DB,e)){this.seek(a.position-this.liveOffset.getTotalPausedTime());return}switch(e){case"stopped":this.videoState.startTransitionTo("manifest_ready"),this.dash.attachSource(be(this.params.source.url));return;case"manifest_ready":this.videoState.startTransitionTo("ready"),this.prepare();break;case"ready":if(i==="paused")this.videoState.setState("paused");else if(i==="playing"){this.videoState.startTransitionTo("playing");let u=r?.from;u&&u==="ready"&&this.dash.catchUp(),this.dash.play()}return;case"playing":i==="paused"&&(this.videoState.startTransitionTo("paused"),this.liveOffset.pause(),this.dash.pause());return;case"paused":if(i==="playing")if(this.videoState.startTransitionTo("playing"),this.liveOffset.getTotalPausedTime()<this.params.config.maxPausedTime&&this.liveOffset.getTotalOffset()<this.maxSeekBackTime$.getValue())this.liveOffset.resume(),this.dash.play(),this.params.output.position$.next(-this.liveOffset.getTotalOffset()/1e3);else{let u=this.liveOffset.getTotalOffset();u>=this.maxSeekBackTime$.getValue()&&(u=0,this.liveOffset.resetTo(u)),this.liveOffset.resume(),this.params.output.position$.next(-u/1e3),this.dash.reinit(be(this.params.source.url,u))}return;default:return Pv(e)}};this.textTracksManager=new bt(e.source.url),this.params=e,this.log=this.params.dependencies.logger.createComponentLog("DashLiveProvider");let t=r=>{e.output.error$.next({id:"DashLiveProvider",category:Rv.WTF,message:"DashLiveProvider internal logic error",thrown:r})};this.subscription.add(Lv(this.videoState.stateChangeStarted$.pipe(Io(r=>({transition:r,type:"start"}))),this.videoState.stateChangeEnded$.pipe(Io(r=>({transition:r,type:"end"})))).subscribe(({transition:r,type:a})=>{this.log({message:`[videoState change] ${a}: ${JSON.stringify(r)}`})})),this.video=Ge(e.container,e.tuning),this.params.output.element$.next(this.video),this.dash=this.createLiveDashPlayer(),this.subscription.add(this.dash.soundProhibitedEvent$.subscribe(this.params.output.soundProhibitedEvent$)),this.params.output.duration$.next(1/0),this.params.output.position$.next(0),this.params.output.isLive$.next(!0),this.params.output.canChangePlaybackSpeed$.next(!1),this.params.output.hostname$.next($e(this.params.source.url)),this.params.output.autoVideoTrackLimitingAvailable$.next(!0),this.params.output.availableVideoTracks$.next([]),this.params.output.availableAudioTracks$.next([]),this.params.output.isAudioAvailable$.next(!0),this.params.output.availableTextTracks$.next([]),this.params.desiredState.internalTextTracks.setState([]),this.textTracksManager.connect(this.video,this.params.desiredState,this.params.output);let i=Ke(this.video);this.subscription.add(()=>i.destroy()),this.subscription.add(this.representations$.pipe(Io(r=>r.map(({track:a})=>a)),Mv(r=>!!r.length),LB()).subscribe(r=>this.droppedFramesManager.connect({logger:this.params.dependencies.logger,video:this.video,droppedFramesChecker:this.params.tuning.droppedFramesChecker,isAuto:this.params.desiredState.autoVideoTrackSwitching,playing$:i.playing$,pause$:i.pause$,tracks:r}))),this.subscription.add(i.canplay$.subscribe(()=>{this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready")},t)).add(i.pause$.subscribe(()=>{this.videoState.setState("paused")},t)).add(i.playing$.subscribe(()=>{this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.videoState.setState("playing")},t)).add(i.error$.subscribe(this.params.output.error$)).add(this.maxSeekBackTime$.pipe(RB(),Io(r=>-r/1e3)).subscribe(this.params.output.duration$)).add(PB({zeroTime:this.zeroTime$.pipe(Mv(_c)),position:i.timeUpdate$}).subscribe(({zeroTime:r,position:a})=>this.params.output.liveTime$.next(r+a*1e3),t)).add(Dt(this.video,this.params.desiredState.isLooped,t)).add(Ye(this.video,this.params.desiredState.volume,i.volumeState$,t)).add(i.volumeState$.subscribe(this.params.output.volume$,t)).add(mt(this.video,this.params.desiredState.playbackRate,i.playbackRateState$,t)).add(i.loadStart$.subscribe(this.params.output.firstBytesEvent$)).add(i.loadedMetadata$.subscribe(this.params.output.loadedMetadataEvent$)).add(i.playing$.subscribe(this.params.output.firstFrameEvent$)).add(i.canplay$.subscribe(this.params.output.canplay$)).add(i.inPiP$.subscribe(this.params.output.inPiP$)).add(i.inFullscreen$.subscribe(this.params.output.inFullscreen$)).add(gt(this.video).subscribe(this.params.output.elementVisible$)).add(this.params.desiredState.autoVideoTrackLimits.stateChangeStarted$.subscribe(({to:{max:r,min:a}})=>{this.dash.setAutoQualityLimits({max:r&&Bv(r),min:a&&Bv(a)}),this.params.output.autoVideoTrackLimits$.next({max:r,min:a})})).add(this.videoState.stateChangeEnded$.subscribe(r=>{switch(r.to){case"stopped":this.params.output.position$.next(0),this.params.output.duration$.next(1/0),this.params.desiredState.playbackState.setState("stopped");break;case"manifest_ready":case"ready":this.params.desiredState.playbackState.getTransition()?.to==="ready"&&this.params.desiredState.playbackState.setState("ready");break;case"paused":this.params.desiredState.playbackState.setState("paused");break;case"playing":this.params.desiredState.playbackState.setState("playing");break;default:return Pv(r.to)}},t)).add(Lv(e.desiredState.playbackState.stateChangeStarted$,e.desiredState.seekState.stateChangeEnded$,e.desiredState.videoTrack.stateChangeStarted$,e.desiredState.autoVideoTrackSwitching.stateChangeStarted$,this.videoState.stateChangeEnded$,this.droppedFramesManager.onDroopedVideoFramesLimit$,MB(["init"])).pipe(kB(0)).subscribe(this.syncPlayback,t))}destroy(){this.subscription.unsubscribe(),this.textTracksManager.destroy(),this.droppedFramesManager.destroy(),this.dash.destroy(),this.params.output.element$.next(void 0),We(this.video)}createLiveDashPlayer(){let e=new Rs({videoElement:this.video,videoState:this.videoState,playbackState:this.params.desiredState.playbackState,liveOffset:this.liveOffset,config:{maxParallelRequests:this.params.config.maxParallelRequests,minBuffer:this.params.tuning.live.minBuffer,minBufferSegments:this.params.tuning.live.minBufferSegments,lowLatencyMinBuffer:this.params.tuning.live.lowLatencyMinBuffer,lowLatencyMinBufferSegments:this.params.tuning.live.lowLatencyMinBufferSegments,isLiveCatchUpMode:this.params.tuning.live.isLiveCatchUpMode,manifestRetryInterval:this.params.tuning.manifestRetryInterval,manifestRetryMaxInterval:this.params.tuning.manifestRetryMaxInterval,manifestRetryMaxCount:this.params.tuning.manifestRetryMaxCount},playerCallback:this._dashCb,logger:t=>{this.params.dependencies.logger.log({message:String(t),component:"LiveDashPlayer"})}});return e.pause(),e}prepare(){let e=this.representations$.getValue(),t=this.params.desiredState.videoTrack.getTransition()?.to??this.params.desiredState.videoTrack.getState(),i=this.params.desiredState.autoVideoTrackSwitching.getTransition()?.to??this.params.desiredState.autoVideoTrackSwitching.getState(),r=!i&&_c(t)?t:Ot(e.map(({track:l})=>l),{container:this.video.getBoundingClientRect(),panelSize:this.params.panelSize,estimatedThroughput:this.params.dependencies.throughputEstimator.throughput$.getValue(),tuning:this.params.tuning.autoTrackSelection,limits:this.params.desiredState.autoVideoTrackLimits.getState(),droppedVideoMaxQualityLimit:this.droppedFramesManager.droppedVideoMaxQualityLimit,abrLogger:this.params.dependencies.abrLogger}),a=r?.id,n=this.params.desiredState.videoTrack.getTransition(),o=this.params.desiredState.videoTrack.getState()?.id,u=this.params.desiredState.autoVideoTrackSwitching.getTransition();if(r&&(n||a!==o)&&this.setVideoTrack(r),u&&this.setAutoQuality(i),n||u||a!==o){let l=e.find(({track:d})=>d.id===a)?.representation;kv(l,"Representations missing"),this.dash.startPlay(l,i)}}setVideoTrack(e){let t=this.representations$.getValue().find(({track:i})=>i.id===e.id)?.representation;kv(t,`No such representation ${e.id}`),this.dash.switchByName(t.name),this.params.desiredState.videoTrack.setState(e)}setAutoQuality(e){this.dash.setAutoQualityEnabled(e),this.params.desiredState.autoVideoTrackSwitching.setState(e)}seek(e){this.log({message:`[seek] position: ${e}`}),this.params.output.willSeekEvent$.next();let t=this.params.desiredState.playbackState.getState(),i=this.videoState.getState(),r=t==="paused"&&i==="paused",a=-e,n=a<=this.maxSeekBackTime$.getValue()?a:0;this.params.output.position$.next(e/1e3),this.dash.reinit(be(this.params.source.url,n)),r&&this.dash.pause(),this.liveOffset.resetTo(n,r)}};var $v=Ls;var QT=C(dt(),1);var Re=(s,e)=>{let t=0;for(let i=0;i<s.length;i++){let r=s.start(i)*1e3,a=s.end(i)*1e3;r<=e&&e<=a&&(t=a)}return Math.max(t-e,0)};import{assertNever as g0,assertNonNullable as S0,debounce as v0,ErrorCategory as jT,filter as Ad,filterChanged as Yo,fromEvent as y0,isNonNullable as HT,isNullable as T0,map as Pd,merge as Ko,observableFrom as kd,once as zT,Subscription as I0}from"@vkontakte/videoplayer-shared/es2024";var xo=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:i})}removeEventListener(e,t){if(!(e in this.listeners))return;let i=this.listeners[e];for(let r=0,a=i.length;r<a;r++)if(i[r].callback===t){i.splice(r,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let r=0,a=i.length;r<a;r++){let n=i[r];try{n.callback.call(this,e)}catch(o){Promise.resolve().then(()=>{throw o})}n.options&&n.options.once&&this.removeEventListener(e.type,n.callback)}return!e.defaultPrevented}},Ar=class extends xo{constructor(){super(),this.listeners||xo.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}},Bs=class{constructor(){Object.defineProperty(this,"signal",{value:new Ar,writable:!0,configurable:!0})}abort(e){let t;try{t=new Event("abort")}catch{typeof document<"u"?document.createEvent?(t=document.createEvent("Event"),t.initEvent("abort",!1,!1)):(t=document.createEventObject(),t.type="abort"):t={type:"abort",bubbles:!1,cancelable:!1}}let i=e;if(i===void 0)if(typeof document>"u")i=new Error("This operation was aborted"),i.name="AbortError";else try{i=new DOMException("signal is aborted without reason")}catch{i=new Error("This operation was aborted"),i.name="AbortError"}this.signal.reason=i,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(Bs.prototype[Symbol.toStringTag]="AbortController",Ar.prototype[Symbol.toStringTag]="AbortSignal");function Eo(s){return s.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof s.Request=="function"&&!s.Request.prototype.hasOwnProperty("signal")||!s.AbortController}function Uc(s){typeof s=="function"&&(s={fetch:s});let{fetch:e,Request:t=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:r=!1}=s;if(!Eo({fetch:e,Request:t,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:r}))return{fetch:e,Request:a};let a=t;(a&&!a.prototype.hasOwnProperty("signal")||r)&&(a=function(l,d){let c;d&&d.signal&&(c=d.signal,delete d.signal);let p=new t(l,d);return c&&Object.defineProperty(p,"signal",{writable:!1,enumerable:!1,configurable:!0,value:c}),p},a.prototype=t.prototype);let n=e;return{fetch:(u,l)=>{let d=a&&a.prototype.isPrototypeOf(u)?u.signal:l?l.signal:void 0;if(d){let c;try{c=new DOMException("Aborted","AbortError")}catch{c=new Error("Aborted"),c.name="AbortError"}if(d.aborted)return Promise.reject(c);let p=new Promise((h,f)=>{d.addEventListener("abort",()=>f(c),{once:!0})});return l&&l.signal&&delete l.signal,Promise.race([p,n(u,l)])}return n(u,l)},Request:a}}var VB=()=>"fetch"in window,$s=VB()&&Eo({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),Dv=$s?Uc({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,St=$s?Dv.fetch:window.fetch,kq=$s?Dv.Request:window.Request,ee=$s?Bs:window.AbortController,Rq=$s?Ar:window.AbortSignal;var yd=C(Ds(),1);var yy=C(vy(),1);import{ErrorCategory as Vs}from"@vkontakte/videoplayer-shared/es2024";var wo=s=>{if(!s)return{id:"EmptyResponse",category:Vs.PARSER,message:"Empty response"};if(s.length<=2&&s.match(/^\d+$/))return{id:`UVError#${s}`,category:Vs.NETWORK,message:`UV Error ${s}`};let e=(0,yy.default)(s).substring(0,100).toLowerCase();if(e.startsWith("<!doctype")||e.startsWith("<html>")||e.startsWith("<body>")||e.startsWith("<head>"))return{id:"UnexpectedHTML",category:Vs.NETWORK,message:"Received unexpected HTML, possibly a ISP block"};if(e.startsWith("<?xml"))return new DOMParser().parseFromString(s,"text/xml").querySelector("parsererror")?{id:"InvalidXML",category:Vs.PARSER,message:"XML parsing error"}:{id:"XMLParserLogicError",category:Vs.PARSER,message:"Response is valid XML, but parser failed"}};var De=(s,e,t=0)=>{for(let i=0;i<s.length;i++)if(s.start(i)*1e3-t<=e&&s.end(i)*1e3+t>e)return!0;return!1};import{abortable as gd,assertNonNullable as Vr,combine as Or,ErrorCategory as Rt,filter as Uo,filterChanged as ma,flattenObject as ba,fromEvent as si,getTraceSubscriptionMethod as ZD,interval as Sd,isNonNullable as ga,isNullable as OT,map as _r,merge as Hi,now as vd,Subject as qo,Subscription as _T,tap as e0,throttle as t0,ValueSubject as de}from"@vkontakte/videoplayer-shared/es2024";var ko=C(dt(),1),$r=C(Pt(),1),Ro=C(Ds(),1);var T$=(s,e={})=>{let i=e.timeout||1,r=performance.now();return window.setTimeout(()=>{s({get didTimeout(){return e.timeout?!1:performance.now()-r-1>i},timeRemaining(){return Math.max(0,1+(performance.now()-r))}})},1)},I$=s=>window.clearTimeout(s),Ty=s=>typeof s=="function"&&s?.toString().endsWith("{ [native code] }"),Iy=!Ty(window.requestIdleCallback)||!Ty(window.cancelIdleCallback),Pr=Iy?T$:window.requestIdleCallback,_t=Iy?I$:window.cancelIdleCallback;var PT=C(Wn(),1);import{assertNever as x$,ErrorCategory as xy,Subject as Ey}from"@vkontakte/videoplayer-shared/es2024";var E$=18,wy=!1;try{wy=F.browser.isSafari&&!!F.browser.safariVersion&&F.browser.safariVersion<=E$}catch(s){console.error(s)}var Gc=class{constructor(e){this.bufferFull$=new Ey;this.error$=new Ey;this.queue=[];this.currentTask=null;this.destroyed=!1;this.abortRequested=!1;this.completeTask=()=>{try{if(this.currentTask){let e=this.currentTask.signal?.aborted;this.currentTask.callback(!e),this.currentTask=null}this.queue.length&&this.pull()}catch(e){this.error$.next({id:"BufferTaskQueueUnknown",category:xy.VIDEO_PIPELINE,message:"Buffer appending or removal failed",thrown:e})}};this.buffer=e,this.buffer.addEventListener("updateend",this.completeTask)}async append(e,t){return t&&t.aborted?!1:new Promise(i=>{let r={operation:"append",data:e,signal:t,callback:i};this.queue.push(r),this.pull()})}async remove(e,t,i){return i&&i.aborted?!1:new Promise(r=>{let a={operation:"remove",from:e,to:t,signal:i,callback:r};this.queue.unshift(a),this.pull()})}async abort(e){return new Promise(t=>{let i,r=a=>{this.abortRequested=!1,t(a)};wy&&e?i={operation:"safariAbort",init:e,callback:r}:i={operation:"abort",callback:r};for(let{callback:a}of this.queue)a(!1);this.abortRequested=!0,i&&(this.queue=[i]),this.pull()})}destroy(){this.destroyed=!0,this.buffer.removeEventListener("updateend",this.completeTask),this.queue=[],this.currentTask=null;try{this.buffer.abort()}catch(e){if(!(e instanceof DOMException&&e.name==="InvalidStateError"))throw e}}pull(){if((this.buffer.updating||this.currentTask||this.destroyed)&&!this.abortRequested)return;let e=this.queue.shift();if(!e)return;if(e.signal?.aborted){e.callback(!1),this.pull();return}this.currentTask=e;let{operation:t}=this.currentTask;try{this.execute(this.currentTask)}catch(r){r instanceof DOMException&&r.name==="QuotaExceededError"&&t==="append"?this.bufferFull$.next(this.currentTask.data.byteLength):r instanceof DOMException&&r.name==="InvalidStateError"||this.error$.next({id:`BufferTaskQueue:${t}`,category:xy.VIDEO_PIPELINE,message:"Buffer operation failed",thrown:r}),this.currentTask.callback(!1),this.currentTask=null}this.currentTask&&this.currentTask.operation==="abort"&&this.completeTask()}execute(e){let{operation:t}=e;switch(t){case"append":this.buffer.appendBuffer(e.data);break;case"remove":this.buffer.remove(e.from/1e3,e.to/1e3);break;case"abort":this.buffer.abort();break;case"safariAbort":{this.buffer.abort(),this.buffer.appendBuffer(e.init);break}default:x$(t)}}},Ay=Gc;var kr=s=>{let e=0;for(let t=0;t<s.length;t++)e+=s.end(t)-s.start(t);return e*1e3};import{abortable as bi,assertNonNullable as Je,ErrorCategory as ti,fromEvent as dd,getExponentialDelay as pd,isNonNullable as Br,isNullable as Ce,now as Po,once as UD,Subject as qD,Subscription as jD,ValueSubject as ji}from"@vkontakte/videoplayer-shared/es2024";var z=class{constructor(e,t){this.cursor=0;this.source=e,this.boxParser=t,this.children=[];let i=this.readUint32();this.type=this.readString(4),this.size32=i<=e.buffer.byteLength-e.byteOffset?i:NaN;let r=this.size32?this.size32-8:void 0,a=e.byteOffset+this.cursor;this.size64=0,this.usertype=0,this.content=new DataView(e.buffer,a,r)}get id(){return this.type}get size(){return this.size32}scanForBoxes(e){return this.boxParser.parse(e)}readString(e,t="ascii"){let r=new TextDecoder(t).decode(new DataView(this.source.buffer,this.source.byteOffset+this.cursor,e));return this.cursor+=e,r}readUint8(){let e=this.source.getUint8(this.cursor);return this.cursor+=1,e}readUint16(){let e=this.source.getUint16(this.cursor);return this.cursor+=2,e}readUint32(){let e=this.source.getUint32(this.cursor);return this.cursor+=4,e}readUint64(){let e=this.source.getBigInt64(this.cursor);return this.cursor+=8,e}};var Rr=class extends z{};var Os=class extends z{constructor(t,i){super(t,i);this.ondemandPrefix="ondemandlivejson";this.ondemandDataReceivedKey="t-in";this.ondemandDataPreparedKey="t-out";let r=this.content.byteOffset,a=r+this.content.byteLength,n=new TextDecoder("ascii").decode(this.content.buffer.slice(r,a)).split(this.ondemandPrefix)[1],o=JSON.parse(n);this.serverDataReceivedTimestamp=o[this.ondemandDataReceivedKey],this.serverDataPreparedTime=o[this.ondemandDataPreparedKey]}};var _s=class extends z{constructor(e,t){super(e,t),this.compatibleBrands=[],this.majorBrand=this.readString(4),this.minorVersion=this.readUint32();let i=this.size-this.cursor;for(;i;){let r=this.readString(4);this.compatibleBrands.push(r),i-=4}}};var Fs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var se=class extends z{constructor(e,t){super(e,t);let i=this.readUint32();this.version=i>>>24,this.flags=i&16777215}};var Ns=class extends se{constructor(e,t){super(e,t),this.creationTime=this.readUint32(),this.modificationTime=this.readUint32(),this.timescale=this.readUint32(),this.duration=this.readUint32(),this.rate=this.readUint32(),this.volume=this.readUint16()}};var Us=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var qs=class extends z{constructor(e,t){super(e,t),this.data=this.content}};var Ui=class extends se{get earliestPresentationTime(){return this.earliestPresentationTime32}get firstOffset(){return this.firstOffset32}constructor(e,t){super(e,t),this.segments=[],this.referenceId=this.readUint32(),this.timescale=this.readUint32(),this.earliestPresentationTime32=this.readUint32(),this.firstOffset32=this.readUint32(),this.earliestPresentationTime64=0,this.firstOffset64=0,this.referenceCount=this.readUint32()&65535;for(let i=0;i<this.referenceCount;i++){let r=this.readUint32(),a=r>>>31,n=r<<1>>>1,o=this.readUint32();r=this.readUint32();let u=r>>>28,l=r<<3>>>3;this.segments.push({referenceType:a,referencedSize:n,subsegmentDuration:o,SAPType:u,SAPDeltaTime:l})}}};var js=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Hs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var zs=class extends se{constructor(e,t){switch(super(e,t),this.readUint8()){case 0:this.stereoMode=0;break;case 1:this.stereoMode=1;break;case 2:this.stereoMode=2;break;case 3:this.stereoMode=3;break;case 4:this.stereoMode=4;break}this.cursor+=1}};var Qs=class extends se{constructor(e,t){super(e,t),this.poseYawDegrees=this.readUint32(),this.posePitchDegrees=this.readUint32(),this.poseRollDegrees=this.readUint32()}};var Gs=class extends se{constructor(e,t){super(e,t),this.projectionBoundsTop=this.readUint32(),this.projectionBoundsBottom=this.readUint32(),this.projectionBoundsLeft=this.readUint32(),this.projectionBoundsRight=this.readUint32()}};var Ws=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Ys=class extends se{constructor(e,t){super(e,t),this.creationTime=this.readUint32(),this.modificationTime=this.readUint32(),this.trackId=this.readUint32(),this.cursor+=4,this.duration=this.readUint32(),this.cursor+=8,this.layer=this.readUint16(),this.alternateGroup=this.readUint16(),this.cursor+=2,this.cursor+=2,this.matrix=[[this.readUint32(),this.readUint32(),this.readUint32()],[this.readUint32(),this.readUint32(),this.readUint32()],[this.readUint32(),this.readUint32(),this.readUint32()]],this.width=this.readUint32(),this.height=this.readUint32()}};var Ks=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Xs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var Js=class extends se{constructor(e,t){super(e,t),this.sequenceNumber=this.readUint32()}};var Zs=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var ea=class extends se{constructor(e,t){super(e,t),this.trackId=this.readUint32(),this.flags&1&&(this.baseDataOffset=this.readUint64()),this.flags&2&&(this.sampleDescriptionIndex=this.readUint32()),this.flags&8&&(this.defaultSampleDuration=this.readUint32()),this.flags&16&&(this.defaultSampleSize=this.readUint32()),this.flags&32&&(this.defaultSampleFlags=this.readUint32())}};var ta=class extends se{constructor(t,i){super(t,i);this.baseMediaDecodeTime32=0;this.baseMediaDecodeTime64=BigInt(0);this.version===1?this.baseMediaDecodeTime64=this.readUint64():this.baseMediaDecodeTime32=this.readUint32()}get baseMediaDecodeTime(){return this.version===1?this.baseMediaDecodeTime64:this.baseMediaDecodeTime32}};var ia=class extends se{constructor(t,i){super(t,i);this.sampleDuration=[];this.sampleSize=[];this.sampleFlags=[];this.sampleCompositionTimeOffset=[];this.optionalFields=0;this.sampleCount=this.readUint32(),this.flags&1&&(this.dataOffset=this.readUint32()),this.flags&4&&(this.firstSampleFlags=this.readUint32());for(let r=0;r<this.sampleCount;r++)this.flags&256&&this.sampleDuration.push(this.readUint32()),this.flags&512&&this.sampleSize.push(this.readUint32()),this.flags&1024&&this.sampleFlags.push(this.readUint32()),this.flags&2048&&this.sampleCompositionTimeOffset.push(this.readUint32())}};var ra=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(this.content)}};var sa=class extends se{constructor(e,t){super(e,t),this.entryCount=this.readUint32(),this.children=this.scanForBoxes(new DataView(this.content.buffer,this.content.byteOffset+8,this.content.byteLength-8))}};var aa=class extends z{constructor(e,t){super(e,t),this.children=this.scanForBoxes(new DataView(this.content.buffer,this.content.byteOffset+78,this.content.byteLength-78))}};var A$={ftyp:_s,moov:Fs,mvhd:Ns,moof:Us,mdat:qs,sidx:Ui,trak:js,mdia:Ws,mfhd:Js,tkhd:Ys,traf:Zs,tfhd:ea,tfdt:ta,trun:ia,minf:Ks,sv3d:Hs,st3d:zs,prhd:Qs,proj:Xs,equi:Gs,uuid:Os,stbl:ra,stsd:sa,avc1:aa,unknown:Rr},Zt=class s{constructor(e={}){this.options={offset:0,...e}}parse(e){let t=[],i=this.options.offset;for(;i<e.byteLength;)try{let a=new TextDecoder("ascii").decode(new DataView(e.buffer,e.byteOffset+i+4,4)),n=this.createBox(a,new DataView(e.buffer,e.byteOffset+i));if(!n.size)break;t.push(n),i+=n.size}catch{break}return t}createBox(e,t){let i=A$[e];return i?new i(t,new s):new Rr(t,new s)}};var mi=class{constructor(e){this.index={},this.indexBoxLevel(e)}indexBoxLevel(e){e.forEach(t=>{this.index[t.type]??=[],this.index[t.type].push(t),t.children.length>0&&this.indexBoxLevel(t.children)})}find(e){return this.index[e]&&this.index[e][0]?this.index[e][0]:null}findAll(e){return this.index[e]||[]}};var k$=new TextDecoder("ascii"),R$=s=>k$.decode(new DataView(s.buffer,s.byteOffset+4,4))==="ftyp",M$=s=>{let e=new Ui(s,new Zt),t=e.earliestPresentationTime/e.timescale*1e3,i=s.byteOffset+s.byteLength+e.firstOffset;return e.segments.map(a=>{if(a.referenceType!==0)throw new Error("Unsupported multilevel sidx");let n=a.subsegmentDuration/e.timescale*1e3,o={status:"none",time:{from:t,to:t+n},byte:{from:i,to:i+a.referencedSize-1}};return t+=n,i+=a.referencedSize,o})},L$=(s,e)=>{let i=new Zt().parse(s),r=new mi(i),a=r.findAll("moof"),n=e?r.findAll("uuid"):r.findAll("mdat");if(!(n.length&&a.length))return null;let o=a[0],u=n[n.length-1],l=o.source.byteOffset,c=u.source.byteOffset-o.source.byteOffset+u.size;return new DataView(s.buffer,l,c)},B$=s=>{let t=new Zt().parse(s),i=new mi(t),r={},a=i.findAll("uuid");return a.length?a[a.length-1]:r},$$=s=>{let t=new Zt().parse(s);return new mi(t).find("sidx")?.timescale},D$=(s,e)=>{let i=new Zt().parse(s),a=new mi(i).findAll("traf"),n=a[a.length-1].children.find(c=>c.type==="tfhd"),o=a[a.length-1].children.find(c=>c.type==="tfdt"),u=a[a.length-1].children.find(c=>c.type==="trun"),l=0;return u.sampleDuration.length?l=u.sampleDuration.reduce((c,p)=>c+p,0):l=n.defaultSampleDuration*u.sampleCount,(Number(o.baseMediaDecodeTime)+l)/e*1e3},C$=s=>{let e={is3dVideo:!1,stereoMode:0,projectionType:1,projectionData:{pose:{yaw:0,pitch:0,roll:0},bounds:{top:0,bottom:0,left:0,right:0}}},i=new Zt().parse(s),r=new mi(i);if(r.find("sv3d")){e.is3dVideo=!0;let n=r.find("st3d");n&&(e.stereoMode=n.stereoMode);let o=r.find("prhd");o&&(e.projectionData.pose.yaw=o.poseYawDegrees,e.projectionData.pose.pitch=o.posePitchDegrees,e.projectionData.pose.roll=o.poseRollDegrees);let u=r.find("equi");u&&(e.projectionData.bounds.top=u.projectionBoundsTop,e.projectionData.bounds.right=u.projectionBoundsRight,e.projectionData.bounds.bottom=u.projectionBoundsBottom,e.projectionData.bounds.left=u.projectionBoundsLeft)}return e},Py={validateData:R$,parseInit:C$,getIndexRange:()=>{},parseSegments:M$,parseFeedableSegmentChunk:L$,getChunkEndTime:D$,getServerLatencyTimestamps:B$,getTimescaleFromIndex:$$};var oa=C(dt(),1);import{assertNonNullable as Yc,isNonNullable as Ly,isNullable as O$}from"@vkontakte/videoplayer-shared/es2024";import{assertNever as V$}from"@vkontakte/videoplayer-shared/es2024";var ky={440786851:{type:"master"},17030:{type:"uint"},17143:{type:"uint"},17138:{type:"uint"},17139:{type:"uint"},17026:{type:"string"},17031:{type:"uint"},17029:{type:"uint"},236:{type:"binary"},408125543:{type:"master"},290298740:{type:"master"},19899:{type:"master"},21419:{type:"binary"},21420:{type:"uint"},357149030:{type:"master"},2807729:{type:"uint"},17545:{type:"float"},374648427:{type:"master"},174:{type:"master"},224:{type:"master"},30320:{type:"master"},30321:{type:"uint"},30322:{type:"master"},272869232:{type:"master"},524531317:{type:"master"},231:{type:"uint"},22612:{type:"master"},22743:{type:"uint"},167:{type:"uint"},171:{type:"uint"},163:{type:"binary"},160:{type:"master"},175:{type:"binary"},423732329:{type:"master"},307544935:{type:"master"},475249515:{type:"master"},187:{type:"master"},179:{type:"uint"},183:{type:"master"},247:{type:"uint"},241:{type:"uint"},240:{type:"uint"},178:{type:"uint"},21368:{type:"uint"},234:{type:"uint"},219:{type:"master"},150:{type:"uint"}},Ry=s=>{let e=s.getUint8(0),t=0;e&128?t=1:e&64?t=2:e&32?t=3:e&16&&(t=4);let i=na(s,t),r=i in ky,a=r?ky[i].type:"binary",n=s.getUint8(t),o=0;n&128?o=1:n&64?o=2:n&32?o=3:n&16?o=4:n&8?o=5:n&4?o=6:n&2?o=7:n&1&&(o=8);let u=new DataView(s.buffer,s.byteOffset+t+1,o-1),l=n&255>>o,d=na(u),c=l*2**((o-1)*8)+d,p=t+o,h;return p+c>s.byteLength?h=new DataView(s.buffer,s.byteOffset+p):h=new DataView(s.buffer,s.byteOffset+p,c),{tag:r?i:"0x"+i.toString(16).toUpperCase(),type:a,tagHeaderSize:p,tagSize:p+c,value:h,valueSize:c}},na=(s,e=s.byteLength)=>{switch(e){case 1:return s.getUint8(0);case 2:return s.getUint16(0);case 3:return s.getUint8(0)*2**16+s.getUint16(1);case 4:return s.getUint32(0);case 5:return s.getUint8(0)*2**32+s.getUint32(1);case 6:return s.getUint16(0)*2**32+s.getUint32(2);case 7:{let t=s.getUint8(0)*281474976710656+s.getUint16(1)*4294967296+s.getUint32(3);if(Number.isSafeInteger(t))return t}case 8:throw new ReferenceError("Int64 is not supported")}return 0},kt=(s,e)=>{switch(e){case"int":return s.getInt8(0);case"uint":return na(s);case"float":return s.byteLength===4?s.getFloat32(0):s.getFloat64(0);case"string":return new TextDecoder("ascii").decode(s);case"utf8":return new TextDecoder("utf-8").decode(s);case"date":return new Date(Date.UTC(2001,0)+s.getInt8(0)).getTime();case"master":return s;case"binary":return s;default:V$(e)}},qi=(s,e)=>{let t=0;for(;t<s.byteLength;){let i=new DataView(s.buffer,s.byteOffset+t),r=Ry(i);if(!e(r))return;r.type==="master"&&qi(r.value,e),t=r.value.byteOffset-s.byteOffset+r.valueSize}},My=s=>{if(s.getUint32(0)!==440786851)return!1;let e,t,i,r=Ry(s);return qi(r.value,({tag:a,type:n,value:o})=>(a===17143?e=kt(o,n):a===17026?t=kt(o,n):a===17029&&(i=kt(o,n)),!0)),(e===void 0||e<=1)&&t!==void 0&&t==="webm"&&(i===void 0||i<=2)};var By=[357149030,290298740,374648427,174,224,30320,30321,30322,272869232,524531317,475249515,423732329,307544935],_$=[231,22612,22743,167,171,163,160,175],F$=s=>{let e,t,i,r,a=!1,n=!1,o=!1,u,l,d=!1,c=0;return qi(s,({tag:p,type:h,value:f,valueSize:b})=>{if(p===21419){let g=kt(f,h);l=na(g)}else p!==21420&&(l=void 0);return p===408125543?(e=f.byteOffset,t=f.byteOffset+b):p===357149030?a=!0:p===290298740?n=!0:p===2807729?i=kt(f,h):p===17545?r=kt(f,h):p===21420&&l===475249515?u=kt(f,h):p===374648427?qi(f,({tag:g,type:S,value:T})=>g===30321?(d=kt(T,S)===1,!1):!0):a&&n&&(0,oa.default)(By,p)&&(o=!0),!o}),Yc(e,"Failed to parse webm Segment start"),Yc(t,"Failed to parse webm Segment end"),Yc(r,"Failed to parse webm Segment duration"),i=i??1e6,{segmentStart:Math.round(e/1e9*i*1e3),segmentEnd:Math.round(t/1e9*i*1e3),timeScale:i,segmentDuration:Math.round(r/1e9*i*1e3),cuesSeekPosition:u,is3dVideo:d,stereoMode:c,projectionType:1,projectionData:{pose:{yaw:0,pitch:0,roll:0},bounds:{top:0,bottom:0,left:0,right:0}}}},N$=s=>{if(O$(s.cuesSeekPosition))return;let e=s.segmentStart+s.cuesSeekPosition,t=1024*1024;return{from:e,to:e+t}},U$=(s,e)=>{let t=!1,i=!1,r=o=>Ly(o.time)&&Ly(o.position),a=[],n;return qi(s,({tag:o,type:u,value:l})=>{switch(o){case 475249515:t=!0;break;case 187:n&&r(n)&&a.push(n),n={};break;case 179:n&&(n.time=kt(l,u));break;case 183:break;case 241:n&&(n.position=kt(l,u));break;default:t&&(0,oa.default)(By,o)&&(i=!0)}return!(t&&i)}),n&&r(n)&&a.push(n),a.map((o,u)=>{let{time:l,position:d}=o,c=a[u+1];return{status:"none",time:{from:l,to:c?c.time:e.segmentDuration},byte:{from:e.segmentStart+d,to:c?e.segmentStart+c.position-1:e.segmentEnd-1}}})},q$=s=>{let e=0,t=!1;try{qi(s,i=>i.tag===524531317?i.tagSize<=s.byteLength?(e=i.tagSize,!1):(e+=i.tagHeaderSize,!0):(0,oa.default)(_$,i.tag)?(e+i.tagSize<=s.byteLength&&(e+=i.tagSize,t||=(0,oa.default)([163,160,175],i.tag)),!0):!1)}catch{}return e>0&&e<=s.byteLength&&t?new DataView(s.buffer,s.byteOffset,e):null},$y={validateData:My,parseInit:F$,getIndexRange:N$,parseSegments:U$,parseFeedableSegmentChunk:q$};var ua=s=>{let e=/^(.+)\/([^;]+)(?:;.*)?$/.exec(s);if(e){let[,t,i]=e;if(t==="audio"||t==="video")switch(i){case"webm":return $y;case"mp4":return Py}}throw new ReferenceError(`Unsupported mime type ${s}`)};var ud=C(td(),1),IT=C(Mi(),1),xT=C(id(),1),ET=C(Pt(),1),ld=C(_i(),1);var fT=C(dt(),1),Lr=s=>{let e=s.split("."),[t,...i]=e;if(!t)return!1;switch(t){case"av01":{let[r,a,n]=i;return!!(n&&parseInt(n,10)>8)}case"vp09":{let[r,a,n]=i;return!!(r&&parseInt(r,10)>=2&&n&&parseInt(n,10)>8)}case"avc1":{let r=i[0];if(!r||r.length!==6)return!1;let[a,n]=r.toUpperCase(),o=a+n;return(0,fT.default)(["6E","7A","F4"],o)}}return!1};import{isNonNullable as FD,isNullable as yT}from"@vkontakte/videoplayer-shared/es2024";var Ao=s=>{if(s.includes("/")){let e=s.split("/");return parseInt(e[0])/parseInt(e[1])}else return parseFloat(s)};var mT=s=>{try{let e=OD(),t=s.match(e),{groups:i}=t??{};if(i){let r={};if(i.extensions){let o=i.extensions.toLowerCase().match(/(?:[0-9a-wy-z](?:-[a-z0-9]{2,8})+)/g);Array.from(o||[]).forEach(u=>{r[u[0]]=u.slice(2)})}let a=i.variants?.split(/-/).filter(o=>o!==""),n={extlang:i.extlang,langtag:i.langtag,language:i.language,privateuse:i.privateuse||i.privateuse2,region:i.region,script:i.script,extensions:r,variants:a};return Object.keys(n).forEach(o=>{let u=n[o];(typeof u>"u"||u==="")&&delete n[o]}),n}return null}catch{return null}};function OD(){let s="(?<extlang>(?:[a-z]{3}(?:-[a-z]{3}){0,2}))",e="x(?:-[a-z0-9]{1,8})+",d=`^(?:(?<langtag>${`
118
118
  (?<language>${`(?:[a-z]{2,3}(?:-${s})?|[a-z]{4}|[a-z]{5,8})`})
119
119
  (-(?<script>[a-z]{4}))?
120
120
  (-(?<region>(?:[a-z]{2}|[0-9]{3})))?