@vkontakte/videoplayer-core 2.0.113-dev.14316675.0 → 2.0.113-dev.4ab3b06b.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/es2015.cjs.js +3 -3
- package/es2015.esm.js +3 -3
- package/es2018.cjs.js +3 -3
- package/es2018.esm.js +3 -3
- package/esnext.cjs.js +3 -3
- package/esnext.esm.js +3 -3
- package/evergreen.esm.js +3 -3
- package/package.json +2 -2
package/esnext.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/videoplayer-core v2.0.113-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/videoplayer-core v2.0.113-dev.4ab3b06b.0
|
|
3
|
+
* Wed, 09 Oct 2024 08:57:48 GMT
|
|
4
4
|
* https://st.mycdn.me/static/vkontakte-videoplayer/2-0-113/doc/
|
|
5
5
|
*/
|
|
6
|
-
var jg=Object.create;var Ku=Object.defineProperty;var Gg=Object.getOwnPropertyDescriptor;var Wg=Object.getOwnPropertyNames;var Yg=Object.getPrototypeOf,Qg=Object.prototype.hasOwnProperty;var f=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var zg=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Wg(e))!Qg.call(r,a)&&a!==t&&Ku(r,a,{get:()=>e[a],enumerable:!(i=Gg(e,a))||i.enumerable});return r};var Ye=(r,e,t)=>(t=r!=null?jg(Yg(r)):{},zg(e||!r||!r.__esModule?Ku(t,"default",{value:r,enumerable:!0}):t,r));var be=f((QR,ac)=>{"use strict";ac.exports=function(r){try{return!!r()}catch{return!0}}});var Ni=f((zR,sc)=>{"use strict";var rS=be();sc.exports=!rS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var ne=f((KR,uc)=>{"use strict";var nc=Ni(),oc=Function.prototype,Xs=oc.call,aS=nc&&oc.bind.bind(Xs,Xs);uc.exports=nc?aS:function(r){return function(){return Xs.apply(r,arguments)}}});var ii=f((JR,lc)=>{"use strict";var cc=ne(),sS=cc({}.toString),nS=cc("".slice);lc.exports=function(r){return nS(sS(r),8,-1)}});var pc=f((XR,dc)=>{"use strict";var oS=ne(),uS=be(),cS=ii(),Zs=Object,lS=oS("".split);dc.exports=uS(function(){return!Zs("z").propertyIsEnumerable(0)})?function(r){return cS(r)==="String"?lS(r,""):Zs(r)}:Zs});var ri=f((ZR,hc)=>{"use strict";hc.exports=function(r){return r==null}});var Fi=f((eL,fc)=>{"use strict";var dS=ri(),pS=TypeError;fc.exports=function(r){if(dS(r))throw new pS("Can't call method on "+r);return r}});var ai=f((tL,mc)=>{"use strict";var hS=pc(),fS=Fi();mc.exports=function(r){return hS(fS(r))}});var en=f((iL,bc)=>{"use strict";bc.exports=function(){}});var Mt=f((rL,gc)=>{"use strict";gc.exports={}});var j=f((tn,Sc)=>{"use strict";var qi=function(r){return r&&r.Math===Math&&r};Sc.exports=qi(typeof globalThis=="object"&&globalThis)||qi(typeof window=="object"&&window)||qi(typeof self=="object"&&self)||qi(typeof global=="object"&&global)||qi(typeof tn=="object"&&tn)||function(){return this}()||Function("return this")()});var U=f((aL,vc)=>{"use strict";var rn=typeof document=="object"&&document.all;vc.exports=typeof rn>"u"&&rn!==void 0?function(r){return typeof r=="function"||r===rn}:function(r){return typeof r=="function"}});var Ic=f((sL,Tc)=>{"use strict";var mS=j(),bS=U(),yc=mS.WeakMap;Tc.exports=bS(yc)&&/native code/.test(String(yc))});var Ee=f((nL,Ec)=>{"use strict";var gS=U();Ec.exports=function(r){return typeof r=="object"?r!==null:gS(r)}});var xe=f((oL,xc)=>{"use strict";var SS=be();xc.exports=!SS(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var xa=f((uL,Ac)=>{"use strict";var vS=j(),Pc=Ee(),an=vS.document,yS=Pc(an)&&Pc(an.createElement);Ac.exports=function(r){return yS?an.createElement(r):{}}});var sn=f((cL,kc)=>{"use strict";var TS=xe(),IS=be(),ES=xa();kc.exports=!TS&&!IS(function(){return Object.defineProperty(ES("div"),"a",{get:function(){return 7}}).a!==7})});var nn=f((lL,wc)=>{"use strict";var xS=xe(),PS=be();wc.exports=xS&&PS(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Qe=f((dL,Rc)=>{"use strict";var AS=Ee(),kS=String,wS=TypeError;Rc.exports=function(r){if(AS(r))return r;throw new wS(kS(r)+" is not an object")}});var ge=f((pL,Lc)=>{"use strict";var RS=Ni(),Pa=Function.prototype.call;Lc.exports=RS?Pa.bind(Pa):function(){return Pa.apply(Pa,arguments)}});var Aa=f((hL,$c)=>{"use strict";$c.exports={}});var et=f((fL,Cc)=>{"use strict";var on=Aa(),un=j(),LS=U(),Mc=function(r){return LS(r)?r:void 0};Cc.exports=function(r,e){return arguments.length<2?Mc(on[r])||Mc(un[r]):on[r]&&on[r][e]||un[r]&&un[r][e]}});var Ui=f((mL,Dc)=>{"use strict";var $S=ne();Dc.exports=$S({}.isPrototypeOf)});var si=f((bL,Vc)=>{"use strict";var MS=j(),Bc=MS.navigator,Oc=Bc&&Bc.userAgent;Vc.exports=Oc?String(Oc):""});var ln=f((gL,Hc)=>{"use strict";var Uc=j(),cn=si(),_c=Uc.process,Nc=Uc.Deno,Fc=_c&&_c.versions||Nc&&Nc.version,qc=Fc&&Fc.v8,_e,ka;qc&&(_e=qc.split("."),ka=_e[0]>0&&_e[0]<4?1:+(_e[0]+_e[1]));!ka&&cn&&(_e=cn.match(/Edge\/(\d+)/),(!_e||_e[1]>=74)&&(_e=cn.match(/Chrome\/(\d+)/),_e&&(ka=+_e[1])));Hc.exports=ka});var dn=f((SL,Gc)=>{"use strict";var jc=ln(),CS=be(),DS=j(),BS=DS.String;Gc.exports=!!Object.getOwnPropertySymbols&&!CS(function(){var r=Symbol("symbol detection");return!BS(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&jc&&jc<41})});var pn=f((vL,Wc)=>{"use strict";var OS=dn();Wc.exports=OS&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var hn=f((yL,Yc)=>{"use strict";var VS=et(),_S=U(),NS=Ui(),FS=pn(),qS=Object;Yc.exports=FS?function(r){return typeof r=="symbol"}:function(r){var e=VS("Symbol");return _S(e)&&NS(e.prototype,qS(r))}});var Hi=f((TL,Qc)=>{"use strict";var US=String;Qc.exports=function(r){try{return US(r)}catch{return"Object"}}});var tt=f((IL,zc)=>{"use strict";var HS=U(),jS=Hi(),GS=TypeError;zc.exports=function(r){if(HS(r))return r;throw new GS(jS(r)+" is not a function")}});var ji=f((EL,Kc)=>{"use strict";var WS=tt(),YS=ri();Kc.exports=function(r,e){var t=r[e];return YS(t)?void 0:WS(t)}});var Xc=f((xL,Jc)=>{"use strict";var fn=ge(),mn=U(),bn=Ee(),QS=TypeError;Jc.exports=function(r,e){var t,i;if(e==="string"&&mn(t=r.toString)&&!bn(i=fn(t,r))||mn(t=r.valueOf)&&!bn(i=fn(t,r))||e!=="string"&&mn(t=r.toString)&&!bn(i=fn(t,r)))return i;throw new QS("Can't convert object to primitive value")}});var Ne=f((PL,Zc)=>{"use strict";Zc.exports=!0});var il=f((AL,tl)=>{"use strict";var el=j(),zS=Object.defineProperty;tl.exports=function(r,e){try{zS(el,r,{value:e,configurable:!0,writable:!0})}catch{el[r]=e}return e}});var Gi=f((kL,sl)=>{"use strict";var KS=Ne(),JS=j(),XS=il(),rl="__core-js_shared__",al=sl.exports=JS[rl]||XS(rl,{});(al.versions||(al.versions=[])).push({version:"3.38.0",mode:KS?"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 gn=f((wL,ol)=>{"use strict";var nl=Gi();ol.exports=function(r,e){return nl[r]||(nl[r]=e||{})}});var Wi=f((RL,ul)=>{"use strict";var ZS=Fi(),ev=Object;ul.exports=function(r){return ev(ZS(r))}});var Fe=f((LL,cl)=>{"use strict";var tv=ne(),iv=Wi(),rv=tv({}.hasOwnProperty);cl.exports=Object.hasOwn||function(e,t){return rv(iv(e),t)}});var Sn=f(($L,ll)=>{"use strict";var av=ne(),sv=0,nv=Math.random(),ov=av(1 .toString);ll.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+ov(++sv+nv,36)}});var te=f((ML,pl)=>{"use strict";var uv=j(),cv=gn(),dl=Fe(),lv=Sn(),dv=dn(),pv=pn(),ni=uv.Symbol,vn=cv("wks"),hv=pv?ni.for||ni:ni&&ni.withoutSetter||lv;pl.exports=function(r){return dl(vn,r)||(vn[r]=dv&&dl(ni,r)?ni[r]:hv("Symbol."+r)),vn[r]}});var bl=f((CL,ml)=>{"use strict";var fv=ge(),hl=Ee(),fl=hn(),mv=ji(),bv=Xc(),gv=te(),Sv=TypeError,vv=gv("toPrimitive");ml.exports=function(r,e){if(!hl(r)||fl(r))return r;var t=mv(r,vv),i;if(t){if(e===void 0&&(e="default"),i=fv(t,r,e),!hl(i)||fl(i))return i;throw new Sv("Can't convert object to primitive value")}return e===void 0&&(e="number"),bv(r,e)}});var yn=f((DL,gl)=>{"use strict";var yv=bl(),Tv=hn();gl.exports=function(r){var e=yv(r,"string");return Tv(e)?e:e+""}});var Ct=f(vl=>{"use strict";var Iv=xe(),Ev=sn(),xv=nn(),wa=Qe(),Sl=yn(),Pv=TypeError,Tn=Object.defineProperty,Av=Object.getOwnPropertyDescriptor,In="enumerable",En="configurable",xn="writable";vl.f=Iv?xv?function(e,t,i){if(wa(e),t=Sl(t),wa(i),typeof e=="function"&&t==="prototype"&&"value"in i&&xn in i&&!i[xn]){var a=Av(e,t);a&&a[xn]&&(e[t]=i.value,i={configurable:En in i?i[En]:a[En],enumerable:In in i?i[In]:a[In],writable:!1})}return Tn(e,t,i)}:Tn:function(e,t,i){if(wa(e),t=Sl(t),wa(i),Ev)try{return Tn(e,t,i)}catch{}if("get"in i||"set"in i)throw new Pv("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Yi=f((OL,yl)=>{"use strict";yl.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var oi=f((VL,Tl)=>{"use strict";var kv=xe(),wv=Ct(),Rv=Yi();Tl.exports=kv?function(r,e,t){return wv.f(r,e,Rv(1,t))}:function(r,e,t){return r[e]=t,r}});var Ra=f((_L,El)=>{"use strict";var Lv=gn(),$v=Sn(),Il=Lv("keys");El.exports=function(r){return Il[r]||(Il[r]=$v(r))}});var La=f((NL,xl)=>{"use strict";xl.exports={}});var wn=f((FL,kl)=>{"use strict";var Mv=Ic(),Al=j(),Cv=Ee(),Dv=oi(),Pn=Fe(),An=Gi(),Bv=Ra(),Ov=La(),Pl="Object already initialized",kn=Al.TypeError,Vv=Al.WeakMap,$a,Qi,Ma,_v=function(r){return Ma(r)?Qi(r):$a(r,{})},Nv=function(r){return function(e){var t;if(!Cv(e)||(t=Qi(e)).type!==r)throw new kn("Incompatible receiver, "+r+" required");return t}};Mv||An.state?(qe=An.state||(An.state=new Vv),qe.get=qe.get,qe.has=qe.has,qe.set=qe.set,$a=function(r,e){if(qe.has(r))throw new kn(Pl);return e.facade=r,qe.set(r,e),e},Qi=function(r){return qe.get(r)||{}},Ma=function(r){return qe.has(r)}):(Dt=Bv("state"),Ov[Dt]=!0,$a=function(r,e){if(Pn(r,Dt))throw new kn(Pl);return e.facade=r,Dv(r,Dt,e),e},Qi=function(r){return Pn(r,Dt)?r[Dt]:{}},Ma=function(r){return Pn(r,Dt)});var qe,Dt;kl.exports={set:$a,get:Qi,has:Ma,enforce:_v,getterFor:Nv}});var Rn=f((qL,$l)=>{"use strict";var Fv=Ni(),Ll=Function.prototype,wl=Ll.apply,Rl=Ll.call;$l.exports=typeof Reflect=="object"&&Reflect.apply||(Fv?Rl.bind(wl):function(){return Rl.apply(wl,arguments)})});var Ln=f((UL,Ml)=>{"use strict";var qv=ii(),Uv=ne();Ml.exports=function(r){if(qv(r)==="Function")return Uv(r)}});var Ol=f(Bl=>{"use strict";var Cl={}.propertyIsEnumerable,Dl=Object.getOwnPropertyDescriptor,Hv=Dl&&!Cl.call({1:2},1);Bl.f=Hv?function(e){var t=Dl(this,e);return!!t&&t.enumerable}:Cl});var Nl=f(_l=>{"use strict";var jv=xe(),Gv=ge(),Wv=Ol(),Yv=Yi(),Qv=ai(),zv=yn(),Kv=Fe(),Jv=sn(),Vl=Object.getOwnPropertyDescriptor;_l.f=jv?Vl:function(e,t){if(e=Qv(e),t=zv(t),Jv)try{return Vl(e,t)}catch{}if(Kv(e,t))return Yv(!Gv(Wv.f,e,t),e[t])}});var $n=f((GL,Fl)=>{"use strict";var Xv=be(),Zv=U(),ey=/#|\.prototype\./,zi=function(r,e){var t=iy[ty(r)];return t===ay?!0:t===ry?!1:Zv(e)?Xv(e):!!e},ty=zi.normalize=function(r){return String(r).replace(ey,".").toLowerCase()},iy=zi.data={},ry=zi.NATIVE="N",ay=zi.POLYFILL="P";Fl.exports=zi});var Ki=f((WL,Ul)=>{"use strict";var ql=Ln(),sy=tt(),ny=Ni(),oy=ql(ql.bind);Ul.exports=function(r,e){return sy(r),e===void 0?r:ny?oy(r,e):function(){return r.apply(e,arguments)}}});var Pe=f((YL,jl)=>{"use strict";var Ji=j(),uy=Rn(),cy=Ln(),ly=U(),dy=Nl().f,py=$n(),ui=Aa(),hy=Ki(),ci=oi(),Hl=Fe();Gi();var fy=function(r){var e=function(t,i,a){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,a)}return uy(r,this,arguments)};return e.prototype=r.prototype,e};jl.exports=function(r,e){var t=r.target,i=r.global,a=r.stat,s=r.proto,n=i?Ji:a?Ji[t]:Ji[t]&&Ji[t].prototype,o=i?ui:ui[t]||ci(ui,t,{})[t],c=o.prototype,u,d,l,p,h,m,b,g,v;for(p in e)u=py(i?p:t+(a?".":"#")+p,r.forced),d=!u&&n&&Hl(n,p),m=o[p],d&&(r.dontCallGetSet?(v=dy(n,p),b=v&&v.value):b=n[p]),h=d&&b?b:e[p],!(!u&&!s&&typeof m==typeof h)&&(r.bind&&d?g=hy(h,Ji):r.wrap&&d?g=fy(h):s&&ly(h)?g=cy(h):g=h,(r.sham||h&&h.sham||m&&m.sham)&&ci(g,"sham",!0),ci(o,p,g),s&&(l=t+"Prototype",Hl(ui,l)||ci(ui,l,{}),ci(ui[l],p,h),r.real&&c&&(u||!c[p])&&ci(c,p,h)))}});var Yl=f((QL,Wl)=>{"use strict";var Mn=xe(),my=Fe(),Gl=Function.prototype,by=Mn&&Object.getOwnPropertyDescriptor,Cn=my(Gl,"name"),gy=Cn&&function(){}.name==="something",Sy=Cn&&(!Mn||Mn&&by(Gl,"name").configurable);Wl.exports={EXISTS:Cn,PROPER:gy,CONFIGURABLE:Sy}});var zl=f((zL,Ql)=>{"use strict";var vy=Math.ceil,yy=Math.floor;Ql.exports=Math.trunc||function(e){var t=+e;return(t>0?yy:vy)(t)}});var Ca=f((KL,Kl)=>{"use strict";var Ty=zl();Kl.exports=function(r){var e=+r;return e!==e||e===0?0:Ty(e)}});var Xl=f((JL,Jl)=>{"use strict";var Iy=Ca(),Ey=Math.max,xy=Math.min;Jl.exports=function(r,e){var t=Iy(r);return t<0?Ey(t+e,0):xy(t,e)}});var ed=f((XL,Zl)=>{"use strict";var Py=Ca(),Ay=Math.min;Zl.exports=function(r){var e=Py(r);return e>0?Ay(e,9007199254740991):0}});var Da=f((ZL,td)=>{"use strict";var ky=ed();td.exports=function(r){return ky(r.length)}});var ad=f((e$,rd)=>{"use strict";var wy=ai(),Ry=Xl(),Ly=Da(),id=function(r){return function(e,t,i){var a=wy(e),s=Ly(a);if(s===0)return!r&&-1;var n=Ry(i,s),o;if(r&&t!==t){for(;s>n;)if(o=a[n++],o!==o)return!0}else for(;s>n;n++)if((r||n in a)&&a[n]===t)return r||n||0;return!r&&-1}};rd.exports={includes:id(!0),indexOf:id(!1)}});var od=f((t$,nd)=>{"use strict";var $y=ne(),Dn=Fe(),My=ai(),Cy=ad().indexOf,Dy=La(),sd=$y([].push);nd.exports=function(r,e){var t=My(r),i=0,a=[],s;for(s in t)!Dn(Dy,s)&&Dn(t,s)&&sd(a,s);for(;e.length>i;)Dn(t,s=e[i++])&&(~Cy(a,s)||sd(a,s));return a}});var Bn=f((i$,ud)=>{"use strict";ud.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ld=f((r$,cd)=>{"use strict";var By=od(),Oy=Bn();cd.exports=Object.keys||function(e){return By(e,Oy)}});var pd=f(dd=>{"use strict";var Vy=xe(),_y=nn(),Ny=Ct(),Fy=Qe(),qy=ai(),Uy=ld();dd.f=Vy&&!_y?Object.defineProperties:function(e,t){Fy(e);for(var i=qy(t),a=Uy(t),s=a.length,n=0,o;s>n;)Ny.f(e,o=a[n++],i[o]);return e}});var On=f((s$,hd)=>{"use strict";var Hy=et();hd.exports=Hy("document","documentElement")});var Fn=f((n$,yd)=>{"use strict";var jy=Qe(),Gy=pd(),fd=Bn(),Wy=La(),Yy=On(),Qy=xa(),zy=Ra(),md=">",bd="<",_n="prototype",Nn="script",Sd=zy("IE_PROTO"),Vn=function(){},vd=function(r){return bd+Nn+md+r+bd+"/"+Nn+md},gd=function(r){r.write(vd("")),r.close();var e=r.parentWindow.Object;return r=null,e},Ky=function(){var r=Qy("iframe"),e="java"+Nn+":",t;return r.style.display="none",Yy.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(vd("document.F=Object")),t.close(),t.F},Ba,Oa=function(){try{Ba=new ActiveXObject("htmlfile")}catch{}Oa=typeof document<"u"?document.domain&&Ba?gd(Ba):Ky():gd(Ba);for(var r=fd.length;r--;)delete Oa[_n][fd[r]];return Oa()};Wy[Sd]=!0;yd.exports=Object.create||function(e,t){var i;return e!==null?(Vn[_n]=jy(e),i=new Vn,Vn[_n]=null,i[Sd]=e):i=Oa(),t===void 0?i:Gy.f(i,t)}});var Id=f((o$,Td)=>{"use strict";var Jy=be();Td.exports=!Jy(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Un=f((u$,xd)=>{"use strict";var Xy=Fe(),Zy=U(),eT=Wi(),tT=Ra(),iT=Id(),Ed=tT("IE_PROTO"),qn=Object,rT=qn.prototype;xd.exports=iT?qn.getPrototypeOf:function(r){var e=eT(r);if(Xy(e,Ed))return e[Ed];var t=e.constructor;return Zy(t)&&e instanceof t?t.prototype:e instanceof qn?rT:null}});var li=f((c$,Pd)=>{"use strict";var aT=oi();Pd.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:aT(r,e,t),r}});var Wn=f((l$,wd)=>{"use strict";var sT=be(),nT=U(),oT=Ee(),uT=Fn(),Ad=Un(),cT=li(),lT=te(),dT=Ne(),Gn=lT("iterator"),kd=!1,it,Hn,jn;[].keys&&(jn=[].keys(),"next"in jn?(Hn=Ad(Ad(jn)),Hn!==Object.prototype&&(it=Hn)):kd=!0);var pT=!oT(it)||sT(function(){var r={};return it[Gn].call(r)!==r});pT?it={}:dT&&(it=uT(it));nT(it[Gn])||cT(it,Gn,function(){return this});wd.exports={IteratorPrototype:it,BUGGY_SAFARI_ITERATORS:kd}});var Va=f((d$,Ld)=>{"use strict";var hT=te(),fT=hT("toStringTag"),Rd={};Rd[fT]="z";Ld.exports=String(Rd)==="[object z]"});var Xi=f((p$,$d)=>{"use strict";var mT=Va(),bT=U(),_a=ii(),gT=te(),ST=gT("toStringTag"),vT=Object,yT=_a(function(){return arguments}())==="Arguments",TT=function(r,e){try{return r[e]}catch{}};$d.exports=mT?_a:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=TT(e=vT(r),ST))=="string"?t:yT?_a(e):(i=_a(e))==="Object"&&bT(e.callee)?"Arguments":i}});var Cd=f((h$,Md)=>{"use strict";var IT=Va(),ET=Xi();Md.exports=IT?{}.toString:function(){return"[object "+ET(this)+"]"}});var Zi=f((f$,Bd)=>{"use strict";var xT=Va(),PT=Ct().f,AT=oi(),kT=Fe(),wT=Cd(),RT=te(),Dd=RT("toStringTag");Bd.exports=function(r,e,t,i){var a=t?r:r&&r.prototype;a&&(kT(a,Dd)||PT(a,Dd,{configurable:!0,value:e}),i&&!xT&&AT(a,"toString",wT))}});var Vd=f((m$,Od)=>{"use strict";var LT=Wn().IteratorPrototype,$T=Fn(),MT=Yi(),CT=Zi(),DT=Mt(),BT=function(){return this};Od.exports=function(r,e,t,i){var a=e+" Iterator";return r.prototype=$T(LT,{next:MT(+!i,t)}),CT(r,a,!1,!0),DT[a]=BT,r}});var Nd=f((b$,_d)=>{"use strict";var OT=ne(),VT=tt();_d.exports=function(r,e,t){try{return OT(VT(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var qd=f((g$,Fd)=>{"use strict";var _T=Ee();Fd.exports=function(r){return _T(r)||r===null}});var Hd=f((S$,Ud)=>{"use strict";var NT=qd(),FT=String,qT=TypeError;Ud.exports=function(r){if(NT(r))return r;throw new qT("Can't set "+FT(r)+" as a prototype")}});var Yn=f((v$,jd)=>{"use strict";var UT=Nd(),HT=Ee(),jT=Fi(),GT=Hd();jd.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=UT(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(a,s){return jT(a),GT(s),HT(a)&&(r?t(a,s):a.__proto__=s),a}}():void 0)});var tp=f((y$,ep)=>{"use strict";var WT=Pe(),YT=ge(),Na=Ne(),Xd=Yl(),QT=U(),zT=Vd(),Gd=Un(),Wd=Yn(),KT=Zi(),JT=oi(),Qn=li(),XT=te(),Yd=Mt(),Zd=Wn(),ZT=Xd.PROPER,eI=Xd.CONFIGURABLE,Qd=Zd.IteratorPrototype,Fa=Zd.BUGGY_SAFARI_ITERATORS,er=XT("iterator"),zd="keys",tr="values",Kd="entries",Jd=function(){return this};ep.exports=function(r,e,t,i,a,s,n){zT(t,e,i);var o=function(v){if(v===a&&p)return p;if(!Fa&&v&&v in d)return d[v];switch(v){case zd:return function(){return new t(this,v)};case tr:return function(){return new t(this,v)};case Kd:return function(){return new t(this,v)}}return function(){return new t(this)}},c=e+" Iterator",u=!1,d=r.prototype,l=d[er]||d["@@iterator"]||a&&d[a],p=!Fa&&l||o(a),h=e==="Array"&&d.entries||l,m,b,g;if(h&&(m=Gd(h.call(new r)),m!==Object.prototype&&m.next&&(!Na&&Gd(m)!==Qd&&(Wd?Wd(m,Qd):QT(m[er])||Qn(m,er,Jd)),KT(m,c,!0,!0),Na&&(Yd[c]=Jd))),ZT&&a===tr&&l&&l.name!==tr&&(!Na&&eI?JT(d,"name",tr):(u=!0,p=function(){return YT(l,this)})),a)if(b={values:o(tr),keys:s?p:o(zd),entries:o(Kd)},n)for(g in b)(Fa||u||!(g in d))&&Qn(d,g,b[g]);else WT({target:e,proto:!0,forced:Fa||u},b);return(!Na||n)&&d[er]!==p&&Qn(d,er,p,{name:a}),Yd[e]=p,b}});var rp=f((T$,ip)=>{"use strict";ip.exports=function(r,e){return{value:r,done:e}}});var Kn=f((I$,up)=>{"use strict";var tI=ai(),zn=en(),ap=Mt(),np=wn(),iI=Ct().f,rI=tp(),qa=rp(),aI=Ne(),sI=xe(),op="Array Iterator",nI=np.set,oI=np.getterFor(op);up.exports=rI(Array,"Array",function(r,e){nI(this,{type:op,target:tI(r),index:0,kind:e})},function(){var r=oI(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,qa(void 0,!0);switch(r.kind){case"keys":return qa(t,!1);case"values":return qa(e[t],!1)}return qa([t,e[t]],!1)},"values");var sp=ap.Arguments=ap.Array;zn("keys");zn("values");zn("entries");if(!aI&&sI&&sp.name!=="values")try{iI(sp,"name",{value:"values"})}catch{}});var lp=f((E$,cp)=>{"use strict";var uI=te(),cI=Mt(),lI=uI("iterator"),dI=Array.prototype;cp.exports=function(r){return r!==void 0&&(cI.Array===r||dI[lI]===r)}});var Jn=f((x$,pp)=>{"use strict";var pI=Xi(),dp=ji(),hI=ri(),fI=Mt(),mI=te(),bI=mI("iterator");pp.exports=function(r){if(!hI(r))return dp(r,bI)||dp(r,"@@iterator")||fI[pI(r)]}});var fp=f((P$,hp)=>{"use strict";var gI=ge(),SI=tt(),vI=Qe(),yI=Hi(),TI=Jn(),II=TypeError;hp.exports=function(r,e){var t=arguments.length<2?TI(r):e;if(SI(t))return vI(gI(t,r));throw new II(yI(r)+" is not iterable")}});var gp=f((A$,bp)=>{"use strict";var EI=ge(),mp=Qe(),xI=ji();bp.exports=function(r,e,t){var i,a;mp(r);try{if(i=xI(r,"return"),!i){if(e==="throw")throw t;return t}i=EI(i,r)}catch(s){a=!0,i=s}if(e==="throw")throw t;if(a)throw i;return mp(i),t}});var Ha=f((k$,Tp)=>{"use strict";var PI=Ki(),AI=ge(),kI=Qe(),wI=Hi(),RI=lp(),LI=Da(),Sp=Ui(),$I=fp(),MI=Jn(),vp=gp(),CI=TypeError,Ua=function(r,e){this.stopped=r,this.result=e},yp=Ua.prototype;Tp.exports=function(r,e,t){var i=t&&t.that,a=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),c=PI(e,i),u,d,l,p,h,m,b,g=function(k){return u&&vp(u,"normal",k),new Ua(!0,k)},v=function(k){return a?(kI(k),o?c(k[0],k[1],g):c(k[0],k[1])):o?c(k,g):c(k)};if(s)u=r.iterator;else if(n)u=r;else{if(d=MI(r),!d)throw new CI(wI(r)+" is not iterable");if(RI(d)){for(l=0,p=LI(r);p>l;l++)if(h=v(r[l]),h&&Sp(yp,h))return h;return new Ua(!1)}u=$I(r,d)}for(m=s?r.next:u.next;!(b=AI(m,u)).done;){try{h=v(b.value)}catch(k){vp(u,"throw",k)}if(typeof h=="object"&&h&&Sp(yp,h))return h}return new Ua(!1)}});var Ep=f((w$,Ip)=>{"use strict";var DI=xe(),BI=Ct(),OI=Yi();Ip.exports=function(r,e,t){DI?BI.f(r,e,OI(0,t)):r[e]=t}});var xp=f(()=>{"use strict";var VI=Pe(),_I=Ha(),NI=Ep();VI({target:"Object",stat:!0},{fromEntries:function(e){var t={};return _I(e,function(i,a){NI(t,i,a)},{AS_ENTRIES:!0}),t}})});var Ap=f(($$,Pp)=>{"use strict";Kn();xp();var FI=Aa();Pp.exports=FI.Object.fromEntries});var wp=f((M$,kp)=>{"use strict";kp.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 Lp=f(()=>{"use strict";Kn();var qI=wp(),UI=j(),HI=Zi(),Rp=Mt();for(ja in qI)HI(UI[ja],ja),Rp[ja]=Rp.Array;var ja});var Mp=f((B$,$p)=>{"use strict";var jI=Ap();Lp();$p.exports=jI});var Xn=f((O$,Cp)=>{"use strict";var GI=Mp();Cp.exports=GI});var Dp=f(()=>{"use strict"});var Zn=f((N$,Bp)=>{"use strict";var ir=j(),WI=si(),YI=ii(),Ga=function(r){return WI.slice(0,r.length)===r};Bp.exports=function(){return Ga("Bun/")?"BUN":Ga("Cloudflare-Workers")?"CLOUDFLARE":Ga("Deno/")?"DENO":Ga("Node.js/")?"NODE":ir.Bun&&typeof Bun.version=="string"?"BUN":ir.Deno&&typeof Deno.version=="object"?"DENO":YI(ir.process)==="process"?"NODE":ir.window&&ir.document?"BROWSER":"REST"}()});var Wa=f((F$,Op)=>{"use strict";var QI=Zn();Op.exports=QI==="NODE"});var _p=f((q$,Vp)=>{"use strict";var zI=Ct();Vp.exports=function(r,e,t){return zI.f(r,e,t)}});var qp=f((U$,Fp)=>{"use strict";var KI=et(),JI=_p(),XI=te(),ZI=xe(),Np=XI("species");Fp.exports=function(r){var e=KI(r);ZI&&e&&!e[Np]&&JI(e,Np,{configurable:!0,get:function(){return this}})}});var Hp=f((H$,Up)=>{"use strict";var eE=Ui(),tE=TypeError;Up.exports=function(r,e){if(eE(e,r))return r;throw new tE("Incorrect invocation")}});var to=f((j$,jp)=>{"use strict";var iE=ne(),rE=U(),eo=Gi(),aE=iE(Function.toString);rE(eo.inspectSource)||(eo.inspectSource=function(r){return aE(r)});jp.exports=eo.inspectSource});var Kp=f((G$,zp)=>{"use strict";var sE=ne(),nE=be(),Gp=U(),oE=Xi(),uE=et(),cE=to(),Wp=function(){},Yp=uE("Reflect","construct"),io=/^\s*(?:class|function)\b/,lE=sE(io.exec),dE=!io.test(Wp),rr=function(e){if(!Gp(e))return!1;try{return Yp(Wp,[],e),!0}catch{return!1}},Qp=function(e){if(!Gp(e))return!1;switch(oE(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return dE||!!lE(io,cE(e))}catch{return!0}};Qp.sham=!0;zp.exports=!Yp||nE(function(){var r;return rr(rr.call)||!rr(Object)||!rr(function(){r=!0})||r})?Qp:rr});var Xp=f((W$,Jp)=>{"use strict";var pE=Kp(),hE=Hi(),fE=TypeError;Jp.exports=function(r){if(pE(r))return r;throw new fE(hE(r)+" is not a constructor")}});var ro=f((Y$,eh)=>{"use strict";var Zp=Qe(),mE=Xp(),bE=ri(),gE=te(),SE=gE("species");eh.exports=function(r,e){var t=Zp(r).constructor,i;return t===void 0||bE(i=Zp(t)[SE])?e:mE(i)}});var ih=f((Q$,th)=>{"use strict";var vE=ne();th.exports=vE([].slice)});var ah=f((z$,rh)=>{"use strict";var yE=TypeError;rh.exports=function(r,e){if(r<e)throw new yE("Not enough arguments");return r}});var ao=f((K$,sh)=>{"use strict";var TE=si();sh.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(TE)});var fo=f((J$,fh)=>{"use strict";var Se=j(),IE=Rn(),EE=Ki(),nh=U(),xE=Fe(),hh=be(),oh=On(),PE=ih(),uh=xa(),AE=ah(),kE=ao(),wE=Wa(),lo=Se.setImmediate,po=Se.clearImmediate,RE=Se.process,so=Se.Dispatch,LE=Se.Function,ch=Se.MessageChannel,$E=Se.String,no=0,ar={},lh="onreadystatechange",sr,Bt,oo,uo;hh(function(){sr=Se.location});var ho=function(r){if(xE(ar,r)){var e=ar[r];delete ar[r],e()}},co=function(r){return function(){ho(r)}},dh=function(r){ho(r.data)},ph=function(r){Se.postMessage($E(r),sr.protocol+"//"+sr.host)};(!lo||!po)&&(lo=function(e){AE(arguments.length,1);var t=nh(e)?e:LE(e),i=PE(arguments,1);return ar[++no]=function(){IE(t,void 0,i)},Bt(no),no},po=function(e){delete ar[e]},wE?Bt=function(r){RE.nextTick(co(r))}:so&&so.now?Bt=function(r){so.now(co(r))}:ch&&!kE?(oo=new ch,uo=oo.port2,oo.port1.onmessage=dh,Bt=EE(uo.postMessage,uo)):Se.addEventListener&&nh(Se.postMessage)&&!Se.importScripts&&sr&&sr.protocol!=="file:"&&!hh(ph)?(Bt=ph,Se.addEventListener("message",dh,!1)):lh in uh("script")?Bt=function(r){oh.appendChild(uh("script"))[lh]=function(){oh.removeChild(this),ho(r)}}:Bt=function(r){setTimeout(co(r),0)});fh.exports={set:lo,clear:po}});var gh=f((X$,bh)=>{"use strict";var mh=j(),ME=xe(),CE=Object.getOwnPropertyDescriptor;bh.exports=function(r){if(!ME)return mh[r];var e=CE(mh,r);return e&&e.value}});var mo=f((Z$,vh)=>{"use strict";var Sh=function(){this.head=null,this.tail=null};Sh.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};vh.exports=Sh});var Th=f((eM,yh)=>{"use strict";var DE=si();yh.exports=/ipad|iphone|ipod/i.test(DE)&&typeof Pebble<"u"});var Eh=f((tM,Ih)=>{"use strict";var BE=si();Ih.exports=/web0s(?!.*chrome)/i.test(BE)});var Lh=f((iM,Rh)=>{"use strict";var pi=j(),OE=gh(),xh=Ki(),bo=fo().set,VE=mo(),_E=ao(),NE=Th(),FE=Eh(),go=Wa(),Ph=pi.MutationObserver||pi.WebKitMutationObserver,Ah=pi.document,kh=pi.process,Ya=pi.Promise,yo=OE("queueMicrotask"),di,So,vo,Qa,wh;yo||(nr=new VE,or=function(){var r,e;for(go&&(r=kh.domain)&&r.exit();e=nr.get();)try{e()}catch(t){throw nr.head&&di(),t}r&&r.enter()},!_E&&!go&&!FE&&Ph&&Ah?(So=!0,vo=Ah.createTextNode(""),new Ph(or).observe(vo,{characterData:!0}),di=function(){vo.data=So=!So}):!NE&&Ya&&Ya.resolve?(Qa=Ya.resolve(void 0),Qa.constructor=Ya,wh=xh(Qa.then,Qa),di=function(){wh(or)}):go?di=function(){kh.nextTick(or)}:(bo=xh(bo,pi),di=function(){bo(or)}),yo=function(r){nr.head||di(),nr.add(r)});var nr,or;Rh.exports=yo});var Mh=f((rM,$h)=>{"use strict";$h.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var za=f((aM,Ch)=>{"use strict";Ch.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Ot=f((sM,Dh)=>{"use strict";var qE=j();Dh.exports=qE.Promise});var hi=f((nM,_h)=>{"use strict";var UE=j(),ur=Ot(),HE=U(),jE=$n(),GE=to(),WE=te(),Bh=Zn(),YE=Ne(),To=ln(),Oh=ur&&ur.prototype,QE=WE("species"),Io=!1,Vh=HE(UE.PromiseRejectionEvent),zE=jE("Promise",function(){var r=GE(ur),e=r!==String(ur);if(!e&&To===66||YE&&!(Oh.catch&&Oh.finally))return!0;if(!To||To<51||!/native code/.test(r)){var t=new ur(function(s){s(1)}),i=function(s){s(function(){},function(){})},a=t.constructor={};if(a[QE]=i,Io=t.then(function(){})instanceof i,!Io)return!0}return!e&&(Bh==="BROWSER"||Bh==="DENO")&&!Vh});_h.exports={CONSTRUCTOR:zE,REJECTION_EVENT:Vh,SUBCLASSING:Io}});var fi=f((oM,Fh)=>{"use strict";var Nh=tt(),KE=TypeError,JE=function(r){var e,t;this.promise=new r(function(i,a){if(e!==void 0||t!==void 0)throw new KE("Bad Promise constructor");e=i,t=a}),this.resolve=Nh(e),this.reject=Nh(t)};Fh.exports.f=function(r){return new JE(r)}});var nf=f(()=>{"use strict";var XE=Pe(),ZE=Ne(),Za=Wa(),bt=j(),Si=ge(),qh=li(),Uh=Yn(),ex=Zi(),tx=qp(),ix=tt(),Xa=U(),rx=Ee(),ax=Hp(),sx=ro(),Yh=fo().set,ko=Lh(),nx=Mh(),ox=za(),ux=mo(),Qh=wn(),es=Ot(),wo=hi(),zh=fi(),ts="Promise",Kh=wo.CONSTRUCTOR,cx=wo.REJECTION_EVENT,lx=wo.SUBCLASSING,Eo=Qh.getterFor(ts),dx=Qh.set,mi=es&&es.prototype,Vt=es,Ka=mi,Jh=bt.TypeError,xo=bt.document,Ro=bt.process,Po=zh.f,px=Po,hx=!!(xo&&xo.createEvent&&bt.dispatchEvent),Xh="unhandledrejection",fx="rejectionhandled",Hh=0,Zh=1,mx=2,Lo=1,ef=2,Ja,jh,bx,Gh,tf=function(r){var e;return rx(r)&&Xa(e=r.then)?e:!1},rf=function(r,e){var t=e.value,i=e.state===Zh,a=i?r.ok:r.fail,s=r.resolve,n=r.reject,o=r.domain,c,u,d;try{a?(i||(e.rejection===ef&&Sx(e),e.rejection=Lo),a===!0?c=t:(o&&o.enter(),c=a(t),o&&(o.exit(),d=!0)),c===r.promise?n(new Jh("Promise-chain cycle")):(u=tf(c))?Si(u,c,s,n):s(c)):n(t)}catch(l){o&&!d&&o.exit(),n(l)}},af=function(r,e){r.notified||(r.notified=!0,ko(function(){for(var t=r.reactions,i;i=t.get();)rf(i,r);r.notified=!1,e&&!r.rejection&&gx(r)}))},sf=function(r,e,t){var i,a;hx?(i=xo.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),bt.dispatchEvent(i)):i={promise:e,reason:t},!cx&&(a=bt["on"+r])?a(i):r===Xh&&nx("Unhandled promise rejection",t)},gx=function(r){Si(Yh,bt,function(){var e=r.facade,t=r.value,i=Wh(r),a;if(i&&(a=ox(function(){Za?Ro.emit("unhandledRejection",t,e):sf(Xh,e,t)}),r.rejection=Za||Wh(r)?ef:Lo,a.error))throw a.value})},Wh=function(r){return r.rejection!==Lo&&!r.parent},Sx=function(r){Si(Yh,bt,function(){var e=r.facade;Za?Ro.emit("rejectionHandled",e):sf(fx,e,r.value)})},bi=function(r,e,t){return function(i){r(e,i,t)}},gi=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=mx,af(r,!0))},Ao=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Jh("Promise can't be resolved itself");var i=tf(e);i?ko(function(){var a={done:!1};try{Si(i,e,bi(Ao,a,r),bi(gi,a,r))}catch(s){gi(a,s,r)}}):(r.value=e,r.state=Zh,af(r,!1))}catch(a){gi({done:!1},a,r)}}};if(Kh&&(Vt=function(e){ax(this,Ka),ix(e),Si(Ja,this);var t=Eo(this);try{e(bi(Ao,t),bi(gi,t))}catch(i){gi(t,i)}},Ka=Vt.prototype,Ja=function(e){dx(this,{type:ts,done:!1,notified:!1,parent:!1,reactions:new ux,rejection:!1,state:Hh,value:void 0})},Ja.prototype=qh(Ka,"then",function(e,t){var i=Eo(this),a=Po(sx(this,Vt));return i.parent=!0,a.ok=Xa(e)?e:!0,a.fail=Xa(t)&&t,a.domain=Za?Ro.domain:void 0,i.state===Hh?i.reactions.add(a):ko(function(){rf(a,i)}),a.promise}),jh=function(){var r=new Ja,e=Eo(r);this.promise=r,this.resolve=bi(Ao,e),this.reject=bi(gi,e)},zh.f=Po=function(r){return r===Vt||r===bx?new jh(r):px(r)},!ZE&&Xa(es)&&mi!==Object.prototype)){Gh=mi.then,lx||qh(mi,"then",function(e,t){var i=this;return new Vt(function(a,s){Si(Gh,i,a,s)}).then(e,t)},{unsafe:!0});try{delete mi.constructor}catch{}Uh&&Uh(mi,Ka)}XE({global:!0,constructor:!0,wrap:!0,forced:Kh},{Promise:Vt});ex(Vt,ts,!1,!0);tx(ts)});var df=f((lM,lf)=>{"use strict";var vx=te(),uf=vx("iterator"),cf=!1;try{of=0,$o={next:function(){return{done:!!of++}},return:function(){cf=!0}},$o[uf]=function(){return this},Array.from($o,function(){throw 2})}catch{}var of,$o;lf.exports=function(r,e){try{if(!e&&!cf)return!1}catch{return!1}var t=!1;try{var i={};i[uf]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var Mo=f((dM,pf)=>{"use strict";var yx=Ot(),Tx=df(),Ix=hi().CONSTRUCTOR;pf.exports=Ix||!Tx(function(r){yx.all(r).then(void 0,function(){})})});var hf=f(()=>{"use strict";var Ex=Pe(),xx=ge(),Px=tt(),Ax=fi(),kx=za(),wx=Ha(),Rx=Mo();Ex({target:"Promise",stat:!0,forced:Rx},{all:function(e){var t=this,i=Ax.f(t),a=i.resolve,s=i.reject,n=kx(function(){var o=Px(t.resolve),c=[],u=0,d=1;wx(e,function(l){var p=u++,h=!1;d++,xx(o,t,l).then(function(m){h||(h=!0,c[p]=m,--d||a(c))},s)}),--d||a(c)});return n.error&&s(n.value),i.promise}})});var mf=f(()=>{"use strict";var Lx=Pe(),$x=Ne(),Mx=hi().CONSTRUCTOR,Do=Ot(),Cx=et(),Dx=U(),Bx=li(),ff=Do&&Do.prototype;Lx({target:"Promise",proto:!0,forced:Mx,real:!0},{catch:function(r){return this.then(void 0,r)}});!$x&&Dx(Do)&&(Co=Cx("Promise").prototype.catch,ff.catch!==Co&&Bx(ff,"catch",Co,{unsafe:!0}));var Co});var bf=f(()=>{"use strict";var Ox=Pe(),Vx=ge(),_x=tt(),Nx=fi(),Fx=za(),qx=Ha(),Ux=Mo();Ox({target:"Promise",stat:!0,forced:Ux},{race:function(e){var t=this,i=Nx.f(t),a=i.reject,s=Fx(function(){var n=_x(t.resolve);qx(e,function(o){Vx(n,t,o).then(i.resolve,a)})});return s.error&&a(s.value),i.promise}})});var gf=f(()=>{"use strict";var Hx=Pe(),jx=fi(),Gx=hi().CONSTRUCTOR;Hx({target:"Promise",stat:!0,forced:Gx},{reject:function(e){var t=jx.f(this),i=t.reject;return i(e),t.promise}})});var Bo=f((yM,Sf)=>{"use strict";var Wx=Qe(),Yx=Ee(),Qx=fi();Sf.exports=function(r,e){if(Wx(r),Yx(e)&&e.constructor===r)return e;var t=Qx.f(r),i=t.resolve;return i(e),t.promise}});var Tf=f(()=>{"use strict";var zx=Pe(),Kx=et(),vf=Ne(),Jx=Ot(),yf=hi().CONSTRUCTOR,Xx=Bo(),Zx=Kx("Promise"),eP=vf&&!yf;zx({target:"Promise",stat:!0,forced:vf||yf},{resolve:function(e){return Xx(eP&&this===Zx?Jx:this,e)}})});var If=f(()=>{"use strict";nf();hf();mf();bf();gf();Tf()});var Af=f(()=>{"use strict";var tP=Pe(),iP=Ne(),is=Ot(),rP=be(),xf=et(),Pf=U(),aP=ro(),Ef=Bo(),sP=li(),Vo=is&&is.prototype,nP=!!is&&rP(function(){Vo.finally.call({then:function(){}},function(){})});tP({target:"Promise",proto:!0,real:!0,forced:nP},{finally:function(r){var e=aP(this,xf("Promise")),t=Pf(r);return this.then(t?function(i){return Ef(e,r()).then(function(){return i})}:r,t?function(i){return Ef(e,r()).then(function(){throw i})}:r)}});!iP&&Pf(is)&&(Oo=xf("Promise").prototype.finally,Vo.finally!==Oo&&sP(Vo,"finally",Oo,{unsafe:!0}));var Oo});var rs=f((kM,kf)=>{"use strict";var oP=et();kf.exports=oP});var Rf=f((wM,wf)=>{"use strict";Dp();If();Af();var uP=rs();wf.exports=uP("Promise","finally")});var $f=f((RM,Lf)=>{"use strict";var cP=Rf();Lf.exports=cP});var as=f((LM,Mf)=>{"use strict";var lP=$f();Mf.exports=lP});var rm=f(()=>{"use strict";var NP=Pe(),FP=Wi(),qP=Da(),UP=Ca(),HP=en();NP({target:"Array",proto:!0},{at:function(e){var t=FP(this),i=qP(t),a=UP(e),s=a>=0?a:i+a;return s<0||s>=i?void 0:t[s]}});HP("at")});var sm=f((NC,am)=>{"use strict";rm();var jP=rs();am.exports=jP("Array","at")});var om=f((FC,nm)=>{"use strict";var GP=sm();nm.exports=GP});var pr=f((qC,um)=>{"use strict";var WP=om();um.exports=WP});var rb=f(()=>{"use strict"});var ab=f(()=>{"use strict"});var nb=f((qO,sb)=>{"use strict";var XA=Ee(),ZA=ii(),ek=te(),tk=ek("match");sb.exports=function(r){var e;return XA(r)&&((e=r[tk])!==void 0?!!e:ZA(r)==="RegExp")}});var ub=f((UO,ob)=>{"use strict";var ik=Xi(),rk=String;ob.exports=function(r){if(ik(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return rk(r)}});var lb=f((HO,cb)=>{"use strict";var ak=Qe();cb.exports=function(){var r=ak(this),e="";return r.hasIndices&&(e+="d"),r.global&&(e+="g"),r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.dotAll&&(e+="s"),r.unicode&&(e+="u"),r.unicodeSets&&(e+="v"),r.sticky&&(e+="y"),e}});var hb=f((jO,pb)=>{"use strict";var sk=ge(),nk=Fe(),ok=Ui(),uk=lb(),db=RegExp.prototype;pb.exports=function(r){var e=r.flags;return e===void 0&&!("flags"in db)&&!nk(r,"flags")&&ok(db,r)?sk(uk,r):e}});var mb=f((GO,fb)=>{"use strict";var hu=ne(),ck=Wi(),lk=Math.floor,du=hu("".charAt),dk=hu("".replace),pu=hu("".slice),pk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,hk=/\$([$&'`]|\d{1,2})/g;fb.exports=function(r,e,t,i,a,s){var n=t+r.length,o=i.length,c=hk;return a!==void 0&&(a=ck(a),c=pk),dk(s,c,function(u,d){var l;switch(du(d,0)){case"$":return"$";case"&":return r;case"`":return pu(e,0,t);case"'":return pu(e,n);case"<":l=a[pu(d,1,-1)];break;default:var p=+d;if(p===0)return u;if(p>o){var h=lk(p/10);return h===0?u:h<=o?i[h-1]===void 0?du(d,1):i[h-1]+du(d,1):u}l=i[p-1]}return l===void 0?"":l})}});var Sb=f(()=>{"use strict";var fk=Pe(),mk=ge(),mu=ne(),bb=Fi(),bk=U(),gk=ri(),Sk=nb(),Ri=ub(),vk=ji(),yk=hb(),Tk=mb(),Ik=te(),Ek=Ne(),xk=Ik("replace"),Pk=TypeError,fu=mu("".indexOf),Ak=mu("".replace),gb=mu("".slice),kk=Math.max;fk({target:"String",proto:!0},{replaceAll:function(e,t){var i=bb(this),a,s,n,o,c,u,d,l,p,h,m=0,b="";if(!gk(e)){if(a=Sk(e),a&&(s=Ri(bb(yk(e))),!~fu(s,"g")))throw new Pk("`.replaceAll` does not allow non-global regexes");if(n=vk(e,xk),n)return mk(n,e,i,t);if(Ek&&a)return Ak(Ri(i),e,t)}for(o=Ri(i),c=Ri(e),u=bk(t),u||(t=Ri(t)),d=c.length,l=kk(1,d),p=fu(o,c);p!==-1;)h=u?Ri(t(c,p,o)):Tk(c,o,p,[],void 0,t),b+=gb(o,m,p)+h,m=p+d,p=p+l>o.length?-1:fu(o,c,p+l);return m<o.length&&(b+=gb(o,m)),b}})});var yb=f((QO,vb)=>{"use strict";rb();ab();Sb();var wk=rs();vb.exports=wk("String","replaceAll")});var Ib=f((zO,Tb)=>{"use strict";var Rk=yb();Tb.exports=Rk});var xb=f((KO,Eb)=>{"use strict";var Lk=Ib();Eb.exports=Lk});var Ju="2.0.113-dev.14316675.0";var se=(a=>(a.STOPPED="stopped",a.READY="ready",a.PLAYING="playing",a.PAUSED="paused",a))(se||{}),mt=(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))(mt||{});var Ta=(a=>(a.NOT_AVAILABLE="NOT_AVAILABLE",a.AVAILABLE="AVAILABLE",a.CONNECTING="CONNECTING",a.CONNECTED="CONNECTED",a))(Ta||{}),Qs=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Qs||{});var zs=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(zs||{});import{assertNever as rc,assertNonNullable as Kg,isNonNullable as Ia,ValueSubject as Ks,Subject as Jg,Subscription as Xg,merge as Zg,observableFrom as eS,fromEvent as Zu,map as ec,tap as tc,filterChanged as tS,isNullable as Js,ErrorCategory as ic}from"@vkontakte/videoplayer-shared";var Xu=r=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",r),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Ea=class{constructor(e){this.connection$=new Ks(void 0);this.castState$=new Ks("NOT_AVAILABLE");this.errorEvent$=new Jg;this.realCastState$=new Ks("NOT_AVAILABLE");this.subscription=new Xg;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=Ia(window.chrome?.cast),a=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&this.initializeCastApi()},a||Xu("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:ic.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(){Ia(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Js(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Js(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Zu(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(a=>{switch(a.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 rc(a.sessionState)}})).add(Zg(Zu(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(tc(a=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(a)}`})}),ec(a=>a.castState)),eS([i.getCastState()])).pipe(tS(),ec(iS),tc(a=>{this.log({message:`realCastState$: ${a}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(a=>{let s=a==="CONNECTED",n=Ia(this.connection$.getValue());if(s&&!n){let o=i.getCurrentSession();Kg(o);let c=o.getCastDevice(),u=o.getMediaSession()?.media?.contentId;(Js(u)||u===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:c}))}else!s&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(a==="CONNECTED"?Ia(this.connection$.getValue())?"CONNECTED":"AVAILABLE":a)}))}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(a){this.errorEvent$.next({id:"ChromecastInitializer",category:ic.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:a})}}},iS=r=>{switch(r){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 rc(r)}};var Tg=Ye(Xn(),1);var Uf=Ye(as(),1);import{assertNever as Cf}from"@vkontakte/videoplayer-shared";var J=(r,e=0,t=0)=>{switch(t){case 0:return r.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return r;let i=new URL(r);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(r);return!i.searchParams.get("offset_p")&&e===0?r:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:Cf(t)}return r},_o=(r,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(r);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(r);return Number(t.searchParams.get("offset_p")??0)}default:Cf(e)}};var I=(r,e,t=!1)=>{let i=r.getTransition();(t||!i||i.to===e)&&r.setState(e)};import{isNonNullable as dP,Subject as ss,merge as Df}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new ss;this.transitionEnded$=new ss;this.transitionUpdated$=new ss;this.forceChanged$=new ss;this.stateChangeStarted$=Df(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Df(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||dP(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 pP}from"@vkontakte/videoplayer-shared";var Bf=r=>{switch(r){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 pP(r)}};import{assertNever as vi,assertNonNullable as _t,debounce as Of,ErrorCategory as Vf,fromEvent as Nt,isNonNullable as _f,map as Nf,merge as Ff,observableFrom as hP,Subject as fP,Subscription as No,timeout as mP,getHighestQuality as bP}from"@vkontakte/videoplayer-shared";var gP=5,SP=5,vP=500,qf=7e3,cr=class{constructor(e){this.subscription=new No;this.loadMediaTimeoutSubscription=new No;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),a=this.params.desiredState.playbackState.getTransition(),s=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(s)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(a?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.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:vi(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:vi(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:vi(e)}break}default:vi(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Bf(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 No;this.subscription.add(e),this.subscription.add(Ff(this.videoState.stateChangeStarted$.pipe(Nf(a=>`stateChangeStarted$ ${JSON.stringify(a)}`)),this.videoState.stateChangeEnded$.pipe(Nf(a=>`stateChangeEnded$ ${JSON.stringify(a)}`))).subscribe(a=>this.log({message:`[videoState] ${a}`})));let t=(a,s)=>this.subscription.add(a.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let a=new fP;e.add(a.pipe(Of(vP)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(Nt(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-s)>gP)&&a.next(o),s=o})),e.add(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemotePause():this.handleRemotePlay()}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),a=>{this.logRemoteEvent(a);let{remotePlayer:s}=this.params.connection,n=a.value,o=this.params.output.isBuffering$.getValue(),c=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==c&&this.params.output.isBuffering$.next(c),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&s.duration-s.currentTime<SP&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),I(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:vi(n)}}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({volume:a.value})}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({muted:a.value})});let i=Ff(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,hP(["init"])).pipe(Of(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"),I(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),I(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"),I(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),I(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&I(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,a,s;switch(e){case"MPEG":{let u=t[e];_t(u);let d=bP(Object.keys(u));_t(d);let l=u[d];_t(l),i=l,a="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let u=t[e];_t(u),i=u.url,a="application/x-mpegurl",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let u=t[e];_t(u),i=J(u.url),a="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let u="Unsupported format for Chromecast",d=new Error(u);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Vf.VIDEO_PIPELINE,message:u,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return vi(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,a);n.contentUrl=i,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:c}=this.params.meta;return _f(o)&&(n.metadata.title=o),_f(c)&&(n.metadata.subtitle=c),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((a,s)=>{this.loadMediaTimeoutSubscription.add(mP(qf).subscribe(()=>s(`timeout(${qf})`)))});(0,Uf.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()},a=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${a}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Vf.VIDEO_PIPELINE,message:s,thrown:a})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as jf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as yP}from"@vkontakte/videoplayer-shared";var Hf=r=>{try{r.pause(),r.playbackRate=0,yP(r),r.remove()}catch(e){console.error(e)}};import{fromEvent as TP,Subscription as IP}from"@vkontakte/videoplayer-shared";var Fo=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)}},qo=window.WeakMap?new WeakMap:new Fo,Uo=window.WeakMap?new WeakMap:new Map,EP=(r,e=20)=>{let t=0;return TP(r,"ratechange").subscribe(i=>{t++,t>=e&&(r.currentTime=r.currentTime,t=0)})},oe=(r,{audioVideoSyncRate:e})=>{let t=r.querySelector("video"),i=!!t;t?jf(t):(t=document.createElement("video"),r.appendChild(t)),qo.set(t,i);let a=new IP;return a.add(EP(t,e)),Uo.set(t,a),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},ue=r=>{Uo.get(r)?.unsubscribe(),Uo.delete(r);let t=qo.get(r);qo.delete(r),t?jf(r):Hf(r)};import{assertNonNullable as lr,isNonNullable as Ke,isNullable as AP,fromEvent as yi,merge as Gf,observableFrom as Wf,filterChanged as Yf,map as dr,Subject as Qf,Subscription as kP,ValueSubject as wP,ErrorCategory as RP}from"@vkontakte/videoplayer-shared";import{isNonNullable as Ho,isNullable as xP,Subscription as PP}from"@vkontakte/videoplayer-shared";var ns=(r,e,t,{equal:i=(n,o)=>n===o,changed$:a,onError:s}={})=>{let n=r.getState(),o=e(),c=xP(a),u=new PP;return a&&u.add(a.subscribe(d=>{let l=r.getState();i(d,l)&&r.setState(d)},s)),i(o,n)||(t(n),c&&r.setState(n)),u.add(r.stateChangeStarted$.subscribe(d=>{t(d.to),c&&r.setState(d.to)},s)),u},ze=(r,e,t)=>ns(e,()=>r.loop,i=>{Ho(i)&&(r.loop=i)},{onError:t}),ce=(r,e,t,i)=>ns(e,()=>({muted:r.muted,volume:r.volume}),a=>{Ho(a)&&(r.muted=a.muted,r.volume=a.volume)},{equal:(a,s)=>a===s||a?.muted===s?.muted&&a?.volume===s?.volume,changed$:t,onError:i}),Ae=(r,e,t,i)=>ns(e,()=>r.playbackRate,a=>{Ho(a)&&(r.playbackRate=a)},{changed$:t,onError:i}),gt=ns;var LP=r=>["__",r.language,r.label].join("|"),$P=(r,e)=>{if(r.id===e)return!0;let[t,i,a]=e.split("|");return r.language===i&&r.label===a},jo=class r{constructor(){this.available$=new Qf;this.current$=new wP(void 0);this.error$=new Qf;this.subscription=new kP;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let a=s=>{this.error$.next({id:"TextTracksManager",category:RP.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};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(gt(t.internalTextTracks,()=>Object.values(this.internalTracks),s=>{Ke(s)&&this.setInternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(dr(s=>s.filter(({type:n})=>n==="internal"))),onError:a})),this.subscription.add(gt(t.externalTextTracks,()=>Object.values(this.externalTracks),s=>{Ke(s)&&this.setExternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(dr(s=>s.filter(({type:n})=>n==="external"))),onError:a})),this.subscription.add(gt(t.currentTextTrack,()=>{if(this.video)return;let s=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return s&&this.htmlTextTrackToITextTrack(s).id},s=>this.select(s),{changed$:this.current$,onError:a})),this.subscription.add(gt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){lr(this.video);let{textTracks:e}=this.video;this.subscription.add(yi(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(Gf(yi(e,"addtrack"),yi(e,"removetrack"),Wf(["init"])).pipe(dr(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),Yf((i,a)=>i.length===a.length&&i.every(({id:s},n)=>s===a[n].id))).subscribe(this.available$)),this.subscription.add(Gf(yi(e,"change"),Wf(["init"])).pipe(dr(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),dr(i=>i&&this.htmlTextTrackToITextTrack(i).id),Yf()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(yi(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let a=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",a))};i.track?.addEventListener("cuechange",a)})),this.subscription.add(yi(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 a=i;Ke(t.align)&&(a.align=t.align),Ke(t.position)&&(a.position=t.position),Ke(t.size)&&(a.size=t.size),Ke(t.line)&&(a.line=t.line)}}htmlTextTracksAsArray(e=!1){lr(this.video);let t=[...this.video.textTracks];return e?t:t.filter(r.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,a=e.id?e.id:LP(e),s=this.externalTracks.has(a),n=a.includes("auto");return s?{id:a,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(a)?.url}:{id:a,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(a)?.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:a,isAuto:s})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===a&&n.isAuto===s)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(a=>a.id===i)).forEach(([,i])=>this.detach(i))}select(e){lr(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(AP(e)||!$P(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){lr(this.video);let t=document.createElement("track");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){lr(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)}},ke=jo;var at=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 zf=r=>{let e=r;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Go=r=>{let e=zf(r);return!!(e&&e.fullscreenElement&&e.fullscreenElement===r)},Kf=r=>{let e=zf(r);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===r)};import{fromEvent as we,map as St,merge as Xf,filterChanged as CP,isNonNullable as Zf,Subject as DP,filter as em,mapTo as tm,combine as BP,once as OP,ErrorCategory as VP,ValueSubject as im,clientChecker as _P}from"@vkontakte/videoplayer-shared";var MP=3,Jf=(r,e,t=MP)=>{let i=0,a=0;for(let s=0;s<r.length;s++){let n=r.start(s),o=r.end(s);if(n<=e&&e<=o){if(i=n,a=o,!t)return{from:i,to:a};for(let c=s-1;c>=0;c--)r.end(c)+t>=i&&(i=r.start(c));for(let c=s+1;c<r.length;c++)r.start(c)-t<=a&&(a=r.end(c))}}return{from:i,to:a}};var le=r=>{let e=y=>we(r,y).pipe(tm(void 0)),i=Xf(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(y=>we(r,y))).pipe(St(y=>y.type==="ended"?r.readyState<2:r.readyState<3),CP()),a=Xf(we(r,"progress"),we(r,"timeupdate")).pipe(St(()=>Jf(r.buffered,r.currentTime))),s=_P.isSafari?BP({play:e("play").pipe(OP()),playing:e("playing")}).pipe(tm(void 0)):e("playing"),n=we(r,"volumechange").pipe(St(()=>({muted:r.muted,volume:r.volume}))),o=we(r,"ratechange").pipe(St(()=>r.playbackRate)),c=we(r,"error").pipe(em(()=>!!(r.error||r.played.length)),St(()=>{let y=r.error;return{id:y?`MediaError#${y.code}`:"HtmlVideoError",category:VP.VIDEO_PIPELINE,message:y?y.message:"Error event from HTML video element",thrown:r.error??void 0}})),u=we(r,"timeupdate").pipe(St(()=>r.currentTime)),d=new DP,l=.3,p;u.subscribe(y=>{r.loop&&Zf(p)&&Zf(y)&&p>=r.duration-l&&y<=l&&d.next(p),p=y});let h=e("pause").pipe(em(()=>!r.error&&p!==r.duration)),m=we(r,"enterpictureinpicture"),b=we(r,"leavepictureinpicture"),g=new im(Kf(r));m.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let v=new im(Go(r));return we(r,"fullscreenchange").pipe(St(()=>Go(r))).subscribe(v),{playing$:s,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:d,error$:c,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:u,durationChange$:we(r,"durationchange").pipe(St(()=>r.duration)),isBuffering$:i,currentBuffer$:a,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:v}};import{VideoQuality as vt}from"@vkontakte/videoplayer-shared";var yt=r=>{switch(r){case"mobile":return vt.Q_144P;case"lowest":return vt.Q_240P;case"low":return vt.Q_360P;case"sd":case"medium":return vt.Q_480P;case"hd":case"high":return vt.Q_720P;case"fullhd":case"full":return vt.Q_1080P;case"quadhd":case"quad":return vt.Q_1440P;case"ultrahd":case"ultra":return vt.Q_2160P}};var Ft=Ye(pr(),1);import{isNonNullable as de,isNullable as Yo,now as bm,isHigher as Qo,isHigherOrEqual as pm,isInvariantQuality as hm,isLower as zo,isLowerOrEqual as fm,videoSizeToQuality as YP,assertNotEmptyArray as gm,assertNonNullable as QP}from"@vkontakte/videoplayer-shared";var Wo=!1,st={},cm=r=>{Wo=r},lm=()=>{st={}},dm=r=>{r(st)},hr=(r,e)=>{Wo&&(st.meta=st.meta??{},st.meta[r]=e)},ie=class{constructor(e){this.name=e}next(e){if(!Wo)return;st.series=st.series??{};let t=st.series[this.name]??[];t.push([Date.now(),e]),st.series[this.name]=t}};var zP=new ie("best_bitrate"),Sm=(r,e,t)=>(e-t)*Math.pow(2,-10*r)+t;var Ko=r=>(e,t)=>r*(Number(e.bitrate)-Number(t.bitrate)),fr=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=bm()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},vm='Assertion "ABR Tracks is empty array" failed',os=(r,e,t,i)=>{let a=[...e].sort(Ko(1)),s=[...t].sort(Ko(1)),n=s.filter(c=>de(c.bitrate)&&de(r.bitrate)?r.bitrate/c.bitrate>i:!0),o=(0,Ft.default)(s,Math.round(s.length*a.indexOf(r)/(a.length+1)))??(0,Ft.default)(s,-1);return o&&n.includes(o)?o:n.length?(0,Ft.default)(n,-1):(0,Ft.default)(s,0)},mm=r=>"quality"in r,ym=(r,e,t,i)=>{let a=t&&i&&i.history[t.id]&&bm()-i.history[t.id]<=r.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let s=i.last;i?.recordSwitch(s);let n=mm(s)?"video":"audio",o=mm(s)?s.quality:s.bitrate;return e({message:`
|
|
6
|
+
var jg=Object.create;var Ku=Object.defineProperty;var Gg=Object.getOwnPropertyDescriptor;var Wg=Object.getOwnPropertyNames;var Yg=Object.getPrototypeOf,Qg=Object.prototype.hasOwnProperty;var f=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var zg=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Wg(e))!Qg.call(r,a)&&a!==t&&Ku(r,a,{get:()=>e[a],enumerable:!(i=Gg(e,a))||i.enumerable});return r};var Ye=(r,e,t)=>(t=r!=null?jg(Yg(r)):{},zg(e||!r||!r.__esModule?Ku(t,"default",{value:r,enumerable:!0}):t,r));var be=f((QR,ac)=>{"use strict";ac.exports=function(r){try{return!!r()}catch{return!0}}});var Ni=f((zR,sc)=>{"use strict";var rS=be();sc.exports=!rS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var ne=f((KR,uc)=>{"use strict";var nc=Ni(),oc=Function.prototype,Xs=oc.call,aS=nc&&oc.bind.bind(Xs,Xs);uc.exports=nc?aS:function(r){return function(){return Xs.apply(r,arguments)}}});var ii=f((JR,lc)=>{"use strict";var cc=ne(),sS=cc({}.toString),nS=cc("".slice);lc.exports=function(r){return nS(sS(r),8,-1)}});var pc=f((XR,dc)=>{"use strict";var oS=ne(),uS=be(),cS=ii(),Zs=Object,lS=oS("".split);dc.exports=uS(function(){return!Zs("z").propertyIsEnumerable(0)})?function(r){return cS(r)==="String"?lS(r,""):Zs(r)}:Zs});var ri=f((ZR,hc)=>{"use strict";hc.exports=function(r){return r==null}});var Fi=f((eL,fc)=>{"use strict";var dS=ri(),pS=TypeError;fc.exports=function(r){if(dS(r))throw new pS("Can't call method on "+r);return r}});var ai=f((tL,mc)=>{"use strict";var hS=pc(),fS=Fi();mc.exports=function(r){return hS(fS(r))}});var en=f((iL,bc)=>{"use strict";bc.exports=function(){}});var Mt=f((rL,gc)=>{"use strict";gc.exports={}});var j=f((tn,Sc)=>{"use strict";var qi=function(r){return r&&r.Math===Math&&r};Sc.exports=qi(typeof globalThis=="object"&&globalThis)||qi(typeof window=="object"&&window)||qi(typeof self=="object"&&self)||qi(typeof global=="object"&&global)||qi(typeof tn=="object"&&tn)||function(){return this}()||Function("return this")()});var U=f((aL,vc)=>{"use strict";var rn=typeof document=="object"&&document.all;vc.exports=typeof rn>"u"&&rn!==void 0?function(r){return typeof r=="function"||r===rn}:function(r){return typeof r=="function"}});var Ic=f((sL,Tc)=>{"use strict";var mS=j(),bS=U(),yc=mS.WeakMap;Tc.exports=bS(yc)&&/native code/.test(String(yc))});var Ee=f((nL,Ec)=>{"use strict";var gS=U();Ec.exports=function(r){return typeof r=="object"?r!==null:gS(r)}});var xe=f((oL,xc)=>{"use strict";var SS=be();xc.exports=!SS(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var xa=f((uL,Ac)=>{"use strict";var vS=j(),Pc=Ee(),an=vS.document,yS=Pc(an)&&Pc(an.createElement);Ac.exports=function(r){return yS?an.createElement(r):{}}});var sn=f((cL,kc)=>{"use strict";var TS=xe(),IS=be(),ES=xa();kc.exports=!TS&&!IS(function(){return Object.defineProperty(ES("div"),"a",{get:function(){return 7}}).a!==7})});var nn=f((lL,wc)=>{"use strict";var xS=xe(),PS=be();wc.exports=xS&&PS(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Qe=f((dL,Rc)=>{"use strict";var AS=Ee(),kS=String,wS=TypeError;Rc.exports=function(r){if(AS(r))return r;throw new wS(kS(r)+" is not an object")}});var ge=f((pL,Lc)=>{"use strict";var RS=Ni(),Pa=Function.prototype.call;Lc.exports=RS?Pa.bind(Pa):function(){return Pa.apply(Pa,arguments)}});var Aa=f((hL,$c)=>{"use strict";$c.exports={}});var et=f((fL,Cc)=>{"use strict";var on=Aa(),un=j(),LS=U(),Mc=function(r){return LS(r)?r:void 0};Cc.exports=function(r,e){return arguments.length<2?Mc(on[r])||Mc(un[r]):on[r]&&on[r][e]||un[r]&&un[r][e]}});var Ui=f((mL,Dc)=>{"use strict";var $S=ne();Dc.exports=$S({}.isPrototypeOf)});var si=f((bL,Vc)=>{"use strict";var MS=j(),Bc=MS.navigator,Oc=Bc&&Bc.userAgent;Vc.exports=Oc?String(Oc):""});var ln=f((gL,Hc)=>{"use strict";var Uc=j(),cn=si(),_c=Uc.process,Nc=Uc.Deno,Fc=_c&&_c.versions||Nc&&Nc.version,qc=Fc&&Fc.v8,_e,ka;qc&&(_e=qc.split("."),ka=_e[0]>0&&_e[0]<4?1:+(_e[0]+_e[1]));!ka&&cn&&(_e=cn.match(/Edge\/(\d+)/),(!_e||_e[1]>=74)&&(_e=cn.match(/Chrome\/(\d+)/),_e&&(ka=+_e[1])));Hc.exports=ka});var dn=f((SL,Gc)=>{"use strict";var jc=ln(),CS=be(),DS=j(),BS=DS.String;Gc.exports=!!Object.getOwnPropertySymbols&&!CS(function(){var r=Symbol("symbol detection");return!BS(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&jc&&jc<41})});var pn=f((vL,Wc)=>{"use strict";var OS=dn();Wc.exports=OS&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var hn=f((yL,Yc)=>{"use strict";var VS=et(),_S=U(),NS=Ui(),FS=pn(),qS=Object;Yc.exports=FS?function(r){return typeof r=="symbol"}:function(r){var e=VS("Symbol");return _S(e)&&NS(e.prototype,qS(r))}});var Hi=f((TL,Qc)=>{"use strict";var US=String;Qc.exports=function(r){try{return US(r)}catch{return"Object"}}});var tt=f((IL,zc)=>{"use strict";var HS=U(),jS=Hi(),GS=TypeError;zc.exports=function(r){if(HS(r))return r;throw new GS(jS(r)+" is not a function")}});var ji=f((EL,Kc)=>{"use strict";var WS=tt(),YS=ri();Kc.exports=function(r,e){var t=r[e];return YS(t)?void 0:WS(t)}});var Xc=f((xL,Jc)=>{"use strict";var fn=ge(),mn=U(),bn=Ee(),QS=TypeError;Jc.exports=function(r,e){var t,i;if(e==="string"&&mn(t=r.toString)&&!bn(i=fn(t,r))||mn(t=r.valueOf)&&!bn(i=fn(t,r))||e!=="string"&&mn(t=r.toString)&&!bn(i=fn(t,r)))return i;throw new QS("Can't convert object to primitive value")}});var Ne=f((PL,Zc)=>{"use strict";Zc.exports=!0});var il=f((AL,tl)=>{"use strict";var el=j(),zS=Object.defineProperty;tl.exports=function(r,e){try{zS(el,r,{value:e,configurable:!0,writable:!0})}catch{el[r]=e}return e}});var Gi=f((kL,sl)=>{"use strict";var KS=Ne(),JS=j(),XS=il(),rl="__core-js_shared__",al=sl.exports=JS[rl]||XS(rl,{});(al.versions||(al.versions=[])).push({version:"3.38.0",mode:KS?"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 gn=f((wL,ol)=>{"use strict";var nl=Gi();ol.exports=function(r,e){return nl[r]||(nl[r]=e||{})}});var Wi=f((RL,ul)=>{"use strict";var ZS=Fi(),ev=Object;ul.exports=function(r){return ev(ZS(r))}});var Fe=f((LL,cl)=>{"use strict";var tv=ne(),iv=Wi(),rv=tv({}.hasOwnProperty);cl.exports=Object.hasOwn||function(e,t){return rv(iv(e),t)}});var Sn=f(($L,ll)=>{"use strict";var av=ne(),sv=0,nv=Math.random(),ov=av(1 .toString);ll.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+ov(++sv+nv,36)}});var te=f((ML,pl)=>{"use strict";var uv=j(),cv=gn(),dl=Fe(),lv=Sn(),dv=dn(),pv=pn(),ni=uv.Symbol,vn=cv("wks"),hv=pv?ni.for||ni:ni&&ni.withoutSetter||lv;pl.exports=function(r){return dl(vn,r)||(vn[r]=dv&&dl(ni,r)?ni[r]:hv("Symbol."+r)),vn[r]}});var bl=f((CL,ml)=>{"use strict";var fv=ge(),hl=Ee(),fl=hn(),mv=ji(),bv=Xc(),gv=te(),Sv=TypeError,vv=gv("toPrimitive");ml.exports=function(r,e){if(!hl(r)||fl(r))return r;var t=mv(r,vv),i;if(t){if(e===void 0&&(e="default"),i=fv(t,r,e),!hl(i)||fl(i))return i;throw new Sv("Can't convert object to primitive value")}return e===void 0&&(e="number"),bv(r,e)}});var yn=f((DL,gl)=>{"use strict";var yv=bl(),Tv=hn();gl.exports=function(r){var e=yv(r,"string");return Tv(e)?e:e+""}});var Ct=f(vl=>{"use strict";var Iv=xe(),Ev=sn(),xv=nn(),wa=Qe(),Sl=yn(),Pv=TypeError,Tn=Object.defineProperty,Av=Object.getOwnPropertyDescriptor,In="enumerable",En="configurable",xn="writable";vl.f=Iv?xv?function(e,t,i){if(wa(e),t=Sl(t),wa(i),typeof e=="function"&&t==="prototype"&&"value"in i&&xn in i&&!i[xn]){var a=Av(e,t);a&&a[xn]&&(e[t]=i.value,i={configurable:En in i?i[En]:a[En],enumerable:In in i?i[In]:a[In],writable:!1})}return Tn(e,t,i)}:Tn:function(e,t,i){if(wa(e),t=Sl(t),wa(i),Ev)try{return Tn(e,t,i)}catch{}if("get"in i||"set"in i)throw new Pv("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Yi=f((OL,yl)=>{"use strict";yl.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var oi=f((VL,Tl)=>{"use strict";var kv=xe(),wv=Ct(),Rv=Yi();Tl.exports=kv?function(r,e,t){return wv.f(r,e,Rv(1,t))}:function(r,e,t){return r[e]=t,r}});var Ra=f((_L,El)=>{"use strict";var Lv=gn(),$v=Sn(),Il=Lv("keys");El.exports=function(r){return Il[r]||(Il[r]=$v(r))}});var La=f((NL,xl)=>{"use strict";xl.exports={}});var wn=f((FL,kl)=>{"use strict";var Mv=Ic(),Al=j(),Cv=Ee(),Dv=oi(),Pn=Fe(),An=Gi(),Bv=Ra(),Ov=La(),Pl="Object already initialized",kn=Al.TypeError,Vv=Al.WeakMap,$a,Qi,Ma,_v=function(r){return Ma(r)?Qi(r):$a(r,{})},Nv=function(r){return function(e){var t;if(!Cv(e)||(t=Qi(e)).type!==r)throw new kn("Incompatible receiver, "+r+" required");return t}};Mv||An.state?(qe=An.state||(An.state=new Vv),qe.get=qe.get,qe.has=qe.has,qe.set=qe.set,$a=function(r,e){if(qe.has(r))throw new kn(Pl);return e.facade=r,qe.set(r,e),e},Qi=function(r){return qe.get(r)||{}},Ma=function(r){return qe.has(r)}):(Dt=Bv("state"),Ov[Dt]=!0,$a=function(r,e){if(Pn(r,Dt))throw new kn(Pl);return e.facade=r,Dv(r,Dt,e),e},Qi=function(r){return Pn(r,Dt)?r[Dt]:{}},Ma=function(r){return Pn(r,Dt)});var qe,Dt;kl.exports={set:$a,get:Qi,has:Ma,enforce:_v,getterFor:Nv}});var Rn=f((qL,$l)=>{"use strict";var Fv=Ni(),Ll=Function.prototype,wl=Ll.apply,Rl=Ll.call;$l.exports=typeof Reflect=="object"&&Reflect.apply||(Fv?Rl.bind(wl):function(){return Rl.apply(wl,arguments)})});var Ln=f((UL,Ml)=>{"use strict";var qv=ii(),Uv=ne();Ml.exports=function(r){if(qv(r)==="Function")return Uv(r)}});var Ol=f(Bl=>{"use strict";var Cl={}.propertyIsEnumerable,Dl=Object.getOwnPropertyDescriptor,Hv=Dl&&!Cl.call({1:2},1);Bl.f=Hv?function(e){var t=Dl(this,e);return!!t&&t.enumerable}:Cl});var Nl=f(_l=>{"use strict";var jv=xe(),Gv=ge(),Wv=Ol(),Yv=Yi(),Qv=ai(),zv=yn(),Kv=Fe(),Jv=sn(),Vl=Object.getOwnPropertyDescriptor;_l.f=jv?Vl:function(e,t){if(e=Qv(e),t=zv(t),Jv)try{return Vl(e,t)}catch{}if(Kv(e,t))return Yv(!Gv(Wv.f,e,t),e[t])}});var $n=f((GL,Fl)=>{"use strict";var Xv=be(),Zv=U(),ey=/#|\.prototype\./,zi=function(r,e){var t=iy[ty(r)];return t===ay?!0:t===ry?!1:Zv(e)?Xv(e):!!e},ty=zi.normalize=function(r){return String(r).replace(ey,".").toLowerCase()},iy=zi.data={},ry=zi.NATIVE="N",ay=zi.POLYFILL="P";Fl.exports=zi});var Ki=f((WL,Ul)=>{"use strict";var ql=Ln(),sy=tt(),ny=Ni(),oy=ql(ql.bind);Ul.exports=function(r,e){return sy(r),e===void 0?r:ny?oy(r,e):function(){return r.apply(e,arguments)}}});var Pe=f((YL,jl)=>{"use strict";var Ji=j(),uy=Rn(),cy=Ln(),ly=U(),dy=Nl().f,py=$n(),ui=Aa(),hy=Ki(),ci=oi(),Hl=Fe();Gi();var fy=function(r){var e=function(t,i,a){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,a)}return uy(r,this,arguments)};return e.prototype=r.prototype,e};jl.exports=function(r,e){var t=r.target,i=r.global,a=r.stat,s=r.proto,n=i?Ji:a?Ji[t]:Ji[t]&&Ji[t].prototype,o=i?ui:ui[t]||ci(ui,t,{})[t],c=o.prototype,u,d,l,p,h,m,b,g,v;for(p in e)u=py(i?p:t+(a?".":"#")+p,r.forced),d=!u&&n&&Hl(n,p),m=o[p],d&&(r.dontCallGetSet?(v=dy(n,p),b=v&&v.value):b=n[p]),h=d&&b?b:e[p],!(!u&&!s&&typeof m==typeof h)&&(r.bind&&d?g=hy(h,Ji):r.wrap&&d?g=fy(h):s&&ly(h)?g=cy(h):g=h,(r.sham||h&&h.sham||m&&m.sham)&&ci(g,"sham",!0),ci(o,p,g),s&&(l=t+"Prototype",Hl(ui,l)||ci(ui,l,{}),ci(ui[l],p,h),r.real&&c&&(u||!c[p])&&ci(c,p,h)))}});var Yl=f((QL,Wl)=>{"use strict";var Mn=xe(),my=Fe(),Gl=Function.prototype,by=Mn&&Object.getOwnPropertyDescriptor,Cn=my(Gl,"name"),gy=Cn&&function(){}.name==="something",Sy=Cn&&(!Mn||Mn&&by(Gl,"name").configurable);Wl.exports={EXISTS:Cn,PROPER:gy,CONFIGURABLE:Sy}});var zl=f((zL,Ql)=>{"use strict";var vy=Math.ceil,yy=Math.floor;Ql.exports=Math.trunc||function(e){var t=+e;return(t>0?yy:vy)(t)}});var Ca=f((KL,Kl)=>{"use strict";var Ty=zl();Kl.exports=function(r){var e=+r;return e!==e||e===0?0:Ty(e)}});var Xl=f((JL,Jl)=>{"use strict";var Iy=Ca(),Ey=Math.max,xy=Math.min;Jl.exports=function(r,e){var t=Iy(r);return t<0?Ey(t+e,0):xy(t,e)}});var ed=f((XL,Zl)=>{"use strict";var Py=Ca(),Ay=Math.min;Zl.exports=function(r){var e=Py(r);return e>0?Ay(e,9007199254740991):0}});var Da=f((ZL,td)=>{"use strict";var ky=ed();td.exports=function(r){return ky(r.length)}});var ad=f((e$,rd)=>{"use strict";var wy=ai(),Ry=Xl(),Ly=Da(),id=function(r){return function(e,t,i){var a=wy(e),s=Ly(a);if(s===0)return!r&&-1;var n=Ry(i,s),o;if(r&&t!==t){for(;s>n;)if(o=a[n++],o!==o)return!0}else for(;s>n;n++)if((r||n in a)&&a[n]===t)return r||n||0;return!r&&-1}};rd.exports={includes:id(!0),indexOf:id(!1)}});var od=f((t$,nd)=>{"use strict";var $y=ne(),Dn=Fe(),My=ai(),Cy=ad().indexOf,Dy=La(),sd=$y([].push);nd.exports=function(r,e){var t=My(r),i=0,a=[],s;for(s in t)!Dn(Dy,s)&&Dn(t,s)&&sd(a,s);for(;e.length>i;)Dn(t,s=e[i++])&&(~Cy(a,s)||sd(a,s));return a}});var Bn=f((i$,ud)=>{"use strict";ud.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ld=f((r$,cd)=>{"use strict";var By=od(),Oy=Bn();cd.exports=Object.keys||function(e){return By(e,Oy)}});var pd=f(dd=>{"use strict";var Vy=xe(),_y=nn(),Ny=Ct(),Fy=Qe(),qy=ai(),Uy=ld();dd.f=Vy&&!_y?Object.defineProperties:function(e,t){Fy(e);for(var i=qy(t),a=Uy(t),s=a.length,n=0,o;s>n;)Ny.f(e,o=a[n++],i[o]);return e}});var On=f((s$,hd)=>{"use strict";var Hy=et();hd.exports=Hy("document","documentElement")});var Fn=f((n$,yd)=>{"use strict";var jy=Qe(),Gy=pd(),fd=Bn(),Wy=La(),Yy=On(),Qy=xa(),zy=Ra(),md=">",bd="<",_n="prototype",Nn="script",Sd=zy("IE_PROTO"),Vn=function(){},vd=function(r){return bd+Nn+md+r+bd+"/"+Nn+md},gd=function(r){r.write(vd("")),r.close();var e=r.parentWindow.Object;return r=null,e},Ky=function(){var r=Qy("iframe"),e="java"+Nn+":",t;return r.style.display="none",Yy.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(vd("document.F=Object")),t.close(),t.F},Ba,Oa=function(){try{Ba=new ActiveXObject("htmlfile")}catch{}Oa=typeof document<"u"?document.domain&&Ba?gd(Ba):Ky():gd(Ba);for(var r=fd.length;r--;)delete Oa[_n][fd[r]];return Oa()};Wy[Sd]=!0;yd.exports=Object.create||function(e,t){var i;return e!==null?(Vn[_n]=jy(e),i=new Vn,Vn[_n]=null,i[Sd]=e):i=Oa(),t===void 0?i:Gy.f(i,t)}});var Id=f((o$,Td)=>{"use strict";var Jy=be();Td.exports=!Jy(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Un=f((u$,xd)=>{"use strict";var Xy=Fe(),Zy=U(),eT=Wi(),tT=Ra(),iT=Id(),Ed=tT("IE_PROTO"),qn=Object,rT=qn.prototype;xd.exports=iT?qn.getPrototypeOf:function(r){var e=eT(r);if(Xy(e,Ed))return e[Ed];var t=e.constructor;return Zy(t)&&e instanceof t?t.prototype:e instanceof qn?rT:null}});var li=f((c$,Pd)=>{"use strict";var aT=oi();Pd.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:aT(r,e,t),r}});var Wn=f((l$,wd)=>{"use strict";var sT=be(),nT=U(),oT=Ee(),uT=Fn(),Ad=Un(),cT=li(),lT=te(),dT=Ne(),Gn=lT("iterator"),kd=!1,it,Hn,jn;[].keys&&(jn=[].keys(),"next"in jn?(Hn=Ad(Ad(jn)),Hn!==Object.prototype&&(it=Hn)):kd=!0);var pT=!oT(it)||sT(function(){var r={};return it[Gn].call(r)!==r});pT?it={}:dT&&(it=uT(it));nT(it[Gn])||cT(it,Gn,function(){return this});wd.exports={IteratorPrototype:it,BUGGY_SAFARI_ITERATORS:kd}});var Va=f((d$,Ld)=>{"use strict";var hT=te(),fT=hT("toStringTag"),Rd={};Rd[fT]="z";Ld.exports=String(Rd)==="[object z]"});var Xi=f((p$,$d)=>{"use strict";var mT=Va(),bT=U(),_a=ii(),gT=te(),ST=gT("toStringTag"),vT=Object,yT=_a(function(){return arguments}())==="Arguments",TT=function(r,e){try{return r[e]}catch{}};$d.exports=mT?_a:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=TT(e=vT(r),ST))=="string"?t:yT?_a(e):(i=_a(e))==="Object"&&bT(e.callee)?"Arguments":i}});var Cd=f((h$,Md)=>{"use strict";var IT=Va(),ET=Xi();Md.exports=IT?{}.toString:function(){return"[object "+ET(this)+"]"}});var Zi=f((f$,Bd)=>{"use strict";var xT=Va(),PT=Ct().f,AT=oi(),kT=Fe(),wT=Cd(),RT=te(),Dd=RT("toStringTag");Bd.exports=function(r,e,t,i){var a=t?r:r&&r.prototype;a&&(kT(a,Dd)||PT(a,Dd,{configurable:!0,value:e}),i&&!xT&&AT(a,"toString",wT))}});var Vd=f((m$,Od)=>{"use strict";var LT=Wn().IteratorPrototype,$T=Fn(),MT=Yi(),CT=Zi(),DT=Mt(),BT=function(){return this};Od.exports=function(r,e,t,i){var a=e+" Iterator";return r.prototype=$T(LT,{next:MT(+!i,t)}),CT(r,a,!1,!0),DT[a]=BT,r}});var Nd=f((b$,_d)=>{"use strict";var OT=ne(),VT=tt();_d.exports=function(r,e,t){try{return OT(VT(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var qd=f((g$,Fd)=>{"use strict";var _T=Ee();Fd.exports=function(r){return _T(r)||r===null}});var Hd=f((S$,Ud)=>{"use strict";var NT=qd(),FT=String,qT=TypeError;Ud.exports=function(r){if(NT(r))return r;throw new qT("Can't set "+FT(r)+" as a prototype")}});var Yn=f((v$,jd)=>{"use strict";var UT=Nd(),HT=Ee(),jT=Fi(),GT=Hd();jd.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=UT(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(a,s){return jT(a),GT(s),HT(a)&&(r?t(a,s):a.__proto__=s),a}}():void 0)});var tp=f((y$,ep)=>{"use strict";var WT=Pe(),YT=ge(),Na=Ne(),Xd=Yl(),QT=U(),zT=Vd(),Gd=Un(),Wd=Yn(),KT=Zi(),JT=oi(),Qn=li(),XT=te(),Yd=Mt(),Zd=Wn(),ZT=Xd.PROPER,eI=Xd.CONFIGURABLE,Qd=Zd.IteratorPrototype,Fa=Zd.BUGGY_SAFARI_ITERATORS,er=XT("iterator"),zd="keys",tr="values",Kd="entries",Jd=function(){return this};ep.exports=function(r,e,t,i,a,s,n){zT(t,e,i);var o=function(v){if(v===a&&p)return p;if(!Fa&&v&&v in d)return d[v];switch(v){case zd:return function(){return new t(this,v)};case tr:return function(){return new t(this,v)};case Kd:return function(){return new t(this,v)}}return function(){return new t(this)}},c=e+" Iterator",u=!1,d=r.prototype,l=d[er]||d["@@iterator"]||a&&d[a],p=!Fa&&l||o(a),h=e==="Array"&&d.entries||l,m,b,g;if(h&&(m=Gd(h.call(new r)),m!==Object.prototype&&m.next&&(!Na&&Gd(m)!==Qd&&(Wd?Wd(m,Qd):QT(m[er])||Qn(m,er,Jd)),KT(m,c,!0,!0),Na&&(Yd[c]=Jd))),ZT&&a===tr&&l&&l.name!==tr&&(!Na&&eI?JT(d,"name",tr):(u=!0,p=function(){return YT(l,this)})),a)if(b={values:o(tr),keys:s?p:o(zd),entries:o(Kd)},n)for(g in b)(Fa||u||!(g in d))&&Qn(d,g,b[g]);else WT({target:e,proto:!0,forced:Fa||u},b);return(!Na||n)&&d[er]!==p&&Qn(d,er,p,{name:a}),Yd[e]=p,b}});var rp=f((T$,ip)=>{"use strict";ip.exports=function(r,e){return{value:r,done:e}}});var Kn=f((I$,up)=>{"use strict";var tI=ai(),zn=en(),ap=Mt(),np=wn(),iI=Ct().f,rI=tp(),qa=rp(),aI=Ne(),sI=xe(),op="Array Iterator",nI=np.set,oI=np.getterFor(op);up.exports=rI(Array,"Array",function(r,e){nI(this,{type:op,target:tI(r),index:0,kind:e})},function(){var r=oI(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,qa(void 0,!0);switch(r.kind){case"keys":return qa(t,!1);case"values":return qa(e[t],!1)}return qa([t,e[t]],!1)},"values");var sp=ap.Arguments=ap.Array;zn("keys");zn("values");zn("entries");if(!aI&&sI&&sp.name!=="values")try{iI(sp,"name",{value:"values"})}catch{}});var lp=f((E$,cp)=>{"use strict";var uI=te(),cI=Mt(),lI=uI("iterator"),dI=Array.prototype;cp.exports=function(r){return r!==void 0&&(cI.Array===r||dI[lI]===r)}});var Jn=f((x$,pp)=>{"use strict";var pI=Xi(),dp=ji(),hI=ri(),fI=Mt(),mI=te(),bI=mI("iterator");pp.exports=function(r){if(!hI(r))return dp(r,bI)||dp(r,"@@iterator")||fI[pI(r)]}});var fp=f((P$,hp)=>{"use strict";var gI=ge(),SI=tt(),vI=Qe(),yI=Hi(),TI=Jn(),II=TypeError;hp.exports=function(r,e){var t=arguments.length<2?TI(r):e;if(SI(t))return vI(gI(t,r));throw new II(yI(r)+" is not iterable")}});var gp=f((A$,bp)=>{"use strict";var EI=ge(),mp=Qe(),xI=ji();bp.exports=function(r,e,t){var i,a;mp(r);try{if(i=xI(r,"return"),!i){if(e==="throw")throw t;return t}i=EI(i,r)}catch(s){a=!0,i=s}if(e==="throw")throw t;if(a)throw i;return mp(i),t}});var Ha=f((k$,Tp)=>{"use strict";var PI=Ki(),AI=ge(),kI=Qe(),wI=Hi(),RI=lp(),LI=Da(),Sp=Ui(),$I=fp(),MI=Jn(),vp=gp(),CI=TypeError,Ua=function(r,e){this.stopped=r,this.result=e},yp=Ua.prototype;Tp.exports=function(r,e,t){var i=t&&t.that,a=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),c=PI(e,i),u,d,l,p,h,m,b,g=function(k){return u&&vp(u,"normal",k),new Ua(!0,k)},v=function(k){return a?(kI(k),o?c(k[0],k[1],g):c(k[0],k[1])):o?c(k,g):c(k)};if(s)u=r.iterator;else if(n)u=r;else{if(d=MI(r),!d)throw new CI(wI(r)+" is not iterable");if(RI(d)){for(l=0,p=LI(r);p>l;l++)if(h=v(r[l]),h&&Sp(yp,h))return h;return new Ua(!1)}u=$I(r,d)}for(m=s?r.next:u.next;!(b=AI(m,u)).done;){try{h=v(b.value)}catch(k){vp(u,"throw",k)}if(typeof h=="object"&&h&&Sp(yp,h))return h}return new Ua(!1)}});var Ep=f((w$,Ip)=>{"use strict";var DI=xe(),BI=Ct(),OI=Yi();Ip.exports=function(r,e,t){DI?BI.f(r,e,OI(0,t)):r[e]=t}});var xp=f(()=>{"use strict";var VI=Pe(),_I=Ha(),NI=Ep();VI({target:"Object",stat:!0},{fromEntries:function(e){var t={};return _I(e,function(i,a){NI(t,i,a)},{AS_ENTRIES:!0}),t}})});var Ap=f(($$,Pp)=>{"use strict";Kn();xp();var FI=Aa();Pp.exports=FI.Object.fromEntries});var wp=f((M$,kp)=>{"use strict";kp.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 Lp=f(()=>{"use strict";Kn();var qI=wp(),UI=j(),HI=Zi(),Rp=Mt();for(ja in qI)HI(UI[ja],ja),Rp[ja]=Rp.Array;var ja});var Mp=f((B$,$p)=>{"use strict";var jI=Ap();Lp();$p.exports=jI});var Xn=f((O$,Cp)=>{"use strict";var GI=Mp();Cp.exports=GI});var Dp=f(()=>{"use strict"});var Zn=f((N$,Bp)=>{"use strict";var ir=j(),WI=si(),YI=ii(),Ga=function(r){return WI.slice(0,r.length)===r};Bp.exports=function(){return Ga("Bun/")?"BUN":Ga("Cloudflare-Workers")?"CLOUDFLARE":Ga("Deno/")?"DENO":Ga("Node.js/")?"NODE":ir.Bun&&typeof Bun.version=="string"?"BUN":ir.Deno&&typeof Deno.version=="object"?"DENO":YI(ir.process)==="process"?"NODE":ir.window&&ir.document?"BROWSER":"REST"}()});var Wa=f((F$,Op)=>{"use strict";var QI=Zn();Op.exports=QI==="NODE"});var _p=f((q$,Vp)=>{"use strict";var zI=Ct();Vp.exports=function(r,e,t){return zI.f(r,e,t)}});var qp=f((U$,Fp)=>{"use strict";var KI=et(),JI=_p(),XI=te(),ZI=xe(),Np=XI("species");Fp.exports=function(r){var e=KI(r);ZI&&e&&!e[Np]&&JI(e,Np,{configurable:!0,get:function(){return this}})}});var Hp=f((H$,Up)=>{"use strict";var eE=Ui(),tE=TypeError;Up.exports=function(r,e){if(eE(e,r))return r;throw new tE("Incorrect invocation")}});var to=f((j$,jp)=>{"use strict";var iE=ne(),rE=U(),eo=Gi(),aE=iE(Function.toString);rE(eo.inspectSource)||(eo.inspectSource=function(r){return aE(r)});jp.exports=eo.inspectSource});var Kp=f((G$,zp)=>{"use strict";var sE=ne(),nE=be(),Gp=U(),oE=Xi(),uE=et(),cE=to(),Wp=function(){},Yp=uE("Reflect","construct"),io=/^\s*(?:class|function)\b/,lE=sE(io.exec),dE=!io.test(Wp),rr=function(e){if(!Gp(e))return!1;try{return Yp(Wp,[],e),!0}catch{return!1}},Qp=function(e){if(!Gp(e))return!1;switch(oE(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return dE||!!lE(io,cE(e))}catch{return!0}};Qp.sham=!0;zp.exports=!Yp||nE(function(){var r;return rr(rr.call)||!rr(Object)||!rr(function(){r=!0})||r})?Qp:rr});var Xp=f((W$,Jp)=>{"use strict";var pE=Kp(),hE=Hi(),fE=TypeError;Jp.exports=function(r){if(pE(r))return r;throw new fE(hE(r)+" is not a constructor")}});var ro=f((Y$,eh)=>{"use strict";var Zp=Qe(),mE=Xp(),bE=ri(),gE=te(),SE=gE("species");eh.exports=function(r,e){var t=Zp(r).constructor,i;return t===void 0||bE(i=Zp(t)[SE])?e:mE(i)}});var ih=f((Q$,th)=>{"use strict";var vE=ne();th.exports=vE([].slice)});var ah=f((z$,rh)=>{"use strict";var yE=TypeError;rh.exports=function(r,e){if(r<e)throw new yE("Not enough arguments");return r}});var ao=f((K$,sh)=>{"use strict";var TE=si();sh.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(TE)});var fo=f((J$,fh)=>{"use strict";var Se=j(),IE=Rn(),EE=Ki(),nh=U(),xE=Fe(),hh=be(),oh=On(),PE=ih(),uh=xa(),AE=ah(),kE=ao(),wE=Wa(),lo=Se.setImmediate,po=Se.clearImmediate,RE=Se.process,so=Se.Dispatch,LE=Se.Function,ch=Se.MessageChannel,$E=Se.String,no=0,ar={},lh="onreadystatechange",sr,Bt,oo,uo;hh(function(){sr=Se.location});var ho=function(r){if(xE(ar,r)){var e=ar[r];delete ar[r],e()}},co=function(r){return function(){ho(r)}},dh=function(r){ho(r.data)},ph=function(r){Se.postMessage($E(r),sr.protocol+"//"+sr.host)};(!lo||!po)&&(lo=function(e){AE(arguments.length,1);var t=nh(e)?e:LE(e),i=PE(arguments,1);return ar[++no]=function(){IE(t,void 0,i)},Bt(no),no},po=function(e){delete ar[e]},wE?Bt=function(r){RE.nextTick(co(r))}:so&&so.now?Bt=function(r){so.now(co(r))}:ch&&!kE?(oo=new ch,uo=oo.port2,oo.port1.onmessage=dh,Bt=EE(uo.postMessage,uo)):Se.addEventListener&&nh(Se.postMessage)&&!Se.importScripts&&sr&&sr.protocol!=="file:"&&!hh(ph)?(Bt=ph,Se.addEventListener("message",dh,!1)):lh in uh("script")?Bt=function(r){oh.appendChild(uh("script"))[lh]=function(){oh.removeChild(this),ho(r)}}:Bt=function(r){setTimeout(co(r),0)});fh.exports={set:lo,clear:po}});var gh=f((X$,bh)=>{"use strict";var mh=j(),ME=xe(),CE=Object.getOwnPropertyDescriptor;bh.exports=function(r){if(!ME)return mh[r];var e=CE(mh,r);return e&&e.value}});var mo=f((Z$,vh)=>{"use strict";var Sh=function(){this.head=null,this.tail=null};Sh.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};vh.exports=Sh});var Th=f((eM,yh)=>{"use strict";var DE=si();yh.exports=/ipad|iphone|ipod/i.test(DE)&&typeof Pebble<"u"});var Eh=f((tM,Ih)=>{"use strict";var BE=si();Ih.exports=/web0s(?!.*chrome)/i.test(BE)});var Lh=f((iM,Rh)=>{"use strict";var pi=j(),OE=gh(),xh=Ki(),bo=fo().set,VE=mo(),_E=ao(),NE=Th(),FE=Eh(),go=Wa(),Ph=pi.MutationObserver||pi.WebKitMutationObserver,Ah=pi.document,kh=pi.process,Ya=pi.Promise,yo=OE("queueMicrotask"),di,So,vo,Qa,wh;yo||(nr=new VE,or=function(){var r,e;for(go&&(r=kh.domain)&&r.exit();e=nr.get();)try{e()}catch(t){throw nr.head&&di(),t}r&&r.enter()},!_E&&!go&&!FE&&Ph&&Ah?(So=!0,vo=Ah.createTextNode(""),new Ph(or).observe(vo,{characterData:!0}),di=function(){vo.data=So=!So}):!NE&&Ya&&Ya.resolve?(Qa=Ya.resolve(void 0),Qa.constructor=Ya,wh=xh(Qa.then,Qa),di=function(){wh(or)}):go?di=function(){kh.nextTick(or)}:(bo=xh(bo,pi),di=function(){bo(or)}),yo=function(r){nr.head||di(),nr.add(r)});var nr,or;Rh.exports=yo});var Mh=f((rM,$h)=>{"use strict";$h.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var za=f((aM,Ch)=>{"use strict";Ch.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Ot=f((sM,Dh)=>{"use strict";var qE=j();Dh.exports=qE.Promise});var hi=f((nM,_h)=>{"use strict";var UE=j(),ur=Ot(),HE=U(),jE=$n(),GE=to(),WE=te(),Bh=Zn(),YE=Ne(),To=ln(),Oh=ur&&ur.prototype,QE=WE("species"),Io=!1,Vh=HE(UE.PromiseRejectionEvent),zE=jE("Promise",function(){var r=GE(ur),e=r!==String(ur);if(!e&&To===66||YE&&!(Oh.catch&&Oh.finally))return!0;if(!To||To<51||!/native code/.test(r)){var t=new ur(function(s){s(1)}),i=function(s){s(function(){},function(){})},a=t.constructor={};if(a[QE]=i,Io=t.then(function(){})instanceof i,!Io)return!0}return!e&&(Bh==="BROWSER"||Bh==="DENO")&&!Vh});_h.exports={CONSTRUCTOR:zE,REJECTION_EVENT:Vh,SUBCLASSING:Io}});var fi=f((oM,Fh)=>{"use strict";var Nh=tt(),KE=TypeError,JE=function(r){var e,t;this.promise=new r(function(i,a){if(e!==void 0||t!==void 0)throw new KE("Bad Promise constructor");e=i,t=a}),this.resolve=Nh(e),this.reject=Nh(t)};Fh.exports.f=function(r){return new JE(r)}});var nf=f(()=>{"use strict";var XE=Pe(),ZE=Ne(),Za=Wa(),bt=j(),Si=ge(),qh=li(),Uh=Yn(),ex=Zi(),tx=qp(),ix=tt(),Xa=U(),rx=Ee(),ax=Hp(),sx=ro(),Yh=fo().set,ko=Lh(),nx=Mh(),ox=za(),ux=mo(),Qh=wn(),es=Ot(),wo=hi(),zh=fi(),ts="Promise",Kh=wo.CONSTRUCTOR,cx=wo.REJECTION_EVENT,lx=wo.SUBCLASSING,Eo=Qh.getterFor(ts),dx=Qh.set,mi=es&&es.prototype,Vt=es,Ka=mi,Jh=bt.TypeError,xo=bt.document,Ro=bt.process,Po=zh.f,px=Po,hx=!!(xo&&xo.createEvent&&bt.dispatchEvent),Xh="unhandledrejection",fx="rejectionhandled",Hh=0,Zh=1,mx=2,Lo=1,ef=2,Ja,jh,bx,Gh,tf=function(r){var e;return rx(r)&&Xa(e=r.then)?e:!1},rf=function(r,e){var t=e.value,i=e.state===Zh,a=i?r.ok:r.fail,s=r.resolve,n=r.reject,o=r.domain,c,u,d;try{a?(i||(e.rejection===ef&&Sx(e),e.rejection=Lo),a===!0?c=t:(o&&o.enter(),c=a(t),o&&(o.exit(),d=!0)),c===r.promise?n(new Jh("Promise-chain cycle")):(u=tf(c))?Si(u,c,s,n):s(c)):n(t)}catch(l){o&&!d&&o.exit(),n(l)}},af=function(r,e){r.notified||(r.notified=!0,ko(function(){for(var t=r.reactions,i;i=t.get();)rf(i,r);r.notified=!1,e&&!r.rejection&&gx(r)}))},sf=function(r,e,t){var i,a;hx?(i=xo.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),bt.dispatchEvent(i)):i={promise:e,reason:t},!cx&&(a=bt["on"+r])?a(i):r===Xh&&nx("Unhandled promise rejection",t)},gx=function(r){Si(Yh,bt,function(){var e=r.facade,t=r.value,i=Wh(r),a;if(i&&(a=ox(function(){Za?Ro.emit("unhandledRejection",t,e):sf(Xh,e,t)}),r.rejection=Za||Wh(r)?ef:Lo,a.error))throw a.value})},Wh=function(r){return r.rejection!==Lo&&!r.parent},Sx=function(r){Si(Yh,bt,function(){var e=r.facade;Za?Ro.emit("rejectionHandled",e):sf(fx,e,r.value)})},bi=function(r,e,t){return function(i){r(e,i,t)}},gi=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=mx,af(r,!0))},Ao=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Jh("Promise can't be resolved itself");var i=tf(e);i?ko(function(){var a={done:!1};try{Si(i,e,bi(Ao,a,r),bi(gi,a,r))}catch(s){gi(a,s,r)}}):(r.value=e,r.state=Zh,af(r,!1))}catch(a){gi({done:!1},a,r)}}};if(Kh&&(Vt=function(e){ax(this,Ka),ix(e),Si(Ja,this);var t=Eo(this);try{e(bi(Ao,t),bi(gi,t))}catch(i){gi(t,i)}},Ka=Vt.prototype,Ja=function(e){dx(this,{type:ts,done:!1,notified:!1,parent:!1,reactions:new ux,rejection:!1,state:Hh,value:void 0})},Ja.prototype=qh(Ka,"then",function(e,t){var i=Eo(this),a=Po(sx(this,Vt));return i.parent=!0,a.ok=Xa(e)?e:!0,a.fail=Xa(t)&&t,a.domain=Za?Ro.domain:void 0,i.state===Hh?i.reactions.add(a):ko(function(){rf(a,i)}),a.promise}),jh=function(){var r=new Ja,e=Eo(r);this.promise=r,this.resolve=bi(Ao,e),this.reject=bi(gi,e)},zh.f=Po=function(r){return r===Vt||r===bx?new jh(r):px(r)},!ZE&&Xa(es)&&mi!==Object.prototype)){Gh=mi.then,lx||qh(mi,"then",function(e,t){var i=this;return new Vt(function(a,s){Si(Gh,i,a,s)}).then(e,t)},{unsafe:!0});try{delete mi.constructor}catch{}Uh&&Uh(mi,Ka)}XE({global:!0,constructor:!0,wrap:!0,forced:Kh},{Promise:Vt});ex(Vt,ts,!1,!0);tx(ts)});var df=f((lM,lf)=>{"use strict";var vx=te(),uf=vx("iterator"),cf=!1;try{of=0,$o={next:function(){return{done:!!of++}},return:function(){cf=!0}},$o[uf]=function(){return this},Array.from($o,function(){throw 2})}catch{}var of,$o;lf.exports=function(r,e){try{if(!e&&!cf)return!1}catch{return!1}var t=!1;try{var i={};i[uf]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var Mo=f((dM,pf)=>{"use strict";var yx=Ot(),Tx=df(),Ix=hi().CONSTRUCTOR;pf.exports=Ix||!Tx(function(r){yx.all(r).then(void 0,function(){})})});var hf=f(()=>{"use strict";var Ex=Pe(),xx=ge(),Px=tt(),Ax=fi(),kx=za(),wx=Ha(),Rx=Mo();Ex({target:"Promise",stat:!0,forced:Rx},{all:function(e){var t=this,i=Ax.f(t),a=i.resolve,s=i.reject,n=kx(function(){var o=Px(t.resolve),c=[],u=0,d=1;wx(e,function(l){var p=u++,h=!1;d++,xx(o,t,l).then(function(m){h||(h=!0,c[p]=m,--d||a(c))},s)}),--d||a(c)});return n.error&&s(n.value),i.promise}})});var mf=f(()=>{"use strict";var Lx=Pe(),$x=Ne(),Mx=hi().CONSTRUCTOR,Do=Ot(),Cx=et(),Dx=U(),Bx=li(),ff=Do&&Do.prototype;Lx({target:"Promise",proto:!0,forced:Mx,real:!0},{catch:function(r){return this.then(void 0,r)}});!$x&&Dx(Do)&&(Co=Cx("Promise").prototype.catch,ff.catch!==Co&&Bx(ff,"catch",Co,{unsafe:!0}));var Co});var bf=f(()=>{"use strict";var Ox=Pe(),Vx=ge(),_x=tt(),Nx=fi(),Fx=za(),qx=Ha(),Ux=Mo();Ox({target:"Promise",stat:!0,forced:Ux},{race:function(e){var t=this,i=Nx.f(t),a=i.reject,s=Fx(function(){var n=_x(t.resolve);qx(e,function(o){Vx(n,t,o).then(i.resolve,a)})});return s.error&&a(s.value),i.promise}})});var gf=f(()=>{"use strict";var Hx=Pe(),jx=fi(),Gx=hi().CONSTRUCTOR;Hx({target:"Promise",stat:!0,forced:Gx},{reject:function(e){var t=jx.f(this),i=t.reject;return i(e),t.promise}})});var Bo=f((yM,Sf)=>{"use strict";var Wx=Qe(),Yx=Ee(),Qx=fi();Sf.exports=function(r,e){if(Wx(r),Yx(e)&&e.constructor===r)return e;var t=Qx.f(r),i=t.resolve;return i(e),t.promise}});var Tf=f(()=>{"use strict";var zx=Pe(),Kx=et(),vf=Ne(),Jx=Ot(),yf=hi().CONSTRUCTOR,Xx=Bo(),Zx=Kx("Promise"),eP=vf&&!yf;zx({target:"Promise",stat:!0,forced:vf||yf},{resolve:function(e){return Xx(eP&&this===Zx?Jx:this,e)}})});var If=f(()=>{"use strict";nf();hf();mf();bf();gf();Tf()});var Af=f(()=>{"use strict";var tP=Pe(),iP=Ne(),is=Ot(),rP=be(),xf=et(),Pf=U(),aP=ro(),Ef=Bo(),sP=li(),Vo=is&&is.prototype,nP=!!is&&rP(function(){Vo.finally.call({then:function(){}},function(){})});tP({target:"Promise",proto:!0,real:!0,forced:nP},{finally:function(r){var e=aP(this,xf("Promise")),t=Pf(r);return this.then(t?function(i){return Ef(e,r()).then(function(){return i})}:r,t?function(i){return Ef(e,r()).then(function(){throw i})}:r)}});!iP&&Pf(is)&&(Oo=xf("Promise").prototype.finally,Vo.finally!==Oo&&sP(Vo,"finally",Oo,{unsafe:!0}));var Oo});var rs=f((kM,kf)=>{"use strict";var oP=et();kf.exports=oP});var Rf=f((wM,wf)=>{"use strict";Dp();If();Af();var uP=rs();wf.exports=uP("Promise","finally")});var $f=f((RM,Lf)=>{"use strict";var cP=Rf();Lf.exports=cP});var as=f((LM,Mf)=>{"use strict";var lP=$f();Mf.exports=lP});var rm=f(()=>{"use strict";var NP=Pe(),FP=Wi(),qP=Da(),UP=Ca(),HP=en();NP({target:"Array",proto:!0},{at:function(e){var t=FP(this),i=qP(t),a=UP(e),s=a>=0?a:i+a;return s<0||s>=i?void 0:t[s]}});HP("at")});var sm=f((NC,am)=>{"use strict";rm();var jP=rs();am.exports=jP("Array","at")});var om=f((FC,nm)=>{"use strict";var GP=sm();nm.exports=GP});var pr=f((qC,um)=>{"use strict";var WP=om();um.exports=WP});var rb=f(()=>{"use strict"});var ab=f(()=>{"use strict"});var nb=f((qO,sb)=>{"use strict";var XA=Ee(),ZA=ii(),ek=te(),tk=ek("match");sb.exports=function(r){var e;return XA(r)&&((e=r[tk])!==void 0?!!e:ZA(r)==="RegExp")}});var ub=f((UO,ob)=>{"use strict";var ik=Xi(),rk=String;ob.exports=function(r){if(ik(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return rk(r)}});var lb=f((HO,cb)=>{"use strict";var ak=Qe();cb.exports=function(){var r=ak(this),e="";return r.hasIndices&&(e+="d"),r.global&&(e+="g"),r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.dotAll&&(e+="s"),r.unicode&&(e+="u"),r.unicodeSets&&(e+="v"),r.sticky&&(e+="y"),e}});var hb=f((jO,pb)=>{"use strict";var sk=ge(),nk=Fe(),ok=Ui(),uk=lb(),db=RegExp.prototype;pb.exports=function(r){var e=r.flags;return e===void 0&&!("flags"in db)&&!nk(r,"flags")&&ok(db,r)?sk(uk,r):e}});var mb=f((GO,fb)=>{"use strict";var hu=ne(),ck=Wi(),lk=Math.floor,du=hu("".charAt),dk=hu("".replace),pu=hu("".slice),pk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,hk=/\$([$&'`]|\d{1,2})/g;fb.exports=function(r,e,t,i,a,s){var n=t+r.length,o=i.length,c=hk;return a!==void 0&&(a=ck(a),c=pk),dk(s,c,function(u,d){var l;switch(du(d,0)){case"$":return"$";case"&":return r;case"`":return pu(e,0,t);case"'":return pu(e,n);case"<":l=a[pu(d,1,-1)];break;default:var p=+d;if(p===0)return u;if(p>o){var h=lk(p/10);return h===0?u:h<=o?i[h-1]===void 0?du(d,1):i[h-1]+du(d,1):u}l=i[p-1]}return l===void 0?"":l})}});var Sb=f(()=>{"use strict";var fk=Pe(),mk=ge(),mu=ne(),bb=Fi(),bk=U(),gk=ri(),Sk=nb(),Ri=ub(),vk=ji(),yk=hb(),Tk=mb(),Ik=te(),Ek=Ne(),xk=Ik("replace"),Pk=TypeError,fu=mu("".indexOf),Ak=mu("".replace),gb=mu("".slice),kk=Math.max;fk({target:"String",proto:!0},{replaceAll:function(e,t){var i=bb(this),a,s,n,o,c,u,d,l,p,h,m=0,b="";if(!gk(e)){if(a=Sk(e),a&&(s=Ri(bb(yk(e))),!~fu(s,"g")))throw new Pk("`.replaceAll` does not allow non-global regexes");if(n=vk(e,xk),n)return mk(n,e,i,t);if(Ek&&a)return Ak(Ri(i),e,t)}for(o=Ri(i),c=Ri(e),u=bk(t),u||(t=Ri(t)),d=c.length,l=kk(1,d),p=fu(o,c);p!==-1;)h=u?Ri(t(c,p,o)):Tk(c,o,p,[],void 0,t),b+=gb(o,m,p)+h,m=p+d,p=p+l>o.length?-1:fu(o,c,p+l);return m<o.length&&(b+=gb(o,m)),b}})});var yb=f((QO,vb)=>{"use strict";rb();ab();Sb();var wk=rs();vb.exports=wk("String","replaceAll")});var Ib=f((zO,Tb)=>{"use strict";var Rk=yb();Tb.exports=Rk});var xb=f((KO,Eb)=>{"use strict";var Lk=Ib();Eb.exports=Lk});var Ju="2.0.113-dev.4ab3b06b.0";var se=(a=>(a.STOPPED="stopped",a.READY="ready",a.PLAYING="playing",a.PAUSED="paused",a))(se||{}),mt=(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))(mt||{});var Ta=(a=>(a.NOT_AVAILABLE="NOT_AVAILABLE",a.AVAILABLE="AVAILABLE",a.CONNECTING="CONNECTING",a.CONNECTED="CONNECTED",a))(Ta||{}),Qs=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Qs||{});var zs=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(zs||{});import{assertNever as rc,assertNonNullable as Kg,isNonNullable as Ia,ValueSubject as Ks,Subject as Jg,Subscription as Xg,merge as Zg,observableFrom as eS,fromEvent as Zu,map as ec,tap as tc,filterChanged as tS,isNullable as Js,ErrorCategory as ic}from"@vkontakte/videoplayer-shared";var Xu=r=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",r),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Ea=class{constructor(e){this.connection$=new Ks(void 0);this.castState$=new Ks("NOT_AVAILABLE");this.errorEvent$=new Jg;this.realCastState$=new Ks("NOT_AVAILABLE");this.subscription=new Xg;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=Ia(window.chrome?.cast),a=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&this.initializeCastApi()},a||Xu("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:ic.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(){Ia(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Js(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Js(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Zu(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(a=>{switch(a.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 rc(a.sessionState)}})).add(Zg(Zu(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(tc(a=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(a)}`})}),ec(a=>a.castState)),eS([i.getCastState()])).pipe(tS(),ec(iS),tc(a=>{this.log({message:`realCastState$: ${a}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(a=>{let s=a==="CONNECTED",n=Ia(this.connection$.getValue());if(s&&!n){let o=i.getCurrentSession();Kg(o);let c=o.getCastDevice(),u=o.getMediaSession()?.media?.contentId;(Js(u)||u===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:c}))}else!s&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(a==="CONNECTED"?Ia(this.connection$.getValue())?"CONNECTED":"AVAILABLE":a)}))}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(a){this.errorEvent$.next({id:"ChromecastInitializer",category:ic.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:a})}}},iS=r=>{switch(r){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 rc(r)}};var Tg=Ye(Xn(),1);var Uf=Ye(as(),1);import{assertNever as Cf}from"@vkontakte/videoplayer-shared";var J=(r,e=0,t=0)=>{switch(t){case 0:return r.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return r;let i=new URL(r);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(r);return!i.searchParams.get("offset_p")&&e===0?r:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:Cf(t)}return r},_o=(r,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(r);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(r);return Number(t.searchParams.get("offset_p")??0)}default:Cf(e)}};var I=(r,e,t=!1)=>{let i=r.getTransition();(t||!i||i.to===e)&&r.setState(e)};import{isNonNullable as dP,Subject as ss,merge as Df}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new ss;this.transitionEnded$=new ss;this.transitionUpdated$=new ss;this.forceChanged$=new ss;this.stateChangeStarted$=Df(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Df(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||dP(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 pP}from"@vkontakte/videoplayer-shared";var Bf=r=>{switch(r){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 pP(r)}};import{assertNever as vi,assertNonNullable as _t,debounce as Of,ErrorCategory as Vf,fromEvent as Nt,isNonNullable as _f,map as Nf,merge as Ff,observableFrom as hP,Subject as fP,Subscription as No,timeout as mP,getHighestQuality as bP}from"@vkontakte/videoplayer-shared";var gP=5,SP=5,vP=500,qf=7e3,cr=class{constructor(e){this.subscription=new No;this.loadMediaTimeoutSubscription=new No;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),a=this.params.desiredState.playbackState.getTransition(),s=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(s)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(a?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.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:vi(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:vi(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:vi(e)}break}default:vi(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Bf(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 No;this.subscription.add(e),this.subscription.add(Ff(this.videoState.stateChangeStarted$.pipe(Nf(a=>`stateChangeStarted$ ${JSON.stringify(a)}`)),this.videoState.stateChangeEnded$.pipe(Nf(a=>`stateChangeEnded$ ${JSON.stringify(a)}`))).subscribe(a=>this.log({message:`[videoState] ${a}`})));let t=(a,s)=>this.subscription.add(a.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let a=new fP;e.add(a.pipe(Of(vP)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(Nt(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-s)>gP)&&a.next(o),s=o})),e.add(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemotePause():this.handleRemotePlay()}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),a=>{this.logRemoteEvent(a);let{remotePlayer:s}=this.params.connection,n=a.value,o=this.params.output.isBuffering$.getValue(),c=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==c&&this.params.output.isBuffering$.next(c),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&s.duration-s.currentTime<SP&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),I(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:vi(n)}}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({volume:a.value})}),t(Nt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({muted:a.value})});let i=Ff(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,hP(["init"])).pipe(Of(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"),I(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),I(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"),I(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),I(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&I(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,a,s;switch(e){case"MPEG":{let u=t[e];_t(u);let d=bP(Object.keys(u));_t(d);let l=u[d];_t(l),i=l,a="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let u=t[e];_t(u),i=u.url,a="application/x-mpegurl",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let u=t[e];_t(u),i=u.url,a="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let u=t[e];_t(u),i=J(u.url),a="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let u="Unsupported format for Chromecast",d=new Error(u);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Vf.VIDEO_PIPELINE,message:u,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return vi(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,a);n.contentUrl=i,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:c}=this.params.meta;return _f(o)&&(n.metadata.title=o),_f(c)&&(n.metadata.subtitle=c),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((a,s)=>{this.loadMediaTimeoutSubscription.add(mP(qf).subscribe(()=>s(`timeout(${qf})`)))});(0,Uf.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()},a=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${a}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Vf.VIDEO_PIPELINE,message:s,thrown:a})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as jf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as yP}from"@vkontakte/videoplayer-shared";var Hf=r=>{try{r.pause(),r.playbackRate=0,yP(r),r.remove()}catch(e){console.error(e)}};import{fromEvent as TP,Subscription as IP}from"@vkontakte/videoplayer-shared";var Fo=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)}},qo=window.WeakMap?new WeakMap:new Fo,Uo=window.WeakMap?new WeakMap:new Map,EP=(r,e=20)=>{let t=0;return TP(r,"ratechange").subscribe(i=>{t++,t>=e&&(r.currentTime=r.currentTime,t=0)})},oe=(r,{audioVideoSyncRate:e})=>{let t=r.querySelector("video"),i=!!t;t?jf(t):(t=document.createElement("video"),r.appendChild(t)),qo.set(t,i);let a=new IP;return a.add(EP(t,e)),Uo.set(t,a),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},ue=r=>{Uo.get(r)?.unsubscribe(),Uo.delete(r);let t=qo.get(r);qo.delete(r),t?jf(r):Hf(r)};import{assertNonNullable as lr,isNonNullable as Ke,isNullable as AP,fromEvent as yi,merge as Gf,observableFrom as Wf,filterChanged as Yf,map as dr,Subject as Qf,Subscription as kP,ValueSubject as wP,ErrorCategory as RP}from"@vkontakte/videoplayer-shared";import{isNonNullable as Ho,isNullable as xP,Subscription as PP}from"@vkontakte/videoplayer-shared";var ns=(r,e,t,{equal:i=(n,o)=>n===o,changed$:a,onError:s}={})=>{let n=r.getState(),o=e(),c=xP(a),u=new PP;return a&&u.add(a.subscribe(d=>{let l=r.getState();i(d,l)&&r.setState(d)},s)),i(o,n)||(t(n),c&&r.setState(n)),u.add(r.stateChangeStarted$.subscribe(d=>{t(d.to),c&&r.setState(d.to)},s)),u},ze=(r,e,t)=>ns(e,()=>r.loop,i=>{Ho(i)&&(r.loop=i)},{onError:t}),ce=(r,e,t,i)=>ns(e,()=>({muted:r.muted,volume:r.volume}),a=>{Ho(a)&&(r.muted=a.muted,r.volume=a.volume)},{equal:(a,s)=>a===s||a?.muted===s?.muted&&a?.volume===s?.volume,changed$:t,onError:i}),Ae=(r,e,t,i)=>ns(e,()=>r.playbackRate,a=>{Ho(a)&&(r.playbackRate=a)},{changed$:t,onError:i}),gt=ns;var LP=r=>["__",r.language,r.label].join("|"),$P=(r,e)=>{if(r.id===e)return!0;let[t,i,a]=e.split("|");return r.language===i&&r.label===a},jo=class r{constructor(){this.available$=new Qf;this.current$=new wP(void 0);this.error$=new Qf;this.subscription=new kP;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let a=s=>{this.error$.next({id:"TextTracksManager",category:RP.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};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(gt(t.internalTextTracks,()=>Object.values(this.internalTracks),s=>{Ke(s)&&this.setInternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(dr(s=>s.filter(({type:n})=>n==="internal"))),onError:a})),this.subscription.add(gt(t.externalTextTracks,()=>Object.values(this.externalTracks),s=>{Ke(s)&&this.setExternal(s)},{equal:(s,n)=>Ke(s)&&Ke(n)&&s.length===n.length&&s.every(({id:o},c)=>o===n[c].id),changed$:this.available$.pipe(dr(s=>s.filter(({type:n})=>n==="external"))),onError:a})),this.subscription.add(gt(t.currentTextTrack,()=>{if(this.video)return;let s=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return s&&this.htmlTextTrackToITextTrack(s).id},s=>this.select(s),{changed$:this.current$,onError:a})),this.subscription.add(gt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){lr(this.video);let{textTracks:e}=this.video;this.subscription.add(yi(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(Gf(yi(e,"addtrack"),yi(e,"removetrack"),Wf(["init"])).pipe(dr(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),Yf((i,a)=>i.length===a.length&&i.every(({id:s},n)=>s===a[n].id))).subscribe(this.available$)),this.subscription.add(Gf(yi(e,"change"),Wf(["init"])).pipe(dr(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),dr(i=>i&&this.htmlTextTrackToITextTrack(i).id),Yf()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(yi(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let a=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",a))};i.track?.addEventListener("cuechange",a)})),this.subscription.add(yi(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 a=i;Ke(t.align)&&(a.align=t.align),Ke(t.position)&&(a.position=t.position),Ke(t.size)&&(a.size=t.size),Ke(t.line)&&(a.line=t.line)}}htmlTextTracksAsArray(e=!1){lr(this.video);let t=[...this.video.textTracks];return e?t:t.filter(r.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,a=e.id?e.id:LP(e),s=this.externalTracks.has(a),n=a.includes("auto");return s?{id:a,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(a)?.url}:{id:a,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(a)?.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:a,isAuto:s})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===a&&n.isAuto===s)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(a=>a.id===i)).forEach(([,i])=>this.detach(i))}select(e){lr(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(AP(e)||!$P(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){lr(this.video);let t=document.createElement("track");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){lr(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)}},ke=jo;var at=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 zf=r=>{let e=r;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Go=r=>{let e=zf(r);return!!(e&&e.fullscreenElement&&e.fullscreenElement===r)},Kf=r=>{let e=zf(r);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===r)};import{fromEvent as we,map as St,merge as Xf,filterChanged as CP,isNonNullable as Zf,Subject as DP,filter as em,mapTo as tm,combine as BP,once as OP,ErrorCategory as VP,ValueSubject as im,clientChecker as _P}from"@vkontakte/videoplayer-shared";var MP=3,Jf=(r,e,t=MP)=>{let i=0,a=0;for(let s=0;s<r.length;s++){let n=r.start(s),o=r.end(s);if(n<=e&&e<=o){if(i=n,a=o,!t)return{from:i,to:a};for(let c=s-1;c>=0;c--)r.end(c)+t>=i&&(i=r.start(c));for(let c=s+1;c<r.length;c++)r.start(c)-t<=a&&(a=r.end(c))}}return{from:i,to:a}};var le=r=>{let e=y=>we(r,y).pipe(tm(void 0)),i=Xf(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(y=>we(r,y))).pipe(St(y=>y.type==="ended"?r.readyState<2:r.readyState<3),CP()),a=Xf(we(r,"progress"),we(r,"timeupdate")).pipe(St(()=>Jf(r.buffered,r.currentTime))),s=_P.isSafari?BP({play:e("play").pipe(OP()),playing:e("playing")}).pipe(tm(void 0)):e("playing"),n=we(r,"volumechange").pipe(St(()=>({muted:r.muted,volume:r.volume}))),o=we(r,"ratechange").pipe(St(()=>r.playbackRate)),c=we(r,"error").pipe(em(()=>!!(r.error||r.played.length)),St(()=>{let y=r.error;return{id:y?`MediaError#${y.code}`:"HtmlVideoError",category:VP.VIDEO_PIPELINE,message:y?y.message:"Error event from HTML video element",thrown:r.error??void 0}})),u=we(r,"timeupdate").pipe(St(()=>r.currentTime)),d=new DP,l=.3,p;u.subscribe(y=>{r.loop&&Zf(p)&&Zf(y)&&p>=r.duration-l&&y<=l&&d.next(p),p=y});let h=e("pause").pipe(em(()=>!r.error&&p!==r.duration)),m=we(r,"enterpictureinpicture"),b=we(r,"leavepictureinpicture"),g=new im(Kf(r));m.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let v=new im(Go(r));return we(r,"fullscreenchange").pipe(St(()=>Go(r))).subscribe(v),{playing$:s,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:d,error$:c,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:u,durationChange$:we(r,"durationchange").pipe(St(()=>r.duration)),isBuffering$:i,currentBuffer$:a,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:v}};import{VideoQuality as vt}from"@vkontakte/videoplayer-shared";var yt=r=>{switch(r){case"mobile":return vt.Q_144P;case"lowest":return vt.Q_240P;case"low":return vt.Q_360P;case"sd":case"medium":return vt.Q_480P;case"hd":case"high":return vt.Q_720P;case"fullhd":case"full":return vt.Q_1080P;case"quadhd":case"quad":return vt.Q_1440P;case"ultrahd":case"ultra":return vt.Q_2160P}};var Ft=Ye(pr(),1);import{isNonNullable as de,isNullable as Yo,now as bm,isHigher as Qo,isHigherOrEqual as pm,isInvariantQuality as hm,isLower as zo,isLowerOrEqual as fm,videoSizeToQuality as YP,assertNotEmptyArray as gm,assertNonNullable as QP}from"@vkontakte/videoplayer-shared";var Wo=!1,st={},cm=r=>{Wo=r},lm=()=>{st={}},dm=r=>{r(st)},hr=(r,e)=>{Wo&&(st.meta=st.meta??{},st.meta[r]=e)},ie=class{constructor(e){this.name=e}next(e){if(!Wo)return;st.series=st.series??{};let t=st.series[this.name]??[];t.push([Date.now(),e]),st.series[this.name]=t}};var zP=new ie("best_bitrate"),Sm=(r,e,t)=>(e-t)*Math.pow(2,-10*r)+t;var Ko=r=>(e,t)=>r*(Number(e.bitrate)-Number(t.bitrate)),fr=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=bm()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},vm='Assertion "ABR Tracks is empty array" failed',os=(r,e,t,i)=>{let a=[...e].sort(Ko(1)),s=[...t].sort(Ko(1)),n=s.filter(c=>de(c.bitrate)&&de(r.bitrate)?r.bitrate/c.bitrate>i:!0),o=(0,Ft.default)(s,Math.round(s.length*a.indexOf(r)/(a.length+1)))??(0,Ft.default)(s,-1);return o&&n.includes(o)?o:n.length?(0,Ft.default)(n,-1):(0,Ft.default)(s,0)},mm=r=>"quality"in r,ym=(r,e,t,i)=>{let a=t&&i&&i.history[t.id]&&bm()-i.history[t.id]<=r.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let s=i.last;i?.recordSwitch(s);let n=mm(s)?"video":"audio",o=mm(s)?s.quality:s.bitrate;return e({message:`
|
|
7
7
|
[last ${n} selected] ${o}
|
|
8
8
|
`}),s}return i?.recordSwitch(t),t},Tt=(r,{container:e,throughput:t,tuning:i,limits:a,reserve:s=0,forwardBufferHealth:n,playbackRate:o,current:c,history:u,visible:d,droppedVideoMaxQualityLimit:l,abrLogger:p})=>{gm(r,vm);let h=i.usePixelRatio?window.devicePixelRatio??1:1,m=i.limitByContainer&&e&&e.width>0&&e.height>0&&{width:e.width*h*i.containerSizeFactor,height:e.height*h*i.containerSizeFactor},b=m&&YP(m),g=i.considerPlaybackRate&&de(o)?o:1,v=r.filter(w=>!hm(w.quality)).sort((w,R)=>Qo(w.quality,R.quality)?-1:1),k=(0,Ft.default)(v,-1)?.quality,y=(0,Ft.default)(v,0)?.quality,S=Yo(a)||de(a.min)&&de(a.max)&&zo(a.max,a.min)||de(a.min)&&y&&Qo(a.min,y)||de(a.max)&&k&&zo(a.max,k),T=g*Sm(n??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),E={},V=v.filter(w=>{if(!(b?zo(w.quality,b):!0))return E[w.quality]="FitsContainer",!1;if(!(de(t)&&isFinite(t)&&de(w.bitrate)?t-s>=w.bitrate*T:!0))return E[w.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&de(i.minBufferToSwitchUp)&&c&&!hm(c.quality)&&(n??0)<i.minBufferToSwitchUp&&Qo(w.quality,c.quality))return E[w.quality]="Buffer",!1;if(!!l&&pm(w.quality,l))return E[w.quality]="DroppedFramesLimit",!1;let ae=S||(Yo(a.max)||fm(w.quality,a.max))&&(Yo(a.min)||pm(w.quality,a.min)),x=de(d)&&!d?fm(w.quality,i.backgroundVideoQualityLimit):!0;return!ae||!x?(E[w.quality]="FitsQualityLimits",!1):!0})[0];V&&V.bitrate&&zP.next(V.bitrate);let N=V??v[Math.ceil((v.length-1)/2)]??r[0];return N.quality!==u?.last?.quality&&p({message:`
|
|
9
9
|
[VIDEO TRACKS ABR]
|
package/evergreen.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/videoplayer-core v2.0.113-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/videoplayer-core v2.0.113-dev.4ab3b06b.0
|
|
3
|
+
* Wed, 09 Oct 2024 08:57:48 GMT
|
|
4
4
|
* https://st.mycdn.me/static/vkontakte-videoplayer/2-0-113/doc/
|
|
5
5
|
*/
|
|
6
|
-
var qa="2.0.113-dev.14316675.0";var te=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(te||{}),Ye=(S=>(S.MPEG="MPEG",S.DASH="DASH",S.DASH_SEP="DASH_SEP",S.DASH_SEP_VK="DASH_SEP",S.DASH_WEBM="DASH_WEBM",S.DASH_WEBM_AV1="DASH_WEBM_AV1",S.DASH_STREAMS="DASH_STREAMS",S.DASH_WEBM_VK="DASH_WEBM",S.DASH_ONDEMAND="DASH_ONDEMAND",S.DASH_ONDEMAND_VK="DASH_ONDEMAND",S.DASH_LIVE="DASH_LIVE",S.DASH_LIVE_CMAF="DASH_LIVE_CMAF",S.DASH_LIVE_WEBM="DASH_LIVE_WEBM",S.HLS="HLS",S.HLS_ONDEMAND="HLS_ONDEMAND",S.HLS_JS="HLS",S.HLS_LIVE="HLS_LIVE",S.HLS_LIVE_CMAF="HLS_LIVE_CMAF",S.WEB_RTC_LIVE="WEB_RTC_LIVE",S))(Ye||{});var Ji=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(Ji||{}),Ur=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Ur||{});var Hr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(Hr||{});import{assertNever as es,assertNonNullable as Do,isNonNullable as Xi,ValueSubject as Qr,Subject as Co,Subscription as Bo,merge as Vo,observableFrom as Oo,fromEvent as Ka,map as Ja,tap as Xa,filterChanged as No,isNullable as jr,ErrorCategory as Za}from"@vkontakte/videoplayer-shared";var za=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Zi=class{constructor(e){this.connection$=new Qr(void 0);this.castState$=new Qr("NOT_AVAILABLE");this.errorEvent$=new Co;this.realCastState$=new Qr("NOT_AVAILABLE");this.subscription=new Bo;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=Xi(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&this.initializeCastApi()},r||za("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:Za.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(){Xi(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();jr(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();jr(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Ka(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 es(r.sessionState)}})).add(Vo(Ka(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Xa(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),Ja(r=>r.castState)),Oo([i.getCastState()])).pipe(No(),Ja(_o),Xa(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=Xi(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Do(o);let u=o.getCastDevice(),d=o.getMediaSession()?.media?.contentId;(jr(d)||d===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!a&&s&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?Xi(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:Za.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},_o=n=>{switch(n){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 es(n)}};import{assertNever as ts}from"@vkontakte/videoplayer-shared";var q=(n,e=0,t=0)=>{switch(t){case 0:return n.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return n;let i=new URL(n);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(n);return!i.searchParams.get("offset_p")&&e===0?n:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:ts(t)}return n},Gr=(n,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(n);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(n);return Number(t.searchParams.get("offset_p")??0)}default:ts(e)}};var y=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as Fo,Subject as er,merge as is}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new er;this.transitionEnded$=new er;this.transitionUpdated$=new er;this.forceChanged$=new er;this.stateChangeStarted$=is(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=is(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||Fo(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 Uo}from"@vkontakte/videoplayer-shared";var rs=n=>{switch(n){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 Uo(n)}};import{assertNever as At,assertNonNullable as dt,debounce as as,ErrorCategory as ss,fromEvent as lt,isNonNullable as ns,map as os,merge as us,observableFrom as Ho,Subject as Qo,Subscription as Wr,timeout as jo,getHighestQuality as Go}from"@vkontakte/videoplayer-shared";var Wo=5,Yo=5,qo=500,ds=7e3,Qt=class{constructor(e){this.subscription=new Wr;this.loadMediaTimeoutSubscription=new Wr;this.videoState=new $("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:At(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:At(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:At(e)}break}default:At(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(rs(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 Wr;this.subscription.add(e),this.subscription.add(us(this.videoState.stateChangeStarted$.pipe(os(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(os(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 Qo;e.add(r.pipe(as(qo)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(s=>{this.logRemoteEvent(s);let o=s.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>Wo)&&r.next(o),a=o})),e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,s=r.value,o=this.params.output.isBuffering$.getValue(),u=s===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),s){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<Yo&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),y(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:At(s)}}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=us(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,Ho(["init"])).pipe(as(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"),y(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),y(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"),y(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),y(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&y(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 d=t[e];dt(d);let c=Go(Object.keys(d));dt(c);let l=d[c];dt(l),i=l,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let d=t[e];dt(d),i=d.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 d=t[e];dt(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let d=t[e];dt(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let d=t[e];dt(d),i=q(d.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let d="Unsupported format for Chromecast",c=new Error(d);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:ss.VIDEO_PIPELINE,message:d,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return At(e)}let s=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);s.contentUrl=i,s.streamType=a,s.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return ns(o)&&(s.metadata.title=o),ns(u)&&(s.metadata.subtitle=u),s}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(jo(ds).subscribe(()=>a(`timeout(${ds})`)))});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:ss.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as cs}from"@vkontakte/videoplayer-shared";import{clearVideoElement as zo}from"@vkontakte/videoplayer-shared";var ls=n=>{try{n.pause(),n.playbackRate=0,zo(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as Ko,Subscription as Jo}from"@vkontakte/videoplayer-shared";var Yr=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)}},qr=window.WeakMap?new WeakMap:new Yr,zr=window.WeakMap?new WeakMap:new Map,Xo=(n,e=20)=>{let t=0;return Ko(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},ie=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?cs(t):(t=document.createElement("video"),n.appendChild(t)),qr.set(t,i);let r=new Jo;return r.add(Xo(t,e)),zr.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},re=n=>{zr.get(n)?.unsubscribe(),zr.delete(n);let t=qr.get(n);qr.delete(n),t?cs(n):ls(n)};import{assertNonNullable as jt,isNonNullable as De,isNullable as tu,fromEvent as Pt,merge as ps,observableFrom as hs,filterChanged as ms,map as Gt,Subject as fs,Subscription as iu,ValueSubject as ru,ErrorCategory as au}from"@vkontakte/videoplayer-shared";import{isNonNullable as Kr,isNullable as Zo,Subscription as eu}from"@vkontakte/videoplayer-shared";var tr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),u=Zo(r),d=new eu;return r&&d.add(r.subscribe(c=>{let l=n.getState();i(c,l)&&n.setState(c)},a)),i(o,s)||(t(s),u&&n.setState(s)),d.add(n.stateChangeStarted$.subscribe(c=>{t(c.to),u&&n.setState(c.to)},a)),d},Re=(n,e,t)=>tr(e,()=>n.loop,i=>{Kr(i)&&(n.loop=i)},{onError:t}),ae=(n,e,t,i)=>tr(e,()=>({muted:n.muted,volume:n.volume}),r=>{Kr(r)&&(n.muted=r.muted,n.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),fe=(n,e,t,i)=>tr(e,()=>n.playbackRate,r=>{Kr(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),qe=tr;var su=n=>["__",n.language,n.label].join("|"),nu=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},Jr=class n{constructor(){this.available$=new fs;this.current$=new ru(void 0);this.error$=new fs;this.subscription=new iu;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:au.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(qe(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{De(a)&&this.setInternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Gt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(qe(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{De(a)&&this.setExternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Gt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(qe(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:s})=>s==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(qe(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){jt(this.video);let{textTracks:e}=this.video;this.subscription.add(Pt(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(ps(Pt(e,"addtrack"),Pt(e,"removetrack"),hs(["init"])).pipe(Gt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),ms((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(ps(Pt(e,"change"),hs(["init"])).pipe(Gt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Gt(i=>i&&this.htmlTextTrackToITextTrack(i).id),ms()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Pt(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let s=a.target?.cues??null;s&&s.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Pt(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;De(t.align)&&(r.align=t.align),De(t.position)&&(r.position=t.position),De(t.size)&&(r.size=t.size),De(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){jt(this.video);let t=[...this.video.textTracks];return e?t:t.filter(n.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:su(e),a=this.externalTracks.has(r),s=r.includes("auto");return a?{id:r,type:"external",isAuto:s,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:s,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(([,s])=>s.language===r&&s.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){jt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(tu(e)||!nu(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){jt(this.video);let t=document.createElement("track");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){jt(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)}},be=Jr;var Ne=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 bs=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Xr=n=>{let e=bs(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},gs=n=>{let e=bs(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ge,map as ze,merge as vs,filterChanged as uu,isNonNullable as ys,Subject as du,filter as Ts,mapTo as Is,combine as lu,once as cu,ErrorCategory as pu,ValueSubject as Es,clientChecker as hu}from"@vkontakte/videoplayer-shared";var ou=3,Ss=(n,e,t=ou)=>{let i=0,r=0;for(let a=0;a<n.length;a++){let s=n.start(a),o=n.end(a);if(s<=e&&e<=o){if(i=s,r=o,!t)return{from:i,to:r};for(let u=a-1;u>=0;u--)n.end(u)+t>=i&&(i=n.start(u));for(let u=a+1;u<n.length;u++)n.start(u)-t<=r&&(r=n.end(u))}}return{from:i,to:r}};var se=n=>{let e=S=>ge(n,S).pipe(Is(void 0)),i=vs(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(S=>ge(n,S))).pipe(ze(S=>S.type==="ended"?n.readyState<2:n.readyState<3),uu()),r=vs(ge(n,"progress"),ge(n,"timeupdate")).pipe(ze(()=>Ss(n.buffered,n.currentTime))),a=hu.isSafari?lu({play:e("play").pipe(cu()),playing:e("playing")}).pipe(Is(void 0)):e("playing"),s=ge(n,"volumechange").pipe(ze(()=>({muted:n.muted,volume:n.volume}))),o=ge(n,"ratechange").pipe(ze(()=>n.playbackRate)),u=ge(n,"error").pipe(Ts(()=>!!(n.error||n.played.length)),ze(()=>{let S=n.error;return{id:S?`MediaError#${S.code}`:"HtmlVideoError",category:pu.VIDEO_PIPELINE,message:S?S.message:"Error event from HTML video element",thrown:n.error??void 0}})),d=ge(n,"timeupdate").pipe(ze(()=>n.currentTime)),c=new du,l=.3,p;d.subscribe(S=>{n.loop&&ys(p)&&ys(S)&&p>=n.duration-l&&S<=l&&c.next(p),p=S});let h=e("pause").pipe(Ts(()=>!n.error&&p!==n.duration)),m=ge(n,"enterpictureinpicture"),f=ge(n,"leavepictureinpicture"),g=new Es(gs(n));m.subscribe(()=>g.next(!0)),f.subscribe(()=>g.next(!1));let P=new Es(Xr(n));return ge(n,"fullscreenchange").pipe(ze(()=>Xr(n))).subscribe(P),{playing$:a,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:c,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:d,durationChange$:ge(n,"durationchange").pipe(ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:g,inFullscreen$:P}};import{VideoQuality as Ke}from"@vkontakte/videoplayer-shared";var Je=n=>{switch(n){case"mobile":return Ke.Q_144P;case"lowest":return Ke.Q_240P;case"low":return Ke.Q_360P;case"sd":case"medium":return Ke.Q_480P;case"hd":case"high":return Ke.Q_720P;case"fullhd":case"full":return Ke.Q_1080P;case"quadhd":case"quad":return Ke.Q_1440P;case"ultrahd":case"ultra":return Ke.Q_2160P}};import{isNonNullable as ne,isNullable as ea,now as Ms,isHigher as ta,isHigherOrEqual as Ps,isInvariantQuality as ws,isLower as ia,isLowerOrEqual as $s,videoSizeToQuality as mu,assertNotEmptyArray as Rs,assertNonNullable as fu}from"@vkontakte/videoplayer-shared";var Zr=!1,_e={},xs=n=>{Zr=n},ks=()=>{_e={}},As=n=>{n(_e)},Wt=(n,e)=>{Zr&&(_e.meta=_e.meta??{},_e.meta[n]=e)},X=class{constructor(e){this.name=e}next(e){if(!Zr)return;_e.series=_e.series??{};let t=_e.series[this.name]??[];t.push([Date.now(),e]),_e.series[this.name]=t}};var bu=new X("best_bitrate"),Ds=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var ra=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),Yt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Ms()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Cs='Assertion "ABR Tracks is empty array" failed',ir=(n,e,t,i)=>{let r=[...e].sort(ra(1)),a=[...t].sort(ra(1)),s=a.filter(u=>ne(u.bitrate)&&ne(n.bitrate)?n.bitrate/u.bitrate>i:!0),o=a.at(Math.round(a.length*r.indexOf(n)/(r.length+1)))??a.at(-1);return o&&s.includes(o)?o:s.length?s.at(-1):a.at(0)},Ls=n=>"quality"in n,Bs=(n,e,t,i)=>{let r=t&&i&&i.history[t.id]&&Ms()-i.history[t.id]<=n.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!r&&i.recordSelection(t),r&&i?.last){let a=i.last;i?.recordSwitch(a);let s=Ls(a)?"video":"audio",o=Ls(a)?a.quality:a.bitrate;return e({message:`
|
|
6
|
+
var qa="2.0.113-dev.4ab3b06b.0";var te=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(te||{}),Ye=(S=>(S.MPEG="MPEG",S.DASH="DASH",S.DASH_SEP="DASH_SEP",S.DASH_SEP_VK="DASH_SEP",S.DASH_WEBM="DASH_WEBM",S.DASH_WEBM_AV1="DASH_WEBM_AV1",S.DASH_STREAMS="DASH_STREAMS",S.DASH_WEBM_VK="DASH_WEBM",S.DASH_ONDEMAND="DASH_ONDEMAND",S.DASH_ONDEMAND_VK="DASH_ONDEMAND",S.DASH_LIVE="DASH_LIVE",S.DASH_LIVE_CMAF="DASH_LIVE_CMAF",S.DASH_LIVE_WEBM="DASH_LIVE_WEBM",S.HLS="HLS",S.HLS_ONDEMAND="HLS_ONDEMAND",S.HLS_JS="HLS",S.HLS_LIVE="HLS_LIVE",S.HLS_LIVE_CMAF="HLS_LIVE_CMAF",S.WEB_RTC_LIVE="WEB_RTC_LIVE",S))(Ye||{});var Ji=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(Ji||{}),Ur=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Ur||{});var Hr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(Hr||{});import{assertNever as es,assertNonNullable as Do,isNonNullable as Xi,ValueSubject as Qr,Subject as Co,Subscription as Bo,merge as Vo,observableFrom as Oo,fromEvent as Ka,map as Ja,tap as Xa,filterChanged as No,isNullable as jr,ErrorCategory as Za}from"@vkontakte/videoplayer-shared";var za=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Zi=class{constructor(e){this.connection$=new Qr(void 0);this.castState$=new Qr("NOT_AVAILABLE");this.errorEvent$=new Co;this.realCastState$=new Qr("NOT_AVAILABLE");this.subscription=new Bo;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=Xi(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&this.initializeCastApi()},r||za("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:Za.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(){Xi(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();jr(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();jr(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Ka(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 es(r.sessionState)}})).add(Vo(Ka(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Xa(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),Ja(r=>r.castState)),Oo([i.getCastState()])).pipe(No(),Ja(_o),Xa(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=Xi(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Do(o);let u=o.getCastDevice(),d=o.getMediaSession()?.media?.contentId;(jr(d)||d===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!a&&s&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?Xi(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:Za.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},_o=n=>{switch(n){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 es(n)}};import{assertNever as ts}from"@vkontakte/videoplayer-shared";var q=(n,e=0,t=0)=>{switch(t){case 0:return n.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return n;let i=new URL(n);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(n);return!i.searchParams.get("offset_p")&&e===0?n:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:ts(t)}return n},Gr=(n,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(n);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(n);return Number(t.searchParams.get("offset_p")??0)}default:ts(e)}};var y=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as Fo,Subject as er,merge as is}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new er;this.transitionEnded$=new er;this.transitionUpdated$=new er;this.forceChanged$=new er;this.stateChangeStarted$=is(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=is(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||Fo(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 Uo}from"@vkontakte/videoplayer-shared";var rs=n=>{switch(n){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 Uo(n)}};import{assertNever as At,assertNonNullable as dt,debounce as as,ErrorCategory as ss,fromEvent as lt,isNonNullable as ns,map as os,merge as us,observableFrom as Ho,Subject as Qo,Subscription as Wr,timeout as jo,getHighestQuality as Go}from"@vkontakte/videoplayer-shared";var Wo=5,Yo=5,qo=500,ds=7e3,Qt=class{constructor(e){this.subscription=new Wr;this.loadMediaTimeoutSubscription=new Wr;this.videoState=new $("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:At(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:At(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:At(e)}break}default:At(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(rs(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 Wr;this.subscription.add(e),this.subscription.add(us(this.videoState.stateChangeStarted$.pipe(os(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(os(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 Qo;e.add(r.pipe(as(qo)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(s=>{this.logRemoteEvent(s);let o=s.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>Wo)&&r.next(o),a=o})),e.add(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,s=r.value,o=this.params.output.isBuffering$.getValue(),u=s===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),s){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<Yo&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),y(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:At(s)}}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(lt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=us(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,Ho(["init"])).pipe(as(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"),y(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),y(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"),y(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),y(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&y(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 d=t[e];dt(d);let c=Go(Object.keys(d));dt(c);let l=d[c];dt(l),i=l,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let d=t[e];dt(d),i=d.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 d=t[e];dt(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let d=t[e];dt(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let d=t[e];dt(d),i=q(d.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let d="Unsupported format for Chromecast",c=new Error(d);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:ss.VIDEO_PIPELINE,message:d,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return At(e)}let s=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);s.contentUrl=i,s.streamType=a,s.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return ns(o)&&(s.metadata.title=o),ns(u)&&(s.metadata.subtitle=u),s}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(jo(ds).subscribe(()=>a(`timeout(${ds})`)))});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:ss.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as cs}from"@vkontakte/videoplayer-shared";import{clearVideoElement as zo}from"@vkontakte/videoplayer-shared";var ls=n=>{try{n.pause(),n.playbackRate=0,zo(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as Ko,Subscription as Jo}from"@vkontakte/videoplayer-shared";var Yr=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)}},qr=window.WeakMap?new WeakMap:new Yr,zr=window.WeakMap?new WeakMap:new Map,Xo=(n,e=20)=>{let t=0;return Ko(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},ie=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?cs(t):(t=document.createElement("video"),n.appendChild(t)),qr.set(t,i);let r=new Jo;return r.add(Xo(t,e)),zr.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},re=n=>{zr.get(n)?.unsubscribe(),zr.delete(n);let t=qr.get(n);qr.delete(n),t?cs(n):ls(n)};import{assertNonNullable as jt,isNonNullable as De,isNullable as tu,fromEvent as Pt,merge as ps,observableFrom as hs,filterChanged as ms,map as Gt,Subject as fs,Subscription as iu,ValueSubject as ru,ErrorCategory as au}from"@vkontakte/videoplayer-shared";import{isNonNullable as Kr,isNullable as Zo,Subscription as eu}from"@vkontakte/videoplayer-shared";var tr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),u=Zo(r),d=new eu;return r&&d.add(r.subscribe(c=>{let l=n.getState();i(c,l)&&n.setState(c)},a)),i(o,s)||(t(s),u&&n.setState(s)),d.add(n.stateChangeStarted$.subscribe(c=>{t(c.to),u&&n.setState(c.to)},a)),d},Re=(n,e,t)=>tr(e,()=>n.loop,i=>{Kr(i)&&(n.loop=i)},{onError:t}),ae=(n,e,t,i)=>tr(e,()=>({muted:n.muted,volume:n.volume}),r=>{Kr(r)&&(n.muted=r.muted,n.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),fe=(n,e,t,i)=>tr(e,()=>n.playbackRate,r=>{Kr(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),qe=tr;var su=n=>["__",n.language,n.label].join("|"),nu=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},Jr=class n{constructor(){this.available$=new fs;this.current$=new ru(void 0);this.error$=new fs;this.subscription=new iu;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:au.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(qe(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{De(a)&&this.setInternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Gt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(qe(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{De(a)&&this.setExternal(a)},{equal:(a,s)=>De(a)&&De(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Gt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(qe(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:s})=>s==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(qe(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){jt(this.video);let{textTracks:e}=this.video;this.subscription.add(Pt(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(ps(Pt(e,"addtrack"),Pt(e,"removetrack"),hs(["init"])).pipe(Gt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),ms((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(ps(Pt(e,"change"),hs(["init"])).pipe(Gt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Gt(i=>i&&this.htmlTextTrackToITextTrack(i).id),ms()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Pt(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let s=a.target?.cues??null;s&&s.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Pt(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;De(t.align)&&(r.align=t.align),De(t.position)&&(r.position=t.position),De(t.size)&&(r.size=t.size),De(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){jt(this.video);let t=[...this.video.textTracks];return e?t:t.filter(n.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:su(e),a=this.externalTracks.has(r),s=r.includes("auto");return a?{id:r,type:"external",isAuto:s,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:s,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(([,s])=>s.language===r&&s.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){jt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(tu(e)||!nu(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){jt(this.video);let t=document.createElement("track");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){jt(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)}},be=Jr;var Ne=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 bs=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Xr=n=>{let e=bs(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},gs=n=>{let e=bs(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ge,map as ze,merge as vs,filterChanged as uu,isNonNullable as ys,Subject as du,filter as Ts,mapTo as Is,combine as lu,once as cu,ErrorCategory as pu,ValueSubject as Es,clientChecker as hu}from"@vkontakte/videoplayer-shared";var ou=3,Ss=(n,e,t=ou)=>{let i=0,r=0;for(let a=0;a<n.length;a++){let s=n.start(a),o=n.end(a);if(s<=e&&e<=o){if(i=s,r=o,!t)return{from:i,to:r};for(let u=a-1;u>=0;u--)n.end(u)+t>=i&&(i=n.start(u));for(let u=a+1;u<n.length;u++)n.start(u)-t<=r&&(r=n.end(u))}}return{from:i,to:r}};var se=n=>{let e=S=>ge(n,S).pipe(Is(void 0)),i=vs(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(S=>ge(n,S))).pipe(ze(S=>S.type==="ended"?n.readyState<2:n.readyState<3),uu()),r=vs(ge(n,"progress"),ge(n,"timeupdate")).pipe(ze(()=>Ss(n.buffered,n.currentTime))),a=hu.isSafari?lu({play:e("play").pipe(cu()),playing:e("playing")}).pipe(Is(void 0)):e("playing"),s=ge(n,"volumechange").pipe(ze(()=>({muted:n.muted,volume:n.volume}))),o=ge(n,"ratechange").pipe(ze(()=>n.playbackRate)),u=ge(n,"error").pipe(Ts(()=>!!(n.error||n.played.length)),ze(()=>{let S=n.error;return{id:S?`MediaError#${S.code}`:"HtmlVideoError",category:pu.VIDEO_PIPELINE,message:S?S.message:"Error event from HTML video element",thrown:n.error??void 0}})),d=ge(n,"timeupdate").pipe(ze(()=>n.currentTime)),c=new du,l=.3,p;d.subscribe(S=>{n.loop&&ys(p)&&ys(S)&&p>=n.duration-l&&S<=l&&c.next(p),p=S});let h=e("pause").pipe(Ts(()=>!n.error&&p!==n.duration)),m=ge(n,"enterpictureinpicture"),f=ge(n,"leavepictureinpicture"),g=new Es(gs(n));m.subscribe(()=>g.next(!0)),f.subscribe(()=>g.next(!1));let P=new Es(Xr(n));return ge(n,"fullscreenchange").pipe(ze(()=>Xr(n))).subscribe(P),{playing$:a,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:c,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:d,durationChange$:ge(n,"durationchange").pipe(ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:g,inFullscreen$:P}};import{VideoQuality as Ke}from"@vkontakte/videoplayer-shared";var Je=n=>{switch(n){case"mobile":return Ke.Q_144P;case"lowest":return Ke.Q_240P;case"low":return Ke.Q_360P;case"sd":case"medium":return Ke.Q_480P;case"hd":case"high":return Ke.Q_720P;case"fullhd":case"full":return Ke.Q_1080P;case"quadhd":case"quad":return Ke.Q_1440P;case"ultrahd":case"ultra":return Ke.Q_2160P}};import{isNonNullable as ne,isNullable as ea,now as Ms,isHigher as ta,isHigherOrEqual as Ps,isInvariantQuality as ws,isLower as ia,isLowerOrEqual as $s,videoSizeToQuality as mu,assertNotEmptyArray as Rs,assertNonNullable as fu}from"@vkontakte/videoplayer-shared";var Zr=!1,_e={},xs=n=>{Zr=n},ks=()=>{_e={}},As=n=>{n(_e)},Wt=(n,e)=>{Zr&&(_e.meta=_e.meta??{},_e.meta[n]=e)},X=class{constructor(e){this.name=e}next(e){if(!Zr)return;_e.series=_e.series??{};let t=_e.series[this.name]??[];t.push([Date.now(),e]),_e.series[this.name]=t}};var bu=new X("best_bitrate"),Ds=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var ra=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),Yt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Ms()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Cs='Assertion "ABR Tracks is empty array" failed',ir=(n,e,t,i)=>{let r=[...e].sort(ra(1)),a=[...t].sort(ra(1)),s=a.filter(u=>ne(u.bitrate)&&ne(n.bitrate)?n.bitrate/u.bitrate>i:!0),o=a.at(Math.round(a.length*r.indexOf(n)/(r.length+1)))??a.at(-1);return o&&s.includes(o)?o:s.length?s.at(-1):a.at(0)},Ls=n=>"quality"in n,Bs=(n,e,t,i)=>{let r=t&&i&&i.history[t.id]&&Ms()-i.history[t.id]<=n.trackCooldown&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!r&&i.recordSelection(t),r&&i?.last){let a=i.last;i?.recordSwitch(a);let s=Ls(a)?"video":"audio",o=Ls(a)?a.quality:a.bitrate;return e({message:`
|
|
7
7
|
[last ${s} selected] ${o}
|
|
8
8
|
`}),a}return i?.recordSwitch(t),t},Xe=(n,{container:e,throughput:t,tuning:i,limits:r,reserve:a=0,forwardBufferHealth:s,playbackRate:o,current:u,history:d,visible:c,droppedVideoMaxQualityLimit:l,abrLogger:p})=>{Rs(n,Cs);let h=i.usePixelRatio?window.devicePixelRatio??1:1,m=i.limitByContainer&&e&&e.width>0&&e.height>0&&{width:e.width*h*i.containerSizeFactor,height:e.height*h*i.containerSizeFactor},f=m&&mu(m),g=i.considerPlaybackRate&&ne(o)?o:1,P=n.filter(k=>!ws(k.quality)).sort((k,A)=>ta(k.quality,A.quality)?-1:1),R=P.at(-1)?.quality,S=P.at(0)?.quality,b=ea(r)||ne(r.min)&&ne(r.max)&&ia(r.max,r.min)||ne(r.min)&&S&&ta(r.min,S)||ne(r.max)&&R&&ia(r.max,R),v=g*Ds(s??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),T={},V=P.filter(k=>{if(!(f?ia(k.quality,f):!0))return T[k.quality]="FitsContainer",!1;if(!(ne(t)&&isFinite(t)&&ne(k.bitrate)?t-a>=k.bitrate*v:!0))return T[k.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&ne(i.minBufferToSwitchUp)&&u&&!ws(u.quality)&&(s??0)<i.minBufferToSwitchUp&&ta(k.quality,u.quality))return T[k.quality]="Buffer",!1;if(!!l&&Ps(k.quality,l))return T[k.quality]="DroppedFramesLimit",!1;let ee=b||(ea(r.max)||$s(k.quality,r.max))&&(ea(r.min)||Ps(k.quality,r.min)),I=ne(c)&&!c?$s(k.quality,i.backgroundVideoQualityLimit):!0;return!ee||!I?(T[k.quality]="FitsQualityLimits",!1):!0})[0];V&&V.bitrate&&bu.next(V.bitrate);let N=V??P[Math.ceil((P.length-1)/2)]??n[0];return N.quality!==d?.last?.quality&&p({message:`
|
|
9
9
|
[VIDEO TRACKS ABR]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer-core",
|
|
3
|
-
"version": "2.0.113-dev.
|
|
3
|
+
"version": "2.0.113-dev.4ab3b06b.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer core library based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"**/*.d.ts"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@vkontakte/videoplayer-shared": "1.0.45-dev.
|
|
52
|
+
"@vkontakte/videoplayer-shared": "1.0.45-dev.ee4cea66.0",
|
|
53
53
|
"hls.js": "~1.4.7"
|
|
54
54
|
}
|
|
55
55
|
}
|