1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/App-BhUh1sGR.js","assets/session-1pMhuUoh.js","assets/App-2OxS-dNZ.css"])))=>i.map(i=>d[i]); 2var Y8=Object.defineProperty;var q8=(t,e,n)=>e in t?Y8(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var es=(t,e,n)=>q8(t,typeof e!="symbol"?e+"":e,n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const u of s.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();const Z8="modulepreload",K8=function(t){return"/"+t},TE={},lt=function(e,n,a){let o=Promise.resolve();if(n&&n.length>0){let u=function(d){return Promise.all(d.map(m=>Promise.resolve(m).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const c=document.querySelector("meta[property=csp-nonce]"),p=(c==null?void 0:c.nonce)||(c==null?void 0:c.getAttribute("nonce"));o=u(n.map(d=>{if(d=K8(d),d in TE)return;TE[d]=!0;const m=d.endsWith(".css"),f=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${f}`))return;const b=document.createElement("link");if(b.rel=m?"stylesheet":Z8,m||(b.as="script"),b.crossOrigin="",b.href=d,p&&b.setAttribute("nonce",p),document.head.appendChild(b),m)return new Promise((v,y)=>{b.addEventListener("load",v),b.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${d}`)))})}))}function s(u){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=u,window.dispatchEvent(c),!c.defaultPrevented)throw u}return o.then(u=>{for(const c of u||[])c.status==="rejected"&&s(c.reason);return e().catch(s)})};var jre=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function X8(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Gre(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var n=function a(){return this instanceof a?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(a){var o=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(n,a,o.get?o:{enumerable:!0,get:function(){return t[a]}})}),n}var Qy={exports:{}},wu={};/** 3 * @license React 4 * react-jsx-runtime.production.js 5 * 6 * Copyright (c) Meta Platforms, Inc. and affiliates. 7 * 8 * This source code is licensed under the MIT license found in the 9 * LICENSE file in the root directory of this source tree. 10 */var RE;function J8(){if(RE)return wu;RE=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(a,o,s){var u=null;if(s!==void 0&&(u=""+s),o.key!==void 0&&(u=""+o.key),"key"in o){s={};for(var c in o)c!=="key"&&(s[c]=o[c])}else s=o;return o=s.ref,{$$typeof:t,type:a,key:u,ref:o!==void 0?o:null,props:s}}return wu.Fragment=e,wu.jsx=n,wu.jsxs=n,wu}var CE;function Q8(){return CE||(CE=1,Qy.exports=J8()),Qy.exports}var AE=Q8(),eb={exports:{}};function eF(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var HC={exports:{}},Qt=HC.exports={},Ba,Ua;function Sv(){throw new Error("setTimeout has not been defined")}function kv(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?Ba=setTimeout:Ba=Sv}catch{Ba=Sv}try{typeof clearTimeout=="function"?Ua=clearTimeout:Ua=kv}catch{Ua=kv}})();function VC(t){if(Ba===setTimeout)return setTimeout(t,0);if((Ba===Sv||!Ba)&&setTimeout)return Ba=setTimeout,setTimeout(t,0);try{return Ba(t,0)}catch{try{return Ba.call(null,t,0)}catch{return Ba.call(this,t,0)}}}function tF(t){if(Ua===clearTimeout)return clearTimeout(t);if((Ua===kv||!Ua)&&clearTimeout)return Ua=clearTimeout,clearTimeout(t);try{return Ua(t)}catch{try{return Ua.call(null,t)}catch{return Ua.call(this,t)}}}var _i=[],ql=!1,hs,Ff=-1;function nF(){!ql||!hs||(ql=!1,hs.length?_i=hs.concat(_i):Ff=-1,_i.length&&YC())}function YC(){if(!ql){var t=VC(nF);ql=!0;for(var e=_i.length;e;){for(hs=_i,_i=[];++Ff<e;)hs&&hs[Ff].run();Ff=-1,e=_i.length}hs=null,ql=!1,tF(t)}}Qt.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];_i.push(new qC(t,e)),_i.length===1&&!ql&&VC(YC)};function qC(t,e){this.fun=t,this.array=e}qC.prototype.run=function(){this.fun.apply(null,this.array)};Qt.title="browser";Qt.browser=!0;Qt.env={};Qt.argv=[];
vendor: 4,692 bytes, line 10
10Qt.version="";Qt.versions={};function Di(){}Qt.on=Di;Qt.addListener=Di;Qt.once=Di;Qt.off=Di;Qt.removeListener=Di;Qt.removeAllListeners=Di;Qt.emit=Di;Qt.prependListener=Di;Qt.prependOnceListener=Di;Qt.listeners=function(t){return[]};Qt.binding=function(t){throw new Error("process.binding is not supported")};Qt.cwd=function(){return"/"};Qt.chdir=function(t){throw new Error("process.chdir is not supported")};Qt.umask=function(){return 0};var rF=HC.exports;const xi=eF(rF);var je={},xE;function aF(){if(xE)return je;xE=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),u=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),b=Symbol.iterator;function v(j){return j===null||typeof j!="object"?null:(j=b&&j[b]||j["@@iterator"],typeof j=="function"?j:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,S={};function w(j,X,fe){this.props=j,this.context=X,this.refs=S,this.updater=fe||y}w.prototype.isReactComponent={},w.prototype.setState=function(j,X){if(typeof j!="object"&&typeof j!="function"&&j!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,j,X,"setState")},w.prototype.forceUpdate=function(j){this.updater.enqueueForceUpdate(this,j,"forceUpdate")};function k(){}k.prototype=w.prototype;function T(j,X,fe){this.props=j,this.context=X,this.refs=S,this.updater=fe||y}var R=T.prototype=new k;R.constructor=T,g(R,w.prototype),R.isPureReactComponent=!0;var I=Array.isArray;function M(){}var L={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function W(j,X,fe){var pe=fe.ref;return{$$typeof:t,type:j,key:X,ref:pe!==void 0?pe:null,props:fe}}function F(j,X){return W(j.type,X,j.props)}function G(j){return typeof j=="object"&&j!==null&&j.$$typeof===t}function ee(j){var X={"=":"=0",":":"=2"};return"$"+j.replace(/[=:]/g,function(fe){return X[fe]})}var de=/\/+/g;function ye(j,X){return typeof j=="object"&&j!==null&&j.key!=null?ee(""+j.key):X.toString(36)}function _e(j){switch(j.status){case"fulfilled":return j.value;case"rejected":throw j.reason;default:switch(typeof j.status=="string"?j.then(M,M):(j.status="pending",j.then(function(X){j.status==="pending"&&(j.status="fulfilled",j.value=X)},function(X){j.status==="pending"&&(j.status="rejected",j.reason=X)})),j.status){case"fulfilled":return j.value;case"rejected":throw j.reason}}throw j}function Y(j,X,fe,pe,we){var xe=typeof j;(xe==="undefined"||xe==="boolean")&&(j=null);var Me=!1;if(j===null)Me=!0;else switch(xe){case"bigint":case"string":case"number":Me=!0;break;case"object":switch(j.$$typeof){case t:case e:Me=!0;break;case m:return Me=j._init,Y(Me(j._payload),X,fe,pe,we)}}if(Me)return we=we(j),Me=pe===""?"."+ye(j,0):pe,I(we)?(fe="",Me!=null&&(fe=Me.replace(de,"$&/")+"/"),Y(we,X,fe,"",function(zt){return zt})):we!=null&&(G(we)&&(we=F(we,fe+(we.key==null||j&&j.key===we.key?"":(""+we.key).replace(de,"$&/")+"/")+Me)),X.push(we)),1;Me=0;var it=pe===""?".":pe+":";if(I(j))for(var ot=0;ot<j.length;ot++)pe=j[ot],xe=it+ye(pe,ot),Me+=Y(pe,X,fe,xe,we);else if(ot=v(j),typeof ot=="function")for(j=ot.call(j),ot=0;!(pe=j.next()).done;)pe=pe.value,xe=it+ye(pe,ot++),Me+=Y(pe,X,fe,xe,we);else if(xe==="object"){if(typeof j.then=="function")return Y(_e(j),X,fe,pe,we);throw X=String(j),Error("Objects are not valid as a React child (found: "+(X==="[object Object]"?"object with keys {"+Object.keys(j).join(", ")+"}":X)+"). If you meant to render a collection of children, use an array instead.")}return Me}function q(j,X,fe){if(j==null)return j;var pe=[],we=0;return Y(j,pe,"","",function(xe){return X.call(fe,xe,we++)}),pe}function re(j){if(j._status===-1){var X=j._result;X=X(),X.then(function(fe){(j._status===0||j._status===-1)&&(j._status=1,j._result=fe)},function(fe){(j._status===0||j._status===-1)&&(j._status=2,j._result=fe)}),j._status===-1&&(j._status=0,j._result=X)}if(j._status===1)return j._result.default;throw j._result}var be=typeof reportError=="function"?reportError:function(j){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var X=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof j=="object"&&j!==null&&typeof j.message=="string"?String(j.message):String(j),error:j});if(!window.dispatchEvent(X))return}else if(typeof xi=="object"&&typeof xi.emit=="function"){xi.emit
vendor: 8,716 bytes, lines 10-26
10("uncaughtException",j);return}console.error(j)},se={map:q,forEach:function(j,X,fe){q(j,function(){X.apply(this,arguments)},fe)},count:function(j){var X=0;return q(j,function(){X++}),X},toArray:function(j){return q(j,function(X){return X})||[]},only:function(j){if(!G(j))throw Error("React.Children.only expected to receive a single React element child.");return j}};return je.Activity=f,je.Children=se,je.Component=w,je.Fragment=n,je.Profiler=o,je.PureComponent=T,je.StrictMode=a,je.Suspense=p,je.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=L,je.__COMPILER_RUNTIME={__proto__:null,c:function(j){return L.H.useMemoCache(j)}},je.cache=function(j){return function(){return j.apply(null,arguments)}},je.cacheSignal=function(){return null},je.cloneElement=function(j,X,fe){if(j==null)throw Error("The argument must be a React element, but you passed "+j+".");var pe=g({},j.props),we=j.key;if(X!=null)for(xe in X.key!==void 0&&(we=""+X.key),X)!O.call(X,xe)||xe==="key"||xe==="__self"||xe==="__source"||xe==="ref"&&X.ref===void 0||(pe[xe]=X[xe]);var xe=arguments.length-2;if(xe===1)pe.children=fe;else if(1<xe){for(var Me=Array(xe),it=0;it<xe;it++)Me[it]=arguments[it+2];pe.children=Me}return W(j.type,we,pe)},je.createContext=function(j){return j={$$typeof:u,_currentValue:j,_currentValue2:j,_threadCount:0,Provider:null,Consumer:null},j.Provider=j,j.Consumer={$$typeof:s,_context:j},j},je.createElement=function(j,X,fe){var pe,we={},xe=null;if(X!=null)for(pe in X.key!==void 0&&(xe=""+X.key),X)O.call(X,pe)&&pe!=="key"&&pe!=="__self"&&pe!=="__source"&&(we[pe]=X[pe]);var Me=arguments.length-2;if(Me===1)we.children=fe;else if(1<Me){for(var it=Array(Me),ot=0;ot<Me;ot++)it[ot]=arguments[ot+2];we.children=it}if(j&&j.defaultProps)for(pe in Me=j.defaultProps,Me)we[pe]===void 0&&(we[pe]=Me[pe]);return W(j,xe,we)},je.createRef=function(){return{current:null}},je.forwardRef=function(j){return{$$typeof:c,render:j}},je.isValidElement=G,je.lazy=function(j){return{$$typeof:m,_payload:{_status:-1,_result:j},_init:re}},je.memo=function(j,X){return{$$typeof:d,type:j,compare:X===void 0?null:X}},je.startTransition=function(j){var X=L.T,fe={};L.T=fe;try{var pe=j(),we=L.S;we!==null&&we(fe,pe),typeof pe=="object"&&pe!==null&&typeof pe.then=="function"&&pe.then(M,be)}catch(xe){be(xe)}finally{X!==null&&fe.types!==null&&(X.types=fe.types),L.T=X}},je.unstable_useCacheRefresh=function(){return L.H.useCacheRefresh()},je.use=function(j){return L.H.use(j)},je.useActionState=function(j,X,fe){return L.H.useActionState(j,X,fe)},je.useCallback=function(j,X){return L.H.useCallback(j,X)},je.useContext=function(j){return L.H.useContext(j)},je.useDebugValue=function(){},je.useDeferredValue=function(j,X){return L.H.useDeferredValue(j,X)},je.useEffect=function(j,X){return L.H.useEffect(j,X)},je.useEffectEvent=function(j){return L.H.useEffectEvent(j)},je.useId=function(){return L.H.useId()},je.useImperativeHandle=function(j,X,fe){return L.H.useImperativeHandle(j,X,fe)},je.useInsertionEffect=function(j,X){return L.H.useInsertionEffect(j,X)},je.useLayoutEffect=function(j,X){return L.H.useLayoutEffect(j,X)},je.useMemo=function(j,X){return L.H.useMemo(j,X)},je.useOptimistic=function(j,X){return L.H.useOptimistic(j,X)},je.useReducer=function(j,X,fe){return L.H.useReducer(j,X,fe)},je.useRef=function(j){return L.H.useRef(j)},je.useState=function(j){return L.H.useState(j)},je.useSyncExternalStore=function(j,X,fe){return L.H.useSyncExternalStore(j,X,fe)},je.useTransition=function(){return L.H.useTransition()},je.version="19.2.8",je}var OE;function Q0(){return OE||(OE=1,eb.exports=aF()),eb.exports}var ZC=Q0();const Hre=X8(ZC);var tb={exports:{}},_u={},nb={exports:{}},rb={};/** 11 * @license React 12 * scheduler.production.js 13 * 14 * Copyright (c) Meta Platforms, Inc. and affiliates. 15 * 16 * This source code is licensed under the MIT license found in the 17 * LICENSE file in the root directory of this source tree. 18 */var IE;function iF(){return IE||(IE=1,function(t){function e(Y,q){var re=Y.length;Y.push(q);e:for(;0<re;){var be=re-1>>>1,se=Y[be];if(0<o(se,q))Y[be]=q,Y[re]=se,re=be;else break e}}function n(Y){return Y.length===0?null:Y[0]}function a(Y){if(Y.length===0)return null;var q=Y[0],re=Y.pop();if(re!==q){Y[0]=re;e:for(var be=0,se=Y.length,j=se>>>1;be<j;){var X=2*(be+1)-1,fe=Y[X],pe=X+1,we=Y[pe];if(0>o(fe,re))pe<se&&0>o(we,fe)?(Y[be]=we,Y[pe]=re,be=pe):(Y[be]=fe,Y[X]=re,be=X);else if(pe<se&&0>o(we,re))Y[be]=we,Y[pe]=re,be=pe;else break e}}return q}function o(Y,q){var re=Y.sortIndex-q.sortIndex;return re!==0?re:Y.id-q.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var u=Date,c=u.now();t.unstable_now=function(){return u.now()-c}}var p=[],d=[],m=1,f=null,b=3,v=!1,y=!1,g=!1,S=!1,w=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,T=typeof setImmediate<"u"?setImmediate:null;function R(Y){for(var q=n(d);q!==null;){if(q.callback===null)a(d);else if(q.startTime<=Y)a(d),q.sortIndex=q.expirationTime,e(p,q);else break;q=n(d)}}function I(Y){if(g=!1,R(Y),!y)if(n(p)!==null)y=!0,M||(M=!0,ee());else{var q=n(d);q!==null&&_e(I,q.startTime-Y)}}var M=!1,L=-1,O=5,W=-1;function F(){return S?!0:!(t.unstable_now()-W<O)}function G(){if(S=!1,M){var Y=t.unstable_now();W=Y;var q=!0;try{e:{y=!1,g&&(g=!1,k(L),L=-1),v=!0;var re=b;try{t:{for(R(Y),f=n(p);f!==null&&!(f.expirationTime>Y&&F());){var be=f.callback;if(typeof be=="function"){f.callback=null,b=f.priorityLevel;var se=be(f.expirationTime<=Y);if(Y=t.unstable_now(),typeof se=="function"){f.callback=se,R(Y),q=!0;break t}f===n(p)&&a(p),R(Y)}else a(p);f=n(p)}if(f!==null)q=!0;else{var j=n(d);j!==null&&_e(I,j.startTime-Y),q=!1}}break e}finally{f=null,b=re,v=!1}q=void 0}}finally{q?ee():M=!1}}}var ee;if(typeof T=="function")ee=function(){T(G)};else if(typeof MessageChannel<"u"){var de=new MessageChannel,ye=de.port2;de.port1.onmessage=G,ee=function(){ye.postMessage(null)}}else ee=function(){w(G,0)};function _e(Y,q){L=w(function(){Y(t.unstable_now())},q)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(Y){Y.callback=null},t.unstable_forceFrameRate=function(Y){0>Y||125<Y?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):O=0<Y?Math.floor(1e3/Y):5},t.unstable_getCurrentPriorityLevel=function(){return b},t.unstable_next=function(Y){switch(b){case 1:case 2:case 3:var q=3;break;default:q=b}var re=b;b=q;try{return Y()}finally{b=re}},t.unstable_requestPaint=function(){S=!0},t.unstable_runWithPriority=function(Y,q){switch(Y){case 1:case 2:case 3:case 4:case 5:break;default:Y=3}var re=b;b=Y;try{return q()}finally{b=re}},t.unstable_scheduleCallback=function(Y,q,re){var be=t.unstable_now();switch(typeof re=="object"&&re!==null?(re=re.delay,re=typeof re=="number"&&0<re?be+re:be):re=be,Y){case 1:var se=-1;break;case 2:se=250;break;case 5:se=1073741823;break;case 4:se=1e4;break;default:se=5e3}return se=re+se,Y={id:m++,callback:q,priorityLevel:Y,startTime:re,expirationTime:se,sortIndex:-1},re>be?(Y.sortIndex=re,e(d,Y),n(p)===null&&Y===n(d)&&(g?(k(L),L=-1):g=!0,_e(I,re-be))):(Y.sortIndex=se,e(p,Y),y||v||(y=!0,M||(M=!0,ee()))),Y},t.unstable_shouldYield=F,t.unstable_wrapCallback=function(Y){var q=b;return function(){var re=b;b=q;try{return Y.apply(this,arguments)}finally{b=re}}}}(rb)),rb}var DE;function oF(){return DE||(DE=1,nb.exports=iF()),nb.exports}var ab={exports:{}},Nn={};/** 19 * @license React 20 * react-dom.production.js 21 * 22 * Copyright (c) Meta Platforms, Inc. and affiliates. 23 * 24 * This source code is licensed under the MIT license found in the 25 * LICENSE file in the root directory of this source tree. 26 */var LE;function sF(){if(LE)return Nn;LE=1;var t=Q0();function e(p){var d="https://react.dev/errors/"+p;if(1<arguments.length){d+="?args[]="+encodeURIComponent(arguments[1]);for(var m=2;m<arguments.length;m++)d+="&args[]="+encodeURIComponent(arguments[m])}return"Minified React error #"+p+"; visit "+d+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var a={d:{f:n,r:function(){throw Error(e(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},o=Symbol.for("react.portal");function s(p,d,m){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:f==null?null:""+f,children:p,containerInfo:d,implementation:m}}var u=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function c(p,d){if(p==="font")return"";
vendor: 7,750 bytes, lines 26-28
26if(typeof d=="string")return d==="use-credentials"?d:""}return Nn.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=a,Nn.createPortal=function(p,d){var m=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!d||d.nodeType!==1&&d.nodeType!==9&&d.nodeType!==11)throw Error(e(299));return s(p,d,null,m)},Nn.flushSync=function(p){var d=u.T,m=a.p;try{if(u.T=null,a.p=2,p)return p()}finally{u.T=d,a.p=m,a.d.f()}},Nn.preconnect=function(p,d){typeof p=="string"&&(d?(d=d.crossOrigin,d=typeof d=="string"?d==="use-credentials"?d:"":void 0):d=null,a.d.C(p,d))},Nn.prefetchDNS=function(p){typeof p=="string"&&a.d.D(p)},Nn.preinit=function(p,d){if(typeof p=="string"&&d&&typeof d.as=="string"){var m=d.as,f=c(m,d.crossOrigin),b=typeof d.integrity=="string"?d.integrity:void 0,v=typeof d.fetchPriority=="string"?d.fetchPriority:void 0;m==="style"?a.d.S(p,typeof d.precedence=="string"?d.precedence:void 0,{crossOrigin:f,integrity:b,fetchPriority:v}):m==="script"&&a.d.X(p,{crossOrigin:f,integrity:b,fetchPriority:v,nonce:typeof d.nonce=="string"?d.nonce:void 0})}},Nn.preinitModule=function(p,d){if(typeof p=="string")if(typeof d=="object"&&d!==null){if(d.as==null||d.as==="script"){var m=c(d.as,d.crossOrigin);a.d.M(p,{crossOrigin:m,integrity:typeof d.integrity=="string"?d.integrity:void 0,nonce:typeof d.nonce=="string"?d.nonce:void 0})}}else d==null&&a.d.M(p)},Nn.preload=function(p,d){if(typeof p=="string"&&typeof d=="object"&&d!==null&&typeof d.as=="string"){var m=d.as,f=c(m,d.crossOrigin);a.d.L(p,m,{crossOrigin:f,integrity:typeof d.integrity=="string"?d.integrity:void 0,nonce:typeof d.nonce=="string"?d.nonce:void 0,type:typeof d.type=="string"?d.type:void 0,fetchPriority:typeof d.fetchPriority=="string"?d.fetchPriority:void 0,referrerPolicy:typeof d.referrerPolicy=="string"?d.referrerPolicy:void 0,imageSrcSet:typeof d.imageSrcSet=="string"?d.imageSrcSet:void 0,imageSizes:typeof d.imageSizes=="string"?d.imageSizes:void 0,media:typeof d.media=="string"?d.media:void 0})}},Nn.preloadModule=function(p,d){if(typeof p=="string")if(d){var m=c(d.as,d.crossOrigin);a.d.m(p,{as:typeof d.as=="string"&&d.as!=="script"?d.as:void 0,crossOrigin:m,integrity:typeof d.integrity=="string"?d.integrity:void 0})}else a.d.m(p)},Nn.requestFormReset=function(p){a.d.r(p)},Nn.unstable_batchedUpdates=function(p,d){return p(d)},Nn.useFormState=function(p,d,m){return u.H.useFormState(p,d,m)},Nn.useFormStatus=function(){return u.H.useHostTransitionStatus()},Nn.version="19.2.8",Nn}var NE;function lF(){if(NE)return ab.exports;NE=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),ab.exports=sF(),ab.exports}var PE;function cF(){if(PE)return _u;PE=1;var t=oF(),e=Q0(),n=lF();function a(r){var i="https://react.dev/errors/"+r;if(1<arguments.length){i+="?args[]="+encodeURIComponent(arguments[1]);for(var l=2;l<arguments.length;l++)i+="&args[]="+encodeURIComponent(arguments[l])}return"Minified React error #"+r+"; visit "+i+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11)}function s(r){var i=r,l=r;if(r.alternate)for(;i.return;)i=i.return;else{r=i;do i=r,(i.flags&4098)!==0&&(l=i.return),r=i.return;while(r)}return i.tag===3?l:null}function u(r){if(r.tag===13){var i=r.memoizedState;if(i===null&&(r=r.alternate,r!==null&&(i=r.memoizedState)),i!==null)return i.dehydrated}return null}function c(r){if(r.tag===31){var i=r.memoizedState;if(i===null&&(r=r.alternate,r!==null&&(i=r.memoizedState)),i!==null)return i.dehydrated}return null}function p(r){if(s(r)!==r)throw Error(a(188))}function d(r){var i=r.alternate;if(!i){if(i=s(r),i===null)throw Error(a(188));return i!==r?null:r}for(var l=r,h=i;;){var _=l.return;if(_===null)break;var E=_.alternate;if(E===null){if(h=_.return,h!==null){l=h;continue}break}if(_.child===E.child){for(E=_.child;E;){if(E===l)return p(_),r;if(E===h)return p(_),i;E=E.sibling}throw Error(a(188))}if(l.return!==h.return)l=_,h=E;else{for(var P=!1,z=_.child;z;){if(z===l){P=!0,l=_,h=E;break}if(z===h){P=!0,h=_,l=E;break}z=z.sibling}if(!P){for(z=E.child;z;){if(z===l){P=!0,l=E,h=_;break}if(z===h){P=!0,h=E,l=_;break}z=z.sibling}if(!P)throw Error(a(189))}}if(l.alternate!==h)throw Error(a(190))}if(l.tag!==3)throw Error(a(188));return l.stateNode.current===l?r:i}function m(r){var i=r.tag;if(i===5||i===26||i===27||i===6)return r;for(r=r.child;r!==null;){if(i=m(r),i!==null)return i;r=r.sibling}return null}var f=Object.assign,b=Symbol.for("react.element"),v=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),k=Symbol.for("react.consumer"),T=Symbol.for("react.context"),R=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),M=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),W=Symbol.for("react.activity"),F=Symbol.for("react.memo_cache_sentinel"),G=Symbol.iterator;function ee(r){return r===null||typeof r!="object"?null:(r=G&&r[G]||r["@@iterator"],typeof r=="function"?r:null)}var de=Symbol.for("react.client.reference");function ye(r){if(r==null)return null;if(typeof r=="function")return r.$$typeof===de?null:r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case g:return"Fragment";case w:return"Profiler";case S:return"StrictMode";case I:return"Suspense";case M:return"SuspenseList";case W:return"Activity"}if(typeof r=="object")switch(r.$$typeof){case y:return"Portal";case T:return r.displayName||"Context";case k:return(r._context.displayName||"Context")+".Consumer";case R:var i=r.render;return r=r.displayName,r||(r=i.displayName||i.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case L:return i=r.displayName||null,i!==null?i:ye(r.type)||"Memo";case O:i=r._payload,r=r._init;try{return ye(r(i))}catch{}}return null}var _e=Array.isArray,Y=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,q=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,re={pending:!1,data:null,method:null,action:null},be=[],se=-1;function j(r){return{current:r}}function X(r){0>se||(r.current=be[se],be[se]=null,se--)}function fe(r,i){se++,be[se]=r.current,r.current=i}var pe=j(null),we=j(null),xe=j(null),Me=j(null);function it(r,i){switch(fe(xe,i),fe(we,r),fe(pe,null),i.nodeType){case 9:case 11:r=(r=i.documentElement)&&(r=r.namespaceURI)?qk(r):0;break;default:if(r=i.tagName,i=i.namespaceURI)i=qk(i),r=Zk(i,r);else switch(r){case"svg":r=1;break;case"math":r=2;break;default:r=0}}X(pe),fe(pe,r)}function ot(){X(pe),X(we),X(xe)}function zt(r){r.memoizedState!==null&&fe(Me,r);var i=pe.current,l=Zk(i,r.type);i!==l&&(fe(we,r),fe(pe,l))}function Ln(r){we.current===r&&(X(pe),X(we)),Me.current===r&&(X(Me),gu._currentValue=re)}var Lr,En;function gn(r){if(Lr===void 0)try{throw Error()}catch(l){var i=l.stack.trim().match(/\n( *(at )?)/);Lr=i&&i[1]||"",En=-1<l.stack.indexOf(` 27 at`)?" (<anonymous>)":-1<l.stack.indexOf("@")?"@unknown:0:0":""}return` 28`+Lr+r+En}var Un=!1;function Kn(r,i){if(!r||Un)return"";Un=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var h={DetermineComponentFrameRoot:function(){try{if(i){var ge=function(){throw Error()};if(Object.defineProperty(ge.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(ge,[])}catch(ue){var oe=ue}Reflect.construct(r,[],ge)}else{try{ge.call()}catch(ue){oe=ue}r.call(ge.prototype)}}else{try{throw Error()}catch(ue){oe=ue}(ge=r())&&typeof ge.catch=="function"&&ge.catch(function(){})}}
vendor: 6,181 bytes, lines 28-33
28catch(ue){if(ue&&oe&&typeof ue.stack=="string")return[ue.stack,oe.stack]}return[null,null]}};h.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var _=Object.getOwnPropertyDescriptor(h.DetermineComponentFrameRoot,"name");_&&_.configurable&&Object.defineProperty(h.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var E=h.DetermineComponentFrameRoot(),P=E[0],z=E[1];if(P&&z){var V=P.split(` 29`),ne=z.split(` 30`);for(_=h=0;h<V.length&&!V[h].includes("DetermineComponentFrameRoot");)h++;for(;_<ne.length&&!ne[_].includes("DetermineComponentFrameRoot");)_++;if(h===V.length||_===ne.length)for(h=V.length-1,_=ne.length-1;1<=h&&0<=_&&V[h]!==ne[_];)_--;for(;1<=h&&0<=_;h--,_--)if(V[h]!==ne[_]){if(h!==1||_!==1)do if(h--,_--,0>_||V[h]!==ne[_]){var he=` 31`+V[h].replace(" at new "," at ");return r.displayName&&he.includes("<anonymous>")&&(he=he.replace("<anonymous>",r.displayName)),he}while(1<=h&&0<=_);break}}}finally{Un=!1,Error.prepareStackTrace=l}return(l=r?r.displayName||r.name:"")?gn(l):""}function Fn(r,i){switch(r.tag){case 26:case 27:case 5:return gn(r.type);case 16:return gn("Lazy");case 13:return r.child!==i&&i!==null?gn("Suspense Fallback"):gn("Suspense");case 19:return gn("SuspenseList");case 0:case 15:return Kn(r.type,!1);case 11:return Kn(r.type.render,!1);case 1:return Kn(r.type,!0);case 31:return gn("Activity");default:return""}}function Nr(r){try{var i="",l=null;do i+=Fn(r,l),l=r,r=r.return;while(r);return i}catch(h){return` 32Error generating stack: `+h.message+` 33`+h.stack}}var Pr=Object.prototype.hasOwnProperty,Wr=t.unstable_scheduleCallback,fr=t.unstable_cancelCallback,Tn=t.unstable_shouldYield,en=t.unstable_requestPaint,Et=t.unstable_now,At=t.unstable_getCurrentPriorityLevel,ze=t.unstable_ImmediatePriority,A=t.unstable_UserBlockingPriority,N=t.unstable_NormalPriority,B=t.unstable_LowPriority,D=t.unstable_IdlePriority,C=t.log,x=t.unstable_setDisableYieldValue,U=null,H=null;function Q(r){if(typeof C=="function"&&x(r),H&&typeof H.setStrictMode=="function")try{H.setStrictMode(U,r)}catch{}}var ae=Math.clz32?Math.clz32:xt,Oe=Math.log,$e=Math.LN2;function xt(r){return r>>>=0,r===0?32:31-(Oe(r)/$e|0)|0}var Tt=256,ut=262144,qd=4194304;function Wo(r){var i=r&42;if(i!==0)return i;switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return r&261888;case 262144:case 524288:case 1048576:case 2097152:return r&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return r&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function Zd(r,i,l){var h=r.pendingLanes;if(h===0)return 0;var _=0,E=r.suspendedLanes,P=r.pingedLanes;r=r.warmLanes;var z=h&134217727;return z!==0?(h=z&~E,h!==0?_=Wo(h):(P&=z,P!==0?_=Wo(P):l||(l=z&~r,l!==0&&(_=Wo(l))))):(z=h&~E,z!==0?_=Wo(z):P!==0?_=Wo(P):l||(l=h&~r,l!==0&&(_=Wo(l)))),_===0?0:i!==0&&i!==_&&(i&E)===0&&(E=_&-_,l=i&-i,E>=l||E===32&&(l&4194048)!==0)?i:_}function xc(r,i){return(r.pendingLanes&~(r.suspendedLanes&~r.pingedLanes)&i)===0}function NU(r,i){switch(r){case 1:case 2:case 4:case 8:case 64:return i+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function x_(){var r=qd;return qd<<=1,(qd&62914560)===0&&(qd=4194304),r}function $m(r){for(var i=[],l=0;31>l;l++)i.push(r);return i}function Oc(r,i){r.pendingLanes|=i,i!==268435456&&(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function PU(r,i,l,h,_,E){var P=r.pendingLanes;r.pendingLanes=l,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&=l,r.entangledLanes&=l,r.errorRecoveryDisabledLanes&=l,r.shellSuspendCounter=0;var z=r.entanglements,V=r.expirationTimes,ne=r.hiddenUpdates;for(l=P&~l;0<l;){var he=31-ae(l),ge=1<<he;z[he]=0,V[he]=-1;var oe=ne[he];if(oe!==null)for(ne[he]=null,he=0;he<oe.length;he++){var ue=oe[he];ue!==null&&(ue.lane&=-536870913)}l&=~ge}h!==0&&O_(r,h,0),E!==0&&_===0&&r.tag!==0&&(r.suspendedLanes|=E&~(P&~i))}function O_(r,i,l){r.pendingLanes|=i,r.suspendedLanes&=~i;var h=31-ae(i);r.entangledLanes|=i,r.entanglements[h]=r.entanglements[h]|1073741824|l&261930}function I_(r,i){var l=r.entangledLanes|=i;for(r=r.entanglements;l;){var h=31-ae(l),_=1<<h;_&i|r[h]&i&&(r[h]|=i),l&=~_}}function D_(r,i){var l=i&-i;return l=(l&42)!==0?1:zm(l),(l&(r.suspendedLanes|i))!==0?0:l}function zm(r){switch(r){case 2:r=1;break;case 8:r=4;break;case 32:r=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:r=128;break;case 268435456:r=134217728;break;default:r=0}return r}function jm(r){return r&=-r,2<r?8<r?(r&134217727)!==0?32:268435456:8:2}function L_(){var r=q.p;return r!==0?r:(r=window.event,r===void 0?32:bE(r.type))}function N_(r,i){var l=q.p;try{return q.p=r,i()}finally{q.p=l}}var Mi=Math.random().toString(36).slice(2),Rn="__reactFiber$"+Mi,Xn="__reactProps$"+Mi,Ms="__reactContainer$"+Mi,Gm="__reactEvents$"+Mi,WU="__reactListeners$"+Mi,MU="__reactHandles$"+Mi,P_="__reactResources$"+Mi,Ic="__reactMarker$"+Mi;function Hm(r){delete r[Rn],delete r[Xn],delete r[Gm],delete r[WU],delete r[MU]}function Bs(r){var i=r[Rn];if(i)return i;for(var l=r.parentNode;l;){if(i=l[Ms]||l[Rn]){if(l=i.alternate,i.child!==null||l!==null&&l.child!==null)for(r=nE(r);r!==null;){if(l=r[Rn])return l;r=nE(r)}return i}r=l,l=r.parentNode}return null}function Us(r){if(r=r[Rn]||r[Ms]){var i=r.tag;if(i===5||i===6||i===13||i===31||i===26||i===27||i===3)return r}return null}function Dc(r){var i=r.tag;if(i===5||i===26||i===27||i===6)return r.stateNode;throw Error(a(33))}function Fs(r){var i=r[P_];
vendor: 7,068 bytes, line 33
33return i||(i=r[P_]={hoistableStyles:new Map,hoistableScripts:new Map}),i}function yn(r){r[Ic]=!0}var W_=new Set,M_={};function Mo(r,i){$s(r,i),$s(r+"Capture",i)}function $s(r,i){for(M_[r]=i,r=0;r<i.length;r++)W_.add(i[r])}var BU=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),B_={},U_={};function UU(r){return Pr.call(U_,r)?!0:Pr.call(B_,r)?!1:BU.test(r)?U_[r]=!0:(B_[r]=!0,!1)}function Kd(r,i,l){if(UU(i))if(l===null)r.removeAttribute(i);else{switch(typeof l){case"undefined":case"function":case"symbol":r.removeAttribute(i);return;case"boolean":var h=i.toLowerCase().slice(0,5);if(h!=="data-"&&h!=="aria-"){r.removeAttribute(i);return}}r.setAttribute(i,""+l)}}function Xd(r,i,l){if(l===null)r.removeAttribute(i);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":r.removeAttribute(i);return}r.setAttribute(i,""+l)}}function ti(r,i,l,h){if(h===null)r.removeAttribute(l);else{switch(typeof h){case"undefined":case"function":case"symbol":case"boolean":r.removeAttribute(l);return}r.setAttributeNS(i,l,""+h)}}function Mr(r){switch(typeof r){case"bigint":case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function F_(r){var i=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function FU(r,i,l){var h=Object.getOwnPropertyDescriptor(r.constructor.prototype,i);if(!r.hasOwnProperty(i)&&typeof h<"u"&&typeof h.get=="function"&&typeof h.set=="function"){var _=h.get,E=h.set;return Object.defineProperty(r,i,{configurable:!0,get:function(){return _.call(this)},set:function(P){l=""+P,E.call(this,P)}}),Object.defineProperty(r,i,{enumerable:h.enumerable}),{getValue:function(){return l},setValue:function(P){l=""+P},stopTracking:function(){r._valueTracker=null,delete r[i]}}}}function Vm(r){if(!r._valueTracker){var i=F_(r)?"checked":"value";r._valueTracker=FU(r,i,""+r[i])}}function $_(r){if(!r)return!1;var i=r._valueTracker;if(!i)return!0;var l=i.getValue(),h="";return r&&(h=F_(r)?r.checked?"true":"false":r.value),r=h,r!==l?(i.setValue(r),!0):!1}function Jd(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}var $U=/[\n"\\]/g;function Br(r){return r.replace($U,function(i){return"\\"+i.charCodeAt(0).toString(16)+" "})}function Ym(r,i,l,h,_,E,P,z){r.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?r.type=P:r.removeAttribute("type"),i!=null?P==="number"?(i===0&&r.value===""||r.value!=i)&&(r.value=""+Mr(i)):r.value!==""+Mr(i)&&(r.value=""+Mr(i)):P!=="submit"&&P!=="reset"||r.removeAttribute("value"),i!=null?qm(r,P,Mr(i)):l!=null?qm(r,P,Mr(l)):h!=null&&r.removeAttribute("value"),_==null&&E!=null&&(r.defaultChecked=!!E),_!=null&&(r.checked=_&&typeof _!="function"&&typeof _!="symbol"),z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"?r.name=""+Mr(z):r.removeAttribute("name")}function z_(r,i,l,h,_,E,P,z){if(E!=null&&typeof E!="function"&&typeof E!="symbol"&&typeof E!="boolean"&&(r.type=E),i!=null||l!=null){if(!(E!=="submit"&&E!=="reset"||i!=null)){Vm(r);return}l=l!=null?""+Mr(l):"",i=i!=null?""+Mr(i):l,z||i===r.value||(r.value=i),r.defaultValue=i}h=h??_,h=typeof h!="function"&&typeof h!="symbol"&&!!h,r.checked=z?r.checked:!!h,r.defaultChecked=!!h,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(r.name=P),Vm(r)}function qm(r,i,l){i==="number"&&Jd(r.ownerDocument)===r||r.defaultValue===""+l||(r.defaultValue=""+l)}function zs(r,i,l,h){if(r=r.options,i){i={};for(var _=0;_<l.length;_++)i["$"+l[_]]=!0;for(l=0;l<r.length;l++)_=i.hasOwnProperty("$"+r[l].value),r[l].selected!==_&&(r[l].selected=_),_&&h&&(r[l].defaultSelected=!0)}else{for(l=""+Mr(l),i=null,_=0;_<r.length;_++){if(r[_].value===l){r[_].selected=!0,h&&(r[_].defaultSelected=!0);return}i!==null||r[_].disabled||(i=r[_])}i!==null&&(i.selected=!0)}}function j_(r,i,l){if(i!=null&&(i=""+Mr(i),i!==r.value&&(r.value=i),l==null)){r.defaultValue!==i&&(r.defaultValue=i);return}r.defaultValue=l!=null?""+Mr(l):""}function G_(r,i,l,h){if(i==null){if(h!=null){if(l!=null)throw Error(a(92));if(_e(h)){if(1<h.length)throw Error(a(93));h=h[0]}l=h}l==null&&(l=""),i=l}l=Mr(i),r.defaultValue=l,h=r.textContent,h===l&&h!==""&&h!==null&&(r.value=h),Vm(r)}function js(r,i){if(i){var l=r.firstChild;if(l&&l===r.lastChild&&l.nodeType===3){l.nodeValue=i;return}}r.textContent=i}var zU=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function H_(r,i,l){var h=i.indexOf("--")===0;l==null||typeof l=="boolean"||l===""?h?r.setProperty(i,""):i==="float"?r.cssFloat="":r[i]="":h?r.setProperty(i,l):typeof l!="number"||l===0||zU.has(i)?i==="float"?r.cssFloat=l:r[i]=(""+l).trim():r[i]=l+"px"}function V_(r,i,l){if(i!=null&&typeof i!="object")throw Error(a(62));if(r=r.style,l!=null){for(var h in l)!l.hasOwnProperty(h)||i!=null&&i.hasOwnProperty(h)||(h.indexOf("--")===0?r.setProperty(h,""):h==="float"?r.cssFloat="":r[h]="");for(var _ in i)h=i[_],i.hasOwnProperty(_)&&l[_]!==h&&H_(r,_,h)}else for(var E in i)i.hasOwnProperty(E)&&H_(r,E,i[E])}function Zm(r){if(r.indexOf("-")===-1)return!1;switch(r){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var jU=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRen
33dering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),GU=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Qd(r){return GU.test(""+r)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":r}function ni(){}var Km=null;function Xm(r){return r=r.target||r.srcElement||window,r.correspondingUseElement&&(r=r.correspondingUseElement),r.nodeType===3?r.parentNode:r}var Gs=null,Hs=null;function Y_(r){var i=Us(r);if(i&&(r=i.stateNode)){var l=r[Xn]||null;e:switch(r=i.stateNode,i.type){case"input":if(Ym(r,l.value,l.defaultValue,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name),i=l.name,l.type==="radio"&&i!=null){for(l=r;l.parentNode;)l=l.parentNode;for(l=l.querySelectorAll('input[name="'+Br(""+i)+'"][type="radio"]'),i=0;i<l.length;i++){var h=l[i];if(h!==r&&h.form===r.form){var _=h[Xn]||null;if(!_)throw Error(a(90));Ym(h,_.value,_.defaultValue,_.defaultValue,_.checked,_.defaultChecked,_.type,_.name)}}for(i=0;i<l.length;i++)h=l[i],h.form===r.form&&$_(h)}break e;case"textarea":j_(r,l.value,l.defaultValue);break e;case"select":i=l.value,i!=null&&zs(r,!!l.multiple,i,!1)}}}var Jm=!1;function q_(r,i,l){if(Jm)return r(i,l);Jm=!0;try{var h=r(i);return h}finally{if(Jm=!1,(Gs!==null||Hs!==null)&&(Fh(),Gs&&(i=Gs,r=Hs,Hs=Gs=null,Y_(i),r)))for(i=0;i<r.length;i++)Y_(r[i])}}function Lc(r,i){var l=r.stateNode;if(l===null)return null;var h=l[Xn]||null;if(h===null)return null;l=h[i];e:switch(i){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(h=!h.disabled)||(r=r.type,h=!(r==="button"||r==="input"||r==="select"||r==="textarea")),r=!h;break e;default:r=!1}if(r)return null;if(l&&typeof l!="function")throw Error(a(231,i,typeof l));return l}var ri=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qm=!1;if(ri)try{var Nc={};Object.defineProperty(Nc,"passive",{get:function(){Qm=!0}}),window.addEventListener("test",Nc,Nc),window.removeEventListener("test",Nc,Nc)}catch{Qm=!1}var Bi=null,eg=null,eh=null;function Z_(){if(eh)return eh;var r,i=eg,l=i.length,h,_="value"in Bi?Bi.value:Bi.textContent,E=_.length;for(r=0;r<l&&i[r]===_[r];r++);var P=l-r;for(h=1;h<=P&&i[l-h]===_[E-h];h++);return eh=_.slice(r,1<h?1-h:void 0)}function th(r){var i=r.keyCode;return"charCode"in r?(r=r.charCode,r===0&&i===13&&(r=13)):r=i,r===10&&(r=13),32<=r||r===13?r:0}function nh(){return!0}function K_(){return!1}function Jn(r){function i(l,h,_,E,P){this._reactName=l,this._targetInst=_,this.type=h,this.nativeEvent=E,this.target=P,this.currentTarget=null;for(var z in r)r.hasOwnProperty(z)&&(l=r[z],this[z]=l?l(E):E[z]);return this.isDefaultPrevented=(E.defaultPrevented!=null?E.defaultPrevented:E.returnValue===!1)?nh:K_,this.isPropagationStopped=K_,this}return f(i.prototype,{preventDefault:function(){this.defaultPrevented=!0;var l=this.nativeEvent;l&&(l.preventDefault?l.preventDefault():typeof l.returnValue!="unknown"&&(l.returnValue=!1),this.isDefaultPrevented=nh)},stopPropagation:function(){var l=this.nativeEvent;l&&(l.stopPropagation?l.stopPropagation():typeof l.cancelBubble!="unknown"&&(l.cancelBubble=!0),this.isPropagationStopped=nh)},persist:function(){},isPersistent:nh}),i}var Bo={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(r){return r.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},rh=Jn(Bo),Pc=f({},Bo,{view:0,detail:0}),HU=Jn(Pc),tg,ng,Wc,ah=f({},Pc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ag,button:0,buttons:0,relatedTarget:function(r){return r.relatedTarget===void 0?r.fromElement===r.srcElement?r.toElement:r.fromElement:r.relatedTarget},movementX:function(r){return"movementX"in r?r.movementX:(r!==Wc&&(Wc&&r.type==="mousemove"?(tg=r.screenX-Wc.screenX,ng=r.screenY-Wc.screenY):ng=tg=0,Wc=r),tg)},movementY:function(r){return"movementY"in r?r.movementY:ng}}),X_=Jn(ah),VU=f({},ah,{dataTransfer:0}),YU=Jn(VU),qU=f({},Pc,{relatedTarget:0}
vendor: 4,679 bytes, line 33
33),rg=Jn(qU),ZU=f({},Bo,{animationName:0,elapsedTime:0,pseudoElement:0}),KU=Jn(ZU),XU=f({},Bo,{clipboardData:function(r){return"clipboardData"in r?r.clipboardData:window.clipboardData}}),JU=Jn(XU),QU=f({},Bo,{data:0}),J_=Jn(QU),e9={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},t9={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},n9={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function r9(r){var i=this.nativeEvent;return i.getModifierState?i.getModifierState(r):(r=n9[r])?!!i[r]:!1}function ag(){return r9}var a9=f({},Pc,{key:function(r){if(r.key){var i=e9[r.key]||r.key;if(i!=="Unidentified")return i}return r.type==="keypress"?(r=th(r),r===13?"Enter":String.fromCharCode(r)):r.type==="keydown"||r.type==="keyup"?t9[r.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ag,charCode:function(r){return r.type==="keypress"?th(r):0},keyCode:function(r){return r.type==="keydown"||r.type==="keyup"?r.keyCode:0},which:function(r){return r.type==="keypress"?th(r):r.type==="keydown"||r.type==="keyup"?r.keyCode:0}}),i9=Jn(a9),o9=f({},ah,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Q_=Jn(o9),s9=f({},Pc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ag}),l9=Jn(s9),c9=f({},Bo,{propertyName:0,elapsedTime:0,pseudoElement:0}),u9=Jn(c9),d9=f({},ah,{deltaX:function(r){return"deltaX"in r?r.deltaX:"wheelDeltaX"in r?-r.wheelDeltaX:0},deltaY:function(r){return"deltaY"in r?r.deltaY:"wheelDeltaY"in r?-r.wheelDeltaY:"wheelDelta"in r?-r.wheelDelta:0},deltaZ:0,deltaMode:0}),h9=Jn(d9),f9=f({},Bo,{newState:0,oldState:0}),p9=Jn(f9),m9=[9,13,27,32],ig=ri&&"CompositionEvent"in window,Mc=null;ri&&"documentMode"in document&&(Mc=document.documentMode);var g9=ri&&"TextEvent"in window&&!Mc,e1=ri&&(!ig||Mc&&8<Mc&&11>=Mc),t1=" ",n1=!1;function r1(r,i){switch(r){case"keyup":return m9.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function a1(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var Vs=!1;function y9(r,i){switch(r){case"compositionend":return a1(i);case"keypress":return i.which!==32?null:(n1=!0,t1);case"textInput":return r=i.data,r===t1&&n1?null:r;default:return null}}function b9(r,i){if(Vs)return r==="compositionend"||!ig&&r1(r,i)?(r=Z_(),eh=eg=Bi=null,Vs=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1<i.char.length)return i.char;if(i.which)return String.fromCharCode(i.which)}return null;case"compositionend":return e1&&i.locale!=="ko"?null:i.data;default:return null}}var v9={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function i1(r){var i=r&&r.nodeName&&r.nodeName.toLowerCase();return i==="input"?!!v9[r.type]:i==="textarea"}function o1(r,i,l,h){Gs?Hs?Hs.push(h):Hs=[h]:Gs=h,i=Yh(i,"onChange"),0<i.length&&(l=new rh("onChange","change",null,l,h),r.push({event:l,listeners:i}))}var Bc=null,Uc=null;function w9(r){zk(r,0)}function ih(r){var i=Dc(r);if($_(i))return r}function s1(r,i){if(r==="change")return i}var l1=!1;if(ri){var og;if(ri){var sg="oninput"in document;if(!sg){var c1=document.createElement("div");c1.setAttribute("oninput","return;"),sg=typeof c1.oninput=="function"}og=sg}else og=!1;l1=og&&(!document.documentMode||9<document.documentMode)}function u1(){Bc&&(Bc.detachEvent("onpropertychange",d1),Uc=Bc=null)}function d1(r){if(r.propertyName==="value"&&ih(Uc)){var i=[];o1(i,Uc,r,Xm(r)),q_(w9,i)}}function _9(r,i,l){r==="focusin"?(u1(),Bc=i,Uc=l,Bc.attachEvent("onpropertychange",d1)):r==="focusout"&&u1()}function S9(r){if(r==="selectionchange"||r==="keyup"||r==="keydown")return ih(Uc)}function k9(r,i){if(r==="click")return ih(i)}function E9(r,i){if(r==="input"||r==="change")return ih(i)}function T9(r,i){return r===i&&(r!==0||1/r===1/i)||r!==r&&i!==i}var pr=typeof Object.is=="function"?Object.is:T9;function Fc(r,i){if(pr(r,i))return!0;
vendor: 23,752 bytes, line 33
33if(typeof r!="object"||r===null||typeof i!="object"||i===null)return!1;var l=Object.keys(r),h=Object.keys(i);if(l.length!==h.length)return!1;for(h=0;h<l.length;h++){var _=l[h];if(!Pr.call(i,_)||!pr(r[_],i[_]))return!1}return!0}function h1(r){for(;r&&r.firstChild;)r=r.firstChild;return r}function f1(r,i){var l=h1(r);r=0;for(var h;l;){if(l.nodeType===3){if(h=r+l.textContent.length,r<=i&&h>=i)return{node:l,offset:i-r};r=h}e:{for(;l;){if(l.nextSibling){l=l.nextSibling;break e}l=l.parentNode}l=void 0}l=h1(l)}}function p1(r,i){return r&&i?r===i?!0:r&&r.nodeType===3?!1:i&&i.nodeType===3?p1(r,i.parentNode):"contains"in r?r.contains(i):r.compareDocumentPosition?!!(r.compareDocumentPosition(i)&16):!1:!1}function m1(r){r=r!=null&&r.ownerDocument!=null&&r.ownerDocument.defaultView!=null?r.ownerDocument.defaultView:window;for(var i=Jd(r.document);i instanceof r.HTMLIFrameElement;){try{var l=typeof i.contentWindow.location.href=="string"}catch{l=!1}if(l)r=i.contentWindow;else break;i=Jd(r.document)}return i}function lg(r){var i=r&&r.nodeName&&r.nodeName.toLowerCase();return i&&(i==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||i==="textarea"||r.contentEditable==="true")}var R9=ri&&"documentMode"in document&&11>=document.documentMode,Ys=null,cg=null,$c=null,ug=!1;function g1(r,i,l){var h=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;ug||Ys==null||Ys!==Jd(h)||(h=Ys,"selectionStart"in h&&lg(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),$c&&Fc($c,h)||($c=h,h=Yh(cg,"onSelect"),0<h.length&&(i=new rh("onSelect","select",null,i,l),r.push({event:i,listeners:h}),i.target=Ys)))}function Uo(r,i){var l={};return l[r.toLowerCase()]=i.toLowerCase(),l["Webkit"+r]="webkit"+i,l["Moz"+r]="moz"+i,l}var qs={animationend:Uo("Animation","AnimationEnd"),animationiteration:Uo("Animation","AnimationIteration"),animationstart:Uo("Animation","AnimationStart"),transitionrun:Uo("Transition","TransitionRun"),transitionstart:Uo("Transition","TransitionStart"),transitioncancel:Uo("Transition","TransitionCancel"),transitionend:Uo("Transition","TransitionEnd")},dg={},y1={};ri&&(y1=document.createElement("div").style,"AnimationEvent"in window||(delete qs.animationend.animation,delete qs.animationiteration.animation,delete qs.animationstart.animation),"TransitionEvent"in window||delete qs.transitionend.transition);function Fo(r){if(dg[r])return dg[r];if(!qs[r])return r;var i=qs[r],l;for(l in i)if(i.hasOwnProperty(l)&&l in y1)return dg[r]=i[l];return r}var b1=Fo("animationend"),v1=Fo("animationiteration"),w1=Fo("animationstart"),C9=Fo("transitionrun"),A9=Fo("transitionstart"),x9=Fo("transitioncancel"),_1=Fo("transitionend"),S1=new Map,hg="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");hg.push("scrollEnd");function sa(r,i){S1.set(r,i),Mo(i,[r])}var oh=typeof reportError=="function"?reportError:function(r){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var i=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof r=="object"&&r!==null&&typeof r.message=="string"?String(r.message):String(r),error:r});if(!window.dispatchEvent(i))return}else if(typeof xi=="object"&&typeof xi.emit=="function"){xi.emit("uncaughtException",r);return}console.error(r)},Ur=[],Zs=0,fg=0;function sh(){for(var r=Zs,i=fg=Zs=0;i<r;){var l=Ur[i];Ur[i++]=null;var h=Ur[i];Ur[i++]=null;var _=Ur[i];Ur[i++]=null;var E=Ur[i];if(Ur[i++]=null,h!==null&&_!==null){var P=h.pending;P===null?_.next=_:(_.next=P.next,P.next=_),h.pending=_}E!==0&&k1(l,_,E)}}function lh(r,i,l,h){Ur[Zs++]=r,Ur[Zs++]=i,Ur[Zs++]=l,Ur[Zs++]=h,fg|=h,r.lanes|=h,r=r.alternate,r!==null&&(r.lanes|=h)}function pg(r,i,l,h){return lh(r,i,l,h),ch(r)}function $o(r,i){return lh(r,null,null,i),ch(r)}function k1(r,i,l){r.lanes|=l;var h=r.alternate;h!==null&&(h.lanes|=l);for(var _=!1,E=r.return;E!==null;)E.childLanes|=l,h=E.alternate,h!==null&&(h.childLanes|=l),E.tag===22&&(r=E.stateNode,r===null||r._visibility&1||(_=!0)),r=E,E=E.return;return r.tag===3?(E=r.stateNode,_&&i!==null&&(_=31-ae(l),r=E.hiddenUpdates,h=r[_],h===null?r[_]=[i]:h.push(i),i.lane=l|536870912),E):null}function ch(r){if(50<cu)throw cu=0,ky=null,Error(a(185));for(var i=r.return;i!==null;)r=i,i=r.return;return r.tag===3?r.stateNode:null}var Ks={};function O9(r,i,l,h){this.tag=r,this.key=l,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=h,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mr(r,i,l,h){return new O9(r,i,l,h)}function mg(r){return r=r.prototype,!(!r||!r.isReactComponent)}function ai(r,i){var l=r.alternate;return l===null?(l=mr(r.tag,i,r.key,r.mode),l.elementType=r.elementType,l.type=r.type,l.stateNode=r.stateNode,l.alternate=r,r.alternate=l):(l.pendingProps=i,l.type=r.type,l.flags=0,l.subtreeFlags=0,l.deletions=null),l.flags=r.flags&65011712,l.childLanes=r.childLanes,l.lanes=r.lanes,l.child=r.child,l.memoizedProps=r.memoizedProps,l.memoizedState=r.memoizedState,l.updateQueue=r.updateQueue,i=r.dependencies,l.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},l.sibling=r.sibling,l.index=r.index,l.ref=r.ref,l.refCleanup=r.refCleanup,l}function E1(r,i){r.flags&=65011714;var l=r.alternate;return l===null?(r.childLanes=0,r.lanes=i,r.child=null,r.subtreeFlags=0,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null,r.stateNode=null):(r.childLanes=l.childLanes,r.lanes=l.lanes,r.child=l.child,r.subtreeFlags=0,r.deletions=null,r.memoizedProps=l.memoizedProps,r.memoizedState=l.memoizedState,r.updateQueue=l.updateQueue,r.type=l.type,i=l.dependencies,r.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext}),r}function uh(r,i,l,h,_,E){var P=0;if(h=r,typeof r=="function")mg(r)&&(P=1);else if(typeof r=="string")P=P8(r,l,pe.current)?26:r==="html"||r==="head"||r==="body"?27:5;else e:switch(r){case W:return r=mr(31,l,i,_),r.elementType=W,r.lanes=E,r;case g:return zo(l.children,_,E,i);case S:P=8,_|=24;break;case w:return r=mr(12,l,i,_|2),r.elementType=w,r.lanes=E,r;case I:return r=mr(13,l,i,_),r.elementType=I,r.lanes=E,r;case M:return r=mr(19,l,i,_),r.elementType=M,r.lanes=E,r;default:if(typeof r=="object"&&r!==null)switch(r.$$typeof){case T:P=10;break e;case k:P=9;break e;case R:P=11;break e;case L:P=14;break e;case O:P=16,h=null;break e}P=29,l=Error(a(130,r===null?"null":typeof r,"")),h=null}return i=mr(P,l,i,_),i.elementType=r,i.type=h,i.lanes=E,i}function zo(r,i,l,h){return r=mr(7,r,h,i),r.lanes=l,r}function gg(r,i,l){return r=mr(6,r,null,i),r.lanes=l,r}function T1(r){var i=mr(18,null,null,0);return i.stateNode=r,i}function yg(r,i,l){return i=mr(4,r.children!==null?r.children:[],r.key,i),i.lanes=l,i.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},i}var R1=new WeakMap;function Fr(r,i){if(typeof r=="object"&&r!==null){var l=R1.get(r);return l!==void 0?l:(i={value:r,source:i,stack:Nr(i)},R1.set(r,i),i)}return{value:r,source:i,stack:Nr(i)}}var Xs=[],Js=0,dh=null,zc=0,$r=[],zr=0,Ui=null,xa=1,Oa="";function ii(r,i){Xs[Js++]=zc,Xs[Js++]=dh,dh=r,zc=i}function C1(r,i,l){$r[zr++]=xa,$r[zr++]=Oa,$r[zr++]=Ui,Ui=r;var h=xa;r=Oa;var _=32-ae(h)-1;h&=~(1<<_),l+=1;var E=32-ae(i)+_;if(30<E){var P=_-_%5;E=(h&(1<<P)-1).toString(32),h>>=P,_-=P,xa=1<<32-ae(i)+_|l<<_|h,Oa=E+r}else xa=1<<E|l<<_|h,Oa=r}function bg(r){r.return!==null&&(ii(r,1),C1(r,1,0))}function vg(r){for(;r===dh;)dh=Xs[--Js],Xs[Js]=null,zc=Xs[--Js],Xs[Js]=null;for(;r===Ui;)Ui=$r[--zr],$r[zr]=null,Oa=$r[--zr],$r[zr]=null,xa=$r[--zr],$r[zr]=null}function A1(r,i){$r[zr++]=xa,$r[zr++]=Oa,$r[zr++]=Ui,xa=i.id,Oa=i.overflow,Ui=r}var Cn=null,Pt=null,st=!1,Fi=null,jr=!1,wg=Error(a(519));function $i(r){var i=Error(a(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw jc(Fr(i,r)),wg}function x1(r){var i=r.stateNode,l=r.type,h=r.memoizedProps;switch(i[Rn]=r,i[Xn]=h,l){case"dialog":nt("cancel",i),nt("close",i);break;case"iframe":case"object":case"embed":nt("load",i);break;case"video":case"audio":for(l=0;l<du.length;l++)nt(du[l],i);break;case"source":nt("error",i);break;case"img":case"image":case"link":nt("error",i),nt("load",i);break;case"details":nt("toggle",i);break;case"input":nt("invalid",i),z_(i,h.value,h.defaultValue,h.checked,h.defaultChecked,h.type,h.name,!0);break;case"select":nt("invalid",i);break;case"textarea":nt("invalid",i),G_(i,h.value,h.defaultValue,h.children)}l=h.children,typeof l!="string"&&typeof l!="number"&&typeof l!="bigint"||i.textContent===""+l||h.suppressHydrationWarning===!0||Vk(i.textContent,l)?(h.popover!=null&&(nt("beforetoggle",i),nt("toggle",i)),h.onScroll!=null&&nt("scroll",i),h.onScrollEnd!=null&&nt("scrollend",i),h.onClick!=null&&(i.onclick=ni),i=!0):i=!1,i||$i(r,!0)}function O1(r){for(Cn=r.return;Cn;)switch(Cn.tag){case 5:case 31:case 13:jr=!1;return;case 27:case 3:jr=!0;return;default:Cn=Cn.return}}function Qs(r){if(r!==Cn)return!1;if(!st)return O1(r),st=!0,!1;var i=r.tag,l;if((l=i!==3&&i!==27)&&((l=i===5)&&(l=r.type,l=!(l!=="form"&&l!=="button")||By(r.type,r.memoizedProps)),l=!l),l&&Pt&&$i(r),O1(r),i===13){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(a(317));Pt=tE(r)}else if(i===31){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(a(317));Pt=tE(r)}else i===27?(i=Pt,to(r.type)?(r=jy,jy=null,Pt=r):Pt=i):Pt=Cn?Hr(r.stateNode.nextSibling):null;return!0}function jo(){Pt=Cn=null,st=!1}function _g(){var r=Fi;return r!==null&&(nr===null?nr=r:nr.push.apply(nr,r),Fi=null),r}function jc(r){Fi===null?Fi=[r]:Fi.push(r)}var Sg=j(null),Go=null,oi=null;function zi(r,i,l){fe(Sg,i._currentValue),i._currentValue=l}function si(r){r._currentValue=Sg.current,X(Sg)}function kg(r,i,l){for(;r!==null;){var h=r.alternate;if((r.childLanes&i)!==i?(r.childLanes|=i,h!==null&&(h.childLanes|=i)):h!==null&&(h.childLanes&i)!==i&&(h.childLanes|=i),r===l)break;r=r.return}}function Eg(r,i,l,h){var _=r.child;for(_!==null&&(_.return=r);_!==null;){var E=_.dependencies;if(E!==null){var P=_.child;E=E.firstContext;e:for(;E!==null;){var z=E;E=_;for(var V=0;V<i.length;V++)if(z.context===i[V]){E.lanes|=l,z=E.alternate,z!==null&&(z.lanes|=l),kg(E.return,l,r),h||(P=null);break e}E=z.next}}else if(_.tag===18){if(P=_.return,P===null)throw Error(a(341));P.lanes|=l,E=P.alternate,E!==null&&(E.lanes|=l),kg(P,l,r),P=null}else P=_.child;if(P!==null)P.return=_;else for(P=_;P!==null;){if(P===r){P=null;break}if(_=P.sibling,_!==null){_.return=P.return,P=_;break}P=P.return}_=P}}function el(r,i,l,h){r=null;for(var _=i,E=!1;_!==null;){if(!E){if((_.flags&524288)!==0)E=!0;else if((_.flags&262144)!==0)break}if(_.tag===10){var P=_.alternate;if(P===null)throw Error(a(387));if(P=P.memoizedProps,P!==null){var z=_.type;pr(_.pendingProps.value,P.value)||(r!==null?r.push(z):r=[z])}}else if(_===Me.current){if(P=_.alternate,P===null)throw Error(a(387));P.memoizedState.memoizedState!==_.memoizedState.memoizedState&&(r!==null?r.push(gu):r=[gu])}_=_.return}r!==null&&Eg(i,r,l,h),i.flags|=262144}function hh(r){for(r=r.firstContext;r!==null;){if(!pr(r.context._currentValue,r.memoizedValue))return!0;r=r.next}return!1}function Ho(r){Go=r,oi=null,r=r.dependencies,r!==null&&(r.firstContext=null)}function An(r){return I1(Go,r)}function fh(r,i){return Go===null&&Ho(r),I1(r,i)}function I1(r,i){var l=i._currentValue;if(i={context:i,memoizedValue:l,next:null},oi===null){if(r===null)throw Error(a(308));oi=i,r.dependencies={lanes:0,firstContext:i},r.flags|=524288}else oi=oi.next=i;return l}var I9=typeof AbortController<"u"?AbortController:function(){var r=[],i=this.signal={aborted:!1,addEventListener:function(l,h){r.push(h)}};this.abort=function(){i.aborted=!0,r.forEach(function(l){return l()})}},D9=t.unstable_scheduleCallback,L9=t.unstable_NormalPriority,tn={$$typeof:T,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Tg(){return{controller:new I9,data:new Map,refCount:0}}function Gc(r){r.refCount--,r.refCount===0&&D9(L9,function(){r.controller.abort()})}var Hc=null,Rg=0,tl=0,nl=null;function N9(r,i){if(Hc===null){var l=Hc=[];Rg=0,tl=xy(),nl={status:"pending",value:void 0,then:function(h){l.push(h)}}}return Rg++,i.then(D1,D1),i}function D1(){if(--Rg===0&&Hc!==null){nl!==null&&(nl.status="fulfilled");var r=Hc;Hc=null,tl=0,nl=null;for(var i=0;i<r.length;i++)(0,r[i])()}}function P9(r,i){var l=[],h={status:"pending",value:null,reason:null,then:function(_){l.push(_)}};return r.then(function(){h.status="fulfilled",h.value=i;for(var _=0;_<l.length;_++)(0,l[_])(i)},function(_){for(h.status="rejected",h.reason=_,_=0;_<l.length;_++)(0,l[_])(void 0)}),h}var L1=Y.S;Y.S=function(r,i){gk=Et(),typeof i=="object"&&i!==null&&typeof i.then=="function"&&N9(r,i),L1!==null&&L1(r,i)};var Vo=j(null);function Cg(){var r=Vo.current;return r!==null?r:Rt.pooledCache}function ph(r,i){i===null?fe(Vo,Vo.current):fe(Vo,i.pool)}function N1(){var r=Cg();return r===null?null:{parent:tn._currentValue,pool:r}}var rl=Error(a(460)),Ag=Error(a(474)),mh=Error(a(542)),gh={then:function(){}};function P1(r){return r=r.status,r==="fulfilled"||r==="rejected"}function W1(r,i,l){switch(l=r[l],l===void 0?r.push(i):l!==i&&(i.then(ni,ni),i=l),i.status){case"fulfilled":return i.value;case"rejected":throw r=i.reason,B1(r),r;default:if(typeof i.status=="string")i.then(ni,ni);else{if(r=Rt,r!==null&&100<r.shellSuspendCounter)throw Error(a(482));r=i,r.status="pending",r.then(function(h){if(i.status==="pending"){var _=i;_.status="fulfilled",_.value=h}},function(h){if(i.status==="pending"){var _=i;_.status="rejected",_.reason=h}})}switch(i.status){case"fulfilled":return i.value;case"rejected":throw r=i.reason,B1(r),r}throw qo=i,rl}}function Yo(r){try{var i=r._init;return i(r._payload)}catch(l){throw l!==null&&typeof l=="object"&&typeof l.then=="function"?(qo=l,rl):l}}var qo=null;function M1(){if(qo===null)throw Error(a(459));var r=qo;return qo=null,r}function B1(r){if(r===rl||r===mh)throw Error(a(483))}var al=null,Vc=0;function yh(r){var i=Vc;return Vc+=1,al===null&&(al=[]),W1(al,r,i)}function Yc(r,i){i=i.props.ref,r.ref=i!==void 0?i:null}function bh(r,i){throw i.$$typeof===b?Error(a(525)):(r=Object.prototype.toString.call(i),Error(a(31,r==="[object Object]"?"object with keys {"+Object.keys(i).join(", ")+"}":r)))}function U1(r){function i(J,Z){if(r){var te=J.deletions;te===null?(J.deletions=[Z],J.flags|=16):te.push(Z)}}function l(J,Z){if(!r)return null;for(;Z!==null;)i(J,Z),Z=Z.sibling;return null}function h(J){for(var Z=new Map;J!==null;)J.key!==null?Z.set(J.key,J):Z.set(J.index,J),J=J.sibling;return Z}function _(J,Z){return J=ai(J,Z),J.index=0,J.sibling=null,J}function E(J,Z,te){return J.index=te,r?(te=J.alternate,te!==null?(te=te.index,te<Z?(J.flags|=67108866,Z):te):(J.flags|=67108866,Z)):(J.flags|=1048576,Z)}function P(J){return r&&J.alternate===null&&(J.flags|=67108866),J}function z(J,Z,te,me){return Z===null||Z.tag!==6?(Z=gg(te,J.mode,me),Z.return=J,Z):(Z=_(Z,te),Z.return=J,Z)}function V(J,Z,te,me){var Be=te.type;return Be===g?he(J,Z,te.props.children,me,te.key):Z!==null&&(Z.elementType===Be||typeof Be=="object"&&Be!==null&&Be.$$typeof===O&&Yo(Be)===Z.type)?(Z=_(Z,te.props),Yc(Z,te),Z.return=J,Z):(Z=uh(te.type,te.key,te.props,null,J.mode,me),Yc(Z,te),Z.return=J,Z)}function ne(J,Z,te,me){return Z===null||Z.tag!==4||Z.stateNode.containerInfo!==te.containerInfo||Z.stateNode.implementation!==te.implementation?(Z=yg(te,J.mode,me),Z.return=J,Z):(Z=_(Z,te.children||[]),Z.return=J,Z)}function he(J,Z,te,me,Be){return Z===null||Z.tag!==7?(Z=zo(te,J.mode,me,Be),Z.return=J,Z):(Z=_(Z,te),Z.return=J,Z)}function ge(J,Z,te){if(typeof Z=="string"&&Z!==""||typeof Z=="number"||typeof Z=="bigint")return Z=gg(""+Z,J.mode,te),Z.return=J,Z;if(typeof Z=="object"&&Z!==null){switch(Z.$$typeof){case v:return te=uh(Z.type,Z.key,Z.props,null,J.mode,te),Yc(te,Z),te.return=J,te;case y:return Z=yg(Z,J.mode,te),Z.return=J,Z;case O:return Z=Yo(Z),ge(J,Z,te)}if(_e(Z)||ee(Z))return Z=zo(Z,J.mode,te,null),Z.return=J,Z;if(typeof Z.then=="function")return ge(J,yh(Z),te);if(Z.$$typeof===T)return ge(J,fh(J,Z),te);bh(J,Z)}return null}function oe(J,Z,te,me){var Be=Z!==null?Z.key:null;if(typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint")return Be!==null?null:z(J,Z,""+te,me);if(typeof te=="object"&&te!==null){switch(te.$$typeof){case v:return te.key===Be?V(J,Z,te,me):null;case y:return te.key===Be?ne(J,Z,te,me):null;case O:return te=Yo(te),oe(J,Z,te,me)}if(_e(te)||ee(te))return Be!==null?null:he(J,Z,te,me,null);if(typeof te.then=="function")return oe(J,Z,yh(te),me);if(te.$$typeof===T)return oe(J,Z,fh(J,te),me);bh(J,te)}return null}function ue(J,Z,te,me,Be){if(typeof me=="string"&&me!==""||typeof me=="number"||typeof me=="bigint")return J=J.get(te)||null,z(Z,J,""+me,Be);if(typeof me=="object"&&me!==null){switch(me.$$typeof){case v:return J=J.get(me.key===null?te:me.key)||null,V(Z,J,me,Be);case y:return J=J.get(me.key===null?te:me.key)||null,ne(Z,J,me,Be);case O:return me=Yo(me),ue(J,Z,te,me,Be)}if(_e(me)||ee(me))return J=J.get(te)||null,he(Z,J,me,Be,null);if(typeof me.then=="function")return ue(J,Z,te,yh(me),Be);if(me.$$typeof===T)return ue(J,Z,te,fh(Z,me),Be);bh(Z,me)}return null}function De(J,Z,te,me){for(var Be=null,dt=null,Ne=Z,Ze=Z=0,at=null;Ne!==null&&Ze<te.length;Ze++){Ne.index>Ze?(at=Ne,Ne=null):at=Ne.sibling;var ht=oe(J,Ne,te[Ze],me);if(ht===null){Ne===null&&(Ne=at);break}r&&Ne&&ht.alternate===null&&i(J,Ne),Z=E(ht,Z,Ze),dt===null?Be=ht:dt.sibling=ht,dt=ht,Ne=at}if(Ze===te.length)return l(J,Ne),st&&ii(J,Ze),Be;if(Ne===null){for(;Ze<te.length;Ze++)Ne=ge(J,te[Ze],me),Ne!==null&&(Z=E(Ne,Z,Ze),dt===null?Be=Ne:dt.sibling=Ne,dt=Ne);return st&&ii(J,Ze),Be}for(Ne=h(Ne);Ze<te.length;Ze++)at=ue(Ne,J,Ze,te[Ze],me),at!==null&&(r&&at.alternate!==null&&Ne.delete(at.key===null?Ze:at.key),Z=E(at,Z,Ze),dt===null?Be=at:dt.sibling=at,dt=at);return r&&Ne.forEach(function(oo){return i(J,oo)}),st&&ii(J,Ze),Be}function Ue(J,Z,te,me){if(te==null)throw Error(a(151));for(var Be=null,dt=null,Ne=Z,Ze=Z=0,at=null,ht=te.next();Ne!==null&&!ht.done;Ze++,ht=te.next()){Ne.index>Ze?(at=Ne,Ne=null):at=Ne.sibling;var oo=oe(J,Ne,ht.value,me);if(oo===null){Ne===null&&(Ne=at);break}r&&Ne&&oo.alternate===null&&i(J,Ne),Z=E(oo,Z,Ze),dt===null?Be=oo:dt.sibling=oo,dt=oo,Ne=at}if(ht.done)return l(J,Ne),st&&ii(J,Ze),Be;if(Ne===null){for(;!ht.done;Ze++,ht=te.next())ht=ge(J,ht.value,me),ht!==null&&(Z=E(ht,Z,Ze),dt===null?Be=ht:dt.sibling=ht,dt=ht);return st&&ii(J,Ze),Be}for(Ne=h(Ne);!ht.done;Ze++,ht=te.next())ht=ue(Ne,J,Ze,ht.value,me),ht!==null&&(r&&ht.alternate!==null&&Ne.delete(ht.key===null?Ze:ht.key),Z=E(ht,Z,Ze),dt===null?Be=ht:dt.sibling=ht,dt=ht);return r&&Ne.forEach(function(V8){return i(J,V8)}),st&&ii(J,Ze),Be}function _t(J,Z,te,me){if(typeof te=="object"&&te!==null&&te.type===g&&te.key===null&&(te=te.props.children),typeof te=="object"&&te!==null){switch(te.$$typeof){case v:e:{for(var Be=te.key;Z!==null;){if(Z.key===Be){if(Be=te.type,Be===g){if(Z.tag===7){l(J,Z.sibling),me=_(Z,te.props.children),me.return=J,J=me;break e}}else if(Z.elementType===Be||typeof Be=="object"&&Be!==null&&Be.$$typeof===O&&Yo(Be)===Z.type){l(J,Z.sibling),me=_(Z,te.props),Yc(me,te),me.return=J,J=me;break e}l(J,Z);break}else i(J,Z);Z=Z.sibling}te.type===g?(me=zo(te.props.children,J.mode,me,te.key),me.return=J,J=me):(me=uh(te.type,te.key,te.props,null,J.mode,me),Yc(me,te),me.return=J,J=me)}return P(J);case y:e:{for(Be=te.key;Z!==null;){if(Z.key===Be)if(Z.tag===4&&Z.stateNode.containerInfo===te.containerInfo&&Z.stateNode.implementation===te.implementation){l(J,Z.sibling),me=_(Z,te.children||[]),me.return=J,J=me;break e}else{l(J,Z);break}else i(J,Z);Z=Z.sibling}me=yg(te,J.mode,me),me.return=J,J=me}return P(J);case O:return te=Yo(te),_t(J,Z,te,me)}if(_e(te))return De(J,Z,te,me);if(ee(te)){if(Be=ee(te),typeof Be!="function")throw Error(a(150));return te=Be.call(te),Ue(J,Z,te,me)}if(typeof te.then=="function")return _t(J,Z,yh(te),me);if(te.$$typeof===T)return _t(J,Z,fh(J,te),me);bh(J,te)}return typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint"?(te=""+te,Z!==null&&Z.tag===6?(l(J,Z.sibling),me=_(Z,te),me.return=J,J=me):(l(J,Z),me=gg(te,J.mode,me),me.return=J,J=me),P(J)):l(J,Z)}return function(J,Z,te,me){try{Vc=0;var Be=_t(J,Z,te,me);return al=null,Be}catch(Ne){if(Ne===rl||Ne===mh)throw Ne;var dt=mr(29,Ne,null,J.mode);return dt.lanes=me,dt.return=J,dt}finally{}}}var Zo=U1(!0),F1=U1(!1),ji=!1;function xg(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Og(r,i){r=r.updateQueue,i.updateQueue===r&&(i.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,callbacks:null})}function Gi(r){return{lane:r,tag:0,payload:null,callback:null,next:null}}function Hi(r,i,l){var h=r.updateQueue;if(h===null)return null;if(h=h.shared,(pt&2)!==0){var _=h.pending;return _===null?i.next=i:(i.next=_.next,_.next=i),h.pending=i,i=ch(r),k1(r,null,l),i}return lh(r,h,i,l),ch(r)}function qc(r,i,l){if(i=i.updateQueue,i!==null&&(i=i.shared,(l&4194048)!==0)){var h=i.lanes;h&=r.pendingLanes,l|=h,i.lanes=l,I_(r,l)}}function Ig(r,i){var l=r.updateQueue,h=r.alternate;if(h!==null&&(h=h.updateQueue,l===h)){var _=null,E=null;if(l=l.firstBaseUpdate,l!==null){do{var P={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};E===null?_=E=P:E=E.next=P,l=l.next}while(l!==null);E===null?_=E=i:E=E.next=i}else _=E=i;l={baseState:h.baseState,firstBaseUpdate:_,lastBaseUpdate:E,shared:h.shared,callbacks:h.callbacks},r.updateQueue=l;return}r=l.lastBaseUpdate,r===null?l.firstBaseUpdate=i:r.next=i,l.lastBaseUpdate=i}var Dg=!1;function Zc(){if(Dg){var r=nl;if(r!==null)throw r}}function Kc(r,i,l,h){Dg=!1;var _=r.updateQueue;ji=!1;var E=_.firstBaseUpdate,P=_.lastBaseUpdate,z=_.shared.pending;if(z!==null){_.shared.pending=null;var V=z,ne=V.next;V.next=null,P===null?E=ne:P.next=ne,P=V;var he=r.alternate;he!==null&&(he=he.updateQueue,z=he.lastBaseUpdate,z!==P&&(z===null?he.firstBaseUpdate=ne:z.next=ne,he.lastBaseUpdate=V))}if(E!==null){var ge=_.baseState;P=0,he=ne=V=null,z=E;do{var oe=z.lane&-536870913,ue=oe!==z.lane;if(ue?(rt&oe)===oe:(h&oe)===oe){oe!==0&&oe===tl&&(Dg=!0),he!==null&&(he=he.next={lane:0,tag:z.tag,payload:z.payload,callback:null,next:null});e:{var De=r,Ue=z;oe=i;var _t=l;switch(Ue.tag){case 1:if(De=Ue.payload,typeof De=="function"){ge=De.call(_t,ge,oe);break e}ge=De;break e;case 3:De.flags=De.flags&-65537|128;case 0:if(De=Ue.payload,oe=typeof De=="function"?De.call(_t,ge,oe):De,oe==null)break e;ge=f({},ge,oe);break e;case 2:ji=!0}}oe=z.callback,oe!==null&&(r.flags|=64,ue&&(r.flags|=8192),ue=_.callbacks,ue===null?_.callbacks=[oe]:ue.push(oe))}else ue={lane:oe,tag:z.tag,payload:z.payload,callback:z.callback,next:null},he===null?(ne=he=ue,V=ge):he=he.next=ue,P|=oe;
vendor: 7,950 bytes, line 33
33if(z=z.next,z===null){if(z=_.shared.pending,z===null)break;ue=z,z=ue.next,ue.next=null,_.lastBaseUpdate=ue,_.shared.pending=null}}while(!0);he===null&&(V=ge),_.baseState=V,_.firstBaseUpdate=ne,_.lastBaseUpdate=he,E===null&&(_.shared.lanes=0),Ki|=P,r.lanes=P,r.memoizedState=ge}}function $1(r,i){if(typeof r!="function")throw Error(a(191,r));r.call(i)}function z1(r,i){var l=r.callbacks;if(l!==null)for(r.callbacks=null,r=0;r<l.length;r++)$1(l[r],i)}var il=j(null),vh=j(0);function j1(r,i){r=gi,fe(vh,r),fe(il,i),gi=r|i.baseLanes}function Lg(){fe(vh,gi),fe(il,il.current)}function Ng(){gi=vh.current,X(il),X(vh)}var gr=j(null),Gr=null;function Vi(r){var i=r.alternate;fe(Zt,Zt.current&1),fe(gr,r),Gr===null&&(i===null||il.current!==null||i.memoizedState!==null)&&(Gr=r)}function Pg(r){fe(Zt,Zt.current),fe(gr,r),Gr===null&&(Gr=r)}function G1(r){r.tag===22?(fe(Zt,Zt.current),fe(gr,r),Gr===null&&(Gr=r)):Yi()}function Yi(){fe(Zt,Zt.current),fe(gr,gr.current)}function yr(r){X(gr),Gr===r&&(Gr=null),X(Zt)}var Zt=j(0);function wh(r){for(var i=r;i!==null;){if(i.tag===13){var l=i.memoizedState;if(l!==null&&(l=l.dehydrated,l===null||$y(l)||zy(l)))return i}else if(i.tag===19&&(i.memoizedProps.revealOrder==="forwards"||i.memoizedProps.revealOrder==="backwards"||i.memoizedProps.revealOrder==="unstable_legacy-backwards"||i.memoizedProps.revealOrder==="together")){if((i.flags&128)!==0)return i}else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===r)break;for(;i.sibling===null;){if(i.return===null||i.return===r)return null;i=i.return}i.sibling.return=i.return,i=i.sibling}return null}var li=0,Ye=null,vt=null,nn=null,_h=!1,ol=!1,Ko=!1,Sh=0,Xc=0,sl=null,W9=0;function jt(){throw Error(a(321))}function Wg(r,i){if(i===null)return!1;for(var l=0;l<i.length&&l<r.length;l++)if(!pr(r[l],i[l]))return!1;return!0}function Mg(r,i,l,h,_,E){return li=E,Ye=i,i.memoizedState=null,i.updateQueue=null,i.lanes=0,Y.H=r===null||r.memoizedState===null?CS:Jg,Ko=!1,E=l(h,_),Ko=!1,ol&&(E=V1(i,l,h,_)),H1(r),E}function H1(r){Y.H=eu;var i=vt!==null&&vt.next!==null;if(li=0,nn=vt=Ye=null,_h=!1,Xc=0,sl=null,i)throw Error(a(300));r===null||rn||(r=r.dependencies,r!==null&&hh(r)&&(rn=!0))}function V1(r,i,l,h){Ye=r;var _=0;do{if(ol&&(sl=null),Xc=0,ol=!1,25<=_)throw Error(a(301));if(_+=1,nn=vt=null,r.updateQueue!=null){var E=r.updateQueue;E.lastEffect=null,E.events=null,E.stores=null,E.memoCache!=null&&(E.memoCache.index=0)}Y.H=AS,E=i(l,h)}while(ol);return E}function M9(){var r=Y.H,i=r.useState()[0];return i=typeof i.then=="function"?Jc(i):i,r=r.useState()[0],(vt!==null?vt.memoizedState:null)!==r&&(Ye.flags|=1024),i}function Bg(){var r=Sh!==0;return Sh=0,r}function Ug(r,i,l){i.updateQueue=r.updateQueue,i.flags&=-2053,r.lanes&=~l}function Fg(r){if(_h){for(r=r.memoizedState;r!==null;){var i=r.queue;i!==null&&(i.pending=null),r=r.next}_h=!1}li=0,nn=vt=Ye=null,ol=!1,Xc=Sh=0,sl=null}function $n(){var r={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return nn===null?Ye.memoizedState=nn=r:nn=nn.next=r,nn}function Kt(){if(vt===null){var r=Ye.alternate;r=r!==null?r.memoizedState:null}else r=vt.next;var i=nn===null?Ye.memoizedState:nn.next;if(i!==null)nn=i,vt=r;else{if(r===null)throw Ye.alternate===null?Error(a(467)):Error(a(310));vt=r,r={memoizedState:vt.memoizedState,baseState:vt.baseState,baseQueue:vt.baseQueue,queue:vt.queue,next:null},nn===null?Ye.memoizedState=nn=r:nn=nn.next=r}return nn}function kh(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Jc(r){var i=Xc;return Xc+=1,sl===null&&(sl=[]),r=W1(sl,r,i),i=Ye,(nn===null?i.memoizedState:nn.next)===null&&(i=i.alternate,Y.H=i===null||i.memoizedState===null?CS:Jg),r}function Eh(r){if(r!==null&&typeof r=="object"){if(typeof r.then=="function")return Jc(r);if(r.$$typeof===T)return An(r)}throw Error(a(438,String(r)))}function $g(r){var i=null,l=Ye.updateQueue;if(l!==null&&(i=l.memoCache),i==null){var h=Ye.alternate;h!==null&&(h=h.updateQueue,h!==null&&(h=h.memoCache,h!=null&&(i={data:h.data.map(function(_){return _.slice()}),index:0})))}if(i==null&&(i={data:[],index:0}),l===null&&(l=kh(),Ye.updateQueue=l),l.memoCache=i,l=i.data[i.index],l===void 0)for(l=i.data[i.index]=Array(r),h=0;h<r;h++)l[h]=F;return i.index++,l}function ci(r,i){return typeof i=="function"?i(r):i}function Th(r){var i=Kt();return zg(i,vt,r)}function zg(r,i,l){var h=r.queue;if(h===null)throw Error(a(311));h.lastRenderedReducer=l;var _=r.baseQueue,E=h.pending;if(E!==null){if(_!==null){var P=_.next;_.next=E.next,E.next=P}i.baseQueue=_=E,h.pending=null}if(E=r.baseState,_===null)r.memoizedState=E;else{i=_.next;var z=P=null,V=null,ne=i,he=!1;do{var ge=ne.lane&-536870913;if(ge!==ne.lane?(rt&ge)===ge:(li&ge)===ge){var oe=ne.revertLane;if(oe===0)V!==null&&(V=V.next={lane:0,revertLane:0,gesture:null,action:ne.action,hasEagerState:ne.hasEagerState,eagerState:ne.eagerState,next:null}),ge===tl&&(he=!0);else if((li&oe)===oe){ne=ne.next,oe===tl&&(he=!0);continue}else ge={lane:0,revertLane:ne.revertLane,gesture:null,action:ne.action,hasEagerState:ne.hasEagerState,eagerState:ne.eagerState,next:null},V===null?(z=V=ge,P=E):V=V.next=ge,Ye.lanes|=oe,Ki|=oe;ge=ne.action,Ko&&l(E,ge),E=ne.hasEagerState?ne.eagerState:l(E,ge)}else oe={lane:ge,revertLane:ne.revertLane,gesture:ne.gesture,action:ne.action,hasEagerState:ne.hasEagerState,eagerState:ne.eagerState,next:null},V===null?(z=V=oe,P=E):V=V.next=oe,Ye.lanes|=ge,Ki|=ge;ne=ne.next}while(ne!==null&&ne!==i);if(V===null?P=E:V.next=z,!pr(E,r.memoizedState)&&(rn=!0,he&&(l=nl,l!==null)))throw l;r.memoizedState=E,r.baseState=P,r.baseQueue=V,h.lastRenderedState=E}return _===null&&(h.lanes=0),[r.memoizedState,h.dispatch]}function jg(r){var i=Kt(),l=i.queue;if(l===null)throw Error(a(311));l.lastRenderedReducer=r;var h=l.dispatch,_=l.pending,E=i.memoizedState;if(_!==null){l.pending=null;var P=_=_.next;do E=r(E,P.action),P=P.next;while(P!==_);pr(E,i.memoizedState)||(rn=!0),i.memoizedState=E,i.baseQueue===null&&(i.baseState=E),l.lastRenderedState=E}return[E,h]}function Y1(r,i,l){var h=Ye,_=Kt(),E=st;if(E){if(l===void 0)throw Error(a(407));l=l()}else l=i();var P=!pr((vt||_).memoizedState,l);if(P&&(_.memoizedState=l,rn=!0),_=_.queue,Vg(K1.bind(null,h,_,r),[r]),_.getSnapshot!==i||P||nn!==null&&nn.memoizedState.tag&1){if(h.flags|=2048,ll(9,{destroy:void 0},Z1.bind(null,h,_,l,i),null),Rt===null)throw Error(a(349));E||(li&127)!==0||q1(h,i,l)}return l}function q1(r,i,l){r.flags|=16384,r={getSnapshot:i,value:l},i=Ye.updateQueue,i===null?(i=kh(),Ye.updateQueue=i,i.stores=[r]):(l=i.stores,l===null?i.stores=[r]:l.push(r))}function Z1(r,i,l,h){i.value=l,i.getSnapshot=h,X1(i)&&J1(r)}function K1(r,i,l){return l(function(){X1(i)&&J1(r)})}function X1(r){var i=r.getSnapshot;r=r.value;try{var l=i();return!pr(r,l)}catch{return!0}}function J1(r){var i=$o(r,2);i!==null&&rr(i,r,2)}function Gg(r){var i=$n();if(typeof r=="function"){var l=r;if(r=l(),Ko){Q(!0);try{l()}finally{Q(!1)}}}return i.memoizedState=i.baseState=r,i.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ci,lastRenderedState:r},i}function Q1(r,i,l,h){return r.baseState=l,zg(r,vt,typeof h=="function"?h:ci)}function B9(r,i,l,h,_){if(Ah(r))throw Error(a(485));if(r=i.action,r!==null){var E={payload:_,action:r,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(P){E.listeners.push(P)}};Y.T!==null?l(!0):E.isTransition=!1,h(E),l=i.pending,l===null?(E.next=i.pending=E,eS(i,E)):(E.next=l.next,i.pending=l.next=E)}}function eS(r,i){var l=i.action,h=i.payload,_=r.state;if(i.isTransition){var E=Y.T,P={};Y.T=P;try{var z=l(_,h),V=Y.S;V!==null&&V(P,z),tS(r,i,z)}catch(ne){Hg(r,i,ne)}finally{E!==null&&P.types!==null&&(E.types=P.types),Y.T=E}}else try{E=l(_,h),tS(r,i,E)}catch(ne){Hg(r,i,ne)}}function tS(r,i,l){l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(function(h){nS(r,i,h)},function(h){return Hg(r,i,h)}):nS(r,i,l)}function nS(r,i,l){i.status="fulfilled",i.value=l,rS(i),r.state=l,i=r.pen
vendor: 10,801 bytes, line 33
33ding,i!==null&&(l=i.next,l===i?r.pending=null:(l=l.next,i.next=l,eS(r,l)))}function Hg(r,i,l){var h=r.pending;if(r.pending=null,h!==null){h=h.next;do i.status="rejected",i.reason=l,rS(i),i=i.next;while(i!==h)}r.action=null}function rS(r){r=r.listeners;for(var i=0;i<r.length;i++)(0,r[i])()}function aS(r,i){return i}function iS(r,i){if(st){var l=Rt.formState;if(l!==null){e:{var h=Ye;if(st){if(Pt){t:{for(var _=Pt,E=jr;_.nodeType!==8;){if(!E){_=null;break t}if(_=Hr(_.nextSibling),_===null){_=null;break t}}E=_.data,_=E==="F!"||E==="F"?_:null}if(_){Pt=Hr(_.nextSibling),h=_.data==="F!";break e}}$i(h)}h=!1}h&&(i=l[0])}}return l=$n(),l.memoizedState=l.baseState=i,h={pending:null,lanes:0,dispatch:null,lastRenderedReducer:aS,lastRenderedState:i},l.queue=h,l=ES.bind(null,Ye,h),h.dispatch=l,h=Gg(!1),E=Xg.bind(null,Ye,!1,h.queue),h=$n(),_={state:i,dispatch:null,action:r,pending:null},h.queue=_,l=B9.bind(null,Ye,_,E,l),_.dispatch=l,h.memoizedState=r,[i,l,!1]}function oS(r){var i=Kt();return sS(i,vt,r)}function sS(r,i,l){if(i=zg(r,i,aS)[0],r=Th(ci)[0],typeof i=="object"&&i!==null&&typeof i.then=="function")try{var h=Jc(i)}catch(P){throw P===rl?mh:P}else h=i;i=Kt();var _=i.queue,E=_.dispatch;return l!==i.memoizedState&&(Ye.flags|=2048,ll(9,{destroy:void 0},U9.bind(null,_,l),null)),[h,E,r]}function U9(r,i){r.action=i}function lS(r){var i=Kt(),l=vt;if(l!==null)return sS(i,l,r);Kt(),i=i.memoizedState,l=Kt();var h=l.queue.dispatch;return l.memoizedState=r,[i,h,!1]}function ll(r,i,l,h){return r={tag:r,create:l,deps:h,inst:i,next:null},i=Ye.updateQueue,i===null&&(i=kh(),Ye.updateQueue=i),l=i.lastEffect,l===null?i.lastEffect=r.next=r:(h=l.next,l.next=r,r.next=h,i.lastEffect=r),r}function cS(){return Kt().memoizedState}function Rh(r,i,l,h){var _=$n();Ye.flags|=r,_.memoizedState=ll(1|i,{destroy:void 0},l,h===void 0?null:h)}function Ch(r,i,l,h){var _=Kt();h=h===void 0?null:h;var E=_.memoizedState.inst;vt!==null&&h!==null&&Wg(h,vt.memoizedState.deps)?_.memoizedState=ll(i,E,l,h):(Ye.flags|=r,_.memoizedState=ll(1|i,E,l,h))}function uS(r,i){Rh(8390656,8,r,i)}function Vg(r,i){Ch(2048,8,r,i)}function F9(r){Ye.flags|=4;var i=Ye.updateQueue;if(i===null)i=kh(),Ye.updateQueue=i,i.events=[r];else{var l=i.events;l===null?i.events=[r]:l.push(r)}}function dS(r){var i=Kt().memoizedState;return F9({ref:i,nextImpl:r}),function(){if((pt&2)!==0)throw Error(a(440));return i.impl.apply(void 0,arguments)}}function hS(r,i){return Ch(4,2,r,i)}function fS(r,i){return Ch(4,4,r,i)}function pS(r,i){if(typeof i=="function"){r=r();var l=i(r);return function(){typeof l=="function"?l():i(null)}}if(i!=null)return r=r(),i.current=r,function(){i.current=null}}function mS(r,i,l){l=l!=null?l.concat([r]):null,Ch(4,4,pS.bind(null,i,r),l)}function Yg(){}function gS(r,i){var l=Kt();i=i===void 0?null:i;var h=l.memoizedState;return i!==null&&Wg(i,h[1])?h[0]:(l.memoizedState=[r,i],r)}function yS(r,i){var l=Kt();i=i===void 0?null:i;var h=l.memoizedState;if(i!==null&&Wg(i,h[1]))return h[0];if(h=r(),Ko){Q(!0);try{r()}finally{Q(!1)}}return l.memoizedState=[h,i],h}function qg(r,i,l){return l===void 0||(li&1073741824)!==0&&(rt&261930)===0?r.memoizedState=i:(r.memoizedState=l,r=bk(),Ye.lanes|=r,Ki|=r,l)}function bS(r,i,l,h){return pr(l,i)?l:il.current!==null?(r=qg(r,l,h),pr(r,i)||(rn=!0),r):(li&42)===0||(li&1073741824)!==0&&(rt&261930)===0?(rn=!0,r.memoizedState=l):(r=bk(),Ye.lanes|=r,Ki|=r,i)}function vS(r,i,l,h,_){var E=q.p;q.p=E!==0&&8>E?E:8;var P=Y.T,z={};Y.T=z,Xg(r,!1,i,l);try{var V=_(),ne=Y.S;if(ne!==null&&ne(z,V),V!==null&&typeof V=="object"&&typeof V.then=="function"){var he=P9(V,h);Qc(r,i,he,wr(r))}else Qc(r,i,h,wr(r))}catch(ge){Qc(r,i,{then:function(){},status:"rejected",reason:ge},wr())}finally{q.p=E,P!==null&&z.types!==null&&(P.types=z.types),Y.T=P}}function $9(){}function Zg(r,i,l,h){if(r.tag!==5)throw Error(a(476));var _=wS(r).queue;vS(r,_,i,re,l===null?$9:function(){return _S(r),l(h)})}function wS(r){var i=r.memoizedState;if(i!==null)return i;i={memoizedState:re,baseState:re,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ci,lastRenderedState:re},next:null};var l={};return i.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ci,lastRenderedState:l},next:null},r.memoizedState=i,r=r.alternate,r!==null&&(r.memoizedState=i),i}function _S(r){var i=wS(r);i.next===null&&(i=r.alternate.memoizedState),Qc(r,i.next.queue,{},wr())}function Kg(){return An(gu)}function SS(){return Kt().memoizedState}function kS(){return Kt().memoizedState}function z9(r){for(var i=r.return;i!==null;){switch(i.tag){case 24:case 3:var l=wr();r=Gi(l);var h=Hi(i,r,l);h!==null&&(rr(h,i,l),qc(h,i,l)),i={cache:Tg()},r.payload=i;return}i=i.return}}function j9(r,i,l){var h=wr();l={lane:h,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},Ah(r)?TS(i,l):(l=pg(r,i,l,h),l!==null&&(rr(l,r,h),RS(l,i,h)))}function ES(r,i,l){var h=wr();Qc(r,i,l,h)}function Qc(r,i,l,h){var _={lane:h,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(Ah(r))TS(i,_);else{var E=r.alternate;if(r.lanes===0&&(E===null||E.lanes===0)&&(E=i.lastRenderedReducer,E!==null))try{var P=i.lastRenderedState,z=E(P,l);if(_.hasEagerState=!0,_.eagerState=z,pr(z,P))return lh(r,i,_,0),Rt===null&&sh(),!1}catch{}finally{}if(l=pg(r,i,_,h),l!==null)return rr(l,r,h),RS(l,i,h),!0}return!1}function Xg(r,i,l,h){if(h={lane:2,revertLane:xy(),gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Ah(r)){if(i)throw Error(a(479))}else i=pg(r,l,h,2),i!==null&&rr(i,r,2)}function Ah(r){var i=r.alternate;return r===Ye||i!==null&&i===Ye}function TS(r,i){ol=_h=!0;var l=r.pending;l===null?i.next=i:(i.next=l.next,l.next=i),r.pending=i}function RS(r,i,l){if((l&4194048)!==0){var h=i.lanes;h&=r.pendingLanes,l|=h,i.lanes=l,I_(r,l)}}var eu={readContext:An,use:Eh,useCallback:jt,useContext:jt,useEffect:jt,useImperativeHandle:jt,useLayoutEffect:jt,useInsertionEffect:jt,useMemo:jt,useReducer:jt,useRef:jt,useState:jt,useDebugValue:jt,useDeferredValue:jt,useTransition:jt,useSyncExternalStore:jt,useId:jt,useHostTransitionStatus:jt,useFormState:jt,useActionState:jt,useOptimistic:jt,useMemoCache:jt,useCacheRefresh:jt};eu.useEffectEvent=jt;var CS={readContext:An,use:Eh,useCallback:function(r,i){return $n().memoizedState=[r,i===void 0?null:i],r},useContext:An,useEffect:uS,useImperativeHandle:function(r,i,l){l=l!=null?l.concat([r]):null,Rh(4194308,4,pS.bind(null,i,r),l)},useLayoutEffect:function(r,i){return Rh(4194308,4,r,i)},useInsertionEffect:function(r,i){Rh(4,2,r,i)},useMemo:function(r,i){var l=$n();i=i===void 0?null:i;var h=r();if(Ko){Q(!0);try{r()}finally{Q(!1)}}return l.memoizedState=[h,i],h},useReducer:function(r,i,l){var h=$n();if(l!==void 0){var _=l(i);if(Ko){Q(!0);try{l(i)}finally{Q(!1)}}}else _=i;return h.memoizedState=h.baseState=_,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:_},h.queue=r,r=r.dispatch=j9.bind(null,Ye,r),[h.memoizedState,r]},useRef:function(r){var i=$n();return r={current:r},i.memoizedState=r},useState:function(r){r=Gg(r);var i=r.queue,l=ES.bind(null,Ye,i);return i.dispatch=l,[r.memoizedState,l]},useDebugValue:Yg,useDeferredValue:function(r,i){var l=$n();return qg(l,r,i)},useTransition:function(){var r=Gg(!1);return r=vS.bind(null,Ye,r.queue,!0,!1),$n().memoizedState=r,[!1,r]},useSyncExternalStore:function(r,i,l){var h=Ye,_=$n();if(st){if(l===void 0)throw Error(a(407));l=l()}else{if(l=i(),Rt===null)throw Error(a(349));(rt&127)!==0||q1(h,i,l)}_.memoizedState=l;var E={value:l,getSnapshot:i};return _.queue=E,uS(K1.bind(null,h,E,r),[r]),h.flags|=2048,ll(9,{destroy:void 0},Z1.bind(null,h,E,l,i),null),l},useId:function(){var r=$n(),i=Rt.identifierPrefix;if(st){var l=Oa,h=xa;l=(h&~(1<<32-ae(h)-1)).toString(32)+l,i="_"+i+"R_"+l,l=Sh++,0<l&&(i+="H"+l.toString(32)),i+="_"}else l=W9++,i="_"+i+"r_"+l.toString(32)+"_";return r.memoizedState=i},useHostTransitionStatus:Kg,useFormState:iS,useActionState:iS,useOptimistic:function(r){var i=$n();i.memoizedState=i.baseState=r;var l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return i.queue=l,i=Xg.bind(null,Ye,!0,l),l.dispatch=i,[r,i]},useMemoCache:$g,useCacheRefresh:function(){return $n().memoizedState=z9.bind(null,Ye)},useEffectEvent:function(r){var i=$n(),l={impl:r};return i.memoizedState=l,function(){if((pt&2)!==0)throw Error(a(440));return l.impl.apply(void 0,arguments)}}},Jg={readContext:An,use:Eh,useCallback:gS,useContext:An,useEffect:Vg,useImperativeHandle:mS,useInsertionEffect:hS,useLayoutEffect:fS,useMemo:yS,useReducer:Th,useRef:cS,useState:function(){return Th(ci)},useDebugValue:Yg,useDeferredValue:function(r,i){var l=Kt();return bS(l,vt.memoizedState,r,i)},useTransition:function(){var r=Th(ci)[0],i=Kt().memoizedState;return[typeof r=="boolean"?r:Jc(r),i]},useSyncExternalStore:Y1,useId:SS,useHostTransitionStatus:Kg,useFormState:oS,useActionState:oS,useOptimistic:function(r,i){var l=Kt();return Q1(l,vt,r,i)},useMemoCache:$g,useCacheRefresh:kS};Jg.useEffectEvent=dS;var AS={readContext:An,use:Eh,useCallback:gS,useContext:An,useEffect:Vg,useImperativeHandle:mS,useInsertionEffect:hS,useLayoutEffect:fS,useMemo:yS,useReducer:jg,useRef:cS,useState:function(){return jg(ci)},useDebugValue:Yg,useDeferredValue:function(r,i){var l=Kt();return vt===null?qg(l,r,i):bS(l,vt.memoizedState,r,i)},useTransition:function(){var r=jg(ci)[0],i=Kt().memoizedState;return[typeof r=="boolean"?r:Jc(r),i]},useSyncExternalStore:Y1,useId:SS,useHostTransitionStatus:Kg,useFormState:lS,useActionState:lS,useOptimistic:function(r,i){var l=Kt();return vt!==null?Q1(l,vt,r,i):(l.baseState=r,[r,l.queue.dispatch])},useMemoCache:$g,useCacheRefresh:kS};AS.useEffectEvent=dS;function Qg(r,i,l,h){i=r.memoizedState,l=l(h,i),l=l==null?i:f({},i,l),r.memoizedState=l,r.lanes===0&&(r.updateQueue.baseState=l)}var ey={enqueueSetState:function(r,i,l){r=r._reactInternals;var h=wr(),_=Gi(h);_.payload=i,l!=null&&(_.callback=l),i=Hi(r,_,h),i!==null&&(rr(i,r,h),qc(i,r,h))},enqueueReplaceState:function(r,i,l){r=r._reactInternals;var h=wr(),_=Gi(h);_.tag=1,_.payload=i,l!=null&&(_.callback=l),i=Hi(r,_,h),i!==null&&(rr(i,r,h),qc(i,r,h))},enqueueForceUpdate:function(r,i){r=r._reactInternals;var l=wr(),h=Gi(l);h.tag=2,i!=null&&(h.callback=i),i=Hi(r,h,l),i!==null&&(rr(i,r,l),qc(i,r,l))}};function xS(r,i,l,h,_,E,P){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(h,E,P):i.prototype&&i.prototype.isPureReactComponent?!Fc(l,h)||!Fc(_,E):!0}function OS(r,i,l,h){r=i.state,typeof i.componentWillReceiveProps=="function"&&i.componentWillReceiveProps(l,h),typeof i.UNSAFE_componentWillReceiveProps=="function"&&i.UNSAFE_componentWillReceiveProps(l,h),i.state!==r&&ey.enqueueReplaceState(i,i.state,null)}function Xo(r,i){var l=i;
vendor: 4,503 bytes, line 33
33if("ref"in i){l={};for(var h in i)h!=="ref"&&(l[h]=i[h])}if(r=r.defaultProps){l===i&&(l=f({},l));for(var _ in r)l[_]===void 0&&(l[_]=r[_])}return l}function IS(r){oh(r)}function DS(r){console.error(r)}function LS(r){oh(r)}function xh(r,i){try{var l=r.onUncaughtError;l(i.value,{componentStack:i.stack})}catch(h){setTimeout(function(){throw h})}}function NS(r,i,l){try{var h=r.onCaughtError;h(l.value,{componentStack:l.stack,errorBoundary:i.tag===1?i.stateNode:null})}catch(_){setTimeout(function(){throw _})}}function ty(r,i,l){return l=Gi(l),l.tag=3,l.payload={element:null},l.callback=function(){xh(r,i)},l}function PS(r){return r=Gi(r),r.tag=3,r}function WS(r,i,l,h){var _=l.type.getDerivedStateFromError;if(typeof _=="function"){var E=h.value;r.payload=function(){return _(E)},r.callback=function(){NS(i,l,h)}}var P=l.stateNode;P!==null&&typeof P.componentDidCatch=="function"&&(r.callback=function(){NS(i,l,h),typeof _!="function"&&(Xi===null?Xi=new Set([this]):Xi.add(this));var z=h.stack;this.componentDidCatch(h.value,{componentStack:z!==null?z:""})})}function G9(r,i,l,h,_){if(l.flags|=32768,h!==null&&typeof h=="object"&&typeof h.then=="function"){if(i=l.alternate,i!==null&&el(i,l,_,!0),l=gr.current,l!==null){switch(l.tag){case 31:case 13:return Gr===null?$h():l.alternate===null&&Gt===0&&(Gt=3),l.flags&=-257,l.flags|=65536,l.lanes=_,h===gh?l.flags|=16384:(i=l.updateQueue,i===null?l.updateQueue=new Set([h]):i.add(h),Ry(r,h,_)),!1;case 22:return l.flags|=65536,h===gh?l.flags|=16384:(i=l.updateQueue,i===null?(i={transitions:null,markerInstances:null,retryQueue:new Set([h])},l.updateQueue=i):(l=i.retryQueue,l===null?i.retryQueue=new Set([h]):l.add(h)),Ry(r,h,_)),!1}throw Error(a(435,l.tag))}return Ry(r,h,_),$h(),!1}if(st)return i=gr.current,i!==null?((i.flags&65536)===0&&(i.flags|=256),i.flags|=65536,i.lanes=_,h!==wg&&(r=Error(a(422),{cause:h}),jc(Fr(r,l)))):(h!==wg&&(i=Error(a(423),{cause:h}),jc(Fr(i,l))),r=r.current.alternate,r.flags|=65536,_&=-_,r.lanes|=_,h=Fr(h,l),_=ty(r.stateNode,h,_),Ig(r,_),Gt!==4&&(Gt=2)),!1;var E=Error(a(520),{cause:h});if(E=Fr(E,l),lu===null?lu=[E]:lu.push(E),Gt!==4&&(Gt=2),i===null)return!0;h=Fr(h,l),l=i;do{switch(l.tag){case 3:return l.flags|=65536,r=_&-_,l.lanes|=r,r=ty(l.stateNode,h,r),Ig(l,r),!1;case 1:if(i=l.type,E=l.stateNode,(l.flags&128)===0&&(typeof i.getDerivedStateFromError=="function"||E!==null&&typeof E.componentDidCatch=="function"&&(Xi===null||!Xi.has(E))))return l.flags|=65536,_&=-_,l.lanes|=_,_=PS(_),WS(_,r,l,h),Ig(l,_),!1}l=l.return}while(l!==null);return!1}var ny=Error(a(461)),rn=!1;function xn(r,i,l,h){i.child=r===null?F1(i,null,l,h):Zo(i,r.child,l,h)}function MS(r,i,l,h,_){l=l.render;var E=i.ref;if("ref"in h){var P={};for(var z in h)z!=="ref"&&(P[z]=h[z])}else P=h;return Ho(i),h=Mg(r,i,l,P,E,_),z=Bg(),r!==null&&!rn?(Ug(r,i,_),ui(r,i,_)):(st&&z&&bg(i),i.flags|=1,xn(r,i,h,_),i.child)}function BS(r,i,l,h,_){if(r===null){var E=l.type;return typeof E=="function"&&!mg(E)&&E.defaultProps===void 0&&l.compare===null?(i.tag=15,i.type=E,US(r,i,E,h,_)):(r=uh(l.type,null,h,i,i.mode,_),r.ref=i.ref,r.return=i,i.child=r)}if(E=r.child,!uy(r,_)){var P=E.memoizedProps;if(l=l.compare,l=l!==null?l:Fc,l(P,h)&&r.ref===i.ref)return ui(r,i,_)}return i.flags|=1,r=ai(E,h),r.ref=i.ref,r.return=i,i.child=r}function US(r,i,l,h,_){if(r!==null){var E=r.memoizedProps;if(Fc(E,h)&&r.ref===i.ref)if(rn=!1,i.pendingProps=h=E,uy(r,_))(r.flags&131072)!==0&&(rn=!0);else return i.lanes=r.lanes,ui(r,i,_)}return ry(r,i,l,h,_)}function FS(r,i,l,h){var _=h.children,E=r!==null?r.memoizedState:null;if(r===null&&i.stateNode===null&&(i.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),h.mode==="hidden"){if((i.flags&128)!==0){if(E=E!==null?E.baseLanes|l:l,r!==null){for(h=i.child=r.child,_=0;h!==null;)_=_|h.lanes|h.childLanes,h=h.sibling;h=_&~E}else h=0,i.child=null;return $S(r,i,E,l,h)}if((l&536870912)!==0)i.memoizedState={baseLanes:0,cachePool:null},r!==null&&ph(i,E!==null?E.cachePool:null),E!==null?j1(i,E):Lg(),G1(i);else return h=i.lanes=536870912,$S(r,i,E!==null?E.baseLanes|l:l,l,h)}else E!==null?(ph(i,E.cachePool),j1(i,E),Yi(),i.memoizedState=null):(r!==null&&ph(i,null),Lg(),Yi());return xn(r,i,_,l),i.child}function tu(r,i){return r!==null&&r.tag===22||i.stateNode!==null||(i.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),i.sibling}function $S(r,i,l,h,_){var E=Cg();return E=E===null?null:{parent:tn._currentValue,pool:E},i.memoizedState={baseLanes:l,cachePool:E}
vendor: 4,846 bytes, line 33
33,r!==null&&ph(i,null),Lg(),G1(i),r!==null&&el(r,i,h,!0),i.childLanes=_,null}function Oh(r,i){return i=Dh({mode:i.mode,children:i.children},r.mode),i.ref=r.ref,r.child=i,i.return=r,i}function zS(r,i,l){return Zo(i,r.child,null,l),r=Oh(i,i.pendingProps),r.flags|=2,yr(i),i.memoizedState=null,r}function H9(r,i,l){var h=i.pendingProps,_=(i.flags&128)!==0;if(i.flags&=-129,r===null){if(st){if(h.mode==="hidden")return r=Oh(i,h),i.lanes=536870912,tu(null,r);if(Pg(i),(r=Pt)?(r=eE(r,jr),r=r!==null&&r.data==="&"?r:null,r!==null&&(i.memoizedState={dehydrated:r,treeContext:Ui!==null?{id:xa,overflow:Oa}:null,retryLane:536870912,hydrationErrors:null},l=T1(r),l.return=i,i.child=l,Cn=i,Pt=null)):r=null,r===null)throw $i(i);return i.lanes=536870912,null}return Oh(i,h)}var E=r.memoizedState;if(E!==null){var P=E.dehydrated;if(Pg(i),_)if(i.flags&256)i.flags&=-257,i=zS(r,i,l);else if(i.memoizedState!==null)i.child=r.child,i.flags|=128,i=null;else throw Error(a(558));else if(rn||el(r,i,l,!1),_=(l&r.childLanes)!==0,rn||_){if(h=Rt,h!==null&&(P=D_(h,l),P!==0&&P!==E.retryLane))throw E.retryLane=P,$o(r,P),rr(h,r,P),ny;$h(),i=zS(r,i,l)}else r=E.treeContext,Pt=Hr(P.nextSibling),Cn=i,st=!0,Fi=null,jr=!1,r!==null&&A1(i,r),i=Oh(i,h),i.flags|=4096;return i}return r=ai(r.child,{mode:h.mode,children:h.children}),r.ref=i.ref,i.child=r,r.return=i,r}function Ih(r,i){var l=i.ref;if(l===null)r!==null&&r.ref!==null&&(i.flags|=4194816);else{if(typeof l!="function"&&typeof l!="object")throw Error(a(284));(r===null||r.ref!==l)&&(i.flags|=4194816)}}function ry(r,i,l,h,_){return Ho(i),l=Mg(r,i,l,h,void 0,_),h=Bg(),r!==null&&!rn?(Ug(r,i,_),ui(r,i,_)):(st&&h&&bg(i),i.flags|=1,xn(r,i,l,_),i.child)}function jS(r,i,l,h,_,E){return Ho(i),i.updateQueue=null,l=V1(i,h,l,_),H1(r),h=Bg(),r!==null&&!rn?(Ug(r,i,E),ui(r,i,E)):(st&&h&&bg(i),i.flags|=1,xn(r,i,l,E),i.child)}function GS(r,i,l,h,_){if(Ho(i),i.stateNode===null){var E=Ks,P=l.contextType;typeof P=="object"&&P!==null&&(E=An(P)),E=new l(h,E),i.memoizedState=E.state!==null&&E.state!==void 0?E.state:null,E.updater=ey,i.stateNode=E,E._reactInternals=i,E=i.stateNode,E.props=h,E.state=i.memoizedState,E.refs={},xg(i),P=l.contextType,E.context=typeof P=="object"&&P!==null?An(P):Ks,E.state=i.memoizedState,P=l.getDerivedStateFromProps,typeof P=="function"&&(Qg(i,l,P,h),E.state=i.memoizedState),typeof l.getDerivedStateFromProps=="function"||typeof E.getSnapshotBeforeUpdate=="function"||typeof E.UNSAFE_componentWillMount!="function"&&typeof E.componentWillMount!="function"||(P=E.state,typeof E.componentWillMount=="function"&&E.componentWillMount(),typeof E.UNSAFE_componentWillMount=="function"&&E.UNSAFE_componentWillMount(),P!==E.state&&ey.enqueueReplaceState(E,E.state,null),Kc(i,h,E,_),Zc(),E.state=i.memoizedState),typeof E.componentDidMount=="function"&&(i.flags|=4194308),h=!0}else if(r===null){E=i.stateNode;var z=i.memoizedProps,V=Xo(l,z);E.props=V;var ne=E.context,he=l.contextType;P=Ks,typeof he=="object"&&he!==null&&(P=An(he));var ge=l.getDerivedStateFromProps;he=typeof ge=="function"||typeof E.getSnapshotBeforeUpdate=="function",z=i.pendingProps!==z,he||typeof E.UNSAFE_componentWillReceiveProps!="function"&&typeof E.componentWillReceiveProps!="function"||(z||ne!==P)&&OS(i,E,h,P),ji=!1;var oe=i.memoizedState;E.state=oe,Kc(i,h,E,_),Zc(),ne=i.memoizedState,z||oe!==ne||ji?(typeof ge=="function"&&(Qg(i,l,ge,h),ne=i.memoizedState),(V=ji||xS(i,l,V,h,oe,ne,P))?(he||typeof E.UNSAFE_componentWillMount!="function"&&typeof E.componentWillMount!="function"||(typeof E.componentWillMount=="function"&&E.componentWillMount(),typeof E.UNSAFE_componentWillMount=="function"&&E.UNSAFE_componentWillMount()),typeof E.componentDidMount=="function"&&(i.flags|=4194308)):(typeof E.componentDidMount=="function"&&(i.flags|=4194308),i.memoizedProps=h,i.memoizedState=ne),E.props=h,E.state=ne,E.context=P,h=V):(typeof E.componentDidMount=="function"&&(i.flags|=4194308),h=!1)}else{E=i.stateNode,Og(r,i),P=i.memoizedProps,he=Xo(l,P),E.props=he,ge=i.pendingProps,oe=E.context,ne=l.contextType,V=Ks,typeof ne=="object"&&ne!==null&&(V=An(ne)),z=l.getDerivedStateFromProps,(ne=typeof z=="function"||typeof E.getSnapshotBeforeUpdate=="function")||typeof E.UNSAFE_componentWillReceiveProps!="function"&&typeof E.componentWillReceiveProps!="function"||(P!==ge||oe!==V)&&OS(i,E,h,V),ji=!1,oe=i.memoizedState,E.state=oe,Kc(i,h,E,_),Zc();var ue=i.memoizedState;P!==ge||oe!==ue||ji||r!==null&&r.dependencies!==null&&hh(r.dependencies)?(typeof z=="function"&&(Qg(i,l,z,h),ue=i.memoizedState),(he=ji||xS(i,l,he,h,oe,ue,V)||r!==null&&r.dependencies!==null&&hh(r.dependencies))?(ne||typeof E.UNSAFE_componentWillUpdate!="function"&&typeof E.componentWillUpdate!="function"||(typeof E.componentWillUpdate=="function"&&E.componentWillUpdate(h,ue,V),typeof E.UNSAFE_componentWillUpdate=="function"&&E.UNSAFE_componentWillUpdate(h,ue,V)
vendor: 13,033 bytes, line 33
33),typeof E.componentDidUpdate=="function"&&(i.flags|=4),typeof E.getSnapshotBeforeUpdate=="function"&&(i.flags|=1024)):(typeof E.componentDidUpdate!="function"||P===r.memoizedProps&&oe===r.memoizedState||(i.flags|=4),typeof E.getSnapshotBeforeUpdate!="function"||P===r.memoizedProps&&oe===r.memoizedState||(i.flags|=1024),i.memoizedProps=h,i.memoizedState=ue),E.props=h,E.state=ue,E.context=V,h=he):(typeof E.componentDidUpdate!="function"||P===r.memoizedProps&&oe===r.memoizedState||(i.flags|=4),typeof E.getSnapshotBeforeUpdate!="function"||P===r.memoizedProps&&oe===r.memoizedState||(i.flags|=1024),h=!1)}return E=h,Ih(r,i),h=(i.flags&128)!==0,E||h?(E=i.stateNode,l=h&&typeof l.getDerivedStateFromError!="function"?null:E.render(),i.flags|=1,r!==null&&h?(i.child=Zo(i,r.child,null,_),i.child=Zo(i,null,l,_)):xn(r,i,l,_),i.memoizedState=E.state,r=i.child):r=ui(r,i,_),r}function HS(r,i,l,h){return jo(),i.flags|=256,xn(r,i,l,h),i.child}var ay={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function iy(r){return{baseLanes:r,cachePool:N1()}}function oy(r,i,l){return r=r!==null?r.childLanes&~l:0,i&&(r|=vr),r}function VS(r,i,l){var h=i.pendingProps,_=!1,E=(i.flags&128)!==0,P;if((P=E)||(P=r!==null&&r.memoizedState===null?!1:(Zt.current&2)!==0),P&&(_=!0,i.flags&=-129),P=(i.flags&32)!==0,i.flags&=-33,r===null){if(st){if(_?Vi(i):Yi(),(r=Pt)?(r=eE(r,jr),r=r!==null&&r.data!=="&"?r:null,r!==null&&(i.memoizedState={dehydrated:r,treeContext:Ui!==null?{id:xa,overflow:Oa}:null,retryLane:536870912,hydrationErrors:null},l=T1(r),l.return=i,i.child=l,Cn=i,Pt=null)):r=null,r===null)throw $i(i);return zy(r)?i.lanes=32:i.lanes=536870912,null}var z=h.children;return h=h.fallback,_?(Yi(),_=i.mode,z=Dh({mode:"hidden",children:z},_),h=zo(h,_,l,null),z.return=i,h.return=i,z.sibling=h,i.child=z,h=i.child,h.memoizedState=iy(l),h.childLanes=oy(r,P,l),i.memoizedState=ay,tu(null,h)):(Vi(i),sy(i,z))}var V=r.memoizedState;if(V!==null&&(z=V.dehydrated,z!==null)){if(E)i.flags&256?(Vi(i),i.flags&=-257,i=ly(r,i,l)):i.memoizedState!==null?(Yi(),i.child=r.child,i.flags|=128,i=null):(Yi(),z=h.fallback,_=i.mode,h=Dh({mode:"visible",children:h.children},_),z=zo(z,_,l,null),z.flags|=2,h.return=i,z.return=i,h.sibling=z,i.child=h,Zo(i,r.child,null,l),h=i.child,h.memoizedState=iy(l),h.childLanes=oy(r,P,l),i.memoizedState=ay,i=tu(null,h));else if(Vi(i),zy(z)){if(P=z.nextSibling&&z.nextSibling.dataset,P)var ne=P.dgst;P=ne,h=Error(a(419)),h.stack="",h.digest=P,jc({value:h,source:null,stack:null}),i=ly(r,i,l)}else if(rn||el(r,i,l,!1),P=(l&r.childLanes)!==0,rn||P){if(P=Rt,P!==null&&(h=D_(P,l),h!==0&&h!==V.retryLane))throw V.retryLane=h,$o(r,h),rr(P,r,h),ny;$y(z)||$h(),i=ly(r,i,l)}else $y(z)?(i.flags|=192,i.child=r.child,i=null):(r=V.treeContext,Pt=Hr(z.nextSibling),Cn=i,st=!0,Fi=null,jr=!1,r!==null&&A1(i,r),i=sy(i,h.children),i.flags|=4096);return i}return _?(Yi(),z=h.fallback,_=i.mode,V=r.child,ne=V.sibling,h=ai(V,{mode:"hidden",children:h.children}),h.subtreeFlags=V.subtreeFlags&65011712,ne!==null?z=ai(ne,z):(z=zo(z,_,l,null),z.flags|=2),z.return=i,h.return=i,h.sibling=z,i.child=h,tu(null,h),h=i.child,z=r.child.memoizedState,z===null?z=iy(l):(_=z.cachePool,_!==null?(V=tn._currentValue,_=_.parent!==V?{parent:V,pool:V}:_):_=N1(),z={baseLanes:z.baseLanes|l,cachePool:_}),h.memoizedState=z,h.childLanes=oy(r,P,l),i.memoizedState=ay,tu(r.child,h)):(Vi(i),l=r.child,r=l.sibling,l=ai(l,{mode:"visible",children:h.children}),l.return=i,l.sibling=null,r!==null&&(P=i.deletions,P===null?(i.deletions=[r],i.flags|=16):P.push(r)),i.child=l,i.memoizedState=null,l)}function sy(r,i){return i=Dh({mode:"visible",children:i},r.mode),i.return=r,r.child=i}function Dh(r,i){return r=mr(22,r,null,i),r.lanes=0,r}function ly(r,i,l){return Zo(i,r.child,null,l),r=sy(i,i.pendingProps.children),r.flags|=2,i.memoizedState=null,r}function YS(r,i,l){r.lanes|=i;var h=r.alternate;h!==null&&(h.lanes|=i),kg(r.return,i,l)}function cy(r,i,l,h,_,E){var P=r.memoizedState;P===null?r.memoizedState={isBackwards:i,rendering:null,renderingStartTime:0,last:h,tail:l,tailMode:_,treeForkCount:E}:(P.isBackwards=i,P.rendering=null,P.renderingStartTime=0,P.last=h,P.tail=l,P.tailMode=_,P.treeForkCount=E)}function qS(r,i,l){var h=i.pendingProps,_=h.revealOrder,E=h.tail;h=h.children;var P=Zt.current,z=(P&2)!==0;if(z?(P=P&1|2,i.flags|=128):P&=1,fe(Zt,P),xn(r,i,h,l),h=st?zc:0,!z&&r!==null&&(r.flags&128)!==0)e:for(r=i.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&YS(r,l,i);else if(r.tag===19)YS(r,l,i);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===i)break e;for(;r.sibling===null;){if(r.return===null||r.return===i)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}switch(_){case"forwards":for(l=i.child,_=null;l!==null;)r=l.alternate,r!==null&&wh(r)===null&&(_=l),l=l.sibling;l=_,l===null?(_=i.child,i.child=null):(_=l.sibling,l.sibling=null),cy(i,!1,_,l,E,h);break;case"backwards":case"unstable_legacy-backwards":for(l=null,_=i.child,i.child=null;_!==null;){if(r=_.alternate,r!==null&&wh(r)===null){i.child=_;break}r=_.sibling,_.sibling=l,l=_,_=r}cy(i,!0,l,null,E,h);break;case"together":cy(i,!1,null,null,void 0,h);break;default:i.memoizedState=null}return i.child}function ui(r,i,l){if(r!==null&&(i.dependencies=r.dependencies),Ki|=i.lanes,(l&i.childLanes)===0)if(r!==null){if(el(r,i,l,!1),(l&i.childLanes)===0)return null}else return null;if(r!==null&&i.child!==r.child)throw Error(a(153));if(i.child!==null){for(r=i.child,l=ai(r,r.pendingProps),i.child=l,l.return=i;r.sibling!==null;)r=r.sibling,l=l.sibling=ai(r,r.pendingProps),l.return=i;l.sibling=null}return i.child}function uy(r,i){return(r.lanes&i)!==0?!0:(r=r.dependencies,!!(r!==null&&hh(r)))}function V9(r,i,l){switch(i.tag){case 3:it(i,i.stateNode.containerInfo),zi(i,tn,r.memoizedState.cache),jo();break;case 27:case 5:zt(i);break;case 4:it(i,i.stateNode.containerInfo);break;case 10:zi(i,i.type,i.memoizedProps.value);break;case 31:if(i.memoizedState!==null)return i.flags|=128,Pg(i),null;break;case 13:var h=i.memoizedState;if(h!==null)return h.dehydrated!==null?(Vi(i),i.flags|=128,null):(l&i.child.childLanes)!==0?VS(r,i,l):(Vi(i),r=ui(r,i,l),r!==null?r.sibling:null);Vi(i);break;case 19:var _=(r.flags&128)!==0;if(h=(l&i.childLanes)!==0,h||(el(r,i,l,!1),h=(l&i.childLanes)!==0),_){if(h)return qS(r,i,l);i.flags|=128}if(_=i.memoizedState,_!==null&&(_.rendering=null,_.tail=null,_.lastEffect=null),fe(Zt,Zt.current),h)break;return null;case 22:return i.lanes=0,FS(r,i,l,i.pendingProps);case 24:zi(i,tn,r.memoizedState.cache)}return ui(r,i,l)}function ZS(r,i,l){if(r!==null)if(r.memoizedProps!==i.pendingProps)rn=!0;else{if(!uy(r,l)&&(i.flags&128)===0)return rn=!1,V9(r,i,l);rn=(r.flags&131072)!==0}else rn=!1,st&&(i.flags&1048576)!==0&&C1(i,zc,i.index);switch(i.lanes=0,i.tag){case 16:e:{var h=i.pendingProps;if(r=Yo(i.elementType),i.type=r,typeof r=="function")mg(r)?(h=Xo(r,h),i.tag=1,i=GS(null,i,r,h,l)):(i.tag=0,i=ry(null,i,r,h,l));else{if(r!=null){var _=r.$$typeof;if(_===R){i.tag=11,i=MS(null,i,r,h,l);break e}else if(_===L){i.tag=14,i=BS(null,i,r,h,l);break e}}throw i=ye(r)||r,Error(a(306,i,""))}}return i;case 0:return ry(r,i,i.type,i.pendingProps,l);case 1:return h=i.type,_=Xo(h,i.pendingProps),GS(r,i,h,_,l);case 3:e:{if(it(i,i.stateNode.containerInfo),r===null)throw Error(a(387));h=i.pendingProps;var E=i.memoizedState;_=E.element,Og(r,i),Kc(i,h,null,l);var P=i.memoizedState;if(h=P.cache,zi(i,tn,h),h!==E.cache&&Eg(i,[tn],l,!0),Zc(),h=P.element,E.isDehydrated)if(E={element:h,isDehydrated:!1,cache:P.cache},i.updateQueue.baseState=E,i.memoizedState=E,i.flags&256){i=HS(r,i,h,l);break e}else if(h!==_){_=Fr(Error(a(424)),i),jc(_),i=HS(r,i,h,l);break e}else{switch(r=i.stateNode.containerInfo,r.nodeType){case 9:r=r.body;break;default:r=r.nodeName==="HTML"?r.ownerDocument.body:r}for(Pt=Hr(r.firstChild),Cn=i,st=!0,Fi=null,jr=!0,l=F1(i,null,h,l),i.child=l;l;)l.flags=l.flags&-3|4096,l=l.sibling}else{if(jo(),h===_){i=ui(r,i,l);break e}xn(r,i,h,l)}i=i.child}return i;case 26:return Ih(r,i),r===null?(l=oE(i.type,null,i.pendingProps,null))?i.memoizedState=l:st||(l=i.type,r=i.pendingProps,h=qh(xe.current).createElement(l),h[Rn]=i,h[Xn]=r,On(h,l,r),yn(h),i.stateNode=h):i.memoizedState=oE(i.type,r.memoizedProps,i.pendingProps,r.memoizedState),null;case 27:return zt(i),r===null&&st&&(h=i.stateNode=rE(i.type,i.pendingProps,xe.current),Cn=i,jr=!0,_=Pt,to(i.type)?(jy=_,Pt=Hr(h.firstChild)):Pt=_),xn(r,i,i.pendingProps.children,l),Ih(r,i),r===null&&(i.flags|=4194304),i.child;case 5:return r===null&&st&&((_=h=Pt)&&(h=S8(h,i.type,i.pendingProps,jr),h!==null?(i.stateNode=h,Cn=i,Pt=Hr(h.firstChild),jr=!1,_=!0):_=!1),_||$i(i)),zt(i),_=i.type,E=i.pendingProps,P=r!==null?r.memoizedProps:null,h=E.children,By(_,E)?h=null:P!==null&&By(_,P)&&(i.flags|=32),i.memoizedState!==null&&(_=Mg(r,i,M9,null,null,l),gu._currentValue=_),Ih(r,i),xn(r,i,h,l),i.child;case 6:return r===null&&st&&((r=l=Pt)&&(l=k8(l,i.pendingProps,jr),l!==null?(i.stateNode=l,Cn=i,Pt=null,r=!0):r=!1),r||$i(i)),null;case 13:return VS(r,i,l);case 4:return it(i,i.stateNode.containerInfo),h=i.pendingProps,r===null?i.child=Zo(i,null,h,l):xn(r,i,h,l),i.child;case 11:return MS(r,i,i.type,i.pendingProps,l);case 7:return xn(r,i,i.pendingProps,l),i.child;case 8:return xn(r,i,i.pendingProps.children,l),i.child;case 12:return xn(r,i,i.pendingProps.children,l),i.child;case 10:return h=i.pendingProps,zi(i,i.type,h.value),xn(r,i,h.children,l),i.child;case 9:return _=i.type._context,h=i.pendingProps.children,Ho(i),_=An(_),h=h(_),i.flags|=1,xn(r,i,h,l),i.child;case 14:return BS(r,i,i.type,i.pendingProps,l);case 15:return US(r,i,i.type,i.pendingProps,l);case 19:return qS(r,i,l);case 31:return H9(r,i,l);case 22:return FS(r,i,l,i.pendingProps);case 24:return Ho(i),h=An(tn),r===null?(_=Cg(),_===null&&(_=Rt,E=Tg(),_.pooledCache=E,E.refCount++,E!==null&&(_.pooledCacheLanes|=l),_=E),i.memoizedState={parent:h,cache:_},xg(i),zi(i,tn,_)):((r.lanes&l)!==0&&(Og(r,i),Kc(i,null,null,l),Zc()),_=r.memoizedState,E=i.memoizedState,_.parent!==h?(_={parent:h,cache:h},i.memoizedState=_,i.lanes===0&&(i.memoizedState=i.updateQueue.baseState=_),zi(i,tn,h)):(h=E.cache,zi(i,tn,h),h!==_.cache&&Eg(i,[tn],l,!0))),xn(r,i,i.pendingProps.children,l),i.child;case 29:throw i.pendingProps}throw Error(a(156,i.tag))}function di(r){r.flags|=4}function dy(r,i,l,h,_){if((i=(r.mode&32)!==0)&&(i=!1),i){if(r.flags|=16777216,(_&335544128)===_)if(r.stateNode.complete)r.flags|=8192;else if(Sk())r.flags|=8192;else throw qo=gh,Ag}else r.flags&=-16777217}function KS(r,i){if(i.type!=="stylesheet"||(i.state.loading&4)!==0)r.flags&=-16777217;else if(r.flags|=16777216,!dE(i))if(Sk())r.flags|=8192;else throw qo=gh,Ag}function Lh(r,i){i!==null&&(r.flags|=4),r.flags&16384&&(i=r.tag!==22?x_():536870912,r.lanes|=i,hl|=i)}function nu(r,i){if(!st)switch(r.tailMode){case"hidden":i=r.tail;for(var l=null;i!==null;)i.alternate!==null&&(l=i),i=i.sibling;l===null?r.tail=null:l.sibling=null;break;case"collapsed":l=r.tail;for(var h=null;l!==null;)l.alternate!==null&&(h=l),l=l.sibling;h===null?i||r.tail===null?r.tail=null:r.tail.sibling=null:h.sibling=null}}function Wt(r){var i=r.alternate!==null&&r.alternate.child===r.child,l=0,h=0;if(i)for(var _=r.child;_!==null;)l|=_.lanes|_.childLanes,h|=_.subtreeFlags&65011712,h|=_.flags&65011712,_.return=r,_=_.sibling;else for(_=r.child;_!==null;)l|=_.lanes|_.childLanes,h|=_.subtreeFlags,h|=_.flags,_.return=r,_=_.sibling;return r.subtreeFlags|=h,r.childLanes=l,i}function Y9(r,i,l){var h=i.pendingProps;switch(vg(i),i.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Wt(i),null;case 1:return Wt(i),null;case 3:return l=i.stateNode,h=null,r!==null&&(h=r.memoizedState.cache),i.memoizedState.cache!==h&&(i.flags|=2048),si(tn),ot(),l.pendingContext&&(l.context=l.pendingContext,l.pendingContext=null),(r===null||r.child===null)&&(Qs(i)?di(i):r===null||r.memoizedState.isDehydrated&&(i.flags&256)===0||(i.flags|=1024,_g())),Wt(i),null;case 26:var _=i.type,E=i.memoizedState;return r===null?(di(i),E!==null?(Wt(i),KS(i,E)):(Wt(i),dy(i,_,null,h,l))):E?E!==r.memoizedState?(di(i),Wt(i),KS(i,E)):(Wt(i),i.flags&=-16777217):(r=r.memoizedProps,r!==h&&di(i),Wt(i),dy(i,_,r,h,l)),null;case 27:if(Ln(i),l=xe.current,_=i.type,r!==null&&i.stateNode!=null)r.memoizedProps!==h&&di(i);else{if(!h){if(i.stateNode===null)throw Error(a(166));return Wt(i),null}r=pe.current,Qs(i)?x1(i):(r=rE(_,h,l),i.stateNode=r,di(i))}return Wt(i),null;case 5:if(Ln(i),_=i.type,r!==null&&i.stateNode!=null)r.memoizedProps!==h&&di(i);else{if(!h){if(i.stateNode===null)throw Error(a(166));return Wt(i),null}if(E=pe.current,Qs(i))x1(i);else{var P=qh(xe.current);switch(E){case 1:E=P.createElementNS("http://www.w3.org/2000/svg",_);break;case 2:E=P.createElementNS("http://www.w3.org/1998/Math/MathML",_);break;default:switch(_){case"svg":E=P.createElementNS("http://www.w3.org/2000/svg",_);break;case"math":E=P.createElementNS("http://www.w3.org/1998/Math/MathML",_);break;case"script":E=P.createElement("div"),E.innerHTML="<script><\/script>",E=E.removeChild(E.firstChild);break;
vendor: 27,081 bytes, line 33
33case"select":E=typeof h.is=="string"?P.createElement("select",{is:h.is}):P.createElement("select"),h.multiple?E.multiple=!0:h.size&&(E.size=h.size);break;default:E=typeof h.is=="string"?P.createElement(_,{is:h.is}):P.createElement(_)}}E[Rn]=i,E[Xn]=h;e:for(P=i.child;P!==null;){if(P.tag===5||P.tag===6)E.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===i)break e;for(;P.sibling===null;){if(P.return===null||P.return===i)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}i.stateNode=E;e:switch(On(E,_,h),_){case"button":case"input":case"select":case"textarea":h=!!h.autoFocus;break e;case"img":h=!0;break e;default:h=!1}h&&di(i)}}return Wt(i),dy(i,i.type,r===null?null:r.memoizedProps,i.pendingProps,l),null;case 6:if(r&&i.stateNode!=null)r.memoizedProps!==h&&di(i);else{if(typeof h!="string"&&i.stateNode===null)throw Error(a(166));if(r=xe.current,Qs(i)){if(r=i.stateNode,l=i.memoizedProps,h=null,_=Cn,_!==null)switch(_.tag){case 27:case 5:h=_.memoizedProps}r[Rn]=i,r=!!(r.nodeValue===l||h!==null&&h.suppressHydrationWarning===!0||Vk(r.nodeValue,l)),r||$i(i,!0)}else r=qh(r).createTextNode(h),r[Rn]=i,i.stateNode=r}return Wt(i),null;case 31:if(l=i.memoizedState,r===null||r.memoizedState!==null){if(h=Qs(i),l!==null){if(r===null){if(!h)throw Error(a(318));if(r=i.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(a(557));r[Rn]=i}else jo(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;Wt(i),r=!1}else l=_g(),r!==null&&r.memoizedState!==null&&(r.memoizedState.hydrationErrors=l),r=!0;if(!r)return i.flags&256?(yr(i),i):(yr(i),null);if((i.flags&128)!==0)throw Error(a(558))}return Wt(i),null;case 13:if(h=i.memoizedState,r===null||r.memoizedState!==null&&r.memoizedState.dehydrated!==null){if(_=Qs(i),h!==null&&h.dehydrated!==null){if(r===null){if(!_)throw Error(a(318));if(_=i.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(a(317));_[Rn]=i}else jo(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;Wt(i),_=!1}else _=_g(),r!==null&&r.memoizedState!==null&&(r.memoizedState.hydrationErrors=_),_=!0;if(!_)return i.flags&256?(yr(i),i):(yr(i),null)}return yr(i),(i.flags&128)!==0?(i.lanes=l,i):(l=h!==null,r=r!==null&&r.memoizedState!==null,l&&(h=i.child,_=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(_=h.alternate.memoizedState.cachePool.pool),E=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(E=h.memoizedState.cachePool.pool),E!==_&&(h.flags|=2048)),l!==r&&l&&(i.child.flags|=8192),Lh(i,i.updateQueue),Wt(i),null);case 4:return ot(),r===null&&Ly(i.stateNode.containerInfo),Wt(i),null;case 10:return si(i.type),Wt(i),null;case 19:if(X(Zt),h=i.memoizedState,h===null)return Wt(i),null;if(_=(i.flags&128)!==0,E=h.rendering,E===null)if(_)nu(h,!1);else{if(Gt!==0||r!==null&&(r.flags&128)!==0)for(r=i.child;r!==null;){if(E=wh(r),E!==null){for(i.flags|=128,nu(h,!1),r=E.updateQueue,i.updateQueue=r,Lh(i,r),i.subtreeFlags=0,r=l,l=i.child;l!==null;)E1(l,r),l=l.sibling;return fe(Zt,Zt.current&1|2),st&&ii(i,h.treeForkCount),i.child}r=r.sibling}h.tail!==null&&Et()>Bh&&(i.flags|=128,_=!0,nu(h,!1),i.lanes=4194304)}else{if(!_)if(r=wh(E),r!==null){if(i.flags|=128,_=!0,r=r.updateQueue,i.updateQueue=r,Lh(i,r),nu(h,!0),h.tail===null&&h.tailMode==="hidden"&&!E.alternate&&!st)return Wt(i),null}else 2*Et()-h.renderingStartTime>Bh&&l!==536870912&&(i.flags|=128,_=!0,nu(h,!1),i.lanes=4194304);h.isBackwards?(E.sibling=i.child,i.child=E):(r=h.last,r!==null?r.sibling=E:i.child=E,h.last=E)}return h.tail!==null?(r=h.tail,h.rendering=r,h.tail=r.sibling,h.renderingStartTime=Et(),r.sibling=null,l=Zt.current,fe(Zt,_?l&1|2:l&1),st&&ii(i,h.treeForkCount),r):(Wt(i),null);case 22:case 23:return yr(i),Ng(),h=i.memoizedState!==null,r!==null?r.memoizedState!==null!==h&&(i.flags|=8192):h&&(i.flags|=8192),h?(l&536870912)!==0&&(i.flags&128)===0&&(Wt(i),i.subtreeFlags&6&&(i.flags|=8192)):Wt(i),l=i.updateQueue,l!==null&&Lh(i,l.retryQueue),l=null,r!==null&&r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(l=r.memoizedState.cachePool.pool),h=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(h=i.memoizedState.cachePool.pool),h!==l&&(i.flags|=2048),r!==null&&X(Vo),null;case 24:return l=null,r!==null&&(l=r.memoizedState.cache),i.memoizedState.cache!==l&&(i.flags|=2048),si(tn),Wt(i),null;case 25:return null;case 30:return null}throw Error(a(156,i.tag))}function q9(r,i){switch(vg(i),i.tag){case 1:return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 3:return si(tn),ot(),r=i.flags,(r&65536)!==0&&(r&128)===0?(i.flags=r&-65537|128,i):null;case 26:case 27:case 5:return Ln(i),null;case 31:if(i.memoizedState!==null){if(yr(i),i.alternate===null)throw Error(a(340));jo()}return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 13:if(yr(i),r=i.memoizedState,r!==null&&r.dehydrated!==null){if(i.alternate===null)throw Error(a(340));jo()}return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 19:return X(Zt),null;case 4:return ot(),null;case 10:return si(i.type),null;case 22:case 23:return yr(i),Ng(),r!==null&&X(Vo),r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 24:return si(tn),null;case 25:return null;default:return null}}function XS(r,i){switch(vg(i),i.tag){case 3:si(tn),ot();break;case 26:case 27:case 5:Ln(i);break;case 4:ot();break;case 31:i.memoizedState!==null&&yr(i);break;case 13:yr(i);break;case 19:X(Zt);break;case 10:si(i.type);break;case 22:case 23:yr(i),Ng(),r!==null&&X(Vo);break;case 24:si(tn)}}function ru(r,i){try{var l=i.updateQueue,h=l!==null?l.lastEffect:null;if(h!==null){var _=h.next;l=_;do{if((l.tag&r)===r){h=void 0;var E=l.create,P=l.inst;h=E(),P.destroy=h}l=l.next}while(l!==_)}}catch(z){bt(i,i.return,z)}}function qi(r,i,l){try{var h=i.updateQueue,_=h!==null?h.lastEffect:null;if(_!==null){var E=_.next;h=E;do{if((h.tag&r)===r){var P=h.inst,z=P.destroy;if(z!==void 0){P.destroy=void 0,_=i;var V=l,ne=z;try{ne()}catch(he){bt(_,V,he)}}}h=h.next}while(h!==E)}}catch(he){bt(i,i.return,he)}}function JS(r){var i=r.updateQueue;if(i!==null){var l=r.stateNode;try{z1(i,l)}catch(h){bt(r,r.return,h)}}}function QS(r,i,l){l.props=Xo(r.type,r.memoizedProps),l.state=r.memoizedState;try{l.componentWillUnmount()}catch(h){bt(r,i,h)}}function au(r,i){try{var l=r.ref;if(l!==null){switch(r.tag){case 26:case 27:case 5:var h=r.stateNode;break;case 30:h=r.stateNode;break;default:h=r.stateNode}typeof l=="function"?r.refCleanup=l(h):l.current=h}}catch(_){bt(r,i,_)}}function Ia(r,i){var l=r.ref,h=r.refCleanup;if(l!==null)if(typeof h=="function")try{h()}catch(_){bt(r,i,_)}finally{r.refCleanup=null,r=r.alternate,r!=null&&(r.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(_){bt(r,i,_)}else l.current=null}function ek(r){var i=r.type,l=r.memoizedProps,h=r.stateNode;try{e:switch(i){case"button":case"input":case"select":case"textarea":l.autoFocus&&h.focus();break e;case"img":l.src?h.src=l.src:l.srcSet&&(h.srcset=l.srcSet)}}catch(_){bt(r,r.return,_)}}function hy(r,i,l){try{var h=r.stateNode;g8(h,r.type,l,i),h[Xn]=i}catch(_){bt(r,r.return,_)}}function tk(r){return r.tag===5||r.tag===3||r.tag===26||r.tag===27&&to(r.type)||r.tag===4}function fy(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||tk(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.tag===27&&to(r.type)||r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function py(r,i,l){var h=r.tag;if(h===5||h===6)r=r.stateNode,i?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(r,i):(i=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,i.appendChild(r),l=l._reactRootContainer,l!=null||i.onclick!==null||(i.onclick=ni));else if(h!==4&&(h===27&&to(r.type)&&(l=r.stateNode,i=null),r=r.child,r!==null))for(py(r,i,l),r=r.sibling;r!==null;)py(r,i,l),r=r.sibling}function Nh(r,i,l){var h=r.tag;if(h===5||h===6)r=r.stateNode,i?l.insertBefore(r,i):l.appendChild(r);else if(h!==4&&(h===27&&to(r.type)&&(l=r.stateNode),r=r.child,r!==null))for(Nh(r,i,l),r=r.sibling;r!==null;)Nh(r,i,l),r=r.sibling}function nk(r){var i=r.stateNode,l=r.memoizedProps;try{for(var h=r.type,_=i.attributes;_.length;)i.removeAttributeNode(_[0]);On(i,h,l),i[Rn]=r,i[Xn]=l}catch(E){bt(r,r.return,E)}}var hi=!1,an=!1,my=!1,rk=typeof WeakSet=="function"?WeakSet:Set,bn=null;function Z9(r,i){if(r=r.containerInfo,Wy=tf,r=m1(r),lg(r)){if("selectionStart"in r)var l={start:r.selectionStart,end:r.selectionEnd};else e:{l=(l=r.ownerDocument)&&l.defaultView||window;var h=l.getSelection&&l.getSelection();if(h&&h.rangeCount!==0){l=h.anchorNode;var _=h.anchorOffset,E=h.focusNode;h=h.focusOffset;try{l.nodeType,E.nodeType}catch{l=null;break e}var P=0,z=-1,V=-1,ne=0,he=0,ge=r,oe=null;t:for(;;){for(var ue;ge!==l||_!==0&&ge.nodeType!==3||(z=P+_),ge!==E||h!==0&&ge.nodeType!==3||(V=P+h),ge.nodeType===3&&(P+=ge.nodeValue.length),(ue=ge.firstChild)!==null;)oe=ge,ge=ue;for(;;){if(ge===r)break t;if(oe===l&&++ne===_&&(z=P),oe===E&&++he===h&&(V=P),(ue=ge.nextSibling)!==null)break;ge=oe,oe=ge.parentNode}ge=ue}l=z===-1||V===-1?null:{start:z,end:V}}else l=null}l=l||{start:0,end:0}}else l=null;for(My={focusedElem:r,selectionRange:l},tf=!1,bn=i;bn!==null;)if(i=bn,r=i.child,(i.subtreeFlags&1028)!==0&&r!==null)r.return=i,bn=r;else for(;bn!==null;){switch(i=bn,E=i.alternate,r=i.flags,i.tag){case 0:if((r&4)!==0&&(r=i.updateQueue,r=r!==null?r.events:null,r!==null))for(l=0;l<r.length;l++)_=r[l],_.ref.impl=_.nextImpl;break;case 11:case 15:break;case 1:if((r&1024)!==0&&E!==null){r=void 0,l=i,_=E.memoizedProps,E=E.memoizedState,h=l.stateNode;try{var De=Xo(l.type,_);r=h.getSnapshotBeforeUpdate(De,E),h.__reactInternalSnapshotBeforeUpdate=r}catch(Ue){bt(l,l.return,Ue)}}break;case 3:if((r&1024)!==0){if(r=i.stateNode.containerInfo,l=r.nodeType,l===9)Fy(r);else if(l===1)switch(r.nodeName){case"HEAD":case"HTML":case"BODY":Fy(r);break;default:r.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((r&1024)!==0)throw Error(a(163))}if(r=i.sibling,r!==null){r.return=i.return,bn=r;break}bn=i.return}}function ak(r,i,l){var h=l.flags;switch(l.tag){case 0:case 11:case 15:pi(r,l),h&4&&ru(5,l);break;case 1:if(pi(r,l),h&4)if(r=l.stateNode,i===null)try{r.componentDidMount()}catch(P){bt(l,l.return,P)}else{var _=Xo(l.type,i.memoizedProps);i=i.memoizedState;try{r.componentDidUpdate(_,i,r.__reactInternalSnapshotBeforeUpdate)}catch(P){bt(l,l.return,P)}}h&64&&JS(l),h&512&&au(l,l.return);break;case 3:if(pi(r,l),h&64&&(r=l.updateQueue,r!==null)){if(i=null,l.child!==null)switch(l.child.tag){case 27:case 5:i=l.child.stateNode;break;case 1:i=l.child.stateNode}try{z1(r,i)}catch(P){bt(l,l.return,P)}}break;case 27:i===null&&h&4&&nk(l);case 26:case 5:pi(r,l),i===null&&h&4&&ek(l),h&512&&au(l,l.return);break;case 12:pi(r,l);break;case 31:pi(r,l),h&4&&sk(r,l);break;case 13:pi(r,l),h&4&&lk(r,l),h&64&&(r=l.memoizedState,r!==null&&(r=r.dehydrated,r!==null&&(l=a8.bind(null,l),E8(r,l))));break;case 22:if(h=l.memoizedState!==null||hi,!h){i=i!==null&&i.memoizedState!==null||an,_=hi;var E=an;hi=h,(an=i)&&!E?mi(r,l,(l.subtreeFlags&8772)!==0):pi(r,l),hi=_,an=E}break;case 30:break;default:pi(r,l)}}function ik(r){var i=r.alternate;i!==null&&(r.alternate=null,ik(i)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&&(i=r.stateNode,i!==null&&Hm(i)),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}var Ut=null,Qn=!1;function fi(r,i,l){for(l=l.child;l!==null;)ok(r,i,l),l=l.sibling}function ok(r,i,l){if(H&&typeof H.onCommitFiberUnmount=="function")try{H.onCommitFiberUnmount(U,l)}catch{}switch(l.tag){case 26:an||Ia(l,i),fi(r,i,l),l.memoizedState?l.memoizedState.count--:l.stateNode&&(l=l.stateNode,l.parentNode.removeChild(l));break;case 27:an||Ia(l,i);var h=Ut,_=Qn;to(l.type)&&(Ut=l.stateNode,Qn=!1),fi(r,i,l),fu(l.stateNode),Ut=h,Qn=_;break;case 5:an||Ia(l,i);case 6:if(h=Ut,_=Qn,Ut=null,fi(r,i,l),Ut=h,Qn=_,Ut!==null)if(Qn)try{(Ut.nodeType===9?Ut.body:Ut.nodeName==="HTML"?Ut.ownerDocument.body:Ut).removeChild(l.stateNode)}catch(E){bt(l,i,E)}else try{Ut.removeChild(l.stateNode)}catch(E){bt(l,i,E)}break;case 18:Ut!==null&&(Qn?(r=Ut,Jk(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,l.stateNode),wl(r)):Jk(Ut,l.stateNode));break;case 4:h=Ut,_=Qn,Ut=l.stateNode.containerInfo,Qn=!0,fi(r,i,l),Ut=h,Qn=_;break;case 0:case 11:case 14:case 15:qi(2,l,i),an||qi(4,l,i),fi(r,i,l);break;case 1:an||(Ia(l,i),h=l.stateNode,typeof h.componentWillUnmount=="function"&&QS(l,i,h)),fi(r,i,l);break;case 21:fi(r,i,l);break;case 22:an=(h=an)||l.memoizedState!==null,fi(r,i,l),an=h;break;default:fi(r,i,l)}}function sk(r,i){if(i.memoizedState===null&&(r=i.alternate,r!==null&&(r=r.memoizedState,r!==null))){r=r.dehydrated;try{wl(r)}catch(l){bt(i,i.return,l)}}}function lk(r,i){if(i.memoizedState===null&&(r=i.alternate,r!==null&&(r=r.memoizedState,r!==null&&(r=r.dehydrated,r!==null))))try{wl(r)}catch(l){bt(i,i.return,l)}}function K9(r){switch(r.tag){case 31:case 13:case 19:var i=r.stateNode;return i===null&&(i=r.stateNode=new rk),i;case 22:return r=r.stateNode,i=r._retryCache,i===null&&(i=r._retryCache=new rk),i;default:throw Error(a(435,r.tag))}}function Ph(r,i){var l=K9(r);i.forEach(function(h){if(!l.has(h)){l.add(h);var _=i8.bind(null,r,h);h.then(_,_)}})}function er(r,i){var l=i.deletions;if(l!==null)for(var h=0;h<l.length;h++){var _=l[h],E=r,P=i,z=P;e:for(;z!==null;){switch(z.tag){case 27:if(to(z.type)){Ut=z.stateNode,Qn=!1;break e}break;case 5:Ut=z.stateNode,Qn=!1;break e;case 3:case 4:Ut=z.stateNode.containerInfo,Qn=!0;break e}z=z.return}if(Ut===null)throw Error(a(160));ok(E,P,_),Ut=null,Qn=!1,E=_.alternate,E!==null&&(E.return=null),_.return=null}if(i.subtreeFlags&13886)for(i=i.child;i!==null;)ck(i,r),i=i.sibling}var la=null;function ck(r,i){var l=r.alternate,h=r.flags;switch(r.tag){case 0:case 11:case 14:case 15:er(i,r),tr(r),h&4&&(qi(3,r,r.return),ru(3,r),qi(5,r,r.return));break;case 1:er(i,r),tr(r),h&512&&(an||l===null||Ia(l,l.return)),h&64&&hi&&(r=r.updateQueue,r!==null&&(h=r.callbacks,h!==null&&(l=r.shared.hiddenCallbacks,r.shared.hiddenCallbacks=l===null?h:l.concat(h))));break;case 26:var _=la;if(er(i,r),tr(r),h&512&&(an||l===null||Ia(l,l.return)),h&4){var E=l!==null?l.memoizedState:null;if(h=r.memoizedState,l===null)if(h===null)if(r.stateNode===null){e:{h=r.type,l=r.memoizedProps,_=_.ownerDocument||_;t:switch(h){case"title":E=_.getElementsByTagName("title")[0],(!E||E[Ic]||E[Rn]||E.namespaceURI==="http://www.w3.org/2000/svg"||E.hasAttribute("itemprop"))&&(E=_.createElement(h),_.head.insertBefore(E,_.querySelector("head > title"))),On(E,h,l),E[Rn]=r,yn(E),h=E;break e;case"link":var P=cE("link","href",_).get(h+(l.href||""));if(P){for(var z=0;z<P.length;z++)if(E=P[z],E.getAttribute("href")===(l.href==null||l.href===""?null:l.href)&&E.getAttribute("rel")===(l.rel==null?null:l.rel)&&E.getAttribute("title")===(l.title==null?null:l.title)&&E.getAttribute("crossorigin")===(l.crossOrigin==null?null:l.crossOrigin)){P.splice(z,1);break t}}E=_.createElement(h),On(E,h,l),_.head.appendChild(E);break;case"meta":if(P=cE("meta","content",_).get(h+(l.content||""))){for(z=0;z<P.length;z++)if(E=P[z],E.getAttribute("content")===(l.content==null?null:""+l.content)&&E.getAttribute("name")===(l.name==null?null:l.name)&&E.getAttribute("property")===(l.property==null?null:l.property)&&E.getAttribute("http-equiv")===(l.httpEquiv==null?null:l.httpEquiv)&&E.getAttribute("charset")===(l.charSet==null?null:l.charSet)){P.splice(z,1);break t}}E=_.createElement(h),On(E,h,l),_.head.appendChild(E);break;default:throw Error(a(468,h))}E[Rn]=r,yn(E),h=E}r.stateNode=h}else uE(_,r.type,r.stateNode);else r.stateNode=lE(_,h,r.memoizedProps);else E!==h?(E===null?l.stateNode!==null&&(l=l.stateNode,l.parentNode.removeChild(l)):E.count--,h===null?uE(_,r.type,r.stateNode):lE(_,h,r.memoizedProps)):h===null&&r.stateNode!==null&&hy(r,r.memoizedProps,l.memoizedProps)}break;case 27:er(i,r),tr(r),h&512&&(an||l===null||Ia(l,l.return)),l!==null&&h&4&&hy(r,r.memoizedProps,l.memoizedProps);break;case 5:if(er(i,r),tr(r),h&512&&(an||l===null||Ia(l,l.return)),r.flags&32){_=r.stateNode;try{js(_,"")}catch(De){bt(r,r.return,De)}}h&4&&r.stateNode!=null&&(_=r.memoizedProps,hy(r,_,l!==null?l.memoizedProps:_)),h&1024&&(my=!0);break;case 6:if(er(i,r),tr(r),h&4){if(r.stateNode===null)throw Error(a(162));h=r.memoizedProps,l=r.stateNode;try{l.nodeValue=h}catch(De){bt(r,r.return,De)}}break;case 3:if(Xh=null,_=la,la=Zh(i.containerInfo),er(i,r),la=_,tr(r),h&4&&l!==null&&l.memoizedState.isDehydrated)try{wl(i.containerInfo)}catch(De){bt(r,r.return,De)}my&&(my=!1,uk(r));break;case 4:h=la,la=Zh(r.stateNode.containerInfo),er(i,r),tr(r),la=h;break;case 12:er(i,r),tr(r);break;case 31:er(i,r),tr(r),h&4&&(h=r.updateQueue,h!==null&&(r.updateQueue=null,Ph(r,h)));break;case 13:er(i,r),tr(r),r.child.flags&8192&&r.memoizedState!==null!=(l!==null&&l.memoizedState!==null)&&(Mh=Et()),h&4&&(h=r.updateQueue,h!==null&&(r.updateQueue=null,Ph(r,h)));break;case 22:_=r.memoizedState!==null;var V=l!==null&&l.memoizedState!==null,ne=hi,he=an;if(hi=ne||_,an=he||V,er(i,r),an=he,hi=ne,tr(r),h&8192)e:for(i=r.stateNode,i._visibility=_?i._visibility&-2:i._visibility|1,_&&(l===null||V||hi||an||Jo(r)),l=null,i=r;;){if(i.tag===5||i.tag===26){if(l===null){V=l=i;try{if(E=V.stateNode,_)P=E.style,typeof P.setProperty=="function"?P.setProperty("display","none","important"):P.display="none";else{z=V.stateNode;var ge=V.memoizedProps.style,oe=ge!=null&&ge.hasOwnProperty("display")?ge.display:null;z.style.display=oe==null||typeof oe=="boolean"?"":(""+oe).trim()}}catch(De){bt(V,V.return,De)}}}else if(i.tag===6){if(l===null){V=i;try{V.stateNode.nodeValue=_?"":V.memoizedProps}catch(De){bt(V,V.return,De)}}}else if(i.tag===18){if(l===null){V=i;try{var ue=V.stateNode;_?Qk(ue,!0):Qk(V.stateNode,!1)}catch(De){bt(V,V.return,De)}}}else if((i.tag!==22&&i.tag!==23||i.memoizedState===null||i===r)&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===r)break e;for(;i.sibling===null;){if(i.return===null||i.return===r)break e;l===i&&(l=null),i=i.return}l===i&&(l=null),i.sibling.return=i.return,i=i.sibling}h&4&&(h=r.updateQueue,h!==null&&(l=h.retryQueue,l!==null&&(h.retryQueue=null,Ph(r,l))));break;case 19:er(i,r),tr(r),h&4&&(h=r.updateQueue,h!==null&&(r.updateQueue=null,Ph(r,h)));break;case 30:break;case 21:break;default:er(i,r),tr(r)}}function tr(r){var i=r.flags;if(i&2){try{for(var l,h=r.return;h!==null;){if(tk(h)){l=h;break}h=h.return}if(l==null)throw Error(a(160));switch(l.tag){case 27:var _=l.stateNode,E=fy(r);Nh(r,E,_);break;case 5:var P=l.stateNode;l.flags&32&&(js(P,""),l.flags&=-33);var z=fy(r);Nh(r,z,P);break;case 3:case 4:var V=l.stateNode.containerInfo,ne=fy(r);py(r,ne,V);break;default:throw Error(a(161))}}catch(he){bt(r,r.return,he)}r.flags&=-3}i&4096&&(r.flags&=-4097)}function uk(r){if(r.subtreeFlags&1024)for(r=r.child;r!==null;){var i=r;uk(i),i.tag===5&&i.flags&1024&&i.stateNode.reset(),r=r.sibling}}function pi(r,i){if(i.subtreeFlags&8772)for(i=i.child;i!==null;)ak(r,i.alternate,i),i=i.sibling}function Jo(r){for(r=r.child;r!==null;){var i=r;switch(i.tag){case 0:case 11:case 14:case 15:qi(4,i,i.return),Jo(i);break;case 1:Ia(i,i.return);var l=i.stateNode;typeof l.componentWillUnmount=="function"&&QS(i,i.return,l),Jo(i);break;case 27:fu(i.stateNode);case 26:case 5:Ia(i,i.return),Jo(i);break;case 22:i.memoizedState===null&&Jo(i);break;case 30:Jo(i);break;default:Jo(i)}r=r.sibling}}function mi(r,i,l){for(l=l&&(i.subtreeFlags&8772)!==0,i=i.child;i!==null;){var h=i.alternate,_=r,E=i,P=E.flags;switch(E.tag){case 0:case 11:case 15:mi(_,E,l),ru(4,E);break;case 1:if(mi(_,E,l),h=E,_=h.stateNode,typeof _.componentDidMount=="function")try{_.componentDidMount()}catch(ne){bt(h,h.return,ne)}if(h=E,_=h.updateQueue,_!==null){var z=h.stateNode;try{var V=_.shared.hiddenCallbacks;if(V!==null)for(_.shared.hiddenCallbacks=null,_=0;_<V.length;_++)$1(V[_],z)}catch(ne){bt(h,h.return,ne)}}l&&P&64&&JS(E),au(E,E.return);break;case 27:nk(E);case 26:case 5:mi(_,E,l),l&&h===null&&P&4&&ek(E),au(E,E.return);break;case 12:mi(_,E,l);break;case 31:mi(_,E,l),l&&P&4&&sk(_,E);break;case 13:mi(_,E,l),l&&P&4&&lk(_,E);break;case 22:E.memoizedState===null&&mi(_,E,l),au(E,E.return);break;case 30:break;default:mi(_,E,l)}i=i.sibling}}function gy(r,i){var l=null;r!==null&&r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(l=r.memoizedState.cachePool.pool),r=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(r=i.memoizedState.cachePool.pool),r!==l&&(r!=null&&r.refCount++,l!=null&&Gc(l))}function yy(r,i){r=null,i.alternate!==null&&(r=i.alternate.memoizedState.cache),i=i.memoizedState.cache,i!==r&&(i.refCount++,r!=null&&Gc(r))}function ca(r,i,l,h){if(i.subtreeFlags&10256)for(i=i.child;i!==null;)dk(r,i,l,h),i=i.sibling}function dk(r,i,l,h){var _=i.flags;switch(i.tag){case 0:case 11:case 15:ca(r,i,l,h),_&2048&&ru(9,i);break;case 1:ca(r,i,l,h);break;case 3:ca(r,i,l,h),_&2048&&(r=null,i.alternate!==null&&(r=i.alternate.memoizedState.cache),i=i.memoizedState.cache,i!==r&&(i.refCount++,r!=null&&Gc(r)));break;case 12:if(_&2048){ca(r,i,l,h),r=i.stateNode;try{var E=i.memoizedProps,P=E.id,z=E.onPostCommit;typeof z=="function"&&z(P,i.alternate===null?"mount":"update",r.passiveEffectDuration,-0)}catch(V){bt(i,i.return,V)}}else ca(r,i,l,h);break;case 31:ca(r,i,l,h);break;case 13:ca(r,i,l,h);break;case 23:break;case 22:E=i.stateNode,P=i.alternate,i.memoizedState!==null?E._visibility&2?ca(r,i,l,h):iu(r,i):E._visibility&2?ca(r,i,l,h):(E._visibility|=2,cl(r,i,l,h,(i.subtreeFlags&10256)!==0||!1)),_&2048&&gy(P,i);break;case 24:ca(r,i,l,h),_&2048&&yy(i.alternate,i);break;default:ca(r,i,l,h)}}function cl(r,i,l,h,_){for(_=_&&((i.subtreeFlags&10256)!==0||!1),i=i.child;i!==null;){var E=r,P=i,z=l,V=h,ne=P.flags;switch(P.tag){case 0:case 11:case 15:cl(E,P,z,V,_),ru(8,P);break;case 23:break;case 22:var he=P.stateNode;P.memoizedState!==null?he._visibility&2?cl(E,P,z,V,_):iu(E,P):(he._visibility|=2,cl(E,P,z,V,_)),_&&ne&2048&&gy(P.alternate,P);break;case 24:cl(E,P,z,V,_),_&&ne&2048&&yy(P.alternate,P);break;default:cl(E,P,z,V,_)}i=i.sibling}}function iu(r,i){if(i.subtreeFlags&10256)for(i=i.child;i!==null;){var l=r,h=i,_=h.flags;switch(h.tag){case 22:iu(l,h),_&2048&&gy(h.alternate,h);break;case 24:iu(l,h),_&2048&&yy(h.alternate,h);break;default:iu(l,h)}i=i.sibling}}var ou=8192;function ul(r,i,l){if(r.subtreeFlags&ou)for(r=r.child;r!==null;)hk(r,i,l),r=r.sibling}function hk(r,i,l){switch(r.tag){case 26:ul(r,i,l),r.flags&ou&&r.memoizedState!==null&&W8(l,la,r.memoizedState,r.memoizedProps);break;case 5:ul(r,i,l);break;case 3:case 4:var h=la;la=Zh(r.stateNode.containerInfo),ul(r,i,l),la=h;break;case 22:r.memoizedState===null&&(h=r.alternate,h!==null&&h.memoizedState!==null?(h=ou,ou=16777216,ul(r,i,l),ou=h):ul(r,i,l));break;default:ul(r,i,l)}}function fk(r){var i=r.alternate;if(i!==null&&(r=i.child,r!==null)){i.child=null;do i=r.sibling,r.sibling=null,r=i;while(r!==null)}}function su(r){var i=r.deletions;if((r.flags&16)!==0){if(i!==null)for(var l=0;l<i.length;l++){var h=i[l];bn=h,mk(h,r)}fk(r)}if(r.subtreeFlags&10256)for(r=r.child;r!==null;)pk(r),r=r.sibling}function pk(r){switch(r.tag){case 0:case 11:case 15:su(r),r.flags&2048&&qi(9,r,r.return);break;case 3:su(r);break;case 12:su(r);break;case 22:var i=r.stateNode;r.memoizedState!==null&&i._visibility&2&&(r.return===null||r.return.tag!==13)?(i._visibility&=-3,Wh(r)):su(r);break;default:su(r)}}function Wh(r){var i=r.deletions;if((r.flags&16)!==0){if(i!==null)for(var l=0;l<i.length;l++){var h=i[l];bn=h,mk(h,r)}fk(r)}for(r=r.child;r!==null;){switch(i=r,i.tag){case 0:case 11:case 15:qi(8,i,i.return),Wh(i);break;case 22:l=i.stateNode,l._visibility&2&&(l._visibility&=-3,Wh(i));break;default:Wh(i)}r=r.sibling}}function mk(r,i){for(;bn!==null;){var l=bn;switch(l.tag){case 0:case 11:case 15:qi(8,l,i);break;case 23:case 22:if(l.memoizedState!==null&&l.memoizedState.cachePool!==null){var h=l.memoizedState.cachePool.pool;h!=null&&h.refCount++}break;case 24:Gc(l.memoizedState.cache)}if(h=l.child,h!==null)h.return=l,bn=h;else e:for(l=r;bn!==null;){h=bn;var _=h.sibling,E=h.return;if(ik(h),h===l){bn=null;break e}if(_!==null){_.return=E,bn=_;break e}bn=E}}}var X9={getCacheForType:function(r){var i=An(tn),l=i.data.get(r);return l===void 0&&(l=r(),i.data.set(r,l)),l},cacheSignal:function(){return An(tn).controller.signal}},J9=typeof WeakMap=="function"?WeakMap:Map,pt=0,Rt=null,tt=null,rt=0,yt=0,br=null,Zi=!1,dl=!1,by=!1,gi=0,Gt=0,Ki=0,Qo=0,vy=0,vr=0,hl=0,lu=null,nr=null,wy=!1,Mh=0,gk=0,Bh=1/0,Uh=null,Xi=null,pn=0,Ji=null,fl=null,yi=0,_y=0,Sy=null,yk=null,cu=0,ky=null;function wr(){return(pt&2)!==0&&rt!==0?rt&-rt:Y.T!==null?xy():L_()}function bk(){if(vr===0)if((rt&536870912)===0||st){var r=ut;ut<<=1,(ut&3932160)===0&&(ut=262144),vr=r}else vr=536870912;return r=gr.current,r!==null&&(r.flags|=32),vr}function rr(r,i,l){(r===Rt&&(yt===2||yt===9)||r.cancelPendingCommit!==null)&&(pl(r,0),Qi(r,rt,vr,!1)),Oc(r,l),((pt&2)===0||r!==Rt)&&(r===Rt&&((pt&2)===0&&(Qo|=l),Gt===4&&Qi(r,rt,vr,!1)),Da(r))}function vk(r,i,l){if((pt&6)!==0)throw Error(a(327));var h=!l&&(i&127)===0&&(i&r.expiredLanes)===0||xc(r,i),_=h?t8(r,i):Ty(r,i,!0),E=h;do{if(_===0){dl&&!h&&Qi(r,i,0,!1);break}else{if(l=r.current.alternate,E&&!Q9(l)){_=Ty(r,i,!1),E=!1;continue}if(_===2){if(E=i,r.errorRecoveryDisabledLanes&E)var P=0;else P=r.pendingLanes&-536870913,P=P!==0?P:P&536870912?536870912:0;if(P!==0){i=P;e:{var z=r;_=lu;var V=z.current.memoizedState.isDehydrated;if(V&&(pl(z,P).flags|=256),P=Ty(z,P,!1),P!==2){if(by&&!V){z.errorRecoveryDisabledLanes|=E,Qo|=E,_=4;break e}E=nr,nr=_,E!==null&&(nr===null?nr=E:nr.push.apply(nr,E))}_=P}if(E=!1,_!==2)continue}}if(_===1){pl(r,0),Qi(r,i,0,!0);break}e:{switch(h=r,E=_,E){case 0:case 1:throw Error(a(345));case 4:if((i&4194048)!==i)break;case 6:Qi(h,i,vr,!Zi);break e;case 2:nr=null;break;case 3:case 5:break;default:throw Error(a(329))}if((i&62914560)===i&&(_=Mh+300-Et(),10<_)){if(Qi(h,i,vr,!Zi),Zd(h,0,!0)!==0)break e;yi=i,h.timeoutHandle=Kk(wk.bind(null,h,l,nr,Uh,wy,i,vr,Qo,hl,Zi,E,"Throttled",-0,0),_);break e}wk(h,l,nr,Uh,wy,i,vr,Qo,hl,Zi,E,null,-0,0)}}break}while(!0);Da(r)}function wk(r,i,l,h,_,E,P,z,V,ne,he,ge,oe,ue){if(r.timeoutHandle=-1,ge=i.subtreeFlags,ge&8192||(ge&16785408)===16785408){ge={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ni},hk(i,E,ge);var De=(E&62914560)===E?Mh-Et():(E&4194048)===E?gk-Et():0;if(De=M8(ge,De),De!==null){yi=E,r.cancelPendingCommit=De(Ak.bind(null,r,i,E,l,h,_,P,z,V,he,ge,null,oe,ue)),Qi(r,E,P,!ne);return}}Ak(r,i,E,l,h,_,P,z,V)}function Q9(r){for(var i=r;;){var l=i.tag;if((l===0||l===11||l===15)&&i.flags&16384&&(l=i.updateQueue,l!==null&&(l=l.stores,l!==null)))for(var h=0;h<l.length;h++){var _=l[h],E=_.getSnapshot;_=_.value;try{if(!pr(E(),_))return!1}catch{return!1}}if(l=i.child,i.subtreeFlags&16384&&l!==null)l.return=i,i=l;else{if(i===r)break;for(;i.sibling===null;){if(i.return===null||i.return===r)return!0;
vendor: 14,469 bytes, line 33
33i=i.return}i.sibling.return=i.return,i=i.sibling}}return!0}function Qi(r,i,l,h){i&=~vy,i&=~Qo,r.suspendedLanes|=i,r.pingedLanes&=~i,h&&(r.warmLanes|=i),h=r.expirationTimes;for(var _=i;0<_;){var E=31-ae(_),P=1<<E;h[E]=-1,_&=~P}l!==0&&O_(r,l,i)}function Fh(){return(pt&6)===0?(uu(0),!1):!0}function Ey(){if(tt!==null){if(yt===0)var r=tt.return;else r=tt,oi=Go=null,Fg(r),al=null,Vc=0,r=tt;for(;r!==null;)XS(r.alternate,r),r=r.return;tt=null}}function pl(r,i){var l=r.timeoutHandle;l!==-1&&(r.timeoutHandle=-1,v8(l)),l=r.cancelPendingCommit,l!==null&&(r.cancelPendingCommit=null,l()),yi=0,Ey(),Rt=r,tt=l=ai(r.current,null),rt=i,yt=0,br=null,Zi=!1,dl=xc(r,i),by=!1,hl=vr=vy=Qo=Ki=Gt=0,nr=lu=null,wy=!1,(i&8)!==0&&(i|=i&32);var h=r.entangledLanes;if(h!==0)for(r=r.entanglements,h&=i;0<h;){var _=31-ae(h),E=1<<_;i|=r[_],h&=~E}return gi=i,sh(),l}function _k(r,i){Ye=null,Y.H=eu,i===rl||i===mh?(i=M1(),yt=3):i===Ag?(i=M1(),yt=4):yt=i===ny?8:i!==null&&typeof i=="object"&&typeof i.then=="function"?6:1,br=i,tt===null&&(Gt=1,xh(r,Fr(i,r.current)))}function Sk(){var r=gr.current;return r===null?!0:(rt&4194048)===rt?Gr===null:(rt&62914560)===rt||(rt&536870912)!==0?r===Gr:!1}function kk(){var r=Y.H;return Y.H=eu,r===null?eu:r}function Ek(){var r=Y.A;return Y.A=X9,r}function $h(){Gt=4,Zi||(rt&4194048)!==rt&&gr.current!==null||(dl=!0),(Ki&134217727)===0&&(Qo&134217727)===0||Rt===null||Qi(Rt,rt,vr,!1)}function Ty(r,i,l){var h=pt;pt|=2;var _=kk(),E=Ek();(Rt!==r||rt!==i)&&(Uh=null,pl(r,i)),i=!1;var P=Gt;e:do try{if(yt!==0&&tt!==null){var z=tt,V=br;switch(yt){case 8:Ey(),P=6;break e;case 3:case 2:case 9:case 6:gr.current===null&&(i=!0);var ne=yt;if(yt=0,br=null,ml(r,z,V,ne),l&&dl){P=0;break e}break;default:ne=yt,yt=0,br=null,ml(r,z,V,ne)}}e8(),P=Gt;break}catch(he){_k(r,he)}while(!0);return i&&r.shellSuspendCounter++,oi=Go=null,pt=h,Y.H=_,Y.A=E,tt===null&&(Rt=null,rt=0,sh()),P}function e8(){for(;tt!==null;)Tk(tt)}function t8(r,i){var l=pt;pt|=2;var h=kk(),_=Ek();Rt!==r||rt!==i?(Uh=null,Bh=Et()+500,pl(r,i)):dl=xc(r,i);e:do try{if(yt!==0&&tt!==null){i=tt;var E=br;t:switch(yt){case 1:yt=0,br=null,ml(r,i,E,1);break;case 2:case 9:if(P1(E)){yt=0,br=null,Rk(i);break}i=function(){yt!==2&&yt!==9||Rt!==r||(yt=7),Da(r)},E.then(i,i);break e;case 3:yt=7;break e;case 4:yt=5;break e;case 7:P1(E)?(yt=0,br=null,Rk(i)):(yt=0,br=null,ml(r,i,E,7));break;case 5:var P=null;switch(tt.tag){case 26:P=tt.memoizedState;case 5:case 27:var z=tt;if(P?dE(P):z.stateNode.complete){yt=0,br=null;var V=z.sibling;if(V!==null)tt=V;else{var ne=z.return;ne!==null?(tt=ne,zh(ne)):tt=null}break t}}yt=0,br=null,ml(r,i,E,5);break;case 6:yt=0,br=null,ml(r,i,E,6);break;case 8:Ey(),Gt=6;break e;default:throw Error(a(462))}}n8();break}catch(he){_k(r,he)}while(!0);return oi=Go=null,Y.H=h,Y.A=_,pt=l,tt!==null?0:(Rt=null,rt=0,sh(),Gt)}function n8(){for(;tt!==null&&!Tn();)Tk(tt)}function Tk(r){var i=ZS(r.alternate,r,gi);r.memoizedProps=r.pendingProps,i===null?zh(r):tt=i}function Rk(r){var i=r,l=i.alternate;switch(i.tag){case 15:case 0:i=jS(l,i,i.pendingProps,i.type,void 0,rt);break;case 11:i=jS(l,i,i.pendingProps,i.type.render,i.ref,rt);break;case 5:Fg(i);default:XS(l,i),i=tt=E1(i,gi),i=ZS(l,i,gi)}r.memoizedProps=r.pendingProps,i===null?zh(r):tt=i}function ml(r,i,l,h){oi=Go=null,Fg(i),al=null,Vc=0;var _=i.return;try{if(G9(r,_,i,l,rt)){Gt=1,xh(r,Fr(l,r.current)),tt=null;return}}catch(E){if(_!==null)throw tt=_,E;Gt=1,xh(r,Fr(l,r.current)),tt=null;return}i.flags&32768?(st||h===1?r=!0:dl||(rt&536870912)!==0?r=!1:(Zi=r=!0,(h===2||h===9||h===3||h===6)&&(h=gr.current,h!==null&&h.tag===13&&(h.flags|=16384))),Ck(i,r)):zh(i)}function zh(r){var i=r;do{if((i.flags&32768)!==0){Ck(i,Zi);return}r=i.return;var l=Y9(i.alternate,i,gi);if(l!==null){tt=l;return}if(i=i.sibling,i!==null){tt=i;return}tt=i=r}while(i!==null);Gt===0&&(Gt=5)}function Ck(r,i){do{var l=q9(r.alternate,r);if(l!==null){l.flags&=32767,tt=l;return}if(l=r.return,l!==null&&(l.flags|=32768,l.subtreeFlags=0,l.deletions=null),!i&&(r=r.sibling,r!==null)){tt=r;return}tt=r=l}while(r!==null);Gt=6,tt=null}function Ak(r,i,l,h,_,E,P,z,V){r.cancelPendingCommit=null;do jh();while(pn!==0);if((pt&6)!==0)throw Error(a(327));if(i!==null){if(i===r.current)throw Error(a(177));if(E=i.lanes|i.childLanes,E|=fg,PU(r,l,E,P,z,V),r===Rt&&(tt=Rt=null,rt=0),fl=i,Ji=r,yi=l,_y=E,Sy=_,yk=h,(i.subtreeFlags&10256)!==0||(i.flags&10256)!==0?(r.callbackNode=null,r.callbackPriority=0,o8(N,function(){return Lk(),null})):(r.callbackNode=null,r.callbackPriority=0),h=(i.flags&13878)!==0,(i.subtreeFlags&13878)!==0||h){h=Y.T,Y.T=null,_=q.p,q.p=2,P=pt,pt|=4;try{Z9(r,i,l)}finally{pt=P,q.p=_,Y.T=h}}pn=1,xk(),Ok(),Ik()}}function xk(){if(pn===1){pn=0;var r=Ji,i=fl,l=(i.flags&13878)!==0;if((i.subtreeFlags&13878)!==0||l){l=Y.T,Y.T=null;var h=q.p;q.p=2;var _=pt;pt|=4;try{ck(i,r);var E=My,P=m1(r.containerInfo),z=E.focusedElem,V=E.selectionRange;if(P!==z&&z&&z.ownerDocument&&p1(z.ownerDocument.documentElement,z)){if(V!==null&&lg(z)){var ne=V.start,he=V.end;if(he===void 0&&(he=ne),"selectionStart"in z)z.selectionStart=ne,z.selectionEnd=Math.min(he,z.value.length);else{var ge=z.ownerDocument||document,oe=ge&&ge.defaultView||window;if(oe.getSelection){var ue=oe.getSelection(),De=z.textContent.length,Ue=Math.min(V.start,De),_t=V.end===void 0?Ue:Math.min(V.end,De);!ue.extend&&Ue>_t&&(P=_t,_t=Ue,Ue=P);var J=f1(z,Ue),Z=f1(z,_t);if(J&&Z&&(ue.rangeCount!==1||ue.anchorNode!==J.node||ue.anchorOffset!==J.offset||ue.focusNode!==Z.node||ue.focusOffset!==Z.offset)){var te=ge.createRange();te.setStart(J.node,J.offset),ue.removeAllRanges(),Ue>_t?(ue.addRange(te),ue.extend(Z.node,Z.offset)):(te.setEnd(Z.node,Z.offset),ue.addRange(te))}}}}for(ge=[],ue=z;ue=ue.parentNode;)ue.nodeType===1&&ge.push({element:ue,left:ue.scrollLeft,top:ue.scrollTop});for(typeof z.focus=="function"&&z.focus(),z=0;z<ge.length;z++){var me=ge[z];me.element.scrollLeft=me.left,me.element.scrollTop=me.top}}tf=!!Wy,My=Wy=null}finally{pt=_,q.p=h,Y.T=l}}r.current=i,pn=2}}function Ok(){if(pn===2){pn=0;var r=Ji,i=fl,l=(i.flags&8772)!==0;if((i.subtreeFlags&8772)!==0||l){l=Y.T,Y.T=null;var h=q.p;q.p=2;var _=pt;pt|=4;try{ak(r,i.alternate,i)}finally{pt=_,q.p=h,Y.T=l}}pn=3}}function Ik(){if(pn===4||pn===3){pn=0,en();var r=Ji,i=fl,l=yi,h=yk;(i.subtreeFlags&10256)!==0||(i.flags&10256)!==0?pn=5:(pn=0,fl=Ji=null,Dk(r,r.pendingLanes));var _=r.pendingLanes;if(_===0&&(Xi=null),jm(l),i=i.stateNode,H&&typeof H.onCommitFiberRoot=="function")try{H.onCommitFiberRoot(U,i,void 0,(i.current.flags&128)===128)}catch{}if(h!==null){i=Y.T,_=q.p,q.p=2,Y.T=null;try{for(var E=r.onRecoverableError,P=0;P<h.length;P++){var z=h[P];E(z.value,{componentStack:z.stack})}}finally{Y.T=i,q.p=_}}(yi&3)!==0&&jh(),Da(r),_=r.pendingLanes,(l&261930)!==0&&(_&42)!==0?r===ky?cu++:(cu=0,ky=r):cu=0,uu(0)}}function Dk(r,i){(r.pooledCacheLanes&=i)===0&&(i=r.pooledCache,i!=null&&(r.pooledCache=null,Gc(i)))}function jh(){return xk(),Ok(),Ik(),Lk()}function Lk(){if(pn!==5)return!1;var r=Ji,i=_y;_y=0;var l=jm(yi),h=Y.T,_=q.p;try{q.p=32>l?32:l,Y.T=null,l=Sy,Sy=null;var E=Ji,P=yi;if(pn=0,fl=Ji=null,yi=0,(pt&6)!==0)throw Error(a(331));var z=pt;if(pt|=4,pk(E.current),dk(E,E.current,P,l),pt=z,uu(0,!1),H&&typeof H.onPostCommitFiberRoot=="function")try{H.onPostCommitFiberRoot(U,E)}catch{}return!0}finally{q.p=_,Y.T=h,Dk(r,i)}}function Nk(r,i,l){i=Fr(l,i),i=ty(r.stateNode,i,2),r=Hi(r,i,2),r!==null&&(Oc(r,2),Da(r))}function bt(r,i,l){if(r.tag===3)Nk(r,r,l);else for(;i!==null;){if(i.tag===3){Nk(i,r,l);break}else if(i.tag===1){var h=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(Xi===null||!Xi.has(h))){r=Fr(l,r),l=PS(2),h=Hi(i,l,2),h!==null&&(WS(l,h,i,r),Oc(h,2),Da(h));break}}i=i.return}}function Ry(r,i,l){var h=r.pingCache;if(h===null){h=r.pingCache=new J9;var _=new Set;h.set(i,_)}else _=h.get(i),_===void 0&&(_=new Set,h.set(i,_));_.has(l)||(by=!0,_.add(l),r=r8.bind(null,r,i,l),i.then(r,r))}function r8(r,i,l){var h=r.pingCache;h!==null&&h.delete(i),r.pingedLanes|=r.suspendedLanes&l,r.warmLanes&=~l,Rt===r&&(rt&l)===l&&(Gt===4||Gt===3&&(rt&62914560)===rt&&300>Et()-Mh?(pt&2)===0&&pl(r,0):vy|=l,hl===rt&&(hl=0)),Da(r)}function Pk(r,i){i===0&&(i=x_()),r=$o(r,i),r!==null&&(Oc(r,i),Da(r))}function a8(r){var i=r.memoizedState,l=0;i!==null&&(l=i.retryLane),Pk(r,l)}function i8(r,i){var l=0;switch(r.tag){case 31:case 13:var h=r.stateNode,_=r.memoizedState;_!==null&&(l=_.retryLane);break;case 19:h=r.stateNode;break;case 22:h=r.stateNode._retryCache;break;default:throw Error(a(314))}h!==null&&h.delete(i),Pk(r,l)}function o8(r,i){return Wr(r,i)}var Gh=null,gl=null,Cy=!1,Hh=!1,Ay=!1,eo=0;function Da(r){r!==gl&&r.next===null&&(gl===null?Gh=gl=r:gl=gl.next=r),Hh=!0,Cy||(Cy=!0,l8())}function uu(r,i){if(!Ay&&Hh){Ay=!0;do for(var l=!1,h=Gh;h!==null;){if(r!==0){var _=h.pendingLanes;if(_===0)var E=0;else{var P=h.suspendedLanes,z=h.pingedLanes;E=(1<<31-ae(42|r)+1)-1,E&=_&~(P&~z),E=E&201326741?E&201326741|1:E?E|2:0}E!==0&&(l=!0,Uk(h,E))}else E=rt,E=Zd(h,h===Rt?E:0,h.cancelPendingCommit!==null||h.timeoutHandle!==-1),(E&3)===0||xc(h,E)||(l=!0,Uk(h,E));h=h.next}while(l);Ay=!1}}function s8(){Wk()}function Wk(){Hh=Cy=!1;var r=0;eo!==0&&b8()&&(r=eo);for(var i=Et(),l=null,h=Gh;h!==null;){var _=h.next,E=Mk(h,i);E===0?(h.next=null,l===null?Gh=_:l.next=_,_===null&&(gl=l)):(l=h,(r!==0||(E&3)!==0)&&(Hh=!0)),h=_}pn!==0&&pn!==5||uu(r),eo!==0&&(eo=0)}function Mk(r,i){for(var l=r.suspendedLanes,h=r.pingedLanes,_=r.expirationTimes,E=r.pendingLanes&-62914561;0<E;){var P=31-ae(E),z=1<<P,V=_[P];V===-1?((z&l)===0||(z&h)!==0)&&(_[P]=NU(z,i)):V<=i&&(r.expiredLanes|=z),E&=~z}if(i=Rt,l=rt,l=Zd(r,r===i?l:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),h=r.callbackNode,l===0||r===i&&(yt===2||yt===9)||r.cancelPendingCommit!==null)return h!==null&&h!==null&&fr(h),r.callbackNode=null,r.callbackPriority=0;if((l&3)===0||xc(r,l)){if(i=l&-l,i===r.callbackPriority)return i;switch(h!==null&&fr(h),jm(l)){case 2:case 8:l=A;break;case 32:l=N;break;case 268435456:l=D;break;default:l=N}return h=Bk.bind(null,r),l=Wr(l,h),r.callbackPriority=i,r.callbackNode=l,i}return h!==null&&h!==null&&fr(h),r.callbackPriority=2,r.callbackNode=null,2}function Bk(r,i){if(pn!==0&&pn!==5)return r.callbackNode=null,r.callbackPriority=0,null;var l=r.callbackNode;if(jh()&&r.callbackNode!==l)return null;var h=rt;return h=Zd(r,r===Rt?h:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),h===0?null:(vk(r,h,i),Mk(r,Et()),r.callbackNode!=null&&r.callbackNode===l?Bk.bind(null,r):null)}function Uk(r,i){if(jh())return null;vk(r,i,!0)}function l8(){w8(function(){(pt&6)!==0?Wr(ze,s8):Wk()})}function xy(){if(eo===0){var r=tl;r===0&&(r=Tt,Tt<<=1,(Tt&261888)===0&&(Tt=256)),eo=r}return eo}function Fk(r){return r==null||typeof r=="symbol"||typeof r=="boolean"?null:typeof r=="function"?r:Qd(""+r)}function $k(r,i){var l=i.ownerDocument.createElement("input");return l.name=i.name,l.value=i.value,r.id&&l.setAttribute("form",r.id),i.parentNode.insertBefore(l,i),r=new FormData(r),l.parentNode.removeChild(l),r}function c8(r,i,l,h,_){if(i==="submit"&&l&&l.stateNode===_){var E=Fk((_[Xn]||null).action),P=h.submitter;P&&(i=(i=P[Xn]||null)?Fk(i.formAction):P.getAttribute("formAction"),i!==null&&(E=i,P=null));var z=new rh("action","action",null,h,_);r.push({event:z,listeners:[{instance:null,listener:function(){if(h.defaultPrevented){if(eo!==0){var V=P?$k(_,P):new FormData(_);Zg(l,{pending:!0,data:V,method:_.method,action:E},null,V)}}else typeof E=="function"&&(z.preventDefault(),V=P?$k(_,P):new FormData(_),Zg(l,{pending:!0,data:V,method:_.method,action:E},E,V))},currentTarget:_}]})}}for(var Oy=0;Oy<hg.length;Oy++){var Iy=hg[Oy],u8=Iy.toLowerCase(),d8=Iy[0].toUpperCase()+Iy.slice(1);sa(u8,"on"+d8)}sa(b1,"onAnimationEnd"),sa(v1,"onAnimationIteration"),sa(w1,"onAnimationStart"),sa("dblclick","onDoubleClick"),sa("focusin","onFocus"),sa("focusout","onBlur"),sa(C9,"onTransitionRun"),sa(A9,"onTransitionStart"),sa(x9,"onTransitionCancel"),sa(_1,"onTransitionEnd"),$s("onMouseEnter",["mouseout","mouseover"]),$s("onMouseLeave",["mouseout","mouseover"]),$s("onPointerEnter",["pointerout","pointerover"]),$s("onPointerLeave",["pointerout","pointerover"]),Mo("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Mo("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Mo("onBeforeInput",["compositionend","keypress","textInput","paste"]),Mo("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Mo("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Mo("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var du="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),h8=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(du));function zk(r,i){i=(i&4)!==0;for(var l=0;l<r.length;l++){var h=r[l],_=h.event;h=h.listeners;e:{var E=void 0;if(i)for(var P=h.length-1;0<=P;P--){var z=h[P],V=z.instance,ne=z.currentTarget;if(z=z.listener,V!==E&&_.isPropagationStopped())break e;E=z,_.currentTarget=ne;try{E(_)}catch(he){oh(he)}_.currentTarget=null,E=V}else for(P=0;P<h.length;P++){if(z=h[P],V=z.instance,ne=z.currentTarget,z=z.listener,V!==E&&_.isPropagationStopped())break e;E=z,_.currentTarget=ne;try{E(_)}catch(he){oh(he)}_.currentTarget=null,E=V}}}}function nt(r,i){var l=i[Gm];l===void 0&&(l=i[Gm]=new Set);var h=r+"__bubble";l.has(h)||(jk(i,r,2,!1),l.add(h))}function Dy(r,i,l){var h=0;i&&(h|=4),jk(l,r,h,i)}var Vh="_reactListening"+Math.random().toString(36).slice(2);function Ly(r){if(!r[Vh]){r[Vh]=!0,W_.forEach(function(l){l!=="selectionchange"&&(h8.has(l)||Dy(l,!1,r),Dy(l,!0,r))});var i=r.nodeType===9?r:r.ownerDocument;i===null||i[Vh]||(i[Vh]=!0,Dy("selectionchange",!1,i))}}function jk(r,i,l,h){switch(bE(i)){case 2:var _=F8;break;case 8:_=$8;break;default:_=qy}l=_.bind(null,i,l,r),_=void 0,!Qm||i!=="touchstart"&&i!=="touchmove"&&i!=="wheel"||(_=!0),h?_!==void 0?r.addEventListener(i,l,{capture:!0,passive:_}):r.addEventListener(i,l,!0):_!==void 0?r.addEventListener(i,l,{passive:_}):r.addEventListener(i,l,!1)}function Ny(r,i,l,h,_){var E=h;if((i&1)===0&&(i&2)===0&&h!==null)e:for(;;){if(h===null)return;var P=h.tag;if(P===3||P===4){var z=h.stateNode.containerInfo;
vendor: 2,755 bytes, line 33
33if(z===_)break;if(P===4)for(P=h.return;P!==null;){var V=P.tag;if((V===3||V===4)&&P.stateNode.containerInfo===_)return;P=P.return}for(;z!==null;){if(P=Bs(z),P===null)return;if(V=P.tag,V===5||V===6||V===26||V===27){h=E=P;continue e}z=z.parentNode}}h=h.return}q_(function(){var ne=E,he=Xm(l),ge=[];e:{var oe=S1.get(r);if(oe!==void 0){var ue=rh,De=r;switch(r){case"keypress":if(th(l)===0)break e;case"keydown":case"keyup":ue=i9;break;case"focusin":De="focus",ue=rg;break;case"focusout":De="blur",ue=rg;break;case"beforeblur":case"afterblur":ue=rg;break;case"click":if(l.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ue=X_;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ue=YU;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ue=l9;break;case b1:case v1:case w1:ue=KU;break;case _1:ue=u9;break;case"scroll":case"scrollend":ue=HU;break;case"wheel":ue=h9;break;case"copy":case"cut":case"paste":ue=JU;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ue=Q_;break;case"toggle":case"beforetoggle":ue=p9}var Ue=(i&4)!==0,_t=!Ue&&(r==="scroll"||r==="scrollend"),J=Ue?oe!==null?oe+"Capture":null:oe;Ue=[];for(var Z=ne,te;Z!==null;){var me=Z;if(te=me.stateNode,me=me.tag,me!==5&&me!==26&&me!==27||te===null||J===null||(me=Lc(Z,J),me!=null&&Ue.push(hu(Z,me,te))),_t)break;Z=Z.return}0<Ue.length&&(oe=new ue(oe,De,null,l,he),ge.push({event:oe,listeners:Ue}))}}if((i&7)===0){e:{if(oe=r==="mouseover"||r==="pointerover",ue=r==="mouseout"||r==="pointerout",oe&&l!==Km&&(De=l.relatedTarget||l.fromElement)&&(Bs(De)||De[Ms]))break e;if((ue||oe)&&(oe=he.window===he?he:(oe=he.ownerDocument)?oe.defaultView||oe.parentWindow:window,ue?(De=l.relatedTarget||l.toElement,ue=ne,De=De?Bs(De):null,De!==null&&(_t=s(De),Ue=De.tag,De!==_t||Ue!==5&&Ue!==27&&Ue!==6)&&(De=null)):(ue=null,De=ne),ue!==De)){if(Ue=X_,me="onMouseLeave",J="onMouseEnter",Z="mouse",(r==="pointerout"||r==="pointerover")&&(Ue=Q_,me="onPointerLeave",J="onPointerEnter",Z="pointer"),_t=ue==null?oe:Dc(ue),te=De==null?oe:Dc(De),oe=new Ue(me,Z+"leave",ue,l,he),oe.target=_t,oe.relatedTarget=te,me=null,Bs(he)===ne&&(Ue=new Ue(J,Z+"enter",De,l,he),Ue.target=te,Ue.relatedTarget=_t,me=Ue),_t=me,ue&&De)t:{for(Ue=f8,J=ue,Z=De,te=0,me=J;me;me=Ue(me))te++;me=0;for(var Be=Z;Be;Be=Ue(Be))me++;for(;0<te-me;)J=Ue(J),te--;for(;0<me-te;)Z=Ue(Z),me--;for(;te--;){if(J===Z||Z!==null&&J===Z.alternate){Ue=J;break t}J=Ue(J),Z=Ue(Z)}Ue=null}else Ue=null;ue!==null&&Gk(ge,oe,ue,Ue,!1),De!==null&&_t!==null&&Gk(ge,_t,De,Ue,!0)}}
vendor: 5,244 bytes, lines 33-34
33e:{if(oe=ne?Dc(ne):window,ue=oe.nodeName&&oe.nodeName.toLowerCase(),ue==="select"||ue==="input"&&oe.type==="file")var dt=s1;else if(i1(oe))if(l1)dt=E9;else{dt=S9;var Ne=_9}else ue=oe.nodeName,!ue||ue.toLowerCase()!=="input"||oe.type!=="checkbox"&&oe.type!=="radio"?ne&&Zm(ne.elementType)&&(dt=s1):dt=k9;if(dt&&(dt=dt(r,ne))){o1(ge,dt,l,he);break e}Ne&&Ne(r,oe,ne),r==="focusout"&&ne&&oe.type==="number"&&ne.memoizedProps.value!=null&&qm(oe,"number",oe.value)}switch(Ne=ne?Dc(ne):window,r){case"focusin":(i1(Ne)||Ne.contentEditable==="true")&&(Ys=Ne,cg=ne,$c=null);break;case"focusout":$c=cg=Ys=null;break;case"mousedown":ug=!0;break;case"contextmenu":case"mouseup":case"dragend":ug=!1,g1(ge,l,he);break;case"selectionchange":if(R9)break;case"keydown":case"keyup":g1(ge,l,he)}var Ze;if(ig)e:{switch(r){case"compositionstart":var at="onCompositionStart";break e;case"compositionend":at="onCompositionEnd";break e;case"compositionupdate":at="onCompositionUpdate";break e}at=void 0}else Vs?r1(r,l)&&(at="onCompositionEnd"):r==="keydown"&&l.keyCode===229&&(at="onCompositionStart");at&&(e1&&l.locale!=="ko"&&(Vs||at!=="onCompositionStart"?at==="onCompositionEnd"&&Vs&&(Ze=Z_()):(Bi=he,eg="value"in Bi?Bi.value:Bi.textContent,Vs=!0)),Ne=Yh(ne,at),0<Ne.length&&(at=new J_(at,r,null,l,he),ge.push({event:at,listeners:Ne}),Ze?at.data=Ze:(Ze=a1(l),Ze!==null&&(at.data=Ze)))),(Ze=g9?y9(r,l):b9(r,l))&&(at=Yh(ne,"onBeforeInput"),0<at.length&&(Ne=new J_("onBeforeInput","beforeinput",null,l,he),ge.push({event:Ne,listeners:at}),Ne.data=Ze)),c8(ge,r,ne,l,he)}zk(ge,i)})}function hu(r,i,l){return{instance:r,listener:i,currentTarget:l}}function Yh(r,i){for(var l=i+"Capture",h=[];r!==null;){var _=r,E=_.stateNode;if(_=_.tag,_!==5&&_!==26&&_!==27||E===null||(_=Lc(r,l),_!=null&&h.unshift(hu(r,_,E)),_=Lc(r,i),_!=null&&h.push(hu(r,_,E))),r.tag===3)return h;r=r.return}return[]}function f8(r){if(r===null)return null;do r=r.return;while(r&&r.tag!==5&&r.tag!==27);return r||null}function Gk(r,i,l,h,_){for(var E=i._reactName,P=[];l!==null&&l!==h;){var z=l,V=z.alternate,ne=z.stateNode;if(z=z.tag,V!==null&&V===h)break;z!==5&&z!==26&&z!==27||ne===null||(V=ne,_?(ne=Lc(l,E),ne!=null&&P.unshift(hu(l,ne,V))):_||(ne=Lc(l,E),ne!=null&&P.push(hu(l,ne,V)))),l=l.return}P.length!==0&&r.push({event:i,listeners:P})}var p8=/\r\n?/g,m8=/\u0000|\uFFFD/g;function Hk(r){return(typeof r=="string"?r:""+r).replace(p8,` 34`).replace(m8,"")}function Vk(r,i){return i=Hk(i),Hk(r)===i}function wt(r,i,l,h,_,E){switch(l){case"children":typeof h=="string"?i==="body"||i==="textarea"&&h===""||js(r,h):(typeof h=="number"||typeof h=="bigint")&&i!=="body"&&js(r,""+h);break;case"className":Xd(r,"class",h);break;case"tabIndex":Xd(r,"tabindex",h);break;case"dir":case"role":case"viewBox":case"width":case"height":Xd(r,l,h);break;case"style":V_(r,h,E);break;case"data":if(i!=="object"){Xd(r,"data",h);break}case"src":case"href":if(h===""&&(i!=="a"||l!=="href")){r.removeAttribute(l);break}if(h==null||typeof h=="function"||typeof h=="symbol"||typeof h=="boolean"){r.removeAttribute(l);break}h=Qd(""+h),r.setAttribute(l,h);break;case"action":case"formAction":if(typeof h=="function"){r.setAttribute(l,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof E=="function"&&(l==="formAction"?(i!=="input"&&wt(r,i,"name",_.name,_,null),wt(r,i,"formEncType",_.formEncType,_,null),wt(r,i,"formMethod",_.formMethod,_,null),wt(r,i,"formTarget",_.formTarget,_,null)):(wt(r,i,"encType",_.encType,_,null),wt(r,i,"method",_.method,_,null),wt(r,i,"target",_.target,_,null)));if(h==null||typeof h=="symbol"||typeof h=="boolean"){r.removeAttribute(l);break}h=Qd(""+h),r.setAttribute(l,h);break;case"onClick":h!=null&&(r.onclick=ni);break;case"onScroll":h!=null&&nt("scroll",r);break;case"onScrollEnd":h!=null&&nt("scrollend",r);break;case"dangerouslySetInnerHTML":if(h!=null){if(typeof h!="object"||!("__html"in h))throw Error(a(61));if(l=h.__html,l!=null){if(_.children!=null)throw Error(a(60));r.innerHTML=l}}break;case"multiple":r.multiple=h&&typeof h!="function"&&typeof h!="symbol";break;case"muted":r.muted=h&&typeof h!="function"&&typeof h!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(h==null||typeof h=="function"||typeof h=="boolean"||typeof h=="symbol"){r.removeAttribute("xlink:href");break}l=Qd(""+h),r.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",l);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":h!=null&&typeof h!="function"&&typeof h!="symbol"?r.setAttribute(l,""+h):r.removeAttribute(l);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInl
34ine":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":h&&typeof h!="function"&&typeof h!="symbol"?r.setAttribute(l,""):r.removeAttribute(l);break;case"capture":case"download":h===!0?r.setAttribute(l,""):h!==!1&&h!=null&&typeof h!="function"&&typeof h!="symbol"?r.setAttribute(l,h):r.removeAttribute(l);break;case"cols":case"rows":case"size":case"span":h!=null&&typeof h!="function"&&typeof h!="symbol"&&!isNaN(h)&&1<=h?r.setAttribute(l,h):r.removeAttribute(l);break;case"rowSpan":case"start":h==null||typeof h=="function"||typeof h=="symbol"||isNaN(h)?r.removeAttribute(l):r.setAttribute(l,h);break;case"popover":nt("beforetoggle",r),nt("toggle",r),Kd(r,"popover",h);break;case"xlinkActuate":ti(r,"http://www.w3.org/1999/xlink","xlink:actuate",h);break;case"xlinkArcrole":ti(r,"http://www.w3.org/1999/xlink","xlink:arcrole",h);break;case"xlinkRole":ti(r,"http://www.w3.org/1999/xlink","xlink:role",h);break;case"xlinkShow":ti(r,"http://www.w3.org/1999/xlink","xlink:show",h);break;case"xlinkTitle":ti(r,"http://www.w3.org/1999/xlink","xlink:title",h);break;case"xlinkType":ti(r,"http://www.w3.org/1999/xlink","xlink:type",h);break;case"xmlBase":ti(r,"http://www.w3.org/XML/1998/namespace","xml:base",h);break;case"xmlLang":ti(r,"http://www.w3.org/XML/1998/namespace","xml:lang",h);break;case"xmlSpace":ti(r,"http://www.w3.org/XML/1998/namespace","xml:space",h);break;case"is":Kd(r,"is",h);break;case"innerText":case"textContent":break;default:(!(2<l.length)||l[0]!=="o"&&l[0]!=="O"||l[1]!=="n"&&l[1]!=="N")&&(l=jU.get(l)||l,Kd(r,l,h))}}function Py(r,i,l,h,_,E){switch(l){case"style":V_(r,h,E);break;case"dangerouslySetInnerHTML":if(h!=null){if(typeof h!="object"||!("__html"in h))throw Error(a(61));if(l=h.__html,l!=null){if(_.children!=null)throw Error(a(60));r.innerHTML=l}}break;case"children":typeof h=="string"?js(r,h):(typeof h=="number"||typeof h=="bigint")&&js(r,""+h);break;case"onScroll":h!=null&&nt("scroll",r);break;case"onScrollEnd":h!=null&&nt("scrollend",r);break;case"onClick":h!=null&&(r.onclick=ni);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!M_.hasOwnProperty(l))e:{if(l[0]==="o"&&l[1]==="n"&&(_=l.endsWith("Capture"),i=l.slice(2,_?l.length-7:void 0),E=r[Xn]||null,E=E!=null?E[l]:null,typeof E=="function"&&r.removeEventListener(i,E,_),typeof h=="function")){typeof E!="function"&&E!==null&&(l in r?r[l]=null:r.hasAttribute(l)&&r.removeAttribute(l)),r.addEventListener(i,h,_);break e}l in r?r[l]=h:h===!0?r.setAttribute(l,""):Kd(r,l,h)}}}function On(r,i,l){switch(i){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":nt("error",r),nt("load",r);var h=!1,_=!1,E;for(E in l)if(l.hasOwnProperty(E)){var P=l[E];if(P!=null)switch(E){case"src":h=!0;break;case"srcSet":_=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(a(137,i));default:wt(r,i,E,P,l,null)}}_&&wt(r,i,"srcSet",l.srcSet,l,null),h&&wt(r,i,"src",l.src,l,null);return;case"input":nt("invalid",r);var z=E=P=_=null,V=null,ne=null;for(h in l)if(l.hasOwnProperty(h)){var he=l[h];if(he!=null)switch(h){case"name":_=he;break;case"type":P=he;break;case"checked":V=he;break;case"defaultChecked":ne=he;break;case"value":E=he;break;case"defaultValue":z=he;break;case"children":case"dangerouslySetInnerHTML":if(he!=null)throw Error(a(137,i));break;default:wt(r,i,h,he,l,null)}}z_(r,E,z,V,ne,P,_,!1);return;case"select":nt("invalid",r),h=P=E=null;for(_ in l)if(l.hasOwnProperty(_)&&(z=l[_],z!=null))switch(_){case"value":E=z;break;case"defaultValue":P=z;break;case"multiple":h=z;default:wt(r,i,_,z,l,null)}i=E,l=P,r.multiple=!!h,i!=null?zs(r,!!h,i,!1):l!=null&&zs(r,!!h,l,!0);return;case"textarea":nt("invalid",r),E=_=h=null;for(P in l)if(l.hasOwnProperty(P)&&(z=l[P],z!=null))switch(P){case"value":h=z;break;case"defaultValue":_=z;break;case"children":E=z;break;case"dangerouslySetInnerHTML":if(z!=null)throw Error(a(91));break;default:wt(r,i,P,z,l,null)}G_(r,h,_,E);return;case"option":for(V in l)if(l.hasOwnProperty(V)&&(h=l[V],h!=null))switch(V){case"selected":r.selected=h&&typeof h!="function"&&typeof h!="symbol";break;default:wt(r,i,V,h,l,null)}return;case"dialog":nt("beforetoggle",r),nt("toggle",r),nt("cancel",r),nt("close",r);break;case"iframe":case"object":nt("load",r);break;case"video":case"audio":for(h=0;h<du.length;h++)nt(du[h],r);break;case"image":nt("error",r),nt("load",r);break;case"details":nt("toggle",r);break;case"embed":case"source":case"link":nt("error",r),nt("load",r);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ne in l)if(l.hasOwnProperty(ne)&&(h=l[ne],h!=null))switch(ne){case"children":case"dangerouslySetInnerHTML":throw Error(a(137,i));default:wt(r,i,ne,h,l,null)}return;default:if(Zm(i)){for(he in l)l.hasOwnProperty(he)&&(h=l[he],h!==void 0&&P
vendor: 5,424 bytes, line 34
34y(r,i,he,h,l,void 0));return}}for(z in l)l.hasOwnProperty(z)&&(h=l[z],h!=null&&wt(r,i,z,h,l,null))}function g8(r,i,l,h){switch(i){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var _=null,E=null,P=null,z=null,V=null,ne=null,he=null;for(ue in l){var ge=l[ue];if(l.hasOwnProperty(ue)&&ge!=null)switch(ue){case"checked":break;case"value":break;case"defaultValue":V=ge;default:h.hasOwnProperty(ue)||wt(r,i,ue,null,h,ge)}}for(var oe in h){var ue=h[oe];if(ge=l[oe],h.hasOwnProperty(oe)&&(ue!=null||ge!=null))switch(oe){case"type":E=ue;break;case"name":_=ue;break;case"checked":ne=ue;break;case"defaultChecked":he=ue;break;case"value":P=ue;break;case"defaultValue":z=ue;break;case"children":case"dangerouslySetInnerHTML":if(ue!=null)throw Error(a(137,i));break;default:ue!==ge&&wt(r,i,oe,ue,h,ge)}}Ym(r,P,z,V,ne,he,E,_);return;case"select":ue=P=z=oe=null;for(E in l)if(V=l[E],l.hasOwnProperty(E)&&V!=null)switch(E){case"value":break;case"multiple":ue=V;default:h.hasOwnProperty(E)||wt(r,i,E,null,h,V)}for(_ in h)if(E=h[_],V=l[_],h.hasOwnProperty(_)&&(E!=null||V!=null))switch(_){case"value":oe=E;break;case"defaultValue":z=E;break;case"multiple":P=E;default:E!==V&&wt(r,i,_,E,h,V)}i=z,l=P,h=ue,oe!=null?zs(r,!!l,oe,!1):!!h!=!!l&&(i!=null?zs(r,!!l,i,!0):zs(r,!!l,l?[]:"",!1));return;case"textarea":ue=oe=null;for(z in l)if(_=l[z],l.hasOwnProperty(z)&&_!=null&&!h.hasOwnProperty(z))switch(z){case"value":break;case"children":break;default:wt(r,i,z,null,h,_)}for(P in h)if(_=h[P],E=l[P],h.hasOwnProperty(P)&&(_!=null||E!=null))switch(P){case"value":oe=_;break;case"defaultValue":ue=_;break;case"children":break;case"dangerouslySetInnerHTML":if(_!=null)throw Error(a(91));break;default:_!==E&&wt(r,i,P,_,h,E)}j_(r,oe,ue);return;case"option":for(var De in l)if(oe=l[De],l.hasOwnProperty(De)&&oe!=null&&!h.hasOwnProperty(De))switch(De){case"selected":r.selected=!1;break;default:wt(r,i,De,null,h,oe)}for(V in h)if(oe=h[V],ue=l[V],h.hasOwnProperty(V)&&oe!==ue&&(oe!=null||ue!=null))switch(V){case"selected":r.selected=oe&&typeof oe!="function"&&typeof oe!="symbol";break;default:wt(r,i,V,oe,h,ue)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Ue in l)oe=l[Ue],l.hasOwnProperty(Ue)&&oe!=null&&!h.hasOwnProperty(Ue)&&wt(r,i,Ue,null,h,oe);for(ne in h)if(oe=h[ne],ue=l[ne],h.hasOwnProperty(ne)&&oe!==ue&&(oe!=null||ue!=null))switch(ne){case"children":case"dangerouslySetInnerHTML":if(oe!=null)throw Error(a(137,i));break;default:wt(r,i,ne,oe,h,ue)}return;default:if(Zm(i)){for(var _t in l)oe=l[_t],l.hasOwnProperty(_t)&&oe!==void 0&&!h.hasOwnProperty(_t)&&Py(r,i,_t,void 0,h,oe);for(he in h)oe=h[he],ue=l[he],!h.hasOwnProperty(he)||oe===ue||oe===void 0&&ue===void 0||Py(r,i,he,oe,h,ue);return}}for(var J in l)oe=l[J],l.hasOwnProperty(J)&&oe!=null&&!h.hasOwnProperty(J)&&wt(r,i,J,null,h,oe);for(ge in h)oe=h[ge],ue=l[ge],!h.hasOwnProperty(ge)||oe===ue||oe==null&&ue==null||wt(r,i,ge,oe,h,ue)}function Yk(r){switch(r){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function y8(){if(typeof performance.getEntriesByType=="function"){for(var r=0,i=0,l=performance.getEntriesByType("resource"),h=0;h<l.length;h++){var _=l[h],E=_.transferSize,P=_.initiatorType,z=_.duration;if(E&&z&&Yk(P)){for(P=0,z=_.responseEnd,h+=1;h<l.length;h++){var V=l[h],ne=V.startTime;if(ne>z)break;var he=V.transferSize,ge=V.initiatorType;he&&Yk(ge)&&(V=V.responseEnd,P+=he*(V<z?1:(z-ne)/(V-ne)))}if(--h,i+=8*(E+P)/(_.duration/1e3),r++,10<r)break}}if(0<r)return i/r/1e6}return navigator.connection&&(r=navigator.connection.downlink,typeof r=="number")?r:5}var Wy=null,My=null;function qh(r){return r.nodeType===9?r:r.ownerDocument}function qk(r){switch(r){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Zk(r,i){if(r===0)switch(i){case"svg":return 1;case"math":return 2;default:return 0}return r===1&&i==="foreignObject"?0:r}function By(r,i){return r==="textarea"||r==="noscript"||typeof i.children=="string"||typeof i.children=="number"||typeof i.children=="bigint"||typeof i.dangerouslySetInnerHTML=="object"&&i.dangerouslySetInnerHTML!==null&&i.dangerouslySetInnerHTML.__html!=null}var Uy=null;function b8(){var r=window.event;return r&&r.type==="popstate"?r===Uy?!1:(Uy=r,!0):(Uy=null,!1)}var Kk=typeof setTimeout=="function"?setTimeout:void 0,v8=typeof clearTimeout=="function"?clearTimeout:void 0,Xk=typeof Promise=="function"?Promise:void 0,w8=typeof queueMicrotask=="function"?queueMicrotask:typeof Xk<"u"?function(r){return Xk.resolve(null).then(r).catch(_8)}:Kk;function _8(r){setTimeout(function(){throw r})}function to(r){return r==="head"}function Jk(r,i){var l=i,h=0;do{var _=l.nextSibling;if(r.removeChild(l),_&&_.nodeType===8)if(l=_.data,l==="/$"||l==="/&"){if(h===0){r.removeChild(_),wl(i);return}h--}else if(l==="$"||l==="$?"||l==="$~"||l==="$!"||l==="&")h++;else if(l==="html")fu(r.ownerDocument.documentElement);else if(l==="head"){l=r.ownerDocument.head,fu(l);for(var E=l.firstChild;E;){var P=E.nextSibling,z=E.nodeName;E[Ic]||z==="SCRIPT"||z==="STYLE"||z==="LINK"&&E.rel.toLowerCase()==="stylesheet"||l.removeChild(E),E=P}}else l==="body"&&fu(r.ownerDocument.body);l=_}while(l);wl(i)}function Qk(r,i){var l=r;r=0;do{var h=l.nextSibling;
vendor: 14,976 bytes, line 34
34if(l.nodeType===1?i?(l._stashedDisplay=l.style.display,l.style.display="none"):(l.style.display=l._stashedDisplay||"",l.getAttribute("style")===""&&l.removeAttribute("style")):l.nodeType===3&&(i?(l._stashedText=l.nodeValue,l.nodeValue=""):l.nodeValue=l._stashedText||""),h&&h.nodeType===8)if(l=h.data,l==="/$"){if(r===0)break;r--}else l!=="$"&&l!=="$?"&&l!=="$~"&&l!=="$!"||r++;l=h}while(l)}function Fy(r){var i=r.firstChild;for(i&&i.nodeType===10&&(i=i.nextSibling);i;){var l=i;switch(i=i.nextSibling,l.nodeName){case"HTML":case"HEAD":case"BODY":Fy(l),Hm(l);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(l.rel.toLowerCase()==="stylesheet")continue}r.removeChild(l)}}function S8(r,i,l,h){for(;r.nodeType===1;){var _=l;if(r.nodeName.toLowerCase()!==i.toLowerCase()){if(!h&&(r.nodeName!=="INPUT"||r.type!=="hidden"))break}else if(h){if(!r[Ic])switch(i){case"meta":if(!r.hasAttribute("itemprop"))break;return r;case"link":if(E=r.getAttribute("rel"),E==="stylesheet"&&r.hasAttribute("data-precedence"))break;if(E!==_.rel||r.getAttribute("href")!==(_.href==null||_.href===""?null:_.href)||r.getAttribute("crossorigin")!==(_.crossOrigin==null?null:_.crossOrigin)||r.getAttribute("title")!==(_.title==null?null:_.title))break;return r;case"style":if(r.hasAttribute("data-precedence"))break;return r;case"script":if(E=r.getAttribute("src"),(E!==(_.src==null?null:_.src)||r.getAttribute("type")!==(_.type==null?null:_.type)||r.getAttribute("crossorigin")!==(_.crossOrigin==null?null:_.crossOrigin))&&E&&r.hasAttribute("async")&&!r.hasAttribute("itemprop"))break;return r;default:return r}}else if(i==="input"&&r.type==="hidden"){var E=_.name==null?null:""+_.name;if(_.type==="hidden"&&r.getAttribute("name")===E)return r}else return r;if(r=Hr(r.nextSibling),r===null)break}return null}function k8(r,i,l){if(i==="")return null;for(;r.nodeType!==3;)if((r.nodeType!==1||r.nodeName!=="INPUT"||r.type!=="hidden")&&!l||(r=Hr(r.nextSibling),r===null))return null;return r}function eE(r,i){for(;r.nodeType!==8;)if((r.nodeType!==1||r.nodeName!=="INPUT"||r.type!=="hidden")&&!i||(r=Hr(r.nextSibling),r===null))return null;return r}function $y(r){return r.data==="$?"||r.data==="$~"}function zy(r){return r.data==="$!"||r.data==="$?"&&r.ownerDocument.readyState!=="loading"}function E8(r,i){var l=r.ownerDocument;if(r.data==="$~")r._reactRetry=i;else if(r.data!=="$?"||l.readyState!=="loading")i();else{var h=function(){i(),l.removeEventListener("DOMContentLoaded",h)};l.addEventListener("DOMContentLoaded",h),r._reactRetry=h}}function Hr(r){for(;r!=null;r=r.nextSibling){var i=r.nodeType;if(i===1||i===3)break;if(i===8){if(i=r.data,i==="$"||i==="$!"||i==="$?"||i==="$~"||i==="&"||i==="F!"||i==="F")break;if(i==="/$"||i==="/&")return null}}return r}var jy=null;function tE(r){r=r.nextSibling;for(var i=0;r;){if(r.nodeType===8){var l=r.data;if(l==="/$"||l==="/&"){if(i===0)return Hr(r.nextSibling);i--}else l!=="$"&&l!=="$!"&&l!=="$?"&&l!=="$~"&&l!=="&"||i++}r=r.nextSibling}return null}function nE(r){r=r.previousSibling;for(var i=0;r;){if(r.nodeType===8){var l=r.data;if(l==="$"||l==="$!"||l==="$?"||l==="$~"||l==="&"){if(i===0)return r;i--}else l!=="/$"&&l!=="/&"||i++}r=r.previousSibling}return null}function rE(r,i,l){switch(i=qh(l),r){case"html":if(r=i.documentElement,!r)throw Error(a(452));return r;case"head":if(r=i.head,!r)throw Error(a(453));return r;case"body":if(r=i.body,!r)throw Error(a(454));return r;default:throw Error(a(451))}}function fu(r){for(var i=r.attributes;i.length;)r.removeAttributeNode(i[0]);Hm(r)}var Vr=new Map,aE=new Set;function Zh(r){return typeof r.getRootNode=="function"?r.getRootNode():r.nodeType===9?r:r.ownerDocument}var bi=q.d;q.d={f:T8,r:R8,D:C8,C:A8,L:x8,m:O8,X:D8,S:I8,M:L8};function T8(){var r=bi.f(),i=Fh();return r||i}function R8(r){var i=Us(r);i!==null&&i.tag===5&&i.type==="form"?_S(i):bi.r(r)}var yl=typeof document>"u"?null:document;function iE(r,i,l){var h=yl;if(h&&typeof i=="string"&&i){var _=Br(i);_='link[rel="'+r+'"][href="'+_+'"]',typeof l=="string"&&(_+='[crossorigin="'+l+'"]'),aE.has(_)||(aE.add(_),r={rel:r,crossOrigin:l,href:i},h.querySelector(_)===null&&(i=h.createElement("link"),On(i,"link",r),yn(i),h.head.appendChild(i)))}}function C8(r){bi.D(r),iE("dns-prefetch",r,null)}function A8(r,i){bi.C(r,i),iE("preconnect",r,i)}function x8(r,i,l){bi.L(r,i,l);var h=yl;if(h&&r&&i){var _='link[rel="preload"][as="'+Br(i)+'"]';i==="image"&&l&&l.imageSrcSet?(_+='[imagesrcset="'+Br(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(_+='[imagesizes="'+Br(l.imageSizes)+'"]')):_+='[href="'+Br(r)+'"]';var E=_;switch(i){case"style":E=bl(r);break;case"script":E=vl(r)}Vr.has(E)||(r=f({rel:"preload",href:i==="image"&&l&&l.imageSrcSet?void 0:r,as:i},l),Vr.set(E,r),h.querySelector(_)!==null||i==="style"&&h.querySelector(pu(E))||i==="script"&&h.querySelector(mu(E))||(i=h.createElement("link"),On(i,"link",r),yn(i),h.head.appendChild(i)))}}function O8(r,i){bi.m(r,i);var l=yl;if(l&&r){var h=i&&typeof i.as=="string"?i.as:"script",_='link[rel="modulepreload"][as="'+Br(h)+'"][href="'+Br(r)+'"]',E=_;switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":E=vl(r)}if(!Vr.has(E)&&(r=f({rel:"modulepreload",href:r},i),Vr.set(E,r),l.querySelector(_)===null)){switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(mu(E)))return}h=l.createElement("link"),On(h,"link",r),yn(h),l.head.appendChild(h)}}}function I8(r,i,l){bi.S(r,i,l);var h=yl;if(h&&r){var _=Fs(h).hoistableStyles,E=bl(r);i=i||"default";var P=_.get(E);if(!P){var z={loading:0,preload:null};if(P=h.querySelector(pu(E)))z.loading=5;else{r=f({rel:"stylesheet",href:r,"data-precedence":i},l),(l=Vr.get(E))&&Gy(r,l);var V=P=h.createElement("link");yn(V),On(V,"link",r),V._p=new Promise(function(ne,he){V.onload=ne,V.onerror=he}),V.addEventListener("load",function(){z.loading|=1}),V.addEventListener("error",function(){z.loading|=2}),z.loading|=4,Kh(P,i,h)}P={type:"stylesheet",instance:P,count:1,state:z},_.set(E,P)}}}function D8(r,i){bi.X(r,i);var l=yl;if(l&&r){var h=Fs(l).hoistableScripts,_=vl(r),E=h.get(_);E||(E=l.querySelector(mu(_)),E||(r=f({src:r,async:!0},i),(i=Vr.get(_))&&Hy(r,i),E=l.createElement("script"),yn(E),On(E,"link",r),l.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},h.set(_,E))}}function L8(r,i){bi.M(r,i);var l=yl;if(l&&r){var h=Fs(l).hoistableScripts,_=vl(r),E=h.get(_);E||(E=l.querySelector(mu(_)),E||(r=f({src:r,async:!0,type:"module"},i),(i=Vr.get(_))&&Hy(r,i),E=l.createElement("script"),yn(E),On(E,"link",r),l.head.appendChild(E)),E={type:"script",instance:E,count:1,state:null},h.set(_,E))}}function oE(r,i,l,h){var _=(_=xe.current)?Zh(_):null;if(!_)throw Error(a(446));switch(r){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(i=bl(l.href),l=Fs(_).hoistableStyles,h=l.get(i),h||(h={type:"style",instance:null,count:0,state:null},l.set(i,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){r=bl(l.href);var E=Fs(_).hoistableStyles,P=E.get(r);if(P||(_=_.ownerDocument||_,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},E.set(r,P),(E=_.querySelector(pu(r)))&&!E._p&&(P.instance=E,P.state.loading=5),Vr.has(r)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},Vr.set(r,l),E||N8(_,r,l,P.state))),i&&h===null)throw Error(a(528,""));return P}if(i&&h!==null)throw Error(a(529,""));return null;case"script":return i=l.async,l=l.src,typeof l=="string"&&i&&typeof i!="function"&&typeof i!="symbol"?(i=vl(l),l=Fs(_).hoistableScripts,h=l.get(i),h||(h={type:"script",instance:null,count:0,state:null},l.set(i,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,r))}}function bl(r){return'href="'+Br(r)+'"'}function pu(r){return'link[rel="stylesheet"]['+r+"]"}function sE(r){return f({},r,{"data-precedence":r.precedence,precedence:null})}function N8(r,i,l,h){r.querySelector('link[rel="preload"][as="style"]['+i+"]")?h.loading=1:(i=r.createElement("link"),h.preload=i,i.addEventListener("load",function(){return h.loading|=1}),i.addEventListener("error",function(){return h.loading|=2}),On(i,"link",l),yn(i),r.head.appendChild(i))}function vl(r){return'[src="'+Br(r)+'"]'}function mu(r){return"script[async]"+r}function lE(r,i,l){if(i.count++,i.instance===null)switch(i.type){case"style":var h=r.querySelector('style[data-href~="'+Br(l.href)+'"]');if(h)return i.instance=h,yn(h),h;var _=f({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return h=(r.ownerDocument||r).createElement("style"),yn(h),On(h,"style",_),Kh(h,l.precedence,r),i.instance=h;case"stylesheet":_=bl(l.href);var E=r.querySelector(pu(_));if(E)return i.state.loading|=4,i.instance=E,yn(E),E;h=sE(l),(_=Vr.get(_))&&Gy(h,_),E=(r.ownerDocument||r).createElement("link"),yn(E);var P=E;return P._p=new Promise(function(z,V){P.onload=z,P.onerror=V}),On(E,"link",h),i.state.loading|=4,Kh(E,l.precedence,r),i.instance=E;case"script":return E=vl(l.src),(_=r.querySelector(mu(E)))?(i.instance=_,yn(_),_):(h=l,(_=Vr.get(E))&&(h=f({},l),Hy(h,_)),r=r.ownerDocument||r,_=r.createElement("script"),yn(_),On(_,"link",h),r.head.appendChild(_),i.instance=_);case"void":return null;default:throw Error(a(443,i.type))}else i.type==="stylesheet"&&(i.state.loading&4)===0&&(h=i.instance,i.state.loading|=4,Kh(h,l.precedence,r));return i.instance}function Kh(r,i,l){for(var h=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),_=h.length?h[h.length-1]:null,E=_,P=0;P<h.length;P++){var z=h[P];if(z.dataset.precedence===i)E=z;else if(E!==_)break}E?E.parentNode.insertBefore(r,E.nextSibling):(i=l.nodeType===9?l.head:l,i.insertBefore(r,i.firstChild))}function Gy(r,i){r.crossOrigin==null&&(r.crossOrigin=i.crossOrigin),r.referrerPolicy==null&&(r.referrerPolicy=i.referrerPolicy),r.title==null&&(r.title=i.title)}function Hy(r,i){r.crossOrigin==null&&(r.crossOrigin=i.crossOrigin),r.referrerPolicy==null&&(r.referrerPolicy=i.referrerPolicy),r.integrity==null&&(r.integrity=i.integrity)}var Xh=null;function cE(r,i,l){if(Xh===null){var h=new Map,_=Xh=new Map;_.set(l,h)}else _=Xh,h=_.get(l),h||(h=new Map,_.set(l,h));if(h.has(r))return h;for(h.set(r,null),l=l.getElementsByTagName(r),_=0;_<l.length;_++){var E=l[_];if(!(E[Ic]||E[Rn]||r==="link"&&E.getAttribute("rel")==="stylesheet")&&E.namespaceURI!=="http://www.w3.org/2000/svg"){var P=E.getAttribute(i)||"";P=r+P;var z=h.get(P);z?z.push(E):h.set(P,[E])}}return h}function uE(r,i,l){r=r.ownerDocument||r,r.head.insertBefore(l,i==="title"?r.querySelector("head > title"):null)}function P8(r,i,l){if(l===1||i.itemProp!=null)return!1;switch(r){case"meta":case"title":return!0;case"style":if(typeof i.precedence!="string"||typeof i.href!="string"||i.href==="")break;return!0;case"link":if(typeof i.rel!="string"||typeof i.href!="string"||i.href===""||i.onLoad||i.onError)break;switch(i.rel){case"stylesheet":return r=i.disabled,typeof i.precedence=="string"&&r==null;default:return!0}case"script":if(i.async&&typeof i.async!="function"&&typeof i.async!="symbol"&&!i.onLoad&&!i.onError&&i.src&&typeof i.src=="string")return!0}return!1}function dE(r){return!(r.type==="stylesheet"&&(r.state.loading&3)===0)}function W8(r,i,l,h){if(l.type==="stylesheet"&&(typeof h.media!="string"||matchMedia(h.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var _=bl(h.href),E=i.querySelector(pu(_));if(E){i=E._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(r.count++,r=Jh.bind(r),i.then(r,r)),l.state.loading|=4,l.instance=E,yn(E);return}E=i.ownerDocument||i,h=sE(h),(_=Vr.get(_))&&Gy(h,_),E=E.createElement("link"),yn(E);var P=E;P._p=new Promise(function(z,V){P.onload=z,P.onerror=V}),On(E,"link",h),l.instance=E}r.stylesheets===null&&(r.stylesheets=new Map),r.stylesheets.set(l,i),(i=l.state.preload)&&(l.state.loading&3)===0&&(r.count++,l=Jh.bind(r),i.addEventListener("load",l),i.addEventListener("error",l))}}var Vy=0;function M8(r,i){return r.stylesheets&&r.count===0&&ef(r,r.stylesheets),0<r.count||0<r.imgCount?function(l){var h=setTimeout(function(){if(r.stylesheets&&ef(r,r.stylesheets),r.unsuspend){var E=r.unsuspend;r.unsuspend=null,E()}},6e4+i);0<r.imgBytes&&Vy===0&&(Vy=62500*y8());var _=setTimeout(function(){if(r.waitingForImages=!1,r.count===0&&(r.stylesheets&&ef(r,r.stylesheets),r.unsuspend)){var E=r.unsuspend;r.unsuspend=null,E()}},(r.imgBytes>Vy?50:800)+i);return r.unsuspend=l,function(){r.unsuspend=null,clearTimeout(h),clearTimeout(_)}}:null}function Jh(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)ef(this,this.stylesheets);else if(this.unsuspend){var r=this.unsuspend;this.unsuspend=null,r()}}}var Qh=null;function ef(r,i){r.stylesheets=null,r.unsuspend!==null&&(r.count++,Qh=new Map,i.forEach(B8,r),Qh=null,Jh.call(r))}function B8(r,i){if(!(i.state.loading&4)){var l=Qh.get(r);if(l)var h=l.get(null);else{l=new Map,Qh.set(r,l);for(var _=r.querySelectorAll("link[data-precedence],style[data-precedence]"),E=0;E<_.length;E++){var P=_[E];(P.nodeName==="LINK"||P.getAttribute("media")!=="not all")&&(l.set(P.dataset.precedence,P),h=P)}h&&l.set(null,h)}_=i.instance,P=_.getAttribute("data-precedence"),E=l.get(P)||h,E===h&&l.set(null,_),l.set(P,_),this.count++,h=Jh.bind(this),_.addEventListener("load",h),_.addEventListener("error",h),E?E.parentNode.insertBefore(_,E.nextSibling):(r=r.nodeType===9?r.head:r,r.insertBefore(_,r.firstChild)),i.state.loading|=4}}var gu={$$typeof:T,Provider:null,Consumer:null,_currentValue:re,_currentValue2:re,_threadCount:0};function U8(r,i,l,h,_,E,P,z,V){this.tag=1,this.containerInfo=r,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=$m(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$m(0),this.hiddenUpdates=$m(null),this.identifierPrefix=h,this.onUncaughtError=_,this.onCaughtError=E,this.onRecoverableError=P,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=V,this.incompleteTransitions=new Map}function hE(r,i,l,h,_,E,P,z,V,ne,he,ge){return r=new U8(r,i,l,P,V,ne,he,ge,z),i=1,E===!0&&(i|=24),E=mr(3,null,null,i),r.current=E,E.stateNode=r,i=Tg(),i.refCount++,r.pooledCache=i,i.refCount++,E.memoizedState={element:h,isDehydrated:l,cache:i},xg(E),r}function fE(r){return r?(r=Ks,r):Ks}function pE(r,i,l,h,_,E){_=fE(_),h.context===null?h.context=_:h.pendingContext=_,h=Gi(i),h.payload={element:l},E=E===void 0?null:E,E!==null&&(h.callback=E),l=Hi(r,h,i),l!==null&&(rr(l,r,i),qc(l,r,i
vendor: 7,917 bytes, line 34
34))}function mE(r,i){if(r=r.memoizedState,r!==null&&r.dehydrated!==null){var l=r.retryLane;r.retryLane=l!==0&&l<i?l:i}}function Yy(r,i){mE(r,i),(r=r.alternate)&&mE(r,i)}function gE(r){if(r.tag===13||r.tag===31){var i=$o(r,67108864);i!==null&&rr(i,r,67108864),Yy(r,67108864)}}function yE(r){if(r.tag===13||r.tag===31){var i=wr();i=zm(i);var l=$o(r,i);l!==null&&rr(l,r,i),Yy(r,i)}}var tf=!0;function F8(r,i,l,h){var _=Y.T;Y.T=null;var E=q.p;try{q.p=2,qy(r,i,l,h)}finally{q.p=E,Y.T=_}}function $8(r,i,l,h){var _=Y.T;Y.T=null;var E=q.p;try{q.p=8,qy(r,i,l,h)}finally{q.p=E,Y.T=_}}function qy(r,i,l,h){if(tf){var _=Zy(h);if(_===null)Ny(r,i,h,nf,l),vE(r,h);else if(j8(_,r,i,l,h))h.stopPropagation();else if(vE(r,h),i&4&&-1<z8.indexOf(r)){for(;_!==null;){var E=Us(_);if(E!==null)switch(E.tag){case 3:if(E=E.stateNode,E.current.memoizedState.isDehydrated){var P=Wo(E.pendingLanes);if(P!==0){var z=E;for(z.pendingLanes|=2,z.entangledLanes|=2;P;){var V=1<<31-ae(P);z.entanglements[1]|=V,P&=~V}Da(E),(pt&6)===0&&(Bh=Et()+500,uu(0))}}break;case 31:case 13:z=$o(E,2),z!==null&&rr(z,E,2),Fh(),Yy(E,2)}if(E=Zy(h),E===null&&Ny(r,i,h,nf,l),E===_)break;_=E}_!==null&&h.stopPropagation()}else Ny(r,i,h,null,l)}}function Zy(r){return r=Xm(r),Ky(r)}var nf=null;function Ky(r){if(nf=null,r=Bs(r),r!==null){var i=s(r);if(i===null)r=null;else{var l=i.tag;if(l===13){if(r=u(i),r!==null)return r;r=null}else if(l===31){if(r=c(i),r!==null)return r;r=null}else if(l===3){if(i.stateNode.current.memoizedState.isDehydrated)return i.tag===3?i.stateNode.containerInfo:null;r=null}else i!==r&&(r=null)}}return nf=r,null}function bE(r){switch(r){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(At()){case ze:return 2;case A:return 8;case N:case B:return 32;case D:return 268435456;default:return 32}default:return 32}}var Xy=!1,no=null,ro=null,ao=null,yu=new Map,bu=new Map,io=[],z8="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function vE(r,i){switch(r){case"focusin":case"focusout":no=null;break;case"dragenter":case"dragleave":ro=null;break;case"mouseover":case"mouseout":ao=null;break;case"pointerover":case"pointerout":yu.delete(i.pointerId);break;case"gotpointercapture":case"lostpointercapture":bu.delete(i.pointerId)}}function vu(r,i,l,h,_,E){return r===null||r.nativeEvent!==E?(r={blockedOn:i,domEventName:l,eventSystemFlags:h,nativeEvent:E,targetContainers:[_]},i!==null&&(i=Us(i),i!==null&&gE(i)),r):(r.eventSystemFlags|=h,i=r.targetContainers,_!==null&&i.indexOf(_)===-1&&i.push(_),r)}function j8(r,i,l,h,_){switch(i){case"focusin":return no=vu(no,r,i,l,h,_),!0;case"dragenter":return ro=vu(ro,r,i,l,h,_),!0;case"mouseover":return ao=vu(ao,r,i,l,h,_),!0;case"pointerover":var E=_.pointerId;return yu.set(E,vu(yu.get(E)||null,r,i,l,h,_)),!0;case"gotpointercapture":return E=_.pointerId,bu.set(E,vu(bu.get(E)||null,r,i,l,h,_)),!0}return!1}function wE(r){var i=Bs(r.target);if(i!==null){var l=s(i);if(l!==null){if(i=l.tag,i===13){if(i=u(l),i!==null){r.blockedOn=i,N_(r.priority,function(){yE(l)});return}}else if(i===31){if(i=c(l),i!==null){r.blockedOn=i,N_(r.priority,function(){yE(l)});return}}else if(i===3&&l.stateNode.current.memoizedState.isDehydrated){r.blockedOn=l.tag===3?l.stateNode.containerInfo:null;return}}}r.blockedOn=null}function rf(r){if(r.blockedOn!==null)return!1;for(var i=r.targetContainers;0<i.length;){var l=Zy(r.nativeEvent);if(l===null){l=r.nativeEvent;var h=new l.constructor(l.type,l);Km=h,l.target.dispatchEvent(h),Km=null}else return i=Us(l),i!==null&&gE(i),r.blockedOn=l,!1;i.shift()}return!0}function _E(r,i,l){rf(r)&&l.delete(i)}function G8(){Xy=!1,no!==null&&rf(no)&&(no=null),ro!==null&&rf(ro)&&(ro=null),ao!==null&&rf(ao)&&(ao=null),yu.forEach(_E),bu.forEach(_E)}function af(r,i){r.blockedOn===i&&(r.blockedOn=null,Xy||(Xy=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,G8)))}var of=null;function SE(r){of!==r&&(of=r,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){of===r&&(of=null);for(var i=0;i<r.length;i+=3){var l=r[i],h=r[i+1],_=r[i+2];if(typeof h!="function"){if(Ky(h||l)===null)continue;break}var E=Us(l);E!==null&&(r.splice(i,3),i-=3,Zg(E,{pending:!0,data:_,method:l.method,action:h},h,_))}}))}function wl(r){function i(V){return af(V,r)}no!==null&&af(no,r),ro!==null&&af(ro,r),ao!==null&&af(ao,r),yu.forEach(i),bu.forEach(i);for(var l=0;l<io.length;l++){var h=io[l];h.blockedOn===r&&(h.blockedOn=null)}for(;0<io.length&&(l=io[0],l.blockedOn===null);)wE(l),l.blockedOn===null&&io.shift();if(l=(r.ownerDocument||r).$$reactFormReplay,l!=null)for(h=0;h<l.length;h+=3){var _=l[h],E=l[h+1],P=_[Xn]||null;if(typeof E=="function")P||SE(l);else if(P){var z=null;if(E&&E.hasAttribute("formAction")){if(_=E,P=E[Xn]||null)z=P.formAction;else if(Ky(_)!==null)continue}else z=P.action;typeof z=="function"?l[h+1]=z:(l.splice(h,3),h-=3),SE(l)}}}function kE(){function r(E){E.canIntercept&&E.info==="react-transition"&&E.intercept({handler:function(){return new Promise(function(P){return _=P})},focusReset:"manual",scroll:"manual"})}function i(){_!==null&&(_(),_=null),h||setTimeout(l,20)}function l(){if(!h&&!navigation.transition){var E=navigation.currentEntry;E&&E.url!=null&&navigation.navigate(E.url,{state:E.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var h=!1,_=null;return navigation.addEventListener("navigate",r),navigation.addEventListener("navigatesuccess",i),navigation.addEventListener("navigateerror",i),setTimeout(l,100),function(){h=!0,navigation.removeEventListener("navigate",r),navigation.removeEventListener("navigatesuccess",i),navigation.removeEventListener("navigateerror",i),_!==null&&(_(),_=null)}}}function Jy(r){this._internalRoot=r}sf.prototype.render=Jy.prototype.render=function(r){var i=this._internalRoot;if(i===null)throw Error(a(409));var l=i.current,h=wr();pE(l,h,r,i,null,null)},sf.prototype.unmount=Jy.prototype.unmount=function(){var r=this._internalRoot;if(r!==null){this._internalRoot=null;var i=r.containerInfo;pE(r.current,2,null,r,null,null),Fh(),i[Ms]=null}};function sf(r){this._internalRoot=r}sf.prototype.unstable_scheduleHydration=function(r){if(r){var i=L_();r={blockedOn:null,target:r,priority:i};for(var l=0;l<io.length&&i!==0&&i<io[l].priority;l++);io.splice(l,0,r),l===0&&wE(r)}};var EE=e.version;if(EE!=="19.2.8")throw Error(a(527,EE,"19.2.8"));q.findDOMNode=function(r){var i=r._reactInternals;if(i===void 0)throw typeof r.render=="function"?Error(a(188)):(r=Object.keys(r).join(","),Error(a(268,r)));return r=d(i),r=r!==null?m(r):null,r=r===null?null:r.stateNode,r};var H8={bundleType:0,version:"19.2.8",rendererPackageName:"react-dom",currentDispatcherRef:Y,reconcilerVersion:"19.2.8"};
34if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var lf=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!lf.isDisabled&&lf.supportsFiber)try{U=lf.inject(H8),H=lf}catch{}}return _u.createRoot=function(r,i){if(!o(r))throw Error(a(299));var l=!1,h="",_=IS,E=DS,P=LS;return i!=null&&(i.unstable_strictMode===!0&&(l=!0),i.identifierPrefix!==void 0&&(h=i.identifierPrefix),i.onUncaughtError!==void 0&&(_=i.onUncaughtError),i.onCaughtError!==void 0&&(E=i.onCaughtError),i.onRecoverableError!==void 0&&(P=i.onRecoverableError)),i=hE(r,1,!1,null,null,l,h,null,_,E,P,kE),r[Ms]=i.current,Ly(r),new Jy(i)},_u.hydrateRoot=function(r,i,l){if(!o(r))throw Error(a(299));var h=!1,_="",E=IS,P=DS,z=LS,V=null;return l!=null&&(l.unstable_strictMode===!0&&(h=!0),l.identifierPrefix!==void 0&&(_=l.identifierPrefix),l.onUncaughtError!==void 0&&(E=l.onUncaughtError),l.onCaughtError!==void 0&&(P=l.onCaughtError),l.onRecoverableError!==void 0&&(z=l.onRecoverableError),l.formState!==void 0&&(V=l.formState)),i=hE(r,1,!0,i,l??null,h,_,V,E,P,z,kE),i.context=fE(null),l=i.current,h=wr(),h=zm(h),_=Gi(h),_.callback=null,Hi(l,_,h),l=h,i.current.lanes=l,Oc(i,l),Da(i),r[Ms]=i.current,Ly(r),new sf(i)},_u.version="19.2.8",_u}var WE;function uF(){if(WE)return tb.exports;WE=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),tb.exports=cF(),tb.exports}var dF=uF();function id(t,e){for(const n in t)e(t[n],n)}function sr(t,e){t.forEach(e)}function dn(t,e,n){if(!t)throw Error(`${n?n+": ":""}${e}`)}function wa({node:t=[],from:e,source:n,parent:a=e||n,to:o,target:s,child:u=o||s,scope:c={},meta:p={},family:d={type:"regular"},regional:m}={}){const f=$u(a),b=$u(d.links),v=$u(d.owners),y=[];sr(t,S=>S&&lr(y,S));const g={id:EF(),seq:y,next:$u(u),meta:p,scope:c,family:{triggers:f.length,type:d.type||"crosslink",links:b,owners:v}};return sr(b,S=>lr(rm(S),g)),sr(v,S=>lr(am(S),g)),sr(f,S=>lr(S.next,g)),g}function Ql(t,e,n){let a,o=ki,s=null,u=Ot;if(t.target&&(e=t.params,n=t.defer,a=t.meta,o="page"in t?t.page:o,t.stack&&(s=t.stack),u=Ul(t)||u,t=t.target),u&&Ot&&u!==Ot&&(Ot=null),Array.isArray(t))for(let y=0;y<t.length;y++)ts("pure",o,Hn(t[y]),s,e[y],u,a);else ts("pure",o,Hn(t),s,e,u,a);if(n&&!cf)return;const c={isRoot:cf,currentPage:ki,scope:Ot,isWatch:jf,isPure:Gf};let p,d,m,f,b,v;cf=0;e:for(;f=DF();){const{idx:y,stack:g,type:S}=f;m=g.node,ki=b=g.page,Ot=Ul(g),b?v=b.reg:Ot&&(v=Ot.reg);const w=!!b,k=!!Ot,T={fail:0,scope:m.scope};p=d=0;for(let R=y;R<m.seq.length&&!p;R++){const I=m.seq[R];if(I.order){const{priority:M,barrierID:L}=I.order,O=L?b?`${b.fullID}_${L}`:L:0;if(R!==y||S!==M){L?sb.has(O)||(sb.add(O),Cv(R,g,M,L)):Cv(R,g,M,0);continue e}L&&sb.delete(O)}switch(I.type){case"mov":{const L=I.data;let O;switch(L.from){case"stack":O=$f(g);break;case"a":case"b":O=g[L.from];break;case"value":O=L.store;break;case"store":if(v&&!v[L.store.id])if(w){const W=rA(b,L.store.id);g.page=b=W,W?v=W.reg:k?(nc(Ot,L.store,0,1,L.softRead),v=Ot.reg):v=void 0}else k&&nc(Ot,L.store,0,1,L.softRead);O=Zu(v&&v[L.store.id]||L.store)}switch(L.to){case"stack":g.value=O;break;case"a":case"b":g[L.to]=O;break;case"store":LF(b,Ot,L.target,0).current=O}break}case"compute":const M=I.data;if(M.fn){jf=m.meta.op==="watch",Gf=M.pure;const L=M.safe?(0,M.fn)($f(g),T.scope,g):PF(T,M.fn,g);M.filter?d=!L:g.value=L,jf=c.isWatch,Gf=c.isPure}}p=T.fail||d}if(!p){const R=$f(g),I=Ul(g);if(sr(m.next,M=>{ts("child",b,M,g,R,I)}),I){m.meta.needFxCounter&&ts("child",b,I.fxCount,g,R,I),m.meta.storeChange&&ts("child",b,I.storeChange,g,R,I),m.meta.warnSerialize&&ts("child",b,I.warnSerializeNode,g,R,I);const M=I.additionalLinks[m.id];M&&sr(M,L=>{ts("child",b,L,g,R,I)})}}}cf=c.isRoot,ki=c.currentPage,Ot=Ul(c)}function hF(t,e="combine"){let n=e+"(",a="",o=0;return id(t,s=>{o<25&&(s!=null&&(n+=a,n+=Ro(s)?KC(s).fullName:s.toString()),o+=1,a=", ")}),n+")"}function fF(t,e){let n,a;const o=t;if(e){const s=KC(e);t.length===0?(n=s.path,a=s.fullName):(n=s.path.concat([t]),a=s.fullName.length===0?t:s.fullName+"/"+t)}else n=t.length===0?[]:[t],a=t;return{shortName:o,fullName:a,path:n}}function Ls(t,e){if(!e||!e.name&&!e.named&&!e.loc)return t;let n=`[${t}]`;const a=e.named||e.name;a&&(n+=` unit '${a}'`);const o=e.loc;return!a&&o&&(n+=` (${o.file}:${o.line}:${o.column})`),n}function ew(t,e){const n=t[0];eA(n);let a=n.or;const o=n.and;if(o){const s=o[0];if(_a(s)&&"and"in s){const u=ew(o);t=u[0],a={...a,...u[1]}}else t=o}return[t,a]}function Ev(t){const e=()=>t();return e.unsubscribe=()=>t(),e}function ga(t,...e){}function aa(t,e){const n=Co({or:e,and:typeof t=="string"?{name:t}:t}),a=Ls("event",n),o=(c,...p)=>(dn(!Ya(o,"derived"),"call of derived event is not supported, use createEvent instead",a),dn(!Gf,"unit call from pure function is not supported, use operators like sample instead",a),
34ki?((d,m,f,b)=>{const v=ki;$E(null);const g=d.create(f,b);return $E(v),g})(o,s,c,p):o.create(c,p)),s=CF(),u=Object.assign(o,{graphite:wa({meta:iw(n.actualOp||"event",o,n,_c()),regional:1}),create:c=>(Ql({target:o,params:c,scope:Ot}),c),watch:c=>aA(o,c),map:c=>lb(o,ec,c,[Si()]),filter:c=>lb(o,"filter",c.fn?c:c.fn,[Si(om,1)]),filterMap:c=>lb(o,"filterMap",c,[Si(),qa(p=>!ta(p),1)]),prepend(c){dn(o.targetable,".prepend of derived event is not supported, call source event instead",a);const p=aa("* â "+o.shortName,{parent:ws(o)});return ga("eventPrepend",Hn(p)),Ss(p,o,[Si()],"prepend",c),MF(o,p),p}});return n!=null&&n.domain&&n.domain.hooks.event(u),ea(u,"id",u.graphite.id),QC(u.graphite),u}function ME(t,e,n,a,o){return Tv(n,`${o} ${e}`,"first argument"),dn(Tr(a),"second argument should be a function",o),od(!Ya(t,"derived"),`${e} in derived store`,`${e} in store created via createStore`,o),sr(Array.isArray(n)?n:[n],s=>{t.off(s),iA(s,t,"on",OF,a)}),t}function Lo(t,e){const n=Co(e),a=tc(t),o=Ls("store",n),s=aa({named:"updates",derived:1});ga("storeBase",a);const u=a.id,c="skipVoid"in n,p=c&&!n.skipVoid;od(!(c&&n.skipVoid),"{skipVoid: true}","updateFilter",o);const d={updates:s,defaultState:t,stateRef:a,getState(){let w,k=a;if(ki){let T=ki;for(;T&&!T.reg[u];)T=ws(T);T&&(w=T)}return!w&&Ot&&(nc(Ot,a,1),w=Ot),w&&(k=w.reg[u]),Zu(k)},setState:w=>Ql({target:d,params:w,defer:1,scope:Ot}),reset:(...w)=>(dn(d.targetable,".reset of derived store is not supported",o),sr(w,k=>ME(d,".reset",k,()=>d.defaultState,o)),d),on:(w,k)=>(dn(d.targetable,".on of derived store is not supported",o),ME(d,".on",w,k,o)),off(w){const k=Hn(w).id,T=Hn(d).family.links.find(R=>R.meta.onTrigger===k);return T&&gp(T),d},map(w,k){let T,R;_a(w)&&(T=w,w=w.fn);const I=d.getState(),M=ta(I);(!M||M&&p)&&(R=w(I));const L=Lo(R,{name:`${d.shortName} â *`,derived:1,...k,and:T}),O=iA(d,L,ec,om,w);return Rv(Va(L),{type:ec,fn:w,from:a}),Va(L).noInit=1,ga("storeMap",a,O),L},watch(w,k){if(od(!k,"watch second argument","sample",o),!k||!Ro(w)){const T=aA(d,w);return ga("storeWatch",a,w)||w(d.getState()),T}return dn(Tr(k),"second argument should be a function",o),w.watch(T=>k(d.getState(),T))}},m=iw("store",d,n,_c()),f=d.defaultConfig.updateFilter;d.graphite=wa({scope:{state:a,fn:f},node:[qa((w,k,T)=>(T.scope&&!T.scope.reg[a.id]&&(T.b=1),w)),ms(a),qa((w,k,{a:T,b:R})=>{const I=ta(w);return I&&!c&&SF(`${Vf}`,d.graphite),(I&&p||!I)&&(w!==T||R)},1),f&&Si(tA,1),Qr({from:"stack",target:a})],child:s,meta:{...m,defaultState:t,stateRef:a},regional:1}),ea(d,"id",d.graphite.id),ea(d,"rootStateRefId",u);const b=Ya(d,"serialize"),v=Ya(d,"derived"),y=b==="ignore",g=Ya(d,"sid");g&&(ea(d,"storeChange",1),a.sid=g),g||y||v||ea(d,"warnSerialize",1);const S=ta(t);return dn(v||!S||S&&p,Vf,o),v&&S&&!c&&console.error(`${o}: ${Vf}`),_s(d,[s]),n!=null&&n.domain&&n.domain.hooks.store(d),v||(d.reinit=aa({named:"reinit"}),d.reset(d.reinit)),a.meta=d.graphite.meta,QC(d.graphite),d}function To(...t){let e,n,a;[t,a]=ew(t);const o=Ls("combine",a),s=t[t.length-1],u=t.length>1&&!Ja(s)&&_a(s),c=u&&s,p=u?t[t.length-2]:s;let d,m,f;if(Tr(p)?(n=t.slice(0,u?-2:-1),e=p):n=t,n.length===1){const b=n[0];Ja(b)||(d=b,m=1)}if(!m&&(d=n,e)){f=1;const b=e;e=v=>b(...v)}return dn(_a(d),`${o}: shape should be an object`),BF(Array.isArray(d),!f,d,_c(),a,e,c)}function pF(){const t={};return t.req=new Promise((e,n)=>{t.rs=e,t.rj=n}),t.req.catch(()=>{}),t}function mF(t,e={}){const n=Co(Tr(t)?{handler:t}:t,e),a=Ls("effect",n),o=aa(Tr(t)?{handler:t}:t,{...e,actualOp:"effect"});aw(o,_c());const s=Hn(o);ea(s,"op",o.kind="effect"),o.use=y=>(dn(Tr(y),".use argument should be a function",a),f.scope.handler=y,o),o.use.getCurrent=()=>f.scope.handler;const u=o.finally=aa({named:"finally",derived:1}),c=o.done=u.filterMap({named:"done",fn({status:y,params:g,result:S}){if(y==="done")return{params:g,result:S}}}),p=o.fail=u.filterMap({named:"fail",fn({status:y,params:g,error:S}){if(y==="fail")return{params:g,error:S}}}),d=o.doneData=c.map({named:"doneData",fn:({result:y})=>y}),m=o.failData=p.map({named:"failData",fn:({error:y})=>y}),f=wa({scope:{handler:o.defaultConfig.handler||(()=>dn(0,`no handler used in ${o.compositeName.fullName}`))},node:[qa((y,g,S)=>{let w=g.handler;const k=Ul(S);if(k){const T=k.handlers.unitMap.get(o)||k.handlers.sidMap[o.sid];T&&(w=T)}return y.handler=w,y},0,1),qa((y,g,S)=>{if(g.runnerFn&&!g.runnerFn(y,null,S))return;const{params:w,req:k,handler:T,args:R=[w]}=y,I=GE(w,k,1,u,S),M=GE(w,k,0,u,S),[L,O]=UF(T,M,R);L&&(_a(O)&&Tr(O.then)?O.then(I,M):I(O))},0,1)],meta:{op:"fx",fx:"runner"},regional:1});s.scope.runner=f,lr(s.seq,qa((y,{runner:g},S)=>{const w=ws(S)?{params:y,req:{rs(k){},rj(k){}}}:y;return S.meta||(S.meta={fxID:TF()}),Ql({target:g,params:w,defer:1,scope:Ul(S),meta:S.meta}),w.params})),o.create=y=>{const g=pF(),S={params:y,req:g};if(Ot&&!jf){const w=Ot;g.req.finally(()=>{xv(w)}).catch(()=>{})}return Ql({target:o,params:S,scope:Ot}),g.req};const b=o.inFlight=Lo(0,{serialize:"ignore",named:(Ya(o,"name")||o.graphite.id)+".inFlight"}).on(o,y=>y+1).on(u,y=>y-1).map({fn:y=>y,named:"inFlight"});ea(u,"needFxCounter","dec"),ea(o,"needFxCounter",1);const v=o.pending=b.map({fn:y=>y>0,named:"pending"});return _s(o,[u,c,p,d,m,v,b]),n!=null&&n.domain&&n.domain.hooks.effect(o),o}function Ns(t,e){const n=Co({or:e,and:typeof t=="string"?{name:t}:t}),a=wa({family:{type:"domain"},regional:1,parent:(n==null?void 0:n.domain)||(n==null?void 0:n.parent)}),o={history:{},graphite:a,hooks:{}};a.meta=iw("domain",o,{parent:(n==null?void 0:n.domain)||(n==null?void 0:n.parent),or:{...n,derived:1}},_c()),id({Event:aa,Effect:mF,Store:Lo,Domain:Ns},(u,c)=>{const p=c.toLowerCase(),d=aa({named:`on${c}`});o.hooks[p]=d;const m=new Set;o.history[`${p}s`]=m,d.create=f=>(Ql(d,f),f),lr(Hn(d).seq,qa((f,b,v)=>(v.scope=null,f))),d.watch(f=>{_s(o,[f]),m.add(f),f.ownerSet||(f.ownerSet=m),ws(f)||(f.parent=o)}),_s(o,[d]),o[`onCreate${c}`]=f=>(sr(m,f),d.watch(f)),o[`create${c}`]=o[p]=(f,b)=>{const v=Co({and:b,or:f});return v!=null&&v.domain?u(f,b):d(u(f,{parent:o,or:v}))}});const s=ws(o);return s&&id(o.hooks,(u,c)=>Ss(u,s.hooks[c])),n!=null&&n.domain&&n.domain.hooks.domain(o),o}function gF(t,e){let n=0;return sr($F,a=>{a in t&&(dn(t[a]!=null,oA(e,a)),n=1)}),n}function ve(...t){let e,n,a,o,[[s,u,c],p]=ew(t),d=1;const m=Ls("sample",p);return ta(u)&&_a(s)&&gF(s,m)&&(u=s.clock,c=s.fn,"batch"in s?d=s.batch:(od(!("greedy"in s),"greedy in sample","batch",m),d=!s.greedy),o=s.filter,e=s.target,n=s.name,a=s.sid,s=s.source),zF("sample",u,s,o,e,c,n,p,d,1,0,a)}function Vre(t,{scope:e,safe:n}={}){dn(e||Ot||n,"scopeBind: scope not found");const a=e||Ot;return(...o)=>{function s(){xv(p)}let u,c=0;const p=Ot;xv(a);try{u=t(...o)}catch(d){u=d,c=1}if(s(),c)throw u;return u instanceof Promise&&u.then(s,s),u}}function Yre({unit:t,fn:e,scope:n,batch:a}){const o=[zf.run({fn:u=>e(u)})];o.unshift(zf.compute({priority:"sampler",batch:1})),Ja(t)&&o.unshift(zf.mov({store:t.stateRef,to:"stack"}));const s=Array.isArray(t)?t:[t];if(n){const u=[],c=n.additionalLinks;
34return s.forEach(p=>{const d=c[p.graphite.id]||[];c[p.graphite.id]=d;const m=wa({node:yF(o,p),meta:{watchOp:p.kind}});d.push(m),u.push(()=>{const f=d.indexOf(m);f!==-1&&d.splice(f,1),gp(m)})}),Ev(()=>{u.forEach(p=>p())})}{const u=wa({node:o,parent:s,family:{owners:s}});return Ev(()=>{gp(u)})}}function yF(t,e){return Ja(e)?[zf.mov({store:e.stateRef,to:"stack"}),...t]:t}const bF=typeof Symbol<"u"&&Symbol.observable||"@@observable",ec="map",Hn=t=>t.graphite||t,rm=t=>t.family.owners,am=t=>t.family.links,Va=t=>t.stateRef,$f=t=>t.value,ws=t=>t.parent,Ul=t=>t.scope,Ya=(t,e)=>Hn(t).meta[e],ea=(t,e,n)=>Hn(t).meta[e]=n,KC=t=>t.compositeName,Ro=t=>(Tr(t)||_a(t))&&"kind"in t,Wd=t=>e=>Ro(e)&&e.kind===t,Ja=Wd("store"),vF=Wd("event"),BE=Wd("effect"),wF=t=>Ro(t)&&!!t.targetable,XC=Wd("domain"),_F=Wd("scope");var qre={__proto__:null,unit:Ro,store:Ja,event:vF,effect:BE,targetable:wF,domain:XC,scope:_F,attached:t=>BE(t)&&Ya(t,"attached")==1};const ib=(t,e)=>t.includes(e),ob=(t,e)=>{const n=t.indexOf(e);n!==-1&&t.splice(n,1)},lr=(t,e)=>t.push(e),od=(t,e,n,a)=>!t&&console.error(`${a?a+": ":""}${e} is deprecated${n?`, use ${n} instead`:""}`),SF=(t,e)=>{const n=Ya(e,"unitTrace"),a=Ya(e,"config"),o=a!=null&&a.loc?` at ${a.loc.file}`:null,s=a==null?void 0:a.name;let u=t;s&&(u=`${s}: ${t}`),o&&(u=`${s}${o}: ${t}`);const c=Error(u);n&&(c.stack=n),n||s||o||console.log(`Add effector's Babel or SWC plugin to your config for more detailed debug information or "import "effector/enable_debug_traces" to your code entry module to see full stack traces`),console.error(c)},im=()=>{let t=0;return()=>""+ ++t},kF=im(),JC=im(),EF=im(),TF=im();let RF=null;const QC=t=>{},CF=()=>RF,AF=t=>t,_s=(t,e)=>{const n=Hn(t);sr(e,a=>{const o=Hn(a);n.family.type!=="domain"&&(o.family.type="crosslink"),lr(rm(o),n),lr(am(n),o)})},$u=(t=[])=>(Array.isArray(t)?t:[t]).flat().map(Hn),_a=t=>typeof t=="object"&&t!==null,Tr=t=>typeof t=="function",ta=t=>t===void 0,eA=t=>dn(_a(t)||Tr(t),"expect first argument be an object"),UE=(t,e,n,a)=>dn(!(!_a(t)&&!Tr(t)||!("family"in t)&&!("graphite"in t)),`${e}: expect ${n} to be a unit (store, event or effect)${a}`),Tv=(t,e,n)=>{Array.isArray(t)?sr(t,(a,o)=>UE(a,e,`${o} item of ${n}`,"")):UE(t,e,n," or array of units")},xF=(t,e,n="target")=>sr($u(e),a=>dn(!Ya(a,"derived"),`${t}: derived unit in "${n}" is not supported, use createStore/createEvent instead"`)),tA=(t,{fn:e},{a:n})=>e(t,n),OF=(t,{fn:e},{a:n})=>e(n,t),om=(t,{fn:e})=>e(t),nA=(t,e,n,a)=>{const o={id:JC(),type:t,data:e};return n&&(o.order={priority:n},a&&(o.order.barrierID=++IF)),o};let IF=0;const Qr=({from:t="store",store:e,target:n,to:a=n?"store":"stack",batch:o,priority:s})=>nA("mov",{from:t,store:e,to:a,target:n},s,o),sd=({fn:t,batch:e,priority:n,safe:a=0,filter:o=0,pure:s=0})=>nA("compute",{fn:t,safe:a,filter:o,pure:s},n,e),tw=({fn:t})=>sd({fn:t,priority:"effect"}),qa=(t,e,n)=>sd({fn:t,safe:1,filter:e,priority:n&&"effect"}),ms=(t,e,n)=>Qr({store:t,to:e?"stack":"a",priority:n&&"sampler",batch:1}),Si=(t=om,e)=>sd({fn:t,pure:1,filter:e}),zf={mov:Qr,compute:sd,filter:({fn:t,pure:e})=>sd({fn:t,filter:1,pure:e}),run:tw},tc=t=>({id:JC(),current:t,initial:t}),Zu=({current:t})=>t,Rv=(t,e)=>{t.before||(t.before=[]),lr(t.before,e)};let Fl=null;const nw=(t,e)=>{if(!t)return e;if(!e)return t;let n;return(t.v.type===e.v.type&&t.v.id>e.v.id||Av(t.v.type)>Av(e.v.type))&&(n=t,t=e,e=n),n=nw(t.r,e),t.r=t.l,t.l=n,t},rw=[];let FE=0;for(;FE<6;)lr(rw,{first:null,last:null,size:0}),FE+=1;const DF=()=>{for(let t=0;t<6;t++){const e=rw[t];if(e.size>0){if(t===3||t===4){e.size-=1;const a=Fl.v;return Fl=nw(Fl.l,Fl.r),a}e.size===1&&(e.last=null);const n=e.first;return e.first=n.r,e.size-=1,n.v}}},ts=(t,e,n,a,o,s,u)=>Cv(0,{a:null,b:null,node:n,parent:a,value:o,page:e,scope:s,meta:u},t,0),Cv=(t,e,n,a)=>{const o=Av(n),s=rw[o],u={v:{idx:t,stack:e,type:n,id:a},l:null,r:null};o===3||o===4?Fl=nw(Fl,u):(s.size===0?s.first=u:s.last.r=u,s.last=u),s.size+=1},Av=t=>{switch(t){case"child":return 0;case"pure":return 1;case"read":return 2;case"barrier":return 3;case"sampler":return 4;case"effect":return 5;default:return-1}},sb=new Set;let Ot,cf=1,jf=0,Gf=0,ki=null;const xv=t=>{Ot=t},$E=t=>{ki=t},rA=(t,e)=>{if(t){for(;t&&!t.reg[e];)t=t.parent;if(t)return t}return null},LF=(t,e,n,a)=>{const o=rA(t,n.id);return o?o.reg[n.id]:e?(nc(e,n,a),e.reg[n.id]):n},NF=t=>t,nc=(t,e,n,a,o)=>{const s=t.reg;if(s[e.id])return;const u=e.sid,c={id:e.id,current:e.initial,meta:e.meta};if(c.id in t.values.idMap)c.current=t.values.idMap[c.id];else if(u&&u in t.values.sidMap&&!(u in t.sidIdMap)){var p;const d=e==null||(p=e.meta)===null||p===void 0?void 0:p.serialize;c.current=(t.fromSerialize&&d!=="ignore"&&(d==null?void 0:d.read)||NF)(t.values.sidMap[u])}else if(e.before&&!o){let d=0;const m=n||!e.noInit||a;sr(e.before,f=>{switch(f.type){case"map":{const b=f.from;if((b||f.fn)&&(b&&nc(t,b,n,a),m)){const v=b&&s[b.id].current;c.current=f.fn?f.fn(v):v}break}case"field":nc(t,f.from,n,a),d||(d=1,c.current=Array.isArray(c.current)?[...c.current]:{...c.current}),m&&(c.current[f.field]=s[s[f.from.id].id].current)}})}u&&(t.sidIdMap[u]=e.id),s[e.id]=c},PF=(t,e,n)=>{try{return e($f(n),t.scope,n)}catch(a){console.error(a),t.fail=1,t.failReason=a}},Co=(t,e={})=>(_a(t)&&(Co(t.or,e),id(t,(n,a)=>{ta(n)||a==="or"||a==="and"||(e[a]=n)}),Co(t.and,e)),e),zE=(t,e)=>{ob(t.next,e),ob(rm(t),e),ob(am(t),e)},jE=["on","reset","sample","split","merge","guard","forward"],Hf=(t,e,n,a,o)=>{let s;t.next.length=0,t.seq.length=0,t.scope=null;let u=am(t);const{stateRef:c,defaultShape:p,isRegion:d,op:m}=t.meta;if(c&&(c.before=[],t.meta.stateRef=null),p)for(const b in p)p[b]=null;const f=d?t:a;if(u.length>0){const b=ib(jE,m),v=!d&&!o,y=v&&n&&!b;for(;s=u.pop();){const g=ib(s.next,t);
34zE(s,t),d&&Hf(s,0,0,t,1),g||(s.family.triggers-=1),(e||y||v&&s.family.type==="crosslink"&&!b||o&&ib(jE,s.meta.op)&&(g&&s.next.length===0||!g&&s.family.triggers<=0))&&Hf(s,e,n&&s.meta.op!=="on",f,o)}}for(u=rm(t);s=u.pop();)zE(s,t),n&&s.family.type==="crosslink"&&Hf(s,e,s.meta.op!=="on",f,o)},uf=t=>t.clear(),gp=(t,{deep:e}={})=>{let n=0;if(t.ownerSet&&t.ownerSet.delete(t),XC(t)){n=1;const a=t.history;uf(a.events),uf(a.effects),uf(a.stores),uf(a.domains)}Hf(Hn(t),!!e,n,null,0)},WF=t=>Ev(()=>gp(t)),Ss=(t,e,n,a,o)=>wa({node:n,parent:t,child:e,scope:{fn:o},meta:{op:a},family:{owners:[t,e],links:e},regional:1}),aA=(t,e)=>(dn(Tr(e),".watch argument should be a function"),WF(wa({scope:{fn:e},node:[tw({fn:om})],parent:t,meta:{op:"watch"},family:{owners:t},regional:1}))),MF=(t,e,n="event")=>{ws(t)&&ws(t).hooks[n](e)},aw=(t,e)=>ea(t,"unitTrace",e),_c=t=>"",iw=(t,e,n,a)=>{const o=Co(n),s=t==="domain",u=kF(),{sid:c=null,named:p=null,domain:d=null,parent:m=d}=o,f=p||o.name||(s?"":u),b=fF(f,m),v={op:e.kind=t,name:e.shortName=f,sid:e.sid=AF(c),named:p,unitId:e.id=u,serialize:o.serialize,derived:o.derived,config:o,unitTrace:a};return e.targetable=!o.derived,e.parent=m,e.compositeName=b,e.defaultConfig=o,e.getType=()=>(od(0,"getType","compositeName.fullName"),b.fullName),!s&&(e.subscribe=y=>(eA(y),e.watch(Tr(y)?y:g=>y.next&&y.next(g))),e[bF]=()=>e),v},lb=(t,e,n,a)=>{let o;_a(n)&&(o=n,n=n.fn);const s=aa({name:`${t.shortName} â *`,derived:1,and:o});return Ss(t,s,a,e,n),s},Vf="undefined is used to skip updates. To allow undefined as a value provide explicit { skipVoid: false } option",iA=(t,e,n,a,o)=>{const s=Va(e),u=Qr({store:s,to:"a",priority:"read"});n===ec&&(u.data.softRead=1);const c=[u,Si(a)];ga("storeOnMap",s,c,Ja(t)&&Va(t));const p=Ss(t,e,c,n,o);return n!==ec&&ea(p,"onTrigger",Hn(t).id),p},BF=(t,e,n,a,o,s,u)=>{const c=Ls("combine",o),p=t?k=>[...k]:k=>({...k}),d=t?[]:{},m=p(d),f=tc(m),b=tc(1);f.type=t?"list":"shape",f.noInit=1,ga("combineBase",f,b);const v=Lo(m,{name:hF(n),derived:1,...u,and:o});aw(v,a);const y=Va(v);y.noInit=1,ea(v,"isCombine",1),_s(v,[wa({meta:{stateRef:f}})]);const g=ms(f);g.order={priority:"barrier"};const S=Qr({store:y,to:"b",priority:"read"});S.data.softRead=1;const w=[qa((k,T,R)=>(R.scope&&!R.scope.reg[f.id]&&(R.c=1),k)),g,Qr({store:b,to:"b"}),qa((k,{key:T},R)=>{if(R.c||k!==R.a[T])return e&&R.b&&(R.a=p(R.a)),R.a[T]=k,1},1),Qr({from:"a",target:f}),Qr({from:"value",store:0,target:b}),Qr({from:"value",store:1,target:b,priority:"barrier",batch:1}),ms(f,1,1),s&&Si(),S];if(id(n,(k,T)=>{if(!Ja(k))return dn(!Ro(k)&&!ta(k),`combine expects a store in a field ${T}`,c),void(m[T]=d[T]=k);d[T]=k.defaultState,m[T]=k.getState();const R=Ss(k,v,w,"combine",s);R.scope.key=T;const I=Va(k);Rv(f,{type:"field",field:T,from:I}),ga("combineField",I,R)}),v.defaultShape=n,ea(v,"defaultShape",n),Rv(y,{type:ec,from:f,fn:s}),s){const k=s(m);!ta(k)||u&&"skipVoid"in u||console.error(`${c}: ${Vf}`),y.current=k,y.initial=k,v.defaultState=k}else v.defaultState=d;return v},UF=(t,e,n)=>{try{return[1,t(...n)]}catch(a){return e(a),[0,null]}},GE=(t,e,n,a,o)=>s=>{Ql({target:[a,FF],params:[n?{status:"done",params:t,result:s}:{status:"fail",params:t,error:s},{value:s,fn:n?e.rs:e.rj}],defer:1,page:o.page,scope:o.scope,meta:o.meta})},FF=wa({node:[tw({fn:({fn:t,value:e})=>t(e)})],meta:{op:"fx",fx:"sidechain"}}),$F=["source","clock","target"],oA=(t,e)=>t+`: ${e} should be defined`,zF=(t,e,n,a,o,s,u,c,p,d,m,f)=>{const b=Ls(t,c),v=!!o;dn(!ta(n)||!ta(e),oA(b,"either source or clock"));let y=0;ta(n)?y=1:Ro(n)||(n=To(n)),ta(e)?e=n:(Tv(e,b,"clock"),Array.isArray(e)&&(e=Ss(e,[],[],t))),y&&(n=e),c||u?c&&u?c.name=u:!c&&u&&(c={name:u}):u=n.shortName;let g="none";a&&(Ro(a)?g="unit":(dn(Tr(a),"`filter` should be function or unit"),g="fn")),o?(Tv(o,b,"target"),xF(b,o)):g==="none"&&d&&Ja(n)&&Ja(e)?o=Lo(s?s(Zu(Va(n)),Zu(Va(e))):Zu(Va(n)),{name:u,sid:f,or:c}):(o=aa({name:u,derived:1,or:c}
34),ga("sampleTarget",Hn(o)));const S=tc();let w=[];const k=[];if(g==="unit"){const[I,M,L,O]=HE(a,o,e,S,t);O&&lr(k,O),L||w.push(...cb(M)),w.push(...cb(I))}const T=[];if(y)p&&lr(T,ms(S,1,1));else{const[I,M,L,O]=HE(n,o,e,S,t);O&&lr(k,O),L||T.push(...cb(M)),lr(T,ms(I,1,p))}const R=Ss(e,o,[ga(),Qr({from:"stack",target:S}),...T,...w,ms(S),g==="fn"&&Si((I,M,{a:L})=>a(I,L),1),s&&Si(tA),ga("sampleSourceUpward",v)],t,s);return _s(n,[R]),_s(R,k),Object.assign(R.meta,c,{joint:1,stateRef:S}),aw(R,_c()),o},cb=t=>[ms(t),qa((e,n,{a})=>a,1)],HE=(t,e,n,a,o)=>{const s=Ja(t),u=s?Va(t):tc(),c=tc(s);let p;return s||(p=wa({parent:t,node:[Qr({from:"stack",target:u}),Qr({from:"value",store:1,target:c})],family:{owners:[...new Set([t,e,n].flat())],links:e},meta:{op:o},regional:1})),ga("sampleSource",c,u,a),[u,c,s,p]},Xe=Ns("auth"),sm=Xe.createEvent("authenticated"),Md=Xe.createEvent("unauthenticated"),sA=Xe.createEvent("sessionSyncUnavailable"),jF=Xe.createEvent("captchaTokenReceived"),GF=Xe.createEvent("ssoRedirectRequested"),ow=Xe.createEvent("verifyEmailHashReceived"),yp=Xe.createEvent("verifyEmailFailed"),lA=Xe.createEvent("verifyEmailSucceeded"),sw=Xe.createEvent("verifyEmailStateReset"),HF=Xe.createEvent("verifyEmailInAuthModalChanged"),VF=Xe.createEvent("playBlockDetected"),YF=Xe.createStore(!1,{name:"isAuthenticated"}).on(sm,()=>!0).on(Md,()=>!1);Xe.createStore(!1,{name:"isSessionUnavailable"}).on(sA,()=>!0).on(sm,()=>!1).on(Md,()=>!1);const cA=Xe.createStore(null,{name:"captchaToken"}).on(jF,(t,e)=>e);Xe.createStore(null,{name:"ssoRedirectToUrl"}).on(GF,(t,e)=>e);const qF=Xe.createStore(null,{name:"verifyEmailHash"}).on(ow,(t,e)=>e).reset(sw),Zre=Xe.createStore(null,{name:"verifyEmailError"}).on(yp,(t,e)=>e).on(ow,()=>null).on(lA,()=>null).reset(sw),Kre=Xe.createStore(!1,{name:"isLoggedInAndVerifyEmailInAuthModal"}).on(HF,(t,e)=>e);Xe.createStore(!1,{name:"isPlayBlocked"}).on(VF,()=>!0).on(Md,()=>!1);var Dt=(t=>(t.OTP_HASH="otp_hash",t.VERIFY_EMAIL="verify_email",t.EXTERNAL_ID="external_id",t.USER_ID="user_id",t.TG_USER="tg_user",t.PLAY_BLOCK="play_block",t.CLICK_ID="clickId",t.TRAFFIC_MANAGER_CLICK_ID="trafficManagerClickId",t.TRAFFIC_MANAGER_AFFILIATE_ID="pubid",t.TRAFFIC_MANAGER_OFFER_NAME="offer_name",t.START="start",t.AFFILIATED_BY_CODE="affiliatedByCode",t.LIVE_WINS_CONNECTION_TOKEN="live_wins_connection_token",t.LIVE_WINS_SUBSCRIPTION_TOKEN="live_wins_subscription_token",t.LIVE_REWARDS_CONNECTION_TOKEN="live_rewards_connection_token",t.LIVE_REWARDS_SUBSCRIPTION_TOKEN="live_rewards_subscription_token",t))(Dt||{});const uA="/auth/otp-email",ZF="/auth/sign-in",KF="/auth/user",XF="/auth/totp-confirm",JF="/auth/reset-password",QF="/auth/set-password",dA="/auth/verify-email",hA="/auth/change-email",fA="/auth/add-password",pA="/auth/change-password",e$="/auth/",t$="/auth-sync/jwt-sync",ya={OK:200,MULTIPLE_CHOICES:300,NOT_FOUND:404,REQUEST_TIMEOUT:408,CONFLICT:409,LOCKED:423,TOO_MANY_REQUESTS:429,INTERNAL_SERVER_ERROR:500},n$=1e3,r$=1,a$=1,i$=["clickId","trafficManagerClickId","pubid","offer_name","affiliatedByCode","start","otp_hash","user_id","live_wins_connection_token","live_wins_subscription_token","live_rewards_connection_token","live_rewards_subscription_token"],o$=["rewards:lastKnownXp","rewards:lastKnownLevel","rewards:lastKnownCashbackPercents"],s$=["affiliatedByCode"],l$="?modal=auth";let Ov=null;const Xre=t=>{Ov=t},Nt=()=>{if(!Ov)throw new Error("@whale-client/dataflow-auth is not configured. Call configureAuthDataflow() on app boot.");return Ov},c$=(t,e)=>{const n=e.trim().replace(/\/+$/,""),a=n?n.startsWith("/")?n:`/${n}`:"/";return`${t}${a}${l$}`},mA=t=>t>=ya.OK&&t<ya.MULTIPLE_CHOICES,Or=t=>t>=ya.MULTIPLE_CHOICES,gA=t=>t===ya.LOCKED,u$=t=>t===ya.CONFLICT,d$=t=>t===ya.NOT_FOUND,Jre=t=>t===ya.TOO_MANY_REQUESTS,h$=t=>t===ya.REQUEST_TIMEOUT||t===ya.TOO_MANY_REQUESTS||t>=ya.INTERNAL_SERVER_ERROR,f$=t=>mA(t)?"alive":h$(t)?"unavailable":"absent",p$=t=>t instanceof Error,Qre=t=>p$(t)?t.status:void 0,eae=t=>{Nt().cookies.set(Dt.OTP_HASH,t,{expiresInDays:r$})},tae=()=>Nt().cookies.get(Dt.OTP_HASH),nae=()=>{Nt().cookies.remove(Dt.OTP_HASH)},rae=t=>{Nt().cookies.set(Dt.VERIFY_EMAIL,t,{expiresInDays:a$})},aae=()=>Nt().cookies.get(Dt.VERIFY_EMAIL),iae=()=>{Nt().clearSignUpSourceData()},m$=new Set(["rndlabz.com","blacklabz.com"]),oae=t=>{const e=t.split("@");if(e.length!==2)return!1;const[n,a]=e;if(m$.has(a.toLowerCase()))return!0;
34if(t.includes("+")||!/^[A-Z0-9][A-Z0-9._%+-]*[A-Z0-9]@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(t)||n.includes("..")||a.includes(".."))return!1;const o=a.split(".").pop();return!!o&&/^[A-Z]{2,}$/i.test(String(o))},sae=t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t),lae=t=>t.length>=3,cae=t=>t.length<8?"too_short":/[A-Za-z]/.test(t)?/\d/.test(t)?t!==t.trim()?"edge_whitespace":null:"missing_number":"missing_letter",lw=()=>{const t=Nt();return{...t.getSignUpSource()??{},captchaToken:cA.getState(),adFormUid:t.getAdFormUid(),...t.getUtmParams(),externalId:t.cookies.get(Dt.EXTERNAL_ID)}},uae=Xe.createEffect(async({email:t})=>{const e=Nt(),n=await fetch(`${e.apiUrl}${uA}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:t,...lw(),...e.getTrackingData()})});if(!n.ok){const o=new Error(`OTP request failed with ${n.status}`);throw o.status=n.status,o}const a=await n.json();if(!a.hash)throw new Error("OTP request returned no hash");return{hash:a.hash}}),dae=Xe.createEffect(async({hash:t,code:e})=>{var o;const n=Nt(),a=await n.http.put(uA,{hash:t,code:e,...n.getTrackingData()});return gA(a.status)?{success:!1,playBlocked:!0}:Or(a.status)?{success:!1,playBlocked:!1}:{success:!0,playBlocked:!1,oneTime2FAToken:(o=a.data)==null?void 0:o.oneTime2FAToken}}),hae=Xe.createEffect(async({identifier:t,password:e})=>{var o;const n=Nt(),a=await n.http.post(ZF,{identifier:t,password:e,...lw(),...n.getTrackingData()});if(gA(a.status))return{playBlocked:!0};if(d$(a.status))return{playBlocked:!1,accountNotFound:!0};if(Or(a.status))throw new Error("invalid_credentials");return{playBlocked:!1,oneTime2FAToken:(o=a.data)==null?void 0:o.oneTime2FAToken}}),fae=Xe.createEffect(async({identifier:t,password:e,promocode:n})=>{var s;const a=Nt(),o=await a.http.post(KF,{identifier:t.trim(),password:e,...lw(),...n?{promocode:n}:{},...a.getTrackingData()});return u$(o.status)?{error:"username_exists"}:Or(o.status)?(console.error("Account creation failed",o),{error:"request_failed"}):{oneTimeHash:(s=o.data)==null?void 0:s.oneTimeHash}}),pae=Xe.createEffect(async({totpCode:t,preAuthToken:e})=>{const n=Nt(),a=await n.http.post(XF,{totpCode:t,preAuthToken:e,...n.getTrackingData()});return mA(a.status)?(sm(),"ok"):"error"}),mae=Xe.createEffect(async t=>{const n=await Nt().http.post(JF,{identifier:t,captchaToken:cA.getState()});if(Or(n.status))throw new Error(n.status===ya.TOO_MANY_REQUESTS?"errors.TOO_MANY_REQUESTS":"errors.generic")}),gae=Xe.createEffect(async({password:t,token:e})=>{var o;const n=Nt(),a=await n.http.post(QF,{password:t,token:e,...n.getTrackingData()});if(Or(a.status))throw new Error("auth.reset_link_invalid");return{playBlocked:!1,oneTime2FAToken:(o=a.data)==null?void 0:o.oneTime2FAToken}}),g$=Xe.createEffect(async({email:t,validatedActionToken:e})=>{var o;const a=await Nt().http.post(dA,{email:t.trim(),validatedActionToken:e});if(Or(a.status))throw new Error(((o=a.data)==null?void 0:o.message)??"Failed to initiate email verification");return{hash:a.data.hash}}),y$=Xe.createEffect(async({hash:t,code:e})=>{var o;const a=await Nt().http.put(dA,{hash:t,code:e});if(Or(a.status))throw new Error(((o=a.data)==null?void 0:o.message)??"Failed to validate email verification code")}),yae=Xe.createEffect(async({email:t,validatedActionToken:e})=>{var a;const n=await Nt().http.post(hA,{email:t.trim(),validatedActionToken:e});if(Or(n.status))throw new Error(((a=n.data)==null?void 0:a.message)??"Failed to initiate email change");return{hash:n.data.hash}}),bae=Xe.createEffect(async({hash:t,code:e})=>{var a;const n=await Nt().http.put(hA,{hash:t,code:e});if(Or(n.status))throw new Error(((a=n.data)==null?void 0:a.message)??"Failed to validate email change code")}),vae=Xe.createEffect(async({newPassword:t,validatedActionToken:e})=>{var a;const n=await Nt().http.post(fA,{newPassword:t,validatedActionToken:e});if(Or(n.status))throw new Error(((a=n.data)==null?void 0:a.message)??"Failed to initiate adding a password");return{hash:n.data.hash}}),wae=Xe.createEffect(async({hash:t,code:e})=>{var a;const n=await Nt().http.put(fA,{hash:t,code:e});if(Or(n.status))throw new Error(((a=n.data)==null?void 0:a.message)??"Failed to validate the add-password code")}
34),_ae=Xe.createEffect(async({oldPassword:t,newPassword:e,validatedActionToken:n})=>{var o;const a=await Nt().http.post(pA,{oldPassword:t,newPassword:e,validatedActionToken:n});if(Or(a.status))throw new Error(((o=a.data)==null?void 0:o.message)??"Failed to initiate a password change");return{hash:a.data.hash}}),Sae=Xe.createEffect(async({hash:t,code:e})=>{var a;const n=await Nt().http.put(pA,{hash:t,code:e});if(Or(n.status))throw new Error(((a=n.data)==null?void 0:a.message)??"Failed to validate the change-password code")}),b$=Xe.createEffect(async()=>{await Nt().http.delete(e$)}),bp=Xe.createEffect(async()=>{try{const t=await Nt().http.get(t$);return f$(t.status)}catch(t){return console.error("Session sync could not reach the API",t),"unavailable"}}),v$=t=>new Promise(e=>setTimeout(e,t)),kae=Xe.createEffect(async()=>{let t=await bp();return t==="unavailable"&&(await v$(Nt().sessionSyncRetryDelayMs??n$),t=await bp()),t==="alive"&&sm(),t==="unavailable"&&sA(),t}),Eae=Xe.createEffect(async()=>{const t=Nt();i$.forEach(e=>t.cookies.remove(e)),o$.forEach(e=>t.storage.removeLocal(e)),s$.forEach(e=>t.storage.removeSession(e));try{await b$()}catch(e){console.error("Logout request failed; completing the local logout anyway",e)}Md(),t.stopSupport(),t.navigate(c$(t.origin,t.getLocalePrefix()))}),Tae=Xe.createEffect(async t=>{try{const{hash:e}=await g$(t);ow(e)}catch(e){sw(),yp(e instanceof Error?e.message:"Failed to initiate email verification")}}),Rae=Xe.createEffect(async t=>{const e=qF.getState();if(!e)return yp("Verification hash is missing"),!1;try{return await y$({hash:e,code:t}),lA(),!0}catch(n){return yp(n instanceof Error?n.message:"Failed to validate email verification code"),!1}}),Pn=(t,e)=>{const n=t==null?void 0:t.trim();return n||e},Gn={msMainUrl:Pn("https://api.whale.io","/ms-main"),socketUrl:Pn("wss://socket.whale.io","/ws"),baseDomains:Pn("","").split(",").map(t=>t.trim().toLowerCase()).filter(Boolean),defaultLang:Pn(void 0,"en"),isDev:!1,intercomAppId:Pn(void 0,"f9mxsxtb"),sportsbookChatId:Number(Pn(void 0,"781")),mainHostname:Pn(void 0,"whale.io"),geoCheckInDev:Pn(void 0,"false")==="true",stakingEnabled:Pn(void 0,"true")==="true",meshClientId:Pn(void 0,"1e929f7a-c1f1-4402-ec8c-08ddd5b136f2"),walletConnectProjectId:Pn("88db6d4c3aba694a306b8f48fe12dff8",""),botId:Pn("8095973312",""),botName:Pn("whaleplankton_bot","Whalegames_bot"),realUserMonitoringSid:Pn(void 0,""),lootboxDomains:Pn("babywhaletakeover.com","").split(",").map(t=>t.trim().toLowerCase()).filter(Boolean),collectiblesDeliveryEnabled:Pn(void 0,"true")!=="false"},ks=t=>{if(typeof document>"u")return"";const e=`${t}=`,n=decodeURIComponent(document.cookie);for(const a of n.split(";")){const o=a.trim();if(o.indexOf(e)===0)return o.substring(e.length)}return""},ld=(t,e,n={})=>{if(typeof document>"u")return;const{expiresInDays:a,path:o="/",domain:s,secure:u=!0,sameSite:c="Lax"}=n;let p=`${encodeURIComponent(t)}=${encodeURIComponent(e)}`;if(a){const d=new Date;d.setTime(d.getTime()+a*24*60*60*1e3),p+=`; expires=${d.toUTCString()}`}p+=`; path=${o}`,s&&(p+=`; domain=${s}`),u&&(p+="; secure"),c&&(p+=`; samesite=${c}`),document.cookie=p},_l=(t,e,n)=>{ld(t,"",{expiresInDays:-1,path:e,domain:n})},VE={meta:{title:"Whale",description:"Online Casino & Sportsbook - Whale"},themeColor:"#13161E"},w$={meta:{title:"Whale",description:"Online Casino & Sportsbook - Whale"},themeColor:"#13161E",siteCode:"whale",externalLinks:{discord:"https://discord.gg/whalegames",instagram:"https://www.instagram.com/whalesocials_tg/?igshid=MzRlODBiNWFlZA%3D%3D",x:"https://x.com/whalegames_en",community:"https://x.com/whalegames_en"}},_$={originDomain:"themontus.io",meta:{title:"The Montus",description:"Online Casino & Sportsbook - The Montus"},themeColor:"#C4AD8D",siteCode:"montus",externalLinks:{discord:"https://discord.gg/montus",instagram:"https://www.instagram.com/montus_io/",x:"https://x.com/montus_io",community:"https://t.me/themontus_bot"}},S$={originDomain:"crazycockroach.io",meta:{title:"Crazy Cockroach",description:"Online Casino & Sportsbook - Cockroach"},themeColor:"#9DFE00",siteCode:"cockroach",externalLinks:{discord:"https://discord.gg/cockroach",instagram:"https://www.instagram.com/cockroach_io/",x:"https://x.com/cockroach_io",community:"https://t.me/crazycockroach_bot"},promotions:{main:{1:"/casino/spribe/sbe_aviator"}}
34},cw=t=>({...VE,...t,meta:t.meta??VE.meta}),k$={...cw(S$),isMasterAffiliate:!0},E$={...cw(_$),isMasterAffiliate:!0},Iv={...cw(w$),isMasterAffiliate:!1},T$=[k$,E$,Iv],R$=({hostname:t,search:e,isDev:n})=>t===void 0?Iv:T$.find(a=>a.originDomain===t.toLowerCase())??Iv,vp=R$({hostname:typeof window>"u"?void 0:window.location.hostname,search:typeof window>"u"?"":window.location.search,isDev:Gn.isDev}),yA=vp.isMasterAffiliate,Cae=t=>!yA||!vp.originDomain?t:t.replace(/whale\.io/gi,vp.originDomain),bA=({hostname:t,search:e,isDev:n})=>t===void 0?!1:Gn.lootboxDomains.includes(t.toLowerCase()),C$=bA({hostname:typeof window>"u"?void 0:window.location.hostname,search:typeof window>"u"?"":window.location.search,isDev:Gn.isDev}),A$=!1,x$=(t,e=A$)=>bA(t)||!e,Aae=x$({hostname:typeof window>"u"?void 0:window.location.hostname,search:typeof window>"u"?"":window.location.search,isDev:Gn.isDev}),xae="collectibles",O$=["whale.io","lb.whale.io","tg-cdn-01.crashgame247.io","tg-cdn-02.crashgame247.io","tg-cdn-03.crashgame247.io","tg-cdn-04.crashgame247.io","whale-tg.crashgame247.io","alex-tunnel.rndlabz.com","local-web-with-prod.rndlabz.com"],I$=t=>{const e=t.split(":")[0].toLowerCase();return e==="localhost"||e==="127.0.0.1"||e==="0.0.0.0"||e==="[::1]"},Bd=(t,e)=>{const n=t.toLowerCase();return I$(n)||O$.includes(n)||e.includes(n)},Oae=t=>{const[e]=t.split(":"),n=e.toLowerCase().split(".").filter(Boolean);return n.length<=2?e:n.slice(-2).join(".")},vA=t=>t.replace(/^lb\./i,""),wA=t=>t!=="http:",D$=({host:t,protocol:e,env:n})=>t===void 0?n.msMain:Bd(t,n.baseDomains)?n.msMain.includes("http")?n.msMain:`${wA(e)?"https":"http"}://${t}${n.msMain}`:`https://api.${vA(t)}`,L$=({host:t,protocol:e,env:n})=>t===void 0?n.socketUrl:Bd(t,n.baseDomains)?n.socketUrl.startsWith("/")?`${wA(e)?"wss":"ws"}://${t}${n.socketUrl}`:n.socketUrl:`wss://socket.${vA(t)}`,N$=({host:t,env:e,runtimeConfig:n,sessionBotId:a})=>t===void 0?e.botId||null:Bd(t,e.baseDomains)?a||e.botId||null:(n==null?void 0:n.botId)||null,P$=({host:t,env:e,runtimeConfig:n})=>t===void 0||Bd(t,e.baseDomains)?e.botName:(n==null?void 0:n.botName)??e.botName,_A=t=>{if(t===null||typeof t!="object"||Array.isArray(t))return null;const{bot_id:e,bot_name:n,real_user_monitoring_sid:a}=t;return typeof e!="string"||typeof n!="string"?null:{botId:e,botName:n,realUserMonitoringSid:typeof a=="string"?a:""}},SA="configV2",W$="/config.json",M$=3e3,B$=t=>{if(typeof window>"u")return null;try{return window.localStorage.getItem(t)}catch{return null}},U$=(t,e)=>{if(!(typeof window>"u"))try{window.localStorage.setItem(t,e)}catch{}},F$=()=>{const t=B$(SA);if(!t)return null;try{return _A(JSON.parse(t))}catch{return null}};let wp=F$(),ub=null;const $$=()=>{if(typeof window>"u")return null;try{return window.sessionStorage.getItem("botId")}catch{return null}},z$=()=>({msMain:Gn.msMainUrl,socketUrl:Gn.socketUrl,baseDomains:Gn.baseDomains,botId:Gn.botId,botName:Gn.botName,realUserMonitoringSid:Gn.realUserMonitoringSid,mainHostname:Gn.mainHostname}),lm=()=>({host:typeof window>"u"?void 0:window.location.host,protocol:typeof window>"u"?void 0:window.location.protocol,env:z$(),runtimeConfig:wp,sessionBotId:$$()}),j$=()=>D$(lm()),Iae=()=>L$(lm()),G$=()=>N$(lm()),Dae=()=>P$(lm()),YE=async()=>{const t=new AbortController,e=setTimeout(()=>t.abort(),M$);try{const n=await fetch(W$,{signal:t.signal});if(!n.ok)return null;const a=await n.json(),o=_A(a);return o?(wp=o,U$(SA,JSON.stringify(a)),o):null}catch(n){return console.error("Failed to load the runtime domain config",n),null}finally{clearTimeout(e)}},H$=async()=>typeof window>"u"||Bd(window.location.host,Gn.baseDomains)?null:wp?(YE(),wp):(ub??(ub=YE().finally(()=>{ub=null})),ub),Ie={TrumpCurrency:"trump_currency",BonkCurrency:"bonk_currency",BtcCurrency:"btc_currency",EthCurrency:"eth_currency",CUSDCurrency:"cusd_currency",USD1Currency:"usd1_currency",SolCurrency:"sol_currency",WhaleTokenCurrency:"whale_token_currency",PixbyPayment:"pixby_payment",BnbPayment:"bnb_payment",UsdcPayment:"usdc_payment",OnlyTonNetwork:"only_ton_network",GlobalChat:"global_chat",Missions:"missions",Lootbox:"lootbox",TokenDashboard:"token_dashboard",Tribes:"tribes",BattlePass:"battlepass",EarnDashboard:"earn_dashboard",LandingPage:"landing_page",WhaleRoulette:"whale_roulette",SportsbookBeta:"sportsbook_beta",DailyStreaks:"daily_streaks",GTM:"gtm",Intercom:"intercom",AdForm:"adform",Swapped:"swapped",Meld:"meld",Mesh:"mesh",WalletConnect:"wallet_connect",Tournaments:"tournaments",Promotions:"promotions",WhaleTokenAnnounce:"whale_token_announce",TelegramAuth:"telegram_auth",VIPTransfer:"vip_transfer",UserProfile:"user_profile"},qE={VIP:"VIP",EMPLOYEE:"EMPLOYEE"},V$=new Set([Ie.AdForm,Ie.WalletConnect,Ie.BtcCurrency,Ie.CUSDCurrency,Ie.SolCurrency,Ie.TrumpCurrency,Ie.BonkCurrency,Ie.BnbPayment,Ie.UsdcPayment,Ie.EthCurrency,Ie.WhaleTokenCurrency,Ie.USD1Currency,Ie.TokenDashboard,Ie.Missions,Ie.GTM,Ie.Lootbox,Ie.Tribes,Ie.BattlePass,Ie.GlobalChat,Ie.Intercom,Ie.Tournaments,Ie.Promotions,Ie.WhaleTokenAnnounce,Ie.
34Swapped,Ie.LandingPage,Ie.Meld,Ie.VIPTransfer,Ie.Mesh,Ie.UserProfile]),Y$=new Set([Ie.AdForm,Ie.TokenDashboard,Ie.Missions,Ie.GTM,Ie.Lootbox,Ie.Tribes,Ie.BattlePass,Ie.GlobalChat,Ie.Intercom,Ie.DailyStreaks,Ie.Tournaments,Ie.Promotions,Ie.WhaleTokenAnnounce,Ie.LandingPage]),q$=new Set([Ie.Lootbox,Ie.BtcCurrency,Ie.EthCurrency,Ie.SolCurrency,Ie.CUSDCurrency,Ie.USD1Currency,Ie.TrumpCurrency,Ie.BonkCurrency,Ie.WhaleTokenCurrency,Ie.BnbPayment,Ie.UsdcPayment,Ie.WalletConnect,Ie.Meld,Ie.Mesh,Ie.Swapped,Ie.UserProfile,Ie.TelegramAuth]),Z$=(t,e)=>{var a,o,s,u;const n=t;return e.isLootboxOnlyDomain?q$.has(n):e.isMasterAffiliate&&Y$.has(n)?!1:n===Ie.VIPTransfer?((a=e.user)==null?void 0:a.role)!==qE.VIP:V$.has(n)?!0:n===Ie.PixbyPayment?((o=e.user)==null?void 0:o.role)===qE.EMPLOYEE||!!((s=e.user)!=null&&s.canUseBrl):n===Ie.SportsbookBeta?!!((u=e.user)!=null&&u.isSportsbookBetaEnabled):n===Ie.EarnDashboard?e.isMasterAffiliate&&e.isMasterAffiliateAdmin:n===Ie.TelegramAuth?!!e.botId:!1},K$=(t,e)=>{var n;return!!e.user&&!((n=e.user)!=null&&n.verifiedEmail)};let kA=()=>null,X$=()=>!1;const Lae=t=>{kA=t},EA=()=>({isLootboxOnlyDomain:C$,isMasterAffiliate:yA,isMasterAffiliateAdmin:X$(),user:kA(),botId:G$()}),TA=t=>Z$(t,EA()),Nae=t=>K$(t,EA()),RA=60,CA=[{key:"utmSource",cookieName:"utm_source"},{key:"utmMedium",cookieName:"utm_medium"},{key:"utmCampaign",cookieName:"utm_campaign"},{key:"utmContent",cookieName:"utm_content"},{key:"utmTerm",cookieName:"utm_term"},{key:"externalId",cookieName:Dt.EXTERNAL_ID},{key:"start",cookieName:Dt.START}],ZE=7,J$=[{urlParam:"param",cookieName:Dt.CLICK_ID},{urlParam:"tf_clickid",cookieName:Dt.TRAFFIC_MANAGER_CLICK_ID}],Q$=[Dt.TRAFFIC_MANAGER_AFFILIATE_ID,Dt.TRAFFIC_MANAGER_OFFER_NAME],ez="___adrsbl_nonce",rc="affiliatedByCode",tz=["start","ref"],nz="room_",Pae=()=>CA.reduce((t,{key:e,cookieName:n})=>(t[e]=ks(n),t),{}),rz=t=>{CA.forEach(({cookieName:e})=>{const n=t.get(e);n&&ld(e,n,{expiresInDays:RA,secure:!0})})},az=t=>{J$.forEach(({urlParam:e,cookieName:n})=>{const a=t.get(e);a&&ld(n,JSON.stringify({code:a,createdAt:Date.now(),sourceName:n}),{expiresInDays:ZE,secure:!0})}),Q$.forEach(e=>{const n=t.get(e);n&&ld(e,n,{expiresInDays:ZE,secure:!0})})},AA=t=>JSON.stringify({code:t,createdAt:Date.now(),sourceName:rc}),xA=t=>{window.sessionStorage.setItem(rc,t)},iz=t=>{if(typeof window>"u")return;const e=tz.reduce((a,o)=>a||(t.get(o)??""),"");if(!e)return;const n=AA(e);xA(n),ld(Dt.AFFILIATED_BY_CODE,n,{expiresInDays:RA,secure:!0})},Wae=t=>{typeof window>"u"||!t||window.sessionStorage.getItem(rc)||xA(AA(`${nz}${t}`))},Mae=()=>{if(typeof window>"u")return{};const t=window.localStorage.getItem(ez);return t?{addressableNonce:t}:{}},_p=t=>{if(typeof t!="string"||t.trim()==="")return null;try{const e=JSON.parse(t);return!e||!e.code||!e.createdAt||!e.sourceName?null:{code:e.code,createdAt:e.createdAt,sourceName:e.sourceName}}catch{return null}},oz=()=>{const t=_p(window.sessionStorage.getItem(rc));if(t)return t;const e=_p(ks(Dt.AFFILIATED_BY_CODE));if(e)return e;const n=ks(Dt.START);return n?{code:n,createdAt:0,sourceName:rc}:null},sz=()=>typeof window>"u"?[]:[oz(),_p(ks(Dt.CLICK_ID)),_p(ks(Dt.TRAFFIC_MANAGER_CLICK_ID))].filter(t=>t!==null),Bae=()=>{const t=sz();if(t.length===0)return null;const e=t.reduce((n,a)=>a.createdAt>n.createdAt?a:n,t[0]);return e.sourceName==="trafficManagerClickId"?{[e.sourceName]:e.code,offerName:ks(Dt.TRAFFIC_MANAGER_OFFER_NAME),affiliateId:ks(Dt.TRAFFIC_MANAGER_AFFILIATE_ID)}:{[e.sourceName]:e.code}},Uae=()=>{typeof window<"u"&&window.sessionStorage.removeItem(rc),_l(Dt.CLICK_ID),_l(Dt.TRAFFIC_MANAGER_CLICK_ID),_l(Dt.TRAFFIC_MANAGER_AFFILIATE_ID),_l(Dt.TRAFFIC_MANAGER_OFFER_NAME),_l(Dt.START),_l(Dt.AFFILIATED_BY_CODE)},Fae=()=>{var t;if(TA(Ie.AdForm))return(t=window.Adform)==null?void 0:t._uid},OA={EN:"en",RU:"ru",ES:"es",PT:"pt",ZH:"zh",KO:"ko",TR:"tr",AR:"ar",SQ:"sq",VN:"vi",ID:"id",FA:"fa",FR:"fr",UZ:"uz",IT:"it",FI:"fi"},IA=Object.values(OA),cm=t=>IA.includes(t),KE=Gn.defaultLang.toLowerCase().split(/[-_]/)[0],Cr=cm(KE)?KE:OA.EN,DA=t=>{const e=t==null?void 0:t.toLowerCase().split(/[-_]/)[0];return e&&cm(e)?e:null},db=t=>DA(t)??Cr,LA=(...t)=>{for(const e of t){const n=DA(e);if(n)return n}return Cr},lz=t=>null,NA="user_locale",PA=()=>{try{return typeof window>"u"?null:window.localStorage.getItem(NA)}catch{return null}},cz=t=>{try{window.localStorage.setItem(NA,t)}catch{}},uz=({pathname:t="",navigatorLanguage:e,storedLanguage:n,geoIpCountry:a})=>{var u,c;if(n)return db(n);
34const o=(u=t.split("/").filter(Boolean)[0])==null?void 0:u.toLowerCase();if(o&&cm(o))return o;const s=lz();return db(s||(((c=e==null?void 0:e.split("-")[0])==null?void 0:c.toLowerCase())??Cr))},WA=t=>uz({pathname:typeof window>"u"?"":window.location.pathname,navigatorLanguage:typeof navigator>"u"?null:navigator.language,storedLanguage:PA(),geoIpCountry:t}),MA=new RegExp(`^/(${IA.join("|")})(?=/|$)`),BA=t=>{const e=MA.exec(t);return e?e[1]:null},dz=t=>{const e=MA.exec(t);return e?t.slice(e[0].length)||"/":t},hz=t=>{const e=BA(t);return e?`/${e}`:""};let XE=null;const $ae=()=>(XE??(XE=typeof window>"u"?"":hz(window.location.pathname)),XE),fz=()=>typeof window>"u"?"/":dz(window.location.pathname);let vo=WA();const Dv=new Set,UA=()=>vo,pz=t=>(Dv.add(t),()=>{Dv.delete(t)}),uw=t=>(t===vo||(vo=t,Dv.forEach(e=>e(t))),vo);let FA=null;const mz=t=>(FA=t,uw(t)),zae=t=>FA||PA()?vo:uw(LA(t,vo)),gz=t=>{const e=LA(t,vo);return cz(e),uw(e)},yz=100;let Sp=[],kp=!1,Ku=[];const hb=(t,e)=>t.channels.includes(e),fb=t=>{var e;Sp=[...Sp,t],kp&&((e=t.init)==null||e.call(t))},JE=()=>{var e;if(kp)return;kp=!0;for(const n of Sp)(e=n.init)==null||e.call(n);const t=Ku;Ku=[];for(const n of t)$A(n)},Su=(t,e)=>{try{e()}catch(n){console.error(`analytics provider "${t.name}" threw`,n)}},$A=t=>{for(const e of Sp)switch(t.kind){case"track":hb(e,t.event.channel)&&Su(e,()=>e.track(t.event));break;case"pageView":hb(e,t.channel)&&e.pageView&&Su(e,()=>{var n;return(n=e.pageView)==null?void 0:n.call(e,t.path)});break;case"identify":hb(e,t.channel)&&e.identify&&Su(e,()=>{var n;return(n=e.identify)==null?void 0:n.call(e,t.identity)});break;case"reset":e.reset&&Su(e,()=>{var n;return(n=e.reset)==null?void 0:n.call(e)});break;case"flush":e.flush&&Su(e,()=>{var n;return(n=e.flush)==null?void 0:n.call(e)});break}},Ud=t=>{if(!kp){Ku.length<yz&&(Ku=[...Ku,t]);return}$A(t)},dw=(t,e)=>Ud({kind:"track",event:{name:t,properties:e,channel:"product"}}),QE=(t,e)=>Ud({kind:"track",event:{name:t,properties:e,channel:"marketing"}}),jae=t=>Ud({kind:"pageView",channel:"marketing",path:t}),Gae=(t,e)=>Ud({kind:"identify",channel:"product",identity:{userId:t,traits:e}}),bz=()=>Ud({kind:"reset"}),vz=Ns("analytics"),wz=vz.createEffect(()=>bz());ve({clock:Md,target:wz});var Fe=(t=>(t.WHALE="WHALE",t.TRUMP="TRUMP",t.BONK="BONK",t.BTC="BTC",t.NOT="NOT",t.ETH="ETH",t.USDT="USDT",t.CELO="CELO",t.TON="TON",t.CUSD="CUSD",t.USDC="USDC",t.ROOM_CURRENCY="-USD",t.BNB="BNB",t.BRL="BRL",t.SOL="SOL",t.MBTC="MBTC",t.USD1="USD1",t))(Fe||{}),mt=(t=>(t.USD="USD",t.EUR="EUR",t.INR="INR",t.TRY="TRY",t.AED="AED",t.MXN="MXN",t.VND="VND",t.NGN="NGN",t.BRL="BRL",t.PEN="PEN",t.COP="COP",t.CLP="CLP",t.IDR="IDR",t.KES="KES",t.ZAR="ZAR",t.THB="THB",t.MYR="MYR",t.PLN="PLN",t.SEK="SEK",t.SGD="SGD",t.GBP="GBP",t.RON="RON",t.HUF="HUF",t.JPY="JPY",t.AUD="AUD",t.HKD="HKD",t.NZD="NZD",t.CZK="CZK",t.DKK="DKK",t.CHF="CHF",t.CAD="CAD",t.BGN="BGN",t.ILS="ILS",t.NOK="NOK",t.PHP="PHP",t))(mt||{}),kr=(t=>(t.ERC20="ERC-20",t.TRC20="TRC-20",t.BEP20="BEP-20",t.BNB="BNB",t.BTC="BTC",t.LIGHTNING="LT",t.TON="TON",t.BRL="BRL",t.CELO="CELO",t.SOL="SOL",t.BSC="BSC",t))(kr||{});const Yf={"-USD":"null",TON:"TON",USDT:"TRC-20",BTC:"null",ETH:"ERC-20",SOL:"SOL",NOT:"NOT",CUSD:"CELO",BRL:"BRL",TRUMP:"SOL",USD1:"BEP-20",BONK:"SOL",BNB:"BEP-20",USDC:"TRC-20",WHALE:"SOL",CELO:"CELO",MBTC:"null"},Lv={BTC:8,ETH:8,SOL:5,BNB:5,MBTC:5,TRUMP:4,TON:3,CELO:3,WHALE:3,"-USD":2,BONK:2,NOT:2,USDT:2,CUSD:2,USDC:2,BRL:2,USD1:2},Hae=1e9,_z=1000000000n,ua={TrumpCurrency:"trump_currency",BonkCurrency:"bonk_currency",BtcCurrency:"btc_currency",EthCurrency:"eth_currency",CUSDCurrency:"cusd_currency",USD1Currency:"usd1_currency",SolCurrency:"sol_currency",WhaleTokenCurrency:"whale_token_currency",PixbyPayment:"pixby_payment",BnbPayment:"bnb_payment",UsdcPayment:"usdc_payment"},Ao={CURRENCY:"currency",NETWORK:"network",PREV_CURRENCY:"prevCurrency",PREV_NETWORK:"prevNetwork"},Sz=100,kz="/balance",Ez="/currency/rates/all",Tz="/wallets",eT="/wallets/create",Rz="/withdraw/request",Cz="/withdraw/last-successful",Az={BalanceUpdate:"balanceUpdate"};class tT extends Error{constructor(e){super(e),this.code=e,this.name="WithdrawalError"}}let Nv=null;const Vae=t=>{Nv=t},Yn=()=>
34{if(!Nv)throw new Error("@whale-client/dataflow-balance is not configured. Call configureBalanceDataflow() on app boot.");return Nv},Yae=(t,e)=>{if(!Number.isFinite(t))return 0;const n=Lv[e]??2,a=10n**BigInt(n),s=BigInt(Math.floor(t))*a/_z,u=s<0n,c=u?-s:s,p=c/a,d=(c%a).toString().padStart(n,"0"),m=n>0?`${p.toString()}.${d}`:p.toString();return parseFloat(u?`-${m}`:m)},qae=t=>t===Fe.TON?"GRAM":t,xz=(t=Fe.TON)=>Lv[t]||Lv[Fe.USDT],Oz=new Set(Object.values(mt)),Zae=(t,e,n)=>{const a=xz(e),o={minimumFractionDigits:typeof n=="number"?n:a,maximumFractionDigits:typeof n=="number"?n:a};e&&Oz.has(e)&&(o.currency=e,o.style="currency");const s=parseFloat(`${t||0}`);return new Intl.NumberFormat("en-US",o).format(isNaN(s)?0:s)},zA=(t,e=0)=>{const n=Math.pow(10,e);return Math.floor(t*n)/n},jA=4,Kae=(t,e)=>{const n=typeof t=="string"?t.replace(/,/g,"").trim():t,a=Number(n===""?0:n),o=Number.isFinite(a)?Math.max(a,0):0,s=Number.isFinite(e)?Math.max(e,0):1/0,u=Math.min(o,s);return{amount:zA(u,jA),atMax:u>=s}},Xae=({withdrawableAmount:t,maxAmount:e,percents:n})=>{const a=Math.max(t,0)*(n/100);return zA(Math.min(a,Number.isFinite(e)?Math.max(e,0):1/0),jA)},Jae=(t,e)=>t===Fe.TON?`ton://transfer/${e}`:e,Iz=[Fe.USDT,Fe.CUSD,Fe.USDC,Fe.USD1],Dz=t=>Iz.includes(t),Qae=(t,e)=>Dz(t)?1:e[t]??0,Lz=(t,e)=>{const{isFeatureEnabled:n}=Yn();switch(t){case Fe.BTC:return n(ua.BtcCurrency);case Fe.ETH:return n(ua.EthCurrency);case Fe.CUSD:return n(ua.CUSDCurrency);case Fe.SOL:return n(ua.SolCurrency);case Fe.BRL:return n(ua.PixbyPayment);case Fe.BNB:return n(ua.BnbPayment);case Fe.USDC:return n(ua.UsdcPayment);case Fe.USD1:return n(ua.USD1Currency);case Fe.WHALE:return n(ua.WhaleTokenCurrency);case Fe.TRUMP:return e==="withdraw"&&n(ua.TrumpCurrency);case Fe.BONK:return e==="withdraw"&&n(ua.BonkCurrency);case Fe.NOT:return e==="withdraw";default:return!0}},eie=(t,e)=>t.filter(n=>Lz(n,e)),um=t=>Object.values(Fe).includes(t),pb=t=>typeof t=="string"&&t.trim()!=="",Nz=t=>{if(!t||typeof t!="object")return null;const{currency:e,network:n,address:a}=t;return!pb(e)||!um(e)||!pb(n)||!pb(a)?null:{currency:e,network:n,address:a}},Pz={[kr.TRC20]:t=>`https://tronscan.org/#/transaction/${t}`,[kr.ERC20]:t=>`https://etherscan.io/tx/${t}`,[kr.BSC]:t=>`https://bscscan.com/tx/${t}`,[kr.BEP20]:t=>`https://bscscan.com/tx/${t}`,[kr.SOL]:t=>`https://solscan.io/tx/${t}`,[kr.TON]:t=>`https://tonscan.org/tx/${t}`},Wz={[Fe.TON]:t=>`https://tonscan.org/tx/${t}`,[Fe.NOT]:t=>`https://tonscan.org/tx/${t}`,[Fe.CELO]:t=>`https://explorer.celo.org/mainnet/tx/${t}`,[Fe.SOL]:t=>`https://solscan.io/tx/${t}`,[Fe.TRUMP]:t=>`https://solscan.io/tx/${t}`,[Fe.BONK]:t=>`https://solscan.io/tx/${t}`,[Fe.BTC]:t=>`https://www.blockchain.com/explorer/transactions/btc/${t}`,[Fe.ETH]:t=>`https://etherscan.io/tx/${t}`,[Fe.USD1]:t=>`https://etherscan.io/tx/${t}`,[Fe.CUSD]:t=>`https://celoscan.io/tx/${t}`,[Fe.BNB]:t=>`https://explorer.bnbchain.org/tx/${t}`},tie=(t,e,n)=>{if(t===Fe.USDT)return n?(Pz[e]??(o=>`https://usdt.tokenview.io/en/tx/${o}`))(n):null;if(!n)return null;const a=Wz[t];return a?a(n):`https://www.blockchain.com/explorer/search?search=${n}`},Mz=["/originals","/games/duck","/games/roulette","/games/mines","/games/dice","/games/blackjack","/games/crock-dentist","/games/keno","/games/crash","/games/tower","/games/plinko","/games/baccarat","/casino/whale/whale_duck","/casino/whale/whale_mines","/casino/whale/whale_dice","/casino/whale/whale_roulette","/casino/whale/whale_blackjack","/casino/whale/whale_crock_dentist","/casino/whale/whale_keno","/casino/whale/whale_crash","/casino/whale/whale_tower","/casino/whale/whale_plinko","/casino/whale/whale_baccarat","/casino/originals/whale_duck","/casino/originals/whale_mines","/casino/originals/whale_dice","/casino/originals/whale_roulette","/casino/originals/whale_blackjack","/casino/originals/whale_crock_dentist","/casino/originals/whale_keno","/casino/originals/whale_crash","/casino/originals/whale_tower","/casino/originals/whale_plinko","/casino/originals/whale_baccarat"],Bz=["/token"],Uz=t=>{const e=t.length>1&&t.endsWith("/")?t.slice(0,-1):t;return Mz.includes(e)||Bz.includes(e)},nie=({pathname:t,selectedCurrency:e})=>e===Fe.WHALE&&!Uz(t),Fz=(t,e)=>t===Fe.WHALE?e:t,Ve=Ns("balance"),$z=Ve.createEvent("balanceDataflowInitialised"),zz=Ve.createEvent("balancesRequested"),jz=Ve.createEvent("currencyRatesRequested"),Gz=Ve.createEvent("walletsRequested"),mb=Ve.createEvent("balancesReceived"),Pv=Ve.createEvent("balanceUpdated"),gb=Ve.createEvent("balanceCurrencySelected"),Hz=Ve.createEvent("previousBalanceCurrencyRestored"),Vz=Ve.createEvent("currencyDropdownToggled"),Yz=Ve.createEvent("currencyDropdownClosed"),qz=Ve.createEvent("balanceVisibilityChanged"),Zz=Ve.createEvent("currencyChangeDisabledChanged"),Kz=Ve.createEvent("restrictedCurrenciesChanged"),Xz=Ve.createEvent("userChannelSubscriptionRequested"),Jz=Ve.createEvent("userChannelSubscriptionDropped"),Qz=Ve.createEvent("withdrawalRequested"),nT=Ve.createEvent("withdrawalStateReset"),ej=Ve.createEvent("lastSuccessfulWithdrawalRequested"),so=Ve.createEvent("balanceStateReset");function cd(t,e){for(const n in t)e(t[n],n)}function cr(t,e){t.forEach(e)}function mn(t,e,n){if(!t)throw Error(`${n?n+": ":""}${e}`)}function No({node:t=[],from:e,source:n,parent:a=e||n,to:o,target:s,child:u=o||s,scope:c={},meta:p={},family:d={type:"regular"},regional:m}={}
34){const f=zu(a),b=zu(d.links),v=zu(d.owners),y=[];cr(t,S=>S&&ja(y,S));const g={id:uj(),seq:y,next:zu(u),meta:p,scope:c,family:{type:d.type||"crosslink",links:b,owners:v}};return cr(b,S=>ja(hm(S),g)),cr(v,S=>ja(fm(S),g)),cr(f,S=>ja(S.next,g)),g}function ac(t,e,n){let a,o=Ri,s=null,u=$t;if(t.target&&(e=t.params,n=t.defer,a=t.meta,o="page"in t?t.page:o,t.stack&&(s=t.stack),u=$l(t)||u,t=t.target),u&&$t&&u!==$t&&($t=null),Array.isArray(t))for(let y=0;y<t.length;y++)ns("pure",o,ia(t[y]),s,e[y],u,a);else ns("pure",o,ia(t),s,e,u,a);if(n&&!df)return;const c={isRoot:df,currentPage:Ri,scope:$t,isWatch:Zf,isPure:Kf};let p,d,m,f,b,v;df=0;e:for(;f=bj();){const{idx:y,stack:g,type:S}=f;m=g.node,Ri=b=g.page,$t=$l(g),b?v=b.reg:$t&&(v=$t.reg);const w=!!b,k=!!$t,T={fail:0,scope:m.scope};p=d=0;for(let R=y;R<m.seq.length&&!p;R++){const I=m.seq[R];if(I.order){const{priority:M,barrierID:L}=I.order,O=L?b?`${b.fullID}_${L}`:L:0;if(R!==y||S!==M){L?bb.has(O)||(bb.add(O),Mv(R,g,M,L)):Mv(R,g,M,0);continue e}L&&bb.delete(O)}switch(I.type){case"mov":{const L=I.data;let O;switch(L.from){case"stack":O=qf(g);break;case"a":case"b":O=g[L.from];break;case"value":O=L.store;break;case"store":if(v&&!v[L.store.id])if(w){const W=QA(b,L.store.id);g.page=b=W,W?v=W.reg:k?(sc($t,L.store,0,1,L.softRead),v=$t.reg):v=void 0}else k&&sc($t,L.store,0,1,L.softRead);O=Xu(v&&v[L.store.id]||L.store)}switch(L.to){case"stack":g.value=O;break;case"a":case"b":g[L.to]=O;break;case"store":wj(b,$t,L.target,0).current=O}break}case"compute":const M=I.data;if(M.fn){Zf=m.meta.op==="watch",Kf=M.pure;const L=M.safe?(0,M.fn)(qf(g),T.scope,g):Sj(T,M.fn,g);M.filter?d=!L:g.value=L,Zf=c.isWatch,Kf=c.isPure}}p=T.fail||d}if(!p){const R=qf(g),I=$l(g);if(cr(m.next,M=>{ns("child",b,M,g,R,I)}),I){m.meta.needFxCounter&&ns("child",b,I.fxCount,g,R,I),m.meta.storeChange&&ns("child",b,I.storeChange,g,R,I),m.meta.warnSerialize&&ns("child",b,I.warnSerializeNode,g,R,I);const M=I.additionalLinks[m.id];M&&cr(M,L=>{ns("child",b,L,g,R,I)})}}}df=c.isRoot,Ri=c.currentPage,$t=$l(c)}function GA(t,e="combine"){let n=e+"(",a="",o=0;return cd(t,s=>{o<25&&(s!=null&&(n+=a,n+=ic(s)?HA(s).fullName:s.toString()),o+=1,a=", ")}),n+")"}function tj(t,e){let n,a;const o=t;if(e){const s=HA(e);t.length===0?(n=s.path,a=s.fullName):(n=s.path.concat([t]),a=s.fullName.length===0?t:s.fullName+"/"+t)}else n=t.length===0?[]:[t],a=t;return{shortName:o,fullName:a,path:n}}function Po(t,e){if(!e||!e.name&&!e.named&&!e.loc)return t;let n=`[${t}]`;const a=e.named||e.name;a&&(n+=` unit '${a}'`);const o=e.loc;return!a&&o&&(n+=` (${o.file}:${o.line}:${o.column})`),n}function hw(t,e){const n=e?t:t[0];ZA(n);let a=n.or;const o=n.and;if(o){const s=o[0];if(ka(s)&&"and"in s){const u=hw(o,e);t=u[0],a={...a,...u[1]}}else t=o}return[t,a]}function nj(t){const e=()=>t();return e.unsubscribe=()=>t(),e}function ba(t,...e){}function Sa(t,e){const n=Oo({or:e,and:typeof t=="string"?{name:t}:t}),a=Po("event",n),o=(c,...p)=>(mn(!gs(o,"derived"),"call of derived event is not supported, use createEvent instead",a),mn(!Kf,"unit call from pure function is not supported, use operators like sample instead",a),Ri?((d,m,f,b)=>{const v=Ri;oT(null);const g=d.create(f,b);return oT(v),g})(o,s,c,p):o.create(c,p)),s=fj(),u=Object.assign(o,{graphite:No({meta:gw(n.actualOp||"event",o,n),regional:1}),create:c=>(ac({target:o,params:c,scope:$t}),c),watch:c=>tx(o,c),map:c=>vb(o,"map",c,[Ti()]),filter:c=>vb(o,"filter",c.fn?c:c.fn,[Ti(mm,1)]),filterMap:c=>vb(o,"filterMap",c,[Ti(),Ka(p=>!na(p),1)]),prepend(c){mn(o.targetable,".prepend of derived event is not supported, call source event instead",a);const p=Sa("* â "+o.shortName,{parent:Es(o)});return ba("eventPrepend",ia(p)),Ps(p,o,[Ti()],"prepend",c),Ej(o,p),p}});return n!=null&&n.domain&&n.domain.hooks.event(u),Ei(u,"id",u.graphite.id),qA(u.graphite),u}function rT(t,e,n,a,o){return Tp(n,`${o} ${e}`,"first argument"),mn(Rr(a),"second argument should be a function",o),ud(!gs(t,"derived"),`${e} in derived store`,`${e} in store created via createStore`,o),cr(Array.isArray(n)?n:[n],s=>{t.off(s),Ep(t).set(s,ex(nx(s,t,"on",gj,a)))}),t}function Fd(t,e){const n=Oo(e),a=oc(t),o=Po("store",n),s=Sa({named:"updates",derived:1});ba("storeBase",a);const u=a.id,c="skipVoid"in n,p=c&&!n.skipVoid;ud(!(c&&n.skipVoid),"{skipVoid: true}","updateFilter",o);const d={subscribers:new Map,updates:s,defaultState:t,stateRef:a,getState(){let w,k=a;if(Ri){let T=Ri;for(;T&&!T.reg[u];)T=Es(T);T&&(w=T)}return!w&&$t&&(sc($t,a,1),w=$t),w&&(k=w.reg[u]),Xu(k)},setState:w=>ac({target:d,params:w,defer:1,scope:$t}),reset:(...w)=>(mn(d.targetable,".reset of derived store is not supported",o),cr(w,k=>rT(d,".reset",k,()=>d.defaultState,o)),d),on:(w,k)=>(mn(d.targetable,".on of derived store is not supported",o),rT(d,".on",w,k,o)),off(w){const k=Ep(d).get(w);return k&&(k(),Ep(d).delete(w)),d},map(w,k){let T,R;ka(w)&&(T=w,w=w.fn);const I=d.getState(),M=na(I);(!M||M&&p)&&(R=w(I));
34const L=Fd(R,{name:`${d.shortName} â *`,derived:1,...k,and:T}),O=nx(d,L,"map",mm,w);return Wv(Za(L),{type:"map",fn:w,from:a}),Za(L).noInit=1,ba("storeMap",a,O),L},watch(w,k){if(ud(!k,"watch second argument","sample",o),!k||!ic(w)){const T=tx(d,w);return ba("storeWatch",a,w)||w(d.getState()),T}return mn(Rr(k),"second argument should be a function",o),w.watch(T=>k(d.getState(),T))}},m=gw("store",d,n),f=d.defaultConfig.updateFilter;d.graphite=No({scope:{state:a,fn:f},node:[Ka((w,k,T)=>(T.scope&&!T.scope.reg[a.id]&&(T.b=1),w)),ys(a),Ka((w,k,{a:T,b:R})=>{const I=na(w);return I&&!c&&console.error(`${o}: ${Xf}`),(I&&p||!I)&&(w!==T||R)},1),f&&Ti(KA,1),fa({from:"stack",target:a})],child:s,meta:{...m,defaultState:t},regional:1}),Ei(d,"id",d.graphite.id),Ei(d,"rootStateRefId",u);const b=gs(d,"serialize"),v=gs(d,"derived"),y=b==="ignore",g=gs(d,"sid");g&&(Ei(d,"storeChange",1),a.sid=g),g||y||v||Ei(d,"warnSerialize",1);const S=na(t);return mn(v||!S||S&&p,Xf,o),v&&S&&!c&&console.error(`${o}: ${Xf}`),dd(d,[s]),n!=null&&n.domain&&n.domain.hooks.store(d),v||(d.reinit=Sa({named:"reinit"}),d.reset(d.reinit)),a.meta=d.graphite.meta,qA(d.graphite),d}function Vn(...t){let e,n,a;[t,a]=hw(t);const o=Po("combine",a),s=t[t.length-1],u=t.length>1&&!xo(s)&&ka(s),c=u&&s,p=u?t[t.length-2]:s;let d,m,f;if(Rr(p)?(n=t.slice(0,u?-2:-1),e=p):n=t,n.length===1){const b=n[0];xo(b)||(d=b,m=1)}if(!m&&(d=n,e)){f=1;const b=e;e=v=>b(...v)}return mn(ka(d),`${o}: shape should be an object`),Tj(Array.isArray(d),!f,d,a,e,c)}function rj(){const t={};return t.req=new Promise((e,n)=>{t.rs=e,t.rj=n}),t.req.catch(()=>{}),t}function aj(t,e={}){const n=Oo(Rr(t)?{handler:t}:t,e),a=Po("effect",n),o=Sa(Rr(t)?{handler:t}:t,{...e,actualOp:"effect"}),s=ia(o);Ei(s,"op",o.kind="effect"),o.use=y=>(mn(Rr(y),".use argument should be a function",a),f.scope.handler=y,o),o.use.getCurrent=()=>f.scope.handler;const u=o.finally=Sa({named:"finally",derived:1}),c=o.done=u.filterMap({named:"done",fn({status:y,params:g,result:S}){if(y==="done")return{params:g,result:S}}}),p=o.fail=u.filterMap({named:"fail",fn({status:y,params:g,error:S}){if(y==="fail")return{params:g,error:S}}}),d=o.doneData=c.map({named:"doneData",fn:({result:y})=>y}),m=o.failData=p.map({named:"failData",fn:({error:y})=>y}),f=No({scope:{handler:o.defaultConfig.handler||(()=>mn(0,`no handler used in ${o.compositeName.fullName}`))},node:[Ka((y,g,S)=>{let w=g.handler;const k=$l(S);if(k){const T=k.handlers.unitMap.get(o)||k.handlers.sidMap[o.sid];T&&(w=T)}return y.handler=w,y},0,1),Ka((y,g,S)=>{if(g.runnerFn&&!g.runnerFn(y,null,S))return;const{params:w,req:k,handler:T,args:R=[w]}=y,I=lT(w,k,1,u,S),M=lT(w,k,0,u,S),[L,O]=Rj(T,M,R);L&&(ka(O)&&Rr(O.then)?O.then(I,M):I(O))},0,1)],meta:{op:"fx",fx:"runner"}});s.scope.runner=f,ja(s.seq,Ka((y,{runner:g},S)=>{const w=Es(S)?{params:y,req:{rs(k){},rj(k){}}}:y;return S.meta||(S.meta={fxID:dj()}),ac({target:g,params:w,defer:1,scope:$l(S),meta:S.meta}),w.params})),o.create=y=>{const g=rj(),S={params:y,req:g};if($t&&!Zf){const w=$t;g.req.finally(()=>{vj(w)}).catch(()=>{})}return ac({target:o,params:S,scope:$t}),g.req};const b=o.inFlight=Fd(0,{serialize:"ignore",named:(gs(o,"name")||o.graphite.id)+".inFlight"}).on(o,y=>y+1).on(u,y=>y-1).map({fn:y=>y,named:"inFlight"});Ei(u,"needFxCounter","dec"),Ei(o,"needFxCounter",1);const v=o.pending=b.map({fn:y=>y>0,named:"pending"});return dd(o,[u,c,p,d,m,v,b]),n!=null&&n.domain&&n.domain.hooks.effect(o),o}function dm(t,e){const n=Oo({or:e,and:typeof t=="string"?{name:t}:t}),a=No({family:{type:"domain"},regional:1,parent:(n==null?void 0:n.domain)||(n==null?void 0:n.parent)}),o={history:{},graphite:a,hooks:{}};a.meta=gw("domain",o,{parent:(n==null?void 0:n.domain)||(n==null?void 0:n.parent),or:{...n,derived:1}}),cd({Event:Sa,Effect:aj,Store:Fd,Domain:dm},(u,c)=>{const p=c.toLowerCase(),d=Sa({named:`on${c}`});o.hooks[p]=d;const m=new Set;o.history[`${p}s`]=m,d.create=f=>(ac(d,f),f),ja(ia(d).seq,Ka((f,b,v)=>(v.scope=null,f))),d.watch(f=>{dd(o,[f]),m.add(f),f.ownerSet||(f.ownerSet=m),Es(f)||(f.parent=o)}),dd(o,[d]),o[`onCreate${c}`]=f=>(cr(m,f),d.watch(f)),o[`create${c}`]=o[p]=(f,b)=>{const v=Oo({and:b,or:f});return v!=null&&v.domain?u(f,b):d(u(f,{parent:o,or:v}))}});const s=Es(o);return s&&cd(o.hooks,(u,c)=>Ps(u,s.hooks[c])),n!=null&&n.domain&&n.domain.hooks.domain(o),o}function ij(t,e){const n=Po("merge",e);Tp(t,n,"first argument");const a=Sa({name:GA(t,"merge"),derived:1,and:e});return Ps(t,a,[],"merge"),a}function oj(t,e){let n=0;return cr(Aj,a=>{a in t&&(mn(t[a]!=null,rx(e,a)),n=1)}),n}function ie(...t){let e,n,a,o,[[s,u,c],p]=hw(t),d=1;const m=Po("sample",p);return na(u)&&ka(s)&&oj(s,m)&&(u=s.clock,c=s.fn,"batch"in s?d=s.batch:(ud(!("greedy"in s),"greedy in sample","batch",m),d=!s.greedy),o=s.filter,e=s.target,n=s.name,a=s.sid,s=s.source),xj("sample",u,s,o,e,c,n,p,d,1,0,a)}const sj=typeof Symbol<"u"&&Symbol.observable||"@@observable",ia=t=>t.graphite||t,hm=t=>t.family.owners,fm=t=>t.family.links,Za=t=>t.stateRef,qf=t=>t.value,Ep=t=>t.subscribers,Es=t=>t.parent,$l=t=>t.scope,gs=(t,e)=>ia(t).meta[e],Ei=(t,e,n)=>ia(t).meta[e]=n,HA=t=>t.compositeName,ic=t=>(Rr(t)||ka(t))&&"kind"in t,VA=t=>e=>ic(e)&&e.kind===t,xo=VA("store"),lj=VA("domain"),yb=(t,e)=>{const n=t.indexOf(e);n!==-1&&t.splice(n,1)},ja=(t,e)=>t.push(e),ud=(t,e,n,a)=>!t&&console.error(`${a?a+": ":""}${e} is deprecated${n?`, use ${n} instead`:""}`),pm=()=>{let t=0;return()=>""+ ++t},cj=pm(),YA=pm(),uj=pm(),dj=pm();let hj=null;const qA=t=>{},fj=()=>hj,pj=t=>t,dd=(t,e)=>{const n=ia(t);cr(e,a=>{const o=ia(a);n.family.type!=="domain"&&(o.family.type="crosslink"),ja(hm(o),n),ja(fm(n),o)})},zu=(t=[])=>(Array.isArray(t)?t:[t]).flat().map(ia),ka=t=>typeof t=="object"&&t!==null,Rr=t=>typeof t=="function",na=t=>t===void 0,ZA=t=>mn(ka(t)||Rr(t),"expect first argument be an object"),aT=(t,e,n,a)=>mn(!(!ka(t)&&!Rr(t)||!("family"in t)&&!("graphite"in t)),`${e}: expect ${n} to be a unit (store, event or effect)${a}
34`),Tp=(t,e,n)=>{Array.isArray(t)?cr(t,(a,o)=>aT(a,e,`${o} item of ${n}`,"")):aT(t,e,n," or array of units")},mj=(t,e,n="target")=>cr(zu(e),a=>mn(!gs(a,"derived"),`${t}: derived unit in "${n}" is not supported, use createStore/createEvent instead"`)),KA=(t,{fn:e},{a:n})=>e(t,n),gj=(t,{fn:e},{a:n})=>e(n,t),mm=(t,{fn:e})=>e(t),XA=(t,e,n,a)=>{const o={id:YA(),type:t,data:e};return n&&(o.order={priority:n},a&&(o.order.barrierID=++yj)),o};let yj=0;const fa=({from:t="store",store:e,target:n,to:a=n?"store":"stack",batch:o,priority:s})=>XA("mov",{from:t,store:e,to:a,target:n},s,o),fw=({fn:t,batch:e,priority:n,safe:a=0,filter:o=0,pure:s=0})=>XA("compute",{fn:t,safe:a,filter:o,pure:s},n,e),JA=({fn:t})=>fw({fn:t,priority:"effect"}),Ka=(t,e,n)=>fw({fn:t,safe:1,filter:e,priority:n&&"effect"}),ys=(t,e,n)=>fa({store:t,to:e?"stack":"a",priority:n&&"sampler",batch:1}),Ti=(t=mm,e)=>fw({fn:t,pure:1,filter:e}),oc=t=>({id:YA(),current:t,initial:t}),Xu=({current:t})=>t,Wv=(t,e)=>{t.before||(t.before=[]),ja(t.before,e)};let zl=null;const pw=(t,e)=>{if(!t)return e;if(!e)return t;let n;return(t.v.type===e.v.type&&t.v.id>e.v.id||Bv(t.v.type)>Bv(e.v.type))&&(n=t,t=e,e=n),n=pw(t.r,e),t.r=t.l,t.l=n,t},mw=[];let iT=0;for(;iT<6;)ja(mw,{first:null,last:null,size:0}),iT+=1;const bj=()=>{for(let t=0;t<6;t++){const e=mw[t];if(e.size>0){if(t===3||t===4){e.size-=1;const a=zl.v;return zl=pw(zl.l,zl.r),a}e.size===1&&(e.last=null);const n=e.first;return e.first=n.r,e.size-=1,n.v}}},ns=(t,e,n,a,o,s,u)=>Mv(0,{a:null,b:null,node:n,parent:a,value:o,page:e,scope:s,meta:u},t,0),Mv=(t,e,n,a)=>{const o=Bv(n),s=mw[o],u={v:{idx:t,stack:e,type:n,id:a},l:null,r:null};o===3||o===4?zl=pw(zl,u):(s.size===0?s.first=u:s.last.r=u,s.last=u),s.size+=1},Bv=t=>{switch(t){case"child":return 0;case"pure":return 1;case"read":return 2;case"barrier":return 3;case"sampler":return 4;case"effect":return 5;default:return-1}},bb=new Set;let $t,df=1,Zf=0,Kf=0,Ri=null;const vj=t=>{$t=t},oT=t=>{Ri=t},QA=(t,e)=>{if(t){for(;t&&!t.reg[e];)t=t.parent;if(t)return t}return null},wj=(t,e,n,a)=>{const o=QA(t,n.id);return o?o.reg[n.id]:e?(sc(e,n,a),e.reg[n.id]):n},_j=t=>t,sc=(t,e,n,a,o)=>{const s=t.reg;if(s[e.id])return;const u=e.sid,c={id:e.id,current:e.initial,meta:e.meta};if(c.id in t.values.idMap)c.current=t.values.idMap[c.id];else if(u&&u in t.values.sidMap&&!(u in t.sidIdMap)){var p;const d=e==null||(p=e.meta)===null||p===void 0?void 0:p.serialize;c.current=(t.fromSerialize&&d!=="ignore"&&(d==null?void 0:d.read)||_j)(t.values.sidMap[u])}else if(e.before&&!o){let d=0;const m=n||!e.noInit||a;cr(e.before,f=>{switch(f.type){case"map":{const b=f.from;if((b||f.fn)&&(b&&sc(t,b,n,a),m)){const v=b&&s[b.id].current;c.current=f.fn?f.fn(v):v}break}case"field":sc(t,f.from,n,a),d||(d=1,c.current=Array.isArray(c.current)?[...c.current]:{...c.current}),m&&(c.current[f.field]=s[s[f.from.id].id].current)}})}u&&(t.sidIdMap[u]=e.id),s[e.id]=c},Sj=(t,e,n)=>{try{return e(qf(n),t.scope,n)}catch(a){console.error(a),t.fail=1,t.failReason=a}},Oo=(t,e={})=>(ka(t)&&(Oo(t.or,e),cd(t,(n,a)=>{na(n)||a==="or"||a==="and"||(e[a]=n)}),Oo(t.and,e)),e),sT=(t,e)=>{yb(t.next,e),yb(hm(t),e),yb(fm(t),e)},Uv=(t,e,n)=>{let a;t.next.length=0,t.seq.length=0,t.scope=null;let o=fm(t);for(;a=o.pop();)sT(a,t),(e||n&&t.meta.op!=="sample"||a.family.type==="crosslink")&&Uv(a,e,a.meta.op!=="on"&&n);for(o=hm(t);a=o.pop();)sT(a,t),n&&a.family.type==="crosslink"&&Uv(a,e,a.meta.op!=="on"&&n)},ku=t=>t.clear(),kj=(t,{deep:e}={})=>{let n=0;if(t.ownerSet&&t.ownerSet.delete(t),xo(t))ku(Ep(t));else if(lj(t)){n=1;const a=t.history;ku(a.events),ku(a.effects),ku(a.stores),ku(a.domains)}Uv(ia(t),!!e,n)},ex=t=>nj(()=>kj(t)),Ps=(t,e,n,a,o)=>No({node:n,parent:t,child:e,scope:{fn:o},meta:{op:a},family:{owners:[t,e],links:e},regional:1}),tx=(t,e)=>(mn(Rr(e),".watch argument should be a function"),ex(No({scope:{fn:e},node:[JA({fn:mm})],parent:t,meta:{op:"watch"},family:{owners:t},regional:1}))),Ej=(t,e,n="event")=>{Es(t)&&Es(t).hooks[n](e)},gw=(t,e,n)=>{const a=Oo(n),o=t==="domain",s=cj(),{sid:u=null,named:c=null,domain:p=null,parent:d=p}=a,m=c||a.name||(o?"":s),f=tj(m,d),b={op:e.kind=t,name:e.shortName=m,sid:e.sid=pj(u),named:c,unitId:e.id=s,seri
34alize:a.serialize,derived:a.derived,config:a};return e.targetable=!a.derived,e.parent=d,e.compositeName=f,e.defaultConfig=a,e.getType=()=>(ud(0,"getType","compositeName.fullName"),f.fullName),!o&&(e.subscribe=v=>(ZA(v),e.watch(Rr(v)?v:y=>v.next&&v.next(y))),e[sj]=()=>e),b},vb=(t,e,n,a)=>{let o;ka(n)&&(o=n,n=n.fn);const s=Sa({name:`${t.shortName} â *`,derived:1,and:o});return Ps(t,s,a,e,n),s},Xf="undefined is used to skip updates. To allow undefined as a value provide explicit { skipVoid: false } option",nx=(t,e,n,a,o)=>{const s=Za(e),u=fa({store:s,to:"a",priority:"read"});n==="map"&&(u.data.softRead=1);const c=[u,Ti(a)];return ba("storeOnMap",s,c,xo(t)&&Za(t)),Ps(t,e,c,n,o)},Tj=(t,e,n,a,o,s)=>{const u=Po("combine",a),c=t?w=>[...w]:w=>({...w}),p=t?[]:{},d=c(p),m=oc(d),f=oc(1);m.type=t?"list":"shape",m.noInit=1,ba("combineBase",m,f);const b=Fd(d,{name:GA(n),derived:1,...s,and:a}),v=Za(b);v.noInit=1,Ei(b,"isCombine",1);const y=ys(m);y.order={priority:"barrier"};const g=fa({store:v,to:"b",priority:"read"});g.data.softRead=1;const S=[Ka((w,k,T)=>(T.scope&&!T.scope.reg[m.id]&&(T.c=1),w)),y,fa({store:f,to:"b"}),Ka((w,{key:k},T)=>{if(T.c||w!==T.a[k])return e&&T.b&&(T.a=c(T.a)),T.a[k]=w,1},1),fa({from:"a",target:m}),fa({from:"value",store:0,target:f}),fa({from:"value",store:1,target:f,priority:"barrier",batch:1}),ys(m,1,1),o&&Ti(),g];if(cd(n,(w,k)=>{if(!xo(w))return mn(!ic(w)&&!na(w),`combine expects a store in a field ${k}`,u),void(d[k]=p[k]=w);p[k]=w.defaultState,d[k]=w.getState();const T=Ps(w,b,S,"combine",o);T.scope.key=k;const R=Za(w);Wv(m,{type:"field",field:k,from:R}),ba("combineField",R,T)}),b.defaultShape=n,Wv(v,{type:"map",from:m,fn:o}),o){const w=o(d);!na(w)||s&&"skipVoid"in s||console.error(`${u}: ${Xf}`),v.current=w,v.initial=w,b.defaultState=w}else b.defaultState=p;return b},Rj=(t,e,n)=>{try{return[1,t(...n)]}catch(a){return e(a),[0,null]}},lT=(t,e,n,a,o)=>s=>{ac({target:[a,Cj],params:[n?{status:"done",params:t,result:s}:{status:"fail",params:t,error:s},{value:s,fn:n?e.rs:e.rj}],defer:1,page:o.page,scope:o.scope,meta:o.meta})},Cj=No({node:[JA({fn:({fn:t,value:e})=>t(e)})],meta:{op:"fx",fx:"sidechain"}}),Aj=["source","clock","target"],rx=(t,e)=>t+`: ${e} should be defined`,xj=(t,e,n,a,o,s,u,c,p,d,m,f)=>{const b=Po(t,c),v=!!o;mn(!na(n)||!na(e),rx(b,"either source or clock"));let y=0;na(n)?y=1:ic(n)||(n=Vn(n)),na(e)?e=n:(Tp(e,b,"clock"),Array.isArray(e)&&(e=ij(e))),y&&(n=e),c||u||(u=n.shortName);let g="none";a&&(ic(a)?g="unit":(mn(Rr(a),"`filter` should be function or unit"),g="fn")),o?(Tp(o,b,"target"),mj(b,o)):g==="none"&&d&&xo(n)&&xo(e)?o=Fd(s?s(Xu(Za(n)),Xu(Za(e))):Xu(Za(n)),{name:u,sid:f,or:c}):(o=Sa({name:u,derived:1,or:c}
34),ba("sampleTarget",ia(o)));const S=oc();let w=[];if(g==="unit"){const[R,I,M]=cT(a,o,e,S,t);M||w.push(...wb(I)),w.push(...wb(R))}const k=[];if(y)p&&k.push(ys(S,1,1));else{const[R,I,M]=cT(n,o,e,S,t);M||k.push(...wb(I)),k.push(ys(R,1,p))}const T=Ps(e,o,[ba(),fa({from:"stack",target:S}),...k,...w,ys(S),g==="fn"&&Ti((R,I,{a:M})=>a(R,M),1),s&&Ti(KA),ba("sampleSourceUpward",v)],t,s);return dd(n,[T]),Object.assign(T.meta,c,{joint:1}),o},wb=t=>[ys(t),Ka((e,n,{a})=>a,1)],cT=(t,e,n,a,o)=>{const s=xo(t),u=s?Za(t):oc(),c=oc(s);return s||No({parent:t,node:[fa({from:"stack",target:u}),fa({from:"value",store:1,target:c})],family:{owners:[t,e,n],links:e},meta:{op:o},regional:1}),ba("sampleSource",c,u,a),[u,c,s]};Sa("initAppCache");const hf=t=>{try{const e=globalThis;return(t==="local"?e.localStorage:e.sessionStorage)??null}catch{return null}},ax=t=>{const e=c=>{const p=hf(t);if(!p)return null;try{return p.getItem(c)}catch{return null}},n=(c,p)=>{const d=hf(t);if(!d)return!1;try{return d.setItem(c,p),!0}catch{return!1}};return{area:t,get:e,set:n,remove:c=>{const p=hf(t);if(!p)return!1;try{return p.removeItem(c),!0}catch{return!1}},getJson:(c,p)=>{const d=e(c);if(d===null)return p;try{return JSON.parse(d)}catch{return p}},setJson:(c,p)=>{let d;try{d=JSON.stringify(p)}catch{return!1}return n(c,d)},keys:()=>{const c=hf(t);if(!c)return[];try{const p=[];for(let d=0;d<c.length;d+=1){const m=c.key(d);m!==null&&p.push(m)}return p}catch{return[]}}}},rie=ax("local"),_b=ax("session"),Ts=globalThis||void 0||self;function ix(t,e){return function(){return t.apply(e,arguments)}}const{toString:Oj}=Object.prototype,{getPrototypeOf:yw}=Object,{iterator:gm,toStringTag:ox}=Symbol,ym=(t=>e=>{const n=Oj.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ta=t=>(t=t.toLowerCase(),e=>ym(e)===t),bm=t=>e=>typeof e===t,{isArray:Sc}=Array,lc=bm("undefined");function $d(t){return t!==null&&!lc(t)&&t.constructor!==null&&!lc(t.constructor)&&ur(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const sx=Ta("ArrayBuffer");function Ij(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&sx(t.buffer),e}const Dj=bm("string"),ur=bm("function"),lx=bm("number"),zd=t=>t!==null&&typeof t=="object",Lj=t=>t===!0||t===!1,Jf=t=>{if(ym(t)!=="object")return!1;const e=yw(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(ox in t)&&!(gm in t)},Nj=t=>{if(!zd(t)||$d(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},Pj=Ta("Date"),Wj=Ta("File"),Mj=Ta("Blob"),Bj=Ta("FileList"),Uj=t=>zd(t)&&ur(t.pipe),Fj=t=>{let e;return t&&(typeof FormData=="function"&&t instanceof FormData||ur(t.append)&&((e=ym(t))==="formdata"||e==="object"&&ur(t.toString)&&t.toString()==="[object FormData]"))},$j=Ta("URLSearchParams"),[zj,jj,Gj,Hj]=["ReadableStream","Request","Response","Headers"].map(Ta),Vj=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jd(t,e,{allOwnKeys:n=!1}={}){if(t===null||typeof t>"u")return;let a,o;if(typeof t!="object"&&(t=[t]),Sc(t))for(a=0,o=t.length;a<o;a++)e.call(null,t[a],a,t);else{if($d(t))return;const s=n?Object.getOwnPropertyNames(t):Object.keys(t),u=s.length;let c;for(a=0;a<u;a++)c=s[a],e.call(null,t[c],c,t)}}function cx(t,e){if($d(t))return null;e=e.toLowerCase();const n=Object.keys(t);let a=n.length,o;for(;a-- >0;)if(o=n[a],e===o.toLowerCase())return o;return null}const fs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:Ts,ux=t=>!lc(t)&&t!==fs;function Fv(){const{caseless:t,skipUndefined:e}=ux(this)&&this||{},n={},a=(o,s)=>{const u=t&&cx(n,s)||s;Jf(n[u])&&Jf(o)?n[u]=Fv(n[u],o):Jf(o)?n[u]=Fv({},o):Sc(o)?n[u]=o.slice():(!e||!lc(o))&&(n[u]=o)};for(let o=0,s=arguments.length;o<s;o++)arguments[o]&&jd(arguments[o],a);return n}const Yj=(t,e,n,{allOwnKeys:a}={})=>(jd(e,(o,s)=>{n&&ur(o)?t[s]=ix(o,n):t[s]=o},{allOwnKeys:a}),t),qj=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),Zj=(t,e,n,a)=>{t.prototype=Object.create(e.prototype,a),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),n&&Object.assign(t.prototype,n)},Kj=(t,e,n,a)=>{let o,s,u;const c={};if(e=e||{},t==null)return e;do{for(o=Object.getOwnPropertyNames(t),s=o.length;s-- >0;)u=o[s],(!a||a(u,t,e))&&!c[u]&&(e[u]=t[u],c[u]=!0);t=n!==!1&&yw(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e},Xj=(t,e,n)=>{t=String(t),(n===void 0||n>t.length)&&(n=t.length),n-=e.length;const a=t.indexOf(e,n);return a!==-1&&a===n},Jj=t=>{if(!t)return null;if(Sc(t))return t;let e=t.length;if(!lx(e))return null;const n=new Array(e);for(;e-- >0;)n[e]=t[e];return n},Qj=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&yw(Uint8Array)),eG=(t,e)=>{const a=(t&&t[gm]).call(t);let o;for(;(o=a.next())&&!o.done;){const s=o.value;
vendor: 2,086 bytes, line 34
34e.call(t,s[0],s[1])}},tG=(t,e)=>{let n;const a=[];for(;(n=t.exec(e))!==null;)a.push(n);return a},nG=Ta("HTMLFormElement"),rG=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,a,o){return a.toUpperCase()+o}),uT=(({hasOwnProperty:t})=>(e,n)=>t.call(e,n))(Object.prototype),aG=Ta("RegExp"),dx=(t,e)=>{const n=Object.getOwnPropertyDescriptors(t),a={};jd(n,(o,s)=>{let u;(u=e(o,s,t))!==!1&&(a[s]=u||o)}),Object.defineProperties(t,a)},iG=t=>{dx(t,(e,n)=>{if(ur(t)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const a=t[n];if(ur(a)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},oG=(t,e)=>{const n={},a=o=>{o.forEach(s=>{n[s]=!0})};return Sc(t)?a(t):a(String(t).split(e)),n},sG=()=>{},lG=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function cG(t){return!!(t&&ur(t.append)&&t[ox]==="FormData"&&t[gm])}const uG=t=>{const e=new Array(10),n=(a,o)=>{if(zd(a)){if(e.indexOf(a)>=0)return;if($d(a))return a;if(!("toJSON"in a)){e[o]=a;const s=Sc(a)?[]:{};return jd(a,(u,c)=>{const p=n(u,o+1);!lc(p)&&(s[c]=p)}),e[o]=void 0,s}}return a};return n(t,0)},dG=Ta("AsyncFunction"),hG=t=>t&&(zd(t)||ur(t))&&ur(t.then)&&ur(t.catch),hx=((t,e)=>t?setImmediate:e?((n,a)=>(fs.addEventListener("message",({source:o,data:s})=>{o===fs&&s===n&&a.length&&a.shift()()},!1),o=>{a.push(o),fs.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ur(fs.postMessage)),fG=typeof queueMicrotask<"u"?queueMicrotask.bind(fs):typeof xi<"u"&&xi.nextTick||hx,pG=t=>t!=null&&ur(t[gm]),ce={isArray:Sc,isArrayBuffer:sx,isBuffer:$d,isFormData:Fj,isArrayBufferView:Ij,isString:Dj,isNumber:lx,isBoolean:Lj,isObject:zd,isPlainObject:Jf,isEmptyObject:Nj,isReadableStream:zj,isRequest:jj,isResponse:Gj,isHeaders:Hj,isUndefined:lc,isDate:Pj,isFile:Wj,isBlob:Mj,isRegExp:aG,isFunction:ur,isStream:Uj,isURLSearchParams:$j,isTypedArray:Qj,isFileList:Bj,forEach:jd,merge:Fv,extend:Yj,trim:Vj,stripBOM:qj,inherits:Zj,toFlatObject:Kj,kindOf:ym,kindOfTest:Ta,endsWith:Xj,toArray:Jj,forEac
vendor: 4,161 bytes, lines 34-39
34hEntry:eG,matchAll:tG,isHTMLForm:nG,hasOwnProperty:uT,hasOwnProp:uT,reduceDescriptors:dx,freezeMethods:iG,toObjectSet:oG,toCamelCase:rG,noop:sG,toFiniteNumber:lG,findKey:cx,global:fs,isContextDefined:ux,isSpecCompliantForm:cG,toJSONObject:uG,isAsyncFn:dG,isThenable:hG,setImmediate:hx,asap:fG,isIterable:pG};var bw={},vm={};vm.byteLength=yG;vm.toByteArray=vG;vm.fromByteArray=SG;var Fa=[],Zr=[],mG=typeof Uint8Array<"u"?Uint8Array:Array,Sb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Sl=0,gG=Sb.length;Sl<gG;++Sl)Fa[Sl]=Sb[Sl],Zr[Sb.charCodeAt(Sl)]=Sl;Zr[45]=62;Zr[95]=63;function fx(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var a=n===e?0:4-n%4;return[n,a]}function yG(t){var e=fx(t),n=e[0],a=e[1];return(n+a)*3/4-a}function bG(t,e,n){return(e+n)*3/4-n}function vG(t){var e,n=fx(t),a=n[0],o=n[1],s=new mG(bG(t,a,o)),u=0,c=o>0?a-4:a,p;for(p=0;p<c;p+=4)e=Zr[t.charCodeAt(p)]<<18|Zr[t.charCodeAt(p+1)]<<12|Zr[t.charCodeAt(p+2)]<<6|Zr[t.charCodeAt(p+3)],s[u++]=e>>16&255,s[u++]=e>>8&255,s[u++]=e&255;return o===2&&(e=Zr[t.charCodeAt(p)]<<2|Zr[t.charCodeAt(p+1)]>>4,s[u++]=e&255),o===1&&(e=Zr[t.charCodeAt(p)]<<10|Zr[t.charCodeAt(p+1)]<<4|Zr[t.charCodeAt(p+2)]>>2,s[u++]=e>>8&255,s[u++]=e&255),s}function wG(t){return Fa[t>>18&63]+Fa[t>>12&63]+Fa[t>>6&63]+Fa[t&63]}function _G(t,e,n){for(var a,o=[],s=e;s<n;s+=3)a=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),o.push(wG(a));return o.join("")}function SG(t){for(var e,n=t.length,a=n%3,o=[],s=16383,u=0,c=n-a;u<c;u+=s)o.push(_G(t,u,u+s>c?c:u+s));return a===1?(e=t[n-1],o.push(Fa[e>>2]+Fa[e<<4&63]+"==")):a===2&&(e=(t[n-2]<<8)+t[n-1],o.push(Fa[e>>10]+Fa[e>>4&63]+Fa[e<<2&63]+"=")),o.join("")}var vw={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */vw.read=function(t,e,n,a,o){var s,u,c=o*8-a-1,p=(1<<c)-1,d=p>>1,m=-7,f=n?o-1:0,b=n?-1:1,v=t[e+f];for(f+=b,s=v&(1<<-m)-1,v>>=-m,m+=c;m>0;s=s*256+t[e+f],f+=b,m-=8);for(u=s&(1<<-m)-1,s>>=-m,m+=a;m>0;u=u*256+t[e+f],f+=b,m-=8);if(s===0)s=1-d;else{if(s===p)return u?NaN:(v?-1:1)*(1/0);u=u+Math.pow(2,a),s=s-d}return(v?-1:1)*u*Math.pow(2,s-a)};vw.write=function(t,e,n,a,o,s){var u,c,p,d=s*8-o-1,m=(1<<d)-1,f=m>>1,b=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,v=a?0:s-1,y=a?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(c=isNaN(e)?1:0,u=m):(u=Math.floor(Math.log(e)/Math.LN2),e*(p=Math.pow(2,-u))<1&&(u--,p*=2),u+f>=1?e+=b/p:e+=b*Math.pow(2,1-f),e*p>=2&&(u++,p/=2),u+f>=m?(c=0,u=m):u+f>=1?(c=(e*p-1)*Math.pow(2,o),u=u+f):(c=e*Math.pow(2,f-1)*Math.pow(2,o),u=0));o>=8;t[n+v]=c&255,v+=y,c/=256,o-=8);for(u=u<<o|c,d+=o;d>0;t[n+v]=u&255,v+=y,u/=256,d-=8);t[n+v-y]|=g*128};/*! 35 * The buffer module from node.js, for the browser. 36 * 37 * @author Feross Aboukhadijeh <https://feross.org> 38 * @license MIT 39 */(function(t){const e=vm,n=vw,a=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=m,t.SlowBuffer=I,t.INSPECT_MAX_BYTES=50;const o=2147483647;t.kMaxLength=o;const{Uint8Array:s,ArrayBuffer:u,SharedArrayBuffer:c}=globalThis;m.TYPED_ARRAY_SUPPORT=p(),!m.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function p(){try{const D=new s(1),C={foo:function(){return 42}};return Object.setPrototypeOf(C,s.prototype),Object.setPrototypeOf(D,C),D.foo()===42}catch{return!1}}Object.defineProperty(m.prototype,"parent",{enumerable:!0,get:function(){if(m.isBuffer(this))return this.buffer}}),Object.defineProperty(m.prototype,"offset",{enumerable:!0,get:function(){if(m.isBuffer(this))return this.byteOffset}});function d(D){if(D>o)throw new RangeError('The value "'+D+'" is invalid for option "size"');const C=new s(D);return Object.setPrototypeOf(C,m.prototype),C}function m(D,C,x){if(typeof D=="number"){if(typeof C=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(D)}return f(D,C,x)}m.poolSize=8192;
vendor: 18,508 bytes, line 39
39function f(D,C,x){if(typeof D=="string")return g(D,C);if(u.isView(D))return w(D);if(D==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof D);if(At(D,u)||D&&At(D.buffer,u)||typeof c<"u"&&(At(D,c)||D&&At(D.buffer,c)))return k(D,C,x);if(typeof D=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const U=D.valueOf&&D.valueOf();if(U!=null&&U!==D)return m.from(U,C,x);const H=T(D);if(H)return H;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof D[Symbol.toPrimitive]=="function")return m.from(D[Symbol.toPrimitive]("string"),C,x);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof D)}m.from=function(D,C,x){return f(D,C,x)},Object.setPrototypeOf(m.prototype,s.prototype),Object.setPrototypeOf(m,s);function b(D){if(typeof D!="number")throw new TypeError('"size" argument must be of type number');if(D<0)throw new RangeError('The value "'+D+'" is invalid for option "size"')}function v(D,C,x){return b(D),D<=0?d(D):C!==void 0?typeof x=="string"?d(D).fill(C,x):d(D).fill(C):d(D)}m.alloc=function(D,C,x){return v(D,C,x)};function y(D){return b(D),d(D<0?0:R(D)|0)}m.allocUnsafe=function(D){return y(D)},m.allocUnsafeSlow=function(D){return y(D)};function g(D,C){if((typeof C!="string"||C==="")&&(C="utf8"),!m.isEncoding(C))throw new TypeError("Unknown encoding: "+C);const x=M(D,C)|0;let U=d(x);const H=U.write(D,C);return H!==x&&(U=U.slice(0,H)),U}function S(D){const C=D.length<0?0:R(D.length)|0,x=d(C);for(let U=0;U<C;U+=1)x[U]=D[U]&255;return x}function w(D){if(At(D,s)){const C=new s(D);return k(C.buffer,C.byteOffset,C.byteLength)}return S(D)}function k(D,C,x){if(C<0||D.byteLength<C)throw new RangeError('"offset" is outside of buffer bounds');if(D.byteLength<C+(x||0))throw new RangeError('"length" is outside of buffer bounds');let U;return C===void 0&&x===void 0?U=new s(D):x===void 0?U=new s(D,C):U=new s(D,C,x),Object.setPrototypeOf(U,m.prototype),U}function T(D){if(m.isBuffer(D)){const C=R(D.length)|0,x=d(C);return x.length===0||D.copy(x,0,0,C),x}if(D.length!==void 0)return typeof D.length!="number"||ze(D.length)?d(0):S(D);if(D.type==="Buffer"&&Array.isArray(D.data))return S(D.data)}function R(D){if(D>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return D|0}function I(D){return+D!=D&&(D=0),m.alloc(+D)}m.isBuffer=function(C){return C!=null&&C._isBuffer===!0&&C!==m.prototype},m.compare=function(C,x){if(At(C,s)&&(C=m.from(C,C.offset,C.byteLength)),At(x,s)&&(x=m.from(x,x.offset,x.byteLength)),!m.isBuffer(C)||!m.isBuffer(x))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(C===x)return 0;let U=C.length,H=x.length;for(let Q=0,ae=Math.min(U,H);Q<ae;++Q)if(C[Q]!==x[Q]){U=C[Q],H=x[Q];break}return U<H?-1:H<U?1:0},m.isEncoding=function(C){switch(String(C).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},m.concat=function(C,x){if(!Array.isArray(C))throw new TypeError('"list" argument must be an Array of Buffers');if(C.length===0)return m.alloc(0);let U;if(x===void 0)for(x=0,U=0;U<C.length;++U)x+=C[U].length;const H=m.allocUnsafe(x);let Q=0;for(U=0;U<C.length;++U){let ae=C[U];if(At(ae,s))Q+ae.length>H.length?(m.isBuffer(ae)||(ae=m.from(ae)),ae.copy(H,Q)):s.prototype.set.call(H,ae,Q);else if(m.isBuffer(ae))ae.copy(H,Q);else throw new TypeError('"list" argument must be an Array of Buffers');Q+=ae.length}return H};function M(D,C){if(m.isBuffer(D))return D.length;if(u.isView(D)||At(D,u))return D.byteLength;if(typeof D!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof D);const x=D.length,U=arguments.length>2&&arguments[2]===!0;if(!U&&x===0)return 0;let H=!1;for(;;)switch(C){case"ascii":case"latin1":case"binary":return x;case"utf8":case"utf-8":return Wr(D).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x*2;case"hex":return x>>>1;case"base64":return en(D).length;default:if(H)return U?-1:Wr(D).length;C=(""+C).toLowerCase(),H=!0}}m.byteLength=M;function L(D,C,x){let U=!1;if((C===void 0||C<0)&&(C=0),C>this.length||((x===void 0||x>this.length)&&(x=this.length),x<=0)||(x>>>=0,C>>>=0,x<=C))return"";for(D||(D="utf8");;)switch(D){case"hex":return X(this,C,x);case"utf8":case"utf-8":return q(this,C,x);case"ascii":return se(this,C,x);case"latin1":case"binary":return j(this,C,x);case"base64":return Y(this,C,x);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return fe(this,C,x);default:if(U)throw new TypeError("Unknown encoding: "+D);D=(D+"").toLowerCase(),U=!0}}m.prototype._isBuffer=!0;function O(D,C,x){const U=D[C];D[C]=D[x],D[x]=U}m.prototype.swap16=function(){const C=this.length;if(C%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let x=0;x<C;x+=2)O(this,x,x+1);return this},m.prototype.swap32=function(){const C=this.length;if(C%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let x=0;x<C;x+=4)O(this,x,x+3),O(this,x+1,x+2);return this},m.prototype.swap64=function(){const C=this.length;if(C%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let x=0;x<C;x+=8)O(this,x,x+7),O(this,x+1,x+6),O(this,x+2,x+5),O(this,x+3,x+4);return this},m.prototype.toString=function(){const C=this.length;return C===0?"":arguments.length===0?q(this,0,C):L.apply(this,arguments)},m.prototype.toLocaleString=m.prototype.toString,m.prototype.equals=function(C){if(!m.isBuffer(C))throw new TypeError("Argument must be a Buffer");return this===C?!0:m.compare(this,C)===0},m.prototype.inspect=function(){let C="";const x=t.INSPECT_MAX_BYTES;return C=this.toString("hex",0,x).replace(/(.{2})/g,"$1 ").trim(),this.length>x&&(C+=" ... "),"<Buffer "+C+">"},a&&(m.prototype[a]=m.prototype.inspect),m.prototype.compare=function(C,x,U,H,Q){if(At(C,s)&&(C=m.from(C,C.offset,C.byteLength)),!m.isBuffer(C))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof C);if(x===void 0&&(x=0),U===void 0&&(U=C?C.length:0),H===void 0&&(H=0),Q===void 0&&(Q=this.length),x<0||U>C.length||H<0||Q>this.length)throw new RangeError("out of range index");if(H>=Q&&x>=U)return 0;if(H>=Q)return-1;if(x>=U)return 1;if(x>>>=0,U>>>=0,H>>>=0,Q>>>=0,this===C)return 0;let ae=Q-H,Oe=U-x;const $e=Math.min(ae,Oe),xt=this.slice(H,Q),Tt=C.slice(x,U);for(let ut=0;ut<$e;++ut)if(xt[ut]!==Tt[ut]){ae=xt[ut],Oe=Tt[ut];break}return ae<Oe?-1:Oe<ae?1:0};function W(D,C,x,U,H){if(D.length===0)return-1;if(typeof x=="string"?(U=x,x=0):x>2147483647?x=2147483647:x<-2147483648&&(x=-2147483648),x=+x,ze(x)&&(x=H?0:D.length-1),x<0&&(x=D.length+x),x>=D.length){if(H)return-1;x=D.length-1}else if(x<0)if(H)x=0;else return-1;if(typeof C=="string"&&(C=m.from(C,U)),m.isBuffer(C))return C.length===0?-1:F(D,C,x,U,H);if(typeof C=="number")return C=C&255,typeof s.prototype.indexOf=="function"?H?s.prototype.indexOf.call(D,C,x):s.prototype.lastIndexOf.call(D,C,x):F(D,[C],x,U,H);throw new TypeError("val must be string, number or Buffer")}function F(D,C,x,U,H){let Q=1,ae=D.length,Oe=C.length;if(U!==void 0&&(U=String(U).toLowerCase(),U==="ucs2"||U==="ucs-2"||U==="utf16le"||U==="utf-16le")){if(D.length<2||C.length<2)return-1;Q=2,ae/=2,Oe/=2,x/=2}function $e(Tt,ut){return Q===1?Tt[ut]:Tt.readUInt16BE(ut*Q)}let xt;if(H){let Tt=-1;for(xt=x;xt<ae;xt++)if($e(D,xt)===$e(C,Tt===-1?0:xt-Tt)){if(Tt===-1&&(Tt=xt),xt-Tt+1===Oe)return Tt*Q}else Tt!==-1&&(xt-=xt-Tt),Tt=-1}else for(x+Oe>ae&&(x=ae-Oe),xt=x;xt>=0;xt--){let Tt=!0;for(let ut=0;ut<Oe;ut++)if($e(D,xt+ut)!==$e(C,ut)){Tt=!1;break}if(Tt)return xt}return-1}m.prototype.includes=function(C,x,U){return this.indexOf(C,x,U)!==-1},m.prototype.indexOf=function(C,x,U){return W(this,C,x,U,!0)},m.prototype.lastIndexOf=function(C,x,U){return W(this,C,x,U,!1)};function G(D,C,x,U){x=Number(x)||0;const H=D.length-x;U?(U=Number(U),U>H&&(U=H)):U=H;const Q=C.length;U>Q/2&&(U=Q/2);let ae;for(ae=0;ae<U;++ae){const Oe=parseInt(C.substr(ae*2,2),16);if(ze(Oe))return ae;D[x+ae]=Oe}return ae}function ee(D,C,x,U){return Et(Wr(C,D.length-x),D,x,U)}function de(D,C,x,U){return Et(fr(C),D,x,U)}function ye(D,C,x,U){return Et(en(C),D,x,U)}function _e(D,C,x,U){return Et(Tn(C,D.length-x),D,x,U)}m.prototype.write=function(C,x,U,H){if(x===void 0)H="utf8",U=this.length,x=0;else if(U===void 0&&typeof x=="string")H=x,U=this.length,x=0;else if(isFinite(x))x=x>>>0,isFinite(U)?(U=U>>>0,H===void 0&&(H="utf8")):(H=U,U=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Q=this.length-x;if((U===void 0||U>Q)&&(U=Q),C.length>0&&(U<0||x<0)||x>this.length)throw new RangeError("Attempt to write outside buffer bounds");H||(H="utf8");let ae=!1;for(;;)switch(H){case"hex":return G(this,C,x,U);case"utf8":case"utf-8":return ee(this,C,x,U);case"ascii":case"latin1":case"binary":return de(this,C,x,U);case"base64":return ye(this,C,x,U);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _e(this,C,x,U);default:if(ae)throw new TypeError("Unknown encoding: "+H);H=(""+H).toLowerCase(),ae=!0}},m.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Y(D,C,x){return C===0&&x===D.length?e.fromByteArray(D):e.fromByteArray(D.slice(C,x))}function q(D,C,x){x=Math.min(D.length,x);const U=[];let H=C;for(;H<x;){const Q=D[H];let ae=null,Oe=Q>239?4:Q>223?3:Q>191?2:1;if(H+Oe<=x){let $e,xt,Tt,ut;switch(Oe){case 1:Q<128&&(ae=Q);break;case 2:$e=D[H+1],($e&192)===128&&(ut=(Q&31)<<6|$e&63,ut>127&&(ae=ut));break;case 3:$e=D[H+1],xt=D[H+2],($e&192)===128&&(xt&192)===128&&(ut=(Q&15)<<12|($e&63)<<6|xt&63,ut>2047&&(ut<55296||ut>57343)&&(ae=ut));break;case 4:$e=D[H+1],xt=D[H+2],Tt=D[H+3],($e&192)===128&&(xt&192)===128&&(Tt&192)===128&&(ut=(Q&15)<<18|($e&63)<<12|(xt&63)<<6|Tt&63,ut>65535&&ut<1114112&&(ae=ut))}}ae===null?(ae=65533,Oe=1):ae>65535&&(ae-=65536,U.push(ae>>>10&1023|55296),ae=56320|ae&1023),U.push(ae),H+=Oe}return be(U)}const re=4096;function be(D){const C=D.length;if(C<=re)return String.fromCharCode.apply(String,D);let x="",U=0;for(;U<C;)x+=String.fromCharCode.apply(String,D.slice(U,U+=re));return x}function se(D,C,x){let U="";x=Math.min(D.length,x);for(let H=C;H<x;++H)U+=String.fromCharCode(D[H]&127);return U}function j(D,C,x){let U="";x=Math.min(D.length,x);for(let H=C;H<x;++H)U+=String.fromCharCode(D[H]);return U}function X(D,C,x){const U=D.length;(!C||C<0)&&(C=0),(!x||x<0||x>U)&&(x=U);let H="";for(let Q=C;Q<x;++Q)H+=A[D[Q]];return H}function fe(D,C,x){const U=D.slice(C,x);let H="";for(let Q=0;Q<U.length-1;Q+=2)H+=String.fromCharCode(U[Q]+U[Q+1]*256);return H}m.prototype.slice=function(C,x){const U=this.length;C=~~C,x=x===void 0?U:~~x,C<0?(C+=U,C<0&&(C=0)):C>U&&(C=U),x<0?(x+=U,x<0&&(x=0)):x>U&&(x=U),x<C&&(x=C);const H=this.subarray(C,x);return Object.setPrototypeOf(H,m.prototype),H};function pe(D,C,x){if(D%1!==0||D<0)throw new RangeError("offset is not uint");if(D+C>x)throw new RangeError("Trying to access beyond buffer length")}m.prototype.readUintLE=m.prototype.readUIntLE=function(C,x,U){C=C>>>0,x=x>>>0,U||pe(C,x,this.length);let H=this[C],Q=1,ae=0;for(;++ae<x&&(Q*=256);)H+=this[C+ae]*Q;return H},m.prototype.readUintBE=m.prototype.readUIntBE=function(C,x,U){C=C>>>0,x=x>>>0,U||pe(C,x,this.length);let H=this[C+--x],Q=1;for(;x>0&&(Q*=256);)H+=this[C+--x]*Q;return H},m.prototype.readUint8=m.prototype.readUInt8=function(C,x){return C=C>>>0,x||pe(C,1,this.length),this[C]},m.prototype.readUint16LE=m.prototype.readUInt16LE=function(C,x){return C=C>>>0,x||pe(C,2,this.length),this[C]|this[C+1]<<8},m.prototype.readUint16BE=m.prototype.readUInt16BE=function(C,x){return C=C>>>0,x||pe(C,2,this.length),this[C]<<8|this[C+1]},m.prototype.readUint32LE=m.prototype.readUInt32LE=function(C,x){return C=C>>>0,x||pe(C,4,this.length),(this[C]|this[C+1]<<8|this[C+2]<<16)+this[C+3]*16777216},m.prototype.readUint32BE=m.prototype.readUInt32BE=function(C,x){return C=C>>>0,x||pe(C,4,this.length),this[C]*16777216+(this[C+1]<<16|this[C+2]<<8|this[C+3])},m.prototype.readBigUInt64LE=N(function(C){C=C>>>0,Kn(C,"offset");const x=this[C],U=this[C+7];(x===void 0||U===void 0)&&Fn(C,this.length-8);const H=x+this[++C]*2**8+this[++C]*2**16+this[++C]*2**24,Q=this[++C]+this[++C]*2**8+this[++C]*2**16+U*2**24;return BigInt(H)+(BigInt(Q)<<BigInt(32))}),m.prototype.readBigUInt64BE=N(function(C){C=C>>>0,Kn(C,"offset");const x=this[C],U=this[C+7];(x===void 0||U===void 0)&&Fn(C,this.length-8);const H=x*2**24+this[++C]*2**16+this[++C]*2**8+this[++C],Q=this[++C]*2**24+this[++C]*2**16+this[++C]*2**8+U;return(BigInt(H)<<BigInt(32))+BigInt(Q)}),m.prototype.readIntLE=function(C,x,U){C=C>>>0,x=x>>>0,U||pe(C,x,this.length);let H=this[C],Q=1,ae=0;for(;++ae<x&&(Q*=256);)H+=this[C+ae]*Q;return Q*=128,H>=Q&&(H-=Math.pow(2,8*x)),H},m.prototype.readIntBE=function(C,x,U){C=C>>>0,x=x>>>0,U||pe(C,x,this.length);let H=x,Q=1,ae=this[C+--H];for(;H>0&&(Q*=256);)ae+=this[C+--H]*Q;return Q*=128,ae>=Q&&(ae-=Math.pow(2,8*x)),ae},m.prototype.readInt8=function(C,x){return C=C>>>0,x||pe(C,1,this.length),this[C]&128?(255-this[C]+1)*-1:this[C]},m.prototype.readInt16LE=function(C,x){C=C>>>0,x||pe(C,2,this.length);const U=this[C]|this[C+1]<<8;return U&32768?U|4294901760:U},m.prototype.readInt16BE=function(C,x){C=C>>>0,x||pe(C,2,this.length);const U=this[C+1]|this[C]<<8;return U&32768?U|4294901760:U},m.prototype.readInt32LE=function(C,x){return C=C>>>0,x||pe(C,4,this.length),this[C]|this[C+1]<<8|this[C+2]<<16|this[C+3]<<24},m.prototype.readInt32BE=function(C,x){return C=C>>>0,x||pe(C,4,this.length),this[C]<<24|this[C+1]<<16|this[C+2]<<8|this[C+3]},m.prototype.readBigInt64LE=N(function(C){C=C>>>0,Kn(C,"offset");const x=this[C],U=this[C+7];(x===void 0||U===void 0)&&Fn(C,this.length-8);const H=this[C+4]+this[C+5]*2**8+this[C+6]*2**16+(U<<24);return(BigInt(H)<<BigInt(32))+BigInt(x+this[++C]*2**8+this[++C]*2**16+this[++C]*2**24)}),m.prototype.readBigInt64BE=N(function(C){C=C>>>0,Kn(C,"offset");const x=this[C],U=this[C+7];(x===void 0||U===void 0)&&Fn(C,this.length-8);const H=(x<<24)+this[++C]*2**16+this[++C]*2**8+this[++C];return(BigInt(H)<<BigInt(32))+BigInt(this[++C]*2**24+this[++C]*2**16+this[++C]*2**8+U)}),m.prototype.readFloatLE=function(C,x){return C=C>>>0,x||pe(C,4,this.length),n.read(this,C,!0,23,4)},m.prototype.readFloatBE=function(C,x){return C=C>>>0,x||pe(C,4,this.length),n.read(this,C,!1,23,4)},m.prototype.readDoubleLE=function(C,x){return C=C>>>0,x||pe(C,8,this.length),n.read(this,C,!0,52,8)},m.prototype.readDoubleBE=function(C,x){return C=C>>>0,x||pe(C,8,this.length),n.read(this,C,!1,52,8)};function we(D,C,x,U,H,Q){if(!m.isBuffer(D))throw new TypeError('"buffer" argument must be a Buffer instance');if(C>H||C<Q)throw new RangeError('"value" argument is out of bounds');if(x+U>D.length)throw new RangeError("Index out of range")}m.prototype.writeUintLE=m.prototype.writeUIntLE=function(C,x,U,H){if(C=+C,x=x>>>0,U=U>>>0,!H){const Oe=Math.pow(2,8*U)-1;we(this,C,x,U,Oe,0)}let Q=1,ae=0;for(this[x]=C&255;++ae<U&&(Q*=256);)this[x+ae]=C/Q&255;return x+U},m.prototype.writeUintBE=m.prototype.writeUIntBE=function(C,x,U,H){if(C=+C,x=x>>>0,U=U>>>0,!H){const Oe=Math.pow(2,8*U)-1;we(this,C,x,U,Oe,0)}let Q=U-1,ae=1;for(this[x+Q]=C&255;--Q>=0&&(ae*=256);)this[x+Q]=C/ae&255;return x+U},m.prototype.writeUint8=m.prototype.writeUInt8=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,1,255,0),this[x]=C&255,x+1},m.prototype.writeUint16LE=m.prototype.writeUInt16LE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,2,65535,0),this[x]=C&255,this[x+1]=C>>>8,x+2},m.prototype.writeUint16BE=m.prototype.writeUInt16BE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,2,65535,0),this[x]=C>>>8,this[x+1]=C&255,x+2},m.prototype.writeUint32LE=m.prototype.writeUInt32LE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,4,4294967295,0),this[x+3]=C>>>24,this[x+2]=C>>>16,this[x+1]=C>>>8,this[x]=C&255,x+4},m.prototype.writeUint32BE=m.prototype.writeUInt32BE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,4,4294967295,0),this[x]=C>>>24,this[x+1]=C>>>16,this[x+2]=C>>>8,this[x+3]=C&255,x+4};function xe(D,C,x,U,H){Un(C,U,H,D,x,7);let Q=Number(C&BigInt(4294967295));D[x++]=Q,Q=Q>>8,D[x++]=Q,Q=Q>>8,D[x++]=Q,Q=Q>>8,D[x++]=Q;let ae=Number(C>>BigInt(32)&BigInt(4294967295));return D[x++]=ae,ae=ae>>8,D[x++]=ae,ae=ae>>8,D[x++]=ae,ae=ae>>8,D[x++]=ae,x}function Me(D,C,x,U,H){Un(C,U,H,D,x,7);let Q=Number(C&BigInt(4294967295));D[x+7]=Q,Q=Q>>8,D[x+6]=Q,Q=Q>>8,D[x+5]=Q,Q=Q>>8,D[x+4]=Q;let ae=Number(C>>BigInt(32)&BigInt(4294967295));return D[x+3]=ae,ae=ae>>8,D[x+2]=ae,ae=ae>>8,D[x+1]=ae,ae=ae>>8,D[x]=ae,x+8}m.prototype.writeBigUInt64LE=N(function(C,x=0){return xe(this,C,x,BigInt(0),BigInt("0xffffffffffffffff"))}),m.prototype.writeBigUInt64BE=N(function(C,x=0){return Me(this,C,x,BigInt(0),BigInt("0xffffffffffffffff"))}),m.prototype.writeIntLE=function(C,x,U,H){if(C=+C,x=x>>>0,!H){const $e=Math.pow(2,8*U-1);we(this,C,x,U,$e-1,-$e)}let Q=0,ae=1,Oe=0;for(this[x]=C&255;++Q<U&&(ae*=256);)C<0&&Oe===0&&this[x+Q-1]!==0&&(Oe=1),this[x+Q]=(C/ae>>0)-Oe&255;return x+U},m.prototype.writeIntBE=function(C,x,U,H){if(C=+C,x=x>>>0,!H){const $e=Math.pow(2,8*U-1);we(this,C,x,U,$e-1,-$e)}let Q=U-1,ae=1,Oe=0;for(this[x+Q]=C&255;--Q>=0&&(ae*=256);)C<0&&Oe===0&&this[x+Q+1]!==0&&(Oe=1),this[x+Q]=(C/ae>>0)-Oe&255;return x+U},m.prototype.writeInt8=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,1,127,-128),C<0&&(C=255+C+1),this[x]=C&255,x+1},m.prototype.writeInt16LE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,2,32767,-32768),this[x]=C&255,this[x+1]=C>>>8,x+2},m.prototype.writeInt16BE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,2,32767,-32768),this[x]=C>>>8,this[x+1]=C&255,x+2},m.prototype.writeInt32LE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,4,2147483647,-2147483648),this[x]=C&255,this[x+1]=C>>>8,this[x+2]=C>>>16,this[x+3]=C>>>24,x+4},m.prototype.writeInt32BE=function(C,x,U){return C=+C,x=x>>>0,U||we(this,C,x,4,2147483647,-2147483648),C<0&&(C=4294967295+C+1),this[x]=C>>>24,this[x+1]=C>>>16,this[x+2]=C>>>8,this[x+3]=C&255,x+4},m.prototype.writeBigInt64LE=N(function(C,x=0){return xe(this,C,x,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),m.prototype.writeBigInt64BE=N(function(C,x=0){return Me(this,C,x,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});
vendor: 4,455 bytes, line 39
39function it(D,C,x,U,H,Q){if(x+U>D.length)throw new RangeError("Index out of range");if(x<0)throw new RangeError("Index out of range")}function ot(D,C,x,U,H){return C=+C,x=x>>>0,H||it(D,C,x,4),n.write(D,C,x,U,23,4),x+4}m.prototype.writeFloatLE=function(C,x,U){return ot(this,C,x,!0,U)},m.prototype.writeFloatBE=function(C,x,U){return ot(this,C,x,!1,U)};function zt(D,C,x,U,H){return C=+C,x=x>>>0,H||it(D,C,x,8),n.write(D,C,x,U,52,8),x+8}m.prototype.writeDoubleLE=function(C,x,U){return zt(this,C,x,!0,U)},m.prototype.writeDoubleBE=function(C,x,U){return zt(this,C,x,!1,U)},m.prototype.copy=function(C,x,U,H){if(!m.isBuffer(C))throw new TypeError("argument should be a Buffer");if(U||(U=0),!H&&H!==0&&(H=this.length),x>=C.length&&(x=C.length),x||(x=0),H>0&&H<U&&(H=U),H===U||C.length===0||this.length===0)return 0;if(x<0)throw new RangeError("targetStart out of bounds");if(U<0||U>=this.length)throw new RangeError("Index out of range");if(H<0)throw new RangeError("sourceEnd out of bounds");H>this.length&&(H=this.length),C.length-x<H-U&&(H=C.length-x+U);const Q=H-U;return this===C&&typeof s.prototype.copyWithin=="function"?this.copyWithin(x,U,H):s.prototype.set.call(C,this.subarray(U,H),x),Q},m.prototype.fill=function(C,x,U,H){if(typeof C=="string"){if(typeof x=="string"?(H=x,x=0,U=this.length):typeof U=="string"&&(H=U,U=this.length),H!==void 0&&typeof H!="string")throw new TypeError("encoding must be a string");if(typeof H=="string"&&!m.isEncoding(H))throw new TypeError("Unknown encoding: "+H);if(C.length===1){const ae=C.charCodeAt(0);(H==="utf8"&&ae<128||H==="latin1")&&(C=ae)}}else typeof C=="number"?C=C&255:typeof C=="boolean"&&(C=Number(C));if(x<0||this.length<x||this.length<U)throw new RangeError("Out of range index");if(U<=x)return this;x=x>>>0,U=U===void 0?this.length:U>>>0,C||(C=0);let Q;if(typeof C=="number")for(Q=x;Q<U;++Q)this[Q]=C;else{const ae=m.isBuffer(C)?C:m.from(C,H),Oe=ae.length;if(Oe===0)throw new TypeError('The value "'+C+'" is invalid for argument "value"');for(Q=0;Q<U-x;++Q)this[Q+x]=ae[Q%Oe]}return this};const Ln={};function Lr(D,C,x){Ln[D]=class extends x{constructor(){super(),Object.defineProperty(this,"message",{value:C.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${D}]`,this.stack,delete this.name}get code(){return D}set code(H){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:H,writable:!0})}toString(){return`${this.name} [${D}]: ${this.message}`}}}Lr("ERR_BUFFER_OUT_OF_BOUNDS",function(D){return D?`${D} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Lr("ERR_INVALID_ARG_TYPE",function(D,C){return`The "${D}" argument must be of type number. Received type ${typeof C}`},TypeError),Lr("ERR_OUT_OF_RANGE",function(D,C,x){let U=`The value of "${D}" is out of range.`,H=x;return Number.isInteger(x)&&Math.abs(x)>2**32?H=En(String(x)):typeof x=="bigint"&&(H=String(x),(x>BigInt(2)**BigInt(32)||x<-(BigInt(2)**BigInt(32)))&&(H=En(H)),H+="n"),U+=` It must be ${C}. Received ${H}`,U},RangeError);function En(D){let C="",x=D.length;const U=D[0]==="-"?1:0;for(;x>=U+4;x-=3)C=`_${D.slice(x-3,x)}${C}`;return`${D.slice(0,x)}${C}`}function gn(D,C,x){Kn(C,"offset"),(D[C]===void 0||D[C+x]===void 0)&&Fn(C,D.length-(x+1))}function Un(D,C,x,U,H,Q){if(D>x||D<C){const ae=typeof C=="bigint"?"n":"";let Oe;throw C===0||C===BigInt(0)?Oe=`>= 0${ae} and < 2${ae} ** ${(Q+1)*8}${ae}`:Oe=`>= -(2${ae} ** ${(Q+1)*8-1}${ae}) and < 2 ** ${(Q+1)*8-1}${ae}`,new Ln.ERR_OUT_OF_RANGE("value",Oe,D)}gn(U,H,Q)}function Kn(D,C){if(typeof D!="number")throw new Ln.ERR_INVALID_ARG_TYPE(C,"number",D)}function Fn(D,C,x){throw Math.floor(D)!==D?(Kn(D,x),new Ln.ERR_OUT_OF_RANGE("offset","an integer",D)):C<0?new Ln.ERR_BUFFER_OUT_OF_BOUNDS:new Ln.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${C}`,D)}const Nr=/[^+/0-9A-Za-z-_]/g;function Pr(D){if(D=D.split("=")[0],D=D.trim().replace(Nr,""),D.length<2)return"";for(;D.length%4!==0;)D=D+"=";return D}function Wr(D,C){C=C||1/0;let x;const U=D.length;let H=null;const Q=[];for(let ae=0;ae<U;++ae){if(x=D.charCodeAt(ae),x>55295&&x<57344){if(!H){if(x>56319){(C-=3)>-1&&Q.push(239,191,189);continue}else if(ae+1===U){(C-=3)>-1&&Q.push(239,191,189);continue}H=x;continue}if(x<56320){(C-=3)>-1&&Q.push(239,191,189),H=x;continue}x=(H-55296<<10|x-56320)+65536}else H&&(C-=3)>-1&&Q.push(239,191,189);if(H=null,x<128){if((C-=1)<0)break;Q.push(x)}else if(x<2048){if((C-=2)<0)break;Q.push(x>>6|192,x&63|128)}
39else if(x<65536){if((C-=3)<0)break;Q.push(x>>12|224,x>>6&63|128,x&63|128)}else if(x<1114112){if((C-=4)<0)break;Q.push(x>>18|240,x>>12&63|128,x>>6&63|128,x&63|128)}else throw new Error("Invalid code point")}return Q}function fr(D){const C=[];for(let x=0;x<D.length;++x)C.push(D.charCodeAt(x)&255);return C}function Tn(D,C){let x,U,H;const Q=[];for(let ae=0;ae<D.length&&!((C-=2)<0);++ae)x=D.charCodeAt(ae),U=x>>8,H=x%256,Q.push(H),Q.push(U);return Q}function en(D){return e.toByteArray(Pr(D))}function Et(D,C,x,U){let H;for(H=0;H<U&&!(H+x>=C.length||H>=D.length);++H)C[H+x]=D[H];return H}function At(D,C){return D instanceof C||D!=null&&D.constructor!=null&&D.constructor.name!=null&&D.constructor.name===C.name}function ze(D){return D!==D}const A=function(){const D="0123456789abcdef",C=new Array(256);for(let x=0;x<16;++x){const U=x*16;for(let H=0;H<16;++H)C[U+H]=D[x]+D[H]}return C}();function N(D){return typeof BigInt>"u"?B:D}function B(){throw new Error("BigInt not supported")}})(bw);const kG=bw.Buffer,iie=bw.Buffer;function qe(t,e,n,a,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),a&&(this.request=a),o&&(this.response=o,this.status=o.status?o.status:null)}ce.inherits(qe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ce.toJSONObject(this.config),code:this.code,status:this.status}}});const px=qe.prototype,mx={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(t=>{mx[t]={value:t}});Object.defineProperties(qe,mx);Object.defineProperty(px,"isAxiosError",{value:!0});qe.from=(t,e,n,a,o,s)=>{const u=Object.create(px);ce.toFlatObject(t,u,function(m){return m!==Error.prototype},d=>d!=="isAxiosError");const c=t&&t.message?t.message:"Error",p=e==null&&t?t.code:e;return qe.call(u,c,p,n,a,o),t&&u.cause==null&&Object.defineProperty(u,"cause",{value:t,configurable:!0}),u.name=t&&t.name||"Error",s&&Object.assign(u,s),u};const EG=null;function $v(t){return ce.isPlainObject(t)||ce.isArray(t)}function gx(t){return ce.endsWith(t,"[]")?t.slice(0,-2):t}function dT(t,e,n){return t?t.concat(e).map(function(o,s){return o=gx(o),!n&&s?"["+o+"]":o}).join(n?".":""):e}function TG(t){return ce.isArray(t)&&!t.some($v)}const RG=ce.toFlatObject(ce,{},null,function(e){return/^is[A-Z]/.test(e)});function wm(t,e,n){if(!ce.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,n=ce.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(g,S){return!ce.isUndefined(S[g])});const a=n.metaTokens,o=n.visitor||m,s=n.dots,u=n.indexes,p=(n.Blob||typeof Blob<"u"&&Blob)&&ce.isSpecCompliantForm(e);if(!ce.isFunction(o))throw new TypeError("visitor must be a function");function d(y){if(y===null)return"";if(ce.isDate(y))return y.toISOString();if(ce.isBoolean(y))return y.toString();if(!p&&ce.isBlob(y))throw new qe("Blob is not supported. Use a Buffer instead.");return ce.isArrayBuffer(y)||ce.isTypedArray(y)?p&&typeof Blob=="function"?new Blob([y]):kG.from(y):y}function m(y,g,S){let w=y;if(y&&!S&&typeof y=="object"){if(ce.endsWith(g,"{}"))g=a?g:g.slice(0,-2),y=JSON.stringify(y);else if(ce.isArray(y)&&TG(y)||(ce.isFileList(y)||ce.endsWith(g,"[]"))&&(w=ce.toArray(y)))return g=gx(g),w.forEach(function(T,R){!(ce.isUndefined(T)||T===null)&&e.append(u===!0?dT([g],R,s):u===null?g:g+"[]",d(T))}),!1}return $v(y)?!0:(e.append(dT(S,g,s),d(y)),!1)}const f=[],b=Object.assign(RG,{defaultVisitor:m,convertValue:d,isVisitable:$v});function v(y,g){if(!ce.isUndefined(y)){if(f.indexOf(y)!==-1)throw Error("Circular reference detected in "+g.join("."));f.push(y),ce.forEach(y,function(w,k){(!(ce.isUndefined(w)||w===null)&&o.call(e,w,ce.isString(k)?k.trim():k,g,b))===!0&&v(w,g?g.concat(k):[k])}),f.pop()}}if(!ce.isObject(t))throw new TypeError("data must be an object");return v(t),e}
vendor: 5,407 bytes, lines 39-40
39function hT(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,function(a){return e[a]})}function ww(t,e){this._pairs=[],t&&wm(t,this,e)}const yx=ww.prototype;yx.append=function(e,n){this._pairs.push([e,n])};yx.toString=function(e){const n=e?function(a){return e.call(this,a,hT)}:hT;return this._pairs.map(function(o){return n(o[0])+"="+n(o[1])},"").join("&")};function CG(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function bx(t,e,n){if(!e)return t;const a=n&&n.encode||CG;ce.isFunction(n)&&(n={serialize:n});const o=n&&n.serialize;let s;if(o?s=o(e,n):s=ce.isURLSearchParams(e)?e.toString():new ww(e,n).toString(a),s){const u=t.indexOf("#");u!==-1&&(t=t.slice(0,u)),t+=(t.indexOf("?")===-1?"?":"&")+s}return t}class fT{constructor(){this.handlers=[]}use(e,n,a){return this.handlers.push({fulfilled:e,rejected:n,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){ce.forEach(this.handlers,function(a){a!==null&&e(a)})}}const vx={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},AG=typeof URLSearchParams<"u"?URLSearchParams:ww,xG=typeof FormData<"u"?FormData:null,OG=typeof Blob<"u"?Blob:null,IG={isBrowser:!0,classes:{URLSearchParams:AG,FormData:xG,Blob:OG},protocols:["http","https","file","blob","url","data"]},_w=typeof window<"u"&&typeof document<"u",zv=typeof navigator=="object"&&navigator||void 0,DG=_w&&(!zv||["ReactNative","NativeScript","NS"].indexOf(zv.product)<0),LG=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",NG=_w&&window.location.href||"http://localhost",PG=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:_w,hasStandardBrowserEnv:DG,hasStandardBrowserWebWorkerEnv:LG,navigator:zv,origin:NG},Symbol.toStringTag,{value:"Module"})),Mn={...PG,...IG};function WG(t,e){return wm(t,new Mn.classes.URLSearchParams,{visitor:function(n,a,o,s){return Mn.isNode&&ce.isBuffer(n)?(this.append(a,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...e})}function MG(t){return ce.matchAll(/\w+|\[(\w*)]/g,t).map(e=>e[0]==="[]"?"":e[1]||e[0])}function BG(t){const e={},n=Object.keys(t);let a;const o=n.length;let s;for(a=0;a<o;a++)s=n[a],e[s]=t[s];return e}function wx(t){function e(n,a,o,s){let u=n[s++];if(u==="__proto__")return!0;const c=Number.isFinite(+u),p=s>=n.length;return u=!u&&ce.isArray(o)?o.length:u,p?(ce.hasOwnProp(o,u)?o[u]=[o[u],a]:o[u]=a,!c):((!o[u]||!ce.isObject(o[u]))&&(o[u]=[]),e(n,a,o[u],s)&&ce.isArray(o[u])&&(o[u]=BG(o[u])),!c)}if(ce.isFormData(t)&&ce.isFunction(t.entries)){const n={};return ce.forEachEntry(t,(a,o)=>{e(MG(a),o,n,0)}),n}return null}function UG(t,e,n){if(ce.isString(t))try{return(e||JSON.parse)(t),ce.trim(t)}catch(a){if(a.name!=="SyntaxError")throw a}return(n||JSON.stringify)(t)}const Gd={transitional:vx,adapter:["xhr","http","fetch"],transformRequest:[function(e,n){const a=n.getContentType()||"",o=a.indexOf("application/json")>-1,s=ce.isObject(e);if(s&&ce.isHTMLForm(e)&&(e=new FormData(e)),ce.isFormData(e))return o?JSON.stringify(wx(e)):e;if(ce.isArrayBuffer(e)||ce.isBuffer(e)||ce.isStream(e)||ce.isFile(e)||ce.isBlob(e)||ce.isReadableStream(e))return e;if(ce.isArrayBufferView(e))return e.buffer;if(ce.isURLSearchParams(e))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let c;if(s){if(a.indexOf("application/x-www-form-urlencoded")>-1)return WG(e,this.formSerializer).toString();if((c=ce.isFileList(e))||a.indexOf("multipart/form-data")>-1){const p=this.env&&this.env.FormData;return wm(c?{"files[]":e}:e,p&&new p,this.formSerializer)}}return s||o?(n.setContentType("application/json",!1),UG(e)):e}],transformResponse:[function(e){const n=this.transitional||Gd.transitional,a=n&&n.forcedJSONParsing,o=this.responseType==="json";if(ce.isResponse(e)||ce.isReadableStream(e))return e;if(e&&ce.isString(e)&&(a&&!this.responseType||o)){const u=!(n&&n.silentJSONParsing)&&o;try{return JSON.parse(e,this.parseReviver)}catch(c){if(u)throw c.name==="SyntaxError"?qe.from(c,qe.ERR_BAD_RESPONSE,this,null,this.response):c}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Mn.classes.FormData,Blob:Mn.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ce.forEach(["delete","get","head","post","put","patch"],t=>{Gd.headers[t]={}});const FG=ce.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),$G=t=>{const e={};let n,a,o;return t&&t.split(` 40`).forEach(function(u){o=u.indexOf(":"),n=u.substring(0,o).trim().toLowerCase(),a=u.substring(o+1).trim(),!(!n||e[n]&&FG[n])&&(n==="set-cookie"?e[n]?e[n].push(a):e[n]=[a]:e[n]=e[n]?e[n]+", "+a:a)}),e},pT=Symbol("internals");function Eu(t){return t&&String(t).trim().toLowerCase()}function Qf(t){return t===!1||t==null?t:ce.isArray(t)?t.map(Qf):String(t)}function zG(t){const e=Object.create(null),n=/([^\s,;
40=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=n.exec(t);)e[a[1]]=a[2];return e}const jG=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function kb(t,e,n,a,o){if(ce.isFunction(a))return a.call(this,e,n);if(o&&(e=n),!!ce.isString(e)){if(ce.isString(a))return e.indexOf(a)!==-1;if(ce.isRegExp(a))return a.test(e)}}function GG(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,n,a)=>n.toUpperCase()+a)}function HG(t,e){const n=ce.toCamelCase(" "+e);["get","set","has"].forEach(a=>{Object.defineProperty(t,a+n,{value:function(o,s,u){return this[a].call(this,e,o,s,u)},configurable:!0})})}let dr=class{constructor(e){e&&this.set(e)}set(e,n,a){const o=this;function s(c,p,d){const m=Eu(p);if(!m)throw new Error("header name must be a non-empty string");const f=ce.findKey(o,m);(!f||o[f]===void 0||d===!0||d===void 0&&o[f]!==!1)&&(o[f||p]=Qf(c))}const u=(c,p)=>ce.forEach(c,(d,m)=>s(d,m,p));if(ce.isPlainObject(e)||e instanceof this.constructor)u(e,n);else if(ce.isString(e)&&(e=e.trim())&&!jG(e))u($G(e),n);else if(ce.isObject(e)&&ce.isIterable(e)){let c={},p,d;for(const m of e){if(!ce.isArray(m))throw TypeError("Object iterator must return a key-value pair");c[d=m[0]]=(p=c[d])?ce.isArray(p)?[...p,m[1]]:[p,m[1]]:m[1]}u(c,n)}else e!=null&&s(n,e,a);return this}get(e,n){if(e=Eu(e),e){const a=ce.findKey(this,e);if(a){const o=this[a];if(!n)return o;if(n===!0)return zG(o);if(ce.isFunction(n))return n.call(this,o,a);if(ce.isRegExp(n))return n.exec(o);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,n){if(e=Eu(e),e){const a=ce.findKey(this,e);return!!(a&&this[a]!==void 0&&(!n||kb(this,this[a],a,n)))}return!1}delete(e,n){const a=this;let o=!1;function s(u){if(u=Eu(u),u){const c=ce.findKey(a,u);c&&(!n||kb(a,a[c],c,n))&&(delete a[c],o=!0)}}return ce.isArray(e)?e.forEach(s):s(e),o}clear(e){const n=Object.keys(this);let a=n.length,o=!1;for(;a--;){const s=n[a];(!e||kb(this,this[s],s,e,!0))&&(delete this[s],o=!0)}return o}normalize(e){const n=this,a={};return ce.forEach(this,(o,s)=>{const u=ce.findKey(a,s);if(u){n[u]=Qf(o),delete n[s];return}const c=e?GG(s):String(s).trim();c!==s&&delete n[s],n[c]=Qf(o),a[c]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const n=Object.create(null);return ce.forEach(this,(a,o)=>{a!=null&&a!==!1&&(n[o]=e&&ce.isArray(a)?a.join(", "):a)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,n])=>e+": "+n).join(` 41`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...n){const a=new this(e);return n.forEach(o=>a.set(o)),a}static accessor(e){const a=(this[pT]=this[pT]={accessors:{}}).accessors,o=this.prototype;function s(u){const c=Eu(u);a[c]||(HG(o,u),a[c]=!0)}return ce.isArray(e)?e.forEach(s):s(e),this}};dr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);ce.reduceDescriptors(dr.prototype,({value:t},e)=>{let n=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(a){this[n]=a}}});ce.freezeMethods(dr);function Eb(t,e){const n=this||Gd,a=e||n,o=dr.from(a.headers);let s=a.data;return ce.forEach(t,function(c){s=c.call(n,s,o.normalize(),e?e.status:void 0)}),o.normalize(),s}function _x(t){return!!(t&&t.__CANCEL__)}function kc(t,e,n){qe.call(this,t??"canceled",qe.ERR_CANCELED,e,n),this.name="CanceledError"}ce.inherits(kc,qe,{__CANCEL__:!0});function Sx(t,e,n){const a=n.config.validateStatus;!n.status||!a||a(n.status)?t(n):e(new qe("Request failed with status code "+n.status,[qe.ERR_BAD_REQUEST,qe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function VG(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}function YG(t,e){t=t||10;const n=new Array(t),a=new Array(t);let o=0,s=0,u;return e=e!==void 0?e:1e3,function(p){const d=Date.now(),m=a[s];u||(u=d),n[o]=p,a[o]=d;let f=s,b=0;for(;f!==o;)b+=n[f++],f=f%t;if(o=(o+1)%t,o===s&&(s=(s+1)%t),d-u<e)return;const v=m&&d-m;return v?Math.round(b*1e3/v):void 0}}function qG(t,e){let n=0,a=1e3/e,o,s;const u=(d,m=Date.now())=>{n=m,o=null,s&&(clearTimeout(s),s=null),t(...d)};return[(...d)=>{const m=Date.now(),f=m-n;f>=a?u(d,m):(o=d,s||(s=setTimeout(()=>{s=null,u(o)},a-f)))},()=>o&&u(o)]}const Rp=(t,e,n=3)=>{let a=0;const o=YG(50,250);return qG(s=>
vendor: 15,940 bytes, lines 41-44
41{const u=s.loaded,c=s.lengthComputable?s.total:void 0,p=u-a,d=o(p),m=u<=c;a=u;const f={loaded:u,total:c,progress:c?u/c:void 0,bytes:p,rate:d||void 0,estimated:d&&c&&m?(c-u)/d:void 0,event:s,lengthComputable:c!=null,[e?"download":"upload"]:!0};t(f)},n)},mT=(t,e)=>{const n=t!=null;return[a=>e[0]({lengthComputable:n,total:t,loaded:a}),e[1]]},gT=t=>(...e)=>ce.asap(()=>t(...e)),ZG=Mn.hasStandardBrowserEnv?((t,e)=>n=>(n=new URL(n,Mn.origin),t.protocol===n.protocol&&t.host===n.host&&(e||t.port===n.port)))(new URL(Mn.origin),Mn.navigator&&/(msie|trident)/i.test(Mn.navigator.userAgent)):()=>!0,KG=Mn.hasStandardBrowserEnv?{write(t,e,n,a,o,s,u){if(typeof document>"u")return;const c=[`${t}=${encodeURIComponent(e)}`];ce.isNumber(n)&&c.push(`expires=${new Date(n).toUTCString()}`),ce.isString(a)&&c.push(`path=${a}`),ce.isString(o)&&c.push(`domain=${o}`),s===!0&&c.push("secure"),ce.isString(u)&&c.push(`SameSite=${u}`),document.cookie=c.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.match(new RegExp("(?:^|; )"+t+"=([^;]*)"));return e?decodeURIComponent(e[1]):null},remove(t){this.write(t,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function XG(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}function JG(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}function kx(t,e,n){let a=!XG(e);return t&&(a||n==!1)?JG(t,e):e}const yT=t=>t instanceof dr?{...t}:t;function Rs(t,e){e=e||{};const n={};function a(d,m,f,b){return ce.isPlainObject(d)&&ce.isPlainObject(m)?ce.merge.call({caseless:b},d,m):ce.isPlainObject(m)?ce.merge({},m):ce.isArray(m)?m.slice():m}function o(d,m,f,b){if(ce.isUndefined(m)){if(!ce.isUndefined(d))return a(void 0,d,f,b)}else return a(d,m,f,b)}function s(d,m){if(!ce.isUndefined(m))return a(void 0,m)}function u(d,m){if(ce.isUndefined(m)){if(!ce.isUndefined(d))return a(void 0,d)}else return a(void 0,m)}function c(d,m,f){if(f in e)return a(d,m);if(f in t)return a(void 0,d)}const p={url:s,method:s,data:s,baseURL:u,transformRequest:u,transformResponse:u,paramsSerializer:u,timeout:u,timeoutMessage:u,withCredentials:u,withXSRFToken:u,adapter:u,responseType:u,xsrfCookieName:u,xsrfHeaderName:u,onUploadProgress:u,onDownloadProgress:u,decompress:u,maxContentLength:u,maxBodyLength:u,beforeRedirect:u,transport:u,httpAgent:u,httpsAgent:u,cancelToken:u,socketPath:u,responseEncoding:u,validateStatus:c,headers:(d,m,f)=>o(yT(d),yT(m),f,!0)};return ce.forEach(Object.keys({...t,...e}),function(m){const f=p[m]||o,b=f(t[m],e[m],m);ce.isUndefined(b)&&f!==c||(n[m]=b)}),n}const Ex=t=>{const e=Rs({},t);let{data:n,withXSRFToken:a,xsrfHeaderName:o,xsrfCookieName:s,headers:u,auth:c}=e;if(e.headers=u=dr.from(u),e.url=bx(kx(e.baseURL,e.url,e.allowAbsoluteUrls),t.params,t.paramsSerializer),c&&u.set("Authorization","Basic "+btoa((c.username||"")+":"+(c.password?unescape(encodeURIComponent(c.password)):""))),ce.isFormData(n)){if(Mn.hasStandardBrowserEnv||Mn.hasStandardBrowserWebWorkerEnv)u.setContentType(void 0);else if(ce.isFunction(n.getHeaders)){const p=n.getHeaders(),d=["content-type","content-length"];Object.entries(p).forEach(([m,f])=>{d.includes(m.toLowerCase())&&u.set(m,f)})}}if(Mn.hasStandardBrowserEnv&&(a&&ce.isFunction(a)&&(a=a(e)),a||a!==!1&&ZG(e.url))){const p=o&&s&&KG.read(s);p&&u.set(o,p)}return e},QG=typeof XMLHttpRequest<"u",e7=QG&&function(t){return new Promise(function(n,a){const o=Ex(t);let s=o.data;const u=dr.from(o.headers).normalize();let{responseType:c,onUploadProgress:p,onDownloadProgress:d}=o,m,f,b,v,y;function g(){v&&v(),y&&y(),o.cancelToken&&o.cancelToken.unsubscribe(m),o.signal&&o.signal.removeEventListener("abort",m)}let S=new XMLHttpRequest;S.open(o.method.toUpperCase(),o.url,!0),S.timeout=o.timeout;function w(){if(!S)return;const T=dr.from("getAllResponseHeaders"in S&&S.getAllResponseHeaders()),I={data:!c||c==="text"||c==="json"?S.responseText:S.response,status:S.status,statusText:S.statusText,headers:T,config:t,request:S};Sx(function(L){n(L),g()},function(L){a(L),g()},I),S=null}"onloadend"in S?S.onloadend=w:S.onreadystatechange=function(){!S||S.readyState!==4||S.status===0&&!(S.responseURL&&S.responseURL.indexOf("file:")===0)||setTimeout(w)},S.onabort=function(){S&&(a(new qe("Request aborted",qe.ECONNABORTED,t,S)),S=null)},S.onerror=function(R){const I=R&&R.message?R.message:"Network Error",M=new qe(I,qe.ERR_NETWORK,t,S);M.event=R||null,a(M),S=null},S.ontimeout=function(){let R=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const I=o.transitional||vx;o.timeoutErrorMessage&&(R=o.timeoutErrorMessage),a(new qe(R,I.clarifyTimeoutError?qe.ETIMEDOUT:qe.ECONNABORTED,t,S)),S=null},s===void 0&&u.setContentType(null),"setRequestHeader"in S&&ce.forEach(u.toJSON(),function(R,I){S.setRequestHeader(I,R)}),ce.isUndefined(o.withCredentials)||(S.withCredentials=!!o.withCredentials),c&&c!=="json"&&(S.responseType=o.responseType),d&&([b,y]=Rp(d,!0),S.addEventListener("progress",b)),p&&S.upload&&([f,v]=Rp(p),S.upload.addEventListener("progress",f),S.upload.addEventListener("loadend",v)),(o.cancelToken||o.signal)&&(m=T=>{S&&(a(!T||T.type?new kc(null,t,S):T),S.abort(),S=null)},o.cancelToken&&o.cancelToken.subscribe(m),o.signal&&(o.signal.aborted?m():o.signal.addEventListener("abort",m)));const k=VG(o.url);if(k&&Mn.protocols.indexOf(k)===-1){a(new qe("Unsupported protocol "+k+":",qe.ERR_BAD_REQUEST,t));return}S.send(s||null)})},t7=(t,e)=>{const{length:n}=t=t?t.filter(Boolean):[];if(e||n){let a=new AbortController,o;const s=function(d){if(!o){o=!0,c();const m=d instanceof Error?d:this.reason;a.abort(m instanceof qe?m:new kc(m instanceof Error?m.message:m))}};let u=e&&setTimeout(()=>{u=null,s(new qe(`timeout ${e} of ms exceeded`,qe.ETIMEDOUT))},e);const c=()=>{t&&(u&&clearTimeout(u),u=null,t.forEach(d=>{d.unsubscribe?d.unsubscribe(s):d.removeEventListener("abort",s)}),t=null)};t.forEach(d=>d.addEventListener("abort",s));const{signal:p}=a;return p.unsubscribe=()=>ce.asap(c),p}},n7=function*(t,e){let n=t.byteLength;if(n<e){yield t;return}let a=0,o;for(;a<n;)o=a+e,yield t.slice(a,o),a=o},r7=async function*(t,e){for await(const n of a7(t))yield*n7(n,e)},a7=async function*(t){if(t[Symbol.asyncIterator]){yield*t;return}const e=t.getReader();try{for(;;){const{done:n,value:a}=await e.read();if(n)break;yield a}}finally{await e.cancel()}},bT=(t,e,n,a)=>{const o=r7(t,e);let s=0,u,c=p=>{u||(u=!0,a&&a(p))};return new ReadableStream({async pull(p){try{const{done:d,value:m}=await o.next();if(d){c(),p.close();return}let f=m.byteLength;if(n){let b=s+=f;n(b)}p.enqueue(new Uint8Array(m))}catch(d){throw c(d),d}},cancel(p){return c(p),o.return()}},{highWaterMark:2})},vT=64*1024,{isFunction:ff}=ce,i7=(({Request:t,Response:e})=>({Request:t,Response:e}))(ce.global),{ReadableStream:wT,TextEncoder:_T}=ce.global,ST=(t,...e)=>{try{return!!t(...e)}catch{return!1}},o7=t=>{t=ce.merge.call({skipUndefined:!0},i7,t);const{fetch:e,Request:n,Response:a}=t,o=e?ff(e):typeof fetch=="function",s=ff(n),u=ff(a);if(!o)return!1;const c=o&&ff(wT),p=o&&(typeof _T=="function"?(y=>g=>y.encode(g))(new _T):async y=>new Uint8Array(await new n(y).arrayBuffer())),d=s&&c&&ST(()=>{let y=!1;const g=new n(Mn.origin,{body:new wT,method:"POST",get duplex(){return y=!0,"half"}}).headers.has("Content-Type");return y&&!g}),m=u&&c&&ST(()=>ce.isReadableStream(new a("").body)),f={stream:m&&(y=>y.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(y=>{!f[y]&&(f[y]=(g,S)=>{let w=g&&g[y];if(w)return w.call(g);throw new qe(`Response type '${y}' is not supported`,qe.ERR_NOT_SUPPORT,S)})});const b=async y=>{if(y==null)return 0;if(ce.isBlob(y))return y.size;if(ce.isSpecCompliantForm(y))return(await new n(Mn.origin,{method:"POST",body:y}).arrayBuffer()).byteLength;if(ce.isArrayBufferView(y)||ce.isArrayBuffer(y))return y.byteLength;if(ce.isURLSearchParams(y)&&(y=y+""),ce.isString(y))return(await p(y)).byteLength},v=async(y,g)=>{const S=ce.toFiniteNumber(y.getContentLength());return S??b(g)};return async y=>{let{url:g,method:S,data:w,signal:k,cancelToken:T,timeout:R,onDownloadProgress:I,onUploadProgress:M,responseType:L,headers:O,withCredentials:W="same-origin",fetchOptions:F}=Ex(y),G=e||fetch;L=L?(L+"").toLowerCase():"text";let ee=t7([k,T&&T.toAbortSignal()],R),de=null;const ye=ee&&ee.unsubscribe&&(()=>{ee.unsubscribe()});let _e;try{if(M&&d&&S!=="get"&&S!=="head"&&(_e=await v(O,w))!==0){let j=new n(g,{method:"POST",body:w,duplex:"half"}),X;if(ce.isFormData(w)&&(X=j.headers.get("content-type"))&&O.setContentType(X),j.body){const[fe,pe]=mT(_e,Rp(gT(M)));w=bT(j.body,vT,fe,pe)}}ce.isString(W)||(W=W?"include":"omit");const Y=s&&"credentials"in n.prototype,q={...F,signal:ee,method:S.toUpperCase(),headers:O.normalize().toJSON(),body:w,duplex:"half",credentials:Y?W:void 0};de=s&&new n(g,q);let re=await(s?G(de,F):G(g,q));const be=m&&(L==="stream"||L==="response");if(m&&(I||be&&ye)){const j={};["status","statusText","headers"].forEach(we=>{j[we]=re[we]});const X=ce.toFiniteNumber(re.headers.get("content-length")),[fe,pe]=I&&mT(X,Rp(gT(I),!0))||[];re=new a(bT(re.body,vT,fe,()=>{pe&&pe(),ye&&ye()}),j)}L=L||"text";let se=await f[ce.findKey(f,L)||"text"](re,y);return!be&&ye&&ye(),await new Promise((j,X)=>{Sx(j,X,{data:se,headers:dr.from(re.headers),status:re.status,statusText:re.statusText,config:y,request:de})})}catch(Y){throw ye&&ye(),Y&&Y.name==="TypeError"&&/Load failed|fetch/i.test(Y.message)?Object.assign(new qe("Network Error",qe.ERR_NETWORK,y,de),{cause:Y.cause||Y}):qe.from(Y,Y&&Y.code,y,de)}}},s7=new Map,Tx=t=>{let e=t&&t.env||{};const{fetch:n,Request:a,Response:o}=e,s=[a,o,n];let u=s.length,c=u,p,d,m=s7;for(;c--;)p=s[c],d=m.get(p),d===void 0&&m.set(p,d=c?new Map:o7(e)),m=d;return d};Tx();const Sw={http:EG,xhr:e7,fetch:{get:Tx}};ce.forEach(Sw,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch{}Object.defineProperty(t,"adapterName",{value:e})}});const kT=t=>`- ${t}`,l7=t=>ce.isFunction(t)||t===null||t===!1;function c7(t,e){t=ce.isArray(t)?t:[t];const{length:n}=t;let a,o;const s={};for(let u=0;u<n;u++){a=t[u];let c;if(o=a,!l7(a)&&(o=Sw[(c=String(a)).toLowerCase()],o===void 0))throw new qe(`Unknown adapter '${c}'`);if(o&&(ce.isFunction(o)||(o=o.get(e))))break;s[c||"#"+u]=o}if(!o){const u=Object.entries(s).map(([p,d])=>`adapter ${p} `+(d===!1?"is not supported by the environment":"is not available in the build"));let c=n?u.length>1?`since : 42`+u.map(kT).join(` 43`):" "+kT(u[0]):"as no adapter specified";throw new qe("There is no suitable adapter to dispatch the request "+c,"ERR_NOT_SUPPORT")}return o}const Rx={getAdapter:c7,adapters:Sw};function Tb(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new kc(null,t)}function ET(t){return Tb(t),t.headers=dr.from(t.headers),t.data=Eb.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Rx.getAdapter(t.adapter||Gd.adapter,t)(t).then(function(a){return Tb(t),a.data=Eb.call(t,t.transformResponse,a),a.headers=dr.from(a.headers),a},function(a){return _x(a)||(Tb(t),a&&a.response&&(a.response.data=Eb.call(t,t.transformResponse,a.response),a.response.headers=dr.from(a.response.headers))),Promise.reject(a)})}const Cx="1.13.2",_m={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{_m[t]=function(a){return typeof a===t||"a"+(e<1?"n ":" ")+t}});const TT={};_m.transitional=function(e,n,a){function o(s,u){return"[Axios v"+Cx+"] Transitional option '"+s+"'"+u+(a?". "+a:"")}return(s,u,c)=>{if(e===!1)throw new qe(o(u," has been removed"+(n?" in "+n:"")),qe.ERR_DEPRECATED);return n&&!TT[u]&&(TT[u]=!0,console.warn(o(u," has been deprecated since v"+n+" and will be removed in the near future"))),e?e(s,u,c):!0}};_m.spelling=function(e){return(n,a)=>(console.warn(`${a} is likely a misspelling of ${e}`),!0)};function u7(t,e,n){if(typeof t!="object")throw new qe("options must be an object",qe.ERR_BAD_OPTION_VALUE);const a=Object.keys(t);let o=a.length;for(;o-- >0;){const s=a[o],u=e[s];if(u){const c=t[s],p=c===void 0||u(c,s,t);if(p!==!0)throw new qe("option "+s+" must be "+p,qe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new qe("Unknown option "+s,qe.ERR_BAD_OPTION)}}const ep={assertOptions:u7,validators:_m},La=ep.validators;let bs=class{constructor(e){this.defaults=e||{},this.interceptors={request:new fT,response:new fT}}async request(e,n){try{return await this._request(e,n)}catch(a){if(a instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const s=o.stack?o.stack.replace(/^.+\n/,""):"";try{a.stack?s&&!String(a.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(a.stack+=` 44`+s):a.stack=s}catch{}}throw a}}_request(e,n){typeof e=="string"?(n=n||{},n.url=e):n=e||{},n=Rs(this.defaults,n);const{transitional:a,paramsSerializer:o,headers:s}=n;a!==void 0&&ep.assertOptions(a,{silentJSONParsing:La.transitional(La.boolean),forcedJSONParsing:La.transitional(La.boolean),clarifyTimeoutError:La.transitional(La.boolean)},!1),o!=null&&(ce.isFunction(o)?n.paramsSerializer={serialize:o}:ep.assertOptions(o,{encode:La.function,serialize:La.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),ep.assertOptions(n,{baseUrl:La.spelling("baseURL"),withXsrfToken:La.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let u=s&&ce.merge(s.common,s[n.method]);s&&ce.forEach(["delete","get","head","post","put","patch","common"],y=>{delete s[y]}),n.headers=dr.concat(u,s);const c=[];let p=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(p=p&&g.synchronous,c.unshift(g.fulfilled,g.rejected))});const d=[];this.interceptors.response.forEach(function(g){d.push(g.fulfilled,g.rejected)});let m,f=0,b;if(!p){const y=[ET.bind(this),void 0];for(y.unshift(...c),y.push(...d),b=y.length,m=Promise.resolve(n);f<b;)m=m.then(y[f++],y[f++]);return m}b=c.length;let v=n;for(;f<b;){const y=c[f++],g=c[f++];try{v=y(v)}catch(S){g.call(this,S);break}}try{m=ET.call(this,v)}catch(y){return Promise.reject(y)}for(f=0,b=d.length;f<b;)m=m.then(d[f++],d[f++]);return m}getUri(e){e=Rs(this.defaults,e);const n=kx(e.baseURL,e.url,e.allowAbsoluteUrls);return bx(n,e.params,e.paramsSerializer)}};ce.forEach(["delete","get","head","options"],function(e){bs.prototype[e]=function(n,a){return this.request(Rs(a||{},{method:e,url:n,data:(a||{}).data}))}});ce.forEach(["post","put","patch"],function(e){function n(a){return function(s,u,c){return this.request(Rs(c||{},{method:e,headers:a?{"Content-Type":"multipart/form-data"}:{},url:s,data:u}))}}bs.prototype[e]=n(),bs.prototype[e+"Form"]=n(!0)});let d7=class Ax{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const a=this;this.promise.then(o=>{if(!a._listeners)return;let s=a._listeners.length;for(;s-- >0;)a._listeners[s](o);a._listeners=null}),this.promise.then=o=>{let s;const u=new Promise(c=>{a.subscribe(c),s=c}).then(o);return u.cancel=function(){a.unsubscribe(s)},u},e(function(s,u,c){a.reason||(a.reason=new kc(s,u,c),n(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const n=this._listeners.indexOf(e);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const e=new AbortController,n=a=>{e.abort(a)};return this.subscribe(n),e.signal.unsubscribe=()=>this.unsubscribe(n),e.signal}static source(){let e;return{token:new Ax(function(o){e=o}),cancel:e}}};function h7(t){return function(n){return t.apply(null,n)}}function f7(t){return ce.isObject(t)&&t.isAxiosError===!0}const jv={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,Re
44setContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(jv).forEach(([t,e])=>{jv[e]=t});function xx(t){const e=new bs(t),n=ix(bs.prototype.request,e);return ce.extend(n,bs.prototype,e,{allOwnKeys:!0}),ce.extend(n,e,null,{allOwnKeys:!0}),n.create=function(o){return xx(Rs(t,o))},n}const Jt=xx(Gd);Jt.Axios=bs;Jt.CanceledError=kc;Jt.CancelToken=d7;Jt.isCancel=_x;Jt.VERSION=Cx;Jt.toFormData=wm;Jt.AxiosError=qe;Jt.Cancel=Jt.CanceledError;Jt.all=function(e){return Promise.all(e)};Jt.spread=h7;Jt.isAxiosError=f7;Jt.mergeConfig=Rs;Jt.AxiosHeaders=dr;Jt.formToJSON=t=>wx(ce.isHTMLForm(t)?new FormData(t):t);Jt.getAdapter=Rx.getAdapter;Jt.HttpStatusCode=jv;Jt.default=Jt;const{Axios:lie,AxiosError:cie,CanceledError:uie,isCancel:die,CancelToken:hie,VERSION:fie,all:pie,Cancel:mie,isAxiosError:gie,spread:yie,toFormData:bie,AxiosHeaders:vie,HttpStatusCode:wie,formToJSON:_ie,getAdapter:Sie,mergeConfig:kie}=Jt,p7=Jt.create({baseURL:"/api",headers:{"Content-Type":"application/json"}}),m7="getRequest(): no HTTP client is configured. Call registerHostTransport(transport) from the host bootstrap to hand dataflow your own client, or setupRequest({ $device, $userLanguage, $tgPlatform }) to configure the package own axios instance â one of the two has to run before the first dataflow request.";let Ox=null;const g7=t=>{Ox=t},y7=()=>{var t;try{return((t=globalThis.window)==null?void 0:t.axios)??null}catch{return null}},Ix=()=>{const t=Ox??y7();return t||null},qn=()=>{const t=Ix();if(t)return t;throw new Error(m7)};function ju(t,e,n,a){function o(s){return s instanceof n?s:new n(function(u){u(s)})}return new(n||(n=Promise))(function(s,u){function c(m){try{d(a.next(m))}catch(f){u(f)}}function p(m){try{d(a.throw(m))}catch(f){u(f)}}function d(m){m.done?s(m.value):o(m.value).then(c,p)}d((a=a.apply(t,[])).next())})}function b7(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var kw={exports:{}},Zl=typeof Reflect=="object"?Reflect:null,RT=Zl&&typeof Zl.apply=="function"?Zl.apply:function(e,n,a){return Function.prototype.apply.call(e,n,a)},tp;Zl&&typeof Zl.ownKeys=="function"?tp=Zl.ownKeys:Object.getOwnPropertySymbols?tp=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:tp=function(e){return Object.getOwnPropertyNames(e)};function v7(t){console&&console.warn&&console.warn(t)}var Dx=Number.isNaN||function(e){return e!==e};function St(){St.init.call(this)}kw.exports=St;kw.exports.once=k7;St.EventEmitter=St;St.prototype._events=void 0;St.prototype._eventsCount=0;St.prototype._maxListeners=void 0;var CT=10;function Sm(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(St,"defaultMaxListeners",{enumerable:!0,get:function(){return CT},set:function(t){if(typeof t!="number"||t<0||Dx(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");CT=t}});St.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};St.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Dx(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Lx(t){return t._maxListeners===void 0?St.defaultMaxListeners:t._maxListeners}St.prototype.getMaxListeners=function(){return Lx(this)};St.prototype.emit=function(e){for(var n=[],a=1;a<arguments.length;a++)n.push(arguments[a]);var o=e==="error",s=this._events;
vendor: 8,417 bytes, line 44
44if(s!==void 0)o=o&&s.error===void 0;else if(!o)return!1;if(o){var u;if(n.length>0&&(u=n[0]),u instanceof Error)throw u;var c=new Error("Unhandled error."+(u?" ("+u.message+")":""));throw c.context=u,c}var p=s[e];if(p===void 0)return!1;if(typeof p=="function")RT(p,this,n);else for(var d=p.length,m=Bx(p,d),a=0;a<d;++a)RT(m[a],this,n);return!0};function Nx(t,e,n,a){var o,s,u;if(Sm(n),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),s=t._events),u=s[e]),u===void 0)u=s[e]=n,++t._eventsCount;else if(typeof u=="function"?u=s[e]=a?[n,u]:[u,n]:a?u.unshift(n):u.push(n),o=Lx(t),o>0&&u.length>o&&!u.warned){u.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=u.length,v7(c)}return t}St.prototype.addListener=function(e,n){return Nx(this,e,n,!1)};St.prototype.on=St.prototype.addListener;St.prototype.prependListener=function(e,n){return Nx(this,e,n,!0)};function w7(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Px(t,e,n){var a={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},o=w7.bind(a);return o.listener=n,a.wrapFn=o,o}St.prototype.once=function(e,n){return Sm(n),this.on(e,Px(this,e,n)),this};St.prototype.prependOnceListener=function(e,n){return Sm(n),this.prependListener(e,Px(this,e,n)),this};St.prototype.removeListener=function(e,n){var a,o,s,u,c;if(Sm(n),o=this._events,o===void 0)return this;if(a=o[e],a===void 0)return this;if(a===n||a.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete o[e],o.removeListener&&this.emit("removeListener",e,a.listener||n));else if(typeof a!="function"){for(s=-1,u=a.length-1;u>=0;u--)if(a[u]===n||a[u].listener===n){c=a[u].listener,s=u;break}if(s<0)return this;s===0?a.shift():_7(a,s),a.length===1&&(o[e]=a[0]),o.removeListener!==void 0&&this.emit("removeListener",e,c||n)}return this};St.prototype.off=St.prototype.removeListener;St.prototype.removeAllListeners=function(e){var n,a,o;if(a=this._events,a===void 0)return this;if(a.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):a[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete a[e]),this;if(arguments.length===0){var s=Object.keys(a),u;for(o=0;o<s.length;++o)u=s[o],u!=="removeListener"&&this.removeAllListeners(u);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=a[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(o=n.length-1;o>=0;o--)this.removeListener(e,n[o]);return this};function Wx(t,e,n){var a=t._events;if(a===void 0)return[];var o=a[e];return o===void 0?[]:typeof o=="function"?n?[o.listener||o]:[o]:n?S7(o):Bx(o,o.length)}St.prototype.listeners=function(e){return Wx(this,e,!0)};St.prototype.rawListeners=function(e){return Wx(this,e,!1)};St.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Mx.call(t,e)};St.prototype.listenerCount=Mx;function Mx(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}St.prototype.eventNames=function(){return this._eventsCount>0?tp(this._events):[]};function Bx(t,e){for(var n=new Array(e),a=0;a<e;++a)n[a]=t[a];return n}function _7(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function S7(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function k7(t,e){return new Promise(function(n,a){function o(u){t.removeListener(e,s),a(u)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",o),n([].slice.call(arguments))}Ux(t,e,s,{once:!0}),e!=="error"&&E7(t,o,{once:!0})})}function E7(t,e,n){typeof t.on=="function"&&Ux(t,"error",e,n)}function Ux(t,e,n,a){if(typeof t.on=="function")a.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function o(s){a.once&&t.removeEventListener(e,o),n(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var T7=kw.exports,Fx=b7(T7),Bt;(function(t){t[t.timeout=1]="timeout",t[t.transportClosed=2]="transportClosed",t[t.clientDisconnected=3]="clientDisconnected",t[t.clientClosed=4]="clientClosed",t[t.clientConnectToken=5]="clientConnectToken",t[t.clientRefreshToken=6]="clientRefreshToken",t[t.subscriptionUnsubscribed=7]="subscriptionUnsubscribed",t[t.subscriptionSubscribeToken=8]="subscriptionSubscribeToken",t[t.subscriptionRefreshToken=9]="subscriptionRefreshToken",t[t.transportWriteError=10]="transportWriteError",t[t.connectionClosed=11]="connectionClosed",t[t.badConfiguration=12]="badConfiguration"})(Bt||(Bt={}));var mo;(function(t){t[t.connectCalled=0]="connectCalled",t[t.transportClosed=1]="transportClosed",t[t.noPing=2]="noPing",t[t.subscribeTimeout=3]="subscribeTimeout",t[t.unsubscribeError=4]="unsubscribeError"})(mo||(mo={}));var Ju;(function(t){t[t.disconnectCalled=0]="disconnectCalled",t[t.unauthorized=1]="unauthorized",t[t.badProtocol=2]="badProtocol",t[t.messageSizeLimit=3]="messageSizeLimit"})(Ju||(Ju={}));var Cp;(function(t){t[t.subscribeCalled=0]="subscribeCalled",t[t.transportClosed=1]="transportClosed"})(Cp||(Cp={}));var Ap;(function(t){t[t.unsubscribeCalled=0]="unsubscribeCalled",t[t.unauthorized=1]="unauthorized",t[t.clientClosed=2]="clientClosed"})(Ap||(Ap={}));var Vt;(function(t){t.Disconnected="disconnected",t.Connecting="connecting",t.Connected="connected"})(Vt||(Vt={}));var jn;(function(t){t.Unsubscribed="unsubscribed",t.Subscribing="subscribing",t.Subscribed="subscribed"})(jn||(jn={}));function R7(t,e){return t.lastIndexOf(e,0)===0}function $x(t){return t==null?!1:typeof t=="function"}function C7(t,e){if(globalThis.console){const n=globalThis.console[t];$x(n)&&n.apply(globalThis.console,e)}}function A7(t,e){return Math.floor(Math.random()*(e-t+1)+t)}function xp(t,e,n){t>31&&(t=31);const a=A7(0,Math.min(n,e*Math.pow(2,t)));return Math.min(n,e+a)}function x7(t){return"error"in t&&t.error!==null}function Op(t){return Math.min(t*1e3,2147483647)}let O7=class extends Fx{constructor(e,n,a){super(),this._resubscribeTimeout=null,this._refreshTimeout=null,this.channel=n,this.state=jn.Unsubscribed,this._centrifuge=e,this._token="",this._getToken=null,this._data=null,this._getData=null,this._recover=!1,this._offset=null,this._epoch=null,this._recoverable=!1,this._positioned=!1,this._joinLeave=!1,this._minResubscribeDelay=500,this._maxResubscribeDelay=2e4,this._resubscribeTimeout=null,this._resubscribeAttempts=0,this._promises={},this._promiseId=0,this._inflight=!1,this._refreshTimeout=null,this._delta="",this._delta_negotiated=!1,this._prevValue=null,this._unsubPromise=Promise.resolve(),this._setOptions(a),this._centrifuge._debugEnabled?(this.on("state",o=>{this._debug("subscription state",n,o.oldState,"->",o.newState)}),this.on("error",o=>{this._debug("subscription error",n,o)})):this.on("error",function(){Function.prototype()})}ready(e){return this.state===jn.Unsubscribed?Promise.reject({code:Bt.subscriptionUnsubscribed,message:this.state}):this.state===jn.Subscribed?Promise.resolve():new Promise((n,a)=>{const o={resolve:n,reject:a};e&&(o.timeout=setTimeout(function(){a({code:Bt.timeout,message:"timeout"})},e)),this._promises[this._nextPromiseId()]=o})}subscribe(){this._isSubscribed()||(this._resubscribeAttempts=0,this._setSubscribing(Cp.subscribeCalled,"subscribe called"))}unsubscribe(){this._unsubPromise=this._setUnsubscribed(Ap.unsubscribeCalled,"unsubscribe called",!0)}publish(e){const n=this;return this._methodCall().then(function(){return n._centrifuge.publish(n.channel,e)})}presence(){const e=this;return this._methodCall().then(function(){return e._centrifuge.presence(e.channel)})}presenceStats(){const e=this;return this._methodCall().then(function(){return e._centrifuge.presenceStats(e.channel)})}history(e){const n=this;return this._methodCall().then(function(){return n._centrifuge.history(n.channel,e)})}_methodCall(){return this._isSubscribed()?Promise.resolve():this._isUnsubscribed()?Promise.reject({code:Bt.subscriptionUnsubscribed,message:this.state}
44):new Promise((e,n)=>{const a=setTimeout(function(){n({code:Bt.timeout,message:"timeout"})},this._centrifuge._config.timeout);this._promises[this._nextPromiseId()]={timeout:a,resolve:e,reject:n}})}_nextPromiseId(){return++this._promiseId}_needRecover(){return this._recover===!0}_isUnsubscribed(){return this.state===jn.Unsubscribed}_isSubscribing(){return this.state===jn.Subscribing}_isSubscribed(){return this.state===jn.Subscribed}_setState(e){if(this.state!==e){const n=this.state;return this.state=e,this.emit("state",{newState:e,oldState:n,channel:this.channel}),!0}return!1}_usesToken(){return this._token!==""||this._getToken!==null}_clearSubscribingState(){this._resubscribeAttempts=0,this._clearResubscribeTimeout()}_clearSubscribedState(){this._clearRefreshTimeout()}_setSubscribed(e){if(!this._isSubscribing())return;this._clearSubscribingState(),e.recoverable&&(this._recover=!0,this._offset=e.offset||0,this._epoch=e.epoch||""),e.delta?this._delta_negotiated=!0:this._delta_negotiated=!1,this._setState(jn.Subscribed);const n=this._centrifuge._getSubscribeContext(this.channel,e);this.emit("subscribed",n),this._resolvePromises();const a=e.publications;if(a&&a.length>0)for(const o in a)a.hasOwnProperty(o)&&this._handlePublication(a[o]);e.expires===!0&&(this._refreshTimeout=setTimeout(()=>this._refresh(),Op(e.ttl)))}_setSubscribing(e,n){return ju(this,void 0,void 0,function*(){this._isSubscribing()||(this._isSubscribed()&&this._clearSubscribedState(),this._setState(jn.Subscribing)&&this.emit("subscribing",{channel:this.channel,code:e,reason:n}),this._centrifuge._transport&&this._centrifuge._transport.emulation()&&(yield this._unsubPromise),this._isSubscribing()&&this._subscribe())})}_subscribe(){return this._debug("subscribing on",this.channel),this._isTransportOpen()?this._inflight?null:(this._inflight=!0,this._canSubscribeWithoutGettingToken()?this._subscribeWithoutToken():(this._getSubscriptionToken().then(e=>this._handleTokenResponse(e)).catch(e=>this._handleTokenError(e)),null)):(this._debug("delay subscribe on",this.channel,"till connected"),null)}_isTransportOpen(){return this._centrifuge._transportIsOpen}_canSubscribeWithoutGettingToken(){return!this._usesToken()||!!this._token}_subscribeWithoutToken(){return this._getData?(this._getDataAndSubscribe(this._token),null):this._sendSubscribe(this._token)}_getDataAndSubscribe(e){if(!this._getData){this._inflight=!1;return}this._getData({channel:this.channel}).then(n=>{if(!this._isSubscribing()){this._inflight=!1;return}this._data=n,this._sendSubscribe(e)}).catch(n=>this._handleGetDataError(n))}_handleGetDataError(e){if(!this._isSubscribing()){this._inflight=!1;return}if(e instanceof Ci){this._inflight=!1,this._failUnauthorized();return}this.emit("error",{type:"subscribeData",channel:this.channel,error:{code:Bt.badConfiguration,message:(e==null?void 0:e.toString())||""}}),this._inflight=!1,this._scheduleResubscribe()}_handleTokenResponse(e){if(!this._isSubscribing()){this._inflight=!1;return}if(!e){this._inflight=!1,this._failUnauthorized();return}this._token=e,this._getData?this._getDataAndSubscribe(e):this._sendSubscribe(e)}_handleTokenError(e){if(!this._isSubscribing()){this._inflight=!1;return}if(e instanceof Ci){this._inflight=!1,this._failUnauthorized();return}this.emit("error",{type:"subscribeToken",channel:this.channel,error:{code:Bt.subscriptionSubscribeToken,message:(e==null?void 0:e.toString())||""}}),this._inflight=!1,this._scheduleResubscribe()}_sendSubscribe(e){if(!this._isTransportOpen())return this._inflight=!1,null;const n=this._buildSubscribeCommand(e);return this._centrifuge._call(n).then(a=>{this._inflight=!1;const o=a.reply.subscribe;this._handleSubscribeResponse(o),a.next&&a.next()},a=>{this._inflight=!1,this._handleSubscribeError(a.error),a.next&&a.next()}),n}_buildSubscribeCommand(e){const n={channel:this.channel};if(e&&(n.token=e),this._data&&(n.data=this._data),this._positioned&&(n.positioned=!0),this._recoverable&&(n.recoverable=!0),this._joinLeave&&(n.join_leave=!0),this._needRecover()){n.recover=!0;const a=this._getOffset();a&&(n.offset=a);const o=this._getEpoch();o&&(n.epoch=o)}return this._delta&&(n.delta=this._delta),{subscribe:n}}_debug(...e){this._centrifuge._debug(...e)}_handleSubscribeError(e){if(this._isSubscribing()){if(e.code===Bt.timeout){this._centrifuge._disconnect(mo.subscribeTimeout,"subscribe timeout",!0);return}this._subscribeError(e)}}_handleSubscribeResponse(e){this._isSubscribing()&&this._setSubscribed(e)}_setUnsubscribed(e,n,a){if(this._isUnsubscribed())return Promise.resolve();
44let o=Promise.resolve();return this._isSubscribed()?(a&&(o=this._centrifuge._unsubscribe(this)),this._clearSubscribedState()):this._isSubscribing()&&(this._inflight&&a&&(o=this._centrifuge._unsubscribe(this)),this._clearSubscribingState()),this._inflight=!1,this._setState(jn.Unsubscribed)&&this.emit("unsubscribed",{channel:this.channel,code:e,reason:n}),this._rejectPromises({code:Bt.subscriptionUnsubscribed,message:this.state}),o}_handlePublication(e){if(this._delta&&this._delta_negotiated){const{newData:a,newPrevValue:o}=this._centrifuge._codec.applyDeltaIfNeeded(e,this._prevValue);e.data=a,this._prevValue=o}const n=this._centrifuge._getPublicationContext(this.channel,e);this.emit("publication",n),e.offset&&(this._offset=e.offset)}_handleJoin(e){const n=this._centrifuge._getJoinLeaveContext(e.info);this.emit("join",{channel:this.channel,info:n})}_handleLeave(e){const n=this._centrifuge._getJoinLeaveContext(e.info);this.emit("leave",{channel:this.channel,info:n})}_resolvePromises(){for(const e in this._promises)this._promises.hasOwnProperty(e)&&(this._promises[e].timeout&&clearTimeout(this._promises[e].timeout),this._promises[e].resolve(),delete this._promises[e])}_rejectPromises(e){for(const n in this._promises)this._promises.hasOwnProperty(n)&&(this._promises[n].timeout&&clearTimeout(this._promises[n].timeout),this._promises[n].reject(e),delete this._promises[n])}_scheduleResubscribe(){if(!this._isSubscribing()){this._debug("not in subscribing state, skip resubscribe scheduling",this.channel);return}const e=this,n=this._getResubscribeDelay();this._resubscribeTimeout=setTimeout(function(){e._isSubscribing()&&e._subscribe()},n),this._debug("resubscribe scheduled after "+n,this.channel)}_subscribeError(e){if(this._isSubscribing())if(e.code<100||e.code===109||e.temporary===!0){e.code===109&&(this._token="");const n={channel:this.channel,type:"subscribe",error:e};this._centrifuge.state===Vt.Connected&&this.emit("error",n),this._scheduleResubscribe()}else this._setUnsubscribed(e.code,e.message,!1)}_getResubscribeDelay(){const e=xp(this._resubscribeAttempts,this._minResubscribeDelay,this._maxResubscribeDelay);return this._resubscribeAttempts++,e}_setOptions(e){if(e&&(e.since&&(this._offset=e.since.offset||0,this._epoch=e.since.epoch||"",this._recover=!0),e.data&&(this._data=e.data),e.getData&&(this._getData=e.getData),e.minResubscribeDelay!==void 0&&(this._minResubscribeDelay=e.minResubscribeDelay),e.maxResubscribeDelay!==void 0&&(this._maxResubscribeDelay=e.maxResubscribeDelay),e.token&&(this._token=e.token),e.getToken&&(this._getToken=e.getToken),e.positioned===!0&&(this._positioned=!0),e.recoverable===!0&&(this._recoverable=!0),e.joinLeave===!0&&(this._joinLeave=!0),e.delta)){if(e.delta!=="fossil")throw new Error("unsupported delta format");this._delta=e.delta}}_getOffset(){const e=this._offset;return e!==null?e:0}_getEpoch(){const e=this._epoch;return e!==null?e:""}_clearRefreshTimeout(){this._refreshTimeout!==null&&(clearTimeout(this._refreshTimeout),this._refreshTimeout=null)}_clearResubscribeTimeout(){this._resubscribeTimeout!==null&&(clearTimeout(this._resubscribeTimeout),this._resubscribeTimeout=null)}_getSubscriptionToken(){this._debug("get subscription token for channel",this.channel);const e={channel:this.channel},n=this._getToken;
vendor: 6,179 bytes, lines 44-45
44return n===null?(this.emit("error",{type:"configuration",channel:this.channel,error:{code:Bt.badConfiguration,message:"provide a function to get channel subscription token"}}),Promise.reject(new Ci(""))):n(e)}_refresh(){this._clearRefreshTimeout();const e=this;this._getSubscriptionToken().then(function(n){if(!e._isSubscribed())return;if(!n){e._failUnauthorized();return}e._token=n;const o={sub_refresh:{channel:e.channel,token:n}};e._centrifuge._call(o).then(s=>{const u=s.reply.sub_refresh;e._refreshResponse(u),s.next&&s.next()},s=>{e._refreshError(s.error),s.next&&s.next()})}).catch(function(n){if(n instanceof Ci){e._failUnauthorized();return}e.emit("error",{type:"refreshToken",channel:e.channel,error:{code:Bt.subscriptionRefreshToken,message:n!==void 0?n.toString():""}}),e._refreshTimeout=setTimeout(()=>e._refresh(),e._getRefreshRetryDelay())})}_refreshResponse(e){this._isSubscribed()&&(this._debug("subscription token refreshed, channel",this.channel),this._clearRefreshTimeout(),e.expires===!0&&(this._refreshTimeout=setTimeout(()=>this._refresh(),Op(e.ttl))))}_refreshError(e){this._isSubscribed()&&(e.code<100||e.temporary===!0?(this.emit("error",{type:"refresh",channel:this.channel,error:e}),this._refreshTimeout=setTimeout(()=>this._refresh(),this._getRefreshRetryDelay())):this._setUnsubscribed(e.code,e.message,!0))}_getRefreshRetryDelay(){return xp(0,1e4,2e4)}_failUnauthorized(){this._setUnsubscribed(Ap.unauthorized,"unauthorized",!0)}};class I7{constructor(e,n){this.endpoint=e,this.options=n,this._transport=null}name(){return"sockjs"}subName(){return"sockjs-"+this._transport.transport}emulation(){return!1}supported(){return this.options.sockjs!==null}initialize(e,n){this._transport=new this.options.sockjs(this.endpoint,null,this.options.sockjsOptions),this._transport.onopen=()=>{n.onOpen()},this._transport.onerror=a=>{n.onError(a)},this._transport.onclose=a=>{n.onClose(a)},this._transport.onmessage=a=>{n.onMessage(a.data)}}close(){this._transport.close()}send(e){this._transport.send(e)}}class AT{constructor(e,n){this.endpoint=e,this.options=n,this._transport=null}name(){return"websocket"}subName(){return"websocket"}emulation(){return!1}supported(){return this.options.websocket!==void 0&&this.options.websocket!==null}initialize(e,n){let a="";e==="protobuf"&&(a="centrifuge-protobuf"),a!==""?this._transport=new this.options.websocket(this.endpoint,a):this._transport=new this.options.websocket(this.endpoint),e==="protobuf"&&(this._transport.binaryType="arraybuffer"),this._transport.onopen=()=>{n.onOpen()},this._transport.onerror=o=>{n.onError(o)},this._transport.onclose=o=>{n.onClose(o)},this._transport.onmessage=o=>{n.onMessage(o.data)}}close(){this._transport.close()}send(e){this._transport.send(e)}}class D7{constructor(e,n){this.endpoint=e,this.options=n,this._abortController=null,this._utf8decoder=new TextDecoder,this._protocol="json"}name(){return"http_stream"}subName(){return"http_stream"}emulation(){return!0}_handleErrors(e){if(!e.ok)throw new Error(e.status);return e}_fetchEventTarget(e,n,a){const o=new EventTarget,s=e.options.fetch;return s(n,a).then(e._handleErrors).then(u=>{o.dispatchEvent(new Event("open"));let c="",p=0,d=new Uint8Array;const m=u.body.getReader();return new e.options.readableStream({start(f){function b(){return m.read().then(({done:v,value:y})=>{if(v){o.dispatchEvent(new Event("close")),f.close();return}try{if(e._protocol==="json")for(c+=e._utf8decoder.decode(y);p<c.length;)if(c[p]===` 45`){const g=c.substring(0,p);o.dispatchEvent(new MessageEvent("message",{data:g})),c=c.substring(p+1),p=0}else++p;else{const g=new Uint8Array(d.length+y.length);for(g.set(d),g.set(y,d.length),d=g;;){const S=e.options.decoder.decodeReply(d);if(S.ok){const w=d.slice(0,S.pos);o.dispatchEvent(new MessageEvent("message",{data:w})),d=d.slice(S.pos);continue}break}}}catch(g){o.dispatchEvent(new Event("error",{detail:g})),o.dispatchEvent(new Event("close")),f.close();return}b()}).catch(function(v){o.dispatchEvent(new Event("error",{detail:v})),o.dispatchEvent(new Event("close")),f.close()})}return b()}})}).catch(u=>{o.dispatchEvent(new Event("error",{detail:u})),o.dispatchEvent(new Event("close"))}),o}supported(){return this.options.fetch!==null&&this.options.readableStream!==null&&typeof TextDecoder<"u"&&typeof AbortController<"u"&&typeof EventTarget<"u"&&typeof Event<"u"&&typeof MessageEvent<"u"&&typeof Error<"u"}initialize(e,n,a){this._protocol=e,this._abortController=new AbortController;let o,s;e==="json"?(o={Accept:"application/json","Content-Type":"application/json"},s=a):(o={Accept:"application/octet-stream","Content-Type":"application/octet-stream"},s=a);const u={method:"POST",headers:o,body:s,mode:"cors",credentials:"same-origin",signal:this._abortController.signal},c=this._fetchEventTarget(this,this.endpoint,u);c.addEventListener("open",()=>{n.onOpen()}),c.addEventListener("error",p=>{this._abortController.abort(),n.onError(p)}),c.addEventListener("close",()=>{this._abortController.abort(),n.onClose({code:4,reason:"connection closed"})}),c.addEventListener("message",p=>{n.onMessage(p.data)})}close(){this._abortController.abort()}send(e,n,a){let o,s;const u={session:n,node:a,data:e};this._protocol==="json"?(o={"Content-Type":"application/json"},s=JSON.stringify(u)):(o={"Content-Type":"application/octet-stream"},s=this.options.encoder.encodeEmulationRequest(u));const c=this.options.fetch,p={method:"POST",headers:o,body:s,mode:"cors",credentials:"same-origin"};c(this.options.emulationEndpoint,p)}}class L7{constructor(e,n){this.endpoint=e,this.options=n,this._protocol="json",this._transport=null,this._onClose=null}name(){return"sse"}subName(){return"sse"}emulation(){return!0}supported(){return this.options.eventsource!==null&&this.options.fetch!==null}initialize(e,n,a){let o;globalThis&&globalThis.document&&globalThis.document.baseURI?o=new URL(this.endpoint,globalThis.document.baseURI):o=new URL(this.endpoint),o.searchParams.append("cf_connect",a);const s={},u=new this.options.eventsource(o.toString(),s);this._transport=u;const c=this;u.onopen=function(){n.onOpen()},u.onerror=function(p){u.close(),n.onError(p),n.onClose({code:4,reason:"connection closed"})}
45,u.onmessage=function(p){n.onMessage(p.data)},c._onClose=function(){n.onClose({code:4,reason:"connection closed"})}}close(){this._transport.close(),this._onClose!==null&&this._onClose()}send(e,n,a){const o={session:n,node:a,data:e},s={"Content-Type":"application/json"},u=JSON.stringify(o),c=this.options.fetch,p={method:"POST",headers:s,body:u,mode:"cors",credentials:"same-origin"};c(this.options.emulationEndpoint,p)}}class N7{constructor(e,n){this.endpoint=e,this.options=n,this._transport=null,this._stream=null,this._writer=null,this._utf8decoder=new TextDecoder,this._protocol="json"}name(){return"webtransport"}subName(){return"webtransport"}emulation(){return!1}supported(){return this.options.webtransport!==void 0&&this.options.webtransport!==null}initialize(e,n){return ju(this,void 0,void 0,function*(){let a;globalThis&&globalThis.document&&globalThis.document.baseURI?a=new URL(this.endpoint,globalThis.document.baseURI):a=new URL(this.endpoint),e==="protobuf"&&a.searchParams.append("cf_protocol","protobuf"),this._protocol=e;const o=new EventTarget;this._transport=new this.options.webtransport(a.toString()),this._transport.closed.then(()=>{n.onClose({code:4,reason:"connection closed"})}).catch(()=>{n.onClose({code:4,reason:"connection closed"})});try{yield this._transport.ready}catch{this.close();return}let s;try{s=yield this._transport.createBidirectionalStream()}catch{this.close();return}this._stream=s,this._writer=this._stream.writable.getWriter(),o.addEventListener("close",()=>{n.onClose({code:4,reason:"connection closed"})}),o.addEventListener("message",u=>{n.onMessage(u.data)}),this._startReading(o),n.onOpen()})}_startReading(e){return ju(this,void 0,void 0,function*(){const n=this._stream.readable.getReader();let a="",o=0,s=new Uint8Array;try{for(;;){const{done:u,value:c}=yield n.read();if(c.length>0)if(this._protocol==="json")for(a+=this._utf8decoder.decode(c);o<a.length;)if(a[o]===` 46`){const p=a.substring(0,o);e.dispatchEvent(new MessageEvent("message",{data:p})),a=a.substring(o+1),o=0}else++o;else{const p=new Uint8Array(s.length+c.length);for(p.set(s),p.set(c,s.length),s=p;;){const d=this.options.decoder.decodeReply(s);if(d.ok){const m=s.slice(0,d.pos);e.dispatchEvent(new MessageEvent("message",{data:m})),s=s.slice(d.pos);continue}break}}if(u)break}}catch{e.dispatchEvent(new Event("close"))}})}close(){return ju(this,void 0,void 0,function*(){try{this._writer&&(yield this._writer.close()),this._transport.close()}catch{}})}send(e){return ju(this,void 0,void 0,function*(){let n;this._protocol==="json"?n=new TextEncoder().encode(e+` 47`):n=e;try{yield this._writer.write(n)}catch{this.close()}})}}const P7=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,-1,-1,-1,-1,36,-1,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,-1,-1,-1,63,-1];class W7{constructor(e){this.a=e,this.pos=0}haveBytes(){return this.pos<this.a.length}getByte(){const e=this.a[this.pos];if(this.pos++,this.pos>this.a.length)throw new RangeError("out of bounds");return e}getChar(){return String.fromCharCode(this.getByte())}getInt(){let e=0,n;for(;this.haveBytes()&&(n=P7[127&this.getByte()])>=0;)e=(e<<6)+n;return this.pos--,e>>>0}}class M7{constructor(){this.a=[]}toByteArray(e){return Array.isArray(e)?this.a:new Uint8Array(this.a)}putArray(e,n,a){for(let o=n;o<a;o++)this.a.push(e[o])}}function B7(t){let e=0,n=0,a=0,o=0,s=0,u=t.length;for(;u>=16;)e=e+t[s+0]|0,n=n+t[s+1]|0,a=a+t[s+2]|0,o=o+t[s+3]|0,e=e+t[s+4]|0,n=n+t[s+5]|0,a=a+t[s+6]|0,o=o+t[s+7]|0,e=e+t[s+8]|0,n=n+t[s+9]|0,a=a+t[s+10]|0,o=o+t[s+11]|0,e=e+t[s+12]|0,n=n+t[s+13]|0,a=a+t[s+14]|0,o=o+t[s+15]|0,s+=16,u-=16;for(;u>=4;)e=e+t[s+0]|0,n=n+t[s+1]|0,a=a+t[s+2]|0,o=o+t[s+3]|0,s+=4,u-=4;switch(o=((o+(a<<8)|0)+(n<<16)|0)+(e<<24)|0,u){case 3:o=o+(t[s+2]<<8)|0;case 2:o=o+(t[s+1]<<16)|0;case 1:o=o+(t[s+0]<<24)|0}return o>>>0}function U7(t,e){let n=0;const a=new W7(e),o=t.length,s=e.length,u=a.getInt();if(a.getChar()!==` 48`)throw new Error("size integer not terminated by '\\n'");const c=new M7;for(;a.haveBytes();){const p=a.getInt();let d;switch(a.getChar()){case"@":if(d=a.getInt(),a.haveBytes()&&a.getChar()!==",")throw new Error("copy command not terminated by ','");if(n+=p,n>u)throw new Error("copy exceeds output file size");if(d+p>o)throw new Error("copy extends past end of input");c.putArray(t,d,d+p);break;case":":if(n+=p,n>u)throw new Error("insert command gives an output larger than predicted");if(p>s)throw new Error("insert count exceeds size of delta");c.putArray(a.a,a.pos,a.pos+p),a.pos+=p;break;case";":{const m=c.toByteArray(t);if(p!==B7(m))throw new Error("bad checksum");if(n!==u)throw new Error("generated size does not match predicted size");return m}default:throw new Error("unknown delta operator")}}throw new Error("unterminated delta")}class xT{name(){return"json"}encodeCommands(e){return e.map(n=>JSON.stringify(n)).join(` 49`)}decodeReplies(e){return e.trim().split(` 50`).map(n=>JSON.parse(n))}applyDeltaIfNeeded(e,n){let a,o;if(e.delta){const s=U7(n,new TextEncoder().encode(e.data));a=JSON.parse(new TextDecoder().decode(s)),o=s}else a=JSON.parse(e.data),o=new TextEncoder().encode(e.data);return{newData:a,newPrevValue:o}}}const F7={headers:{},token:"",getToken:null,data:null,getData:null,debug:!1,name:"js",version:"",fetch:null,readableStream:null,websocket:null,eventsource:null,sockjs:null,sockjsOptions:{},emulationEndpoint:"/emulation",minReconnectDelay:500,maxReconnectDelay:2e4,timeout:5e3,maxServerPingDelay:1e4,networkEventTarget:null};
50class Ci extends Error{constructor(e){super(e),this.name=this.constructor.name}}class km extends Fx{constructor(e,n){super(),this._reconnectTimeout=null,this._refreshTimeout=null,this._serverPingTimeout=null,this.state=Vt.Disconnected,this._transportIsOpen=!1,this._endpoint=e,this._emulation=!1,this._transports=[],this._currentTransportIndex=0,this._triedAllTransports=!1,this._transportWasOpen=!1,this._transport=null,this._transportId=0,this._deviceWentOffline=!1,this._transportClosed=!0,this._codec=new xT,this._reconnecting=!1,this._reconnectTimeout=null,this._reconnectAttempts=0,this._client=null,this._session="",this._node="",this._subs={},this._serverSubs={},this._commandId=0,this._commands=[],this._batching=!1,this._refreshRequired=!1,this._refreshTimeout=null,this._callbacks={},this._token="",this._data=null,this._dispatchPromise=Promise.resolve(),this._serverPing=0,this._serverPingTimeout=null,this._sendPong=!1,this._promises={},this._promiseId=0,this._debugEnabled=!1,this._networkEventsSet=!1,this._config=Object.assign(Object.assign({},F7),n),this._configure(),this._debugEnabled?(this.on("state",a=>{this._debug("client state",a.oldState,"->",a.newState)}),this.on("error",a=>{this._debug("client error",a)})):this.on("error",function(){Function.prototype()})}newSubscription(e,n){if(this.getSubscription(e)!==null)throw new Error("Subscription to the channel "+e+" already exists");const a=new O7(this,e,n);return this._subs[e]=a,a}getSubscription(e){return this._getSub(e)}removeSubscription(e){e&&(e.state!==jn.Unsubscribed&&e.unsubscribe(),this._removeSubscription(e))}subscriptions(){return this._subs}ready(e){return this.state===Vt.Disconnected?Promise.reject({code:Bt.clientDisconnected,message:"client disconnected"}):this.state===Vt.Connected?Promise.resolve():new Promise((n,a)=>{const o={resolve:n,reject:a};e&&(o.timeout=setTimeout(function(){a({code:Bt.timeout,message:"timeout"})},e)),this._promises[this._nextPromiseId()]=o})}connect(){if(this._isConnected()){this._debug("connect called when already connected");return}if(this._isConnecting()){this._debug("connect called when already connecting");return}this._debug("connect called"),this._reconnectAttempts=0,this._startConnecting()}disconnect(){this._disconnect(Ju.disconnectCalled,"disconnect called",!1)}setToken(e){this._token=e}setHeaders(e){this._config.headers=e}send(e){const n={send:{data:e}},a=this;return this._methodCall().then(function(){return a._transportSendCommands([n])?Promise.resolve():Promise.reject(a._createErrorObject(Bt.transportWriteError,"transport write error"))})}rpc(e,n){const a={rpc:{method:e,data:n}},o=this;return this._methodCall().then(function(){return o._callPromise(a,function(s){return{data:s.rpc.data}})})}publish(e,n){const a={publish:{channel:e,data:n}},o=this;return this._methodCall().then(function(){return o._callPromise(a,function(){return{}})})}history(e,n){const a={history:this._getHistoryRequest(e,n)},o=this;return this._methodCall().then(function(){return o._callPromise(a,function(s){const u=s.history,c=[];if(u.publications)for(let p=0;p<u.publications.length;p++)c.push(o._getPublicationContext(e,u.publications[p]));return{publications:c,epoch:u.epoch||"",offset:u.offset||0}})})}presence(e){const n={presence:{channel:e}},a=this;return this._methodCall().then(function(){return a._callPromise(n,function(o){const s=o.presence.presence;for(const u in s)if(s.hasOwnProperty(u)){const c=s[u].conn_info,p=s[u].chan_info;c&&(s[u].connInfo=c),p&&(s[u].chanInfo=p)}return{clients:s}})})}presenceStats(e){const n={presence_stats:{channel:e}},a=this;return this._methodCall().then(function(){return a._callPromise(n,function(o){const s=o.presence_stats;return{numUsers:s.num_users,numClients:s.num_clients}})})}startBatching(){this._batching=!0}stopBatching(){const e=this;Promise.resolve().then(function(){Promise.resolve().then(function(){e._batching=!1,e._flush()})})}_debug(...e){this._debugEnabled&&C7("debug",e)}_formatOverride(){}_configure(){if(!("Promise"in globalThis))throw new Error("Promise polyfill required");if(!this._endpoint)throw new Error("endpoint configuration required");if(this._config.token!==null&&(this._token=this._config.token),this._config.data!==null&&(this._data=this._config.data),this._codec=new xT,this._formatOverride(),(this._config.debug===!0||typeof localStorage<"u"&&localStorage.getItem("centrifuge.debug"))&&(this._debugEnabled=!0),this._debug("config",this._config),typeof this._endpoint!="string")if(typeof this._endpoint=="object"&&this._endpoint instanceof Array){this._transports=this._endpoint,this._emulation=!0;for(const e in this._transports)if(this._transports.hasOwnProperty(e)){const n=this._transports[e];if(!n.endpoint||!n.transport)throw new Error("malformed transport configuration");const a=n.transport;if(["websocket","http_stream","sse","sockjs","webtransport"].indexOf(a)<0)throw new Error("unsupported transport name: "+a)}}else throw new Error("unsupported url configuration type: only string or array of objects are supported")}_setState(e){if(this.state!==e){this._reconnecting=!1;const n=this.state;
50return this.state=e,this.emit("state",{newState:e,oldState:n}),!0}return!1}_isDisconnected(){return this.state===Vt.Disconnected}_isConnecting(){return this.state===Vt.Connecting}_isConnected(){return this.state===Vt.Connected}_nextCommandId(){return++this._commandId}_setNetworkEvents(){if(this._networkEventsSet)return;let e=null;this._config.networkEventTarget!==null?e=this._config.networkEventTarget:typeof globalThis.addEventListener<"u"&&(e=globalThis),e&&(e.addEventListener("offline",()=>{this._debug("offline event triggered"),(this.state===Vt.Connected||this.state===Vt.Connecting)&&(this._disconnect(mo.transportClosed,"transport closed",!0),this._deviceWentOffline=!0)}),e.addEventListener("online",()=>{this._debug("online event triggered"),this.state===Vt.Connecting&&(this._deviceWentOffline&&!this._transportClosed&&(this._deviceWentOffline=!1,this._transportClosed=!0),this._clearReconnectTimeout(),this._startReconnecting())}),this._networkEventsSet=!0)}_getReconnectDelay(){const e=xp(this._reconnectAttempts,this._config.minReconnectDelay,this._config.maxReconnectDelay);return this._reconnectAttempts+=1,e}_clearOutgoingRequests(){for(const e in this._callbacks)if(this._callbacks.hasOwnProperty(e)){const n=this._callbacks[e];clearTimeout(n.timeout);const a=n.errback;if(!a)continue;a({error:this._createErrorObject(Bt.connectionClosed,"connection closed")})}this._callbacks={}}_clearConnectedState(){this._client=null,this._clearServerPingTimeout(),this._clearRefreshTimeout();for(const e in this._subs){if(!this._subs.hasOwnProperty(e))continue;const n=this._subs[e];n.state===jn.Subscribed&&n._setSubscribing(Cp.transportClosed,"transport closed")}for(const e in this._serverSubs)this._serverSubs.hasOwnProperty(e)&&this.emit("subscribing",{channel:e})}_handleWriteError(e){for(const n of e){const a=n.id;if(!(a in this._callbacks))continue;const o=this._callbacks[a];clearTimeout(this._callbacks[a].timeout),delete this._callbacks[a];const s=o.errback;s({error:this._createErrorObject(Bt.transportWriteError,"transport write error")})}}_transportSendCommands(e){if(!e.length)return!0;if(!this._transport)return!1;try{this._transport.send(this._codec.encodeCommands(e),this._session,this._node)}
vendor: 4,540 bytes, line 50
50catch(n){return this._debug("error writing commands",n),this._handleWriteError(e),!1}return!0}_initializeTransport(){let e;this._config.websocket!==null?e=this._config.websocket:typeof globalThis.WebSocket!="function"&&typeof globalThis.WebSocket!="object"||(e=globalThis.WebSocket);let n=null;this._config.sockjs!==null?n=this._config.sockjs:typeof globalThis.SockJS<"u"&&(n=globalThis.SockJS);let a=null;this._config.eventsource!==null?a=this._config.eventsource:typeof globalThis.EventSource<"u"&&(a=globalThis.EventSource);let o=null;this._config.fetch!==null?o=this._config.fetch:typeof globalThis.fetch<"u"&&(o=globalThis.fetch);let s=null;if(this._config.readableStream!==null?s=this._config.readableStream:typeof globalThis.ReadableStream<"u"&&(s=globalThis.ReadableStream),this._emulation){this._currentTransportIndex>=this._transports.length&&(this._triedAllTransports=!0,this._currentTransportIndex=0);let v=0;for(;;){if(v>=this._transports.length)throw new Error("no supported transport found");const y=this._transports[this._currentTransportIndex],g=y.transport,S=y.endpoint;if(g==="websocket"){if(this._debug("trying websocket transport"),this._transport=new AT(S,{websocket:e}),!this._transport.supported()){this._debug("websocket transport not available"),this._currentTransportIndex++,v++;continue}}else if(g==="webtransport"){if(this._debug("trying webtransport transport"),this._transport=new N7(S,{webtransport:globalThis.WebTransport,decoder:this._codec,encoder:this._codec}),!this._transport.supported()){this._debug("webtransport transport not available"),this._currentTransportIndex++,v++;continue}}else if(g==="http_stream"){if(this._debug("trying http_stream transport"),this._transport=new D7(S,{fetch:o,readableStream:s,emulationEndpoint:this._config.emulationEndpoint,decoder:this._codec,encoder:this._codec}),!this._transport.supported()){this._debug("http_stream transport not available"),this._currentTransportIndex++,v++;continue}}else if(g==="sse"){if(this._debug("trying sse transport"),this._transport=new L7(S,{eventsource:a,fetch:o,emulationEndpoint:this._config.emulationEndpoint}),!this._transport.supported()){this._debug("sse transport not available"),this._currentTransportIndex++,v++;continue}}else if(g==="sockjs"){if(this._debug("trying sockjs"),this._transport=new I7(S,{sockjs:n,sockjsOptions:this._config.sockjsOptions}),!this._transport.supported()){this._debug("sockjs transport not available"),this._currentTransportIndex++,v++;continue}}else throw new Error("unknown transport "+g);break}}else{if(R7(this._endpoint,"http"))throw new Error("Provide explicit transport endpoints configuration in case of using HTTP (i.e. using array of TransportEndpoint instead of a single string), or use ws(s):// scheme in an endpoint if you aimed using WebSocket transport");if(this._debug("client will use websocket"),this._transport=new AT(this._endpoint,{websocket:e}),!this._transport.supported())throw new Error("WebSocket constructor not found, make sure it is available globally or passed as a dependency in Centrifuge options")}const u=this,c=this._transport,p=this._nextTransportId();u._debug("id of transport",p);let d=!1;const m=[];if(this._transport.emulation()){const v=u._sendConnect(!0);m.push(v)}this._setNetworkEvents();const f=this._codec.encodeCommands(m);this._transportClosed=!1;let b;b=setTimeout(function(){c.close()},this._config.timeout),this._transport.initialize(this._codec.name(),{onOpen:function(){if(b&&(clearTimeout(b),b=null),u._transportId!=p){u._debug("open callback from non-actual transport"),c.close();return}d=!0,u._debug(c.subName(),"transport open"),!c.emulation()&&(u._transportIsOpen=!0,u._transportWasOpen=!0,u.startBatching(),u._sendConnect(!1),u._sendSubscribeCommands(),u.stopBatching(),u.emit("__centrifuge_debug:connect_frame_sent",{}))},onError:function(v){if(u._transportId!=p){u._debug("error callback from non-actual transport");return}u._debug("transport level error",v)},onClose:function(v){if(b&&(clearTimeout(b),b=null),u._transportId!=p){u._debug("close callback from non-actual transport");return}u._debug(c.subName(),"transport closed"),u._transportClosed=!0,u._transportIsOpen=!1;let y="connection closed",g=!0,S=0;if(v&&"code"in v&&v.code&&(S=v.code),v&&v.reason)try{const w=JSON.parse(v.reason);y=w.reason,g=w.reconnect}catch{y=v.reason,(S>=3500&&S<4e3||S>=4500&&S<5e3)&&(g=!1)}S<3e3?(S===1009?(S=Ju.messageSizeLimit,y="message size limit exceeded",g=!1):(S=mo.transportClosed,y="transport closed"),u._emulation&&!u._transportWasOpen&&(u._
50currentTransportIndex++,u._currentTransportIndex>=u._transports.length&&(u._triedAllTransports=!0,u._currentTransportIndex=0))):u._transportWasOpen=!0,u._isConnecting()&&!d&&u.emit("error",{type:"transport",error:{code:Bt.transportClosed,message:"transport closed"},transport:c.name()}),u._reconnecting=!1,u._disconnect(S,y,g)},onMessage:function(v){u._dataReceived(v)}},f),u.emit("__centrifuge_debug:transport_initialized",{})}_sendConnect(e){const n=this._constructConnectCommand(),a=this;return this._call(n,e).then(o=>{const s=o.reply.connect;a._connectResponse(s),o.next&&o.next()},o=>{a._connectError(o.error),o.next&&o.next()}),n}_startReconnecting(){if(this._debug("start reconnecting"),!this._isConnecting()){this._debug("stop reconnecting: client not in connecting state");return}if(this._reconnecting){this._debug("reconnect already in progress, return from reconnect routine");return}if(this._transportClosed===!1){this._debug("waiting for transport close");return}this._reconnecting=!0;const e=this._token==="";if(!(this._refreshRequired||e&&this._config.getToken!==null)){this._config.getData?this._config.getData().then(o=>{this._isConnecting()&&(this._data=o,this._initializeTransport())}).catch(o=>this._handleGetDataError(o)):this._initializeTransport();return}const a=this;this._getToken().then(function(o){if(a._isConnecting()){if(o==null||o==null){a._failUnauthorized();return}a._token=o,a._debug("connection token refreshed"),a._config.getData?a._config.getData().then(function(s){a._isConnecting()&&(a._data=s,a._initializeTransport())}).catch(s=>a._handleGetDataError(s)):a._initializeTransport()}}).catch(function(o){if(!a._isConnecting())return;if(o instanceof Ci){a._failUnauthorized();return}a.emit("error",{type:"connectToken",error:{code:Bt.clientConnectToken,message:o!==void 0?o.toString():""}});const s=a._getReconnectDelay();a._debug("error on getting connection token, reconnect after "+s+" milliseconds",o),a._reconnecting=!1,a._reconnectTimeout=setTimeout(()=>{a._startReconnecting()},s)})}_handleGetDataError(e){if(e instanceof Ci){this._failUnauthorized();return}this.emit("error",{type:"connectData",error:{code:Bt.badConfiguration,message:(e==null?void 0:e.toString())||""}});const n=this._getReconnectDelay();this._debug("error on getting connect data, reconnect after "+n+" milliseconds",e),this._reconnecting=!1,this._reconnectTimeout=setTimeout(()=>{this._startReconnecting()},n)}_connectError(e){this.state===Vt.Connecting&&(e.code===109&&(this._refreshRequired=!0),e.code<100||e.temporary===!0||e.code===109?(this.emit("error",{type:"connect",error:e}),this._debug("closing transport due to connect error"),this._disconnect(e.code,e.message,!0)):this._disconnect(e.code,e.message,!1))}_scheduleReconnect(){if(!this._isConnecting())return;let e=!1;this._emulation&&!this._transportWasOpen&&!this._triedAllTransports&&(e=!0);let n=this._getReconnectDelay();e&&(n=0),this._debug("reconnect after "+n+" milliseconds"),this._clearReconnectTimeout(),this._reconnectTimeout=setTimeout(()=>{this._startReconnecting()},n)}_constructConnectCommand(){const e={};this._token&&(e.token=this._token),this._data&&(e.data=this._data),this._config.name&&(e.name=this._config.name),this._config.version&&(e.version=this._config.version),Object.keys(this._config.headers).length>0&&(e.headers=this._config.headers);const n={};let a=!1;for(const o in this._serverSubs)if(this._serverSubs.hasOwnProperty(o)&&this._serverSubs[o].recoverable){a=!0;const s={recover:!0};this._serverSubs[o].offset&&(s.offset=this._serverSubs[o].offset),this._serverSubs[o].epoch&&(s.epoch=this._serverSubs[o].epoch),n[o]=s}return a&&(e.subs=n),{connect:e}}_getHistoryRequest(e,n){const a={channel:e};return n!==void 0&&(n.since&&(a.since={offset:n.since.offset},n.since.epoch&&(a.since.epoch=n.since.epoch)),n.limit!==void 0&&(a.limit=n.limit),n.reverse===!0&&(a.reverse=!0)),a}_methodCall(){return this._isConnected()?Promise.resolve():new Promise((e,n)=>{const a=setTimeout(function(){n({code:Bt.timeout,message:"timeout"})},this._config.timeout);this._promises[this._nextPromiseId()]={timeout:a,resolve:e,reject:n}})}_callPromise(e,n){return new Promise((a,o)=>{this._call(e,!1).then(s=>{a(n(s.reply)),s.next&&s.next()},s=>{o(s.error),s.next&&s.next()})})}_dataReceived(e){this._serverPing>0&&this._waitServerPing();const n=this._codec.decodeReplies(e);this._dispatchPromise=this._dispatchPromise.then(()=>{let a;this._dispatchPromise=new Promise(o=>{a=o}),this._dispatchSynchronized(n,a)})}
50_dispatchSynchronized(e,n){let a=Promise.resolve();for(const o in e)e.hasOwnProperty(o)&&(a=a.then(()=>this._dispatchReply(e[o])));a=a.then(()=>{n()})}_dispatchReply(e){let n;const a=new Promise(s=>{n=s});if(e==null)return this._debug("dispatch: got undefined or null reply"),n(),a;const o=e.id;return o&&o>0?this._handleReply(e,n):e.push?this._handlePush(e.push,n):this._handleServerPing(n),a}_call(e,n){return new Promise((a,o)=>{e.id=this._nextCommandId(),this._registerCall(e.id,a,o),n||this._addCommand(e)})}_startConnecting(){this._debug("start connecting"),this._setState(Vt.Connecting)&&this.emit("connecting",{code:mo.connectCalled,reason:"connect called"}),this._client=null,this._startReconnecting()}_disconnect(e,n,a){if(this._isDisconnected())return;this._transportIsOpen=!1;const o=this.state;this._reconnecting=!1;const s={code:e,reason:n};let u=!1;if(a?u=this._setState(Vt.Connecting):(u=this._setState(Vt.Disconnected),this._rejectPromises({code:Bt.clientDisconnected,message:"disconnected"})),this._clearOutgoingRequests(),o===Vt.Connecting&&this._clearReconnectTimeout(),o===Vt.Connected&&this._clearConnectedState(),u&&(this._isConnecting()?this.emit("connecting",s):this.emit("disconnected",s)),this._transport){this._debug("closing existing transport");const c=this._transport;this._transport=null,c.close(),this._transportClosed=!0,this._nextTransportId()}else this._debug("no transport to close");this._scheduleReconnect()}_failUnauthorized(){this._disconnect(Ju.unauthorized,"unauthorized",!1)}_getToken(){return this._debug("get connection token"),this._config.getToken?this._config.getToken({}):(this.emit("error",{type:"configuration",error:{code:Bt.badConfiguration,message:"token expired but no getToken function set in the configuration"}}),Promise.reject(new Ci("")))}_refresh(){const e=this._client,n=this;this._getToken().then(function(a){if(e!==n._client)return;if(!a){n._failUnauthorized();return}if(n._token=a,n._debug("connection token refreshed"),!n._isConnected())return;const o={refresh:{token:n._token}};n._call(o,!1).then(s=>{const u=s.reply.refresh;n._refreshResponse(u),s.next&&s.next()},s=>{n._refreshError(s.error),s.next&&s.next()})}).catch(function(a){if(n._isConnected()){if(a instanceof Ci){n._failUnauthorized();return}n.emit("error",{type:"refreshToken",error:{code:Bt.clientRefreshToken,message:a!==void 0?a.toString():""}}),n._refreshTimeout=setTimeout(()=>n._refresh(),n._getRefreshRetryDelay())}})}_refreshError(e){e.code<100||e.temporary===!0?(this.emit("error",{type:"refresh",error:e}),this._refreshTimeout=setTimeout(()=>this._refresh(),this._getRefreshRetryDelay())):this._disconnect(e.code,e.message,!1)}_getRefreshRetryDelay(){return xp(0,5e3,1e4)}_refreshResponse(e){this._refreshTimeout&&(clearTimeout(this._refreshTimeout),this._refreshTimeout=null),e.expires&&(this._client=e.client,this._refreshTimeout=setTimeout(()=>this._refresh(),Op(e.ttl)))}_removeSubscription(e){e!==null&&delete this._subs[e.channel]}_unsubscribe(e){if(!this._transportIsOpen)return Promise.resolve();const a={unsubscribe:{channel:e.channel}},o=this;return new Promise((u,c)=>{this._call(a,!1).then(p=>{u(),p.next&&p.next()},p=>{u(),p.next&&p.next(),o._disconnect(mo.unsubscribeError,"unsubscribe error",!0)})})}_getSub(e){const n=this._subs[e];return n||null}_isServerSub(e){return this._serverSubs[e]!==void 0}_sendSubscribeCommands(){const e=[];for(const n in this._subs){if(!this._subs.hasOwnProperty(n))continue;const a=this._subs[n];if(a._inflight!==!0&&a.state===jn.Subscribing){const o=a._subscribe();o&&e.push(o)}}return e}_connectResponse(e){if(this._transportIsOpen=!0,this._transportWasOpen=!0,this._reconnectAttempts=0,this._refreshRequired=!1,this._isConnected())return;this._client=e.client,this._setState(Vt.Connected),this._refreshTimeout&&clearTimeout(this._refreshTimeout),e.expires&&(this._refreshTimeout=setTimeout(()=>this._refresh(),Op(e.ttl))),this._session=e.session,this._node=e.node,this.startBatching(),this._sendSubscribeCommands(),this.stopBatching();const n={client:e.client,transport:this._transport.subName()};
50e.data&&(n.data=e.data),this.emit("connected",n),this._resolvePromises(),this._processServerSubs(e.subs||{}),e.ping&&e.ping>0?(this._serverPing=e.ping*1e3,this._sendPong=e.pong===!0,this._waitServerPing()):this._serverPing=0}_processServerSubs(e){for(const n in e){if(!e.hasOwnProperty(n))continue;const a=e[n];this._serverSubs[n]={offset:a.offset,epoch:a.epoch,recoverable:a.recoverable||!1};const o=this._getSubscribeContext(n,a);this.emit("subscribed",o)}for(const n in e){if(!e.hasOwnProperty(n))continue;const a=e[n];if(a.recovered){const o=a.publications;if(o&&o.length>0)for(const s in o)o.hasOwnProperty(s)&&this._handlePublication(n,o[s])}}for(const n in this._serverSubs)this._serverSubs.hasOwnProperty(n)&&(e[n]||(this.emit("unsubscribed",{channel:n}),delete this._serverSubs[n]))}_clearRefreshTimeout(){this._refreshTimeout!==null&&(clearTimeout(this._refreshTimeout),this._refreshTimeout=null)}_clearReconnectTimeout(){this._reconnectTimeout!==null&&(clearTimeout(this._reconnectTimeout),this._reconnectTimeout=null)}_clearServerPingTimeout(){this._serverPingTimeout!==null&&(clearTimeout(this._serverPingTimeout),this._serverPingTimeout=null)}_waitServerPing(){this._config.maxServerPingDelay!==0&&this._isConnected()&&(this._clearServerPingTimeout(),this._serverPingTimeout=setTimeout(()=>{this._isConnected()&&this._disconnect(mo.noPing,"no ping",!0)},this._serverPing+this._config.maxServerPingDelay))}_getSubscribeContext(e,n){const a={channel:e,positioned:!1,recoverable:!1,wasRecovering:!1,recovered:!1};n.recovered&&(a.recovered=!0),n.positioned&&(a.positioned=!0),n.recoverable&&(a.recoverable=!0),n.was_recovering&&(a.wasRecovering=!0);let o="";"epoch"in n&&(o=n.epoch);let s=0;return"offset"in n&&(s=n.offset),(a.positioned||a.recoverable)&&(a.streamPosition={offset:s,epoch:o}),n.data&&(a.data=n.data),a}_handleReply(e,n){const a=e.id;if(!(a in this._callbacks)){n();return}const o=this._callbacks[a];if(clearTimeout(this._callbacks[a].timeout),delete this._callbacks[a],x7(e)){const s=o.errback;if(!s){n();return}const u=e.error;s({error:u,next:n})}else{const s=o.callback;if(!s)return;s({reply:e,next:n})}}_handleJoin(e,n){const a=this._getSub(e);if(!a){if(this._isServerSub(e)){const o={channel:e,info:this._getJoinLeaveContext(n.info)};this.emit("join",o)}return}a._handleJoin(n)}_handleLeave(e,n){const a=this._getSub(e);if(!a){if(this._isServerSub(e)){const o={channel:e,info:this._getJoinLeaveContext(n.info)};this.emit("leave",o)}return}a._handleLeave(n)}_handleUnsubscribe(e,n){const a=this._getSub(e);if(!a){this._isServerSub(e)&&(delete this._serverSubs[e],this.emit("unsubscribed",{channel:e}));return}n.code<2500?a._setUnsubscribed(n.code,n.reason,!1):a._setSubscribing(n.code,n.reason)}_handleSubscribe(e,n){this._serverSubs[e]={offset:n.offset,epoch:n.epoch,recoverable:n.recoverable||!1},this.emit("subscribed",this._getSubscribeContext(e,n))}_handleDisconnect(e){const n=e.code;let a=!0;(n>=3500&&n<4e3||n>=4500&&n<5e3)&&(a=!1),this._disconnect(n,e.reason,a)}_getPublicationContext(e,n){const a={channel:e,data:n.data};return n.offset&&(a.offset=n.offset),n.info&&(a.info=this._getJoinLeaveContext(n.info)),n.tags&&(a.tags=n.tags),a}_getJoinLeaveContext(e){const n={client:e.client,user:e.user};return e.conn_info&&(n.connInfo=e.conn_info),e.chan_info&&(n.chanInfo=e.chan_info),n}_handlePublication(e,n){const a=this._getSub(e);if(!a){if(this._isServerSub(e)){const o=this._getPublicationContext(e,n);this.emit("publication",o),n.offset!==void 0&&(this._serverSubs[e].offset=n.offset)}return}a._handlePublication(n)}_handleMessage(e){this.emit("message",{data:e.data})}_handleServerPing(e){if(this._sendPong){const n={};this._transportSendCommands([n])}e()}_handlePush(e,n){const a=e.channel;e.pub?this._handlePublication(a,e.pub):e.message?this._handleMessage(e.message):e.join?this._handleJoin(a,e.join):e.leave?this._handleLeave(a,e.leave):e.unsubscribe?this._handleUnsubscribe(a,e.unsubscribe):e.subscribe?this._handleSubscribe(a,e.subscribe):e.disconnect&&this._handleDisconnect(e.disconnect),n()}_flush(){const e=this._commands.slice(0);this._commands=[],this._transportSendCommands(e)}_createErrorObject(e,n,a){const o={code:e,message:n};return a&&(o.temporary=!0),o}_registerCall(e,n,a){this._callbacks[e]={callback:n,errback:a,timeout:null},this._callbacks[e].timeout=setTimeout(()=>{delete this._callbacks[e],$x(a)&&a({error:this._createErrorObject(Bt.timeout,"timeout")})},this._config.timeout)}_addCommand(e){this._batching?this._commands.push(e):this._transportSendCommands([e])}_nextPromiseId(){return++this._promiseId}_nextTransportId(){return++this._transportId}_resolvePromises(){for(const e in this._promises)this._promises.hasOwnProperty(e)&&(this._promises[e].timeout&&clearTimeout(this._promises[e].timeout),this._promises[e].resolve(),delete this._promises[e])}_rejectPromises(e){for(const n in this._promises)this._promises.hasOwnProperty(n)&&(this._promises[n].timeout&&clearTimeout(this._promises[n].timeout),this._promises[n].reject(e),delete this._promises[n])}}km.SubscriptionState=jn;km.State=Vt;km.UnauthorizedError=Ci;const Gv=t=>{try{const e=t.split(".")[1];if(!e)return null;const n=e.replace(/-/g,"+").replace(/_/g,"/"),a=n.padEnd(n.length+(4-n.length%4)%4,"="),o=JSON.parse(atob(a));return typeof o.sub=="string"?o.sub:typeof o.sub=="number"?String(o.sub):null}catch{return null}},$7=async(t,e)=>{try{const n=await e(),a=Gv(n);return t.setToken(n),t.disconnect(),t.connect(),await t.ready(),{sub:a}}catch(n){return console.error("[Centrifuge] Failed to switch connection identity",n),null}},z7=t=>{let e=null,n=Promise.resolve();return{ensure:(o,s)=>{const u=n.then(async()=>
50{if(!o)return"no-connection";if(e===s)return"match";const c=await $7(o,t);return c?(e=c.sub,c.sub===s?"switched":"failed"):(e=null,"failed")});return n=u.then(()=>{},()=>{}),u},noteSub:o=>{e=o},readSub:()=>e}},j7="/auth-sync/realtime-token";let Ai=null,jl=null;const Hv=async()=>(await(Ix()??p7).get(j7)).data.token,Vv=z7(Hv),G7=async t=>{const e=await Hv(),n=new km(`${t}/connection/websocket`,{token:e,getToken:async()=>{const a=await Hv();return Vv.noteSub(Gv(a)),a}});return Vv.noteSub(Gv(e)),n.on("error",a=>{console.error("[Centrifuge] Connection error:",a)}),n.connect(),await n.ready(),Ai=n,n},H7=()=>!Ai||Ai.state!==Vt.Disconnected?!1:(Ai.connect(),!0),zx=async t=>{if(jl)try{await jl}catch{return"no-connection"}return Vv.ensure(Ai,t)},V7=async t=>Ai?(Ai.state===Vt.Disconnected&&Ai.connect(),Ai):(jl||(jl=G7(t).catch(e=>{throw jl=null,e})),jl),Y7=async({socketUrl:t,channelName:e,contextId:n="WebSocket",handlers:a})=>{try{const o=await V7(t),s=o.getSubscription(e);s&&(s.unsubscribe(),o.removeSubscription(s));const u=o.newSubscription(e);u.on("error",c=>{console.error(`[${n}] Subscription error:`,c)}),a!=null&&a.onPublication&&u.on("publication",a.onPublication),a!=null&&a.onSubscribed&&u.on("subscribed",a.onSubscribed),a!=null&&a.onJoin&&u.on("join",a.onJoin),a!=null&&a.onLeave&&u.on("leave",a.onLeave),a!=null&&a.onDisconnected&&o.on("disconnected",a.onDisconnected),u.subscribe();try{await u.ready()}catch(c){console.error(`[${n}] Subscription not ready:`,c)}return{connection:o,subscription:u,onDisconnected:a==null?void 0:a.onDisconnected}}catch(o){return console.error(`[${n}] Failed to connect:`,o),null}},jx=["wallet","notifications","bonus","games"],q7=(t,e)=>`user:${t}#${e}`,Z7=t=>jx.map(e=>q7(e,t)),Yv=new Set,Gx=t=>(Yv.add(t),()=>{Yv.delete(t)}),K7=t=>{if(!t||typeof t!="object")return null;const e=t,n="data"in e&&e.data&&typeof e.data=="object"?e.data:null;if(!n)return e;const a=n;return typeof a.type=="string"||typeof e.type!="string"?a:{...a,type:e.type}},X7=(t,e={replayed:!1})=>{const n=K7(t);if(!n)return;let a=!1;Yv.forEach(o=>{try{a=o(n,e)||a}catch(s){console.error("[User channel] Handler threw",s)}}),a||console.warn("[User channel] Ignored publication",n.type)},J7=t=>{if(t)try{t.subscription.unsubscribe(),t.connection.removeSubscription(t.subscription),t.onDisconnected&&t.connection.off("disconnected",t.onDisconnected)}catch(e){console.error("[Centrifuge] Failed to close subscription",e)}},Q7=async({socketUrl:t,userId:e,onPublication:n,onSubscribed:a,current:o=null,connect:s=Y7,ensureIdentity:u=zx,contextPrefix:c="User channel"})=>{if(await u(String(e))==="failed")return{userId:e,channels:[]};const p=(o==null?void 0:o.userId)===e?o.channels:[],d=[];for(const m of Z7(e)){const f=p.find(y=>y.channelName===m);if(f){d.push(f);continue}let b=null;const v=await s({socketUrl:t,channelName:m,contextId:`${c} ${m}`,handlers:{onPublication:y=>n(y.data),onSubscribed:()=>{b&&a&&a(b,m)}}});b=v,v&&d.push({channelName:m,connection:v})}return{userId:e,channels:d}},eH=t=>{t==null||t.channels.forEach(({connection:e})=>J7(e))},tH=({subscribe:t=Q7,unsubscribe:e=eH,ensureAnonymousIdentity:n=()=>zx("")}={})=>{let a=null,o=0,s=Promise.resolve();const u=d=>{const m=s.then(d);return s=m.then(()=>{},()=>{}),m},c=()=>{o+=1},p=()=>{c(),e((a==null?void 0:a.subscription)??null),a=null};return{connect:d=>u(async()=>{if(a&&a.subscription.userId===d.userId)return{subscription:a.subscription,reused:!0,publish:a.publish};p();const m=o,f=()=>m===o,{onPublication:b,onSubscribed:v,...y}=d,g=(w,k)=>{f()&&b(w,k)},S=await t({...y,onPublication:g,onSubscribed:v?(w,k)=>{f()&&v(w,k,g)}:void 0});return S.channels.length===0?null:(a={subscription:S,publish:g},{subscription:S,reused:!1,publish:g})}),disconnect:()=>(c(),u(async()=>{p()})),reset:()=>(c(),u(async()=>{p(),await n()})),readActive:()=>(a==null?void 0:a.subscription)??null}},Qu=Ve.createEffect(async()=>{const{data:t}=await Yn().http.get(kz);return Array.isArray(t)?t:[]}),OT=Ve.createEffect(async()=>{const{data:t}=await Yn().http.get(Ez);return t&&typeof t=="object"?t:{}}),rs=Ve.createEffect(async()=>{const{data:t}=await Yn().http.get(Tz);return Array.isArray(t)?t:[]}
50),qv=Ve.createEffect(async({currency:t,network:e})=>{const n=Yn(),a=n.getUserId();if(a===null)throw new Error("Cannot create a wallet without an authenticated user");const{status:o,data:s}=await n.http.post(eT,{userId:a,currency:t,network:e});if(o>=400)throw new Error(`POST ${eT} answered ${o}`);const u=(s==null?void 0:s.wallet)??s;return u&&typeof u=="object"&&"depositAddress"in u?u:null}),as=Ve.createEffect(async({currency:t,network:e,amount:n,address:a})=>{const{status:o,data:s}=await Yn().http.post(Rz,{currency:t,network:e,amount:n,address:a});if(o>=400)throw new tT((s==null?void 0:s.message)??"default");if(typeof(s==null?void 0:s.balance)!="number")throw new tT("default");return{currency:t,balance:s.balance}}),pf=Ve.createEffect(async()=>{try{const{status:t,data:e}=await Yn().http.get(Cz);return t>=400?null:Nz(e)}catch{return null}}),mf=Ve.createEffect(async t=>{try{await Qu()}catch{}return{currency:t}}),nH=t=>!!t&&typeof t=="object"&&t.type===Az.BalanceUpdate&&typeof t.currency=="string";Gx(t=>nH(t)?(Pv(t),!0):!1);const rH=(t,e)=>{X7(t,e)},Ew=tH(),IT=async(t,e)=>{var n;try{const a=await t.subscription.history({limit:Sz});(n=a==null?void 0:a.publications)==null||n.forEach(o=>e(o.data,{replayed:!0}))}catch(a){console.error("[Balance socket] Failed to replay history",a)}};Ve.createEffect(async()=>{await Ew.disconnect()});const aH=Ve.createEffect(async()=>{await Ew.reset()}),iH=Ve.createEffect(async t=>{const e=await Ew.connect({socketUrl:Yn().getSocketUrl(),userId:t,onPublication:rH,contextPrefix:"Balance socket",onSubscribed:(n,a,o)=>void IT(n,o)});return e?e.reused?!0:(await Promise.all(e.subscription.channels.map(({connection:n})=>IT(n,e.publish))),e.subscription.channels.length===jx.length):!1}),oH={currency:Fe.USDT,network:Yf[Fe.USDT],amount:0},sH={hideBalance:!1,currencyDropdown:!1,disableCurrencyChange:!1,restrictedCurrencies:[]},vi=Ve.createStore([],{name:"balances"}),lH=Ve.createStore({},{name:"currencyRatesUSD"}),Na=Ve.createStore(oH,{name:"selectedWallet"}),Rb=Ve.createStore([],{name:"wallets"}),cH=Ve.createStore("loading",{name:"walletsLoadState"}),DT=Ve.createStore(sH,{name:"navbarState"}),Cb=Ve.createStore(null,{name:"withdrawalErrorCode"}),Ab=Ve.createStore(!1,{name:"withdrawalCompleted"}),LT=Ve.createStore(null,{name:"lastSuccessfulWithdrawal"}),NT=Ve.createStore("idle",{name:"lastSuccessfulWithdrawalStatus"});Qu.pending;rs.pending;const Tie=as.pending;qv.pending;const PT=Na.map(t=>t.currency),Rie=vi.map(t=>t.reduce((e,n)=>(e[n.currency]=n,e),{})),Cie=vi.map(t=>t.some(e=>typeof e.currency=="string"&&e.currency.startsWith("-"))),Hx=()=>{const t=Yn(),e=t.storage.get(Ao.CURRENCY);return e&&um(e)?e:t.fallbackCurrency},uH=()=>{const t=Yn();return t.forceFallbackNetwork?t.fallbackNetwork:t.storage.get(Ao.NETWORK)||t.fallbackNetwork},WT=Ve.createEffect(()=>({currency:Hx(),network:uH()})),dH=Ve.createEffect(({currency:t,network:e})=>{const{storage:n}=Yn();n.set(Ao.CURRENCY,t),n.set(Ao.NETWORK,e)}),hH=Ve.createEffect(({currency:t,network:e})=>{const{storage:n}=Yn();n.set(Ao.PREV_CURRENCY,t),n.set(Ao.PREV_NETWORK,e)}),MT=Ve.createEffect(()=>{const{storage:t,fallbackCurrency:e}=Yn(),n=t.get(Ao.PREV_CURRENCY),a=n&&um(n)?n:Hx();return Fz(a,e)}),gf=Ve.createEffect(({name:t,properties:e})=>{Yn().trackEvent(t,e)}),Aie=()=>{const t=Yn().storage.get(Ao.PREV_CURRENCY);return t&&um(t)?t:null},xb=(t,e)=>{var n;return((n=t.find(a=>a.currency===e))==null?void 0:n.availableAmount)??0};let BT=!1;const xie=()=>{BT||(BT=!0,ve({clock:$z,target:WT}),ve({clock:WT.doneData,source:Na,fn:(t,{currency:e,network:n})=>({...t,currency:e,network:n}),target:Na}),ve({clock:zz,target:Qu}),ve({clock:Qu.doneData,target:mb}),vi.on(mb,(t,e)=>e),ve({clock:mb,source:Na,fn:(t,e)=>({...t,amount:xb(e,t.currency)}),target:Na}),ve({clock:Qu.failData,fn:t=>({name:"Error",properties:{type:"Balances",error:t}}),target:gf}),vi.on(Pv,(t,e)=>{const n=t.findIndex(o=>o.currency===e.currency);if(n===-1)return t;const a=[...t];return a[n]={...a[n],availableAmount:e.value,withdrawableAmount:e.withdrawableAmount},a}),ve({clock:Pv,source:To({wallet:Na,balances:vi}),filter:({wallet:t},e)=>t.currency===e.currency,fn:({wallet:t},e)=>({...t,amount:e.value}),target:Na}),ve({clock:jz,target:OT}),lH.on(OT.doneData,(t,e)=>e),ve({clock:Gz,target:rs}),Rb.on(rs.doneData,(t,e)=>e),cH.on(rs,()=>"loading").on(rs.doneData,()=>"loaded").on(rs.fail,()=>"failed"),ve({clock:rs.failData,fn:t=>({name:"Error",properties:{type:"Wallet",error:t}}),target:gf}),Rb.on(qv.doneData,(t,e)=>{if(!e)return t;const n=t.findIndex(o=>o.currency===e.currency&&o.network===e.network);if(n===-1)return[...t,e];const a=[...t];return a[n]={...a[n],...e},a}),ve({clock:qv.failData,fn:t=>({name:"Error",properties:{type:"Wallet - Create",error:t}}),target:gf}),ve({clock:gb,source:Na,filter:(t,e)=>t.currency!==e,fn:t=>({currency:t.currency,network:t.network}),target:hH}),ve({clock:gb,target:mf}),ve({clock:mf.doneData,source:vi,fn:(t,{currency:e})=>({currency:e,network:Yf[e],amount:xb(t,e)}),target:Na}),ve({clock:mf.doneData,fn:({currency:t})=>({currency:t,network:Yf[t]}),target:dH}),ve({clock:mf.doneData,source:To({balances:vi}),fn:({balances:t},{currency:e})=>({name:"Navigation - Currency changed",properties:{currency:e,network:Yf[e],balance:t.find(n=>n.currency===e),balanceAmount:xb(t,e)}}),target:gf}),ve({clock:Hz,target:MT}),ve({clock:MT.doneData,target:gb}),DT.on(Vz,t=>({...t,currencyDropdown:!t.currencyDropdown})).on(Yz,t=>({...t,currencyDropdown:!1})).on(qz,(t,e)=>t.hideBalance===!e?t:{...t,hideBalance:!e}).on(Zz,(t,e)=>({...t,disableCurrencyChange:e})).on(Kz,(t,e)=>({...t,restrictedCurrencies:e})),ve({clock:Xz,target:iH}),ve({clock:Jz,target:aH}),ve({clock:Qz,target:as}),Cb.on(as.failData,(t,e)=>e.message),Ab.on(as.doneData,()=>!0),Cb.reset([nT,as]),Ab.reset([nT,as]),vi.on(as.doneData,(t,{currency:e,balance:n}
50)=>{const a=t.findIndex(s=>s.currency===e);if(a===-1)return t;const o=[...t];return o[a]={...o[a],withdrawableAmount:n},o}),ve({clock:ej,target:pf}),LT.on(pf.doneData,(t,e)=>e),NT.on(pf,()=>"loading").on(pf.finally,()=>"done"),vi.reset(so),Rb.reset(so),DT.reset(so),Cb.reset(so),Ab.reset(so),LT.reset(so),NT.reset(so),Na.on(so,t=>({...t,amount:0})))},UT="/meld/widget",FT="/swapped",$T="/mesh/widget",fH="/luxtak/deposit",pH="/auth/walletConnect",zT="/auth/walletConnect",mH="/auth-sync/walletConnect/session",Zv={Meld:"meld",Swapped:"swapped",Mesh:"mesh"},gH=[mt.EUR,mt.INR,mt.TRY,mt.MXN,mt.VND,mt.BRL,mt.IDR,mt.ZAR,mt.THB,mt.MYR,mt.PLN,mt.SEK,mt.SGD,mt.GBP,mt.RON,mt.HUF,mt.JPY,mt.AUD,mt.HKD,mt.NZD,mt.CZK,mt.DKK,mt.CHF,mt.CAD,mt.BGN,mt.ILS,mt.NOK,mt.PHP],Oie=mt.EUR,Iie=50,yH={[kr.TRC20]:[Fe.USDT],[kr.ERC20]:[Fe.ETH,Fe.USDC,Fe.USDT],[kr.BEP20]:[Fe.BNB,Fe.USDC,Fe.USDT],[kr.SOL]:[Fe.SOL,Fe.USDC,Fe.USDT],[kr.TON]:[Fe.TON,Fe.USDT],[kr.BTC]:[Fe.BTC]},np=50,jT=1e5,Die=[50,100,250,500,1e3],bH=2,vH=14,Lie=6e3;class Ec extends Error{constructor(e,n){super(e),this.status=n,this.name="PaymentsProviderError"}}let Kv=null;const wH=t=>{Kv=t},Li=()=>{if(!Kv)throw new Error("@whale-client/dataflow-payments is not configured. Call configurePaymentsDataflow() on app boot.");return Kv};new Set(gH);const Nie=()=>{const{isFeatureEnabled:t}=Li();return t(Zv.Meld)?"meld":t(Zv.Swapped)?"swapped":"legacy"},Pie=(t,e=0)=>{const n=Math.pow(10,e);return Math.floor(t*n)/n},Wie=(t,e)=>{var n;return!Li().isFeatureEnabled(Zv.Mesh)||!e||!t?!1:!!((n=yH[e])!=null&&n.includes(t))},_H=t=>Number.isNaN(t)||t<np?np:t>jT?jT:t,SH=t=>t.replace(/\D/g,"").replace(/(\d{3})(\d{3})(\d{3})(\d{2})/,"$1.$2.$3-$4"),Mie=t=>SH(t).length>=vH,Bie=t=>t.length>=bH,Uie=t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t),Fie=t=>t.lastName||t.firstName||t.personalCode||t.server||"",kH=t=>parseInt(String(t*1e9),10),EH=(t,e)=>({amount:kH(t),first_name:e.firstName,last_name:e.lastName,tax_id:e.personalCode,email:e.email}),Bn=Ns("payments"),TH=Bn.createEvent("pixAmountChanged"),Vx=Bn.createEvent("pixDepositReset"),Yx=Bn.createEvent("buyWidgetClosed"),RH=Bn.createEvent("meshErrorCleared"),Hd=(t,e)=>{const n=t==null?void 0:t.message;return typeof n=="string"&&n?n:e},Xv=Bn.createEffect(async({currency:t,amount:e})=>{const{status:n,data:a}=await Li().http.post(UT,{currency:t,amount:e});if(n>=400||!(a!=null&&a.widgetUrl))throw new Ec(Hd(a,`POST ${UT} answered ${n}`),n);return a.widgetUrl}),Jv=Bn.createEffect(async({currency:t,amount:e})=>{const n=new URLSearchParams({currency:t,amount:String(e)}).toString(),{status:a,data:o}=await Li().http.get(`${FT}?${n}`);if(a>=400||!(o!=null&&o.url))throw new Ec(Hd(o,`GET ${FT} answered ${a}`),a);return o.url}),GT=Bn.createEffect(async({currency:t,network:e})=>{const{status:n,data:a}=await Li().http.post($T,{currency:t,network:e});if(n>=400||!(a!=null&&a.linkToken))throw new Ec(Hd(a,`POST ${$T} answered ${n}`),n);return a.linkToken}),Qv=Bn.createEffect(async({amount:t,details:e})=>{const{status:n,data:a}=await Li().http.post(fH,EH(t,e));if(n>=400)throw new Ec(Hd(a,"An error occurred"),n);return{pixQrCode:(a==null?void 0:a.qr)??"",pixEmv:(a==null?void 0:a.link)??""}}),$ie=Bn.createEffect(async()=>{const{status:t,data:e}=await Li().http.post(pH);if(t>=400||!(e!=null&&e.nonce))throw new Ec("Failed to get nonce",t);return e.nonce}),zie=Bn.createEffect(async()=>{try{const{status:t,data:e}=await Li().http.get(mH);return t>=400?null:typeof e=="object"&&e!==null&&typeof e.address=="string"&&typeof e.chainId=="number"?e:null}catch{return null}}),jie=Bn.createEffect(async t=>{const{status:e,data:n}=await Li().http.patch(zT,t);if(e>=400)throw new Ec(Hd(n,`PATCH ${zT} answered ${e}`),e);return{...n??{},status:e}}),CH={depositAmount:np,pixQrCode:"",pixEmv:""},Gie=Bn.createStore(CH,{name:"pixDeposit"}).on(TH,(t,e)=>({...t,depositAmount:_H(e)})).on(Qv.doneData,(t,{pixQrCode:e,pixEmv:n})=>({...t,pixQrCode:e,pixEmv:n})).reset(Vx),Hie=Bn.createStore(null,{name:"pixError"}).on(Qv.failData,(t,e)=>e.message).reset(Qv,Vx),Vie=Bn.createStore(null,{name:"buyWidgetUrl"}).on(Xv.doneData,(t,e)=>e).on(Jv.doneData,(t,e)=>e).reset(Yx),Yie=Bn.createStore(null,{name:"buyError"}).on(Xv.failData,(t,e)=>e.message).on(Jv.failData,(t,e)=>e.message).reset(Xv,Jv,Yx),AH="An unexpected error occurred while fetching payment data.",qie=Bn.createStore(null,{name:"meshError"}).on(GT.failData,()=>AH).reset(GT,RH);
50class Tw extends Error{constructor({status:n,url:a,body:o,message:s}){super(s??`Request to ${a} failed with status ${n}`);es(this,"status");es(this,"url");es(this,"body");this.name="HttpError",this.status=n,this.url=a,this.body=o}get isUnauthorized(){return this.status===401}get isForbidden(){return this.status===403}get isPlayBlocked(){return this.status===423}get isRateLimited(){return this.status===429}}class xH extends Error{constructor(n,a){super(`Request to ${n} could not be completed`,{cause:a});es(this,"url");this.name="NetworkError",this.url=n}}class OH extends Error{constructor(n,a){super(`Response from ${n} did not match the expected schema`);es(this,"url");es(this,"issues");this.name="ResponseValidationError",this.url=n,this.issues=a}}const Em=t=>t instanceof Tw,Zie=t=>Em(t)&&t.isUnauthorized,Kie=t=>t instanceof Error?t.message:typeof t=="string"?t:"Unknown error";var IH=(t=>(t.TELEGRAM="TG",t.WEB="WEB",t.OPERA_MINI_APP="OPERA_MINI_APP",t))(IH||{});const qx={IS_TELEGRAM_APPLICATION:"isTelegramApplication"},DH=()=>{if(!(typeof window>"u"))return window.ethereum},LH=["tgWebAppData","tgWebAppVersion","tgWebAppPlatform"],NH=()=>{try{const t=new URLSearchParams(window.location.hash.slice(1));return LH.some(e=>t.has(e))}catch{return!1}},PH=()=>{var t,e;return!!((e=(t=window.Telegram)==null?void 0:t.WebApp)!=null&&e.initData)},WH=()=>{try{window.localStorage.setItem(qx.IS_TELEGRAM_APPLICATION,"true")}catch{return}},MH=()=>{var e;if(typeof window>"u")return"WEB";let t="WEB";if((e=DH())!=null&&e.isMiniPay&&(t="OPERA_MINI_APP"),NH()||PH())return WH(),"TG";try{if(window.localStorage.getItem(qx.IS_TELEGRAM_APPLICATION))return"TG"}catch{return t}return t};let Ob;const BH=()=>(Ob||(Ob=MH()),Ob),Xie=()=>typeof navigator<"u"&&/iPhone|Android|Opera Mini|wv|WebView/i.test(navigator.userAgent),UH=["/user/geo"],e0=new Set,Jie=t=>(e0.add(t),()=>e0.delete(t)),FH=(t,e)=>{const n=j$(),a=t.startsWith("/")?`${n}${t}`:`${n}/${t}`;if(!e)return a;const o=new URLSearchParams;Object.entries(e).forEach(([u,c])=>{c!=null&&o.set(u,String(c))});const s=o.toString();return s?`${a}?${s}`:a},$H=(t,e,n)=>{const a=new Headers({"X-Device":BH(),"X-Lang":UA()});return e&&a.set("Content-Type","application/json"),UH.some(o=>t.includes(o))&&(a.set("Cache-Control","no-cache, no-store, must-revalidate"),a.set("Pragma","no-cache"),a.set("Expires","0")),Object.entries(n??{}).forEach(([o,s])=>a.set(o,s)),a},zH=async t=>{if(t.status===204)return;const e=await t.text();if(e)try{return JSON.parse(e)}catch{return e}},Tu=async({method:t,path:e,body:n,schema:a,query:o,headers:s,signal:u})=>{const c=FH(e,o);let p;try{p=await fetch(c,{method:t,credentials:"include",headers:$H(e,n!==void 0,s),body:n===void 0?void 0:JSON.stringify(n),signal:u})}catch(f){throw new xH(c,f)}const d=await zH(p);if(!p.ok){const f=new Tw({status:p.status,url:c,body:d});throw e0.forEach(b=>{try{b(f)}catch(v){console.error("Response error observer threw",v)}}),f}if(!a)return d;const m=a.safeParse(d);if(!m.success)throw new OH(c,m.error.issues);return m.data},wn={get:(t,e)=>Tu({method:"GET",path:t,...e}),post:(t,e,n)=>Tu({method:"POST",path:t,body:e,...n}),put:(t,e,n)=>Tu({method:"PUT",path:t,body:e,...n}),patch:(t,e,n)=>Tu({method:"PATCH",path:t,body:e,...n}),delete:(t,e)=>Tu({method:"DELETE",path:t,...e})},yf=async t=>{try{return{status:200,data:await t()}}catch(e){if(Em(e))return{status:e.status,data:e.body??{}};throw e}},jH={get:t=>yf(()=>wn.get(t)),post:(t,e)=>yf(()=>wn.post(t,e)),patch:(t,e)=>yf(()=>wn.patch(t,e)),put:(t,e)=>yf(()=>wn.put(t,e))};let HT=!1;const GH=()=>{HT||(HT=!0,wH({http:jH,isFeatureEnabled:TA,trackEvent:dw,meshClientId:Gn.meshClientId,walletConnectProjectId:Gn.walletConnectProjectId}))},HH=(t=window)=>{if(!t.frameElement||!t.top||t.parent!==t.top)return!1;try{const e=t.frameElement.getAttribute("src"),n=new URL(t.location.href);return!e||new URL(e,n).origin===n.origin?!1:(t.top.location.replace(n.href),!0)}catch{return!1}},Zx=60*60*1e3,VH=({isAuthenticated:t,lastSyncAt:e,now:n,minIntervalMs:a=Zx})=>t&&(e===null||n-e>=a),YH=({isAuthenticated:t=()=>YF.getState(),resync:e=()=>bp(),now:n=()=>Date.now(),minIntervalMs:a=Zx}={})=>
50{if(typeof document>"u")return()=>{};let o=null;const s=bp.finally.watch(()=>{o=n()}),u=()=>{document.visibilityState==="visible"&&VH({isAuthenticated:t(),lastSyncAt:o,now:n(),minIntervalMs:a})&&(o=n(),e())};return document.addEventListener("visibilitychange",u),()=>{s(),document.removeEventListener("visibilitychange",u)}},qH=(t=H7)=>{if(typeof document>"u")return()=>{};const e=()=>{document.visibilityState==="visible"&&t()};return document.addEventListener("visibilitychange",e),()=>document.removeEventListener("visibilitychange",e)},Kx="--text-zoom",VT=100,ZH=.01,Qie=t=>`calc(${t}px / var(${Kx}, 1))`,KH=(t,e)=>{const n=t.createElement("span");n.style.cssText=`position:absolute;visibility:hidden;font-size:${VT}px`,t.documentElement.appendChild(n);const a=parseFloat(e.getComputedStyle(n).fontSize)/VT;return n.remove(),Number.isFinite(a)&&a>0?a:1},XH=(t,e,n)=>{if(!/Android/i.test(n.userAgent))return;const a=KH(t,e);Math.abs(a-1)<ZH||t.documentElement.style.setProperty(Kx,String(a))},JH="d065979e485f07d62e7cd9d2ece34cdd",QH={web:"GTM-KXCJPZGH"},eV={trackingOptions:{ipAddress:!0,language:!0,platform:!0},defaultTracking:{fileDownloads:!1}},tV=t=>!t.includes("rndlabz")&&!t.includes("localhost"),nV=t=>QH.web,rV=t=>`https://www.googletagmanager.com/gtm.js?id=${t}`,eoe=(t,e,n)=>({device:e,telegramId:t.telegramId??"unknown",playBlock:t.playBlock,termsAccepted:t.termsAccepted,telegramUsername:t.telegramUsername||"unknown",mainCurrency:t.mainCurrency,clickId:t.clickId,affiliateCode:t.affiliateCode,affiliateType:t.affiliateType,affiliatedByCode:t.affiliatedByCode,serviceLanguage:t.serviceLanguage,id:t.id,balances:n,wallets:[]}),aV=(t,e,n)=>({event:t,...e,timestamp:n}),iV=(t,e)=>({page_path:t,page_title:e}),toe=t=>({method:t}),oV=(t,e)=>({userId:e,currency:t.currency,amount:t.value,transactionId:t.transactionId}),sV=t=>({userId:t.userId,currency:t.currency,amountInUsd:t.amountInUsd,amountInCurrency:t.amountInCurrency}),lV=t=>!!(t!=null&&t.some(e=>e["gtm.start"])),cV=t=>({"gtm.start":t,event:"gtm.js"}),noe=(t,e)=>{switch(t){case"auth":return["Authentication modal opened"];case"verification":return["Verification modal opened"];case"welcome":return["Welcome modal opened"];case"user":return["Profile modal opened"];case"settings":return["Settings modal opened",...YT(e)];case"wallet":return YT(e);default:return[]}},YT=t=>{switch(t){case"deposit":return["Deposit tab opened"];case"withdraw":return["Withdraw tab opened"];case"buy":return["Buy tab opened"];default:return["Wallet opened with unknown tab"]}},roe=t=>`Closed ${t??void 0} modal`;var t0=function(t,e){return t0=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},t0(t,e)};function Ir(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");t0(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}var We=function(){return We=Object.assign||function(e){for(var n,a=1,o=arguments.length;a<o;a++){n=arguments[a];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},We.apply(this,arguments)};function n0(t,e){var n={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(n[a]=t[a]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,a=Object.getOwnPropertySymbols(t);o<a.length;o++)e.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(t,a[o])&&(n[a[o]]=t[a[o]]);return n}function Ce(t,e,n,a){function o(s){return s instanceof n?s:new n(function(u){u(s)})}return new(n||(n=Promise))(function(s,u){function c(m){try{d(a.next(m))}catch(f){u(f)}}function p(m){try{d(a.throw(m))}catch(f){u(f)}}function d(m){m.done?s(m.value):o(m.value).then(c,p)}d((a=a.apply(t,e||[])).next())})}function Re(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,u=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return u.next=c(0),u.throw=c(1),u.return=c(2),typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function c(d){return function(m){return p([d,m])}}function p(d){if(a)throw new TypeError("Generator is already executing.");for(;u&&(u=0,d[0]&&(n=0)),n;)try{if(a=1,o&&(s=d[0]&2?o.return:d[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,d[1])).done)return s;switch(o=0,s&&(d=[d[0]&2,s.value]),d[0]){case 0:case 1:s=d;break;case 4:return n.label++,{value:d[1],done:!1};case 5:n.label++,o=d[1],d=[0];continue;case 7:d=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(d[0]===6||d[0]===2)){n=0;continue}if(d[0]===3&&(!s||d[1]>s[0]&&d[1]<s[3])){n.label=d[1];break}if(d[0]===6&&n.label<s[1]){n.label=s[1],s=d;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(d);break}s[2]&&n.ops.pop(),n.trys.pop();continue}d=e.call(t,n)}catch(m){d=[6,m],o=0}finally{a=s=0}if(d[0]&5)throw d[1];return{value:d[0]?d[1]:void 0,done:!0}}}function hn(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],a=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&a>=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function gt(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var a=n.call(t),o,s=[],u;try{for(;(e===void 0||e-- >0)&&!(o=a.next()).done;)s.push(o.value)}catch(c){u={error:c}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(u)throw u.error}}return s}function _n(t,e,n){if(n||arguments.length===2)for(var a=0,o=e.length,s;a<o;a++)(s||!(a in e))&&(s||(s=Array.prototype.slice.call(e,0,a)),s[a]=e[a]);return t.concat(s||Array.prototype.slice.call(e))}function Kl(t){return this instanceof Kl?(this.v=t,this):new Kl(t)}function uV(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=n.apply(t,e||[]),o,s=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),c("next"),c("throw"),c("return",u),o[Symbol.asyncIterator]=function(){return this},o;function u(v){return function(y){return Promise.resolve(y).then(v,f)}}function c(v,y){a[v]&&(o[v]=function(g){return new Promise(function(S,w){s.push([v,g,S,w])>1||p(v,g)})},y&&(o[v]=y(o[v])))}function p(v,y){try{d(a[v](y))}catch(g){b(s[0][3],g)}}function d(v){v.value instanceof Kl?Promise.resolve(v.value.v).then(m,f):b(s[0][2],v)}function m(v){p("next",v)}function f(v){p("throw",v)}function b(v,y){v(y),s.shift(),s.length&&p(s[0][0],s[0][1])}}function dV(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof hn=="function"?hn(t):t[Symbol.iterator](),n={},a("next"),a("throw"),a("return"),n[Symbol.asyncIterator]=function(){return this},n);function a(s){n[s]=t[s]&&function(u){return new Promise(function(c,p){u=t[s](u),o(c,p,u.done,u.value)})}}function o(s,u,c,p){Promise.resolve(p).then(function(d){s({value:d,done:c})},u)}}var hV="Event tracked successfully",fV="Unexpected error occurred",pV="Event rejected due to exceeded retry count",mV="Event skipped due to optOut config",gV="Event rejected due to missing API key",yV="Invalid API key",bV="Client not initialized",vn;(function(t){t.SET="$set",t.SET_ONCE="$setOnce",t.ADD="$add",t.APPEND="$append",t.PREPEND="$prepend",t.REMOVE="$remove",t.PREINSERT="$preInsert",t.POSTINSERT="$postInsert",t.UNSET="$unset",t.CLEAR_ALL="$clearAll"})(vn||(vn={}));var cs;(function(t){t.REVENUE_PRODUCT_ID="$productId",t.REVENUE_QUANTITY="$quantity",t.REVENUE_PRICE="$price",t.REVENUE_TYPE="$revenueType",t.REVENUE="$revenue"})(cs||(cs={}));var cc;(function(t){t.IDENTIFY="$identify",t.GROUP_IDENTIFY="$groupidentify",t.REVENUE="revenue_amount"})(cc||(cc={}));var _r;
50(function(t){t[t.None=0]="None",t[t.Error=1]="Error",t[t.Warn=2]="Warn",t[t.Verbose=3]="Verbose",t[t.Debug=4]="Debug"})(_r||(_r={}));var Ip;(function(t){t.US="US",t.EU="EU"})(Ip||(Ip={}));var Yt;(function(t){t.Unknown="unknown",t.Skipped="skipped",t.Success="success",t.RateLimit="rate_limit",t.PayloadTooLarge="payload_too_large",t.Invalid="invalid",t.Failed="failed",t.Timeout="Timeout",t.SystemError="SystemError"})(Yt||(Yt={}));var vV=null,wV=["a","button","input","select","textarea","label","video","audio",'[contenteditable="true" i]',"[data-amp-default-track]",".amp-default-track"],_V="data-amp-track-",SV=["div","span","h1","h2","h3","h4","h5","h6"],Xl=function(t,e,n){return e===void 0&&(e=0),n===void 0&&(n=Yt.Unknown),{event:t,code:e,message:n}},Tc=function(t){return t?(t^Math.random()*16>>t/4).toString(16):(String(1e7)+String(-1e3)+String(-4e3)+String(-8e3)+String(-1e11)).replace(/[018]/g,Tc)},kV=function(){function t(e){this.client=e,this.queue=[],this.applying=!1,this.plugins=[]}return t.prototype.register=function(e,n){var a,o;return Ce(this,void 0,void 0,function(){return Re(this,function(s){switch(s.label){case 0:return this.plugins.some(function(u){return u.name===e.name})?(n.loggerProvider.warn("Plugin with name ".concat(e.name," already exists, skipping registration")),[2]):(e.name===void 0&&(e.name=Tc(),n.loggerProvider.warn(`Plugin name is undefined. 51 Generating a random UUID for plugin name: `.concat(e.name,`. 52 Set a name for the plugin to prevent it from being added multiple times.`))),e.type=(a=e.type)!==null&&a!==void 0?a:"enrichment",[4,(o=e.setup)===null||o===void 0?void 0:o.call(e,n,this.client)]);case 1:return s.sent(),this.plugins.push(e),[2]}})})},t.prototype.deregister=function(e){var n;return Ce(this,void 0,void 0,function(){var a,o;return Re(this,function(s){switch(s.label){case 0:return a=this.plugins.findIndex(function(u){return u.name===e}),o=this.plugins[a],this.plugins.splice(a,1),[4,(n=o.teardown)===null||n===void 0?void 0:n.call(o)];case 1:return s.sent(),[2]}})})},t.prototype.reset=function(e){this.applying=!1;var n=this.plugins;n.map(function(a){var o;return(o=a.teardown)===null||o===void 0?void 0:o.call(a)}),this.plugins=[],this.client=e},t.prototype.push=function(e){var n=this;return new Promise(function(a){n.queue.push([e,a]),n.scheduleApply(0)})},t.prototype.scheduleApply=function(e){var n=this;this.applying||(this.applying=!0,setTimeout(function(){n.apply(n.queue.shift()).then(function(){n.applying=!1,n.queue.length>0&&n.scheduleApply(0)})},e))},t.prototype.apply=function(e){return Ce(this,void 0,void 0,function(){var n,a,o,s,u,c,p,v,y,d,m,f,b,v,y,g,S,w,k,T,R,I;return Re(this,function(M){switch(M.label){case 0:if(!e)return[2];n=gt(e,1),a=n[0],o=gt(e,2),s=o[1],u=this.plugins.filter(function(L){return L.type==="before"}),M.label=1;case 1:M.trys.push([1,6,7,8]),c=hn(u),p=c.next(),M.label=2;case 2:return p.done?[3,5]:(v=p.value,v.execute?[4,v.execute(We({},a))]:[3,4]);case 3:if(y=M.sent(),y===null)return s({event:a,code:0,message:""}),[2];a=y,M.label=4;case 4:return p=c.next(),[3,2];case 5:return[3,8];case 6:return d=M.sent(),k={error:d},[3,8];case 7:try{p&&!p.done&&(T=c.return)&&T.call(c)}finally{if(k)throw k.error}return[7];case 8:m=this.plugins.filter(function(L){return L.type==="enrichment"||L.type===void 0}),M.label=9;case 9:M.trys.push([9,14,15,16]),f=hn(m),b=f.next(),M.label=10;case 10:return b.done?[3,13]:(v=b.value,v.execute?[4,v.execute(We({},a))]:[3,12]);case 11:if(y=M.sent(),y===null)return s({event:a,code:0,message:""}),[2];a=y,M.label=12;case 12:return b=f.next(),[3,10];case 13:return[3,16];case 14:return g=M.sent(),R={error:g},[3,16];case 15:try{b&&!b.done&&(I=f.return)&&I.call(f)}finally{if(R)throw R.error}return[7];case 16:return S=this.plugins.filter(function(L){return L.type==="destination"}),w=S.map(function(L){var O=We({},a);return L.execute(O).catch(function(W){return Xl(O,0,String(W))})}),Promise.all(w).then(function(L){var O=gt(L,1),W=O[0],F=W||Xl(a,100,"Event not tracked, no destination plugins on the instance");s(F)}),[2]}})})},t.prototype.flush=function(){return Ce(this,void 0,void 0,function(){var e,n,a,o=this;return Re(this,function(s){switch(s.label){case 0:return e=this.queue,this.queue=[],[4,Promise.all(e.map(function(u){return o.apply(u)}))];case 1:return s.sent(),n=this.plugins.filter(function(u){return u.type==="destination"}),a=n.map(function(u){return u.flush&&u.flush()}),[4,Promise.all(a)];case 2:return s.sent(),[2]}})})},t}(),qT="-",Tm="AMP",EV="".concat(Tm,"_unsent"),Xx="https://api2.amplitude.com/2/httpapi",TV="https://api.eu.amplitude.com/2/httpapi",RV="https://api2.amplitude.com/batch",CV="https://api.eu.amplitude.com/batch",AV=1e3,r0=function(t){if(Object.keys(t).length>AV)return!1;for(var e in t){var n=t[e];if(!Jx(e,n))return!1}return!0},Jx=function(t,e){var n,a;if(typeof t!="string")return!1;if(Array.isArray(e)){var o=!0;try{for(var s=hn(e),u=s.next();!u.done;u=s.next()){var c=u.value;if(Array.isArray(c))return!1;if(typeof c=="object")o=o&&r0(c);else if(!["number","string"].includes(typeof c))return!1;if(!o)return!1}}catch(p){n={error:p}}finally{try{u&&!u.done&&(a=s.return)&&a.call(s)}finally{if(n)throw n.error}}}else{if(e==null)return!1;if(typeof e=="object")return r0(e);if(!["number","string","boolean"].includes(typeof e))return!1}return!0},hd=function(){function t(){this._propertySet=new Set,this._properties={}}return t.prototype.getUserProperties=function(){return We({},this._properties)},t.prototype.set=function(e,n){return this._safeSet(vn.SET,e,n),this},t.prototype.setOnce=function(e,n){return this._safeSet(vn.SET_ONCE,e,n),this},t.prototype.append=function(e,n){return this._safeSet(vn.APPEND,e,n),this},t.prototype.prepend=function(e,n){return this._safeSet(vn.PREPEND,e,n),this},t.prototype.postInsert=function(e,n){return this._safeSet(vn.POSTINSERT,e,n),this},t.prototype.preInsert=function(e,n){return this._safeSet(vn.PREINSERT,e,n),this},t.prototype.remove=function(e,n){return this._safeSet(vn.REMOVE,e,n),this},t.prototype.add=function(e,n){return this._safeSet(vn.ADD,e,n),this},t.prototype.unset=function(e){return this._safeSet(vn.UNSET,e,qT),this},t.prototype.clearAll=function(){return this._properties={},this._properties[vn.CLEAR_ALL]=qT,this}
52,t.prototype._safeSet=function(e,n,a){if(this._validate(e,n,a)){var o=this._properties[e];return o===void 0&&(o={},this._properties[e]=o),o[n]=a,this._propertySet.add(n),!0}return!1},t.prototype._validate=function(e,n,a){return this._properties[vn.CLEAR_ALL]!==void 0||this._propertySet.has(n)?!1:e===vn.ADD?typeof a=="number":e!==vn.UNSET&&e!==vn.REMOVE?Jx(n,a):!0},t}(),xV=function(t,e,n){var a=typeof t=="string"?{event_type:t}:t;return We(We(We({},a),n),e&&{event_properties:e})},Qx=function(t,e){var n=We(We({},e),{event_type:cc.IDENTIFY,user_properties:t.getUserProperties()});return n},OV=function(t,e,n,a){var o,s=We(We({},a),{event_type:cc.GROUP_IDENTIFY,group_properties:n.getUserProperties(),groups:(o={},o[t]=e,o)});return s},IV=function(t,e,n){var a,o=new hd;o.set(t,e);var s=We(We({},n),{event_type:cc.IDENTIFY,user_properties:o.getUserProperties(),groups:(a={},a[t]=e,a)});return s},DV=function(t,e){return We(We({},e),{event_type:cc.REVENUE,event_properties:t.getEventProperties()})},ar=function(t){return{promise:t||Promise.resolve()}},LV=function(){function t(e){e===void 0&&(e="$default"),this.initializing=!1,this.isReady=!1,this.q=[],this.dispatchQ=[],this.logEvent=this.track.bind(this),this.timeline=new kV(this),this.name=e}return t.prototype._init=function(e){return Ce(this,void 0,void 0,function(){return Re(this,function(n){switch(n.label){case 0:return this.config=e,this.timeline.reset(this),[4,this.runQueuedFunctions("q")];case 1:return n.sent(),this.isReady=!0,[2]}})})},t.prototype.runQueuedFunctions=function(e){return Ce(this,void 0,void 0,function(){var n,a,o,s,u,c,p,d;return Re(this,function(m){switch(m.label){case 0:n=this[e],this[e]=[],m.label=1;case 1:m.trys.push([1,8,9,10]),a=hn(n),o=a.next(),m.label=2;case 2:return o.done?[3,7]:(s=o.value,u=s(),u&&"promise"in u?[4,u.promise]:[3,4]);case 3:return m.sent(),[3,6];case 4:return[4,u];case 5:m.sent(),m.label=6;case 6:return o=a.next(),[3,2];case 7:return[3,10];case 8:return c=m.sent(),p={error:c},[3,10];case 9:try{o&&!o.done&&(d=a.return)&&d.call(a)}finally{if(p)throw p.error}return[7];case 10:return this[e].length?[4,this.runQueuedFunctions(e)]:[3,12];case 11:m.sent(),m.label=12;case 12:return[2]}})})},t.prototype.track=function(e,n,a){var o=xV(e,n,a);return ar(this.dispatch(o))},t.prototype.identify=function(e,n){var a=Qx(e,n);return ar(this.dispatch(a))},t.prototype.groupIdentify=function(e,n,a,o){var s=OV(e,n,a,o);return ar(this.dispatch(s))},t.prototype.setGroup=function(e,n,a){var o=IV(e,n,a);return ar(this.dispatch(o))},t.prototype.revenue=function(e,n){var a=DV(e,n);return ar(this.dispatch(a))},t.prototype.add=function(e){return this.isReady?this._addPlugin(e):(this.q.push(this._addPlugin.bind(this,e)),ar())},t.prototype._addPlugin=function(e){return ar(this.timeline.register(e,this.config))},t.prototype.remove=function(e){return this.isReady?this._removePlugin(e):(this.q.push(this._removePlugin.bind(this,e)),ar())},t.prototype._removePlugin=function(e){return ar(this.timeline.deregister(e))},t.prototype.dispatchWithCallback=function(e,n){if(!this.isReady)return n(Xl(e,0,bV));this.process(e).then(n)},t.prototype.dispatch=function(e){return Ce(this,void 0,void 0,function(){var n=this;return Re(this,function(a){return this.isReady?[2,this.process(e)]:[2,new Promise(function(o){n.dispatchQ.push(n.dispatchWithCallback.bind(n,e,o))})]})})},t.prototype.process=function(e){return Ce(this,void 0,void 0,function(){var o,n,a,o;return Re(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),this.config.optOut?[2,Xl(e,0,mV)]:[4,this.timeline.push(e)];case 1:return o=s.sent(),o.code===200?this.config.loggerProvider.log(o.message):o.code===100?this.config.loggerProvider.warn(o.message):this.config.loggerProvider.error(o.message),[2,o];case 2:return n=s.sent(),a=String(n),this.config.loggerProvider.error(a),o=Xl(e,0,a),[2,o];case 3:return[2]}})})},t.prototype.setOptOut=function(e){if(!this.isReady){this.q.push(this._setOptOut.bind(this,!!e));return}this._setOptOut(e)},t.prototype._setOptOut=function(e){this.config.optOut=!!e},t.prototype.flush=function(){return ar(this.timeline.flush())},t}(),NV=function(){function t(){this.productId="",this.quantity=1,this.price=0}return t.prototype.setProductId=function(e){return this.productId=e,this},t.prototype.setQuantity=function(e){return e>0&&(this.quantity=e),this},t.prototype.setPrice=function(e){return this.price=e,this},t.prototype.setRevenueType=function(e){return this.revenueType=e,this},t.prototype.setRevenue=function(e){return this.revenue=e,this},t.prototype.setEventProperties=function(e){return r0(e)&&(this.properties=e),this},t.prototype.getEventProperties=function(){var e=this.properties?We({},this.properties):{};return e[cs.REVENUE_PRODUCT_ID]=this.productId,e[cs.REVENUE_QUANTITY]=this.quantity,e[cs.REVENUE_PRICE]=this.price,e[cs.REVENUE_TYPE]=this.revenueType,e[cs.REVENUE]=this.revenue,e},t}(),PV=function(t,e){var n=Math.max(e,1);return t.reduce(function(a,o,s){var u=Math.floor(s/n);return a[u]||(a[u]=[]),a[u].push(o),a},[])},bf="Amplitude Logger ",e4=function(){function t(){this.logLevel=_r.None}return t.prototype.disable=function(){this.logLevel=_r.None},t.prototype.enable=function(e){e===void 0&&(e=_r.Warn),this.logLevel=e},t.prototype.log=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.logLevel<_r.Verbose||console.log("".concat(bf,"[Log]: ").concat(e.join(" ")))},t.prototype.warn=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.logLevel<_r.Warn||console.warn("".concat(bf,"[Warn]: ").concat(e.join(" ")))},t.prototype.error=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.logLevel<_r.Error||console.error("".concat(bf,"[Error]: ").concat(e.join(" ")))},t.prototype.debug=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.logLevel<_r.Debug||console.log("".concat(bf,"[Debug]: ").concat(e.join(" ")))},t}(),rp=function(){return{flushMaxRetries:12,flushQueueSize:200,flushIntervalMillis:1e4,instanceName:"$default_instance",logLevel:_r.Warn,loggerProvider:new e4,offline:!1,optOut:!1,serverUrl:Xx,serverZone:"US",useBatch:!1}},WV=function(){function t(e){var n,a,o,s;this._optOut=!1;var u=rp();this.apiKey=e.apiKey,this.flushIntervalMillis=(n=e.flushIntervalMillis)!==null&&n!==void 0?n:u.flushIntervalMillis,this.flushMaxRetries=e.flushMaxRetries||u.flushMaxRetries,this.flushQueueSize=e.flushQueueSize||u.flushQueueSize,this.instanceName=e.instanceName||u.instanceName,this.loggerProvider=e.loggerProvider||u.loggerProvider,this.logLevel=(a=e.logLevel)!==null&&a!==void 0?a:u.logLevel,this.minIdLength=e.minIdLength,this.plan=e.plan,this.ingestionMetadata=e.ingestionMetadata,this.offline=e.offline!==void 0?e.offline:u.offline,this.optOut=(o=e.optOut)!==null&&o!==void 0?o:u.optOut,this.serverUrl=e.serverUrl,this.serverZone=e.serverZone||u.serverZone,this.storageProvider=e.storageProvider,this.transportProvider=e.transportProvider,this.useBatch=(s=e.useBatch)!==null&&s!==void 0?s:u.useBatch,this.loggerProvider.enable(this.logLevel);var c=t4(e.serverUrl,e.serverZone,e.useBatch);this.serverZone=c.serverZone,this.serverUrl=c.serverUrl}return Object.defineProperty(t.prototype,"optOut",{get:function(){return this._optOut},set:function(e){this._optOut=e}
52,enumerable:!1,configurable:!0}),t}(),MV=function(t,e){return t==="EU"?e?CV:TV:e?RV:Xx},t4=function(t,e,n){if(t===void 0&&(t=""),e===void 0&&(e=rp().serverZone),n===void 0&&(n=rp().useBatch),t)return{serverUrl:t,serverZone:void 0};var a=["US","EU"].includes(e)?e:rp().serverZone;return{serverZone:a,serverUrl:MV(a,n)}},n4=function(){function t(){this.sdk={metrics:{histogram:{}}}}return t.prototype.recordHistogram=function(e,n){this.sdk.metrics.histogram[e]=n},t}();function BV(t){return t instanceof Error?t.message:String(t)}function vf(t){var e="";try{"body"in t&&(e=JSON.stringify(t.body,null,2))}catch{}return e}var UV=function(){function t(){this.name="amplitude",this.type="destination",this.retryTimeout=1e3,this.throttleTimeout=3e4,this.storageKey="",this.scheduled=null,this.queue=[]}return t.prototype.setup=function(e){var n;return Ce(this,void 0,void 0,function(){var a,o=this;return Re(this,function(s){switch(s.label){case 0:return this.config=e,this.storageKey="".concat(EV,"_").concat(this.config.apiKey.substring(0,10)),[4,(n=this.config.storageProvider)===null||n===void 0?void 0:n.get(this.storageKey)];case 1:return a=s.sent(),a&&a.length>0&&Promise.all(a.map(function(u){return o.execute(u)})).catch(),[2,Promise.resolve(void 0)]}})})},t.prototype.execute=function(e){var n=this;return e.insert_id||(e.insert_id=Tc()),new Promise(function(a){var o={event:e,attempts:0,callback:function(s){return a(s)},timeout:0};n.addToQueue(o)})},t.prototype.getTryableList=function(e){var n=this;return e.filter(function(a){return a.attempts<n.config.flushMaxRetries?(a.attempts+=1,!0):(n.fulfillRequest([a],500,pV),!1)})},t.prototype.scheduleTryable=function(e,n){var a=this;n===void 0&&(n=!1),e.forEach(function(o){if(n&&(a.queue=a.queue.concat(o)),o.timeout===0){a.schedule(a.config.flushIntervalMillis);return}setTimeout(function(){o.timeout=0,a.schedule(0)},o.timeout)})},t.prototype.addToQueue=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];var a=this.getTryableList(e);this.scheduleTryable(a,!0),this.saveEvents()},t.prototype.schedule=function(e){var n=this;this.scheduled||this.config.offline||(this.scheduled=setTimeout(function(){n.flush(!0).then(function(){n.queue.length>0&&n.schedule(e)})},e))},t.prototype.flush=function(e){return e===void 0&&(e=!1),Ce(this,void 0,void 0,function(){var n,a,o,s=this;return Re(this,function(u){switch(u.label){case 0:return this.config.offline?(this.config.loggerProvider.debug("Skipping flush while offline."),[2]):(n=[],a=[],this.queue.forEach(function(c){return c.timeout===0?n.push(c):a.push(c)}),this.scheduled&&(clearTimeout(this.scheduled),this.scheduled=null),o=PV(n,this.config.flushQueueSize),[4,Promise.all(o.map(function(c){return s.send(c,e)}))]);case 1:return u.sent(),this.scheduleTryable(a),[2]}})})},t.prototype.send=function(e,n){return n===void 0&&(n=!0),Ce(this,void 0,void 0,function(){var a,o,s,u,c;return Re(this,function(p){switch(p.label){case 0:if(!this.config.apiKey)return[2,this.fulfillRequest(e,400,gV)];a={api_key:this.config.apiKey,events:e.map(function(d){var m=d.event;m.extra;var f=n0(m,["extra"]);return f}),options:{min_id_length:this.config.minIdLength},client_upload_time:new Date().toISOString(),request_metadata:this.config.requestMetadata},this.config.requestMetadata=new n4,p.label=1;case 1:return p.trys.push([1,3,,4]),o=t4(this.config.serverUrl,this.config.serverZone,this.config.useBatch).serverUrl,[4,this.config.transportProvider.send(o,a)];case 2:return s=p.sent(),s===null?(this.fulfillRequest(e,0,fV),[2]):n?(this.handleResponse(s,e),[3,4]):("body"in s?this.fulfillRequest(e,s.statusCode,"".concat(s.status,": ").concat(vf(s))):this.fulfillRequest(e,s.statusCode,s.status),[2]);case 3:return u=p.sent(),c=BV(u),this.config.loggerProvider.error(c),this.handleResponse({status:Yt.Failed,statusCode:0},e),[3,4];case 4:return[2]}})})},t.prototype.handleResponse=function(e,n){var a=e.status;switch(a){case Yt.Success:{this.handleSuccessResponse(e,n);break}case Yt.Invalid:{this.handleInvalidResponse(e,n);break}case Yt.PayloadTooLarge:{this.handlePayloadTooLargeResponse(e,n);break}case Yt.RateLimit:{this.handleRateLimitResponse(e,n);break}default:{this.config.loggerProvider.warn(`{code: 0, error: "Status '`.concat(a,"' provided for ").concat(n.length,' events"}')),this.handleOtherResponse(n);break}}},t.prototype.handleSuccessResponse=function(e,n){this.fulfillRequest(n,e.statusCode,hV)},t.prototype.handleInvalidResponse=function(e,n){var a=this;if(e.body.missingField||e.body.error.startsWith(yV)){this.fulfillRequest(n,e.statusCode,e.body.error);return}var o=_n(_n(_n(_n([],gt(Object.values(e.body.eventsWithInvalidFields)),!1),gt(Object.values(e.body.eventsWithMissingFields)),!1),gt(Object.values(e.body.eventsWithInvalidIdLengths)),!1),gt(e.body.silencedEvents),!1).flat(),s=new Set(o),u=n.filter(function(p,d){if(s.has(d)){a.fulfillRequest([p],e.statusCode,e.body.error);return}return!0});u.length>0&&this.config.loggerProvider.warn(vf(e));var c=this.getTryableList(u);this.scheduleTryable(c)},t.prototype.handlePayloadTooLargeResponse=function(e,n){if(n.length===1){this.fulfillRequest(n,e.statusCode,e.body.error);return}this.config.loggerProvider.warn(vf(e)),this.config.flushQueueSize/=2;var a=this.getTryableList(n);this.scheduleTryable(a)},t.prototype.handleRateLimitResponse=function(e,n){var a=this,o=Object.keys(e.body.exceededDailyQuotaUsers),s=Object.keys(e.body.exceededDailyQuotaDevices),u=e.body.throttledEvents,c=new Set(o),p=new Set(s),d=new Set(u),m=n.filter(function(b,v){if(b.event.user_id&&c.has(b.event.user_id)||b.event.device_id&&p.has(b.event.device_id)){a.fulfillRequest([b],e.statusCode,e.body.error);return}return d.has(v)&&(b.timeout=a.throttleTimeout),!0});m.length>0&&this.config.loggerProvider.warn(vf(e));var f=this.getTryableList(m);this.scheduleTryable(f)},t.prototype.handleOtherResponse=function(e){var n=this,a=e.map(function(s){return s.timeout=s.attempts*n.retryTimeout,s}),o=this.getTryableList(a);this.scheduleTryable(o)},t.prototype.fulfillRequest=function(e,n,a){this.removeEvents(e),e.forEach(function(o){return o.callback(Xl(o.event,n,a))})},t.prototype.saveEvents=function(){if(this.config.storageProvider){var e=this.queue.map(function(n){return n.event});this.config.storageProvider.set(this.storageKey,e)}},t.prototype.removeEvents=function(e){this.queue=this.queue.filter(function(n){return!e.s
52ome(function(a){return a.event.insert_id===n.event.insert_id})}),this.saveEvents()},t}(),FV=function(t){var e=new Error().stack||"";return e.split(` 53`).slice(2+t).map(function(n){return n.trim()})},on=function(t){return function(){var e=We({},t.config),n=e.loggerProvider,a=e.logLevel;return{logger:n,logLevel:a}}},$V=function(t,e){var n,a;e=e.replace(/\[(\w+)\]/g,".$1"),e=e.replace(/^\./,"");try{for(var o=hn(e.split(".")),s=o.next();!s.done;s=o.next()){var u=s.value;if(u in t)t=t[u];else return}}catch(c){n={error:c}}finally{try{s&&!s.done&&(a=o.return)&&a.call(o)}finally{if(n)throw n.error}}return t},sn=function(t,e){return function(){var n,a,o={};try{for(var s=hn(e),u=s.next();!u.done;u=s.next()){var c=u.value;o[c]=$V(t,c)}}catch(p){n={error:p}}finally{try{u&&!u.done&&(a=s.return)&&a.call(s)}finally{if(n)throw n.error}}return o}},ln=function(t,e,n,a,o){return o===void 0&&(o=null),function(){for(var s=[],u=0;u<arguments.length;u++)s[u]=arguments[u];var c=n(),p=c.logger,d=c.logLevel;if(d&&d<_r.Debug||!d||!p)return t.apply(o,s);var m={type:"invoke public method",name:e,args:s,stacktrace:FV(1),time:{start:new Date().toISOString()},states:{}};a&&m.states&&(m.states.before=a());var f=t.apply(o,s);return f&&f.promise?f.promise.then(function(){a&&m.states&&(m.states.after=a()),m.time&&(m.time.end=new Date().toISOString()),p.debug(JSON.stringify(m,null,2))}):(a&&m.states&&(m.states.after=a()),m.time&&(m.time.end=new Date().toISOString()),p.debug(JSON.stringify(m,null,2))),f}},Rw=function(){function t(){this.memoryStorage=new Map}return t.prototype.isEnabled=function(){return Ce(this,void 0,void 0,function(){return Re(this,function(e){return[2,!0]})})},t.prototype.get=function(e){return Ce(this,void 0,void 0,function(){return Re(this,function(n){return[2,this.memoryStorage.get(e)]})})},t.prototype.getRaw=function(e){return Ce(this,void 0,void 0,function(){var n;return Re(this,function(a){switch(a.label){case 0:return[4,this.get(e)];case 1:return n=a.sent(),[2,n?JSON.stringify(n):void 0]}})})},t.prototype.set=function(e,n){return Ce(this,void 0,void 0,function(){return Re(this,function(a){return this.memoryStorage.set(e,n),[2]})})},t.prototype.remove=function(e){return Ce(this,void 0,void 0,function(){return Re(this,function(n){return this.memoryStorage.delete(e),[2]})})},t.prototype.reset=function(){return Ce(this,void 0,void 0,function(){return Re(this,function(e){return this.memoryStorage.clear(),[2]})})},t}(),Rm=function(){function t(){}return t.prototype.send=function(e,n){return Promise.resolve(null)},t.prototype.buildResponse=function(e){var n,a,o,s,u,c,p,d,m,f,b,v,y,g,S,w,k,T,R,I,M,L;if(typeof e!="object")return null;var O=e.code||0,W=this.buildStatus(O);switch(W){case Yt.Success:return{status:W,statusCode:O,body:{eventsIngested:(n=e.events_ingested)!==null&&n!==void 0?n:0,payloadSizeBytes:(a=e.payload_size_bytes)!==null&&a!==void 0?a:0,serverUploadTime:(o=e.server_upload_time)!==null&&o!==void 0?o:0}};case Yt.Invalid:return{status:W,statusCode:O,body:{error:(s=e.error)!==null&&s!==void 0?s:"",missingField:(u=e.missing_field)!==null&&u!==void 0?u:"",eventsWithInvalidFields:(c=e.events_with_invalid_fields)!==null&&c!==void 0?c:{},eventsWithMissingFields:(p=e.events_with_missing_fields)!==null&&p!==void 0?p:{},eventsWithInvalidIdLengths:(d=e.events_with_invalid_id_lengths)!==null&&d!==void 0?d:{},epsThreshold:(m=e.eps_threshold)!==null&&m!==void 0?m:0,exceededDailyQuotaDevices:(f=e.exceeded_daily_quota_devices)!==null&&f!==void 0?f:{},silencedDevices:(b=e.silenced_devices)!==null&&b!==void 0?b:[],silencedEvents:(v=e.silenced_events)!==null&&v!==void 0?v:[],throttledDevices:(y=e.throttled_devices)!==null&&y!==void 0?y:{},throttledEvents:(g=e.throttled_events)!==null&&g!==void 0?g:[]}};case Yt.PayloadTooLarge:return{status:W,statusCode:O,body:{error:(S=e.error)!==null&&S!==void 0?S:""}};case Yt.RateLimit:return{status:W,statusCode:O,body:{error:(w=e.error)!==null&&w!==void 0?w:"",epsThreshold:(k=e.eps_threshold)!==null&&k!==void 0?k:0,throttledDevices:(T=e.throttled_devices)!==null&&T!==void 0?T:{},throttledUsers:(R=e.throttled_users)!==null&&R!==void 0?R:{},exceededDailyQuotaDevices:(I=e.exceeded_daily_quota_devices)!==null&&I!==void 0?I:{},exceededDailyQuotaUsers:(M=e.exceeded_daily_quota_users)!==null&&M!==void 0?M:{},throttledEvents:(L=e.throttled_events)!==null&&L!==void 0?L:[]}};case Yt.Timeout:default:return{status:W,statusCode:O}}},t.prototype.buildStatus=function(e){return e>=200&&e<300?Yt.Success:e===429?Yt.RateLimit:e===413?Yt.PayloadTooLarge:e===408?Yt.Timeout:e>
53=400&&e<500?Yt.Invalid:e>=500?Yt.Failed:Yt.Unknown},t}(),va=function(){var t="ampIntegrationContext";if(typeof globalThis<"u"&&typeof globalThis[t]<"u")return globalThis[t];if(typeof globalThis<"u")return globalThis;if(typeof window<"u")return window;if(typeof self<"u")return self;if(typeof Ts<"u")return Ts},Dp=function(){var t,e=va();if(!(!((t=e==null?void 0:e.location)===null||t===void 0)&&t.search))return{};var n=e.location.search.substring(1).split("&").filter(Boolean),a=n.reduce(function(o,s){var u=s.split("=",2),c=ZT(u[0]),p=ZT(u[1]);return p&&(o[c]=p),o},{});return a},ZT=function(t){t===void 0&&(t="");try{return decodeURIComponent(t)}catch{return""}},zV="utm_campaign",jV="utm_content",GV="utm_id",HV="utm_medium",VV="utm_source",YV="utm_term",KT="dclid",XT="fbclid",JT="gbraid",QT="gclid",e2="ko_click_id",t2="li_fat_id",n2="msclkid",r2="rtd_cid",a2="ttclid",i2="twclid",o2="wbraid",Cm={utm_campaign:void 0,utm_content:void 0,utm_id:void 0,utm_medium:void 0,utm_source:void 0,utm_term:void 0,referrer:void 0,referring_domain:void 0,dclid:void 0,gbraid:void 0,gclid:void 0,fbclid:void 0,ko_click_id:void 0,li_fat_id:void 0,msclkid:void 0,rtd_cid:void 0,ttclid:void 0,twclid:void 0,wbraid:void 0},r4=function(){function t(){}return t.prototype.parse=function(){return Ce(this,void 0,void 0,function(){return Re(this,function(e){return[2,We(We(We(We({},Cm),this.getUtmParam()),this.getReferrer()),this.getClickIds())]})})},t.prototype.getUtmParam=function(){var e=Dp(),n=e[zV],a=e[jV],o=e[GV],s=e[HV],u=e[VV],c=e[YV];return{utm_campaign:n,utm_content:a,utm_id:o,utm_medium:s,utm_source:u,utm_term:c}},t.prototype.getReferrer=function(){var e,n,a={referrer:void 0,referring_domain:void 0};try{a.referrer=document.referrer||void 0,a.referring_domain=(n=(e=a.referrer)===null||e===void 0?void 0:e.split("/")[2])!==null&&n!==void 0?n:void 0}catch{}return a},t.prototype.getClickIds=function(){var e,n=Dp();return e={},e[KT]=n[KT],e[XT]=n[XT],e[JT]=n[JT],e[QT]=n[QT],e[e2]=n[e2],e[t2]=n[t2],e[n2]=n[n2],e[r2]=n[r2],e[a2]=n[a2],e[i2]=n[i2],e[o2]=n[o2],e},t}(),a4=function(t,e,n){return e===void 0&&(e=""),n===void 0&&(n=10),[Tm,e,t.substring(0,n)].filter(Boolean).join("_")},qV=function(t){return"".concat(Tm.toLowerCase(),"_").concat(t.substring(0,6))},s2=function(t){var e=t.split(".");return e.length<=2?t:e.slice(e.length-2,e.length).join(".")},ZV=function(t){return Object.values(t).every(function(e){return!e})},KV=function(t,e,n,a){a===void 0&&(a=!0),t.referrer;var o=t.referring_domain,s=n0(t,["referrer","referring_domain"]),u=e||{};u.referrer;var c=u.referring_domain,p=n0(u,["referrer","referring_domain"]);if(XV(n.excludeReferrers,t.referring_domain)||!a&&ZV(t)&&e)return!1;var d=JSON.stringify(s)!==JSON.stringify(p),m=s2(o||"")!==s2(c||"");return!e||d||m},XV=function(t,e){return t===void 0&&(t=[]),e===void 0&&(e=""),t.some(function(n){return n instanceof RegExp?n.test(e):n===e})},JV=function(t,e){var n=We(We({},Cm),t),a=Object.entries(n).reduce(function(o,s){var u,c=gt(s,2),p=c[0],d=c[1];return o.setOnce("initial_".concat(p),(u=d??e.initialEmptyValue)!==null&&u!==void 0?u:"EMPTY"),d?o.set(p,d):o.unset(p)},new hd);return Qx(a)},QV=function(t){var e=t;return e?(e.startsWith(".")&&(e=e.substring(1)),[new RegExp("".concat(e.replace(".","\\."),"$"))]):[]},eY=function(t,e,n){return n===void 0&&(n=10),[Tm,e,t.substring(0,n)].filter(Boolean).join("_")},i4=function(t,e){e===void 0&&(e=Date.now());var n=Date.now(),a=n-e;return a>t},tY=function(){function t(e,n){var a;this.shouldTrackNewCampaign=!1,this.options=We({initialEmptyValue:"EMPTY",resetSessionOnNewCampaign:!1,excludeReferrers:QV((a=n.cookieOptions)===null||a===void 0?void 0:a.domain)},e),this.storage=n.cookieStorage,this.storageKey=eY(n.apiKey,"MKTG"),this.currentCampaign=Cm,this.sessionTimeout=n.sessionTimeout,this.lastEventTime=n.lastEventTime,n.loggerProvider.log("Installing web attribution tracking.")}return t.prototype.init=function(){return Ce(this,void 0,void 0,function(){var e,n;return Re(this,function(a){switch(a.label){case 0:return[4,this.fetchCampaign()];case 1:return n=gt.apply(void 0,[a.sent(),2]),this.currentCampaign=n[0],this.previousCampaign=n[1],e=this.lastEventTime?i4(this.sessionTimeout,this.lastEventTime):!0,KV(this.currentCampaign,this.previousCampaign,this.options,e)?(this.shouldTrackNewCampaign=!0,[4,this.storage.set(this.storageKey,this.currentCampaign)]):[3,3];case 2:a.sent(),a.label=3;case 3:return[2]}})})},t.prototype.fetchCampaign=function(){return Ce(this,void 0,void 0,function(){return Re(this,function(e){switch(e.label){case 0:return[4,Promise.all([new r4().parse(),this.storage.get(this.storageKey)])];case 1:return[2,e.sent()]}})})},t.prototype.generateCampaignEvent=function(e){this.shouldTrackNewCampaign=!1;var n=JV(this.currentCampaign,this.options);return e&&(n.event_id=e),n},t.prototype.shouldSetSessionIdOnNewCampaign=function(){return this.shouldTrackNewCampaign&&!!this.options.resetSessionOnNewCampaign},t}(),a0=function(){function t(e){this.options=We({},e)}return t.prototype.isEnabled=function(){return Ce(this,void 0,void 0,function(){var e,n,a;return Re(this,function(o){switch(o.label){case 0:if(!va())return[2,!1];t.testValue=String(Date.now()),e=new t(this.options),n="AMP_TEST",o.label=1;case 1:return o.trys.push([1,4,5,7]),[4,e.set(n,t.testValue)];case 2:return o.sent(),[4,e.get(n)];case 3:return a=o.sent(),[2,a===t.testValue];case 4:return o.sent(),[2,!1];case 5:return[4,e.remove(n)];case 6:return o.sent(),[7];case 7:return[2]}})})},t.prototype.get=function(e){var n;return Ce(this,void 0,void 0,function(){var a,o;return Re(this,function(s){switch(s.label){case 0:return[4,this.getRaw(e)];case 1:if(a=s.sent(),!a)return[2,void 0];try{return o=(n=nY(a))!==null&&n!==void 0?n:rY(a),o===void 0?(console.error("Amplitude Logger [Error]: Failed to decode cookie value for key: ".concat(e,", value: ").concat(a)),[2,void 0]):[2,JSON.parse(o)]}catch{return console.error("Amplitude Logger [Error]: Failed to parse cookie value for key: ".concat(e,", value: ").concat(a)),[2,void 0]}return[2]}})})},t.prototype.getRaw=function(e){var n,a;return Ce(this,void 0,void 0,function(){var o,s,u;return Re(this,function(c){return o=va(),s=(a=(n=o==null?void 0:o.document)===null||n===void 0?void 0:n.cookie.split("; "))!==null&&a!==void 0?a:[],u=s.find(function(p){return p.indexOf(e+"=")===0}),u?[2,u.substring(e.length+1)]:[2,void 0]})})},t.prototype.set=function(e,n){var a;return Ce(this,void 0,void 0,function(){var o,s,u,c,p,d,m;return Re(this,function(f){try{o=(a=this.options.expirationDays)!==null&&a!==void 0?a:0,s=n!==null?o:-1,u=void 0,s&&(c=new Date,c.setTime(c.getTime()+s*24*60*60*1e3),u=c),p="".concat(e,"=").concat(btoa(encodeURIComponent(JSON.stringify(n)))),u&&(p+="; expires=".concat(u.toUTCString())),p+="; path=/",this.options.domain&&(p+="; domain=".concat(this.options.domain)),this.options.secure&&(p+="; Secure"),this.options.sameSite&&(p+="; SameSite=".concat(this.options.sameSite)),d=va(),d&&(d.document.cookie=p)}catch(b){m=b instanceof Error?b.message:String(b),console.error("Amplitude Logger [Error]: Failed to set cookie for key: ".concat(e,". Error: ").concat(m))}return[2]})})},t.prototype.remove=function(e){return Ce(this,void 0,void 0,function(){return Re(this,function(n){switch(n.label){case 0:return[4,this.set(e,null)];case 1:return n.sent(),[2]}})})},t.prototype.reset=function(){return Ce(this,void 0,void 0,function(){return Re(this,function(e){return[2]})})},t}(),nY=function(t){try{return decodeURIComponent(atob(t))}catch{return}},rY=function(t){try{return decodeURIComponent(atob(decodeURIComponent(t)))}catch{return}},aY=function(t){Ir(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.send=function(n,a){return Ce(this,void 0,void 0,function(){var o,s,u;return Re(this,function(c){switch(c.label){case 0:if(typeof fetch>"u")throw new Error("FetchTransport is not supported");return o={headers:{"Content-Type":"application/json",Accept:"*/*"},body:JSON.stringify(a),method:"POST"},[4,fetch(n,o)];case 1:return s=c.sent(),[4,s.text()];case 2:u=c.sent();try{return[2,this.buildResponse(JSON.parse(u))]}catch{return[2,this.buildResponse({code:s.status})]}return[2]}})})},e}(Rm),iY=function(){function t(){}return t.prototype.getApplicationContext=function(){return{versionName:this.versionName,language:oY(),platform:"Web",os:void 0,deviceModel:void 0}},t}(),oY=function(){return typeof navigator<"u"&&(navigator.languages&&navigator.languages[0]||navigator.language)||""},sY=function(){function t(){this.queue=[]}return t.prototype.logEvent=function(e){this.receiver?this.receiver(e):this.queue.length<512&&this.queue.push(e)},t.prototype.setEventReceiver=function(e){this.receiver=e,this.queue.length>0&&(this.queue.forEach(function(n){e(n)}),this.queue=[])},t}(),fo=function(){return fo=Object.assign||function(e){for(var n,a=1,o=arguments.length;a<o;a++){n=arguments[a];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},fo.apply(this,arguments)},ap=function(t,e){var n=["string","number","boolean","undefined"],a=typeof t,o=typeof e;if(a!==o)return!1;for(var s=0,u=n;s<u.length;s++){var c=u[s];if(c===a)return t===e}if(t==null&&e==null)return!0;
53if(t==null||e==null||t.length!==e.length)return!1;var p=Array.isArray(t),d=Array.isArray(e);if(p!==d)return!1;if(p&&d){for(var m=0;m<t.length;m++)if(!ap(t[m],e[m]))return!1}else{var f=Object.keys(t).sort(),b=Object.keys(e).sort();if(!ap(f,b))return!1;var v=!0;return Object.keys(t).forEach(function(y){ap(t[y],e[y])||(v=!1)}),v}return!0},lY="$set",cY="$unset",uY="$clearAll";Object.entries||(Object.entries=function(t){for(var e=Object.keys(t),n=e.length,a=new Array(n);n--;)a[n]=[e[n],t[e[n]]];return a});var dY=function(){function t(){this.identity={userProperties:{}},this.listeners=new Set}return t.prototype.editIdentity=function(){var e=this,n=fo({},this.identity.userProperties),a=fo(fo({},this.identity),{userProperties:n});return{setUserId:function(o){return a.userId=o,this},setDeviceId:function(o){return a.deviceId=o,this},setUserProperties:function(o){return a.userProperties=o,this},setOptOut:function(o){return a.optOut=o,this},updateUserProperties:function(o){for(var s=a.userProperties||{},u=0,c=Object.entries(o);u<c.length;u++){var p=c[u],d=p[0],m=p[1];switch(d){case lY:for(var f=0,b=Object.entries(m);f<b.length;f++){var v=b[f],y=v[0],g=v[1];s[y]=g}break;case cY:for(var S=0,w=Object.keys(m);S<w.length;S++){var y=w[S];delete s[y]}break;case uY:s={};break}}return a.userProperties=s,this},commit:function(){return e.setIdentity(a),this}}},t.prototype.getIdentity=function(){return fo({},this.identity)},t.prototype.setIdentity=function(e){var n=fo({},this.identity);this.identity=fo({},e),ap(n,this.identity)||this.listeners.forEach(function(a){a(e)})},t.prototype.addIdentityListener=function(e){this.listeners.add(e)},t.prototype.removeIdentityListener=function(e){this.listeners.delete(e)},t}(),Ru=typeof globalThis<"u"?globalThis:typeof Ts<"u"?Ts:self,hY=function(){function t(){this.identityStore=new dY,this.eventBridge=new sY,this.applicationContextProvider=new iY}return t.getInstance=function(e){return Ru.analyticsConnectorInstances||(Ru.analyticsConnectorInstances={}),Ru.analyticsConnectorInstances[e]||(Ru.analyticsConnectorInstances[e]=new t),Ru.analyticsConnectorInstances[e]},t}(),fd=function(t){return t===void 0&&(t="$default_instance"),hY.getInstance(t)},fY=function(t,e){fd(e).identityStore.editIdentity().setUserId(t).commit()},pY=function(t,e){fd(e).identityStore.editIdentity().setDeviceId(t).commit()},mY=function(){function t(){this.name="identity",this.type="before",this.identityStore=fd().identityStore}return t.prototype.execute=function(e){return Ce(this,void 0,void 0,function(){var n;return Re(this,function(a){return n=e.user_properties,n&&this.identityStore.editIdentity().updateUserProperties(n).commit(),[2,e]})})},t.prototype.setup=function(e){return Ce(this,void 0,void 0,function(){return Re(this,function(n){return e.instanceName&&(this.identityStore=fd(e.instanceName).identityStore),[2]})})},t}(),gY=function(){var t,e,n,a;if(typeof navigator>"u")return"";var o=navigator.userLanguage;return(a=(n=(e=(t=navigator.languages)===null||t===void 0?void 0:t[0])!==null&&e!==void 0?e:navigator.language)!==null&&n!==void 0?n:o)!==null&&a!==void 0?a:""},Vd=function(t,e){return typeof t=="boolean"?t:(t==null?void 0:t[e])!==!1},o4=function(t){return Vd(t,"attribution")},yY=function(t){return Vd(t,"fileDownloads")},bY=function(t){return Vd(t,"formInteractions")},s4=function(t){return Vd(t,"pageViews")},l2=function(t){return Vd(t,"sessions")},l4=function(t){return typeof t=="boolean"?t:typeof t=="object"&&(t.elementInteractions===!0||typeof t.elementInteractions=="object")},vY=function(t){if(l4(t.autocapture)&&typeof t.autocapture=="object"&&typeof t.autocapture.elementInteractions=="object")return t.autocapture.elementInteractions},wY=function(t){var e=function(){return!1},n=void 0,a,o=t.pageCounter,s=s4(t.defaultTracking);return s&&(e=void 0,a=void 0,t.defaultTracking&&typeof t.defaultTracking=="object"&&t.defaultTracking.pageViews&&typeof t.defaultTracking.pageViews=="object"&&("trackOn"in t.defaultTracking.pageViews&&(e=t.defaultTracking.pageViews.trackOn),"trackHistoryChanges"in t.defaultTracking.pageViews&&(n=t.defaultTracking.pageViews.trackHistoryChanges),"eventType"in t.defaultTracking.pageViews&&t.defaultTracking.pageViews.eventType&&(a=t.defaultTracking.pageViews.eventType))),{trackOn:e,trackHistoryChanges:n,eventType:a,pageCounter:o}},_Y=function(t){return o4(t.defaultTracking)&&t.defaultTracking&&typeof t.defaultTracking=="object"&&t.defaultTracking.attribution&&typeof t.defaultTracking.attribution=="object"?We({},t.defaultTracking.attribution):{}},Ib=function(t,e){for(var n=0;n<e.length;n++){var a=e[n],o=a.name,s=a.args,u=a.resolve,c=t&&t[o];if(typeof c=="function"){var p=c.apply(t,s);typeof u=="function"&&u(p==null?void 0:p.promise)}}return t},Db=function(t){var e=t;return e&&e._q!==void 0},SY="2.11.7",kY="Web",EY="$remote",TY=function(){function t(){this.name="@amplitude/plugin-context-browser",this.type="before",this.library="amplitude-ts/".concat(SY),typeof navigator<"u"&&(this.userAgent=navigator.userAgent)}return t.prototype.setup=function(e){return this.config=e,Promise.resolve(void 0)},t.prototype.execute=function(e){var n,a;return Ce(this,void 0,void 0,function(){var o,s,u,c;return Re(this,function(p){return o=new Date().getTime(),s=(n=this.config.lastEventId)!==null&&n!==void 0?n:-1,u=(a=e.event_id)!==null&&a!==void 0?a:s+1,this.config.lastEventId=u,e.time||(this.config.lastEventTime=o),c=We(We(We(We(We(We(We(We({user_id:this.config.userId,device_id:this.config.deviceId,session_id:this.config.sessionId,time:o},this.config.appVersion&&{app_version:this.config.appVersion}),this.config.trackingOptions.platform&&{platform:kY}),this.config.trackingOptions.language&&{language:gY()}),this.config.trackingOptions.ipAddress&&{ip:EY}),{insert_id:Tc(),partner_id:this.config.partnerId,plan:this.config.plan}),this.config.ingestionMetadata&&{ingestion_metadata:{source_name:this.config.ingestionMetadata.sourceName,source_version:this.config.ingestionMetadata.sourceVersion}}),e),{event_id:u,library:this.library,user_agent:this.userAgent}),[2,c]})})},t}(),c4=function(){function t(e){this.storage=e}return t.prototype.isEnabled=function(){return Ce(this,void 0,void 0,function(){var e,n,a,o;return Re(this,function(s){switch(s.label){case 0:if(!this.storage)return[2,!1];e=String(Date.now()),n=new t(this.storage),a="AMP_TEST",s.label=1;case 1:return s.trys.push([1,4,5,7]),[4,n.set(a,e)];case 2:return s.sent(),[4,n.get(a)];case 3:return o=s.sent(),[2,o===e];case 4:return s.sent(),[2,!1];case 5:return[4,n.remove(a)];case 6:return s.sent(),[7];case 7:return[2]}})})},t.prototype.get=function(e){return Ce(this,void 0,void 0,function(){var n;return Re(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,this.getRaw(e)];case 1:return n=a.sent(),n?[2,JSON.parse(n)]:[2,void 0];case 2:return a.sent(),console.error("[Amplitude] Error: Could not get value from storage"),[2,void 0];case 3:return[2]}})})},t.prototype.getRaw=function(e){var n;return Ce(this,void 0,void 0,function(){return Re(this,function(a){return[2,((n=this.storage)===null||n===void 0?void 0:n.getItem(e))||void 0]})})},t.prototype.set=function(e,n){var a;return Ce(this,void 0,void 0,function(){return Re(this,function(o){try{(a=this.storage)===null||a===void 0||a.setItem(e,JSON.stringify(n))}catch{}return[2]})})},t.prototype.remove=function(e){var n;return Ce(this,void 0,void 0,function(){return Re(this,function(a){try{(n=this.storage)===null||n===void 0||n.removeItem(e)}catch{}return[2]})})},t.prototype.reset=function(){var e;return Ce(this,void 0,void 0,function(){return Re(this,function(n){try{(e=this.storage)===null||e===void 0||e.clear()}catch{}return[2]})})},t}(),wf=1e3,u4=function(t){Ir(e,t);function e(n){var a=this,o;return a=t.call(this,(o=va())===null||o===void 0?void 0:o.localStorage)||this,a.loggerProvider=n==null?void 0:n.loggerProvider,a}return e.prototype.set=function(n,a){var o;return Ce(this,void 0,void 0,function(){var s;return Re(this,function(u){switch(u.label){case 0:return Array.isArray(a)&&a.length>wf?(s=a.length-wf,[4,t.prototype.set.call(this,n,a.slice(0,wf))]):[3,2];case 1:return u.sent(),(o=this.loggerProvider)===null||o===void 0||o.error("Failed to save ".concat(s," events because the queue length exceeded ").concat(wf,".")),[3,4];case 2:return[4,t.prototype.set.call(this,n,a)];case 3:u.sent(),u.label=4;case 4:return[2]}})})},e}(c4),RY=function(t){Ir(e,t);function e(){var n;return t.call(this,(n=va())===null||n===void 0?void 0:n.sessionStorage)||this}return e}(c4),CY=function(t){Ir(e,t);function e(){var n=t!==null&&t.apply(this,arguments)||this;return n.state={done:4},n}return e.prototype.send=function(n,a){return Ce(this,void 0,void 0,function(){var o=this;return Re(this,function(s){return[2,new Promise(function(u,c){typeof XMLHttpRequest>"u"&&c(new Error("XHRTransport is not supported."));var p=new XMLHttpRequest;p.open("POST",n,!0),p.onreadystatechange=function(){if(p.readyState===o.state.done){var d=p.responseText;try{u(o.buildResponse(JSON.parse(d)))}catch{u(o.buildResponse({code:p.status}))}}},p.setRequestHeader("Content-Type","application/json"),p.setRequestHeader("Accept","*/*"),p.send(JSON.stringify(a))})]})})},e}(Rm),AY=function(t){Ir(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.send=function(n,a){return Ce(this,void 0,void 0,function(){var o=this;return Re(this,function(s){return[2,new Promise(function(u,c){var p=va();if(!(p!=null&&p.navigator.sendBeacon))throw new Error("SendBeaconTransport is not supported");try{var d=JSON.stringify(a),m=p.navigator.sendBeacon(n,JSON.stringify(a));return u(m?o.buildResponse({code:200,events_ingested:a.events.length,payload_size_bytes:d.length,server_upload_time:Date.now()}):o.buildResponse({code:500}))}catch(f){c(f)}})]})})},e}(Rm),xY=function(t,e,n){return n===void 0&&(n=!0),Ce(void 0,void 0,void 0,function(){var a,o,s,u,c,p,d,m,f;return Re(this,function(b){switch(b.label){case 0:return a=qV(t),[4,e.getRaw(a)];case 1:return o=b.sent(),o?n?[4,e.remove(a)]:[3,3]:[2,{optOut:!1}];case 2:b.sent(),b.label=3;
53case 3:return s=gt(o.split("."),6),u=s[0],c=s[1],p=s[2],d=s[3],m=s[4],f=s[5],[2,{deviceId:u,userId:OY(c),sessionId:Lb(d),lastEventId:Lb(f),lastEventTime:Lb(m),optOut:!!p}]}})})},Lb=function(t){var e=parseInt(t,32);if(!isNaN(e))return e},OY=function(t){if(!(!atob||!escape||!t))try{return decodeURIComponent(escape(atob(t)))}catch{return}},Ra="[Amplitude]",c2="".concat(Ra," Form Started"),IY="".concat(Ra," Form Submitted"),DY="".concat(Ra," File Downloaded"),u2="session_start",d2="session_end",LY="".concat(Ra," File Extension"),NY="".concat(Ra," File Name"),PY="".concat(Ra," Link ID"),WY="".concat(Ra," Link Text"),MY="".concat(Ra," Link URL"),Nb="".concat(Ra," Form ID"),Pb="".concat(Ra," Form Name"),Wb="".concat(Ra," Form Destination"),Lp="cookie",BY="US",UY=function(t){Ir(e,t);function e(n,a,o,s,u,c,p,d,m,f,b,v,y,g,S,w,k,T,R,I,M,L,O,W,F,G,ee,de,ye,_e,Y,q,re,be){o===void 0&&(o=new Rw),s===void 0&&(s={domain:"",expiration:365,sameSite:"Lax",secure:!1,upgrade:!0}),d===void 0&&(d=1e3),m===void 0&&(m=5),f===void 0&&(f=30),b===void 0&&(b=Lp),w===void 0&&(w=new e4),k===void 0&&(k=_r.Warn),R===void 0&&(R=!1),I===void 0&&(I=!1),O===void 0&&(O=""),W===void 0&&(W=BY),G===void 0&&(G=30*60*1e3),ee===void 0&&(ee=new u4({loggerProvider:w})),de===void 0&&(de={ipAddress:!0,language:!0,platform:!0}),ye===void 0&&(ye="fetch"),_e===void 0&&(_e=!1),Y===void 0&&(Y=!1);var se=t.call(this,{apiKey:n,storageProvider:ee,transportProvider:d4(ye)})||this;return se.apiKey=n,se.appVersion=a,se.cookieOptions=s,se.defaultTracking=u,se.autocapture=c,se.flushIntervalMillis=d,se.flushMaxRetries=m,se.flushQueueSize=f,se.identityStorage=b,se.ingestionMetadata=v,se.instanceName=y,se.loggerProvider=w,se.logLevel=k,se.minIdLength=T,se.offline=R,se.partnerId=M,se.plan=L,se.serverUrl=O,se.serverZone=W,se.sessionTimeout=G,se.storageProvider=ee,se.trackingOptions=de,se.transport=ye,se.useBatch=_e,se.fetchRemoteConfig=Y,se._optOut=!1,se._cookieStorage=o,se.deviceId=p,se.lastEventId=g,se.lastEventTime=S,se.optOut=I,se.sessionId=F,se.pageCounter=re,se.userId=q,se.debugLogsEnabled=be,se.loggerProvider.enable(be?_r.Debug:se.logLevel),se}return Object.defineProperty(e.prototype,"cookieStorage",{get:function(){return this._cookieStorage},set:function(n){this._cookieStorage!==n&&(this._cookieStorage=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"deviceId",{get:function(){return this._deviceId},set:function(n){this._deviceId!==n&&(this._deviceId=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"userId",{get:function(){return this._userId},set:function(n){this._userId!==n&&(this._userId=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"sessionId",{get:function(){return this._sessionId},set:function(n){this._sessionId!==n&&(this._sessionId=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"optOut",{get:function(){return this._optOut},set:function(n){this._optOut!==n&&(this._optOut=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastEventTime",{get:function(){return this._lastEventTime},set:function(n){this._lastEventTime!==n&&(this._lastEventTime=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastEventId",{get:function(){return this._lastEventId},set:function(n){this._lastEventId!==n&&(this._lastEventId=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pageCounter",{get:function(){return this._pageCounter},set:function(n){this._pageCounter!==n&&(this._pageCounter=n,this.updateStorage())},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"debugLogsEnabled",{set:function(n){this._debugLogsEnabled!==n&&(this._debugLogsEnabled=n,this.updateStorage())},enumerable:!1,configurable:!0}),e.prototype.updateStorage=function(){var n={deviceId:this._deviceId,userId:this._userId,sessionId:this._sessionId,optOut:this._optOut,lastEventTime:this._lastEventTime,lastEventId:this._lastEventId,pageCounter:this._pageCounter,debugLogsEnabled:this._debugLogsEnabled};this.cookieStorage.set(a4(this.apiKey),n)},e}(WV),FY=function(t,e,n){return e===void 0&&(e={}),Ce(void 0,void 0,void 0,function(){var a,o,s,u,c,p,d,m,f,b,v,y,g,S,w,k,T,R,I,M,L,O,W,F,G,ee,de,ye,_e,Y,q,re,be,se,j,X,fe,pe,we,xe,Me,it,ot;return Re(this,function(zt){switch(zt.label){case 0:return a=e.identityStorage||Lp,I={},a===Lp?[3,1]:(s="",[3,5]);case 1:return(L=(M=e.cookieOptions)===null||M===void 0?void 0:M.domain)!==null&&L!==void 0?(u=L,[3,4]):[3,2];case 2:return[4,zY()];case 3:u=zt.sent(),zt.label=4;case 4:s=u,zt.label=5;case 5:return o=We.apply(void 0,[(I.domain=s,I.expiration=365,I.sameSite="Lax",I.secure=!1,I.upgrade=!0,I),e.cookieOptions]),c=$Y(e.identityStorage,o),[4,xY(t,c,(W=(O=e.cookieOptions)===null||O===void 0?void 0:O.upgrade)!==null&&W!==void 0?W:!0)];case 6:return p=zt.sent(),[4,c.get(a4(t))];case 7:return d=zt.sent(),m=Dp(),f=(ye=(de=(ee=(G=(F=e.deviceId)!==null&&F!==void 0?F:m.ampDeviceId)!==null&&G!==void 0?G:m.deviceId)!==null&&ee!==void 0?ee:d==null?void 0:d.deviceId)!==null&&de!==void 0?de:p.deviceId)!==null&&ye!==void 0?ye:Tc(),b=(_e=d==null?void 0:d.lastEventId)!==null&&_e!==void 0?_e:p.lastEventId,v=(Y=d==null?void 0:d.lastEventTime)!==null&&Y!==void 0?Y:p.lastEventTime,y=(re=(q=e.optOut)!==null&&q!==void 0?q:d==null?void 0:d.optOut)!==null&&re!==void 0?re:p.optOut,g=(be=d==null?void 0:d.sessionId)!==null&&be!==void 0?be:p.sessionId,S=(j=(se=e.userId)!==null&&se!==void 0?se:d==null?void 0:d.userId)!==null&&j!==void 0?j:p.userId,n.previousSessionDeviceId=(X=d==null?void 0:d.deviceId)!==null&&X!==void 0?X:p.deviceId,n.previousSessionUserId=(fe=d==null?void 0:d.userId)!==null&&fe!==void 0?fe:p.userId,w={ipAddress:(we=(
53pe=e.trackingOptions)===null||pe===void 0?void 0:pe.ipAddress)!==null&&we!==void 0?we:!0,language:(Me=(xe=e.trackingOptions)===null||xe===void 0?void 0:xe.language)!==null&&Me!==void 0?Me:!0,platform:(ot=(it=e.trackingOptions)===null||it===void 0?void 0:it.platform)!==null&&ot!==void 0?ot:!0},k=d==null?void 0:d.pageCounter,T=d==null?void 0:d.debugLogsEnabled,e.autocapture!==void 0&&(e.defaultTracking=e.autocapture),R=new UY(t,e.appVersion,c,o,e.defaultTracking,e.autocapture,f,e.flushIntervalMillis,e.flushMaxRetries,e.flushQueueSize,a,e.ingestionMetadata,e.instanceName,b,v,e.loggerProvider,e.logLevel,e.minIdLength,e.offline,y,e.partnerId,e.plan,e.serverUrl,e.serverZone,g,e.sessionTimeout,e.storageProvider,w,e.transport,e.useBatch,e.fetchRemoteConfig,S,k,T),[4,R.storageProvider.isEnabled()];case 8:return zt.sent()||(R.loggerProvider.warn("Storage provider ".concat(R.storageProvider.constructor.name," is not enabled. Falling back to MemoryStorage.")),R.storageProvider=new Rw),[2,R]}})})},$Y=function(t,e){switch(t===void 0&&(t=Lp),e===void 0&&(e={}),t){case"localStorage":return new u4;case"sessionStorage":return new RY;case"none":return new Rw;case"cookie":default:return new a0(We(We({},e),{expirationDays:e.expiration}))}},d4=function(t){return t==="xhr"?new CY:t==="beacon"?new AY:new aY},zY=function(t){return Ce(void 0,void 0,void 0,function(){var e,n,a,o,s,s,u,c,p,d;return Re(this,function(m){switch(m.label){case 0:return[4,new a0().isEnabled()];case 1:if(!m.sent()||typeof location>"u"||!location.hostname)return[2,""];for(e=location.hostname,n=e.split("."),a=[],o="AMP_TLDTEST",s=n.length-2;s>=0;--s)a.push(n.slice(s).join("."));s=0,m.label=2;case 2:return s<a.length?(u=a[s],c={domain:"."+u},p=new a0(c),[4,p.set(o,1)]):[3,7];case 3:return m.sent(),[4,p.get(o)];case 4:return d=m.sent(),d?[4,p.remove(o)]:[3,6];case 5:return m.sent(),[2,"."+u];case 6:return s++,[3,2];case 7:return[2,""]}})})},jY=function(t){var e={};for(var n in t){var a=t[n];a&&(e[n]=a)}return e},GY="[Amplitude] Page Viewed",HY=function(t){t===void 0&&(t={});var e,n=va(),a=void 0,o,s,u=t.trackOn,c=t.trackHistoryChanges,p=t.eventType,d=p===void 0?GY:p,m=function(w){var k=w;try{k=decodeURI(w)}catch(T){a==null||a.error("Malformed URI sequence: ",T)}return k},f=function(){return Ce(void 0,void 0,void 0,function(){var w,k,T;return Re(this,function(R){switch(R.label){case 0:return w=m(typeof location<"u"&&location.href||""),T={event_type:d},k=[{}],[4,VY()];case 1:return[2,(T.event_properties=We.apply(void 0,[We.apply(void 0,k.concat([R.sent()])),{"[Amplitude] Page Domain":typeof location<"u"&&location.hostname||"","[Amplitude] Page Location":w,"[Amplitude] Page Path":typeof location<"u"&&m(location.pathname)||"","[Amplitude] Page Title":typeof document<"u"&&document.title||"","[Amplitude] Page URL":w.split("?")[0]}]),T)]}})})},b=function(){return typeof u>"u"||typeof u=="function"&&u()},v=typeof location<"u"?location.href:null,y=function(){return Ce(void 0,void 0,void 0,function(){var w,k,T,R;return Re(this,function(I){switch(I.label){case 0:return w=location.href,k=qY(c,w,v||"")&&b(),v=w,k?(a==null||a.log("Tracking page view event"),e!=null?[3,1]:[3,3]):[3,4];case 1:return R=(T=e).track,[4,f()];case 2:R.apply(T,[I.sent()]),I.label=3;case 3:I.label=4;case 4:return[2]}})})},g=function(){y()},S={name:"@amplitude/plugin-page-view-tracking-browser",type:"enrichment",setup:function(w,k){return Ce(void 0,void 0,void 0,function(){var T,R;return Re(this,function(I){switch(I.label){case 0:return e=k,s=w,a=w.loggerProvider,a.log("Installing @amplitude/plugin-page-view-tracking-browser"),n&&(n.addEventListener("popstate",g),o=n.history.pushState,n.history.pushState=new Proxy(n.history.pushState,{apply:function(M,L,O){var W=gt(O,3),F=W[0],G=W[1],ee=W[2];M.apply(L,[F,G,ee]),y()}})),b()?(a.log("Tracking page view event"),R=(T=e).track,[4,f()]):[3,2];case 1:R.apply(T,[I.sent()]),I.label=2;case 2:return[2]}})})},execute:function(w){return Ce(void 0,void 0,void 0,function(){var k;return Re(this,function(T){switch(T.label){case 0:return u==="attribution"&&YY(w)?(a==null||a.log("Enriching c
53ampaign event to page view event with campaign parameters"),[4,f()]):[3,2];case 1:k=T.sent(),w.event_type=k.event_type,w.event_properties=We(We({},w.event_properties),k.event_properties),T.label=2;case 2:return s&&w.event_type===d&&(s.pageCounter=s.pageCounter?s.pageCounter+1:1,w.event_properties=We(We({},w.event_properties),{"[Amplitude] Page Counter":s.pageCounter})),[2,w]}})})},teardown:function(){return Ce(void 0,void 0,void 0,function(){return Re(this,function(w){return n&&(n.removeEventListener("popstate",g),o&&(n.history.pushState=o)),[2]})})}};return S},VY=function(){return Ce(void 0,void 0,void 0,function(){var t;return Re(this,function(e){switch(e.label){case 0:return t=jY,[4,new r4().parse()];case 1:return[2,t.apply(void 0,[e.sent()])]}})})},YY=function(t){if(t.event_type==="$identify"&&t.user_properties){var e=t.user_properties,n=e[vn.SET]||{},a=e[vn.UNSET]||{},o=_n(_n([],gt(Object.keys(n)),!1),gt(Object.keys(a)),!1);return Object.keys(Cm).every(function(s){return o.includes(s)})}return!1},qY=function(t,e,n){switch(t){case"pathOnly":{if(n=="")return!0;var a=new URL(e),o=new URL(n),s=a.origin+a.pathname,u=o.origin+o.pathname;return s!==u}default:return e!==n}},ZY=function(){var t,e=[],n=function(d,m,f){d.addEventListener(m,f),e.push({element:d,type:m,handler:f})},a=function(){e.forEach(function(d){var m=d.element,f=d.type,b=d.handler;m==null||m.removeEventListener(f,b)}),e=[]},o="@amplitude/plugin-form-interaction-tracking-browser",s="enrichment",u=function(d,m){return Ce(void 0,void 0,void 0,function(){var f;return Re(this,function(b){return(f=va())===null||f===void 0||f.addEventListener("load",function(){if(!m){d.loggerProvider.warn("Form interaction tracking requires a later version of @amplitude/analytics-browser. Form interaction events are not tracked.");return}if(!(typeof document>"u")){var v=function(g){var S=!1;n(g,"change",function(){var w;S||m.track(c2,(w={},w[Nb]=kl(g.id),w[Pb]=kl(g.name),w[Wb]=g.action,w)),S=!0}),n(g,"submit",function(){var w,k;S||m.track(c2,(w={},w[Nb]=kl(g.id),w[Pb]=kl(g.name),w[Wb]=g.action,w)),m.track(IY,(k={},k[Nb]=kl(g.id),k[Pb]=kl(g.name),k[Wb]=g.action,k)),S=!1})},y=Array.from(document.getElementsByTagName("form"));y.forEach(v),typeof MutationObserver<"u"&&(t=new MutationObserver(function(g){g.forEach(function(S){S.addedNodes.forEach(function(w){w.nodeName==="FORM"&&v(w),"querySelectorAll"in w&&typeof w.querySelectorAll=="function"&&Array.from(w.querySelectorAll("form")).map(v)})})}),t.observe(document.body,{subtree:!0,childList:!0}))}}),[2]})})},c=function(d){return Ce(void 0,void 0,void 0,function(){return Re(this,function(m){return[2,d]})})},p=function(){return Ce(void 0,void 0,void 0,function(){return Re(this,function(d){return t==null||t.disconnect(),a(),[2]})})};return{name:o,type:s,setup:u,execute:c,teardown:p}},kl=function(t){if(typeof t=="string")return t},KY=function(){var t,e=[],n=function(d,m,f){d.addEventListener(m,f),e.push({element:d,type:m,handler:f})},a=function(){e.forEach(function(d){var m=d.element,f=d.type,b=d.handler;m==null||m.removeEventListener(f,b)}),e=[]},o="@amplitude/plugin-file-download-tracking-browser",s="enrichment",u=function(d,m){return Ce(void 0,void 0,void 0,function(){var f;return Re(this,function(b){return(f=va())===null||f===void 0||f.addEventListener("load",function(){if(!m){d.loggerProvider.warn("File download tracking requires a later version of @amplitude/analytics-browser. File download events are not tracked.");return}if(!(typeof document>"u")){var v=function(S){var w;try{w=new URL(S.href,window.location.href)}catch{return}var k=y.exec(w.href),T=k==null?void 0:k[1];T&&n(S,"click",function(){var R;T&&m.track(DY,(R={},R[LY]=T,R[NY]=w.pathname,R[PY]=S.id,R[WY]=S.text,R[MY]=S.href,R))})},y=/\.(pdf|xlsx?|docx?|txt|rtf|csv|exe|key|pp(s|t|tx)|7z|pkg|rar|gz|zip|avi|mov|mp4|mpe?g|wmv|midi?|mp3|wav|wma)$/,g=Array.from(document.getElementsByTagName("a"));g.forEach(v),typeof MutationObserver<"u"&&(t=new MutationObserver(function(S){S.forEach(function(w){w.addedNodes.forEach(function(k){k.nodeName==="A"&&v(k),"querySelectorAll"in k&&typeof k.querySelectorAll=="function"&&Array.from(k.querySelectorAll("a")).map(v)})})}),t.observe(document.body,{subtree:!0,childList:!0}))}}),[2]})})},c=function(d){return Ce(void 0,void 0,void 0,function(){return Re(this,function(m){return[2,d]})})},p=function(){return Ce(void 0,void 0,void 0,function(){return Re(this,function(d){return t==null||t.disconnect(),a(),[2]})})};return{name:o,type:s,setup:u,execute:c,teardown:p}},h2=!1,XY=function(t){if(!(h2||t.defaultTracking!==void 0)){var e=`\`options.defaultTracking\` is set to undefined. This implicitly configures your Amplitude instance to track Page Views, Sessions, File Downloads, and Form Interactions. You can suppress this warning by explicitly setting a value to \`options.defaultTracking\`. The value must either be a boolean, to enable and disable all default events, or an object, for advanced configuration. For example: 54 55amplitude.init(<YOUR_API_KEY>, { 56 defaultTracking: true, 57}); 58 59Visit https://www.docs.developers.amplitude.com/data/sdks/browser-2/#tracking-default-events for more details.`;t.loggerProvider.warn(e),h2=!0}},JY=function(){var t="@amplitude/plugin-network-checker-browser",e="before",n=va(),a=[],o=function(p,d){n&&(n.addEventListener(p,d),a.push({type:p,handler:d}))},s=function(){a.forEach(function(p){var d=p.type,m=p.handler;n&&n.removeEventListener(d,m)}),a=[]},u=function(p,d){return Ce(void 0,void 0,void 0,function(){return Re(this,function(m){return typeof navigator>"u"?(p.loggerProvider.debug("Network connectivity checker plugin is disabled because navigator is not available."),p.offline=!1,[2]):(p.offline=!navigator.onLine,o("online",function(){p.loggerProvider.debug("Network connectivity changed to online."),p.offline=!1,setTimeout(function(){d.flush()},p.flushIntervalMillis)}),o("offline",function(){p.loggerProvider.debug("Network connectivity changed to offline."),p.offline=!0}),[2])})})},c=function(){return Ce(void 0,void 0,void 0,function(){return Re(this,function(p){return s(),[2]})})};return{name:t,type:e,setup:u,teardown:c}},QY="Network error occurred, remote config fetch failed",eq="Remote config successfully fetched",tq="Remote config fetch rejected due to exceeded retry count",f2="Remote config fetch rejected due to timeout after 5 seconds",p2="Unexpected error occurred",nq="https://sr-client-cfg.amplitude.com/config",rq="https://sr-client-cfg.stag2.amplitude.com/config",aq="https://sr-client-cfg.eu.amplitude.com/config",iq=function(){function t(e){var n=e.localConfig,a=e.configKeys,o=this;this.retryTimeout=1e3,this.attempts=0,this.sessionTargetingMatch=!1,this.metrics={},this.getRemoteConfig=function(s,u,c){return Ce(o,void 0,void 0,function(){var p,d,m;return Re(this,function(f){switch(f.label){case 0:return p=Date.now(),[4,this.fetchWithTimeout(c)];case 1:return d=f.sent(),d&&(m=d.configs&&d.configs[s],m)?(this.metrics.fetchTimeAPISuccess=Date.now()-p,[2,m[u]]):(this.metrics.fetchTimeAPIFail=Date.now()-p,[2,void 0])}})})},this.fetchWithTimeout=function(s){return Ce(o,void 0,void 0,function(){var u,c,p;
59return Re(this,function(d){switch(d.label){case 0:return u=new AbortController,c=setTimeout(function(){return u.abort()},5e3),[4,this.fetchRemoteConfig(u.signal,s)];case 1:return p=d.sent(),clearTimeout(c),[2,p]}})})},this.fetchRemoteConfig=function(s,u){return Ce(o,void 0,void 0,function(){var c,p,d,m,f,b,v,y,g,S,w,k,T;return Re(this,function(R){switch(R.label){case 0:if(u===this.lastFetchedSessionId&&this.attempts>=this.localConfig.flushMaxRetries)return[2,this.completeRequest({err:tq})];if(s.aborted)return[2,this.completeRequest({err:f2})];u!==this.lastFetchedSessionId&&(this.lastFetchedSessionId=u,this.attempts=0),R.label=1;case 1:R.trys.push([1,3,,4]),c=new URLSearchParams({api_key:this.localConfig.apiKey});try{for(p=hn(this.configKeys),d=p.next();!d.done;d=p.next())m=d.value,c.append("config_keys",m)}catch(I){w={error:I}}finally{try{d&&!d.done&&(k=p.return)&&k.call(p)}finally{if(w)throw w.error}}return u&&c.set("session_id",String(u)),f={headers:{Accept:"*/*"},method:"GET"},b="".concat(this.getServerUrl(),"?").concat(c.toString()),this.attempts+=1,[4,fetch(b,We(We({},f),{signal:s}))];case 2:if(v=R.sent(),v===null)return[2,this.completeRequest({err:p2})];switch(y=new Rm().buildStatus(v.status),y){case Yt.Success:return this.attempts=0,[2,this.parseAndStoreConfig(v)];case Yt.Failed:return[2,this.retryFetch(s,u)];default:return[2,this.completeRequest({err:QY})]}case 3:return g=R.sent(),S=g,s.aborted?[2,this.completeRequest({err:f2})]:[2,this.completeRequest({err:(T=S.message)!==null&&T!==void 0?T:p2})];case 4:return[2]}})})},this.retryFetch=function(s,u){return Ce(o,void 0,void 0,function(){var c=this;return Re(this,function(p){switch(p.label){case 0:return[4,new Promise(function(d){return setTimeout(d,c.attempts*c.retryTimeout)})];case 1:return p.sent(),[2,this.fetchRemoteConfig(s,u)]}})})},this.parseAndStoreConfig=function(s){return Ce(o,void 0,void 0,function(){var u;return Re(this,function(c){switch(c.label){case 0:return[4,s.json()];case 1:return u=c.sent(),this.completeRequest({success:eq}),[2,u]}})})},this.localConfig=n,this.configKeys=a}return t.prototype.getServerUrl=function(){return this.localConfig.serverZone===Ip.STAGING?rq:this.localConfig.serverZone===Ip.EU?aq:nq},t.prototype.completeRequest=function(e){var n=e.err,a=e.success;if(n)throw new Error(n);a&&this.localConfig.loggerProvider.log(a)},t}(),oq=function(t){var e=t.localConfig,n=t.configKeys;return Ce(void 0,void 0,void 0,function(){return Re(this,function(a){return[2,new iq({localConfig:e,configKeys:n})]})})},sq=oq,lq=function(){function t(e){this.config=e,this.config.loggerProvider.debug("Local configuration before merging with remote config",JSON.stringify(this.config,null,2))}return t.prototype.initialize=function(){return Ce(this,void 0,void 0,function(){var e;return Re(this,function(n){switch(n.label){case 0:return e=this,[4,sq({localConfig:this.config,configKeys:["analyticsSDK"]})];case 1:return e.remoteConfigFetch=n.sent(),[2]}})})},t.prototype.generateJoinedConfig=function(){var e,n,a,o;return Ce(this,void 0,void 0,function(){var s,u,c;return Re(this,function(p){switch(p.label){case 0:return p.trys.push([0,3,,4]),u=this.remoteConfigFetch,u?[4,this.remoteConfigFetch.getRemoteConfig("analyticsSDK","browserSDK",this.config.sessionId)]:[3,2];case 1:u=p.sent(),p.label=2;case 2:return s=u,this.config.loggerProvider.debug("Remote configuration:",JSON.stringify(s,null,2)),s&&"autocapture"in s&&(typeof s.autocapture=="boolean"&&(this.config.autocapture=s.autocapture),typeof s.autocapture=="object"&&(this.config.autocapture===void 0&&(this.config.autocapture=s.autocapture),typeof this.config.autocapture=="boolean"&&(this.config.autocapture=We({attribution:this.config.autocapture,fileDownloads:this.config.autocapture,formInteractions:this.config.autocapture,pageViews:this.config.autocapture,sessions:this.config.autocapture,elementInteractions:this.config.autocapture},s.autocapture)),typeof this.config.autocapture=="object"&&(this.config.autocapture=We(We({},this.config.autocapture),s.autocapture))),this.config.defaultTracking=this.config.autocapture),this.config.loggerProvider.debug("Joined configuration: ",JSON.stringify(this.config,null,2)),(e=(o=this.config).requestMetadata)!==null&&e!==void 0||(o.requestMetadata=new n4),!((n=this.remoteConfigFetch)===null||n===void 0)&&n.metrics.fetchTimeAPISuccess&&this.config.requestMetadata.recordHistogram("remote_config_fetch_time_API_success",this.remoteConfigFetch.metrics.fetchTimeAPISuccess),!((a=this.remoteConfigFetch)===null||a===void 0)&&a.metrics.fetchTimeAPIFail&&this.config.requestMetadata.recordHistogram("remote_config_fetch_time_API_fail",this.remoteConfigFetch.metrics.fetchTimeAPIFail),[3,4];case 3:return c=p.sent(),this.config.loggerProvider.error("Failed to fetch remote configuration because of error: ",c),[3,4];case 4:return[2,this.config]}})})},t}(),cq=function(t){return Ce(void 0,void 0,void 0,function(){var e;return Re(this,function(n){switch(n.label){case 0:return e=new lq(t),[4,e.initialize()];case 1:return n.sent(),[2,e]}})})},uq="@amplitude/plugin-autocapture-browser",i0="[Amplitude] Element Clicked",dq="[Amplitude] Element Changed",hq="[Amplitude] Element ID",fq="[Amplitude] Element Class",h4="[Amplitude] Element Tag",f4="[Amplitude] Element Text",pq="[Amplitude] Element Hierarchy",mq="[Amplitude] Element Href",gq="[Amplitude] Element Position Left",yq="[Amplitude] Element Position Top",bq="[Amplitude] Element Aria Label",vq="[Amplitude] Element Attributes",p4="[Amplitude] Element Selector",wq="[Amplitude] Element Parent Label",m4="[Amplitude] Page URL",_q="[Amplitude] Page Title",Sq="[Amplitude] Viewport Height",kq="[Amplitude] Viewport Width",ip="https://app.amplitude.com",Eq="https://app.eu.amplitude.com",Tq="https://apps.stag2.amplitude.com",Rq={US:ip,EU:Eq,STAGING:Tq},Cq="https://cdn.amplitude.com/libs/visual-tagging-selector-1.0.0-alpha.js.gz",o0="amp-visual-tagging-selector-highlight";function Lt(t){return typeof t=="function"}function g4(t){var e=function(a){Error.call(a),a.stack=new Error().stack},n=t(e);return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var Mb=g4(function(t){return function(n){t(this),this.message=n?n.length+` errors occurred during unsubscription: 60`+n.map(function(a,o){return o+1+") "+a.toString()}).join(` 61 `):"",this.name="UnsubscriptionError",this.errors=n}});function s0(t,e){if(t){var n=t.indexOf(e);0<=n&&t.splice(n,1)}}var Am=function(){function t(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return t.prototype.unsubscribe=function(){var e,n,a,o,s;if(!this.closed){this.closed=!0;var u=this._parentage;if(u)if(this._parentage=null,Array.isArray(u))try{for(var c=hn(u),p=c.next();!p.done;p=c.next()){var d=p.value;d.remove(this)}}catch(g){e={error:g}}finally{try{p&&!p.done&&(n=c.return)&&n.call(c)}finally{if(e)throw e.error}}else u.remove(this);var m=this.initialTeardown;
vendor: 10,669 bytes, line 61
61if(Lt(m))try{m()}catch(g){s=g instanceof Mb?g.errors:[g]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var b=hn(f),v=b.next();!v.done;v=b.next()){var y=v.value;try{m2(y)}catch(g){s=s??[],g instanceof Mb?s=_n(_n([],gt(s)),gt(g.errors)):s.push(g)}}}catch(g){a={error:g}}finally{try{v&&!v.done&&(o=b.return)&&o.call(b)}finally{if(a)throw a.error}}}if(s)throw new Mb(s)}},t.prototype.add=function(e){var n;if(e&&e!==this)if(this.closed)m2(e);else{if(e instanceof t){if(e.closed||e._hasParent(this))return;e._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(e)}},t.prototype._hasParent=function(e){var n=this._parentage;return n===e||Array.isArray(n)&&n.includes(e)},t.prototype._addParent=function(e){var n=this._parentage;this._parentage=Array.isArray(n)?(n.push(e),n):n?[n,e]:e},t.prototype._removeParent=function(e){var n=this._parentage;n===e?this._parentage=null:Array.isArray(n)&&s0(n,e)},t.prototype.remove=function(e){var n=this._finalizers;n&&s0(n,e),e instanceof t&&e._removeParent(this)},t.EMPTY=function(){var e=new t;return e.closed=!0,e}(),t}();Am.EMPTY;function y4(t){return t instanceof Am||t&&"closed"in t&&Lt(t.remove)&&Lt(t.add)&&Lt(t.unsubscribe)}function m2(t){Lt(t)?t():t.unsubscribe()}var Aq={Promise:void 0},xq={setTimeout:function(t,e){for(var n=[],a=2;a<arguments.length;a++)n[a-2]=arguments[a];return setTimeout.apply(void 0,_n([t,e],gt(n)))},clearTimeout:function(t){return clearTimeout(t)},delegate:void 0};function b4(t){xq.setTimeout(function(){throw t})}function l0(){}function Oq(t){t()}var Cw=function(t){Ir(e,t);function e(n){var a=t.call(this)||this;return a.isStopped=!1,n?(a.destination=n,y4(n)&&n.add(a)):a.destination=Lq,a}return e.create=function(n,a,o){return new c0(n,a,o)},e.prototype.next=function(n){this.isStopped||this._next(n)},e.prototype.error=function(n){this.isStopped||(this.isStopped=!0,this._error(n))},e.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},e.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,t.prototype.unsubscribe.call(this),this.destination=null)},e.prototype._next=function(n){this.destination.next(n)},e.prototype._error=function(n){try{this.destination.error(n)}finally{this.unsubscribe()}},e.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},e}(Am),Iq=function(){function t(e){this.partialObserver=e}return t.prototype.next=function(e){var n=this.partialObserver;if(n.next)try{n.next(e)}catch(a){_f(a)}},t.prototype.error=function(e){var n=this.partialObserver;if(n.error)try{n.error(e)}catch(a){_f(a)}else _f(e)},t.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(n){_f(n)}},t}(),c0=function(t){Ir(e,t);function e(n,a,o){var s=t.call(this)||this,u;return Lt(n)||!n?u={next:n??void 0,error:a??void 0,complete:o??void 0}:u=n,s.destination=new Iq(u),s}return e}(Cw);function _f(t){b4(t)}function Dq(t){throw t}var Lq={closed:!0,next:l0,error:Dq,complete:l0},Aw=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}();function v4(t){return t}function Nq(t){return t.length===0?v4:t.length===1?t[0]:function(n){return t.reduce(function(a,o){return o(a)},n)}}var Dr=function(){function t(e){e&&(this._subscribe=e)}return t.prototype.lift=function(e){var n=new t;return n.source=this,n.operator=e,n},t.prototype.subscribe=function(e,n,a){var o=this,s=Wq(e)?e:new c0(e,n,a);return Oq(function(){var u=o,c=u.operator,p=u.source;s.add(c?c.call(s,p):p?o._subscribe(s):o._trySubscribe(s))}),s},t.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(n){e.error(n)}},t.prototype.forEach=function(e,n){var a=this;return n=g2(n),new n(function(o,s){var u=new c0({next:function(c){try{e(c)}catch(p){s(p),u.unsubscribe()}},error:s,complete:o});a.subscribe(u)})},t.prototype._subscribe=function(e){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(e)},t.prototype[Aw]=function(){return this},t.prototype.pipe=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return Nq(e)(this)},t.prototype.toPromise=function(e){var n=this;return e=g2(e),new e(function(a,o){var s;n.subscribe(function(u){return s=u},function(u){return o(u)},function(){return a(s)})})},t.create=function(e){return new t(e)},t}();function g2(t){var e;return(e=t??Aq.Promise)!==null&&e!==void 0?e:Promise}function Pq(t){return t&&Lt(t.next)&&Lt(t.error)&&Lt(t.complete)}function Wq(t){return t&&t instanceof Cw||Pq(t)&&y4(t)}function Mq(t){return Lt(t==null?void 0:t.lift)}function Ca(t){return function(e){if(Mq(e))return e.lift(function(n){try{return t(n,this)}catch(a){this.error(a)}});throw new TypeError("Unable to lift unknown Observable type")}}function Ar(t,e,n,a,o){return new Bq(t,e,n,a,o)}var Bq=function(t){Ir(e,t);function e(n,a,o,s,u,c){var p=t.call(this,n)||this;return p.onFinalize=u,p.shouldUnsubscribe=c,p._next=a?function(d){try{a(d)}catch(m){n.error(m)}}:t.prototype._next,p._error=s?function(d){try{s(d)}catch(m){n.error(m)}finally{this.unsubscribe()}}:t.prototype._error,p._complete=o?function(){try{o()}catch(d){n.error(d)}finally{this.unsubscribe()}}:t.prototype._complete,p}return e.prototype.unsubscribe=function(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var a=this.closed;t.prototype.unsubscribe.call(this),!a&&((n=this.onFinalize)===null||n===void 0||n.call(this))}},e}(Cw),Uq={now:function(){return Date.now()}},Fq=function(t){Ir(e,t);function e(n,a){return t.call(this)||this}return e.prototype.schedule=function(n,a){return this},e}(Am),y2={setInterval:function(t,e){for(var n=[],a=2;a<arguments.length;a++)n[a-2]=arguments[a];return setInterval.apply(void 0,_n([t,e],gt(n)))},clearInterval:function(t){return clearInterval(t)},delegate:void 0},$q=function(t){Ir(e,t);function e(n,a){var o=t.call(this,n,a)||this;return o.scheduler=n,o.work=a,o.pending=!1,o}return e.prototype.schedule=function(n,a){var o;if(a===void 0&&(a=0),this.closed)return this;this.state=n;var s=this.id,u=this.scheduler;return s!=null&&(this.id=this.recycleAsyncId(u,s,a)),this.pending=!0,this.delay=a,this.id=(o=this.id)!==null&&o!==void 0?o:this.requestAsyncId(u,this.id,a),this},e.prototype.requestAsyncId=function(n,a,o){return o===void 0&&(o=0),y2.setInterval(n.flush.bind(n,this),o)},e.prototype.recycleAsyncId=function(n,a,o){if(o===void 0&&(o=0),o!=null&&this.delay===o&&this.pending===!1)return a;a!=null&&y2.clearInterval(a)},e.prototype.execute=function(n,a){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var o=this._execute(n,a);if(o)return o;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(n,a){var o=!1,s;try{this.work(n)}catch(u){o=!0,s=u||new Error("Scheduled action threw falsy error")}if(o)return this.unsubscribe(),s},e.prototype.unsubscribe=function(){if(!this.closed){var n=this,a=n.id,o=n.scheduler,s=o.actions;this.work=this.state=this.scheduler=null,this.pending=!1,s0(s,this),a!=null&&(this.id=this.recycleAsyncId(o,a,null)),this.delay=null,t.prototype.unsubscribe.call(this)}},e}(Fq),b2=function(){function t(e,n){n===void 0&&(n=t.now),this.schedulerActionCtor=e,this.now=n}return t.prototype.schedule=function(e,n,a){return n===void 0&&(n=0),new this.schedulerActionCtor(this,e).schedule(a,n)},t.now=Uq.now,t}(),zq=function(t){Ir(e,t);function e(n,a){a===void 0&&(a=b2.now);var o=t.call(this,n,a)||this;return o.actions=[],o._active=!1,o}return e.prototype.flush=function(n){var a=this.actions;if(this._active){a.push(n);return}var o;this._active=!0;do if(o=n.execute(n.state,n.delay))break;while(n=a.shift());if(this._active=!1,o){for(;n=a.shift();)n.unsubscribe();throw o}},e}(b2),xm=new zq($q),jq=xm,xw=new Dr(function(t){return t.complete()});function w4(t){return t&&Lt(t.schedule)}function _4(t){return t[t.length-1]}function Gq(t){return w4(_4(t))?t.pop():void 0}function Hq(t,e){return typeof _4(t)=="number"?t.pop():e}var Ow=function(t){return t&&typeof t.length=="number"&&typeof t!="function"};function S4(t){return Lt(t==null?void 0:t.then)}function k4(t){return Lt(t[Aw])}function E4(t){return Symbol.asyncIterator&&Lt(t==null?void 0:t[Symbol.asyncIterator])}function T4(t){return new TypeError("You provided "+(t!==null&&typeof t=="object"?"an invalid object":"'"+t+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Vq(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var R4=Vq();function C4(t){return Lt(t==null?void 0:t[R4])}function A4(t){return uV(this,arguments,function(){var n,a,o,s;return Re(this,function(u){switch(u.label){case 0:n=t.getReader(),u.label=1;case 1:u.trys.push([1,,9,10]),u.label=2;case 2:return[4,Kl(n.read())];case 3:return a=u.sent(),o=a.value,s=a.done,s?[4,Kl(void 0)]:[3,5];case 4:return[2,u.sent()];case 5:return[4,Kl(o)];case 6:return[4,u.sent()];case 7:return u.sent(),[3,2];case 8:return[3,10];case 9:return n.releaseLock(),[7];case 10:return[2]}})})}function x4(t){return Lt(t==null?void 0:t.getReader)}function Aa(t){if(t instanceof Dr)return t;if(t!=null){if(k4(t))return Yq(t);if(Ow(t))return qq(t);if(S4(t))return Zq(t);if(E4(t))return O4(t);if(C4(t))return Kq(t);if(x4(t))return Xq(t)}throw T4(t)}function Yq(t){return new Dr(function(e){var n=t[Aw]();if(Lt(n.subscribe))return n.subscribe(e);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function qq(t){return new Dr(function(e){for(var n=0;n<t.length&&!e.closed;n++)e.next(t[n]);e.complete()})}function Zq(t){return new Dr(function(e){t.then(function(n){e.closed||(e.next(n),e.complete())},function(n){return e.error(n)}).then(null,b4)})}function Kq(t){return new Dr(function(e){var n,a;try{for(var o=hn(t),s=o.next();!s.done;s=o.next()){var u=s.value;if(e.next(u),e.closed)return}}catch(c){n={error:c}}finally{try{s&&!s.done&&(a=o.return)&&a.call(o)}finally{if(n)throw n.error}}e.complete()})}function O4(t){return new Dr(function(e){Jq(t,e).catch(function(n){return e.error(n)})})}function Xq(t){return O4(A4(t))}function Jq(t,e){var n,a,o,s;return Ce(this,void 0,void 0,function(){var u,c;return Re(this,function(p){switch(p.label){case 0:p.trys.push([0,5,6,11]),n=dV(t),p.label=1;case 1:return[4,n.next()];case 2:if(a=p.sent(),!!a.done)return[3,4];if(u=a.value,e.next(u),e.closed)return[2];p.label=3;case 3:return[3,1];case 4:return[3,11];case 5:return c=p.sent(),o={error:c},[3,11];case 6:return p.trys.push([6,,9,10]),a&&!a.done&&(s=n.return)?[4,s.call(n)]:[3,8];case 7:p.sent(),p.label=8;case 8:return[3,10];case 9:if(o)throw o.error;return[7];
61case 10:return[7];case 11:return e.complete(),[2]}})})}function So(t,e,n,a,o){a===void 0&&(a=0),o===void 0&&(o=!1);var s=e.schedule(function(){n(),o?t.add(this.schedule(null,a)):this.unsubscribe()},a);if(t.add(s),!o)return s}function I4(t,e){return e===void 0&&(e=0),Ca(function(n,a){n.subscribe(Ar(a,function(o){return So(a,t,function(){return a.next(o)},e)},function(){return So(a,t,function(){return a.complete()},e)},function(o){return So(a,t,function(){return a.error(o)},e)}))})}function D4(t,e){return e===void 0&&(e=0),Ca(function(n,a){a.add(t.schedule(function(){return n.subscribe(a)},e))})}function Qq(t,e){return Aa(t).pipe(D4(e),I4(e))}function eZ(t,e){return Aa(t).pipe(D4(e),I4(e))}function tZ(t,e){return new Dr(function(n){var a=0;return e.schedule(function(){a===t.length?n.complete():(n.next(t[a++]),n.closed||this.schedule())})})}function nZ(t,e){return new Dr(function(n){var a;return So(n,e,function(){a=t[R4](),So(n,e,function(){var o,s,u;try{o=a.next(),s=o.value,u=o.done}catch(c){n.error(c);return}u?n.complete():n.next(s)},0,!0)}),function(){return Lt(a==null?void 0:a.return)&&a.return()}})}function L4(t,e){if(!t)throw new Error("Iterable cannot be null");return new Dr(function(n){So(n,e,function(){var a=t[Symbol.asyncIterator]();So(n,e,function(){a.next().then(function(o){o.done?n.complete():n.next(o.value)})},0,!0)})})}function rZ(t,e){return L4(A4(t),e)}function aZ(t,e){if(t!=null){if(k4(t))return Qq(t,e);if(Ow(t))return tZ(t,e);if(S4(t))return eZ(t,e);if(E4(t))return L4(t,e);if(C4(t))return nZ(t,e);if(x4(t))return rZ(t,e)}throw T4(t)}function iZ(t,e){return e?aZ(t,e):Aa(t)}function N4(t){return t instanceof Date&&!isNaN(t)}var oZ=g4(function(t){return function(n){n===void 0&&(n=null),t(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=n}});function sZ(t,e){var n=N4(t)?{first:t}:typeof t=="number"?{each:t}:t,a=n.first,o=n.each,s=n.with,u=s===void 0?lZ:s,c=n.scheduler,p=c===void 0?xm:c,d=n.meta,m=d===void 0?null:d;if(a==null&&o==null)throw new TypeError("No timeout provided.");return Ca(function(f,b){var v,y,g=null,S=0,w=function(k){y=So(b,p,function(){try{v.unsubscribe(),Aa(u({meta:m,lastValue:g,seen:S})).subscribe(b)}catch(T){b.error(T)}},k)};v=f.subscribe(Ar(b,function(k){y==null||y.unsubscribe(),S++,b.next(g=k),o>0&&w(o)},void 0,void 0,function(){y!=null&&y.closed||y==null||y.unsubscribe(),g=null})),!S&&w(a!=null?typeof a=="number"?a:+a-p.now():o)})}function lZ(t){throw new oZ(t)}function Ga(t,e){return Ca(function(n,a){var o=0;n.subscribe(Ar(a,function(s){a.next(t.call(e,s,o++))}))})}var cZ=Array.isArray;function uZ(t,e){return cZ(e)?t.apply(void 0,_n([],gt(e))):t(e)}function dZ(t){return Ga(function(e){return uZ(t,e)})}function hZ(t,e,n,a,o,s,u,c){var p=[],d=0,m=0,f=!1,b=function(){f&&!p.length&&!d&&e.complete()},v=function(g){return d<a?y(g):p.push(g)},y=function(g){d++;var S=!1;Aa(n(g,m++)).subscribe(Ar(e,function(w){e.next(w)},function(){S=!0},void 0,function(){if(S)try{d--;for(var w=function(){var k=p.shift();u||y(k)};p.length&&d<a;)w();b()}catch(k){e.error(k)}}))};return t.subscribe(Ar(e,v,function(){f=!0,b()})),function(){}}function Om(t,e,n){return n===void 0&&(n=1/0),Lt(e)?Om(function(a,o){return Ga(function(s,u){return e(a,s,o,u)})(Aa(t(a,o)))},n):(typeof e=="number"&&(n=e),Ca(function(a,o){return hZ(a,o,t,n)}))}function fZ(t){return t===void 0&&(t=1/0),Om(v4,t)}var pZ=["addListener","removeListener"],mZ=["addEventListener","removeEventListener"],gZ=["on","off"];function ed(t,e,n,a){if(Lt(n)&&(a=n,n=void 0),a)return ed(t,e,n).pipe(dZ(a));var o=gt(vZ(t)?mZ.map(function(c){return function(p){return t[c](e,p,n)}}):yZ(t)?pZ.map(v2(t,e)):bZ(t)?gZ.map(v2(t,e)):[],2),s=o[0],u=o[1];if(!s&&Ow(t))return Om(function(c){return ed(c,e,n)})(Aa(t));if(!s)throw new TypeError("Invalid event target");return new Dr(function(c){var p=function(){for(var d=[],m=0;m<arguments.length;m++)d[m]=arguments[m];return c.next(1<d.length?d:d[0])};return s(p),function(){return u(p)}})}function v2(t,e){return function(n){return function(a){return t[n](e,a)}}}function yZ(t){return Lt(t.addListener)&&Lt(t.removeListener)}function bZ(t){return Lt(t.on)&&Lt(t.off)}function vZ(t){return Lt(t.addEventListener)&&Lt(t.removeEventListener)}function wZ(t,e,n){n===void 0&&(n=jq);var a=-1;return e!=null&&(w4(e)?n=e:a=e),new Dr(function(o){var s=N4(t)?+t-n.now():t;s<0&&(s=0);var u=0;return n.schedule(function(){o.closed||(o.next(u++),0<=a?this.schedule(void 0,a):o.complete())},s)})}function P4(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=Gq(t),a=Hq(t,1/0),o=t;return o.length?o.length===1?Aa(o[0]):fZ(a)(iZ(o,n)):xw}function ko(t,e){return Ca(function(n,a){var o=0;n.subscribe(Ar(a,function(s){return t.call(e,s,o++)&&a.next(s)}))})}function _Z(t){return Ca(function(e,n){var a=[];return e.subscribe(Ar(n,function(o){return a.push(o)},function(){n.next(a),n.complete()}
61)),Aa(t).subscribe(Ar(n,function(){var o=a;a=[],n.next(o)},l0)),function(){a=null}})}function SZ(t,e){return e===void 0&&(e=xm),Ca(function(n,a){var o=null,s=null,u=null,c=function(){if(o){o.unsubscribe(),o=null;var d=s;s=null,a.next(d)}};function p(){var d=u+t,m=e.now();if(m<d){o=this.schedule(void 0,d-m),a.add(o);return}c()}n.subscribe(Ar(a,function(d){s=d,u=e.now(),o||(o=e.schedule(p,t),a.add(o))},function(){c(),a.complete()},void 0,function(){s=o=null}))})}function W4(t){return t<=0?function(){return xw}:Ca(function(e,n){var a=0;e.subscribe(Ar(n,function(o){++a<=t&&(n.next(o),t<=a&&n.complete())}))})}function kZ(t){return Ga(function(){return t})}function EZ(t,e){return Om(function(n,a){return Aa(t(n,a)).pipe(W4(1),kZ(n))})}function TZ(t,e){e===void 0&&(e=xm);var n=wZ(t,e);return EZ(function(){return n})}function RZ(){return Ca(function(t,e){var n,a=!1;t.subscribe(Ar(e,function(o){var s=n;n=o,a&&e.next([s,o]),a=!0}))})}function CZ(t,e){return Ca(function(n,a){var o=null,s=0,u=!1,c=function(){return u&&!o&&a.complete()};n.subscribe(Ar(a,function(p){o==null||o.unsubscribe();var d=0,m=s++;Aa(t(p,m)).subscribe(o=Ar(a,function(f){return a.next(e?e(p,f,m,d++):f)},function(){o=null,c()}))},function(){u=!0,c()}))})}var Qa,Iw;function AZ(t,e){if(t.nodeType!==Node.ELEMENT_NODE)throw new Error("Can't generate CSS selector for non-element node type.");if(t.tagName.toLowerCase()==="html")return"html";var n={root:document.body,idName:function(s){return!0},className:function(s){return!0},tagName:function(s){return!0},attr:function(s,u){return!1},seedMinLength:1,optimizedMinLength:2,threshold:1e3,maxNumberOfTries:1e4};Qa=We(We({},n),e),Iw=xZ(Qa.root,n);var a=Sf(t,"all",function(){return Sf(t,"two",function(){return Sf(t,"one",function(){return Sf(t,"none")})})});if(a){var o=U4(F4(a,t));return o.length>0&&(a=o[0]),Im(a)}else throw new Error("Selector was not found.")}function xZ(t,e){return t.nodeType===Node.DOCUMENT_NODE?t:t===e.root?t.ownerDocument:t}function Sf(t,e,n){for(var a=null,o=[],s=t,u=0,c=function(){var d,m,f=Ef(OZ(s))||Ef.apply(void 0,_n([],gt(IZ(s)),!1))||Ef.apply(void 0,_n([],gt(DZ(s)),!1))||Ef(LZ(s))||[S2()],b=NZ(s);if(e=="all")b&&(f=f.concat(f.filter(Bb).map(function(w){return kf(w,b)})));else if(e=="two")f=f.slice(0,1),b&&(f=f.concat(f.filter(Bb).map(function(w){return kf(w,b)})));else if(e=="one"){var v=gt(f=f.slice(0,1),1),y=v[0];b&&Bb(y)&&(f=[kf(y,b)])}else e=="none"&&(f=[S2()],b&&(f=[kf(f[0],b)]));try{for(var g=(d=void 0,hn(f)),S=g.next();!S.done;S=g.next()){var y=S.value;y.level=u}}catch(w){d={error:w}}finally{try{S&&!S.done&&(m=g.return)&&m.call(g)}finally{if(d)throw d.error}}if(o.push(f),o.length>=Qa.seedMinLength&&(a=w2(o,n),a))return"break";s=s.parentElement,u++};s;){var p=c();if(p==="break")break}return a||(a=w2(o,n)),!a&&n?n():a}function w2(t,e){var n,a,o=t.reduce(function(d,m){return d*m.length},1);if(o>Qa.threshold)return e?e():null;var s=U4(B4(t));try{for(var u=hn(s),c=u.next();!c.done;c=u.next()){var p=c.value;if(M4(p))return p}}catch(d){n={error:d}}finally{try{c&&!c.done&&(a=u.return)&&a.call(u)}finally{if(n)throw n.error}}return null}function Im(t){for(var e=t[0],n=e.name,a=1;a<t.length;a++){var o=t[a].level||0;e.level===o-1?n="".concat(t[a].name," > ").concat(n):n="".concat(t[a].name," ").concat(n),e=t[a]}return n}function _2(t){return t.map(function(e){return e.penalty}).reduce(function(e,n){return e+n},0)}function M4(t){var e=Im(t);switch(Iw.querySelectorAll(e).length){case 0:throw new Error("Can't select any node with this selector: ".concat(e));case 1:return!0;default:return!1}}function OZ(t){var e=t.getAttribute("id");return e&&Qa.idName(e)?{name:"#"+CSS.escape(e),penalty:0}:null}function IZ(t){var e=Array.from(t.attributes).filter(function(n){return Qa.attr(n.name,n.value)});return e.map(function(n){return{name:"[".concat(CSS.escape(n.name),'="').concat(CSS.escape(n.value),'"]'),penalty:.5}})}function DZ(t){var e=Array.from(t.classList).filter(Qa.className);return e.map(function(n){return{name:"."+CSS.escape(n),penalty:1}})}function LZ(t){var e=t.tagName.toLowerCase();return Qa.tagName(e)?{name:e,penalty:2}:null}function S2(){return{name:"*",penalty:3}}function NZ(t){var e=t.parentNode;if(!e)return null;var n=e.firstChild;if(!n)return null;for(var a=0;n&&(n.nodeType===Node.ELEMENT_NODE&&a++,n!==t);)n=n.nextSibling;return a}function kf(t,e){return{name:t.name+":nth-child(".concat(e,")"),penalty:t.penalty+1}}function Bb(t){return t.name!=="html"&&!t.name.startsWith("#")}function Ef(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=t.filter(PZ);return n.length>0?n:null}function PZ(t){return t!=null}function B4(t,e){var n,a,o,s,u,c;return e===void 0&&(e=[]),Re(this,function(p){switch(p.label){case 0:if(!(t.length>0))return[3,9];p.label=1;case 1:p.trys.push([1,6,7,8]),n=hn(t[0]),a=n.next(),p.label=2;case 2:return a.done?[3,5]:(o=a.value,[5,hn(B4(t.slice(1,t.length),e.concat(o)))]);case 3:p.sent(),p.label=4;case 4:return a=n.next(),[3,2];case 5:return[3,8];case 6:return s=p.sent(),u={error:s},[3,8];case 7:try{a&&!a.done&&(c=n.return)&&c.call(n)}finally{if(u)throw u.error}
61return[7];case 8:return[3,11];case 9:return[4,e];case 10:p.sent(),p.label=11;case 11:return[2]}})}function U4(t){return _n([],gt(t),!1).sort(function(e,n){return _2(e)-_2(n)})}function F4(t,e,n){var a,o,s;return n===void 0&&(n={counter:0,visited:new Map}),Re(this,function(u){switch(u.label){case 0:if(!(t.length>2&&t.length>Qa.optimizedMinLength))return[3,5];a=1,u.label=1;case 1:return a<t.length-1?n.counter>Qa.maxNumberOfTries?[2]:(n.counter+=1,o=_n([],gt(t),!1),o.splice(a,1),s=Im(o),n.visited.has(s)?[2]:M4(o)&&WZ(o,e)?[4,o]:[3,4]):[3,5];case 2:return u.sent(),n.visited.set(s,!0),[5,hn(F4(o,e,n))];case 3:u.sent(),u.label=4;case 4:return a++,[3,1];case 5:return[2]}})}function WZ(t,e){return Iw.querySelector(Im(t))===e}var MZ=["input","select","textarea"],Ub=function(t,e){return function(n,a){var o,s,u,c=t.pageUrlAllowlist,p=t.shouldTrackEventResolver,d=(s=(o=a==null?void 0:a.tagName)===null||o===void 0?void 0:o.toLowerCase)===null||s===void 0?void 0:s.call(o);if(!d)return!1;if(p)return p(n,a);if(!UZ(window.location.href,c))return!1;var m=String(a==null?void 0:a.getAttribute("type"))||"";if(typeof m=="string")switch(m.toLowerCase()){case"hidden":return!1;case"password":return!1}if(e){var f=e.some(function(v){var y;return!!(!((y=a==null?void 0:a.matches)===null||y===void 0)&&y.call(a,v))});if(!f)return!1}switch(d){case"input":case"select":case"textarea":return n==="change"||n==="click";default:{var b=(u=window==null?void 0:window.getComputedStyle)===null||u===void 0?void 0:u.call(window,a);return b&&b.getPropertyValue("cursor")==="pointer"&&n==="click"?!0:n==="click"}}}},$4=function(t){if(t==null)return!1;if(typeof t=="string"){var e=/^(?:(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11}))$/;if(e.test((t||"").replace(/[- ]/g,"")))return!1;var n=/(^\d{3}-?\d{2}-?\d{4}$)/;if(n.test(t))return!1}return!0},BZ=function(t){return!!t&&t.nodeType===3},z4=function(t){var e,n,a,o=(n=(e=t==null?void 0:t.tagName)===null||e===void 0?void 0:e.toLowerCase)===null||n===void 0?void 0:n.call(e),s=t instanceof HTMLElement?((a=t.getAttribute("contenteditable"))===null||a===void 0?void 0:a.toLowerCase())==="true":!1;return!MZ.includes(o)&&!s},Dw=function(t){var e="";return z4(t)&&t.childNodes&&t.childNodes.length&&t.childNodes.forEach(function(n){var a="";BZ(n)?n.textContent&&(a=n.textContent):a=Dw(n),e+=a.split(/(\s+)/).filter($4).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}),e},j4=function(t,e){var n,a,o="";try{return o=AZ(t,{className:function(m){return m!==o0},maxNumberOfTries:1e3}),o}catch(m){if(e){var s=m;e.warn("Failed to get selector with finder, use fallback strategy instead: ".concat(s.toString()))}}var u=(a=(n=t==null?void 0:t.tagName)===null||n===void 0?void 0:n.toLowerCase)===null||a===void 0?void 0:a.call(n);u&&(o=u);var c=t.getAttribute("id"),p=t.getAttribute("class");if(c)o="#".concat(c);else if(p){var d=p.split(" ").filter(function(m){return m!==o0}).join(".");d&&(o="".concat(o,".").concat(d))}return o},UZ=function(t,e){return!e||!e.length?!0:e.some(function(n){return typeof n=="string"?t===n:t.match(n)})},FZ=function(t,e){return t.getAttributeNames().reduce(function(n,a){if(a.startsWith(e)){var o=a.replace(e,""),s=t.getAttribute(a);o&&(n[o]=s||"")}return n},{})},$Z=function(t){return t==null||typeof t=="object"&&Object.keys(t).length===0||typeof t=="string"&&t.trim().length===0},G4=function(t){return Object.keys(t).reduce(function(e,n){var a=t[n];return $Z(a)||(e[n]=a),e},{})},H4=function(t){var e=t.parentElement;if(!e)return"";var n;try{n=e.querySelector(":scope>span,h1,h2,h3,h4,h5,h6")}catch{n=null}if(n){var a=n.textContent||"";return $4(a)?a:""}return H4(e)},Lw=function(t,e){return t?e.some(function(n){var a;return(a=t==null?void 0:t.matches)===null||a===void 0?void 0:a.call(t,n)})?t:Lw(t==null?void 0:t.parentElement,e):null},zZ=function(t,e){var n,a,o;if(!t)return{};var s=(o=(a=t==null?void 0:t.tagName)===null||a===void 0?void 0:a.toLowerCase)===null||o===void 0?void 0:o.call(a),u=j4(t,e),c=(n={},n[h4]=s,n[f4]=Dw(t),n[p4]=u,n[m4]=window.location.href.split("?")[0],n);return G4(c)},jZ=function(t){return new Promise(function(e,n){var a;try{var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=t,o.addEventListener("load",function(){e({status:!0})},{once:!0}),o.addEventListener("error",function(){n({status:!1,message:"Failed to load the script ".concat(t)})}),(a=document.head)===null||a===void 0||a.appendChild(o)}catch(s){n(s)}})};function GZ(){return"".concat(Date.now(),"-").concat(Math.random().toString(36).substr(2,9))}var Nw=function(t){return!(t.event.target===null||!t.closestTrackedAncestor)},HZ=function(){function t(e){var n=e===void 0?{}:e,a=n.origin,o=a===void 0?ip:a,s=this;this.endpoint=ip,this.requestCallbacks={},this.onSelect=function(u){s.notify({action:"element-selected",data:u})},this.onTrack=function(u,c){u==="selector-mode-changed"?s.notify({action:"track-selector-mode-changed",data:c}):u==="selector-moved"&&s.notify({action:"track-selector-moved",data:c})},this.endpoint=o}return t.prototype.notify=function(e){var n,a,o,s;(a=(n=this.logger)===null||n===void 0?void 0:n.debug)===null||a===void 0||a.call(n,"Message sent: ",JSON.stringify(e)),(s=(o=window.opener)===null||o===void 0?void 0:o.postMessage)===null||s===void 0||s.call(o,e,this.endpoint)},t.prototype.sendRequest=function(e,n,a){var o=this;a===void 0&&(a={timeout:15e3});var s=GZ(),u={id:s,action:e,args:n},c=new Promise(function(p,d){o.requestCallbacks[s]={resolve:p,reject:d},o.notify(u),(a==null?void 0:a.timeout)>0&&setTimeout(function(){d(new Error("".concat(e," timed out (id: ").concat(s,")"))),delete o.requestCallbacks[s]},a.timeout)});return c},t.prototype.handleResponse=function(e){var n;if(!this.requestCallbacks[e.id]){(n=this.logger)===null||n===void 0||n.warn("No callback found for request id: ".concat(e.id));return}this.requestCallbacks[e.id].resolve(e.responseData),delete this.requestCallbacks[e.id]},t.prototype.setup=function(e){var n=this,a=e===void 0?{}:e,o=a.logger,s=a.endpoint,u=a.isElementSelectable,c=a.cssSelectorAllowlist,p=a.actionClickAllowlist;this.logger=o,s&&this.endpoint===ip&&(this.endpoint=s);var d=null;window.addEventListener("message",function(m){var f,b,v,y,g;if((b=(f=n.logger)===null||f===void 0?void 0:f.debug)===null||b===void 0||b.call(f,"Message received: ",JSON.stringify(m)),n.endpoint===m.origin){var S=m==null?void 0:m.data,w=S==null?void 0:S.action;if(w)if("id"in S)(y=(v=n.logger)===null||v===void 0?void 0:v.debug)===null||y===void 0||y.call(v,"Received Response to previous request: ",JSON.stringify(m)),n.handleResponse(S);else if(w==="ping")n.notify({action:"pong"});else if(w==="initialize-visual-tagging-selector"){var k=S==null?void 0:S.data;jZ(Cq).then(function(){var T;d=(T=window==null?void 0:window.amplitudeVisualTaggingSelector)===null||T===void 0?void 0:T.call(window,{getEventTagProps:zZ,isElementSelectable:function(R){return u?u((k==null?void 0:k.actionType)||"click",R):!0},onTrack:n.onTrack,onSelect:n.onSelect,visualHighlightClass:o0,messenger:n,cssSelectorAllowlist:c,actionClickAllowlist:p}),n.notify({action:"selector-loaded"})}).catch(function(){var T;(T=n.logger)===null||T===void 0||T.warn("Failed to initialize visual tagging selector")})}else w==="close-visual-tagging-selector"&&((g=d==null?void 0:d.close)===null||g===void 0||g.call(d))}}),this.notify({action:"page-loaded"})},t}(),VZ=["id","class","style","value","onclick","onchange","oninput","onblur","onsubmit","onfocus","onkeydown","onkeyup","onkeypress","data-reactid","data-react-checksum","data-reactroot"],YZ=["type"],qZ=["svg","path","g"],ZZ=["password","hidden"],KZ=128,XZ=1024;function JZ(t){var e,n,a,o,s,u;if(t===null)return null;var c=String(t.tagName).toLowerCase(),p={tag:c},d=Array.from((o=(a=t.parentElement)===null||a===void 0?void 0:a.children)!==null&&o!==void 0?o:[]);d.length&&(p.index=d.indexOf(t),p.indexOfType=d.filter(function(R){return R.tagName===t.tagName}).indexOf(t));var m=(u=(s=t.previousElementSibling)===null||s===void 0?void 0:s.tagName)===null||u===void 0?void 0:u.toLowerCase();m&&(p.prevSib=String(m));var f=t.getAttribute("id");f&&(p.id=String(f));var b=Array.from(t.classList);b.length&&(p.classes=b);var v={},y=Array.from(t.attributes),g=y.filter(function(R){return!VZ.includes(R.name)}),S=!z4(t);if(!ZZ.includes(String(t.getAttribute("type")))&&!qZ.includes(c))try{for(var w=hn(g),k=w.next();!k.done;k=w.next()){var T=k.value;S&&!YZ.includes(T.name)||(v[T.name]=String(T.value).substring(0,KZ))}}catch(R){e={error:R}}finally{try{k&&!k.done&&(n=w.return)&&n.call(w)}finally{if(e)throw e.error}}return Object.keys(v).length&&(p.attrs=v),p}function QZ(t){var e=[];
61if(!t)return e;e.push(t);for(var n=t.parentElement;n&&n.tagName!=="HTML";)e.push(n),n=n.parentElement;return e}var eK=function(t){var e=[];if(!t)return[];var n=QZ(t);return e=tK(n.map(function(a){return JZ(a)}),XZ),e};function tK(t,e){for(var n=0,a=0;a<t.length;a++){var o=t[a];if(o===null)n+=4;else{var s=op(o);n+=s?Array.from(s).length:4}if(n>e)return t.slice(0,a)}return t}function op(t,e){e===void 0&&(e=!1);try{if(t==null)return e?"None":null;if(typeof t=="string")return e?(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r"),t.includes('"')?"'".concat(t,"'"):t.includes("'")?'"'.concat(t.replace(/'/g,"\\'"),'"'):"'".concat(t,"'")):t;if(typeof t=="boolean")return t?"True":"False";if(Array.isArray(t)){var n=t.map(function(s){return op(s,!0)});return"[".concat(n.join(", "),"]")}else if(typeof t=="object"){var a=Object.entries(t).filter(function(s){var u=gt(s,1),c=u[0];return c!=null}).map(function(s){var u=gt(s,2),c=u[0],p=u[1];return"".concat(String(op(c,!0)),": ").concat(String(op(p,!0)))}),o="{".concat(a.join(", "),"}");return o.includes("\\'")&&(o=o.replace(/'/g,"'").replace(/'/g,"\\'")),o}return t.toString()}catch{return null}}var nK=5;function rK(t){var e=t.amplitude,n=t.allObservables,a=t.options,o=t.shouldTrackEvent,s=n.clickObservable,u=s.pipe(RZ(),ko(function(m){var f=gt(m,2),b=f[0],v=f[1],y=b.event.target!==v.event.target,g=Math.abs(v.event.screenX-b.event.screenX)<=20&&Math.abs(v.event.screenY-b.event.screenY)<=20;return y&&!g})),c=s.pipe(SZ(a.debounceTime),Ga(function(){return"timeout"})),p=P4(u,c),d=s.pipe(TZ(0),ko(Nw),ko(function(m){return o("click",m.closestTrackedAncestor)}),_Z(p));return d.subscribe(function(m){var f,b,v=(m.length>=nK,i0);try{for(var y=hn(m),g=y.next();!g.done;g=y.next()){var S=g.value;e==null||e.track(v,S.targetElementProperties,{time:S.timestamp})}}catch(w){f={error:w}}finally{try{g&&!g.done&&(b=y.return)&&b.call(y)}finally{if(f)throw f.error}}})}function aK(t){var e=t.amplitude,n=t.allObservables,a=t.getEventProperties,o=t.shouldTrackEvent,s=n.changeObservable,u=s.pipe(ko(Nw),ko(function(c){return o("change",c.closestTrackedAncestor)}));return u.subscribe(function(c){e==null||e.track(dq,a("change",c.closestTrackedAncestor))})}function iK(t){var e=t.amplitude,n=t.allObservables,a=t.options,o=t.getEventProperties,s=t.shouldTrackEvent,u=t.shouldTrackActionClick,c=n.clickObservable,p=n.mutationObservable,d=n.navigateObservable,m=c.pipe(ko(function(y){return!s("click",y.closestTrackedAncestor)}),Ga(function(y){var g=Lw(y.event.target,a.actionClickAllowlist);return y.closestTrackedAncestor=g,y.closestTrackedAncestor!==null&&(y.targetElementProperties=o(y.type,y.closestTrackedAncestor)),y}),ko(Nw),ko(function(y){return u("click",y.closestTrackedAncestor)})),f=[p];d&&f.push(d);var b=P4.apply(void 0,_n([],gt(f),!1)),v=m.pipe(CZ(function(y){return b.pipe(W4(1),sZ({first:500,with:function(){return xw}}),Ga(function(){return y}))}));return v.subscribe(function(y){e==null||e.track(i0,o("click",y.closestTrackedAncestor),{time:y.timestamp})})}var Gl;(function(t){t.ClickObservable="clickObservable",t.ChangeObservable="changeObservable",t.NavigateObservable="navigateObservable",t.MutationObservable="mutationObservable"})(Gl||(Gl={}));function oK(t){return t.type==="click"||t.type==="change"}var sK=function(t){var e,n,a;t===void 0&&(t={});var o=t.dataAttributePrefix,s=o===void 0?_V:o,u=t.visualTaggingOptions,c=u===void 0?{enabled:!0,messenger:new HZ}:u;t.cssSelectorAllowlist=(e=t.cssSelectorAllowlist)!==null&&e!==void 0?e:wV,t.actionClickAllowlist=(n=t.actionClickAllowlist)!==null&&n!==void 0?n:SV,t.debounceTime=(a=t.debounceTime)!==null&&a!==void 0?a:0;var p=uq,d="enrichment",m=[],f=void 0,b=function(){var k,T=ed(document,"click",{capture:!0}).pipe(Ga(function(L){return y(L,"click")})),R=ed(document,"change",{capture:!0}).pipe(Ga(function(L){return y(L,"change")})),I;window.navigation&&(I=ed(window.navigation,"navigate").pipe(Ga(function(L){return y(L,"navigate")})));var M=new Dr(function(L){var O=new MutationObserver(function(W){L.next(W)});return O.observe(document.body,{childList:!0,attributes:!0,characterData:!0,subtree:!0}),function(){return O.disconnect()}}).pipe(Ga(function(L){return y(L,"mutation")}));return k={},k[Gl.ClickObservable]=T,k[Gl.ChangeObservable]=R,k[Gl.NavigateObservable]=I,k[Gl.MutationObservable]=M,k},v=function(k,T){var R,I,M,L=(M=(I=T==null?void 0:T.tagName)===null||I===void 0?void 0:I.toLowerCase)===null||M===void 0?void 0:M.call(I),O=typeof T.getBoundingClientRect=="function"?T.getBoundingClientRect():{left:null,top:null},W=T.getAttribute("aria-label"),F=FZ(T,s),G=H4(T),ee=j4(T,f),de=(R={},R[hq]=T.getAttribute("id")||"",R[fq]=T.getAttribute("class"),R[pq]=eK(T),R[h4]=L,R[f4]=Dw(T),R[gq]=O.left==null?null:Math.round(O.left),R[yq]=O.top==null?null:Math.round(O.top),R[bq]=W,R[vq]=F,R[p4]=ee,R[wq]=G,R[m4]=window.location.href.split("?")[0],R[_q]=typeof document<"u"&&document.title||"",R[Sq]=window.innerHeight,R[kq]=window.innerWidth,R);return L==="a"&&k==="click"&&T instanceof HTMLAnchorElement&&(de[mq]=T.href),G4(de)},y=function(k,T){var R={event:k,timestamp:Date.now(),type:T};if(oK(R)&&R.event.target!==null){var I=Lw(R.event.target,t.cssSelectorAllowlist);return I&&(R.closestTrackedAncestor=I,R.targetElementProperties=v(R.type,I)),R}return R},g=function(k,T){return Ce(void 0,void 0,void 0,function(){var R,I,M,L,O,W,F,G,ee,de;return Re(this,function(ye){return f=k.loggerProvider,typeof document>"u"?[2]:(R=Ub(t,t.cssSelectorAllowlist),I=Ub(t,t.actionClickAllowlist),M=b(),L=rK({allObservables:M,options:t,amplitude:T,shouldTrackEvent:R}),m.push(L),O=aK({allObservables:M,getEventProperties:v,amplitude:T,shouldTrackEvent:R}),m.push(O),W=iK({allObservables:M,options:t,getEventProperties:v,amplitude:T,shouldTrackEvent:R,shouldTrackActionClick:I}),m.push(W),(ee=k==null?void 0:k.loggerProvider)===null||ee===void 0||ee.log("".concat(p," has been successfully added.")),window.opener&&c.enabled&&(F=t.cssSelectorAllowlist,G=t.actionClickAllowlist,(de=c.messenger)===null||de===void 0||de.setup(We(We({logger:k==null?void 0:k.loggerProvider},(k==null?void 0:k.serverZone)&&{endpoint:Rq[k.serverZone]}),{isElementSelectable:Ub(t,_n(_n([],gt(F),!1),gt(G),!1)),cssSelectorAllowlist:F,actionClickAllowlist:G}))),[2])})})},S=function(k){return Ce(void 0,void 0,void 0,function(){return Re(this,function(T){return[2,k]})})},w=function(){return Ce(void 0,void 0,void 0,function(){var k,T,R,I,M;return Re(this,function(L){try{for(k=hn(m),T=k.next();!T.done;T=k.next())R=T.value,R.unsubscribe()}catch(O){I={error:O}}finally{try{T&&!T.done&&(M=k.return)&&M.call(k)}finally{if(I)throw I.error}}return[2]})})};return{name:p,type:d,setup:g,execute:S,teardown:w}},lK=function(t){Ir(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.init=function(n,a,o){n===void 0&&(n="");var s,u;return arguments.length>
612?(s=a,u=o):typeof a=="string"?(s=a,u=void 0):(s=a==null?void 0:a.userId,u=a),ar(this._init(We(We({},u),{userId:s,apiKey:n})))},e.prototype._init=function(n){var a,o,s;return Ce(this,void 0,void 0,function(){var u,c,p,d,m,f,b=this;return Re(this,function(v){switch(v.label){case 0:return this.initializing?[2]:(this.initializing=!0,[4,FY(n.apiKey,n,this)]);case 1:return u=v.sent(),n.fetchRemoteConfig?[4,cq(u)]:[3,4];case 2:return c=v.sent(),[4,c.generateJoinedConfig()];case 3:u=v.sent(),v.label=4;case 4:return[4,t.prototype._init.call(this,u)];case 5:return v.sent(),this.logBrowserOptions(u),o4(this.config.defaultTracking)?(p=_Y(this.config),this.webAttribution=new tY(p,this.config),[4,this.webAttribution.init()]):[3,7];case 6:v.sent(),v.label=7;case 7:return d=Dp(),m=Number.isNaN(Number(d.ampSessionId))?void 0:Number(d.ampSessionId),this.setSessionId((s=(o=(a=n.sessionId)!==null&&a!==void 0?a:m)!==null&&o!==void 0?o:this.config.sessionId)!==null&&s!==void 0?s:Date.now()),f=fd(n.instanceName),f.identityStore.setIdentity({userId:this.config.userId,deviceId:this.config.deviceId}),this.config.offline===vV?[3,9]:[4,this.add(JY()).promise];case 8:v.sent(),v.label=9;case 9:return[4,this.add(new UV).promise];case 10:return v.sent(),[4,this.add(new TY).promise];case 11:return v.sent(),[4,this.add(new mY).promise];case 12:return v.sent(),XY(this.config),yY(this.config.defaultTracking)?(this.config.loggerProvider.debug("Adding file download tracking plugin"),[4,this.add(KY()).promise]):[3,14];case 13:v.sent(),v.label=14;case 14:return bY(this.config.defaultTracking)?(this.config.loggerProvider.debug("Adding form interaction plugin"),[4,this.add(ZY()).promise]):[3,16];case 15:v.sent(),v.label=16;case 16:return s4(this.config.defaultTracking)?(this.config.loggerProvider.debug("Adding page view tracking plugin"),[4,this.add(HY(wY(this.config))).promise]):[3,18];case 17:v.sent(),v.label=18;case 18:return l4(this.config.autocapture)?(this.config.loggerProvider.debug("Adding user interactions plugin (autocapture plugin)"),[4,this.add(sK(vY(this.config))).promise]):[3,20];case 19:v.sent(),v.label=20;case 20:return this.initializing=!1,[4,this.runQueuedFunctions("dispatchQ")];case 21:return v.sent(),f.eventBridge.setEventReceiver(function(y){b.track(y.eventType,y.eventProperties)}),[2]}})})},e.prototype.getUserId=function(){var n;return(n=this.config)===null||n===void 0?void 0:n.userId},e.prototype.setUserId=function(n){if(!this.config){this.q.push(this.setUserId.bind(this,n));return}
61this.config.loggerProvider.debug("function setUserId: ",n),(n!==this.config.userId||n===void 0)&&(this.config.userId=n,fY(n,this.config.instanceName))},e.prototype.getDeviceId=function(){var n;return(n=this.config)===null||n===void 0?void 0:n.deviceId},e.prototype.setDeviceId=function(n){if(!this.config){this.q.push(this.setDeviceId.bind(this,n));return}this.config.loggerProvider.debug("function setDeviceId: ",n),this.config.deviceId=n,pY(n,this.config.instanceName)},e.prototype.reset=function(){this.setDeviceId(Tc()),this.setUserId(void 0)},e.prototype.getSessionId=function(){var n;return(n=this.config)===null||n===void 0?void 0:n.sessionId},e.prototype.setSessionId=function(n){var a,o=[];if(!this.config)return this.q.push(this.setSessionId.bind(this,n)),ar(Promise.resolve());if(n===this.config.sessionId)return ar(Promise.resolve());this.config.loggerProvider.debug("function setSessionId: ",n);var s=this.getSessionId(),u=this.config.lastEventTime,c=(a=this.config.lastEventId)!==null&&a!==void 0?a:-1;this.config.sessionId=n,this.config.lastEventTime=void 0,this.config.pageCounter=0,l2(this.config.defaultTracking)&&(s&&u&&o.push(this.track(d2,void 0,{device_id:this.previousSessionDeviceId,event_id:++c,session_id:s,time:u+1,user_id:this.previousSessionUserId}).promise),this.config.lastEventTime=this.config.sessionId);var p=this.trackCampaignEventIfNeeded(++c,o);return l2(this.config.defaultTracking)&&o.push(this.track(u2,void 0,{event_id:p?++c:c,session_id:this.config.sessionId,time:this.config.lastEventTime}).promise),this.previousSessionDeviceId=this.config.deviceId,this.previousSessionUserId=this.config.userId,ar(Promise.all(o))},e.prototype.extendSession=function(){if(!this.config){this.q.push(this.extendSession.bind(this));return}this.config.lastEventTime=Date.now()},e.prototype.setTransport=function(n){if(!this.config){this.q.push(this.setTransport.bind(this,n));return}this.config.transportProvider=d4(n)},e.prototype.identify=function(n,a){if(Db(n)){var o=n._q;n._q=[],n=Ib(new hd,o)}return a!=null&&a.user_id&&this.setUserId(a.user_id),a!=null&&a.device_id&&this.setDeviceId(a.device_id),t.prototype.identify.call(this,n,a)},e.prototype.groupIdentify=function(n,a,o,s){if(Db(o)){var u=o._q;o._q=[],o=Ib(new hd,u)}return t.prototype.groupIdentify.call(this,n,a,o,s)},e.prototype.revenue=function(n,a){if(Db(n)){var o=n._q;n._q=[],n=Ib(new NV,o)}return t.prototype.revenue.call(this,n,a)},e.prototype.trackCampaignEventIfNeeded=function(n,a){if(!this.webAttribution||!this.webAttribution.shouldTrackNewCampaign)return!1;var o=this.webAttribution.generateCampaignEvent(n);return a?a.push(this.track(o).promise):this.track(o),this.config.loggerProvider.log("Tracking attribution."),!0},e.prototype.process=function(n){return Ce(this,void 0,void 0,function(){var a,o,s;return Re(this,function(u){return a=Date.now(),o=i4(this.config.sessionTimeout,this.config.lastEventTime),s=this.webAttribution&&this.webAttribution.shouldSetSessionIdOnNewCampaign(),n.event_type!==u2&&n.event_type!==d2&&(!n.session_id||n.session_id===this.getSessionId())&&(o||s?(this.setSessionId(a),s&&this.config.loggerProvider.log("Created a new session for new campaign.")):o||this.trackCampaignEventIfNeeded()),[2,t.prototype.process.call(this,n)]})})},e.prototype.logBrowserOptions=function(n){try{var a=We(We({},n),{apiKey:n.apiKey.substring(0,10)+"********"});this.config.loggerProvider.debug("Initialized Amplitude with BrowserConfig:",JSON.stringify(a))}catch(o){this.config.loggerProvider.error("Error logging browser config",o)}},e}(LV),cK=function(){var t=new lK;return{init:ln(t.init.bind(t),"init",on(t),sn(t,["config"])),add:ln(t.add.bind(t),"add",on(t),sn(t,["config.apiKey","timeline.plugins"])),remove:ln(t.remove.bind(t),"remove",on(t),sn(t,["config.apiKey","timeline.plugins"])),track:ln(t.track.bind(t),"track",on(t),sn(t,["config.apiKey","timeline.queue.length"])),logEvent:ln(t.logEvent.bind(t),"logEvent",on(t),sn(t,["config.apiKey","timeline.queue.length"])),identify:ln(t.identify.bind(t),"identify",on(t),sn(t,["config.apiKey","timeline.queue.length"])),groupIdentify:ln(t.groupIdentify.bind(t),"groupIdentify",on(t),sn(t,["config.apiKey","timeline.queue.length"])),setGroup:ln(t.setGroup.bind(t),"setGroup",on(t),sn(t,["config.apiKey","timeline.queue.length"])),revenue:ln(t.revenue.bind(t),"revenue",on(t),sn(t,["config.apiKey","timeline.queue.length"])),flush:ln(t.flush.bind(t),"flush",on(t),sn(t,["config.apiKey","timeline.queue.length"])),getUserId:ln(t.getUserId.bind(t),"getUserId",on(t),sn(t,["config","config.userId"])),setUserId:ln(t.setUserId.bind(t),"setUserId",on(t),sn(t,["config","config.userId"])),getDeviceId:ln(t.getDeviceId.bind(t),"getDeviceId",on(t),sn(t,["config","config.deviceId"])),setDeviceId:ln(t.setDeviceId.bind(t),"setDeviceId",on(t),sn(t,["config","config.deviceId"])),reset:ln(t.reset.bind(t),"reset",on(t),sn(t,["config","config.userId","config.deviceId"])),getSessionId:ln(t.getSessionId.bind(t),"getSessionId",on(t),sn(t,["config"])),setSessionId:ln(t.setSessionId.bind(t),"setSessionId",on(t),sn(t,["config"])),extendSession:ln(t.extendSession.bind(t),"extendSession",on(t),sn(t,["config"])),setOptOut:ln(t.setOptOut.bind(t),"setOptOut",on(t),sn(t,["config"])),setTransport:ln(t.setTransport.bind(t),"setTransport",on(t),sn(t,["config"]))}};const Rc=cK();var uK=Rc.flush,dK=Rc.identify,hK=Rc.init,fK=Rc.reset,pK=Rc.setUserId,mK=Rc.track;const gK={init:(t,e)=>hK(t,e),track:(t,e)=>mK(t,e),setUserId:t=>pK(t),identify:t=>{const e=new hd;for(const[n,a]of Object.entries(t))e.set(n,a);return dK(e)},flush:()=>uK(),reset:()=>fK()},yK=t=>{const e=t.sdk??gK;let n=!1;return{name:"amplitude",channels:["product"],init:()=>{tV(t.hostname)&&(e.init(JH,eV),n=!0)},track:({name:s,properties:u})=>{(async()=>{try{await e.track(s,u).promise}catch(c){console.error(c)}})()},identify:({userId:s,traits:u})=>{(async()=>{try{await e.setUserId(s.toString())}catch(c){console.error("Unable to set TrackingIdentity",c)}if(u)try{await e.identify(u).promise,await e.flush().promise}catch(c){console.error(c)}})()},reset:()=>{try{e.reset()}catch(s){console.error(s)}},flush:()=>{(async()=>{try{await e.flush().promise}catch(s){console.error(s)}})()},isLive:()=>n}},bK=1500;let Pa=null;const u0=new Set,aoe=(t,e,n)=>{Pa={path:t,title:e,owner:n};
61for(const a of[...u0]){if(a.path!==t){a.settle(a.fallback);continue}if(n==="final"){a.settle(e);continue}a.fallback=e}},vK=(t,e=bK)=>typeof document>"u"?Promise.resolve(""):(Pa==null?void 0:Pa.path)===t&&Pa.owner==="final"?Promise.resolve(Pa.title):new Promise(n=>{const a={path:t,fallback:(Pa==null?void 0:Pa.path)===t?Pa.title:document.title,settle:o=>{u0.delete(a)&&(clearTimeout(a.timer),n(o))}};u0.add(a),a.timer=setTimeout(()=>a.settle(a.fallback),e)}),wK=t=>{const e=(n,a)=>{if(!(typeof window>"u"||!window.dataLayer))try{window.dataLayer.push(aV(n,a,new Date().toISOString()))}catch(o){console.error("GTM event push error",o)}};return{name:"gtm",channels:["marketing"],init:()=>{if(typeof window>"u"||typeof document>"u"||lV(window.dataLayer))return;const n=nV();window.dataLayer=window.dataLayer||[],window.dataLayer.push(cV(new Date().getTime()));const a=document.createElement("script");a.async=!0,a.src=rV(n),document.head.appendChild(a)},track:({name:n,properties:a})=>e(n,a),pageView:n=>{vK(n).then(a=>e("page_view",iV(n,a)))}}},_K={"Authentication modal opened":"AUTH_MODAL_LOAD"},SK=[{prefix:"Category page ",type:"CATEGORY_PAGE_VIEWED",property:"categoryId"},{prefix:"Provider page ",type:"PROVIDER_PAGE_VIEWED",property:"provider"},{prefix:"Closed ",suffix:" modal",type:"MODAL_CLOSED",property:"modal"}],kK=t=>t.replace(/[^A-Za-z0-9]+/g," ").trim().replace(/\s+/g,"_").toUpperCase(),EK=t=>{const e=_K[t];if(e)return{type:e};for(const a of SK){if(!t.startsWith(a.prefix))continue;const o=t.slice(a.prefix.length),s=a.suffix?o.endsWith(a.suffix)?o.slice(0,-a.suffix.length):null:o;if(s)return{type:a.type,properties:{[a.property]:s}}}const n=kK(t);return n?{type:n}:null},k2="whaleEventSession",TK={read:()=>{try{return window.localStorage.getItem(k2)}catch{return null}},write:t=>{try{window.localStorage.setItem(k2,t)}catch{}}},RK=t=>{const e=t.storage??TK;let n=null;const a=()=>{if(n)return n;const u=e.read();return u?(n=Promise.resolve(u),n):(n=t.transport.createSession().then(({token:c})=>(e.write(c),c)).catch(c=>(console.error("Unable to create Whale Events session",c),n=null,null)),n)};return{name:"whale-events",channels:["product"],init:()=>{a()},track:({name:u,properties:c})=>{const p=EK(u);p&&(async()=>{try{const d=await a();if(!d)return;await t.transport.sendEvent({token:d,type:p.type,metadata:{...c,...p.properties}})}catch(d){console.error(d)}})()},identify:u=>{(async()=>{try{const c=await a();if(!c)return;const p=await t.transport.linkSession(c);p.token!==c&&(e.write(p.token),n=Promise.resolve(p.token))}catch(c){console.error("Unable to link Whale Events session",c)}})()}}};var ft;(function(t){t.assertEqual=o=>{};function e(o){}t.assertIs=e;function n(o){throw new Error}t.assertNever=n,t.arrayToEnum=o=>{const s={};for(const u of o)s[u]=u;return s},t.getValidEnumValues=o=>{const s=t.objectKeys(o).filter(c=>typeof o[o[c]]!="number"),u={};for(const c of s)u[c]=o[c];return t.objectValues(u)},t.objectValues=o=>t.objectKeys(o).map(function(s){return o[s]}),t.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{const s=[];for(const u in o)Object.prototype.hasOwnProperty.call(o,u)&&s.push(u);return s},t.find=(o,s)=>{for(const u of o)if(s(u))return u},t.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function a(o,s=" | "){return o.map(u=>typeof u=="string"?`'${u}'`:u).join(s)}t.joinValues=a,t.jsonStringifyReplacer=(o,s)=>typeof s=="bigint"?s.toString():s})(ft||(ft={}));var E2;(function(t){t.mergeShapes=(e,n)=>({...e,...n})})(E2||(E2={}));const Le=ft.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),po=t=>{switch(typeof t){case"undefined":return Le.undefined;case"string":return Le.string;case"number":return Number.isNaN(t)?Le.nan:Le.number;case"boolean":return Le.boolean;case"function":return Le.function;case"bigint":return Le.bigint;case"symbol":return Le.symbol;case"object":return Array.isArray(t)?Le.array:t===null?Le.null:t.then&&typeof t.then=="function"&&t.catch&&typeof t.catch=="function"?Le.promise:typeof Map<"u"&&t instanceof Map?Le.map:typeof Set<"u"&&t instanceof Set?Le.set:typeof Date<"u"&&t instanceof Date?Le.date:Le.object;default:return Le.unknown}}
vendor: 6,033 bytes, line 61
61,Se=ft.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class Ii extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=a=>{this.issues=[...this.issues,a]},this.addIssues=(a=[])=>{this.issues=[...this.issues,...a]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=e}format(e){const n=e||function(s){return s.message},a={_errors:[]},o=s=>{for(const u of s.issues)if(u.code==="invalid_union")u.unionErrors.map(o);else if(u.code==="invalid_return_type")o(u.returnTypeError);else if(u.code==="invalid_arguments")o(u.argumentsError);else if(u.path.length===0)a._errors.push(n(u));else{let c=a,p=0;for(;p<u.path.length;){const d=u.path[p];p===u.path.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(n(u))):c[d]=c[d]||{_errors:[]},c=c[d],p++}}};return o(this),a}static assert(e){if(!(e instanceof Ii))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ft.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=n=>n.message){const n={},a=[];for(const o of this.issues)if(o.path.length>0){const s=o.path[0];n[s]=n[s]||[],n[s].push(e(o))}else a.push(e(o));return{formErrors:a,fieldErrors:n}}get formErrors(){return this.flatten()}}Ii.create=t=>new Ii(t);const d0=(t,e)=>{let n;switch(t.code){case Se.invalid_type:t.received===Le.undefined?n="Required":n=`Expected ${t.expected}, received ${t.received}`;break;case Se.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(t.expected,ft.jsonStringifyReplacer)}`;break;case Se.unrecognized_keys:n=`Unrecognized key(s) in object: ${ft.joinValues(t.keys,", ")}`;break;case Se.invalid_union:n="Invalid input";break;case Se.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ft.joinValues(t.options)}`;break;case Se.invalid_enum_value:n=`Invalid enum value. Expected ${ft.joinValues(t.options)}, received '${t.received}'`;break;case Se.invalid_arguments:n="Invalid function arguments";break;case Se.invalid_return_type:n="Invalid function return type";break;case Se.invalid_date:n="Invalid date";break;case Se.invalid_string:typeof t.validation=="object"?"includes"in t.validation?(n=`Invalid input: must include "${t.validation.includes}"`,typeof t.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${t.validation.position}`)):"startsWith"in t.validation?n=`Invalid input: must start with "${t.validation.startsWith}"`:"endsWith"in t.validation?n=`Invalid input: must end with "${t.validation.endsWith}"`:ft.assertNever(t.validation):t.validation!=="regex"?n=`Invalid ${t.validation}`:n="Invalid";break;case Se.too_small:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at least":"more than"} ${t.minimum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at least":"over"} ${t.minimum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="bigint"?n=`Number must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${t.minimum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly equal to ":t.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(t.minimum))}`:n="Invalid input";break;case Se.too_big:t.type==="array"?n=`Array must contain ${t.exact?"exactly":t.inclusive?"at most":"less than"} ${t.maximum} element(s)`:t.type==="string"?n=`String must contain ${t.exact?"exactly":t.inclusive?"at most":"under"} ${t.maximum} character(s)`:t.type==="number"?n=`Number must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="bigint"?n=`BigInt must be ${t.exact?"exactly":t.inclusive?"less than or equal to":"less than"} ${t.maximum}`:t.type==="date"?n=`Date must be ${t.exact?"exactly":t.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(t.maximum))}`:n="Invalid input";break;case Se.custom:n="Invalid input";break;case Se.invalid_intersection_types:n="Intersection results could not be merged";break;case Se.not_multiple_of:n=`Number must be a multiple of ${t.multipleOf}`;break;case Se.not_finite:n="Number must be finite";break;default:n=e.defaultError,ft.assertNever(t)}return{message:n}};let CK=d0;function AK(){return CK}const xK=t=>{const{data:e,path:n,errorMaps:a,issueData:o}=t,s=[...n,...o.path||[]],u={...o,path:s};if(o.message!==void 0)return{...o,path:s,message:o.message};let c="";const p=a.filter(d=>!!d).slice().reverse();for(const d of p)c=d(u,{data:e,defaultError:c}).message;return{...o,path:s,message:c}};function Ae(t,e){const n=AK(),a=xK({issueData:e,data:t.data,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,n,n===d0?void 0:d0].filter(o=>!!o)});t.common.issues.push(a)}class xr{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,n){const a=[];for(const o of n){if(o.status==="aborted")return Ge;o.status==="dirty"&&e.dirty(),a.push(o.value)}return{status:e.value,value:a}}static async mergeObjectAsync(e,n){const a=[];for(const o of n){const s=await o.key,u=await o.value;a.push({key:s,value:u})}return xr.mergeObjectSync(e,a)}static mergeObjectSync(e,n){const a={};for(const o of n){const{key:s,value:u}=o;if(s.status==="aborted"||u.status==="aborted")return Ge;s.status==="dirty"&&e.dirty(),u.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof u.value<"u"||o.alwaysSet)&&(a[s.value]=u.value)}return{status:e.value,value:a}}}const Ge=Object.freeze({status:"aborted"}),Gu=t=>({status:"dirty",value:t}),oa=t=>
vendor: 27,922 bytes, line 61
61({status:"valid",value:t}),T2=t=>t.status==="aborted",R2=t=>t.status==="dirty",uc=t=>t.status==="valid",Np=t=>typeof Promise<"u"&&t instanceof Promise;var Pe;(function(t){t.errToObj=e=>typeof e=="string"?{message:e}:e||{},t.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Pe||(Pe={}));class Io{constructor(e,n,a,o){this._cachedPath=[],this.parent=e,this.data=n,this._path=a,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const C2=(t,e)=>{if(uc(e))return{success:!0,data:e.value};if(!t.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const n=new Ii(t.common.issues);return this._error=n,this._error}}};function et(t){if(!t)return{};const{errorMap:e,invalid_type_error:n,required_error:a,description:o}=t;if(e&&(n||a))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:o}:{errorMap:(u,c)=>{const{message:p}=t;return u.code==="invalid_enum_value"?{message:p??c.defaultError}:typeof c.data>"u"?{message:p??a??c.defaultError}:u.code!=="invalid_type"?{message:c.defaultError}:{message:p??n??c.defaultError}},description:o}}class ct{get description(){return this._def.description}_getType(e){return po(e.data)}_getOrReturnCtx(e,n){return n||{common:e.parent.common,data:e.data,parsedType:po(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new xr,ctx:{common:e.parent.common,data:e.data,parsedType:po(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const n=this._parse(e);if(Np(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(e){const n=this._parse(e);return Promise.resolve(n)}parse(e,n){const a=this.safeParse(e,n);if(a.success)return a.data;throw a.error}safeParse(e,n){const a={common:{issues:[],async:(n==null?void 0:n.async)??!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:po(e)},o=this._parseSync({data:e,path:a.path,parent:a});return C2(a,o)}"~validate"(e){var a,o;const n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:po(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:n});return uc(s)?{value:s.value}:{issues:n.common.issues}}catch(s){(o=(a=s==null?void 0:s.message)==null?void 0:a.toLowerCase())!=null&&o.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:n}).then(s=>uc(s)?{value:s.value}:{issues:n.common.issues})}async parseAsync(e,n){const a=await this.safeParseAsync(e,n);if(a.success)return a.data;throw a.error}async safeParseAsync(e,n){const a={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:po(e)},o=this._parse({data:e,path:a.path,parent:a}),s=await(Np(o)?o:Promise.resolve(o));return C2(a,s)}refine(e,n){const a=o=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(o):n;return this._refinement((o,s)=>{const u=e(o),c=()=>s.addIssue({code:Se.custom,...a(o)});return typeof Promise<"u"&&u instanceof Promise?u.then(p=>p?!0:(c(),!1)):u?!0:(c(),!1)})}refinement(e,n){return this._refinement((a,o)=>e(a)?!0:(o.addIssue(typeof n=="function"?n(a,o):n),!1))}_refinement(e){return new fc({schema:this,typeName:He.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return Eo.create(this,this._def)}nullable(){return pc.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Xa.create(this)}promise(){return Bp.create(this,this._def)}or(e){return Wp.create([this,e],this._def)}and(e){return Mp.create(this,e,this._def)}transform(e){return new fc({...et(this._def),schema:this,typeName:He.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const n=typeof e=="function"?e:()=>e;return new p0({...et(this._def),innerType:this,defaultValue:n,typeName:He.ZodDefault})}brand(){return new JK({typeName:He.ZodBranded,type:this,...et(this._def)})}catch(e){const n=typeof e=="function"?e:()=>e;return new m0({...et(this._def),innerType:this,catchValue:n,typeName:He.ZodCatch})}describe(e){const n=this.constructor;return new n({...this._def,description:e})}pipe(e){return Pw.create(this,e)}readonly(){return g0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const OK=/^c[^\s-]{8,}$/i,IK=/^[0-9a-z]+$/,DK=/^[0-9A-HJKMNP-TV-Z]{26}$/i,LK=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,NK=/^[a-z0-9_-]{21}$/i,PK=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,WK=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,MK=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,BK="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Fb;const UK=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,FK=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,$K=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,zK=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,jK=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,GK=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,V4="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",HK=new RegExp(`^${V4}$`);function Y4(t){let e="[0-5]\\d";t.precision?e=`${e}\\.\\d{${t.precision}}`:t.precision==null&&(e=`${e}(\\.\\d+)?`);const n=t.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${n}`}function VK(t){return new RegExp(`^${Y4(t)}$`)}function YK(t){let e=`${V4}T${Y4(t)}`;const n=[];return n.push(t.local?"Z?":"Z"),t.offset&&n.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${n.join("|")})`,new RegExp(`^${e}$`)}function qK(t,e){return!!((e==="v4"||!e)&&UK.test(t)||(e==="v6"||!e)&&$K.test(t))}function ZK(t,e){if(!PK.test(t))return!1;try{const[n]=t.split(".");if(!n)return!1;const a=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),o=JSON.parse(atob(a));return!(typeof o!="object"||o===null||"typ"in o&&(o==null?void 0:o.typ)!=="JWT"||!o.alg||e&&o.alg!==e)}catch{return!1}}function KK(t,e){return!!((e==="v4"||!e)&&FK.test(t)||(e==="v6"||!e)&&zK.test(t))}class wo extends ct{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Le.string){const s=this._getOrReturnCtx(e);return Ae(s,{code:Se.invalid_type,expected:Le.string,received:s.parsedType}),Ge}const a=new xr;let o;for(const s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),a.dirty());else if(s.kind==="max")e.data.length>s.value&&(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),a.dirty());else if(s.kind==="length"){const u=e.data.length>s.value,c=e.data.length<s.value;(u||c)&&(o=this._getOrReturnCtx(e,o),u?Ae(o,{code:Se.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):c&&Ae(o,{code:Se.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),a.dirty())}else if(s.kind==="email")MK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"email",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="emoji")Fb||(Fb=new RegExp(BK,"u")),Fb.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"emoji",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="uuid")LK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"uuid",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="nanoid")NK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"nanoid",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="cuid")OK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"cuid",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="cuid2")IK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"cuid2",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="ulid")DK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"ulid",code:Se.invalid_string,message:s.message}),a.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{o=this._getOrReturnCtx(e,o),Ae(o,{validation:"url",code:Se.invalid_string,message:s.message}),a.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"regex",code:Se.invalid_string,message:s.message}),a.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),a.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.invalid_string,validation:{startsWith:s.value},message:s.message}),a.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.invalid_string,validation:{endsWith:s.value},message:s.message}),a.dirty()):s.kind==="datetime"?YK(s).test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.invalid_string,validation:"datetime",message:s.message}),a.dirty()):s.kind==="date"?HK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.invalid_string,validation:"date",message:s.message}),a.dirty()):s.kind==="time"?VK(s).test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.invalid_string,validation:"time",message:s.message}),a.dirty()):s.kind==="duration"?WK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"duration",code:Se.invalid_string,message:s.message}),a.dirty()):s.kind==="ip"?qK(e.data,s.version)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"ip",code:Se.invalid_string,message:s.message}),a.dirty()):s.kind==="jwt"?ZK(e.data,s.alg)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"jwt",code:Se.invalid_string,message:s.message}),a.dirty()):s.kind==="cidr"?KK(e.data,s.version)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"cidr",code:Se.invalid_string,message:s.message}),a.dirty()):s.kind==="base64"?jK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"base64",code:Se.invalid_string,message:s.message}),a.dirty()):s.kind==="base64url"?GK.test(e.data)||(o=this._getOrReturnCtx(e,o),Ae(o,{validation:"base64url",code:Se.invalid_string,message:s.message}),a.dirty()):ft.assertNever(s);return{status:a.value,value:e.data}}_regex(e,n,a){return this.refinement(o=>e.test(o),{validation:n,code:Se.invalid_string,...Pe.errToObj(a)})}_addCheck(e){return new wo({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Pe.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Pe.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Pe.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Pe.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Pe.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Pe.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Pe.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Pe.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Pe.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Pe.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Pe.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Pe.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Pe.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(e==null?void 0:e.offset)??!1,local:(e==null?void 0:e.local)??!1,...Pe.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...Pe.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Pe.errToObj(e)})}regex(e,n){return this._addCheck({kind:"regex",regex:e,...Pe.errToObj(n)})}includes(e,n){return this._addCheck({kind:"includes",value:e,position:n==null?void 0:n.position,...Pe.errToObj(n==null?void 0:n.message)})}startsWith(e,n){return this._addCheck({kind:"startsWith",value:e,...Pe.errToObj(n)})}endsWith(e,n){return this._addCheck({kind:"endsWith",value:e,...Pe.errToObj(n)})}min(e,n){return this._addCheck({kind:"min",value:e,...Pe.errToObj(n)})}max(e,n){return this._addCheck({kind:"max",value:e,...Pe.errToObj(n)})}length(e,n){return this._addCheck({kind:"length",value:e,...Pe.errToObj(n)})}nonempty(e){return this.min(1,Pe.errToObj(e))}trim(){return new wo({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new wo({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new wo({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxLength(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}}wo.create=t=>new wo({checks:[],typeName:He.ZodString,coerce:(t==null?void 0:t.coerce)??!1,...et(t)});function XK(t,e){const n=(t.toString().split(".")[1]||"").length,a=(e.toString().split(".")[1]||"").length,o=n>a?n:a,s=Number.parseInt(t.toFixed(o).replace(".","")),u=Number.parseInt(e.toFixed(o).replace(".",""));return s%u/10**o}class dc extends ct{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==Le.number){const s=this._getOrReturnCtx(e);return Ae(s,{code:Se.invalid_type,expected:Le.number,received:s.parsedType}),Ge}let a;const o=new xr;for(const s of this._def.checks)s.kind==="int"?ft.isInteger(e.data)||(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.invalid_type,expected:"integer",received:"float",message:s.message}),o.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),o.dirty()):s.kind==="multipleOf"?XK(e.data,s.value)!==0&&(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.not_finite,message:s.message}),o.dirty()):ft.assertNever(s);return{status:o.value,value:e.data}}gte(e,n){return this.setLimit("min",e,!0,Pe.toString(n))}gt(e,n){return this.setLimit("min",e,!1,Pe.toString(n))}lte(e,n){return this.setLimit("max",e,!0,Pe.toString(n))}lt(e,n){return this.setLimit("max",e,!1,Pe.toString(n))}setLimit(e,n,a,o){return new dc({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:a,message:Pe.toString(o)}]})}_addCheck(e){return new dc({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Pe.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Pe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Pe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Pe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Pe.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:Pe.toString(n)})}finite(e){return this._addCheck({kind:"finite",message:Pe.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Pe.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Pe.toString(e)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&ft.isInteger(e.value))}get isFinite(){let e=null,n=null;for(const a of this._def.checks){if(a.kind==="finite"||a.kind==="int"||a.kind==="multipleOf")return!0;a.kind==="min"?(n===null||a.value>n)&&(n=a.value):a.kind==="max"&&(e===null||a.value<e)&&(e=a.value)}return Number.isFinite(n)&&Number.isFinite(e)}}dc.create=t=>new dc({checks:[],typeName:He.ZodNumber,coerce:(t==null?void 0:t.coerce)||!1,...et(t)});class pd extends ct{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==Le.bigint)return this._getInvalidInput(e);let a;const o=new xr;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),o.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(a=this._getOrReturnCtx(e,a),Ae(a,{code:Se.not_multiple_of,multipleOf:s.value,message:s.message}),o.dirty()):ft.assertNever(s);return{status:o.value,value:e.data}}_getInvalidInput(e){const n=this._getOrReturnCtx(e);return Ae(n,{code:Se.invalid_type,expected:Le.bigint,received:n.parsedType}),Ge}gte(e,n){return this.setLimit("min",e,!0,Pe.toString(n))}gt(e,n){return this.setLimit("min",e,!1,Pe.toString(n))}lte(e,n){return this.setLimit("max",e,!0,Pe.toString(n))}lt(e,n){return this.setLimit("max",e,!1,Pe.toString(n))}setLimit(e,n,a,o){return new pd({...this._def,checks:[...this._def.checks,{kind:e,value:n,inclusive:a,message:Pe.toString(o)}]})}_addCheck(e){return new pd({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Pe.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Pe.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Pe.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Pe.toString(e)})}multipleOf(e,n){return this._addCheck({kind:"multipleOf",value:e,message:Pe.toString(n)})}get minValue(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e}get maxValue(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e}}pd.create=t=>new pd({checks:[],typeName:He.ZodBigInt,coerce:(t==null?void 0:t.coerce)??!1,...et(t)});class h0 extends ct{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==Le.boolean){const a=this._getOrReturnCtx(e);return Ae(a,{code:Se.invalid_type,expected:Le.boolean,received:a.parsedType}),Ge}return oa(e.data)}}h0.create=t=>new h0({typeName:He.ZodBoolean,coerce:(t==null?void 0:t.coerce)||!1,...et(t)});class Pp extends ct{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Le.date){const s=this._getOrReturnCtx(e);return Ae(s,{code:Se.invalid_type,expected:Le.date,received:s.parsedType}),Ge}if(Number.isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return Ae(s,{code:Se.invalid_date}),Ge}const a=new xr;let o;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),a.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(o=this._getOrReturnCtx(e,o),Ae(o,{code:Se.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),a.dirty()):ft.assertNever(s);return{status:a.value,value:new Date(e.data.getTime())}}_addCheck(e){return new Pp({...this._def,checks:[...this._def.checks,e]})}min(e,n){return this._addCheck({kind:"min",value:e.getTime(),message:Pe.toString(n)})}max(e,n){return this._addCheck({kind:"max",value:e.getTime(),message:Pe.toString(n)})}get minDate(){let e=null;for(const n of this._def.checks)n.kind==="min"&&(e===null||n.value>e)&&(e=n.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const n of this._def.checks)n.kind==="max"&&(e===null||n.value<e)&&(e=n.value);return e!=null?new Date(e):null}}Pp.create=t=>new Pp({checks:[],coerce:(t==null?void 0:t.coerce)||!1,typeName:He.ZodDate,...et(t)});class A2 extends ct{_parse(e){if(this._getType(e)!==Le.symbol){const a=this._getOrReturnCtx(e);return Ae(a,{code:Se.invalid_type,expected:Le.symbol,received:a.parsedType}),Ge}return oa(e.data)}}A2.create=t=>new A2({typeName:He.ZodSymbol,...et(t)});class x2 extends ct{_parse(e){if(this._getType(e)!==Le.undefined){const a=this._getOrReturnCtx(e);return Ae(a,{code:Se.invalid_type,expected:Le.undefined,received:a.parsedType}),Ge}return oa(e.data)}}x2.create=t=>new x2({typeName:He.ZodUndefined,...et(t)});class O2 extends ct{_parse(e){if(this._getType(e)!==Le.null){const a=this._getOrReturnCtx(e);return Ae(a,{code:Se.invalid_type,expected:Le.null,received:a.parsedType}),Ge}return oa(e.data)}}O2.create=t=>new O2({typeName:He.ZodNull,...et(t)});class I2 extends ct{constructor(){super(...arguments),this._any=!0}_parse(e){return oa(e.data)}}I2.create=t=>new I2({typeName:He.ZodAny,...et(t)});class D2 extends ct{constructor(){super(...arguments),this._unknown=!0}_parse(e){return oa(e.data)}}D2.create=t=>new D2({typeName:He.ZodUnknown,...et(t)});class Do extends ct{_parse(e){const n=this._getOrReturnCtx(e);return Ae(n,{code:Se.invalid_type,expected:Le.never,received:n.parsedType}),Ge}}Do.create=t=>new Do({typeName:He.ZodNever,...et(t)});class L2 extends ct{_parse(e){if(this._getType(e)!==Le.undefined){const a=this._getOrReturnCtx(e);return Ae(a,{code:Se.invalid_type,expected:Le.void,received:a.parsedType}),Ge}return oa(e.data)}}L2.create=t=>new L2({typeName:He.ZodVoid,...et(t)});class Xa extends ct{_parse(e){const{ctx:n,status:a}=this._processInputParams(e),o=this._def;if(n.parsedType!==Le.array)return Ae(n,{code:Se.invalid_type,expected:Le.array,received:n.parsedType}),Ge;if(o.exactLength!==null){const u=n.data.length>o.exactLength.value,c=n.data.length<o.exactLength.value;(u||c)&&(Ae(n,{code:u?Se.too_big:Se.too_small,minimum:c?o.exactLength.value:void 0,maximum:u?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),a.dirty())}if(o.minLength!==null&&n.data.length<o.minLength.value&&(Ae(n,{code:Se.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),a.dirty()),o.maxLength!==null&&n.data.length>o.maxLength.value&&(Ae(n,{code:Se.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),a.dirty()),n.common.async)return Promise.all([...n.data].map((u,c)=>o.type._parseAsync(new Io(n,u,n.path,c)))).then(u=>xr.mergeArray(a,u));const s=[...n.data].map((u,c)=>o.type._parseSync(new Io(n,u,n.path,c)));return xr.mergeArray(a,s)}
vendor: 14,311 bytes, line 61
61get element(){return this._def.type}min(e,n){return new Xa({...this._def,minLength:{value:e,message:Pe.toString(n)}})}max(e,n){return new Xa({...this._def,maxLength:{value:e,message:Pe.toString(n)}})}length(e,n){return new Xa({...this._def,exactLength:{value:e,message:Pe.toString(n)}})}nonempty(e){return this.min(1,e)}}Xa.create=(t,e)=>new Xa({type:t,minLength:null,maxLength:null,exactLength:null,typeName:He.ZodArray,...et(e)});function Nl(t){if(t instanceof un){const e={};for(const n in t.shape){const a=t.shape[n];e[n]=Eo.create(Nl(a))}return new un({...t._def,shape:()=>e})}else return t instanceof Xa?new Xa({...t._def,type:Nl(t.element)}):t instanceof Eo?Eo.create(Nl(t.unwrap())):t instanceof pc?pc.create(Nl(t.unwrap())):t instanceof Cs?Cs.create(t.items.map(e=>Nl(e))):t}class un extends ct{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),n=ft.objectKeys(e);return this._cached={shape:e,keys:n},this._cached}_parse(e){if(this._getType(e)!==Le.object){const d=this._getOrReturnCtx(e);return Ae(d,{code:Se.invalid_type,expected:Le.object,received:d.parsedType}),Ge}const{status:a,ctx:o}=this._processInputParams(e),{shape:s,keys:u}=this._getCached(),c=[];if(!(this._def.catchall instanceof Do&&this._def.unknownKeys==="strip"))for(const d in o.data)u.includes(d)||c.push(d);const p=[];for(const d of u){const m=s[d],f=o.data[d];p.push({key:{status:"valid",value:d},value:m._parse(new Io(o,f,o.path,d)),alwaysSet:d in o.data})}if(this._def.catchall instanceof Do){const d=this._def.unknownKeys;if(d==="passthrough")for(const m of c)p.push({key:{status:"valid",value:m},value:{status:"valid",value:o.data[m]}});else if(d==="strict")c.length>0&&(Ae(o,{code:Se.unrecognized_keys,keys:c}),a.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const d=this._def.catchall;for(const m of c){const f=o.data[m];p.push({key:{status:"valid",value:m},value:d._parse(new Io(o,f,o.path,m)),alwaysSet:m in o.data})}}return o.common.async?Promise.resolve().then(async()=>{const d=[];for(const m of p){const f=await m.key,b=await m.value;d.push({key:f,value:b,alwaysSet:m.alwaysSet})}return d}).then(d=>xr.mergeObjectSync(a,d)):xr.mergeObjectSync(a,p)}get shape(){return this._def.shape()}strict(e){return Pe.errToObj,new un({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(n,a)=>{var s,u;const o=((u=(s=this._def).errorMap)==null?void 0:u.call(s,n,a).message)??a.defaultError;return n.code==="unrecognized_keys"?{message:Pe.errToObj(e).message??o}:{message:o}}}:{}})}strip(){return new un({...this._def,unknownKeys:"strip"})}passthrough(){return new un({...this._def,unknownKeys:"passthrough"})}extend(e){return new un({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new un({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:He.ZodObject})}setKey(e,n){return this.augment({[e]:n})}catchall(e){return new un({...this._def,catchall:e})}pick(e){const n={};for(const a of ft.objectKeys(e))e[a]&&this.shape[a]&&(n[a]=this.shape[a]);return new un({...this._def,shape:()=>n})}omit(e){const n={};for(const a of ft.objectKeys(this.shape))e[a]||(n[a]=this.shape[a]);return new un({...this._def,shape:()=>n})}deepPartial(){return Nl(this)}partial(e){const n={};for(const a of ft.objectKeys(this.shape)){const o=this.shape[a];e&&!e[a]?n[a]=o:n[a]=o.optional()}return new un({...this._def,shape:()=>n})}required(e){const n={};for(const a of ft.objectKeys(this.shape))if(e&&!e[a])n[a]=this.shape[a];else{let s=this.shape[a];for(;s instanceof Eo;)s=s._def.innerType;n[a]=s}return new un({...this._def,shape:()=>n})}keyof(){return q4(ft.objectKeys(this.shape))}}un.create=(t,e)=>new un({shape:()=>t,unknownKeys:"strip",catchall:Do.create(),typeName:He.ZodObject,...et(e)});un.strictCreate=(t,e)=>new un({shape:()=>t,unknownKeys:"strict",catchall:Do.create(),typeName:He.ZodObject,...et(e)});un.lazycreate=(t,e)=>new un({shape:t,unknownKeys:"strip",catchall:Do.create(),typeName:He.ZodObject,...et(e)});class Wp extends ct{_parse(e){const{ctx:n}=this._processInputParams(e),a=this._def.options;function o(s){for(const c of s)if(c.result.status==="valid")return c.result;for(const c of s)if(c.result.status==="dirty")return n.common.issues.push(...c.ctx.common.issues),c.result;const u=s.map(c=>new Ii(c.ctx.common.issues));return Ae(n,{code:Se.invalid_union,unionErrors:u}),Ge}if(n.common.async)return Promise.all(a.map(async s=>{const u={...n,common:{...n.common,issues:[]},parent:null};return{result:await s._parseAsync({data:n.data,path:n.path,parent:u}),ctx:u}})).then(o);{let s;const u=[];for(const p of a){const d={...n,common:{...n.common,issues:[]},parent:null},m=p._parseSync({data:n.data,path:n.path,parent:d});if(m.status==="valid")return m;m.status==="dirty"&&!s&&(s={result:m,ctx:d}),d.common.issues.length&&u.push(d.common.issues)}if(s)return n.common.issues.push(...s.ctx.common.issues),s.result;const c=u.map(p=>new Ii(p));return Ae(n,{code:Se.invalid_union,unionErrors:c}),Ge}}get options(){return this._def.options}}Wp.create=(t,e)=>new Wp({options:t,typeName:He.ZodUnion,...et(e)});function f0(t,e){const n=po(t),a=po(e);if(t===e)return{valid:!0,data:t};if(n===Le.object&&a===Le.object){const o=ft.objectKeys(e),s=ft.objectKeys(t).filter(c=>o.indexOf(c)!==-1),u={...t,...e};for(const c of s){const p=f0(t[c],e[c]);if(!p.valid)return{valid:!1};u[c]=p.data}return{valid:!0,data:u}}else if(n===Le.array&&a===Le.array){if(t.length!==e.length)return{valid:!1};const o=[];for(let s=0;s<t.length;s++){const u=t[s],c=e[s],p=f0(u,c);if(!p.valid)return{valid:!1};o.push(p.data)}return{valid:!0,data:o}}else return n===Le.date&&a===Le.date&&+t==+e?{valid:!0,data:t}:{valid:!1}}class Mp extends ct{_parse(e){const{status:n,ctx:a}=this._processInputParams(e),o=(s,u)=>{if(T2(s)||T2(u))return Ge;const c=f0(s.value,u.value);return c.valid?((R2(s)||R2(u))&&n.dirty(),{status:n.value,value:c.data}):(Ae(a,{code:Se.invalid_intersection_types}),Ge)};return a.common.async?Promise.all([this._def.left._parseAsync({data:a.data,path:a.path,parent:a}),this._def.right._parseAsync({data:a.data,path:a.path,parent:a})]).then(([s,u])=>o(s,u)):o(this._def.left._parseSync({data:a.data,path:a.path,parent:a}),this._def.right._parseSync({data:a.data,path:a.path,parent:a}))}}Mp.create=(t,e,n)=>new Mp({left:t,right:e,typeName:He.ZodIntersection,...et(n)});class Cs extends ct{_parse(e){const{status:n,ctx:a}=this._processInputParams(e);if(a.parsedType!==Le.array)return Ae(a,{code:Se.invalid_type,expected:Le.array,received:a.parsedType}),Ge;if(a.data.length<this._def.items.length)return Ae(a,{code:Se.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Ge;!this._def.rest&&a.data.length>this._def.items.length&&(Ae(a,{code:Se.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const s=[...a.data].map((u,c)=>{const p=this._def.items[c]||this._def.rest;return p?p._parse(new Io(a,u,a.path,c)):null}).filter(u=>!!u);return a.common.async?Promise.all(s).then(u=>xr.mergeArray(n,u)):xr.mergeArray(n,s)}get items(){return this._def.items}rest(e){return new Cs({...this._def,rest:e})}}Cs.create=(t,e)=>{if(!Array.isArray(t))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Cs({items:t,typeName:He.ZodTuple,rest:null,...et(e)})};class N2 extends ct{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:n,ctx:a}=this._processInputParams(e);if(a.parsedType!==Le.map)return Ae(a,{code:Se.invalid_type,expected:Le.map,received:a.parsedType}),Ge;const o=this._def.keyType,s=this._def.valueType,u=[...a.data.entries()].map(([c,p],d)=>({key:o._parse(new Io(a,c,a.path,[d,"key"])),value:s._parse(new Io(a,p,a.path,[d,"value"]))}));if(a.common.async){const c=new Map;return Promise.resolve().then(async()=>{for(const p of u){const d=await p.key,m=await p.value;if(d.status==="aborted"||m.status==="aborted")return Ge;(d.status==="dirty"||m.status==="dirty")&&n.dirty(),c.set(d.value,m.value)}return{status:n.value,value:c}})}else{const c=new Map;for(const p of u){const d=p.key,m=p.value;if(d.status==="aborted"||m.status==="aborted")return Ge;(d.status==="dirty"||m.status==="dirty")&&n.dirty(),c.set(d.value,m.value)}return{status:n.value,value:c}}}}N2.create=(t,e,n)=>new N2({valueType:e,keyType:t,typeName:He.ZodMap,...et(n)});class md extends ct{_parse(e){const{status:n,ctx:a}=this._processInputParams(e);if(a.parsedType!==Le.set)return Ae(a,{code:Se.invalid_type,expected:Le.set,received:a.parsedType}),Ge;const o=this._def;o.minSize!==null&&a.data.size<o.minSize.value&&(Ae(a,{code:Se.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),n.dirty()),o.maxSize!==null&&a.data.size>o.maxSize.value&&(Ae(a,{code:Se.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),n.dirty());const s=this._def.valueType;function u(p){const d=new Set;for(const m of p){if(m.status==="aborted")return Ge;m.status==="dirty"&&n.dirty(),d.add(m.value)}return{status:n.value,value:d}}const c=[...a.data.values()].map((p,d)=>s._parse(new Io(a,p,a.path,d)));return a.common.async?Promise.all(c).then(p=>u(p)):u(c)}min(e,n){return new md({...this._def,minSize:{value:e,message:Pe.toString(n)}})}max(e,n){return new md({...this._def,maxSize:{value:e,message:Pe.toString(n)}})}size(e,n){return this.min(e,n).max(e,n)}nonempty(e){return this.min(1,e)}}md.create=(t,e)=>new md({valueType:t,minSize:null,maxSize:null,typeName:He.ZodSet,...et(e)});class P2 extends ct{get schema(){return this._def.getter()}_parse(e){const{ctx:n}=this._processInputParams(e);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}P2.create=(t,e)=>new P2({getter:t,typeName:He.ZodLazy,...et(e)});class W2 extends ct{_parse(e){if(e.data!==this._def.value){const n=this._getOrReturnCtx(e);return Ae(n,{received:n.data,code:Se.invalid_literal,expected:this._def.value}),Ge}return{status:"valid",value:e.data}}get value(){return this._def.value}}W2.create=(t,e)=>new W2({value:t,typeName:He.ZodLiteral,...et(e)});function q4(t,e){return new hc({values:t,typeName:He.ZodEnum,...et(e)})}class hc extends ct{_parse(e){if(typeof e.data!="string"){const n=this._getOrReturnCtx(e),a=this._def.values;return Ae(n,{expected:ft.joinValues(a),received:n.parsedType,code:Se.invalid_type}),Ge}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const n=this._getOrReturnCtx(e),a=this._def.values;return Ae(n,{received:n.data,code:Se.invalid_enum_value,options:a}),Ge}return oa(e.data)}get options(){return this._def.values}get enum(){const e={};for(const n of this._def.values)e[n]=n;return e}get Values(){const e={};for(const n of this._def.values)e[n]=n;return e}get Enum(){const e={};for(const n of this._def.values)e[n]=n;return e}extract(e,n=this._def){return hc.create(e,{...this._def,...n})}exclude(e,n=this._def){return hc.create(this.options.filter(a=>!e.includes(a)),{...this._def,...n})}}hc.create=q4;class M2 extends ct{_parse(e){const n=ft.getValidEnumValues(this._def.values),a=this._getOrReturnCtx(e);if(a.parsedType!==Le.string&&a.parsedType!==Le.number){const o=ft.objectValues(n);return Ae(a,{expected:ft.joinValues(o),received:a.parsedType,code:Se.invalid_type}),Ge}if(this._cache||(this._cache=new Set(ft.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const o=ft.objectValues(n);return Ae(a,{received:a.data,code:Se.invalid_enum_value,options:o}),Ge}return oa(e.data)}get enum(){return this._def.values}}M2.create=(t,e)=>new M2({values:t,typeName:He.ZodNativeEnum,...et(e)});class Bp extends ct{unwrap(){return this._def.type}_parse(e){const{ctx:n}=this._processInputParams(e);if(n.parsedType!==Le.promise&&n.common.async===!1)return Ae(n,{code:Se.invalid_type,expected:Le.promise,received:n.parsedType}),Ge;const a=n.parsedType===Le.promise?n.data:Promise.resolve(n.data);return oa(a.then(o=>this._def.type.parseAsync(o,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Bp.create=(t,e)=>new Bp({type:t,typeName:He.ZodPromise,...et(e)});class fc extends ct{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===He.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:n,ctx:a}=this._processInputParams(e),o=this._def.effect||null,s={addIssue:u=>{Ae(a,u),u.fatal?n.abort():n.dirty()},get path(){return a.path}};if(s.addIssue=s.addIssue.bind(s),o.type==="preprocess"){const u=o.transform(a.data,s);if(a.common.async)return Promise.resolve(u).then(async c=>{if(n.value==="aborted")return Ge;const p=await this._def.schema._parseAsync({data:c,path:a.path,parent:a});return p.status==="aborted"?Ge:p.status==="dirty"||n.value==="dirty"?Gu(p.value):p});{if(n.value==="aborted")return Ge;const c=this._def.schema._parseSync({data:u,path:a.path,parent:a});return c.status==="aborted"?Ge:c.status==="dirty"||n.value==="dirty"?Gu(c.value):c}}if(o.type==="refinement"){const u=c=>{const p=o.refinement(c,s);if(a.common.async)return Promise.resolve(p);if(p instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(a.common.async===!1){const c=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});return c.status==="aborted"?Ge:(c.status==="dirty"&&n.dirty(),u(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(c=>c.status==="aborted"?Ge:(c.status==="dirty"&&n.dirty(),u(c.value).then(()=>({status:n.value,value:c.value}))))}if(o.type==="transform")if(a.common.async===!1){const u=this._def.schema._parseSync({data:a.data,path:a.path,parent:a});if(!uc(u))return Ge;const c=o.transform(u.value,s);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:a.data,path:a.path,parent:a}).then(u=>uc(u)?Promise.resolve(o.transform(u.value,s)).then(c=>({status:n.value,value:c})):Ge);ft.assertNever(o)}}fc.create=(t,e,n)=>
61new fc({schema:t,typeName:He.ZodEffects,effect:e,...et(n)});fc.createWithPreprocess=(t,e,n)=>new fc({schema:e,effect:{type:"preprocess",transform:t},typeName:He.ZodEffects,...et(n)});class Eo extends ct{_parse(e){return this._getType(e)===Le.undefined?oa(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Eo.create=(t,e)=>new Eo({innerType:t,typeName:He.ZodOptional,...et(e)});class pc extends ct{_parse(e){return this._getType(e)===Le.null?oa(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}pc.create=(t,e)=>new pc({innerType:t,typeName:He.ZodNullable,...et(e)});class p0 extends ct{_parse(e){const{ctx:n}=this._processInputParams(e);let a=n.data;return n.parsedType===Le.undefined&&(a=this._def.defaultValue()),this._def.innerType._parse({data:a,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}p0.create=(t,e)=>new p0({innerType:t,typeName:He.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...et(e)});class m0 extends ct{_parse(e){const{ctx:n}=this._processInputParams(e),a={...n,common:{...n.common,issues:[]}},o=this._def.innerType._parse({data:a.data,path:a.path,parent:{...a}});return Np(o)?o.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Ii(a.common.issues)},input:a.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new Ii(a.common.issues)},input:a.data})}}removeCatch(){return this._def.innerType}}m0.create=(t,e)=>new m0({innerType:t,typeName:He.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...et(e)});class B2 extends ct{_parse(e){if(this._getType(e)!==Le.nan){const a=this._getOrReturnCtx(e);return Ae(a,{code:Se.invalid_type,expected:Le.nan,received:a.parsedType}),Ge}return{status:"valid",value:e.data}}}B2.create=t=>new B2({typeName:He.ZodNaN,...et(t)});class JK extends ct{_parse(e){const{ctx:n}=this._processInputParams(e),a=n.data;return this._def.type._parse({data:a,path:n.path,parent:n})}unwrap(){return this._def.type}}class Pw extends ct{_parse(e){const{status:n,ctx:a}=this._processInputParams(e);if(a.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:a.data,path:a.path,parent:a});return s.status==="aborted"?Ge:s.status==="dirty"?(n.dirty(),Gu(s.value)):this._def.out._parseAsync({data:s.value,path:a.path,parent:a})})();{const o=this._def.in._parseSync({data:a.data,path:a.path,parent:a});return o.status==="aborted"?Ge:o.status==="dirty"?(n.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:a.path,parent:a})}}static create(e,n){return new Pw({in:e,out:n,typeName:He.ZodPipeline})}}class g0 extends ct{_parse(e){const n=this._def.innerType._parse(e),a=o=>(uc(o)&&(o.value=Object.freeze(o.value)),o);return Np(n)?n.then(o=>a(o)):a(n)}unwrap(){return this._def.innerType}}g0.create=(t,e)=>new g0({innerType:t,typeName:He.ZodReadonly,...et(e)});var He;(function(t){t.ZodString="ZodString",t.ZodNumber="ZodNumber",t.ZodNaN="ZodNaN",t.ZodBigInt="ZodBigInt",t.ZodBoolean="ZodBoolean",t.ZodDate="ZodDate",t.ZodSymbol="ZodSymbol",t.ZodUndefined="ZodUndefined",t.ZodNull="ZodNull",t.ZodAny="ZodAny",t.ZodUnknown="ZodUnknown",t.ZodNever="ZodNever",t.ZodVoid="ZodVoid",t.ZodArray="ZodArray",t.ZodObject="ZodObject",t.ZodUnion="ZodUnion",t.ZodDiscriminatedUnion="ZodDiscriminatedUnion",t.ZodIntersection="ZodIntersection",t.ZodTuple="ZodTuple",t.ZodRecord="ZodRecord",t.ZodMap="ZodMap",t.ZodSet="ZodSet",t.ZodFunction="ZodFunction",t.ZodLazy="ZodLazy",t.ZodLiteral="ZodLiteral",t.ZodEnum="ZodEnum",t.ZodEffects="ZodEffects",t.ZodNativeEnum="ZodNativeEnum",t.ZodOptional="ZodOptional",t.ZodNullable="ZodNullable",t.ZodDefault="ZodDefault",t.ZodCatch="ZodCatch",t.ZodPromise="ZodPromise",t.ZodBranded="ZodBranded",t.ZodPipeline="ZodPipeline",t.ZodReadonly="ZodReadonly"})(He||(He={}));const Jr=wo.create,Z4=dc.create,K4=h0.create;Do.create;Xa.create;const Ww=un.create,ioe=Wp.create;Mp.create;Cs.create;const ooe=hc.create;Bp.create;Eo.create;pc.create;const U2="x-event-session",X4=Ww({id:Jr(),token:Jr(),userId:Z4().nullable(),createdAt:Jr()}),QK=X4.extend({rotated:K4(),linkedEventCount:Z4()}),eX=Ww({id:Jr(),createdAt:Jr()}),tX={createSession:async()=>({token:(await wn.post("/events/session",void 0,{schema:X4})).token}),sendEvent:async({token:t,type:e,metadata:n})=>{await wn.post("/events",{type:e,metadata:n},{schema:eX,headers:{[U2]:t}})},linkSession:async t=>{const e=await wn.patch("/events/session/link",void 0,{schema:QK,headers:{[U2]:t}});return{token:e.token,rotated:e.rotated}}};let F2=!1,J4=()=>{};const soe=t=>{J4=t},nX=t=>{Gx(e=>(e.type==="balanceUpdate"&&e.isDeposit&&QE("deposit_success",oV(e,t())),e.type==="firstTimeDeposit"&&QE("first_time_deposit",sV(e)),!1))},rX=()=>
61{if(F2)return;if(F2=!0,nX(()=>J4()),typeof window>"u"){JE();return}const t=yK({hostname:window.location.hostname});fb(t),fb(wK()),fb(RK({transport:tX})),JE(),t.isLive()&&(window.trackEvent=dw)};var Yd=(t=>(t.TON="TON",t.NOT="NOT",t.BNB="BNB",t.BTC="BTC",t.MBTC="mBTC",t.USD="USD",t.CUSD="CUSD",t.BRL="BRL",t.USDC="USDC",t.USDT="USDT",t.SOL="SOL",t.ETH="ETH",t.CELO="CELO",t.XXX="XXX",t.WHALE="WHALE",t.STREAM_USDT="-USDT",t))(Yd||{});const Zn=dm("roomCommon"),uo=Zn.createEffect(async t=>(await qn().get(`/room/${t}`)).data),$b=Zn.createEvent("setRoomUuidEvent"),y0=Zn.createEvent("setRoomUserCurrency"),Up=Zn.createEvent("setRoomIsLiveEvent"),aX=Zn.createEvent("setRoomIsFinishedEvent"),iX=Zn.createEvent("setRoomSourcesStatusEvent"),$2=Zn.createEvent("loadRoomDataEvent"),pa=Zn.store(""),gd=Zn.store(!1),yd=Zn.store(!1).on(Up,(t,e)=>e),b0=Zn.store(!1),v0=Zn.store({webcam:!1,frame:!1}),z2=Zn.store("");uo.pending;const cn=Zn.store(null),oX=Zn.store(Yd.USDT),sX=()=>{ie({clock:$b,source:pa,filter:(t,{uuid:e})=>t!==e,fn:()=>null,target:cn}),ie({clock:$b,fn:({uuid:t})=>t,target:pa}),ie({clock:$b,fn:({isStreamer:t})=>t,target:gd}),ie({clock:y0,fn:t=>t??Yd.USDT,target:oX}),ie({source:pa,target:$2}),ie({clock:Up,target:yd}),ie({clock:aX,target:b0}),ie({clock:iX,target:v0}),ie({clock:$2,target:uo}),ie({clock:uo.doneData,fn:t=>t,target:cn}),ie({clock:uo.doneData,fn:t=>t.room.isLive,target:yd}),ie({clock:uo.doneData,fn:t=>t.room.isFinished,target:b0}),ie({clock:uo.doneData,fn:t=>({webcam:t.room.isWebcamSourceEnabled,frame:t.room.isFrameSourceEnabled}),target:v0}),ie({clock:uo.done,fn:()=>"",target:z2}),ie({clock:uo.failData,fn:t=>(t==null?void 0:t.message)||"Loading error",target:z2})};var da=(t=>(t.DOLBY="DOLBY",t.NANOSTREAM="NANOSTREAM",t))(da||{});const Te=dm("room-public"),lX=Te.createEvent("setRoomSelectedGameEvent"),cX=Te.createEvent("setRoomBalanceEvent"),j2=Te.createEvent("setRoomIsLiveEvent"),G2=Te.createEvent("setRoomIsFinishedEvent");Te.createEvent("setRoomSourcesStatusEvent");const Yr=Te.createEvent("setRoomSubscriptionMessageEvent"),uX=Te.createEvent("setRoomCloseCallbackEvent"),dX=Te.createEvent("setRoomSubscriptionMessageCallbackEvent"),hX=Te.createEvent("loadRoomDataEvent"),H2=Te.createEvent("loadRoomSessionDataEvent"),fX=Te.createEvent("loadRoomSessionTerminateEvent"),pX=Te.createEvent("loadRoomSessionDepositEvent"),mX=Te.createEvent("loadRoomSessionWithdrawEvent"),gX=Te.createEvent("unsetRoomGameEvent");Te.createEvent("updateTopParticipants");const yX=Te.createEvent("subscribeToRoomOwnerEvent"),bX=Te.createEvent("unsubscribeFromRoomOwnerEvent"),vX=Te.createEvent("setDeviceStateEvent"),wX=Te.createEvent("roomSessionTransferSucceededEvent"),_X=Te.createEvent("showVolumeSettingsModalEvent"),SX=Te.createEvent("setViewerSettingsStreamerMicrophoneVolumeEvent"),kX=Te.createEvent("setViewerSettingsStreamerMicrophoneVolumeIsMutedEvent"),EX=Te.createEvent("setViewerSettingsGameSoundsVolumeEvent"),TX=Te.createEvent("setViewerSettingsGameSoundsVolumeIsMutedEvent"),RX=Te.createEvent("loadNanoplayerScriptEvent"),CX=Te.createEvent("playNanostreamFrameVideoEvent"),AX=Te.createEvent("playNanostreamWebcamVideoEvent"),xX=Te.createEvent("setNanostreamVideoMutedEvent"),OX=Te.createEvent("setNanostreamVideoPausedEvent"),IX=Te.createEvent("destroyNanostreamVideoEvent"),Fp=Te.createEvent(),DX=Te.createEvent(),LX=Te.createEvent("setCurrentUserIdEvent"),V2="nanoplayer-script",NX="https://demo.nanocosmos.de/nanoplayer/api/release/nanoplayer.5.min.js";let Cu=null;const PX=()=>!!window.NanoPlayer,WX=t=>new Promise((e,n)=>{t.addEventListener("load",()=>e(),{once:!0}),t.addEventListener("error",()=>n(new Error("Failed to load NanoPlayer")),{once:!0})}),Mw=()=>{if(PX())return Promise.resolve();if(Cu)return Cu;const t=document.getElementById(V2),e=t instanceof HTMLScriptElement?t:document.createElement("script");return Cu=WX(e).catch(n=>{throw Cu=null,e.remove(),n}),e!==t&&(e.src=NX,e.id=V2,e.async=!0,document.body.appendChild(e)),Cu},MX=.5,_o={},ra={},td={},Q4=["click","mousedown","keydown","touchend"],BX="interactionrequired";let Bw=!1;const bd=new Map,vd=new Set,e3=()=>typeof navigator>"u"?void 0:navigator.userActivation,t3=()=>{var t;
61return Bw&&(((t=e3())==null?void 0:t.hasBeenActive)??!0)},n3=()=>{var e;if(((e=e3())==null?void 0:e.isActive)===!1)return;Bw=!0,Q4.forEach(n=>document.removeEventListener(n,n3,!0));const t=[...bd.values()];bd.clear(),t.forEach(n=>n())},r3=(t,e)=>{if(!(typeof document>"u")){if(t3()){e();return}bd.size===0&&Q4.forEach(n=>document.addEventListener(n,n3,{passive:!0,capture:!0})),bd.set(t,e)}},mc=t=>{const e=_o[t],n=ra[t];if(!(!e||!n))try{if(n.muted||n.volume<=0){e.mute();return}e.unmute(),e.setVolume(n.volume)}catch(a){console.warn(`Could not apply audio for ${t}:`,a)}},a3=t=>{r3(t,()=>{const e=ra[t];e&&(e.muted=!1,mc(t))})},$p=t=>{const e=_o[t],n=ra[t];if(!(!e||!n))try{const a=n.paused?e.pause():e.play();a&&typeof a.catch=="function"&&a.catch(o=>console.warn(`Could not apply playback for ${t}:`,o))}catch(a){console.warn(`Could not apply playback for ${t}:`,a)}},UX=(t,e)=>{const n=ra[t];if(n){if(Bw=!1,n.muted=!0,vd.has(t)){r3(t,()=>{const a=ra[t];a&&(a.muted=!e,mc(t),a.paused||$p(t))});return}vd.add(t),setTimeout(()=>{var a;mc(t),(a=ra[t])!=null&&a.paused||$p(t)},0),e&&a3(t)}},FX=async({streamName:t,playerDivId:e,type:n,showCropped:a=!1,withAudio:o=!1})=>{await Mw();const s=document.getElementById(e);if(!s){console.error(`Video element not found: ${e}`);return}if(_o[e]){try{_o[e].destroy()}catch(L){console.warn("Error destroying player:",L)}delete _o[e]}o&&(td[n]=e),ra[e]={muted:!0,volume:MX,paused:!1},vd.delete(e),s.innerHTML="";const I={source:{defaults:{service:"bintu"},entries:[{h5live:{rtmp:{streamname:t}}}]},playback:{autoplay:!0,automute:!0,muted:!0,faststart:!0,latencyControlMode:"balancedadaptive"},style:{controls:!1,displayMutedAutoplay:!1,width:"auto",height:"auto",scaling:a?"crop":"letterbox",view:!0},events:{onStreamInfo:function(L){var F;console.info(`${n} onStreamInfo called:`,L);const{haveAudio:O,haveVideo:W}=((F=L.data)==null?void 0:F.streamInfo)||{};typeof O<"u"&&typeof W<"u"&&Fp({type:n,haveVideo:W,haveAudio:O})},onStreamInfoUpdate:function(L){var F;console.info(`${n} onStreamInfoUpdate:`,L);const{haveAudio:O,haveVideo:W}=((F=L.data)==null?void 0:F.streamInfo)||{};typeof O<"u"&&typeof W<"u"&&Fp({type:n,haveVideo:W,haveAudio:O})},onReady:function(L){console.info(`${n} onReady:`,L)},onPlay:function(L){var O;console.info(`${n} onPlay:`,L),vd.delete(e),o&&a3(e),mc(e),(O=ra[e])!=null&&O.paused&&$p(e)},onPause:function(L){var W;const O=(W=L==null?void 0:L.data)==null?void 0:W.reason;console.warn(`${n} onPause (reason: ${O}):`,L),O===BX&&UX(e,o)},onLoading:function(L){console.info(`${n} onLoading:`,L)},onStartBuffering:function(L){console.info(`${n} onStartBuffering:`,L)},onStopBuffering:function(L){console.info(`${n} onStopBuffering:`,L)},onError:function(L){console.error(`${n} onError:`,L)},onWarning:function(L){console.warn(`${n} onWarning:`,L)},onMetaData:function(L){console.info(`${n} onMetaData:`,L)},onUpdateSourceInit:function(L){console.info(`${n} onUpdateSourceInit:`,L)},onUpdateSourceSuccess:function(L){console.info(`${n} onUpdateSourceSuccess:`,L)},onUpdateSourceFail:function(L){console.error(`${n} onUpdateSourceFail:`,L)},onUpdateSourceAbort:function(L){console.warn(`${n} onUpdateSourceAbort:`,L)}},metrics:{accountId:"blacklabz",accountKey:"bla2XqNNzcQzA6lD",statsInterval:10}},M=new window.NanoPlayer(e);_o[e]=M,M.setup(I).then(function(L){console.info("NanoPlayer setup successful for",{streamName:t,playerDivId:e,type:n})},function(L){console.error("NanoPlayer setup failed:",L)})},$X=async({volume:t,type:e})=>{await Mw();const n=td[e],a=n?ra[n]:void 0;if(!n||!a){console.warn(`Player not found for type: ${e}`);return}const o=Math.max(0,Math.min(1,t/100));a.volume=o,a.muted=o<=0||!t3(),mc(n)},zX=({playerDivId:t,muted:e,volume:n})=>{const a=ra[t];a&&(a.muted=e,typeof n=="number"&&(a.volume=Math.max(0,Math.min(1,n))),mc(t))},jX=({playerDivId:t,paused:e})=>{const n=ra[t];!n||n.paused===e||(n.paused=e,$p(t))},GX=({playerDivId:t})=>{const e=_o[t];if(e)try{e.destroy()}catch(n){console.warn("Error destroying player:",n)}delete _o[t],delete ra[t],bd.delete(t),vd.delete(t),Object.keys(td).forEach(n=>{td[n]===t&&delete td[n]})}
61,Y2=Te.createEffect(async t=>(await qn().get(`/room/client/${t}`)).data),HX=Te.createEffect(async t=>(await qn().delete(`/room/client/${t.uuid}`,{headers:{"x-connection-token":t.token}})).data),zb=Te.createEffect(async t=>{var n;const e=await qn().put(`/room/client/${t.uuid}`,{amount:t.amount,depositCurrency:t.userCurrency},{headers:{"x-connection-token":t.token},validateStatus:()=>!0});if(e.status>=400){const a=((n=e.data)==null?void 0:n.status)||`HTTP ${e.status}`;throw new Error(a)}return e.data}),q2=Te.createEffect(t=>new Promise(e=>{setTimeout(()=>e(null),2e3)})),Z2=Te.createEffect(async t=>(await qn().patch(`/room/client/${t.uuid}`,{amount:t.amount},{headers:{"x-connection-token":t.token}})).data),sp=Te.createEffect(async t=>(await qn().post(`/room/${t.uuid}/follow`)).data),lp=Te.createEffect(async t=>(await qn().delete(`/room/${t.uuid}/follow`)).data),K2=Te.createEffect(async()=>{await Mw()}),X2=Te.createEffect(async t=>{await FX(t)}),J2=Te.createEffect(async t=>{await $X(t)}),VX=Te.createEffect(t=>{zX(t)}),YX=Te.createEffect(t=>{jX(t)}),qX=Te.createEffect(t=>{GX(t)});var i3=(t=>(t.MobileLandscape="MobileLandscape",t.MobilePortrait="MobilePortrait",t.Desktop="Desktop",t))(i3||{});const jb=Te.store({name:"",game:"",frameSource:"",webcamSource:"",isLive:!1,isFinished:!1,isFrameSourceEnabled:!1,isWebcamSourceEnabled:!1,streamProvider:da.NANOSTREAM}),ZX=Te.store(null),Gb=Te.store(0),Q2=Te.store(!1),Hb=Te.store({name:"",level:0,country:"",xp:0,currentLevelXP:0,nextLevelXP:0}),go=Te.store([]),KX=Te.store({}),XX=Te.store([]),JX=Te.store(null),QX=Te.store(null),eJ=Te.store(null),Tf=Te.store([]),eR=Te.store({isOwner:!0,balance:0,deposited:0,percentage:0,isActive:!1}),Vb=Te.store(""),is=Te.store({isOwner:!1,balance:0,deposited:0,percentage:0,isActive:!1,uuid:"",username:"",externalUserId:0,subscribed:!1,tokenConnection:"",tokenSubscription:""}),loe=Vn(sp.pending,lp.pending,(t,e)=>t||e),tJ=Te.store(i3.Desktop);Vn(is,t=>t.uuid);const coe=Vn(go,t=>t.filter(e=>e.isActive&&e.percentage>0).sort((e,n)=>n.balance-e.balance)),uoe=Vn(go,t=>t.filter(e=>e.isActive&&e.percentage===0&&!e.isOwner)),tR=Te.store(()=>{}),nR=Te.store(()=>{}),rR=Te.store(!1),o3=Te.store(null),zp=Te.store(null);Vn(zp,t=>!t||t.boxValueAmount<=0?0:Math.min(t.pot/t.boxValueAmount,1));const doe=Vn(zp,go,o3,(t,e,n)=>{if(!t)return[];const a=new Map(e.filter(c=>!c.isOwner).map(c=>[c.externalUserId,c])),o=t.standings.filter(c=>c.tickets>0).sort((c,p)=>p.tickets-c.tickets).map((c,p)=>{var d,m;return{userId:c.userId,tickets:c.tickets,share:t.pot>0?c.tickets/t.pot:0,rank:p+1,username:((d=a.get(c.userId))==null?void 0:d.username)??"",level:((m=a.get(c.userId))==null?void 0:m.level)??0,isCurrentUser:c.userId===n}}),s=o.slice(0,5);if(s.some(c=>c.isCurrentUser))return o.slice(0,6);const u=o.find(c=>c.isCurrentUser);return u?[...s,u]:s}),aR=Te.store(50),iR=Te.store(!1),oR=Te.store(50),sR=Te.store(!1),Yb=Te.store(null),w0=Te.store(!0),nJ=Te.store(!1),s3=Te.store(!1),hoe=Vn(w0,s3,(t,e)=>!e||!t),rJ=()=>{ie({source:cn,fn:t=>{var e;return((e=t==null?void 0:t.room)==null?void 0:e.balance)??0},target:Gb}),ie({source:cn,fn:t=>{var e;return((e=t==null?void 0:t.room)==null?void 0:e.isFrozen)||!1},target:Q2}),ie({source:cn,fn:t=>{var e;return((e=t==null?void 0:t.room)==null?void 0:e.game)||""},target:Vb}),ie({source:cn,filter:t=>
61(t==null?void 0:t.room.streamProvider)===da.NANOSTREAM,target:K2}),ie({source:cn,fn:t=>(t==null?void 0:t.sessions.filter(e=>!e.isOwner))||[],target:go}),ie({source:cn,fn:t=>{const e={};for(const n of(t==null?void 0:t.sessions)||[])!n.isOwner&&n.avatarUrl&&(e[n.externalUserId]=n.avatarUrl);return e},target:KX}),ie({source:cn,fn:t=>{const e=t==null?void 0:t.sessions.find(n=>n.isOwner);return e?{isOwner:e.isOwner,balance:e.balance,deposited:e.deposited,percentage:e.percentage,isActive:e.isActive}:{isOwner:!0,balance:0,deposited:0,percentage:0,isActive:!1}},target:eR}),ie({source:cn,filter:t=>t!==null,fn:t=>({name:(t==null?void 0:t.room.name)||"",game:(t==null?void 0:t.room.game)||"",frameSource:(t==null?void 0:t.room.frameSource)||"",webcamSource:(t==null?void 0:t.room.webcamSource)||"",isLive:(t==null?void 0:t.room.isLive)||!1,isFinished:(t==null?void 0:t.room.isFinished)||!1,isFrameSourceEnabled:(t==null?void 0:t.room.isFrameSourceEnabled)||!1,isWebcamSourceEnabled:(t==null?void 0:t.room.isWebcamSourceEnabled)||!1,streamProvider:(t==null?void 0:t.room.streamProvider)||da.NANOSTREAM}),target:jb}),ie({source:cn,fn:t=>(t==null?void 0:t.chat.id)||null,target:ZX}),ie({source:cn,fn:t=>{var e,n,a,o,s,u,c,p,d;return{name:((e=t==null?void 0:t.owner)==null?void 0:e.name)||"",level:((n=t==null?void 0:t.owner)==null?void 0:n.level)||0,country:((a=t==null?void 0:t.owner)==null?void 0:a.country)||"",xp:((o=t==null?void 0:t.owner)==null?void 0:o.xp)||0,currentLevelXP:((s=t==null?void 0:t.owner)==null?void 0:s.currentLevelXP)||0,nextLevelXP:((u=t==null?void 0:t.owner)==null?void 0:u.nextLevelXP)||0,avatarUrl:((c=t==null?void 0:t.owner)==null?void 0:c.avatarUrl)??null,subscribersCount:((p=t==null?void 0:t.owner)==null?void 0:p.subscribersCount)??0,isFollowing:((d=t==null?void 0:t.owner)==null?void 0:d.isFollowing)??!1}},target:Hb}),ie({source:pa,target:hX}),ie({source:Vn(pa,gd),filter:([t,e])=>!!(t&&!e),fn:([t])=>t,target:H2}),ie({clock:cX,target:Gb}),ie({clock:j2,target:yd}),ie({clock:G2,target:b0}),ie({clock:lX,target:Vb}),ie({clock:uX,target:tR}),ie({clock:dX,target:nR}),ie({clock:DX,target:s3}),ie({source:go,fn:t=>t.filter(e=>e.isActive&&e.percentage>0),target:XX}),ie({source:go,fn:t=>[...t].filter(e=>e.deposited>0).sort((e,n)=>n.percentage-e.percentage).slice(0,3),target:Tf}),JX.on(Tf,(t,e)=>e[0]??null),QX.on(Tf,(t,e)=>e[1]??null),eJ.on(Tf,(t,e)=>e[2]??null),ie({clock:H2,target:Y2}),ie({clock:Y2.doneData,target:is,fn:t=>{const e=go.getState().find(n=>!n.isOwner&&n.uuid===t.sessionUuid);return e?{...e,tokenConnection:t.tokenConnection,tokenSubscription:t.tokenSubscription}:{isOwner:!1,balance:0,deposited:0,percentage:0,isActive:!1,uuid:t.sessionUuid,username:"",externalUserId:0,subscribed:!1,tokenConnection:t.tokenConnection,tokenSubscription:t.tokenSubscription}}}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:Gb,fn:t=>t.room.balance}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:Q2,fn:t=>t.room.isFrozen}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:j2,fn:t=>t.room.isLive}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:G2,fn:t=>t.room.isFinished}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:Vb,fn:t=>t.room.game||""}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:eR,fn:t=>t.sessions.find(e=>e.isOwner)}),ie({clock:Yr,filter:t=>t.type==="UPDATE",target:go,fn:t=>t.sessions.filter(e=>!e.isOwner)}),ie({clock:Yr,filter:t=>t.type==="UPDATE"&&t.room.isFinished,fn:()=>tR.getState()()}),ie({clock:Yr,filter:t=>["INFO","ERROR"].includes(t.type),fn:t=>nR.getState()(t)}),ie({clock:Yr,filter:t=>t.type==="SOURCE_STATUS",target:v0,fn:t=>t.data}),ie({clock:Yr,filter:t=>t.type==="TRIBE_DRIP",target:zp,fn:t=>t.drip}),ie({clock:cn,filter:t=>!!t,target:zp,fn:t=>t.tribeDrip}),ie({clock:LX,target:o3}),ie({clock:fX,target:HX}),ie({clock:pX,source:is,filter:t=>!!t.tokenConnection,fn:(t,e)=>({uuid:e.uuid,amount:e.amount,token:t.tokenConnection,userCurrency:e.userCurrency}),target:zb}),ie({clock:zb.failData,fn:t=>{var o,s;const e=t==null?void 0:t.response,n=(o=e==null?void 0:e.data)==null?void 0:o.status;return(typeof n=="string"&&n.startsWith("tribes.errors.")?n:void 0)||((s=e==null?void 0:e.data)==null?void 0:s.message)||(t==null?void 0:t.message)||"Unknown error"},target:Yb}),ie({clock:Yb,filter:t=>t!==null,target:q2}),ie({clock:q2.doneData,target:Yb}),ie({clock:mX,target:Z2}),ie({clock:[zb.done,Z2.done],fn:()=>{},target:wX}),ie({clock:Yr,filter:t=>t.type==="UPDATE",fn:t=>{const e=is.getState(),n=t==null?void 0:t.sessions.find(a=>a.uuid===e.uuid);return n?{...e,...n}:e},target:is}
61),ie({clock:gX,target:jb,fn:()=>({...jb.getState(),game:""})}),ie({clock:yX,source:pa,fn:t=>({uuid:t}),target:sp}),ie({clock:bX,source:pa,fn:t=>({uuid:t}),target:lp}),ie({clock:[sp.doneData,lp.doneData],source:is,target:is,fn:(t,e)=>({...t,subscribed:e.isFollowing})}),ie({clock:[sp.doneData,lp.doneData],source:Hb,target:Hb,fn:(t,e)=>({...t,subscribersCount:e.followersCount,isFollowing:e.isFollowing})}),ie({clock:vX,target:tJ}),ie({clock:_X,source:rR,fn:t=>!t,target:rR}),ie({clock:RX,target:K2}),ie({clock:CX,target:X2}),ie({clock:AX,target:X2}),ie({clock:xX,target:VX}),ie({clock:OX,target:YX}),ie({clock:IX,target:qX}),ie({clock:Fp,filter:t=>t.type==="webcam",fn:t=>t.haveVideo,target:w0}),ie({clock:pa.updates,fn:()=>!0,target:w0}),ie({clock:Fp,filter:t=>t.type==="webcam",fn:t=>t.haveAudio,target:nJ}),ie({clock:EX,target:oR}),ie({clock:TX,target:sR}),ie({source:{isMuted:sR,volume:oR},fn:({isMuted:t,volume:e})=>({type:"frame",volume:t===!0?0:e}),target:J2}),ie({clock:SX,target:aR}),ie({clock:kX,target:iR}),ie({source:{isMuted:iR,volume:aR},fn:({isMuted:t,volume:e})=>({type:"webcam",volume:t===!0?0:e}),target:J2})},ke=dm("room-streamer");let nd=[];const aJ=async()=>{if(!nd.length){try{await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch{try{await navigator.mediaDevices.getUserMedia({audio:!0})}catch{console.warn("Audio permission denied")}try{await navigator.mediaDevices.getUserMedia({video:!0})}catch{console.warn("Video permission denied")}}try{nd=await navigator.mediaDevices.enumerateDevices()}catch(t){console.error("Failed to enumerate devices:",t),nd=[]}}},iJ=()=>nd.filter(t=>t.kind==="audioinput"),oJ=()=>nd.filter(t=>t.kind==="videoinput"),sJ=()=>{const t="RestrictionTarget"in self&&"fromElement"in RestrictionTarget,e="CropTarget"in self&&"fromElement"in CropTarget;return t||e};let Au=null;const lJ=async t=>{Au&&(Au.getTracks().forEach(d=>d.stop()),Au=null);const e=await navigator.mediaDevices.getDisplayMedia({preferCurrentTab:!0,video:{width:{ideal:1920,max:1920},height:{ideal:1080,max:1080},frameRate:{ideal:30,max:30}},audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),n=new MediaStream;let a=null;if("CropTarget"in self&&"fromElement"in CropTarget){a=await CropTarget.fromElement(t);for(const d of e.getTracks())a&&d instanceof BrowserCaptureMediaStreamTrack&&await d.cropTo(a),n.addTrack(d)}if(!a&&"RestrictionTarget"in self&&"fromElement"in RestrictionTarget){a=await RestrictionTarget.fromElement(t);for(const d of e.getTracks())a&&d instanceof BrowserCaptureMediaStreamTrack&&await d.restrictTo(a),n.addTrack(d)}const o=document.createElement("canvas");o.style.position="absolute",o.style.top="-20000px",o.style.left="-20000px",document.body.appendChild(o);const s=o.getContext("2d"),u=document.createElement("video");u.srcObject=n,u.controls=!1,u.muted=!0,u.onloadedmetadata=()=>{o.width=u.videoWidth,o.height=u.videoHeight;const d=()=>{s.drawImage(u,0,0,o.width,o.height),requestAnimationFrame(d)};d()},u.play();const c=o.captureStream(30),p=n.getAudioTracks();return Au=new MediaStream([...c.getTracks(),...p]),Au};var cJ=Object.defineProperty,uJ=Object.defineProperties,dJ=Object.getOwnPropertyDescriptors,jp=Object.getOwnPropertySymbols,l3=Object.prototype.hasOwnProperty,c3=Object.prototype.propertyIsEnumerable,lR=(t,e,n)=>e in t?cJ(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Je=(t,e)=>{for(var n in e||(e={}))l3.call(e,n)&&lR(t,n,e[n]);if(jp)for(var n of jp(e))c3.call(e,n)&&lR(t,n,e[n]);return t},or=(t,e)=>uJ(t,dJ(e)),Pl=(t,e)=>{var n={};for(var a in t)l3.call(t,a)&&e.indexOf(a)<0&&(n[a]=t[a]);if(t!=null&&jp)for(var a of jp(t))e.indexOf(a)<0&&c3.call(t,a)&&(n[a]=t[a]);return n},Gp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof Ts<"u"?Ts:typeof self<"u"?self:{};function Cc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var u3={exports:{}};/*! 62 * js-logger - http://github.com/jonnyreeves/js-logger 63 * Jonny Reeves, http://jonnyreeves.co.uk/ 64 * js-logger may be freely distributed under the MIT license. 65 */(function(t){(function(e){var n={};n.VERSION="1.6.1";var a,o={},s=function(m,f){return function(){return f.apply(m,arguments)}},u=function(){var m=arguments,f=m[0],b,v;for(v=1;v<m.length;v++)for(b in m[v])!(b in f)&&m[v].hasOwnProperty(b)&&(f[b]=m[v][b]);return f},c=function(m,f){return{value:m,name:f}};n.TRACE=c(1,"TRACE"),n.DEBUG=c(2,"DEBUG"),n.INFO=c(3,"INFO"),n.TIME=c(4,"TIME"),n.WARN=c(5,"WARN"),n.ERROR=c(8,"ERROR"),n.OFF=c(99,"OFF");var p=function(m){this.context=m,this.setLevel(m.filterLevel),this.log=this.info};p.prototype={setLevel:function(m){m&&"value"in m&&(this.context.filterLevel=m)},getLevel:function(){return this.context.filterLevel},enabledFor:function(m){var f=this.context.filterLevel;return m.value>=f.value},trace:function(){this.invoke(n.TRACE,arguments)},debug:function(){this.invoke(n.DEBUG,arguments)},info:function(){this.invoke(n.INFO,arguments)},warn:function(){this.invoke(n.WARN,arguments)},error:function(){this.invoke(n.ERROR,arguments)},time:function(m){typeof m=="string"&&m.length>0&&this.invoke(n.TIME,[m,"start"])},timeEnd:function(m){typeof m=="string"&&m.length>0&&this.invoke(n.TIME,[m,"end"])},invoke:function(m,f){a&&this.enabledFor(m)&&a(f,u({level:m},this.context))}};var d=new p({filterLevel:n.OFF});(function(){var m=n;m.enabledFor=s(d,d.enabledFor),m.trace=s(d,d.trace),m.debug=s(d,d.debug),m.time=s(d,d.time),m.timeEnd=s(d,d.timeEnd),m.info=s(d,d.info),m.warn=s(d,d.warn),m.error=s(d,d.error),m.log=m.info})(),n.setHandler=function(m){a=m},n.setLevel=function(m){d.setLevel(m);for(var f in o)o.hasOwnProperty(f)&&o[f].setLevel(m)},n.getLevel=function(){return d.getLevel()},n.get=function(m){return o[m]||(o[m]=new p(u({name:m},d.context)))},n.createDefaultHandler=function(m){m=m||{},m.formatter=m.formatter||function(v,y){y.name&&v.unshift("["+y.name+"]")};var f={},b=function(v,y){Function.prototype.apply.call(v,console,y)};return typeof console>"u"?function(){}:function(v,y){v=Array.prototype.slice.call(v);var g=console.log,S;y.level===n.TIME?(S=(y.name?"["+y.name+"] ":"")+v[0],v[1]==="start"?console.time?console.time(S):f[S]=new Date().getTime():console.timeEnd?console.timeEnd(S):b(g,[S+": "+(new Date().getTime()-f[S])+"ms"])):(y.level===n.WARN&&console.warn?g=console.warn:y.level===n.ERROR&&console.error?g=console.error:y.level===n.INFO&&console.info?g=console.info:y.level===n.DEBUG&&console.debug?g=console.debug:y.level===n.TRACE&&console.trace&&(g=console.trace),m.formatter(v,y),b(g,v))}}
65,n.useDefaults=function(m){n.setLevel(m&&m.defaultLevel||n.DEBUG),n.setHandler(n.createDefaultHandler(m))},n.setDefaults=n.useDefaults,t.exports?t.exports=n:(n._prevLogger=e.Logger,n.noConflict=function(){return e.Logger=n._prevLogger,n},e.Logger=n)})(Gp)})(u3);var hJ=u3.exports;const As=Cc(hJ),d3="0.3.2",Rf=60;var cR;const fJ=((cR=window==null?void 0:window.navigator)==null?void 0:cR.userAgent)||"No user agent available";let Cf="",Af="",xf="",xu="",Ou="",uR="",Of="",If=0;const Df=[];function pJ(t){function e(n,a){return{ts:Math.round(a.timestamp)||"",ot:n==="audio"?"a":"v",bl:a.jitterBufferDelay||0,br:Math.round(a.bitrateBitsPerSecond||0),pld:a.packetsLostDeltaPerSecond||0,j:a.jitter||0,mtp:a.packetRate||0,mid:a.mid||"",mimeType:a.mimeType||""}}return t.stats=t.stats.reduce((n,a)=>{const o=a.audio.inbounds.length!==0?a.audio.inbounds.map(u=>e("audio",u)):a.audio.outbounds.map(u=>e("audio",u)),s=a.video.inbounds.length!==0?a.video.inbounds.map(u=>e("video",u)):a.video.outbounds.map(u=>e("video",u));return n.concat([...o,...s])},[]),t}const ir={initAccountId:t=>{Cf=Cf===""?t:Cf},initStreamName:t=>{Af=Af===""?t:Af},initSubscriberId:t=>{xf=xf===""?t:xf},initStreamViewId:t=>{xu=xu===""?t:xu},initFeedId:t=>{Ou=Ou===""?t:Ou},setConnectionTime:t=>{If=If===0?t:If},setConnectionState:t=>{uR=t},setClusterId:t=>{Of=Of===""?t:Of},addStats:t=>{Df.length===Rf&&Df.shift(),Df.push(t)},get:(t=Rf,e="JSON")=>{let n;!Number.isInteger(t)||t>Rf||t<=0?n=Rf:n=t;const a={client:"@millicast/millicast-sdk",version:d3,timestamp:new Date().toISOString(),userAgent:fJ,clusterId:Of,accountId:Cf,streamName:Af,subscriberId:xf,connection:uR,stats:Df.slice(-n),connectionDurationMs:new Date().getTime()-If};return Ou!==""?a.feedId=Ou:xu!==""&&(a.streamViewId=xu),e==="CMCD"?pJ(a):a}};As.useDefaults({defaultLevel:As.TRACE});const Lf=["TRACE","DEBUG","INFO","WARN","ERROR"],h3=(t,e)=>{t.unshift("[".concat(e.name||"Global","] ").concat(new Date().toISOString()," - ").concat(e.level.name," -"))},f3=(t,e)=>e?t.value>=os[e].value:t.value>=cp.value,mJ=(t,e)=>{t=Array.prototype.slice.call(t),t=t.map(n=>typeof n=="object"?JSON.stringify(n):n),h3(t,e),rd!==0?(Wl.push(t.join(" ")),Wl.length>=rd&&(Wl=Wl.slice(-rd))):Wl=[]},gJ=As.createDefaultHandler({formatter:h3});As.setHandler((t,e)=>{mJ(t,e),f3(e.level,e.name)&&gJ(t,e);for(const{handler:n,level:a}of p3)e.level.value>=a.value&&n(t,e)});const yJ=1e4;let rd=yJ,Wl=[],cp=As.OFF;const os={},p3=[],Ni=or(Je({},As),{enabledFor:f3,getHistory:()=>Wl,getHistoryMaxSize:()=>rd,setHistoryMaxSize:t=>{rd=t},setLevel:t=>{cp=t;for(const e in os)os[e]=t},getLevel:()=>cp,get:t=>{os[t]||(os[t]=cp);const e=As.get(t);return e.setLevel=n=>{os[t]=n},e.getLevel=()=>os[t],e},setHandler:(t,e)=>{p3.push({handler:t,level:e})},diagnose:(t={})=>{let e;const n={statsCount:60,historySize:1e3,minLogLevel:"TRACE",statsFormat:"JSON"};typeof t=="number"?(n.statsCount=t,e=n):e=Je(Je({},n),t);const{statsCount:a,historySize:o,minLogLevel:s,statsFormat:u}=e,c=ir.get(a,u),p=Ni.getHistory();if(!Number.isInteger(o)||o<=0)throw new Error("Invalid Argument Exception : historySize must be a positive integer.");if(!Lf.includes(s.toUpperCase()))throw new Error('Invalid Argument Exception : the minLogLevel parameter only excepts "trace", "debug", "info", "warn", and "error" as arguments.');if(Lf.includes(s.toUpperCase())){const d=Lf.slice(Lf.indexOf(s.toUpperCase())),m=p.filter(f=>d.some(b=>f.includes(b)));c.history=m.slice(-o)}return c},JSON:"JSON",CMCD:"CMCD",VERSION:d3});var Uw={exports:{}},Jl=typeof Reflect=="object"?Reflect:null,dR=Jl&&typeof Jl.apply=="function"?Jl.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},up;Jl&&typeof Jl.ownKeys=="function"?up=Jl.ownKeys:Object.getOwnPropertySymbols?up=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:up=function(t){return Object.getOwnPropertyNames(t)};function bJ(t){console&&console.warn&&console.warn(t)}var m3=Number.isNaN||function(t){return t!==t};function kt(){kt.init.call(this)}Uw.exports=kt;Uw.exports.once=SJ;kt.EventEmitter=kt;kt.prototype._events=void 0;kt.prototype._eventsCount=0;kt.prototype._maxListeners=void 0;var hR=10;function Dm(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(kt,"defaultMaxListeners",{enumerable:!0,get:function(){return hR},set:function(t){if(typeof t!="number"||t<0||m3(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");hR=t}});kt.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};kt.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||m3(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function g3(t){return t._maxListeners===void 0?kt.defaultMaxListeners:t._maxListeners}kt.prototype.getMaxListeners=function(){return g3(this)};kt.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var a=t==="error",o=this._events;if(o!==void 0)a=a&&o.error===void 0;else if(!a)return!1;if(a){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var u=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw u.context=s,u}var c=o[t];if(c===void 0)return!1;if(typeof c=="function")dR(c,this,e);else for(var p=c.length,d=_3(c,p),n=0;n<p;++n)dR(d[n],this,e);return!0};function y3(t,e,n,a){var o,s,u;if(Dm(n),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),s=t._events),u=s[e]),u===void 0)u=s[e]=n,++t._eventsCount;else if(typeof u=="function"?u=s[e]=a?[n,u]:[u,n]:a?u.unshift(n):u.push(n),o=g3(t),o>0&&u.length>
vendor: 4,595 bytes, line 65
65o&&!u.warned){u.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+u.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=u.length,bJ(c)}return t}kt.prototype.addListener=function(t,e){return y3(this,t,e,!1)};kt.prototype.on=kt.prototype.addListener;kt.prototype.prependListener=function(t,e){return y3(this,t,e,!0)};function vJ(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function b3(t,e,n){var a={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},o=vJ.bind(a);return o.listener=n,a.wrapFn=o,o}kt.prototype.once=function(t,e){return Dm(e),this.on(t,b3(this,t,e)),this};kt.prototype.prependOnceListener=function(t,e){return Dm(e),this.prependListener(t,b3(this,t,e)),this};kt.prototype.removeListener=function(t,e){var n,a,o,s,u;if(Dm(e),a=this._events,a===void 0)return this;if(n=a[t],n===void 0)return this;if(n===e||n.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete a[t],a.removeListener&&this.emit("removeListener",t,n.listener||e));else if(typeof n!="function"){for(o=-1,s=n.length-1;s>=0;s--)if(n[s]===e||n[s].listener===e){u=n[s].listener,o=s;break}if(o<0)return this;o===0?n.shift():wJ(n,o),n.length===1&&(a[t]=n[0]),a.removeListener!==void 0&&this.emit("removeListener",t,u||e)}return this};kt.prototype.off=kt.prototype.removeListener;kt.prototype.removeAllListeners=function(t){var e,n,a;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var o=Object.keys(n),s;for(a=0;a<o.length;++a)s=o[a],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=n[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(a=e.length-1;a>=0;a--)this.removeListener(t,e[a]);return this};function v3(t,e,n){var a=t._events;if(a===void 0)return[];var o=a[e];return o===void 0?[]:typeof o=="function"?n?[o.listener||o]:[o]:n?_J(o):_3(o,o.length)}kt.prototype.listeners=function(t){return v3(this,t,!0)};kt.prototype.rawListeners=function(t){return v3(this,t,!1)};kt.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):w3.call(t,e)};kt.prototype.listenerCount=w3;function w3(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}kt.prototype.eventNames=function(){return this._eventsCount>0?up(this._events):[]};function _3(t,e){for(var n=new Array(e),a=0;a<e;++a)n[a]=t[a];return n}function wJ(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function _J(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function SJ(t,e){return new Promise(function(n,a){function o(u){t.removeListener(e,s),a(u)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",o),n([].slice.call(arguments))}S3(t,e,s,{once:!0}),e!=="error"&&kJ(t,o,{once:!0})})}function kJ(t,e,n){typeof t.on=="function"&&S3(t,"error",e,n)}function S3(t,e,n,a){if(typeof t.on=="function")a.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function o(s){a.once&&t.removeEventListener(e,o),n(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var Fw=Uw.exports;const Lm=Cc(Fw);var $w={exports:{}};$w.exports=k3;$w.exports.filter=TJ;var EJ=Fw.EventEmitter;function k3(t,e,n){Array.isArray(n)||(n=[n]);var a=[];return n.forEach(function(o){var s=function(){var u=[].slice.call(arguments);u.unshift(o),e.emit.apply(e,u)};a.push(s),t.on(o,s)}),function(){n.forEach(function(o,s){t.removeListener(o,a[s])})}}function TJ(t,e){var n=new EJ;return k3(t,n,e),n}var RJ=$w.exports;const Hp=Cc(RJ);var E3={exports:{}};/*! For license information please see webrtc-stats.js.LICENSE.txt */(function(t,e){(function(n,a){t.exports=a()})(self,()=>{return n={7:o=>{var s,u=typeof Reflect=="object"?Reflect:null,c=u&&typeof u.apply=="function"?u.apply:function(R,I,M){return Function.prototype.apply.call(R,I,M)};s=u&&typeof u.ownKeys=="function"?u.ownKeys:Object.getOwnPropertySymbols?function(R){return Object.getOwnPropertyNames(R).concat(Object.getOwnPropertySymbols(R)
vendor: 4,150 bytes, line 65
65)}:function(R){return Object.getOwnPropertyNames(R)};var p=Number.isNaN||function(R){return R!=R};function d(){d.init.call(this)}o.exports=d,o.exports.once=function(R,I){return new Promise(function(M,L){function O(F){R.removeListener(I,W),L(F)}function W(){typeof R.removeListener=="function"&&R.removeListener("error",O),M([].slice.call(arguments))}T(R,I,W,{once:!0}),I!=="error"&&function(F,G,ee){typeof F.on=="function"&&T(F,"error",G,{once:!0})}(R,O)})},d.EventEmitter=d,d.prototype._events=void 0,d.prototype._eventsCount=0,d.prototype._maxListeners=void 0;var m=10;function f(R){if(typeof R!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof R)}function b(R){return R._maxListeners===void 0?d.defaultMaxListeners:R._maxListeners}function v(R,I,M,L){var O,W,F,G;if(f(M),(W=R._events)===void 0?(W=R._events=Object.create(null),R._eventsCount=0):(W.newListener!==void 0&&(R.emit("newListener",I,M.listener?M.listener:M),W=R._events),F=W[I]),F===void 0)F=W[I]=M,++R._eventsCount;else if(typeof F=="function"?F=W[I]=L?[M,F]:[F,M]:L?F.unshift(M):F.push(M),(O=b(R))>0&&F.length>O&&!F.warned){F.warned=!0;var ee=new Error("Possible EventEmitter memory leak detected. "+F.length+" "+String(I)+" listeners added. Use emitter.setMaxListeners() to increase limit");ee.name="MaxListenersExceededWarning",ee.emitter=R,ee.type=I,ee.count=F.length,G=ee,console&&console.warn&&console.warn(G)}return R}function y(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function g(R,I,M){var L={fired:!1,wrapFn:void 0,target:R,type:I,listener:M},O=y.bind(L);return O.listener=M,L.wrapFn=O,O}function S(R,I,M){var L=R._events;if(L===void 0)return[];var O=L[I];return O===void 0?[]:typeof O=="function"?M?[O.listener||O]:[O]:M?function(W){for(var F=new Array(W.length),G=0;G<F.length;++G)F[G]=W[G].listener||W[G];return F}(O):k(O,O.length)}function w(R){var I=this._events;if(I!==void 0){var M=I[R];if(typeof M=="function")return 1;if(M!==void 0)return M.length}return 0}function k(R,I){for(var M=new Array(I),L=0;L<I;++L)M[L]=R[L];return M}function T(R,I,M,L){if(typeof R.on=="function")L.once?R.once(I,M):R.on(I,M);else{if(typeof R.addEventListener!="function")throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof R);R.addEventListener(I,function O(W){L.once&&R.removeEventListener(I,O),M(W)})}}Object.defineProperty(d,"defaultMaxListeners",{enumerable:!0,get:function(){return m},set:function(R){if(typeof R!="number"||R<0||p(R))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+R+".");m=R}}),d.init=function(){this._events!==void 0&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},d.prototype.setMaxListeners=function(R){if(typeof R!="number"||R<0||p(R))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+R+".");return this._maxListeners=R,this},d.prototype.getMaxListeners=function(){return b(this)},d.prototype.emit=function(R){for(var I=[],M=1;M<arguments.length;M++)I.push(arguments[M]);var L=R==="error",O=this._events;if(O!==void 0)L=L&&O.error===void 0;else if(!L)return!1;if(L){var W;if(I.length>0&&(W=I[0]),W instanceof Error)throw W;var F=new Error("Unhandled error."+(W?" ("+W.message+")":""));throw F.context=W,F}var G=O[R];if(G===void 0)return!1;if(typeof G=="function")c(G,this,I);else{var ee=G.length,de=k(G,ee);for(M=0;M<ee;++M)c(de[M],this,I)}return!0},d.prototype.addListener=function(R,I){return v(this,R,I,!1)},d.prototype.on=d.prototype.addListener,d.prototype.prependListener=function(R,I){return v(this,R,I,!0)},d.prototype.once=function(R,I){return f(I),this.on(R,g(this,R,I)),this},d.prototype.prependOnceListener=function(R,I){return f(I),this.prependListener(R,g(this,R,I)),this},d.prototype.removeListener=function(R,I){var M,L,O,W,F;if(f(I),(L=this._events)===void 0)return this;
65if((M=L[R])===void 0)return this;if(M===I||M.listener===I)--this._eventsCount==0?this._events=Object.create(null):(delete L[R],L.removeListener&&this.emit("removeListener",R,M.listener||I));else if(typeof M!="function"){for(O=-1,W=M.length-1;W>=0;W--)if(M[W]===I||M[W].listener===I){F=M[W].listener,O=W;break}if(O<0)return this;O===0?M.shift():function(G,ee){for(;ee+1<G.length;ee++)G[ee]=G[ee+1];G.pop()}(M,O),M.length===1&&(L[R]=M[0]),L.removeListener!==void 0&&this.emit("removeListener",R,F||I)}return this},d.prototype.off=d.prototype.removeListener,d.prototype.removeAllListeners=function(R){var I,M,L;if((M=this._events)===void 0)return this;if(M.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):M[R]!==void 0&&(--this._eventsCount==0?this._events=Object.create(null):delete M[R]),this;if(arguments.length===0){var O,W=Object.keys(M);for(L=0;L<W.length;++L)(O=W[L])!=="removeListener"&&this.removeAllListeners(O);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(typeof(I=M[R])=="function")this.removeListener(R,I);else if(I!==void 0)for(L=I.length-1;L>=0;L--)this.removeListener(R,I[L]);return this},d.prototype.listeners=function(R){return S(this,R,!0)},d.prototype.rawListeners=function(R){return S(this,R,!1)},d.listenerCount=function(R,I){return typeof R.listenerCount=="function"?R.listenerCount(I):w.call(R,I)},d.prototype.listenerCount=w,d.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]}},586:function(o,s,u){var c,p;(function(d){var m,f={VERSION:"1.6.1"},b={},v=function(T,R){return function(){return R.apply(T,arguments)}},y=function(){var T,R,I=arguments,M=I[0];for(R=1;R<I.length;R++)for(T in I[R])!(T in M)&&I[R].hasOwnProperty(T)&&(M[T]=I[R][T]);return M},g=function(T,R){return{value:T,name:R}};f.TRACE=g(1,"TRACE"),f.DEBUG=g(2,"DEBUG"),f.INFO=g(3,"INFO"),f.TIME=g(4,"TIME"),f.WARN=g(5,"WARN"),f.ERROR=g(8,"ERROR"),f.OFF=g(99,"OFF");var S=function(T){this.context=T,this.setLevel(T.filterLevel),this.log=this.info};S.prototype={setLevel:function(T){T&&"value"in T&&(this.context.filterLevel=T)},getLevel:function(){return this.context.filterLevel},enabledFor:function(T){var R=this.context.filterLevel;return T.value>=R.value},trace:function(){this.invoke(f.TRACE,arguments)},debug:function(){this.invoke(f.DEBUG,arguments)},info:function(){this.invoke(f.INFO,arguments)},warn:function(){this.invoke(f.WARN,arguments)},error:function(){this.invoke(f.ERROR,arguments)},time:function(T){typeof T=="string"&&T.length>0&&this.invoke(f.TIME,[T,"start"])},timeEnd:function(T){typeof T=="string"&&T.length>0&&this.invoke(f.TIME,[T,"end"])},invoke:function(T,R){m&&this.enabledFor(T)&&m(R,y({level:T},this.context))}};var w,k=new S({filterLevel:f.OFF});(w=f).enabledFor=v(k,k.enabledFor),w.trace=v(k,k.trace),w.debug=v(k,k.debug),w.time=v(k,k.time),w.timeEnd=v(k,k.timeEnd),w.info=v(k,k.info),w.warn=v(k,k.warn),w.error=v(k,k.error),w.log=w.info,f.setHandler=function(T){m=T},f.setLevel=function(T){for(var R in k.setLevel(T),b)b.hasOwnProperty(R)&&b[R].setLevel(T)},f.getLevel=function(){return k.getLevel()},f.get=function(T){return b[T]||(b[T]=new S(y({name:T},k.context)))},f.createDefaultHandler=function(T){(T=T||{}).formatter=T.formatter||function(M,L){L.name&&M.unshift("["+L.name+"]")};var R={},I=function(M,L){Function.prototype.apply.call(M,console,L)};return typeof console>"u"?function(){}:function(M,L){M=Array.prototype.slice.call(M);var O,W=console.log;L.level===f.TIME?(O=(L.name?"["+L.name+"] ":"")+M[0],M[1]==="start"?console.time?console.time(O):R[O]=new Date().getTime():console.timeEnd?console.timeEnd(O):I(W,[O+": "+(new Date().getTime()-R[O])+"ms"])):(L.level===f.WARN&&console.warn?W=console.warn:L.level===f.ERROR&&console.error?W=console.error:L.level===f.INFO&&console.info?W=console.info:L.level===f.DEBUG&&console.debug?W=console.debug:L.level===f.TRACE&&console.trace&&(W=console.trace),T.formatter(M,L),I(W,M))}},f.useDefaults=function(T){f.setLevel(T&&T.defaultLevel||f.DEBUG),f.setHandler(f.createDefaultHandler(T))},f.setDefaults=f.useDefaults,(p=typeof(c=f)=="function"?c.call(s,u,s,o):c)===void 0||(o.exports=p)})()},156:function(o,s,u){var c=this&&this.__createBinding||(Object.create?function(f,b,v,y){y===void 0&&(y=v);var g=Object.getOwnPropertyDescriptor(b,v);
65g&&!("get"in g?!b.__esModule:g.writable||g.configurable)||(g={enumerable:!0,get:function(){return b[v]}}),Object.defineProperty(f,y,g)}:function(f,b,v,y){y===void 0&&(y=v),f[y]=b[v]}),p=this&&this.__exportStar||function(f,b){for(var v in f)v==="default"||Object.prototype.hasOwnProperty.call(b,v)||c(b,f,v)},d=this&&this.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(s,"__esModule",{value:!0}),s.Logger=void 0;var m=u(586);Object.defineProperty(s,"Logger",{enumerable:!0,get:function(){return d(m).default}}),p(u(284),s),p(u(280),s),p(u(738),s),p(u(767),s)},738:(o,s)=>{var u;Object.defineProperty(s,"__esModule",{value:!0}),s.QualityLimitationReason=void 0,function(c){c[c.none=0]="none",c[c.cpu=1]="cpu",c[c.bandwidth=2]="bandwidth",c[c.other=3]="other"}(u||(s.QualityLimitationReason=u={}))},280:(o,s)=>{Object.defineProperty(s,"__esModule",{value:!0})},767:(o,s)=>{Object.defineProperty(s,"__esModule",{value:!0})},185:(o,s)=>{Object.defineProperty(s,"__esModule",{value:!0}),s.calculatePacketsLostRatio=s.calculateRate=s.getMediaKind=void 0,s.getMediaKind=u=>{let c=u.kind||u.mediaType;return["audio","video"].includes(c)||u.type!=="inbound-rtp"||(c=u.id.toLocaleLowerCase().includes("video")?"video":"audio"),c},s.calculateRate=(u,c,p,d)=>p&&d?(c-d)/((u-p)/1e3):0,s.calculatePacketsLostRatio=(u,c,p,d)=>c==0?0:(u-(p??0))/(c-(d??0))},284:function(o,s,u){var c,p,d,m,f,b,v,y,g,S,w,k,T,R,I,M,L=this&&this.__awaiter||function(Y,q,re,be){return new(re||(re=Promise))(function(se,j){function X(we){try{pe(be.next(we))}catch(xe){j(xe)}}function fe(we){try{pe(be.throw(we))}catch(xe){j(xe)}}function pe(we){var xe;we.done?se(we.value):(xe=we.value,xe instanceof re?xe:new re(function(Me){Me(xe)})).then(X,fe)}pe((be=be.apply(Y,q||[])).next())})},O=this&&this.__classPrivateFieldSet||function(Y,q,re,be,se){if(be==="m")throw new TypeError("Private method is not writable");if(be==="a"&&!se)throw new TypeError("Private accessor was defined without a setter");if(typeof q=="function"?Y!==q||!se:!q.has(Y))throw new TypeError("Cannot write private member to an object whose class did not declare it");return be==="a"?se.call(Y,re):se?se.value=re:q.set(Y,re),re},W=this&&this.__classPrivateFieldGet||function(Y,q,re,be){if(re==="a"&&!be)throw new TypeError("Private accessor was defined without a getter");if(typeof q=="function"?Y!==q||!be:!q.has(Y))throw new TypeError("Cannot read private member from an object whose class did not declare it");return re==="m"?be:re==="a"?be.call(Y):be?be.value:q.get(Y)},F=this&&this.__importDefault||function(Y){return Y&&Y.__esModule?Y:{default:Y}};Object.defineProperty(s,"__esModule",{value:!0}),s.WebRTCStats=void 0;const G=u(7),ee=F(u(586)),de=u(738),ye=u(185);class _e extends G.EventEmitter{constructor(q){super(),c.add(this),p.set(this,void 0),d.set(this,void 0),m.set(this,void 0),f.set(this,null),b.set(this,void 0),v.set(this,null),this.start=()=>{W(this,b,"f").info("WebRTC statistics collection is starting..."),O(this,v,null,"f"),O(this,f,setInterval(W(this,y,"f"),W(this,d,"f")),"f")},this.stop=()=>{W(this,f,"f")&&(clearInterval(W(this,f,"f")),O(this,f,null,"f"),W(this,b,"f").info("WebRTC statistics collection has stopped."))},y.set(this,()=>L(this,void 0,void 0,function*(){let re,be;try{W(this,b,"f").trace("Requesting WebRTC statistics..."),re=yield W(this,p,"f").call(this),be=new Date().toISOString()}catch(X){return W(this,b,"f").error("Problem collecting the WebRTC statistics.",X),void this.emit("error","Problem collecting the WebRTC statistics - ".concat(X))}const se=Array.from(re.values()),j={timestamp:be,input:{audio:[],video:[]},output:{audio:[],video:[]}};W(this,m,"f")&&(j.rawStats=re);for(let X=0;X<Object.keys(se).length;X++){const fe=se[X];switch(fe.type){case"outbound-rtp":const pe=fe,we=(0,ye.getMediaKind)(pe);we==="audio"?yield W(this,c,"m",w).call(this,re,pe,j):we==="video"&&(yield W(this,c,"m",k).call(this,re,pe,j));break;case"inbound-rtp":const xe=fe;let Me=(0,ye.getMediaKind)(xe);Me==="audio"?yield W(this,c,"m",R).call(this,re,xe,j):Me==="video"&&(yield W(this,c,"m",I).call(this,re,xe,j));break;case"candidate-pair":const it=fe;it.nominated&&W(this,c,"m",M).call(this,it,j)}}
65O(this,v,j,"f"),this.emit("stats",j)})),O(this,b,ee.default.get("WebRTCStats"),"f"),O(this,p,q.getStats,"f"),O(this,d,q.getStatsInterval||1e3,"f"),O(this,m,!!q.includeRawStats,"f")}}s.WebRTCStats=_e,p=new WeakMap,d=new WeakMap,m=new WeakMap,f=new WeakMap,b=new WeakMap,v=new WeakMap,y=new WeakMap,c=new WeakSet,g=function(Y,q){if(q){const re=Y.get(q);if(re)return{mimeType:re.mimeType}}return{}},S=function(Y,q,re){return L(this,void 0,void 0,function*(){var be,se,j,X;const fe=(0,ye.calculateRate)(q.timestamp,q.bytesSent,re==null?void 0:re.timestamp,re==null?void 0:re.totalBytesSent),pe=(0,ye.calculateRate)(q.timestamp,q.packetsSent,re==null?void 0:re.timestamp,re==null?void 0:re.totalPacketsSent),we=W(this,c,"m",g).call(this,Y,q.codecId);return Object.assign({id:q.id,timestamp:q.timestamp,mid:q.mid,totalBytesSent:q.bytesSent,bytesSentDelta:q.bytesSent-((be=re==null?void 0:re.totalBytesSent)!==null&&be!==void 0?be:0),totalPacketsSent:q.packetsSent,packetsSentDelta:q.packetsSent-((se=re==null?void 0:re.totalPacketsSent)!==null&&se!==void 0?se:0),bitrate:fe,packetRate:pe,targetBitrate:q.targetBitrate,retransmittedPacketsSent:q.retransmittedPacketsSent,retransmittedPacketsSentDelta:q.retransmittedPacketsSent-((j=re==null?void 0:re.retransmittedPacketsSent)!==null&&j!==void 0?j:0),retransmittedBytesSent:q.retransmittedBytesSent,retransmittedBytesSentDelta:q.retransmittedBytesSent-((X=re==null?void 0:re.retransmittedBytesSent)!==null&&X!==void 0?X:0)},we)})},w=function(Y,q,re){return L(this,void 0,void 0,function*(){var be;const se=(be=W(this,v,"f"))===null||be===void 0?void 0:be.output.audio.find(fe=>fe.id===q.id);if(se&&q.timestamp-se.timestamp<=0)return;const j=yield W(this,c,"m",S).call(this,Y,q,se),X=Object.assign({},j);re.output.audio.push(X)})},k=function(Y,q,re){return L(this,void 0,void 0,function*(){var be;const se=(be=W(this,v,"f"))===null||be===void 0?void 0:be.output.video.find(pe=>pe.id===q.id);if(se&&q.timestamp-se.timestamp<=0)return;const j=yield W(this,c,"m",S).call(this,Y,q,se);let X=de.QualityLimitationReason.none;q.qualityLimitationReason&&(X=q.qualityLimitationReason);const fe=Object.assign(Object.assign({},j),{frameWidth:q.frameWidth,frameHeight:q.frameHeight,framesPerSecond:q.framesPerSecond,framesSent:q.framesSent,qualityLimitationReason:X,qualityLimitationDurations:q.qualityLimitationDurations});re.output.video.push(fe)})},T=function(Y,q,re){return L(this,void 0,void 0,function*(){var be,se;const j=(0,ye.calculateRate)(q.timestamp,q.bytesReceived,re==null?void 0:re.timestamp,re==null?void 0:re.totalBytesReceived),X=(0,ye.calculateRate)(q.timestamp,q.packetsReceived,re==null?void 0:re.timestamp,re==null?void 0:re.totalPacketsReceived),fe=(0,ye.calculatePacketsLostRatio)(q.packetsReceived,q.packetsLost,re==null?void 0:re.totalPacketsReceived,re==null?void 0:re.totalPacketsLost),pe=((be=q.packetsLost)!==null&&be!==void 0?be:0)-((se=re==null?void 0:re.totalPacketsLost)!==null&&se!==void 0?se:0),we=W(this,c,"m",g).call(this,Y,q.codecId);return Object.assign({id:q.id,timestamp:q.timestamp,mid:q.mid,trackIdentifier:q.trackIdentifier,jitter:q.jitter,jitterBufferDelay:q.jitterBufferDelay,jitterBufferEmittedCount:q.jitterBufferEmittedCount,totalBytesReceived:q.bytesReceived,totalPacketsReceived:q.packetsReceived,totalPacketsLost:q.packetsLost,bitrate:j,packetRate:X,packetLossRatio:fe,packetLossDelta:pe},we)})},R=function(Y,q,re){return L(this,void 0,void 0,function*(){var be;const se=(be=W(this,v,"f"))===null||be===void 0?void 0:be.input.audio.find(X=>X.id===q.id);if(se&&q.timestamp-se.timestamp<=0)return;const j=yield W(this,c,"m",T).call(this,Y,q,se);re.input.audio.push(j)})},I=function(Y,q,re){return L(this,void 0,void 0,function*(){var be;const se=(be=W(this,v,"f"))===null||be===void 0?void 0:be.input.video.find(fe=>fe.id===q.id);if(se&&q.timestamp-se.timestamp<=0)return;const j=yield W(this,c,"m",T).call(this,Y,q,se),X=Object.assign(Object.assign({},j),{keyFramesDecoded:q.keyFramesDecoded,frameHeight:q.frameHeight,frameWidth:q.frameWidth,framesDecoded:q.framesDecoded,framesDropped:q.framesDropped,framesPerSecond:q.framesPerSecond,framesReceived:q.framesReceived});re.input.video.push(X)})},M=function(Y,q){q.totalRoundTripTime=Y.totalRoundTripTime,q.currentRoundTripTime=Y.currentRoundTripTime,q.responsesReceived=Y.responsesReceived,q.availableOutgoingBitrate=Y.availableOutgoingBitrate,q.availableIncomingBitrate=Y.availableIncomingBitrate}}},a={},function o(s){var u=a[s];if(u!==void 0)return u.exports;
65var c=a[s]={exports:{}};return n[s].call(c.exports,c,c.exports,o),c.exports}(156);var n,a})})(E3);var CJ=E3.exports;const Iu=Ni.get("PeerConnectionStats"),T3={stats:"stats"},AJ=t=>{const e=t,{input:n,output:a,rawStats:o}=e,s=Pl(e,["input","output","rawStats"]);return or(Je({},s),{audio:{inbounds:t.input.audio.map(u=>{var c=u,{packetLossRatio:p,packetLossDelta:d,bitrate:m}=c,f=Pl(c,["packetLossRatio","packetLossDelta","bitrate"]);return Je({packetsLostRatioPerSecond:p,packetsLostDeltaPerSecond:d,bitrateBitsPerSecond:m*8,bitrate:m},f)}),outbounds:t.output.audio.map(u=>{var c=u,{packetLossRatio:p,packetLossDelta:d,bitrate:m}=c,f=Pl(c,["packetLossRatio","packetLossDelta","bitrate"]);return Je({packetsLostRatioPerSecond:p,packetsLostDeltaPerSecond:d,bitrateBitsPerSecond:m*8,bitrate:m},f)})},video:{inbounds:t.input.video.map(u=>{var c=u,{packetLossRatio:p,packetLossDelta:d,bitrate:m}=c,f=Pl(c,["packetLossRatio","packetLossDelta","bitrate"]);return Je({packetsLostRatioPerSecond:p,packetsLostDeltaPerSecond:d,bitrateBitsPerSecond:m*8,bitrate:m},f)}),outbounds:t.output.video.map(u=>{var c=u,{packetLossRatio:p,packetLossDelta:d,bitrate:m}=c,f=Pl(c,["packetLossRatio","packetLossDelta","bitrate"]);return Je({packetsLostRatioPerSecond:p,packetsLostDeltaPerSecond:d,bitrateBitsPerSecond:m*8,bitrate:m},f)})},raw:t.rawStats})};class xJ extends Lm{constructor(e,n={statsIntervalMs:1e3,autoInitStats:!0}){super(),this.peer=e,this.collection=null,this.initialized=!1,n.autoInitStats&&this.init(n.statsIntervalMs)}init(e){if(this.initialized){Iu.warn("PeerConnectionStats.init() has already been called. Automatic initialization occurs when the PeerConnectionStats object is constructed.");return}Iu.info("Initializing peer connection stats");const n=this.peer;try{this.collection=new CJ.WebRTCStats({getStatsInterval:e,getStats:()=>n.getStats(),includeRawStats:!0}),this.collection.on("stats",a=>{const o=AJ(a);ir.addStats(o),this.emit(T3.stats,o)}),this.collection.start(),this.initialized=!0}catch(a){Iu.error(a)}}parseStats(e){return Iu.warn("The parseStats method is deprecated and will be removed in future releases."),null}stop(){Iu.info("Stopping peer connection stats"),this.collection.stop()}}var fn={},Pi={},R3={},C3={exports:{}},fR=C3.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(t){return t.encoding?"rtpmap:%d %s/%s/%s":t.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(t){return t.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(t){return t.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(t){return"extmap:%d"+(t.direction?"/%s":"%v")+(t["encrypt-uri"]?" %s":"%v")+" %s"+(t.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(t){return t.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(t){var e="candidate:%s %d %s %d %s %d typ %s";return e+=t.raddr!=null?" raddr %s rport %d":"%v%v",e+=t.tcptype!=null?" tcptype %s":"%v",t.generation!=null&&(e+=" generation %d"),e+=t["network-id"]!=null?" network-id %d":"%v",e+=t["network-cost"]!=null?" network-cost %d":"%v",e}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(t){var e="ssrc:%d";return t.attribute!=null&&(e+=" %s",t.value!=null&&(e+=":%s")),e}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","max
65MessageSize"],format:function(t){return t.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(t){return t.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(t){return"imageattr:%s %s %s"+(t.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(t){return"simulcast:%s %s"+(t.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(t){return"ts-refclk:%s"+(t.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(t){var e="mediaclk:";return e+=t.id!=null?"id=%s %s":"%v%s",e+=t.mediaClockValue!=null?"=%s":"",e+=t.rateNumerator!=null?" rate=%s":"",e+=t.rateDenominator!=null?"/%s":"",e}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(fR).forEach(function(t){var e=fR[t];e.forEach(function(n){n.reg||(n.reg=/(.*)/),n.format||(n.format="%s")})});var A3=C3.exports;(function(t){var e=function(c){return String(Number(c))===c?Number(c):c},n=function(c,p,d,m){if(m&&!d)p[m]=e(c[1]);else for(var f=0;f<d.length;f+=1)c[f+1]!=null&&(p[d[f]]=e(c[f+1]))},a=function(c,p,d){var m=c.name&&c.names;c.push&&!p[c.push]?p[c.push]=[]:m&&!p[c.name]&&(p[c.name]={});var f=c.push?{}:m?p[c.name]:p;n(d.match(c.reg),f,c.names,c.name),c.push&&p[c.push].push(f)},o=A3,s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(c){var p={},d=[],m=p;return c.split(/(\r\n|\r|\n)/).filter(s).forEach(function(f){var b=f[0],v=f.slice(2);b==="m"&&(d.push({rtp:[],fmtp:[]}),m=d[d.length-1]);for(var y=0;y<(o[b]||[]).length;y+=1){var g=o[b][y];if(g.reg.test(v))return a(g,m,v)}}),p.media=d,p};var u=function(c,p){var d=p.split(/=(.+)/,2);return d.length===2?c[d[0]]=e(d[1]):d.length===1&&p.length>1&&(c[d[0]]=void 0),c};t.parseParams=function(c){return c.split(/;\s?/).reduce(u,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(c){return c.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(c){for(var p=[],d=c.split(" ").map(e),m=0;m<d.length;m+=3)p.push({component:d[m],ip:d[m+1],port:d[m+2]});return p},t.parseImageAttributes=function(c){return c.split(" ").map(function(p){return p.substring(1,p.length-1).split(",").reduce(u,{})})},t.parseSimulcastStreamList=function(c){return c.split(";").map(function(p){return p.split(",").map(function(d){var m,f=!1;return d[0]!=="~"?m=e(d):(m=e(d.substring(1,d.length)),f=!0),{scid:m,paused:f}})})}})(R3);var qb=A3,OJ=/%[sdv%]/g,IJ=function(t){var e=1,n=arguments,a=n.length;
vendor: 1,086 bytes, line 65
65return t.replace(OJ,function(o){if(e>=a)return o;var s=n[e];switch(e+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},Du=function(t,e,n){var a=e.format instanceof Function?e.format(e.push?n:n[e.name]):e.format,o=[t+"="+a];if(e.names)for(var s=0;s<e.names.length;s+=1){var u=e.names[s];e.name?o.push(n[e.name][u]):o.push(n[e.names[s]])}else o.push(n[e.name]);return IJ.apply(null,o)},DJ=["v","o","s","i","u","e","p","c","b","t","r","z","a"],LJ=["i","c","b","a"],NJ=function(t,e){e=e||{},t.version==null&&(t.version=0),t.name==null&&(t.name=" "),t.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var n=e.outerOrder||DJ,a=e.innerOrder||LJ,o=[];return n.forEach(function(s){qb[s].forEach(function(u){u.name in t&&t[u.name]!=null?o.push(Du(s,u,t)):u.push in t&&t[u.push]!=null&&t[u.push].forEach(function(c){o.push(Du(s,u,c))})})}),t.media.forEach(function(s){o.push(Du("m",qb.m[0],s)),a.forEach(function(u){qb[u].forEach(function(c){c.name in s&&s[c.name]!=null?o.push(Du(u,c,s)):c.push in s&&s[c.push]!=null&&s[c.push].forEac
65h(function(p){o.push(Du(u,c,p))})})})}),o.join(`\r 66`)+`\r 67`},Ws=R3,PJ=NJ;Pi.write=PJ;Pi.parse=Ws.parse;Pi.parseParams=Ws.parseParams;Pi.parseFmtpConfig=Ws.parseFmtpConfig;Pi.parsePayloads=Ws.parsePayloads;Pi.parseRemoteCandidates=Ws.parseRemoteCandidates;Pi.parseImageAttributes=Ws.parseImageAttributes;Pi.parseSimulcastStreamList=Ws.parseSimulcastStreamList;var WJ=function(t){const e=new Intl.Collator(t,{sensitivity:"base"});return(n,a)=>e.compare(n,a)==0};let wd=class x3{constructor(e,n,a,o,s,u,c,p,d){this.foundation=e,this.componentId=n,this.transport=a,this.priority=o,this.address=s,this.port=u,this.type=c,this.relAddr=p,this.relPort=d}equals(e){return e.foundation===this.foundation&&e.componentId===this.componentId&&e.transport===this.transport&&e.priority===this.priority&&e.address===this.address&&e.port===this.port&&e.type===this.type&&e.relAddr===this.relAddr&&e.relPort===this.relPort}clone(){return new x3(this.foundation,this.componentId,this.transport,this.priority,this.address,this.port,this.type,this.relAddr,this.relPort)}plain(){const e={foundation:this.foundation,componentId:this.componentId,transport:this.transport,priority:this.priority,address:this.address,port:this.port,type:this.type};return this.relAddr&&(e.relAddr=this.relAddr),this.relPort&&(e.relPort=this.relPort),e}getFoundation(){return this.foundation}getComponentId(){return this.componentId}getTransport(){return this.transport}getPriority(){return this.priority}getAddress(){return this.address}getPort(){return this.port}getType(){return this.type}getRelAddr(){return this.relAddr}getRelPort(){return this.relPort}};wd.expand=function(t){return t.constructor.name==="CandidateInfo"?t:(t=t,new wd(t.foundation,t.componentId,t.transport,t.priority,t.address,t.port,t.type,t.relAddr,t.relPort))};wd.clone=function(t){return t.constructor.name==="CandidateInfo"?t.clone():wd.expand(t)};var O3=wd;let _d=class I3{constructor(e,n){this.id=e,this.params=n||[]}clone(){return new I3(this.id,this.params)}plain(){return this.params.length?{id:this.id,params:this.params}:{id:this.id}}getId(){return this.id}getParams(){return this.params}};_d.expand=function(t){return t.constructor.name==="RTCPFeedbackInfo"?t:(t=t,new _d(t.id,t.params))};_d.clone=function(t){return t.constructor.name==="RTCPFeedbackInfo"?t.clone():_d.expand(t)};var zw=_d;const D3=zw;let xs=class L3{constructor(e,n,a){this.codec=e,this.type=n,this.params={},this.rtcpfbs=new Set,a&&this.addParams(a)}clone(){const e=new L3(this.codec,this.type,this.params);this.hasRTX()&&e.setRTX(this.getRTX());for(const n of this.rtcpfbs)e.addRTCPFeedback(n.clone());return this.hasChannels()&&e.setChannels(this.getChannels()),e}
67plain(){const e={codec:this.codec,type:this.type};this.rtx&&(e.rtx=this.rtx),this.channels&&(e.channels=this.channels),Object.keys(this.params).length&&(e.params=this.params);for(const n of this.rtcpfbs)e.rtcpfbs||(e.rtcpfbs=[]),e.rtcpfbs.push(n.plain());return e}setRTX(e){this.rtx=e}getType(){return this.type}setType(e){this.type=e}getCodec(){return this.codec}getParams(){return this.params}addParams(e){for(const n in e)this.params[n]=e[n]}addParam(e,n){this.params[e]=n}hasParam(e){return Object.hasOwnProperty.call(this.params,e)}getParam(e,n=void 0){if(this.hasParam(e))return this.params[e];if(n===void 0)throw new Error("param ".concat(e," not found and no default value provided"));return""+n}hasRTX(){return this.rtx}getRTX(){return this.rtx}hasChannels(){return this.channels}getChannels(){return this.channels}setChannels(e){this.channels=e}addRTCPFeedback(e){this.rtcpfbs.add(e)}getRTCPFeedbacks(){return this.rtcpfbs}};xs.expand=function(t){if(t.constructor.name==="CodecInfo")return t;t=t;const e=new xs(t.codec,t.type,t.params);t.rtx&&e.setRTX(t.rtx),t.channels&&e.setChannels(t.channels);for(const n of t.rtcpfbs||[]){const a=D3.expand(n);e.addRTCPFeedback(a)}return e};xs.clone=function(t){return t.constructor.name==="CodecInfo"?t.clone():xs.expand(t)};xs.MapFromNames=function(t,e,n){var a;const o=new Map;let s=96;for(const u of t){let c;const p=u.split(";"),d=p.shift().toLowerCase().trim();d==="pcmu"?c=0:d==="pcma"?c=8:c=++s;const m=new xs(d,c);d==="opus"?m.setChannels(2):d==="multiopus"&&m.setChannels(6),e&&d!=="ulpfec"&&d!=="flexfec-03"&&d!=="red"&&m.setRTX(++s);for(const f of n||[])m.addRTCPFeedback(new D3(f.id,f.params));for(const f of p){let b=f.split("=");m.addParam(b[0].trim(),(a=b[1])===null||a===void 0?void 0:a.trim())}o.set(c,m)}return o};var Nm=xs;function _0(){var t=this;if(!(this instanceof _0))return new(Function.prototype.bind.apply(_0,[null].concat(Array.prototype.slice.call(arguments))));Array.from(arguments).forEach(function(e){t[e]=Symbol.for("MEDOOZE_SEMANTIC_SDP_"+e)})}var jw=_0;const MJ=jw,qt=MJ("ACTIVE","PASSIVE","ACTPASS","INACTIVE");qt.byValue=function(t){switch(t){case qt.ACTIVE:case qt.PASSIVE:case qt.ACTPASS:case qt.INACTIVE:return t}return qt[t.toUpperCase()]};qt.toString=function(t){switch(t){case qt.ACTIVE:return"active";case qt.PASSIVE:return"passive";case qt.ACTPASS:return"actpass";case qt.INACTIVE:return"inactive"}};qt.reverse=function(t,e){switch(t){case qt.ACTIVE:return qt.PASSIVE;case qt.PASSIVE:return qt.ACTIVE;case qt.ACTPASS:return e?qt.ACTIVE:qt.PASSIVE;case qt.INACTIVE:return qt.INACTIVE}};var Gw=qt;const S0=Gw;let Sd=class N3{constructor(e,n,a){this.setup=e,this.hash=n,this.fingerprint=a}clone(){return new N3(this.setup,this.hash,this.fingerprint)}plain(){return{setup:S0.toString(this.setup),hash:this.hash,fingerprint:this.fingerprint}}getFingerprint(){return this.fingerprint}getHash(){return this.hash}getSetup(){return this.setup}setSetup(e){this.setup=e}};Sd.expand=function(t){return t.constructor.name==="DTLSInfo"?t:(t=t,new Sd(t.setup?S0.byValue(t.setup):S0.ACTPASS,t.hash,t.fingerprint))};Sd.clone=function(t){return t.constructor.name==="DTLSInfo"?t.clone():Sd.expand(t)};var P3=Sd;let kd=class W3{constructor(e,n,a,o){this.tag=e,this.suite=n,this.keyParams=a,this.sessionParams=o}clone(){return new W3(this.tag,this.suite,this.keyParams,this.sessionParams)}plain(){return{tag:this.tag,suite:this.suite,keyParams:this.keyParams,sessionParams:this.sessionParams}}getSessionParams(){return this.sessionParams}getKeyParams(){return this.keyParams}getSuite(){return this.suite}getTag(){return this.tag}};kd.expand=function(t){return t.constructor.name==="CryptoInfo"?t:(t=t,new kd(t.tag,t.suite,t.keyParams,t.sessionParams))};kd.clone=function(t){return t.constructor.name==="CryptoInfo"?t.clone():kd.expand(t)};var M3=kd,k0={exports:{}},E0={exports:{}},B3={},Pm={};Pm.byteLength=FJ;Pm.toByteArray=zJ;Pm.fromByteArray=HJ;var $a=[],Kr=[],BJ=typeof Uint8Array<"u"?Uint8Array:Array,Zb="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var El=0,UJ=Zb.length;El<UJ;++El)$a[El]=Zb[El],Kr[Zb.charCodeAt(El)]=El;Kr[45]=62;Kr[95]=63;function U3(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var a=n===e?0:4-n%4;return[n,a]}function FJ(t){var e=U3(t),n=e[0],a=e[1];return(n+a)*3/4-a}function $J(t,e,n){return(e+n)*3/4-n}function zJ(t){var e,n=U3(t),a=n[0],o=n[1],s=new BJ($J(t,a,o)),u=0,c=o>0?a-4:a,p;for(p=0;p<c;p+=4)e=Kr[t.charCodeAt(p)]<<18|Kr[t.charCodeAt(p+1)]<<12|Kr[t.charCodeAt(p+2)]<<6|Kr[t.charCodeAt(p+3)],s[u++]=e>>16&255,s[u++]=e>>8&255,s[u++]=e&255;return o===2&&(e=Kr[t.charCodeAt(p)]<<2|Kr[t.charCodeAt(p+1)]>>4,s[u++]=e&255),o===1&&(e=Kr[t.charCodeAt(p)]<<10|Kr[t.charCodeAt(p+1)]<<4|Kr[t.charCodeAt(p+2)]>>2,s[u++]=e>>8&255,s[u++]=e&255),s}function jJ(t){return $a[t>>18&63]+$a[t>>12&63]+$a[t>>6&63]+$a[t&63]}function GJ(t,e,n){for(var a,o=[],s=e;s<n;s+=3)a=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),o.push(jJ(a));return o.join("")}function HJ(t){for(var e,n=t.length,a=n%3,o=[],s=16383,u=0,c=n-a;u<c;u+=s)o.push(GJ(t,u,u+s>c?c:u+s));return a===1?(e=t[n-1],o.push($a[e>>2]+$a[e<<4&63]+"==")):a===2&&(e=(t[n-2]<<8)+t[n-1],o.push($a[e>>10]+$a[e>>4&63]+$a[e<<2&63]+"=")),o.join("")}var Hw={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Hw.read=function(t,e,n,a,o){var s,u,c=o*8-a-1,p=(1<<c)-1,d=p>>1,m=-7,f=n?o-1:0,b=n?-1:1,v=t[e+f];
vendor: 22,174 bytes, lines 67-72
67for(f+=b,s=v&(1<<-m)-1,v>>=-m,m+=c;m>0;s=s*256+t[e+f],f+=b,m-=8);for(u=s&(1<<-m)-1,s>>=-m,m+=a;m>0;u=u*256+t[e+f],f+=b,m-=8);if(s===0)s=1-d;else{if(s===p)return u?NaN:(v?-1:1)*(1/0);u=u+Math.pow(2,a),s=s-d}return(v?-1:1)*u*Math.pow(2,s-a)};Hw.write=function(t,e,n,a,o,s){var u,c,p,d=s*8-o-1,m=(1<<d)-1,f=m>>1,b=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,v=a?0:s-1,y=a?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(c=isNaN(e)?1:0,u=m):(u=Math.floor(Math.log(e)/Math.LN2),e*(p=Math.pow(2,-u))<1&&(u--,p*=2),u+f>=1?e+=b/p:e+=b*Math.pow(2,1-f),e*p>=2&&(u++,p/=2),u+f>=m?(c=0,u=m):u+f>=1?(c=(e*p-1)*Math.pow(2,o),u=u+f):(c=e*Math.pow(2,f-1)*Math.pow(2,o),u=0));o>=8;t[n+v]=c&255,v+=y,c/=256,o-=8);for(u=u<<o|c,d+=o;d>0;t[n+v]=u&255,v+=y,u/=256,d-=8);t[n+v-y]|=g*128};/*! 68 * The buffer module from node.js, for the browser. 69 * 70 * @author Feross Aboukhadijeh <https://feross.org> 71 * @license MIT 72 */(function(t){const e=Pm,n=Hw,a=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=c,t.SlowBuffer=k,t.INSPECT_MAX_BYTES=50;const o=2147483647;t.kMaxLength=o,c.TYPED_ARRAY_SUPPORT=s(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const A=new Uint8Array(1),N={foo:function(){return 42}};return Object.setPrototypeOf(N,Uint8Array.prototype),Object.setPrototypeOf(A,N),A.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(A){if(A>o)throw new RangeError('The value "'+A+'" is invalid for option "size"');const N=new Uint8Array(A);return Object.setPrototypeOf(N,c.prototype),N}function c(A,N,B){if(typeof A=="number"){if(typeof N=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return f(A)}return p(A,N,B)}c.poolSize=8192;function p(A,N,B){if(typeof A=="string")return b(A,N);if(ArrayBuffer.isView(A))return y(A);if(A==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A);if(Tn(A,ArrayBuffer)||A&&Tn(A.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Tn(A,SharedArrayBuffer)||A&&Tn(A.buffer,SharedArrayBuffer)))return g(A,N,B);if(typeof A=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const D=A.valueOf&&A.valueOf();if(D!=null&&D!==A)return c.from(D,N,B);const C=S(A);if(C)return C;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof A[Symbol.toPrimitive]=="function")return c.from(A[Symbol.toPrimitive]("string"),N,B);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof A)}c.from=function(A,N,B){return p(A,N,B)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function d(A){if(typeof A!="number")throw new TypeError('"size" argument must be of type number');if(A<0)throw new RangeError('The value "'+A+'" is invalid for option "size"')}function m(A,N,B){return d(A),A<=0?u(A):N!==void 0?typeof B=="string"?u(A).fill(N,B):u(A).fill(N):u(A)}c.alloc=function(A,N,B){return m(A,N,B)};function f(A){return d(A),u(A<0?0:w(A)|0)}c.allocUnsafe=function(A){return f(A)},c.allocUnsafeSlow=function(A){return f(A)};function b(A,N){if((typeof N!="string"||N==="")&&(N="utf8"),!c.isEncoding(N))throw new TypeError("Unknown encoding: "+N);const B=T(A,N)|0;let D=u(B);const C=D.write(A,N);return C!==B&&(D=D.slice(0,C)),D}function v(A){const N=A.length<0?0:w(A.length)|0,B=u(N);for(let D=0;D<N;D+=1)B[D]=A[D]&255;return B}function y(A){if(Tn(A,Uint8Array)){const N=new Uint8Array(A);return g(N.buffer,N.byteOffset,N.byteLength)}return v(A)}function g(A,N,B){if(N<0||A.byteLength<N)throw new RangeError('"offset" is outside of buffer bounds');if(A.byteLength<N+(B||0))throw new RangeError('"length" is outside of buffer bounds');let D;return N===void 0&&B===void 0?D=new Uint8Array(A):B===void 0?D=new Uint8Array(A,N):D=new Uint8Array(A,N,B),Object.setPrototypeOf(D,c.prototype),D}function S(A){if(c.isBuffer(A)){const N=w(A.length)|0,B=u(N);return B.length===0||A.copy(B,0,0,N),B}if(A.length!==void 0)return typeof A.length!="number"||en(A.length)?u(0):v(A);if(A.type==="Buffer"&&Array.isArray(A.data))return v(A.data)}function w(A){if(A>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return A|0}function k(A){return+A!=A&&(A=0),c.alloc(+A)}c.isBuffer=function(A){return A!=null&&A._isBuffer===!0&&A!==c.prototype},c.compare=function(A,N){if(Tn(A,Uint8Array)&&(A=c.from(A,A.offset,A.byteLength)),Tn(N,Uint8Array)&&(N=c.from(N,N.offset,N.byteLength)),!c.isBuffer(A)||!c.isBuffer(N))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(A===N)return 0;let B=A.length,D=N.length;for(let C=0,x=Math.min(B,D);C<x;++C)if(A[C]!==N[C]){B=A[C],D=N[C];break}return B<D?-1:D<B?1:0},c.isEncoding=function(A){switch(String(A).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(A,N){if(!Array.isArray(A))throw new TypeError('"list" argument must be an Array of Buffers');if(A.length===0)return c.alloc(0);let B;if(N===void 0)for(N=0,B=0;B<A.length;++B)N+=A[B].length;const D=c.allocUnsafe(N);let C=0;for(B=0;B<A.length;++B){let x=A[B];if(Tn(x,Uint8Array))C+x.length>D.length?(c.isBuffer(x)||(x=c.from(x)),x.copy(D,C)):Uint8Array.prototype.set.call(D,x,C);else if(c.isBuffer(x))x.copy(D,C);else throw new TypeError('"list" argument must be an Array of Buffers');C+=x.length}return D};function T(A,N){if(c.isBuffer(A))return A.length;if(ArrayBuffer.isView(A)||Tn(A,ArrayBuffer))return A.byteLength;if(typeof A!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof A);const B=A.length,D=arguments.length>2&&arguments[2]===!0;if(!D&&B===0)return 0;let C=!1;for(;;)switch(N){case"ascii":case"latin1":case"binary":return B;case"utf8":case"utf-8":return Fn(A).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B*2;case"hex":return B>>>1;case"base64":return Wr(A).length;default:if(C)return D?-1:Fn(A).length;N=(""+N).toLowerCase(),C=!0}}c.byteLength=T;function R(A,N,B){let D=!1;if((N===void 0||N<0)&&(N=0),N>this.length||((B===void 0||B>this.length)&&(B=this.length),B<=0)||(B>>>=0,N>>>=0,B<=N))return"";for(A||(A="utf8");;)switch(A){case"hex":return be(this,N,B);case"utf8":case"utf-8":return ye(this,N,B);case"ascii":return q(this,N,B);case"latin1":case"binary":return re(this,N,B);case"base64":return de(this,N,B);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return se(this,N,B);default:if(D)throw new TypeError("Unknown encoding: "+A);A=(A+"").toLowerCase(),D=!0}}c.prototype._isBuffer=!0;function I(A,N,B){const D=A[N];A[N]=A[B],A[B]=D}c.prototype.swap16=function(){const A=this.length;if(A%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let N=0;N<A;N+=2)I(this,N,N+1);return this},c.prototype.swap32=function(){const A=this.length;if(A%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let N=0;N<A;N+=4)I(this,N,N+3),I(this,N+1,N+2);return this},c.prototype.swap64=function(){const A=this.length;if(A%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let N=0;N<A;N+=8)I(this,N,N+7),I(this,N+1,N+6),I(this,N+2,N+5),I(this,N+3,N+4);return this},c.prototype.toString=function(){const A=this.length;return A===0?"":arguments.length===0?ye(this,0,A):R.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(A){if(!c.isBuffer(A))throw new TypeError("Argument must be a Buffer");return this===A?!0:c.compare(this,A)===0},c.prototype.inspect=function(){let A="";const N=t.INSPECT_MAX_BYTES;return A=this.toString("hex",0,N).replace(/(.{2})/g,"$1 ").trim(),this.length>N&&(A+=" ... "),"<Buffer "+A+">"},a&&(c.prototype[a]=c.prototype.inspect),c.prototype.compare=function(A,N,B,D,C){if(Tn(A,Uint8Array)&&(A=c.from(A,A.offset,A.byteLength)),!c.isBuffer(A))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof A);if(N===void 0&&(N=0),B===void 0&&(B=A?A.length:0),D===void 0&&(D=0),C===void 0&&(C=this.length),N<0||B>A.length||D<0||C>this.length)throw new RangeError("out of range index");if(D>=C&&N>=B)return 0;if(D>=C)return-1;if(N>=B)return 1;if(N>>>=0,B>>>=0,D>>>=0,C>>>=0,this===A)return 0;let x=C-D,U=B-N;const H=Math.min(x,U),Q=this.slice(D,C),ae=A.slice(N,B);for(let Oe=0;Oe<H;++Oe)if(Q[Oe]!==ae[Oe]){x=Q[Oe],U=ae[Oe];break}return x<U?-1:U<x?1:0};function M(A,N,B,D,C){if(A.length===0)return-1;if(typeof B=="string"?(D=B,B=0):B>2147483647?B=2147483647:B<-2147483648&&(B=-2147483648),B=+B,en(B)&&(B=C?0:A.length-1),B<0&&(B=A.length+B),B>=A.length){if(C)return-1;B=A.length-1}else if(B<0)if(C)B=0;else return-1;if(typeof N=="string"&&(N=c.from(N,D)),c.isBuffer(N))return N.length===0?-1:L(A,N,B,D,C);if(typeof N=="number")return N=N&255,typeof Uint8Array.prototype.indexOf=="function"?C?Uint8Array.prototype.indexOf.call(A,N,B):Uint8Array.prototype.lastIndexOf.call(A,N,B):L(A,[N],B,D,C);throw new TypeError("val must be string, number or Buffer")}function L(A,N,B,D,C){let x=1,U=A.length,H=N.length;if(D!==void 0&&(D=String(D).toLowerCase(),D==="ucs2"||D==="ucs-2"||D==="utf16le"||D==="utf-16le")){if(A.length<2||N.length<2)return-1;x=2,U/=2,H/=2,B/=2}function Q(Oe,$e){return x===1?Oe[$e]:Oe.readUInt16BE($e*x)}let ae;if(C){let Oe=-1;for(ae=B;ae<U;ae++)if(Q(A,ae)===Q(N,Oe===-1?0:ae-Oe)){if(Oe===-1&&(Oe=ae),ae-Oe+1===H)return Oe*x}else Oe!==-1&&(ae-=ae-Oe),Oe=-1}else for(B+H>U&&(B=U-H),ae=B;ae>=0;ae--){let Oe=!0;for(let $e=0;$e<H;$e++)if(Q(A,ae+$e)!==Q(N,$e)){Oe=!1;break}if(Oe)return ae}return-1}c.prototype.includes=function(A,N,B){return this.indexOf(A,N,B)!==-1},c.prototype.indexOf=function(A,N,B){return M(this,A,N,B,!0)},c.prototype.lastIndexOf=function(A,N,B){return M(this,A,N,B,!1)};function O(A,N,B,D){B=Number(B)||0;const C=A.length-B;D?(D=Number(D),D>C&&(D=C)):D=C;const x=N.length;D>x/2&&(D=x/2);let U;for(U=0;U<D;++U){const H=parseInt(N.substr(U*2,2),16);if(en(H))return U;A[B+U]=H}return U}function W(A,N,B,D){return fr(Fn(N,A.length-B),A,B,D)}function F(A,N,B,D){return fr(Nr(N),A,B,D)}function G(A,N,B,D){return fr(Wr(N),A,B,D)}function ee(A,N,B,D){return fr(Pr(N,A.length-B),A,B,D)}c.prototype.write=function(A,N,B,D){if(N===void 0)D="utf8",B=this.length,N=0;else if(B===void 0&&typeof N=="string")D=N,B=this.length,N=0;else if(isFinite(N))N=N>>>0,isFinite(B)?(B=B>>>0,D===void 0&&(D="utf8")):(D=B,B=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const C=this.length-N;if((B===void 0||B>C)&&(B=C),A.length>0&&(B<0||N<0)||N>this.length)throw new RangeError("Attempt to write outside buffer bounds");D||(D="utf8");let x=!1;for(;;)switch(D){case"hex":return O(this,A,N,B);case"utf8":case"utf-8":return W(this,A,N,B);case"ascii":case"latin1":case"binary":return F(this,A,N,B);case"base64":return G(this,A,N,B);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ee(this,A,N,B);default:if(x)throw new TypeError("Unknown encoding: "+D);D=(""+D).toLowerCase(),x=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function de(A,N,B){return N===0&&B===A.length?e.fromByteArray(A):e.fromByteArray(A.slice(N,B))}function ye(A,N,B){B=Math.min(A.length,B);const D=[];let C=N;for(;C<B;){const x=A[C];let U=null,H=x>239?4:x>223?3:x>191?2:1;if(C+H<=B){let Q,ae,Oe,$e;switch(H){case 1:x<128&&(U=x);break;case 2:Q=A[C+1],(Q&192)===128&&($e=(x&31)<<6|Q&63,$e>127&&(U=$e));break;case 3:Q=A[C+1],ae=A[C+2],(Q&192)===128&&(ae&192)===128&&($e=(x&15)<<12|(Q&63)<<6|ae&63,$e>2047&&($e<55296||$e>57343)&&(U=$e));break;case 4:Q=A[C+1],ae=A[C+2],Oe=A[C+3],(Q&192)===128&&(ae&192)===128&&(Oe&192)===128&&($e=(x&15)<<18|(Q&63)<<12|(ae&63)<<6|Oe&63,$e>65535&&$e<1114112&&(U=$e))}}U===null?(U=65533,H=1):U>65535&&(U-=65536,D.push(U>>>10&1023|55296),U=56320|U&1023),D.push(U),C+=H}return Y(D)}const _e=4096;function Y(A){const N=A.length;if(N<=_e)return String.fromCharCode.apply(String,A);let B="",D=0;for(;D<N;)B+=String.fromCharCode.apply(String,A.slice(D,D+=_e));return B}function q(A,N,B){let D="";B=Math.min(A.length,B);for(let C=N;C<B;++C)D+=String.fromCharCode(A[C]&127);return D}function re(A,N,B){let D="";B=Math.min(A.length,B);for(let C=N;C<B;++C)D+=String.fromCharCode(A[C]);return D}function be(A,N,B){const D=A.length;(!N||N<0)&&(N=0),(!B||B<0||B>D)&&(B=D);let C="";for(let x=N;x<B;++x)C+=Et[A[x]];return C}function se(A,N,B){const D=A.slice(N,B);let C="";for(let x=0;x<D.length-1;x+=2)C+=String.fromCharCode(D[x]+D[x+1]*256);return C}c.prototype.slice=function(A,N){const B=this.length;A=~~A,N=N===void 0?B:~~N,A<0?(A+=B,A<0&&(A=0)):A>B&&(A=B),N<0?(N+=B,N<0&&(N=0)):N>B&&(N=B),N<A&&(N=A);const D=this.subarray(A,N);return Object.setPrototypeOf(D,c.prototype),D};function j(A,N,B){if(A%1!==0||A<0)throw new RangeError("offset is not uint");if(A+N>B)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(A,N,B){A=A>>>0,N=N>>>0,B||j(A,N,this.length);let D=this[A],C=1,x=0;for(;++x<N&&(C*=256);)D+=this[A+x]*C;return D},c.prototype.readUintBE=c.prototype.readUIntBE=function(A,N,B){A=A>>>0,N=N>>>0,B||j(A,N,this.length);let D=this[A+--N],C=1;for(;N>0&&(C*=256);)D+=this[A+--N]*C;return D},c.prototype.readUint8=c.prototype.readUInt8=function(A,N){return A=A>>>0,N||j(A,1,this.length),this[A]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(A,N){return A=A>>>0,N||j(A,2,this.length),this[A]|this[A+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(A,N){return A=A>>>0,N||j(A,2,this.length),this[A]<<8|this[A+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(A,N){return A=A>>>0,N||j(A,4,this.length),(this[A]|this[A+1]<<8|this[A+2]<<16)+this[A+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(A,N){return A=A>>>0,N||j(A,4,this.length),this[A]*16777216+(this[A+1]<<16|this[A+2]<<8|this[A+3])},c.prototype.readBigUInt64LE=At(function(A){A=A>>>0,En(A,"offset");const N=this[A],B=this[A+7];(N===void 0||B===void 0)&&gn(A,this.length-8);const D=N+this[++A]*2**8+this[++A]*2**16+this[++A]*2**24,C=this[++A]+this[++A]*2**8+this[++A]*2**16+B*2**24;return BigInt(D)+(BigInt(C)<<BigInt(32))}),c.prototype.readBigUInt64BE=At(function(A){A=A>>>0,En(A,"offset");const N=this[A],B=this[A+7];(N===void 0||B===void 0)&&gn(A,this.length-8);const D=N*2**24+this[++A]*2**16+this[++A]*2**8+this[++A],C=this[++A]*2**24+this[++A]*2**16+this[++A]*2**8+B;return(BigInt(D)<<BigInt(32))+BigInt(C)}),c.prototype.readIntLE=function(A,N,B){A=A>>>0,N=N>>>0,B||j(A,N,this.length);let D=this[A],C=1,x=0;for(;++x<N&&(C*=256);)D+=this[A+x]*C;return C*=128,D>=C&&(D-=Math.pow(2,8*N)),D},c.prototype.readIntBE=function(A,N,B){A=A>>>0,N=N>>>0,B||j(A,N,this.length);let D=N,C=1,x=this[A+--D];for(;D>0&&(C*=256);)x+=this[A+--D]*C;return C*=128,x>=C&&(x-=Math.pow(2,8*N)),x},c.prototype.readInt8=function(A,N){return A=A>>>0,N||j(A,1,this.length),this[A]&128?(255-this[A]+1)*-1:this[A]},c.prototype.readInt16LE=function(A,N){A=A>>>0,N||j(A,2,this.length);const B=this[A]|this[A+1]<<8;return B&32768?B|4294901760:B},c.prototype.readInt16BE=function(A,N){A=A>>>0,N||j(A,2,this.length);const B=this[A+1]|this[A]<<8;return B&32768?B|4294901760:B},c.prototype.readInt32LE=function(A,N){return A=A>>>0,N||j(A,4,this.length),this[A]|this[A+1]<<8|this[A+2]<<16|this[A+3]<<24},c.prototype.readInt32BE=function(A,N){return A=A>>>0,N||j(A,4,this.length),this[A]<<24|this[A+1]<<16|this[A+2]<<8|this[A+3]},c.prototype.readBigInt64LE=At(function(A){A=A>>>0,En(A,"offset");const N=this[A],B=this[A+7];(N===void 0||B===void 0)&&gn(A,this.length-8);const D=this[A+4]+this[A+5]*2**8+this[A+6]*2**16+(B<<24);return(BigInt(D)<<BigInt(32))+BigInt(N+this[++A]*2**8+this[++A]*2**16+this[++A]*2**24)}),c.prototype.readBigInt64BE=At(function(A){A=A>>>0,En(A,"offset");const N=this[A],B=this[A+7];(N===void 0||B===void 0)&&gn(A,this.length-8);const D=(N<<24)+this[++A]*2**16+this[++A]*2**8+this[++A];return(BigInt(D)<<BigInt(32))+BigInt(this[++A]*2**24+this[++A]*2**16+this[++A]*2**8+B)}),c.prototype.readFloatLE=function(A,N){return A=A>>>0,N||j(A,4,this.length),n.read(this,A,!0,23,4)},c.prototype.readFloatBE=function(A,N){return A=A>>>0,N||j(A,4,this.length),n.read(this,A,!1,23,4)},c.prototype.readDoubleLE=function(A,N){return A=A>>>0,N||j(A,8,this.length),n.read(this,A,!0,52,8)},c.prototype.readDoubleBE=function(A,N){return A=A>>>0,N||j(A,8,this.length),n.read(this,A,!1,52,8)};function X(A,N,B,D,C,x){if(!c.isBuffer(A))throw new TypeError('"buffer" argument must be a Buffer instance');if(N>C||N<x)throw new RangeError('"value" argument is out of bounds');if(B+D>A.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(A,N,B,D){if(A=+A,N=N>>>0,B=B>>>0,!D){const U=Math.pow(2,8*B)-1;X(this,A,N,B,U,0)}let C=1,x=0;for(this[N]=A&255;++x<B&&(C*=256);)this[N+x]=A/C&255;return N+B},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(A,N,B,D){if(A=+A,N=N>>>0,B=B>>>0,!D){const U=Math.pow(2,8*B)-1;X(this,A,N,B,U,0)}let C=B-1,x=1;for(this[N+C]=A&255;--C>=0&&(x*=256);)this[N+C]=A/x&255;return N+B},c.prototype.writeUint8=c.prototype.writeUInt8=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,1,255,0),this[N]=A&255,N+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,2,65535,0),this[N]=A&255,this[N+1]=A>>>8,N+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,2,65535,0),this[N]=A>>>8,this[N+1]=A&255,N+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,4,4294967295,0),this[N+3]=A>>>24,this[N+2]=A>>>16,this[N+1]=A>>>8,this[N]=A&255,N+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,4,4294967295,0),this[N]=A>>>24,this[N+1]=A>>>16,this[N+2]=A>>>8,this[N+3]=A&255,N+4};function fe(A,N,B,D,C){Lr(N,D,C,A,B,7);let x=Number(N&BigInt(4294967295));A[B++]=x,x=x>>8,A[B++]=x,x=x>>8,A[B++]=x,x=x>>8,A[B++]=x;let U=Number(N>>BigInt(32)&BigInt(4294967295));return A[B++]=U,U=U>>8,A[B++]=U,U=U>>8,A[B++]=U,U=U>>8,A[B++]=U,B}function pe(A,N,B,D,C){Lr(N,D,C,A,B,7);let x=Number(N&BigInt(4294967295));A[B+7]=x,x=x>>8,A[B+6]=x,x=x>>8,A[B+5]=x,x=x>>8,A[B+4]=x;let U=Number(N>>BigInt(32)&BigInt(4294967295));return A[B+3]=U,U=U>>8,A[B+2]=U,U=U>>8,A[B+1]=U,U=U>>8,A[B]=U,B+8}c.prototype.writeBigUInt64LE=At(function(A,N=0){return fe(this,A,N,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=At(function(A,N=0){return pe(this,A,N,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(A,N,B,D){if(A=+A,N=N>>>0,!D){const H=Math.pow(2,8*B-1);X(this,A,N,B,H-1,-H)}let C=0,x=1,U=0;for(this[N]=A&255;++C<B&&(x*=256);)A<0&&U===0&&this[N+C-1]!==0&&(U=1),this[N+C]=(A/x>>0)-U&255;return N+B},c.prototype.writeIntBE=function(A,N,B,D){if(A=+A,N=N>>>0,!D){const H=Math.pow(2,8*B-1);X(this,A,N,B,H-1,-H)}let C=B-1,x=1,U=0;for(this[N+C]=A&255;--C>=0&&(x*=256);)A<0&&U===0&&this[N+C+1]!==0&&(U=1),this[N+C]=(A/x>>0)-U&255;return N+B},c.prototype.writeInt8=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,1,127,-128),A<0&&(A=255+A+1),this[N]=A&255,N+1},c.prototype.writeInt16LE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,2,32767,-32768),this[N]=A&255,this[N+1]=A>>>8,N+2},c.prototype.writeInt16BE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,2,32767,-32768),this[N]=A>>>8,this[N+1]=A&255,N+2},c.prototype.writeInt32LE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,4,2147483647,-2147483648),this[N]=A&255,this[N+1]=A>>>8,this[N+2]=A>>>16,this[N+3]=A>>>24,N+4},c.prototype.writeInt32BE=function(A,N,B){return A=+A,N=N>>>0,B||X(this,A,N,4,2147483647,-2147483648),A<0&&(A=4294967295+A+1),this[N]=A>>>24,this[N+1]=A>>>16,this[N+2]=A>>>8,this[N+3]=A&255,N+4},c.prototype.writeBigInt64LE=At(function(A,N=0){return fe(this,A,N,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=At(function(A,N=0){return pe(this,A,N,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function we(A,N,B,D,C,x){if(B+D>A.length)throw new RangeError("Index out of range");if(B<0)throw new RangeError("Index out of range")}function xe(A,N,B,D,C){return N=+N,B=B>>>0,C||we(A,N,B,4),n.write(A,N,B,D,23,4),B+4}c.prototype.writeFloatLE=function(A,N,B){return xe(this,A,N,!0,B)},c.prototype.writeFloatBE=function(A,N,B){return xe(this,A,N,!1,B)};function Me(A,N,B,D,C){return N=+N,B=B>>>0,C||we(A,N,B,8),n.write(A,N,B,D,52,8),B+8}c.prototype.writeDoubleLE=function(A,N,B){return Me(this,A,N,!0,B)},c.prototype.writeDoubleBE=function(A,N,B){return Me(this,A,N,!1,B)},c.prototype.copy=function(A,N,B,D){if(!c.isBuffer(A))throw new TypeError("argument should be a Buffer");if(B||(B=0),!D&&D!==0&&(D=this.length),N>=A.length&&(N=A.length),N||(N=0),D>0&&D<B&&(D=B),D===B||A.length===0||this.length===0)return 0;if(N<0)throw new RangeError("targetStart out of bounds");if(B<0||B>=this.length)throw new RangeError("Index out of range");if(D<0)throw new RangeError("sourceEnd out of bounds");D>this.length&&(D=this.length),A.length-N<D-B&&(D=A.length-N+B);const C=D-B;return this===A&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(N,B,D):Uint8Array.prototype.set.call(A,this.subarray(B,D),N),C},c.prototype.fill=function(A,N,B,D){if(typeof A=="string"){if(typeof N=="string"?(D=N,N=0,B=this.length):typeof B=="string"&&(D=B,B=this.length),D!==void 0&&typeof D!="string")throw new TypeError("encoding must be a string");
72if(typeof D=="string"&&!c.isEncoding(D))throw new TypeError("Unknown encoding: "+D);if(A.length===1){const x=A.charCodeAt(0);(D==="utf8"&&x<128||D==="latin1")&&(A=x)}}else typeof A=="number"?A=A&255:typeof A=="boolean"&&(A=Number(A));if(N<0||this.length<N||this.length<B)throw new RangeError("Out of range index");if(B<=N)return this;N=N>>>0,B=B===void 0?this.length:B>>>0,A||(A=0);let C;if(typeof A=="number")for(C=N;C<B;++C)this[C]=A;else{const x=c.isBuffer(A)?A:c.from(A,D),U=x.length;if(U===0)throw new TypeError('The value "'+A+'" is invalid for argument "value"');for(C=0;C<B-N;++C)this[C+N]=x[C%U]}return this};const it={};function ot(A,N,B){it[A]=class extends B{constructor(){super(),Object.defineProperty(this,"message",{value:N.apply(this,arguments),writable:!0,configurable:!0}),this.name="".concat(this.name," [").concat(A,"]"),this.stack,delete this.name}get code(){return A}set code(D){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:D,writable:!0})}toString(){return"".concat(this.name," [").concat(A,"]: ").concat(this.message)}}}ot("ERR_BUFFER_OUT_OF_BOUNDS",function(A){return A?"".concat(A," is outside of buffer bounds"):"Attempt to access memory outside buffer bounds"},RangeError),ot("ERR_INVALID_ARG_TYPE",function(A,N){return'The "'.concat(A,'" argument must be of type number. Received type ').concat(typeof N)},TypeError),ot("ERR_OUT_OF_RANGE",function(A,N,B){let D='The value of "'.concat(A,'" is out of range.'),C=B;return Number.isInteger(B)&&Math.abs(B)>2**32?C=zt(String(B)):typeof B=="bigint"&&(C=String(B),(B>BigInt(2)**BigInt(32)||B<-(BigInt(2)**BigInt(32)))&&(C=zt(C)),C+="n"),D+=" It must be ".concat(N,". Received ").concat(C),D},RangeError);function zt(A){let N="",B=A.length;const D=A[0]==="-"?1:0;for(;B>=D+4;B-=3)N="_".concat(A.slice(B-3,B)).concat(N);return"".concat(A.slice(0,B)).concat(N)}function Ln(A,N,B){En(N,"offset"),(A[N]===void 0||A[N+B]===void 0)&&gn(N,A.length-(B+1))}function Lr(A,N,B,D,C,x){if(A>B||A<N){const U=typeof N=="bigint"?"n":"";let H;throw N===0||N===BigInt(0)?H=">= 0".concat(U," and < 2").concat(U," ** ").concat((x+1)*8).concat(U):H=">= -(2".concat(U," ** ").concat((x+1)*8-1).concat(U,") and < 2 ** ")+"".concat((x+1)*8-1).concat(U),new it.ERR_OUT_OF_RANGE("value",H,A)}Ln(D,C,x)}function En(A,N){if(typeof A!="number")throw new it.ERR_INVALID_ARG_TYPE(N,"number",A)}function gn(A,N,B){throw Math.floor(A)!==A?(En(A,B),new it.ERR_OUT_OF_RANGE("offset","an integer",A)):N<0?new it.ERR_BUFFER_OUT_OF_BOUNDS:new it.ERR_OUT_OF_RANGE("offset",">= 0 and <= ".concat(N),A)}const Un=/[^+/0-9A-Za-z-_]/g;function Kn(A){if(A=A.split("=")[0],A=A.trim().replace(Un,""),A.length<2)return"";for(;A.length%4!==0;)A=A+"=";return A}function Fn(A,N){N=N||1/0;let B;const D=A.length;let C=null;const x=[];for(let U=0;U<D;++U){if(B=A.charCodeAt(U),B>55295&&B<57344){if(!C){if(B>56319){(N-=3)>-1&&x.push(239,191,189);continue}else if(U+1===D){(N-=3)>-1&&x.push(239,191,189);continue}C=B;continue}if(B<56320){(N-=3)>-1&&x.push(239,191,189),C=B;continue}B=(C-55296<<10|B-56320)+65536}else C&&(N-=3)>-1&&x.push(239,191,189);if(C=null,B<128){if((N-=1)<0)break;x.push(B)}else if(B<2048){if((N-=2)<0)break;x.push(B>>6|192,B&63|128)}else if(B<65536){if((N-=3)<0)break;x.push(B>>12|224,B>>6&63|128,B&63|128)}else if(B<1114112){if((N-=4)<0)break;x.push(B>>18|240,B>>12&63|128,B>>6&63|128,B&63|128)}else throw new Error("Invalid code point")}return x}function Nr(A){const N=[];for(let B=0;B<A.length;++B)N.push(A.charCodeAt(B)&255);return N}function Pr(A,N){let B,D,C;const x=[];for(let U=0;U<A.length&&!((N-=2)<0);++U)B=A.charCodeAt(U),D=B>>8,C=B%256,x.push(C),x.push(D);return x}function Wr(A){return e.toByteArray(Kn(A))}function fr(A,N,B,D){let C;for(C=0;C<D&&!(C+B>=N.length||C>=A.length);++C)N[C+B]=A[C];return C}function Tn(A,N){return A instanceof N||A!=null&&A.constructor!=null&&A.constructor.name!=null&&A.constructor.name===N.name}function en(A){return A!==A}
72const Et=function(){const A="0123456789abcdef",N=new Array(256);for(let B=0;B<16;++B){const D=B*16;for(let C=0;C<16;++C)N[D+C]=A[B]+A[C]}return N}();function At(A){return typeof BigInt>"u"?ze:A}function ze(){throw new Error("BigInt not supported")}})(B3);/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(t,e){var n=B3,a=n.Buffer;function o(u,c){for(var p in u)c[p]=u[p]}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?t.exports=n:(o(n,e),e.Buffer=s);function s(u,c,p){return a(u,c,p)}s.prototype=Object.create(a.prototype),o(a,s),s.from=function(u,c,p){if(typeof u=="number")throw new TypeError("Argument must not be a number");return a(u,c,p)},s.alloc=function(u,c,p){if(typeof u!="number")throw new TypeError("Argument must be a number");var d=a(u);return c!==void 0?typeof p=="string"?d.fill(c,p):d.fill(c):d.fill(0),d},s.allocUnsafe=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return a(u)},s.allocUnsafeSlow=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return n.SlowBuffer(u)}})(E0,E0.exports);var VJ=E0.exports,Kb=65536,YJ=4294967295;function qJ(){throw new Error(`Secure random number generation is not supported by this browser. 73Use Chrome, Firefox or Internet Explorer 11`)}var ZJ=VJ.Buffer,Vp=Gp.crypto||Gp.msCrypto;Vp&&Vp.getRandomValues?k0.exports=KJ:k0.exports=qJ;function KJ(t,e){if(t>YJ)throw new RangeError("requested too many random bytes");var n=ZJ.allocUnsafe(t);if(t>0)if(t>Kb)for(var a=0;a<t;a+=Kb)Vp.getRandomValues(n.slice(a,a+Kb));else Vp.getRandomValues(n);return typeof e=="function"?xi.nextTick(function(){e(null,n)}):n}var XJ=k0.exports;const pR=XJ;let Os=class F3{constructor(e,n){this.ufrag=e,this.pwd=n,this.lite=!1,this.endOfCandidates=!1}clone(){const e=new F3(this.ufrag,this.pwd);return e.setLite(this.lite),e.setEndOfCandidates(this.endOfCandidates),e}plain(){const e={ufrag:this.ufrag,pwd:this.pwd};return this.lite&&(e.lite=this.lite),this.endOfCandidates&&(e.endOfCandidates=this.endOfCandidates),e}getUfrag(){return this.ufrag}getPwd(){return this.pwd}isLite(){return this.lite}setLite(e){this.lite=e}isEndOfCandidates(){return this.endOfCandidates}setEndOfCandidates(e){this.endOfCandidates=e}};Os.generate=function(t){const e=new Os,n=pR(8),a=pR(24);return e.ufrag=n.toString("hex"),e.pwd=a.toString("hex"),e.lite=t,e};Os.expand=function(t){if(t.constructor.name==="ICEInfo")return t;t=t;const e=new Os(t.ufrag,t.pwd);return e.setLite(t.lite),e.setEndOfCandidates(t.endOfCandidates),e};Os.clone=function(t){return t.constructor.name==="ICEInfo"?t.clone():Os.expand(t)};var $3=Os;const JJ=jw,ma=JJ("SEND","RECV");ma.byValue=function(t){return ma[t.toUpperCase()]};ma.toString=function(t){switch(t){case ma.SEND:return"send";case ma.RECV:return"recv"}};ma.reverse=function(t){switch(t){case ma.SEND:return ma.RECV;case ma.RECV:return ma.SEND}};var Wm=ma;const z3=Wm;let Ed=class j3{constructor(e,n){this.id=e,this.direction=n,this.formats=[],this.params=new Map}clone(){var e=new j3(this.id,this.direction);return e.setFormats(this.formats),e.setParams(this.params),e}plain(){var e={id:this.id,direction:z3.toString(this.direction)};this.formats&&(e.formats=this.formats);for(var[n,a]of this.params.entries())e.params||(e.params={}),e.params[n]=a;return e}getId(){return this.id}getDirection(){return this.direction}setDirection(e){this.direction=e}getFormats(){return this.formats}setFormats(e){this.formats=[];for(let n=0;n<e.length;++n)this.formats.push(parseInt(e[n]))}getParams(){return this.params}setParams(e){this.params=new Map(e)}addParam(e,n){this.params.set(e,n)}};Ed.expand=function(t){if(t.constructor.name==="RIDInfo")return t;t=t;const e=new Ed(t.id,z3.byValue(t.direction));for(const[n,a]of Object.entries(t.params||{}))e.addParam(n,a);return t.formats&&e.setFormats(t.formats),e};Ed.clone=function(t){return t.constructor.name==="RIDInfo"?t.clone():Ed.expand(t)};var Vw=Ed;let Td=class G3{constructor(e,n){this.paused=n,this.id=e}clone(){return new G3(this.id,this.paused)}plain(){return{id:this.id,paused:this.paused}}isPaused(){return this.paused}getId(){return this.id}};Td.expand=function(t){return t.constructor.name==="SimulcastStreamInfo"?t:(t=t,new Td(t.id,t.paused))};Td.clone=function(t){return t.constructor.name==="SimulcastStreamInfo"?t.clone():Td.expand(t)};var Yw=Td;const mR=Yw,us=Wm;let Rd=class H3{constructor(){this.send=[],this.recv=[]}clone(){const e=new H3;for(const n of this.send)e.addSimulcastAlternativeStreams(us.SEND,n.map(a=>a.clone()));for(const n of this.recv)e.addSimulcastAlternativeStreams(us.RECV,n.map(a=>a.clone()));return e}plain(){const e={send:[],recv:[]};for(const n of this.send)e.send.push(n.map(a=>a.plain()));for(const n of this.recv)e.recv.push(n.map(a=>a.plain()));return e}addSimulcastAlternativeStreams(e,n){return e===us.SEND?this.send.push(n):this.recv.push(n)}addSimulcastStream(e,n){return e===us.SEND?this.send.push([n]):this.recv.push([n])}getSimulcastStreams(e){return e===us.SEND?this.send:this.recv}};Rd.expand=function(t){if(t.constructor.name==="SimulcastInfo")return t;t=t;const e=new Rd;for(const n of t.send||[])e.addSimulcastAlternativeStreams(us.SEND,n.map(mR.expand));for(const n of t.recv||[])e.addSimulcastAlternativeStreams(us.RECV,n.map(mR.expand));return e};Rd.clone=function(t){return t.constructor.name==="SimulcastInfo"?t.clone():Rd.expand(t)};var qw=Rd;const QJ=jw,In=QJ("SENDRECV","SENDONLY","RECVONLY","INACTIVE");In.byValue=function(t){return In[t.toUpperCase()]};In.toString=function(t){switch(t){case In.SENDRECV:return"sendrecv";case In.SENDONLY:return"sendonly";case In.RECVONLY:return"recvonly";case In.INACTIVE:return"inactive"}};In.reverse=function(t){switch(t){case In.SENDRECV:return In.SENDRECV;case In.SENDONLY:return In.RECVONLY;case In.RECVONLY:return In.SENDONLY;case In.INACTIVE:return In.INACTIVE}};var Zw=In;let Cd=class V3{constructor(e,n){this.port=e,this.maxMessageSize=n}clone(){return new V3(this.port,this.maxMessageSize)}plain(){return{port:this.port,maxMessageSize:this.maxMessageSize}}getPort(){return this.port}getMaxMessageSize(){return this.maxMessageSize}};Cd.expand=function(t){return t.constructor.name==="DataChannelInfo"?t:(t=t,new Cd(t.port,t.maxMessageSize))};Cd.clone=function(t){return t.constructor.name==="DataChannelInfo"?t.clone():Cd.expand(t)};var Kw=Cd;const Xw=Nm,eQ=Vw,Y3=qw,Hl=Zw,Lu=Wm,q3=Kw;let Is=class T0{constructor(e,n){this.id=e,this.type=n,this.direction=Hl.SENDRECV,this.extensions=new Map,this.codecs=new Map,this.rids=new Map,this.simulcast=null,this.bitrate=0,this.control=null,this.dataChannel=null}clone(){const e=new T0(this.id,this.type);e.setDirection(this.direction),e.setBitrate(this.bitrate);for(const n of this.codecs.values())e.addCodec(n.clone());for(const[n,a]of this.extensions.entries())e.addExtension(n,a);for(const n of this.rids.values())e.addRID(n.clone());return this.simulcast&&e.setSimulcast(this.simulcast.clone()),this.control&&e.setControl(this.control),this.dataChannel&&e.setDataChannel
73(this.dataChannel.clone()),e}plain(){const e={id:this.id,type:this.type,direction:Hl.toString(this.direction),codecs:[]};this.dataChannel&&(e.dataChannel=this.dataChannel.plain()),this.bitrate&&(e.bitrate=this.bitrate);for(const n of this.codecs.values())e.codecs.push(n.plain());for(const[n,a]of this.extensions.entries())e.extensions||(e.extensions={}),e.extensions[n]=a;for(const n of this.rids.values())e.rids||(e.rids=[]),e.rids.push(n.plain());return this.simulcast&&(e.simulcast=this.simulcast.plain()),this.control&&(e.control=this.control),e}getType(){return this.type}getId(){return this.id}setId(e){this.id=e}addExtension(e,n){this.extensions.set(e,n)}addRID(e){this.rids.set(e.getId(),e)}addCodec(e){this.codecs.set(e.getType(),e)}setCodecs(e){this.codecs=e}getCodecForType(e){return this.codecs.get(e)}getCodec(e){for(const n of this.codecs.values())if(n.getCodec().toLowerCase()===e.toLowerCase())return n;return null}hasCodec(e){return this.getCodec(e)!==null}getCodecs(){return this.codecs}hasRTX(){for(const e of this.codecs.values())if(e.hasRTX())return!0;return!1}getExtensions(){return this.extensions}getRIDs(){return this.rids}getRID(e){return this.rids.get(e)}getBitrate(){return this.bitrate}setBitrate(e){this.bitrate=e}getDirection(){return this.direction}setDirection(e){this.direction=e}hasControl(){return!!this.control}getControl(){return this.control}setControl(e){this.control=e}hasDataChannel(){return!!this.dataChannel}getDataChannel(){return this.dataChannel}setDataChannel(e){this.dataChannel=e}answer(e){const n=new T0(this.id,this.type);if(e){n.setDirection(Hl.reverse(this.direction));const{codecs:a,dataChannel:o}=e;if(a){let u;Array.isArray(a)?u=Xw.MapFromNames(a,e.rtx,e.rtcpfbs):u=a;for(let c of this.codecs.values())for(let p of u.values()){if(p.getCodec().toLowerCase()!==c.getCodec().toLowerCase()||p.getCodec()==="h264"&&p.hasParam("packetization-mode")&&p.getParam("packetization-mode")!=c.getParam("packetization-mode","0")||p.getCodec()==="h264"&&p.hasParam("profile-level-id")&&c.hasParam("profile-level-id")&&p.getParam("profile-level-id")!=c.getParam("profile-level-id")||p.getCodec()==="multiopus"&&p.hasParam("num_streams")&&c.hasParam("num_streams")&&p.getParam("num_streams")!=c.getParam("num_streams"))continue;const d=p.clone();d.setType(c.getType()),d.hasRTX()&&d.setRTX(c.getRTX()),c.hasChannels()&&d.setChannels(c.getChannels()),d.addParams(c.getParams()),n.addCodec(d);break}}const s=new Set(e.extensions);for(let[u,c]of this.extensions)s.has(c)&&n.addExtension(u,c);if(e.simulcast&&this.simulcast){const u=new Y3,c=this.simulcast.getSimulcastStreams(Lu.SEND);if(c)for(const d of c){const m=d.map(f=>f.clone());u.addSimulcastAlternativeStreams(Lu.RECV,m)}const p=this.simulcast.getSimulcastStreams(Lu.RECV);if(p)for(const d of p){const m=d.map(f=>f.clone());u.addSimulcastAlternativeStreams(Lu.SEND,m)}for(const d of this.rids.values()){const m=d.clone();m.setDirection(Lu.reverse(d.getDirection())),n.addRID(m)}n.setSimulcast(u)}if(o&&this.dataChannel){const u=new q3(this.dataChannel.getPort(),o.maxMessageSize?o.maxMessageSize:this.dataChannel.getMaxMessageSize());n.setDataChannel(u)}}else n.setDirection(Hl.INACTIVE);return n}getSimulcast(){return this.simulcast}setSimulcast(e){this.simulcast=e}};Is.create=function(t,e,n){!n&&typeof e!="string"&&(n=e,e=t);const a=new Is(t,e);if(n){const{codecs:o}=n;o&&(Array.isArray(o)?a.setCodecs(Xw.MapFromNames(o,n.rtx,n.rtcpfbs)):a.setCodecs(o))}else a.setDirection(Hl.INACTIVE);return a};Is.expand=function(t){if(t.constructor.name==="MediaInfo")return t;t=t;const e=new Is(t.id,t.type);if(t.direction&&e.setDirection(Hl.byValue(t.direction)),e.setBitrate(t.bitrate),t.dataChannel){const n=q3.expand(t.dataChannel);n&&e.setDataChannel(n)}for(const[n,a]of Object.entries(t.extensions))e.addExtension(tQ(n),a);for(const n of t.codecs){const a=Xw.expand(n);a&&e.addCodec(a)}for(const n of t.rids||[]){const a=eQ.expand(n);e.addRID(a)}return t.simulcast&&e.setSimulcast(Y3.expand(t.simulcast)),t.control&&e.setControl(t.control),e};Is.clone=function(t){return t.constructor.name==="MediaInfo"?t.clone():Is.expand(t)};function tQ(t){const e=t.toString();if(!/^\d+$/.test(e))throw new Error("invalid integer ".concat(e));return parseInt(e)}var Z3=Is;let Ad=class K3{constructor(e,n){this.semantics=e,this.ssrcs=[];for(let a=0;a<n.length;++a)this.ssrcs.push(parseInt(n[a]))}clone(){return new K3(this.semantics,this.ssrcs)}plain(){const e={semantics:this.semantics,ssrcs:[]};for(let n=0;n<this.ssrcs.length;++n)e.ssrcs.push(this.ssrcs[n]);return e}getSemantics(){return this.semantics}getSSRCs(){return this.ssrcs}};Ad.expand=function(t){return t.constructor.name==="SourceGroupInfo"?t:(t=t,new Ad(t.semantics,t.ssrcs))};Ad.clone=function(t){return t.constructor.name==="SourceGroupInfo"?t.clone():Ad.expand(t)};var Jw=Ad;let xd=class X3{constructor(e){this.ssrc=e}clone(){const e=new X3(this.ssrc);return e.setCName(this.cname),e.setStreamId(this.streamId),e.setTrackId(this.trackId),e}plain(){const e={ssrc:this.ssrc};return this.cname&&(e.cname=this.cname),this.streamId&&(e.streamId=this.streamId),this.trackId&&(e.trackId=this.trackId),e}getCName(){return this.cname}setCName(e){this.cname=e}getStreamId(){return this.streamId}setStreamId(e){this.streamId=e}getTrackId(){return this.trackId}setTrackId(e){this.trackId=e}getSSRC(){return this.ssrc}};xd.expand=function(t){if(t.constructor.name==="SourceInfo")return t;t=t;const e=new xd(t.ssrc);return e.setCName(t.cname),e.setStreamId(t.streamId),e.setTrackId(t.trackId),e};xd.clone=function(t){return t.constructor.name==="SourceInfo"?t.clone():xd.expand(t)};var J3=xd;const nQ=Nm;let Od=class Q3{constructor(e,n=!1){this.id=e,this.paused=n,this.codecs=new Map,this.params=new Map}clone(){var e=new Q3(this.id,this.paused);for(let n of this.codecs.values())e.addCodec(n.clone());return e.setParams(this.params),e}plain(){var e={id:this.id,paused:this.paused,codecs:{},params:{}};for(var[n,a]of this.codecs.entries())e.codecs[n]=a.plain();
73for(var[n,o]of this.params.entries())e.params[n]=o;return e}getId(){return this.id}getCodecs(){return this.codecs}addCodec(e){this.codecs.set(e.getType(),e)}getParams(){return this.params}setParams(e){this.params=new Map(e)}addParam(e,n){this.params.set(e,n)}isPaused(){return this.paused}};Od.expand=function(t){if(t.constructor.name==="TrackEncodingInfo")return t;t=t;const e=new Od(t.id,t.paused);for(const n of Object.values(t.codecs||{}))e.addCodec(nQ.expand(n));for(const[n,a]of Object.entries(t.params||{}))e.addParam(n,a);return e};Od.clone=function(t){return t.constructor.name==="TrackEncodingInfo"?t.clone():Od.expand(t)};var Qw=Od;const Xb=Jw,gR=Qw;let Id=class e5{constructor(e,n){this.media=e,this.id=n,this.ssrcs=[],this.groups=[],this.encodings=[]}clone(){const e=new e5(this.media,this.id);this.mediaId&&e.setMediaId(this.mediaId);for(let n=0;n<this.ssrcs.length;++n)e.addSSRC(this.ssrcs[n]);for(let n=0;n<this.groups.length;++n)e.addSourceGroup(this.groups[n].clone());for(let n=0;n<this.encodings.length;++n){const a=[];for(let o=0;o<this.encodings[n].length;++o)a.push(this.encodings[n][o].clone());e.addAlternativeEncodings(a)}return e}plain(){const e={media:this.media,id:this.id,ssrcs:[]};this.mediaId&&(e.mediaId=this.mediaId);for(let n=0;n<this.ssrcs.length;++n)e.ssrcs.push(this.ssrcs[n]);for(let n=0;n<this.groups.length;++n)e.groups||(e.groups=[]),e.groups.push(this.groups[n].plain());for(let n=0;n<this.encodings.length;++n){const a=[];for(let o=0;o<this.encodings[n].length;++o)a.push(this.encodings[n][o].plain());a.length&&(e.encodings||(e.encodings=[]),e.encodings.push(a))}return e}getMedia(){return this.media}setMediaId(e){this.mediaId=e}getMediaId(){return this.mediaId}getId(){return this.id}addSSRC(e){this.ssrcs.push(e)}getSSRCs(){return this.ssrcs}addSourceGroup(e){this.groups.push(e)}getSourceGroup(e){for(const n of this.groups)if(n.getSemantics().toLowerCase()===e.toLowerCase())return n;return null}getSourceGroups(){return this.groups}getSourceGroupsForMediaSSRC(e){return this.groups.filter(n=>n.getSSRCs()[0]===e)}hasSourceGroup(e){for(const n of this.groups)if(n.getSemantics().toLowerCase()===e.toLowerCase())return!0;return!1}getEncodings(){return this.encodings}addEncoding(e){this.encodings.push([e])}addAlternativeEncodings(e){this.encodings.push(e)}setEncodings(e){this.encodings=e}getEncodingSources(){const e=[];if(this.encodings.length)for(const n of this.encodings)for(const a of n){const o={id:a.getId(),rid:a.getId()},s=a.getParams(),u=s==null?void 0:s.get("ssrc");if(u!==void 0){o.media=parseInt(u);
73for(const c of this.getSourceGroupsForMediaSSRC(o.media))switch(c.getSemantics()){case"FID":o.rtx=c.getSSRCs()[1];break;case"FEC-FR":o.fec=c.getSSRCs()[1];break}}e.push(o)}else if(this.hasSourceGroup("SIM")){const n=this.getSourceGroup("SIM").getSSRCs();this.getSourceGroups();for(const a of n){const o={id:String(a),media:a};for(const s of this.getSourceGroupsForMediaSSRC(o.media))switch(s.getSemantics()){case"FID":o.rtx=s.getSSRCs()[1];break;case"FEC-FR":o.fec=s.getSSRCs()[1];break}e.push(o)}}else{const n={id:""};if(this.ssrcs.length){n.media=this.ssrcs[0];for(const a of this.getSourceGroupsForMediaSSRC(n.media))switch(a.getSemantics()){case"FID":n.rtx=a.getSSRCs()[1];break;case"FEC-FR":n.fec=a.getSSRCs()[1];break}}e.push(n)}return e}};Id.expand=function(t){var e,n;if(t.constructor.name==="TrackInfo")return t;t=t;const a=new Id(t.media,t.id);if(t.mediaId&&a.setMediaId(t.mediaId),Array.isArray(t.ssrcs))for(const o of t.ssrcs)a.addSSRC(o);else if(((e=t.ssrcs)===null||e===void 0?void 0:e.media)!==void 0){const o=t.ssrcs.media;if(a.addSSRC(o),t.ssrcs.rtx!==void 0){const s=t.ssrcs.rtx;a.addSSRC(s),a.addSourceGroup(new Xb("FID",[o,s]))}if(t.ssrcs.fec!==void 0){const s=t.ssrcs.fec;a.addSSRC(s),a.addSourceGroup(new Xb("FEC-FR",[o,s]))}}if(t.rid){const o=new gR(t.rid);((n=t.ssrcs)===null||n===void 0?void 0:n.media)!==void 0&&o.addParam("ssrc",t.ssrcs.media),a.addAlternativeEncodings([o])}for(const o of t.groups||[])a.addSourceGroup(Xb.expand(o));for(const o of t.encodings||[]){const s=[];for(const u of o)s.push(gR.expand(u));a.addAlternativeEncodings(s)}return a};Id.clone=function(t){return t.constructor.name==="TrackInfo"?t.clone():Id.expand(t)};var e_=Id;const rQ=e_;let Dd=class t5{constructor(e){this.id=e,this.tracks=new Map}clone(){const e=new t5(this.id);for(const n of this.tracks.values())e.addTrack(n.clone());return e}plain(){const e={id:this.id,tracks:[]};for(const n of this.tracks.values())e.tracks.push(n.plain());return e}getId(){return this.id}addTrack(e){this.tracks.set(e.getId(),e)}removeTrack(e){return this.tracks.delete(e.getId())}removeTrackById(e){return this.tracks.delete(e)}getFirstTrack(e){for(let n of this.tracks.values())if(n.getMedia().toLowerCase()===e.toLowerCase())return n;return null}getTracks(){return this.tracks}removeAllTracks(){this.tracks.clear()}getTrack(e){return this.tracks.get(e)}};Dd.expand=function(t){if(t.constructor.name==="StreamInfo")return t;t=t;const e=new Dd(t.id);for(const n of t.tracks||[]){const a=rQ.expand(n);a&&e.addTrack(a)}return e};Dd.clone=function(t){return t.constructor.name==="StreamInfo"?t.clone():Dd.expand(t)};var n5=Dd;const Vl=Pi,qr=WJ("en-US"),gc=O3,aQ=Nm,iQ=zw,yc=P3,bc=M3,Ds=$3,Yp=Z3,R0=Gw,C0=Zw,ps=Wm,oQ=Jw,sQ=J3,ad=n5,Jb=e_,lQ=Qw,cQ=qw,yR=Yw,uQ=Vw,dQ=Kw;let Ea=class dp{constructor(e){this.version=e||1,this.streams=new Map,this.medias=new Array,this.candidates=new Array,this.ice=null,this.dtls=null,this.crypto=null,this.extmapAllowMixed=!0}clone(){const e=new dp(this.version);for(const n of this.medias)e.addMedia(n.clone());for(const n of this.streams.values())e.addStream(n.clone());for(const n of this.candidates)e.addCandidate(n.clone());return e.setICE(this.ice.clone()),this.dtls&&e.setDTLS(this.dtls.clone()),this.crypto&&e.setCrypto(this.crypto.clone()),e.setExtmapAllowMixed(this.extmapAllowMixed),e}plain(){const e={version:this.version,streams:[],medias:[],candidates:[]};for(const n of this.medias)e.medias.push(n.plain());for(const n of this.streams.values())e.streams.push(n.plain());for(const n of this.candidates)e.candidates.push(n.plain());return this.ice&&(e.ice=this.ice.plain()),this.dtls&&(e.dtls=this.dtls.plain()),this.crypto&&(e.crypto=this.crypto.plain()),this.extmapAllowMixed||(e.extmapAllowMixedNotSupported=!this.extmapAllowMixed),e}unify(){const e=new dp(this.version);for(const a of this.medias)e.addMedia(a.clone());const n={audio:e.getMediasByType("audio"),video:e.getMediasByType("video")};for(const a of this.streams.values()){const o=a.clone();for(const s of o.getTracks().values()){let u=n[s.getMedia()].pop();u||(u=this.getMedia(s.getMedia()).clone(),u.setId(s.getId()),e.addMedia(u)),s.setMediaId(u.getId())}e.addStream(o)}for(const a of this.candidates)e.addCandidate(a.clone());return this.ice&&e.setICE(this.ice.clone()),this.dtls&&e.setDTLS(this.dtls.clone()),this.crypto&&e.setCrypto(this.crypto.clone()),e}setVersion(e){this.version=e}addMedia(e){this.medias.push(e)}getMedia(e){for(let n in this.medias){let a=this.medias[n];if(qr(a.getType(),e))return a}return null}getMediasByType(e){let n=[];for(let a in this.medias){let o=this.medias[a];qr(o.getType(),e)&&n.push(o)}return n}getMediaById(e){for(const n of this.medias)if(qr(n.getId(),e))return n;return null}replaceMedia(e){for(let n in this.medias)if(this.medias[n].getId()==e.getId())return this.medias[n]=e,!0;return!1}getMedias(){return this.medias}getVersion(){return this.version}getDTLS(){return this.dtls}setDTLS(e){this.dtls=e}hasCrypto(){return!!this.crypto}getCrypto(){return this.crypto}setCrypto(e){this.crypto=e}hasICE(){return!!this.ice}getICE(){return this.ice}setICE(e){this.ice=e}addCandidate(e){for(const n of this.candidates)if(n.equals(e))return;this.candidates.push(e)}addCandidates(e){for(const n of e)this.addCandidate(n)}getCandidates(){return this.candidates}getStream(e){return this.streams.get(e)}getStreams(){return this.streams}getFirstStream(){for(const e of this.streams.values())return e;return null}addStream(e){this.streams.set(e.getId(),e)}removeStream(e){return this.streams.delete(e.getId())}removeAllStreams(){this.streams.clear()}getTracksByMediaType(e){let n=[];for(const a of this.streams.values())for(const[o,s]of a.getTracks())qr(s.getMedia(),e)&&n.push(s);return n}getTrackByMediaId(e){for(const n of this.streams.values())for(const[a,o]
vendor: 5,302 bytes, line 73
73of n.getTracks())if(o.getMediaId()==e)return o;return null}getStreamByMediaId(e){for(const n of this.streams.values())for(const[a,o]of n.getTracks())if(o.getMediaId()==e)return n;return null}getExtmapAllowMixed(){return this.extmapAllowMixed}setExtmapAllowMixed(e){this.extmapAllowMixed=e}answer(e){const n=new dp;e.ice&&(e.ice instanceof Ds?n.setICE(e.ice.clone()):n.setICE(Ds.expand(e.ice))),e.dtls&&(e.dtls instanceof yc?n.setDTLS(e.dtls):n.setDTLS(yc.expand(e.dtls))),e.crypto&&(e.crypto instanceof bc?n.setCrypto(e.crypto):n.setCrypto(bc.expand(e.crypto)));for(let a=0;e.candidates&&a<e.candidates.length;++a)e.candidates[a]instanceof gc?n.addCandidate(e.candidates[a].clone()):n.addCandidate(gc.expand(e.candidates[a]));for(const a of this.medias){const o=e&&e.capabilities&&e.capabilities[a.getType()];n.addMedia(a.answer(o))}return n.setExtmapAllowMixed(this.extmapAllowMixed),n}toString(){let e={version:0,media:[]};e.version=0,e.origin={username:"-",sessionId:new Date().getTime(),sessionVersion:this.version,netType:"IN",ipVer:4,address:"127.0.0.1"},e.name="semantic-sdp",e.connection={version:4,ip:"0.0.0.0"},e.timing={start:0,stop:0},this.hasICE()&&this.getICE().isLite()&&(e.icelite="ice-lite"),e.msidSemantic={semantic:"WMS",token:"*"},e.groups=[],this.extmapAllowMixed&&(e.extmapAllowMixed="extmap-allow-mixed");const n=[];for(const o of this.medias){let s={type:o.getType(),port:9,protocol:"",fmtp:[],rtp:[],rtcpFb:[],ext:[],bandwidth:[],candidates:[],ssrcGroups:[],ssrcs:[],rids:[]};s.direction=C0.toString(o.getDirection()),this.extmapAllowMixed&&(s.extmapAllowMixed="extmap-allow-mixed"),s.mid=o.getId(),n.push(o.getId()),o.hasControl()&&(s.control=o.getControl()),o.getBitrate()>0&&(s.bandwidth.push({type:"AS",limit:o.getBitrate()}),s.bandwidth.push({type:"TIAS",limit:o.getBitrate()*1e3}));let u=this.getCandidates();for(const c of u)s.candidates.push({foundation:c.getFoundation(),component:c.getComponentId(),transport:c.getTransport(),priority:c.getPriority(),ip:c.getAddress(),port:c.getPort(),type:c.getType(),raddr:c.getRelAddr(),rport:c.getRelPort()});if(this.getICE()&&(s.iceUfrag=this.getICE().getUfrag(),s.icePwd=this.getICE().getPwd()),qr("audio",o.getType())||qr("video",o.getType())){s.rtcpMux="rtcp-mux",s.rtcpRsize="rtcp-rsize",this.getDTLS()?(s.protocol="UDP/TLS/RTP/SAVPF",s.fingerprint={type:this.getDTLS().getHash(),hash:this.getDTLS().getFingerprint()},s.setup=R0.toString(this.getDTLS().getSetup())):this.getCrypto()?(s.protocol="RTP/SAVPF",s.crypto=[{id:this.getCrypto().getTag(),suite:this.getCrypto().getSuite(),config:this.getCrypto().getKeyParams()}]):s.protocol="RTP/AVP";for(const d of o.getCodecs().values()){qr("video",o.getType())?s.rtp.push({payload:d.getType(),codec:d.getCodec().toUpperCase(),rate:9e4}):qr("opus",d.getCodec())?s.rtp.push({payload:d.getType(),codec:d.getCodec(),rate:48e3,encoding:d.getChannels()}):qr("multiopus",d.getCodec())?s.rtp.push({payload:d.getType(),codec:d.getCodec(),rate:48e3,encoding:d.getChannels()}):s.rtp.push({payload:d.getType(),codec:d.getCodec(),rate:8e3});for(const f of d.getRTCPFeedbacks())s.rtcpFb.push({payload:d.getType(),type:f.getId(),subtype:f.getParams().join(" ")});d.hasRTX()&&(s.rtp.push({payload:d.getRTX(),codec:"rtx",rate:9e4}),s.fmtp.push({payload:d.getRTX(),config:"apt="+d.getType()}));const m=d.getParams();if(Object.keys(m).length){const f={payload:d.getType(),config:""};for(const b in m)f.config.length&&(f.config+=";"),Object.hasOwnProperty.call(m,b)?f.config+=b+"="+m[b]:f.config+=b;s.fmtp.push(f)}}const c=[];for(const d of s.rtp)c.push(d.payload);s.payloads=c.join(" ");for(let[d,m]of o.getExtensions().entries())s.ext.push({value:d,uri:m});for(let d of o.getRIDs().values()){let m={id:d.getId(),direction:ps.toString(d.getDirection()),params:""};d.getFormats().length&&(m.params="pt="+d.getFormats().join(","));for(let[f,b]of d.getParams().entries())m.params+=(m.params.length?";":"")+f+"="+b;s.rids.push(m)}const p=o.getSimulcast();if(p){let d=1;s.simulcast={};const m=p.getSimulcastStreams(ps.SEND),f=p.getSimulcastStreams(ps.RECV);if(m&&m.length){let b="";for(const v of m){let y="";for(const g of v)y+=(y.length?",":"")+(g.isPaused()?"~":"")+g.getId();b+=(b.length?";":"")+y}s.simulcast["dir"+d]="send",s.simulcast["list"+d]=b,d++}if(f&&f.length){let b="";for(const v of f){let y="";for(const g of v)y+=(y.length?",":"")+(g.isPaused()?"~":"")+g.getId();b+=(b.length?";":"")+y}s.simulcast["dir"+d]="recv",s.simulcast["list"+d]=b,d++}}}else if(o.hasDataChannel()){s.protocol="UDP/DTLS/SCTP",s.payloads="webrtc-datachannel";const c=o.getDataChannel();s.sctpPort=c.getPort(),s.maxMessageSize=c.getMaxMessageSize()}e.media.push(s)}for(let o of this.streams.values())for(let s of o.getTracks().values())for(let u in e.media){let c=e.media[u];if(s.getMediaId()){if(s.getMediaId()==c.mid){let p=s.getSourceGroups();for(let m in p){let f=p[m];c.ssrcGroups.push({semantics:f.getSemantics(),ssrcs:f.getSSRCs().join(" ")})}let d=s.getSSRCs();for(let m in d)c.ssrcs.push({id:d[m],attribute:"cname",value:o.getId()}),c.ssrcs.push({id:d[m],attribute:"msid",value:o.getId()+" "+s.getId()});c.msid=o.getId()+" "+s.getId();break}}else if(qr(c.type,s.getMedia())){let p=s.getSourceGroups();for(let m in p){let f=p[m];c.ssrcGroups.push({semantics:f.getSemantics(),ssrcs:f.getSSRCs().join(" ")})}
73let d=s.getSSRCs();for(let m in d)c.ssrcs.push({id:d[m],attribute:"cname",value:o.getId()}),c.ssrcs.push({id:d[m],attribute:"msid",value:o.getId()+" "+s.getId()});break}}const a={type:"BUNDLE",mids:n.join(" ")};return e.groups.push(a),Vl.write(e)}toIceFragmentString(){let e={version:0,media:[],candidates:[]};this.hasICE()&&this.getICE().isLite()&&(e.icelite="ice-lite"),this.getICE()&&(e.iceUfrag=this.getICE().getUfrag(),e.icePwd=this.getICE().getPwd());for(const n of this.getCandidates())e.candidates.push({foundation:n.getFoundation(),component:n.getComponentId(),transport:n.getTransport(),priority:n.getPriority(),ip:n.getAddress(),port:n.getPort(),type:n.getType(),raddr:n.getRelAddr(),rport:n.getRelPort()});return Vl.write(e).slice(10)}};Ea.create=function(t){var e;const n=new Ea;if(t.streams)for(const u of t.streams)n.addStream(ad.expand(u));t.ice&&(t.ice instanceof Ds?n.setICE(t.ice.clone()):n.setICE(Ds.expand(t.ice))),t.dtls&&(t.dtls instanceof yc?n.setDTLS(t.dtls):n.setDTLS(yc.expand(t.dtls))),t.crypto&&(t.crypto instanceof bc?n.setCrypto(t.crypto):n.setCrypto(bc.expand(t.crypto)));for(const u of t.candidates||[])u instanceof gc?n.addCandidate(u.clone()):n.addCandidate(gc.expand(u));let a=96,o=1,s=0;for(const[u,c]of Object.entries(t.capabilities||{}))if(t.unified&&!((e=t.streams)===null||e===void 0)&&e.length)for(const p of n.getTracksByMediaType(u)){const d=Yp.create(p.getMediaId(),u,c);for(const[m,f]of d.getCodecs())f.getType()>=96&&f.setType(a++),f.getRTX()&&f.setRTX(a++);if(c.extensions)for(let m of c.extensions)o===15&&o++,d.addExtension(o++,m);n.addMedia(d)}else{const p=Yp.create(t.unified?String(s++):u,u,c);for(const[d,m]of p.getCodecs())m.getType()>=96&&m.setType(a++),m.getRTX()&&m.setRTX(a++);if(c.extensions)for(let d of c.extensions)o===15&&o++,p.addExtension(o++,d);n.addMedia(p)}return n};Ea.expand=function(t){if(t.constructor.name==="SDPInfo")return t;t=t;const e=new Ea(t.version);for(const n of t.medias||[]){const a=Yp.expand(n);a&&e.addMedia(a)}for(const n of t.streams||[]){const a=ad.expand(n);a&&e.addStream(a)}for(const n of t.candidates||[]){const a=gc.expand(n);a&&e.addCandidate(a)}return t.ice&&e.setICE(Ds.expand(t.ice)),t.dtls&&e.setDTLS(yc.expand(t.dtls)),t.crypto&&e.setCrypto(bc.expand(t.crypto)),t.extmapAllowMixedNotSupported&&(this.extmapAllowMixed=!t.extmapAllowMixedNotSupported),e};Ea.clone=function(t){return t.constructor.name==="SDPInfo"?t.clone():Ea.expand(t)};Ea.process=function(t){return Ea.parse(t)};Ea.parse=function(t){const e=Vl.parse(t),n=new Ea;if(n.setVersion(e.version),e.iceUfrag&&e.icePwd){const a=String(e.iceUfrag),o=String(e.icePwd),s=new Ds(a,o);s.setLite(e.icelite=="ice-lite"),s.setEndOfCandidates(e.endOfCandidates=="end-of-candidates"),n.setICE(s)}for(let a in e.media){const o=e.media[a],s=o.type,u=o.mid?o.mid.toString():a,c=new Yp(u,s);if(o.iceUfrag&&o.icePwd){const g=String(o.iceUfrag),S=String(o.icePwd),w=new Ds(g,S);w.setLite(e.icelite=="ice-lite"),w.setEndOfCandidates(o.endOfCandidates=="end-of-candidates"),n.setICE(w)}for(let g=0;o.candidates&&g<o.candidates.length;++g){const S=o.candidates[g],w=new gc(S.foundation,S.component,S.transport,S.priority,S.ip,S.port,S.type,S.raddr,S.rport);n.addCandidate(w)}const p=o.fingerprint||e.fingerprint;if(p){const g=p.type,S=p.hash;let w=R0.ACTPASS;o.setup&&(w=R0.byValue(o.setup)),n.setDTLS(new yc(w,g,S))}if(o.crypto){const g=o.crypto[0];n.setCrypto(new bc(g.id,g.suite,g.config,g.sessionConfig))}let d=C0.SENDRECV;o.direction&&(d=C0.byValue(o.direction),c.setDirection(d)),o.control&&c.setControl(o.control),n.setExtmapAllowMixed(o.extmapAllowMixed=="extmap-allow-mixed"||e.extmapAllowMixed=="extmap-allow-mixed");const m=new Map;for(let g in o.rtp){const S=o.rtp[g],w=S.payload,k=S.codec;if(k.toUpperCase()==="RED"||k.toUpperCase()==="ULPFEC")continue;let T={};for(let R in o.fmtp){const I=o.fmtp[R];if(I.payload===w){const M=I.config.split(";");for(let L in M){const O=M[L].split("="),W=O[0].trim(),F=O.splice(1).join("=").trim();T[W]=F}}}if(k.toUpperCase()==="RTX")m.set(parseInt(T.apt),w);else{const R=new aQ(k,w,T);S.encoding>1&&R.setChannels(S.encoding),c.addCodec(R)}}for(let g of m.entries()){const S=c.getCodecForType(g[0]);S&&S.setRTX(g[1])}for(let g=0;o.rtcpFb&&g<o.rtcpFb.length;++g){const S=c.getCodecForType(o.rtcpFb[g].payload);if(S){const w=o.rtcpFb[g].type,k=o.rtcpFb[g].subtype?o.rtcpFb[g].subtype.split(" "):null;S.addRTCPFeedback(new iQ(w,k))}}const f=o.ext;
73for(let g in f){const S=f[g];c.addExtension(S.value,S.uri)}const b=o.rids;for(let g in b){const S=b[g],w=new uQ(S.id,ps.byValue(S.direction));let k=[];const T=new Map;if(S.params){const R=Vl.parseParams(S.params);for(let I in R)I==="pt"?k=R[I].split(","):T.set(I,R[I]);w.setFormats(k),w.setParams(T)}c.addRID(w)}const v=[];if(o.simulcast){const g=new cQ;if(o.simulcast.dir1){const S=ps.byValue(o.simulcast.dir1),w=Vl.parseSimulcastStreamList(o.simulcast.list1);for(let k=0;k<w.length;++k){const T=[];for(let R=0;R<w[k].length;++R)T.push(new yR(w[k][R].scid,w[k][R].paused));g.addSimulcastAlternativeStreams(S,T)}}if(o.simulcast.dir2){const S=ps.byValue(o.simulcast.dir2),w=Vl.parseSimulcastStreamList(o.simulcast.list2);for(let k=0;k<w.length;++k){const T=[];for(let R=0;R<w[k].length;++R)T.push(new yR(w[k][R].scid,w[k][R].paused));g.addSimulcastAlternativeStreams(S,T)}}for(let S of g.getSimulcastStreams(ps.SEND)){const w=[];for(let k=0;k<S.length;k++){const T=new lQ(S[k].getId(),S[k].isPaused()),R=c.getRID(T.getId());if(R){const I=R.getFormats();for(let M=0;I&&M<I.length;++M){const L=c.getCodecForType(I[M]);L&&T.addCodec(L)}T.setParams(R.getParams()),w.push(T)}}w.length&&v.push(w)}c.setSimulcast(g)}const y=new Map;if(o.ssrcs)for(let g in o.ssrcs){let S=o.ssrcs[g],w=S.id,k=S.attribute,T=S.value,R=y.get(w);if(R||(R=new sQ(w),y.set(R.getSSRC(),R)),qr("cname",k))R.setCName(T);else if(qr("msid",k)){let I=T.split(" "),M=I[0],L=I[1];R.setStreamId(M),R.setTrackId(L);let O=n.getStream(M);O||(O=new ad(M),n.addStream(O));let W=O.getTrack(L);W||(W=new Jb(s,L),W.setMediaId(u),W.setEncodings(v),O.addTrack(W)),W.addSSRC(w)}}if(o.msid){let g=o.msid.split(" "),S=g[0],w=g[1],k=n.getStream(S);k||(k=new ad(S),n.addStream(k));let T=k.getTrack(w);T||(T=new Jb(s,w),T.setMediaId(u),T.setEncodings(v),k.addTrack(T));for(let[R,I]of y.entries())I.getStreamId()||(I.setStreamId(S),I.setTrackId(w),T.addSSRC(R))}for(let[g,S]of y.entries())if(!S.getStreamId()){let w=S.getCName(),k=u;S.setStreamId(w),S.setTrackId(k);let T=n.getStream(w);T||(T=new ad(w),n.addStream(T));let R=T.getTrack(k);R||(R=new Jb(s,k),R.setMediaId(u),R.setEncodings(v),T.addTrack(R)),R.addSSRC(g)}if(o.ssrcGroups)for(let g in o.ssrcGroups){let S=o.ssrcGroups[g],w=S.ssrcs.split(" "),k=new oQ(S.semantics,w),T=y.get(parseInt(w[0]));T&&n.getStream(T.getStreamId()).getTrack(T.getTrackId()).addSourceGroup(k)}if(o.type=="application"&&o.payloads=="webrtc-datachannel"){const g=new dQ(o.sctpPort,o.maxMessageSize);c.setDataChannel(g)}n.addMedia(c)}return n};var hQ=Ea;Object.defineProperty(fn,"__esModule",{value:!0});var Nu=fn.SDPInfo=hQ;fn.CandidateInfo=O3;fn.CodecInfo=Nm;fn.DTLSInfo=P3;fn.CryptoInfo=M3;fn.ICEInfo=$3;var fQ=fn.MediaInfo=Z3;fn.Setup=Gw;fn.SourceGroupInfo=Jw;fn.SourceInfo=J3;fn.StreamInfo=n5;fn.TrackInfo=e_;fn.RTCPFeedbackInfo=zw;fn.TrackEncodingInfo=Qw;fn.RIDInfo=Vw;fn.SimulcastInfo=qw;fn.SimulcastStreamInfo=Yw;fn.DataChannelInfo=Kw;var pQ=fn.Direction=Zw,A0={exports:{}};(function(t,e){(function(n,a){var o="0.7.39",s="",u="?",c="function",p="undefined",d="object",m="string",f="major",b="model",v="name",y="type",g="vendor",S="version",w="architecture",k="console",T="mobile",R="tablet",I="smarttv",M="wearable",L="embedded",O=500,W="Amazon",F="Apple",G="ASUS",ee="BlackBerry",de="Browser",ye="Chrome",_e="Edge",Y="Firefox",q="Google",re="Huawei",be="LG",se="Microsoft",j="Motorola",X="Opera",fe="Samsung",pe="Sharp",we="Sony",xe="Xiaomi",Me="Zebra",it="Facebook",ot="Chromium OS",zt="Mac OS",Ln=" Browser",Lr=function(ze,A){var N={};for(var B in ze)A[B]&&A[B].length%2===0?N[B]=A[B].concat(ze[B]):N[B]=ze[B];return N},En=function(ze){for(var A={},N=0;N<ze.length;N++)A[ze[N].toUpperCase()]=ze[N];return A},gn=function(ze,A){return typeof ze===m?Un(A).indexOf(Un(ze))!==-1:!1},Un=function(ze){return ze.toLowerCase()},Kn=function(ze){return typeof ze===m?ze.replace(/[^\d\.]/g,s).split(".")[0]:a},Fn=function(ze,A){if(typeof ze===m)return ze=ze.replace(/^\s\s*/,s),typeof A===p?ze:ze.substring(0,O)},Nr=function(ze,A){for(var N=0,B,D,C,x,U,H;N<A.length&&!U;){var Q=A[N],ae=A[N+1];for(B=D=0;B<Q.length&&!U&&Q[B];)if(U=Q[B++].exec(ze),U)for(C=0;C<ae.length;C++)H=U[++D],x=ae[C],typeof x===d&&x.length>0?x.length===2?typeof x[1]==c?this[x[0]]=x[1].call(this,H):this[x[0]]=x[1]:x.length===3?typeof x[1]===c&&!(x[1].exec&&x[1].test)?this[x[0]]=H?x[1].call(this,H,x[2]):a:this[x[0]]=H?H.replace(x[1],x[2]):a:x.length===4&&(this[x[0]]=H?x[3].call(this,H.replace(x[1],x[2])):a):this[x]=H||a;N+=2}},Pr=function(ze,A){for(var N in A)if(typeof A[N]===d&&A[N].length>0){for(var B=0;B<A[N].length;B++)if(gn(A[N][B],ze))return N===u?a:N}else if(gn(A[N],ze))return N===u?a:N;return A.hasOwnProperty("*")?A["*"]:ze},Wr={"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"},fr={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2e3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},Tn={browser:[[/\b(?:crmo|crios)\/([\w\.]+)/i],[S,[v,"Chrome"]],[/edg(?:e|ios|a)?\/([\w\.]+)/i],[S,[v,"Edge"]],[/(opera mini)\/([-\w\.]+)/i,/(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i,/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i],[v,S],[/opios[\/ ]+([\w\.]+)/i],[S,[v,X+" Mini"]],[/\bop(?:rg)?x\/([\w\.]+)/i],[S,[v,X+" GX"]],[/\bopr\/([\w\.]+)/i],[S,[v,X]],[/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i],[S,[v,"Baidu"]],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\/ ]?([\w\.]*)/i,/(avant|iemobile|slim)\s?(?:browser)?[\/ ]?([\w\.]*)/i,/(?:ms|\()(ie) ([\w\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio)\/([-\w\.]+)/i,/(heytap|ovi)browser\/([\d\.]+)/i,/(weibo)__([\d\.]+)/i],[v,S],[/quark(?:pc)?\/([-\w\.]+)/i],[S,[v,"Quark"]],[/\bddg\/([\w\.]+)/i],[S,[v,"DuckDuckGo"]],[/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i],[S,[v,"UC"+de]],[/microm.+\bqbcore\/([\w\.]+)/i,/\bqbcore\/([\w\.]+).+microm/i,/micromessenger\/([\w\.]+)/i],[S,[v,"WeChat"]],[/konqueror\/([\w\.]+)/i],[S,[v,"K
73onqueror"]],[/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i],[S,[v,"IE"]],[/ya(?:search)?browser\/([\w\.]+)/i],[S,[v,"Yandex"]],[/slbrowser\/([\w\.]+)/i],[S,[v,"Smart Lenovo "+de]],[/(avast|avg)\/([\w\.]+)/i],[[v,/(.+)/,"$1 Secure "+de],S],[/\bfocus\/([\w\.]+)/i],[S,[v,Y+" Focus"]],[/\bopt\/([\w\.]+)/i],[S,[v,X+" Touch"]],[/coc_coc\w+\/([\w\.]+)/i],[S,[v,"Coc Coc"]],[/dolfin\/([\w\.]+)/i],[S,[v,"Dolphin"]],[/coast\/([\w\.]+)/i],[S,[v,X+" Coast"]],[/miuibrowser\/([\w\.]+)/i],[S,[v,"MIUI "+de]],[/fxios\/([-\w\.]+)/i],[S,[v,Y]],[/\bqihu|(qi?ho?o?|360)browser/i],[[v,"360"+Ln]],[/\b(qq)\/([\w\.]+)/i],[[v,/(.+)/,"$1Browser"],S],[/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i],[[v,/(.+)/,"$1"+Ln],S],[/samsungbrowser\/([\w\.]+)/i],[S,[v,fe+" Internet"]],[/(comodo_dragon)\/([\w\.]+)/i],[[v,/_/g," "],S],[/metasr[\/ ]?([\d\.]+)/i],[S,[v,"Sogou Explorer"]],[/(sogou)mo\w+\/([\d\.]+)/i],[[v,"Sogou Mobile"],S],[/(electron)\/([\w\.]+) safari/i,/(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i,/m?(qqbrowser|2345Explorer)[\/ ]?([\w\.]+)/i],[v,S],[/(lbbrowser|rekonq)/i,/\[(linkedin)app\]/i],[v],[/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i],[[v,it],S],[/(Klarna)\/([\w\.]+)/i,/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,/(naver)\(.*?(\d+\.[\w\.]+).*\)/i,/safari (line)\/([\w\.]+)/i,/\b(line)\/([\w\.]+)\/iab/i,/(alipay)client\/([\w\.]+)/i,/(twitter)(?:and| f.+e\/([\w\.]+))/i,/(chromium|instagram|snapchat)[\/ ]([-\w\.]+)/i],[v,S],[/\bgsa\/([\w\.]+) .*safari\//i],[S,[v,"GSA"]],[/musical_ly(?:.+app_?version\/|_)([\w\.]+)/i],[S,[v,"TikTok"]],[/headlesschrome(?:\/([\w\.]+)| )/i],[S,[v,ye+" Headless"]],[/ wv\).+(chrome)\/([\w\.]+)/i],[[v,ye+" WebView"],S],[/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i],[S,[v,"Android "+de]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i],[v,S],[/version\/([\w\.\,]+) .*mobile\/\w+ (safari)/i],[S,[v,"Mobile Safari"]],[/version\/([\w(\.|\,)]+) .*(mobile ?safari|safari)/i],[S,v],[/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i],[v,[S,Pr,Wr]],[/(webkit|khtml)\/([\w\.]+)/i],[v,S],[/(navigator|netscape\d?)\/([-\w\.]+)/i],[[v,"Netscape"],S],[/(wolvic)\/([\w\.]+)/i],[v,S],[/mobile vr; rv:([\w\.]+)\).+firefox/i],[S,[v,Y+" Reality"]],[/ekiohf.+(flow)\/([\w\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\/ ]?([\w\.\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i,/(firefox)\/([\w\.]+)/i,/(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i,/(links) \(([\w\.]+)/i],[v,[S,/_/g,"."]],[/(cobalt)\/([\w\.]+)/i],[v,[S,/master.|lts./,""]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i],[[w,"amd64"]],[/(ia32(?=;))/i],[[w,Un]],[/((?:i[346]|x)86)[;\)]/i],[[w,"ia32"]],[/\b(aarch64|arm(v?8e?l?|_?64))\b/i],[[w,"arm64"]],[/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i],[[w,"armhf"]],[/windows (ce|mobile); ppc;/i],[[w,"arm"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i],[[w,/ower/,s,Un]],[/(sun4\w)[;\)]/i],[[w,"sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i],[[w,Un]]],device:[[/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i],[b,[g,fe],[y,R]],[/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,/samsung[- ]((?!sm-[lr])[-\w]+)/i,/sec-(sgh\w+)/i],[b,[g,fe],[y,T]],[/(?:\/|\()(ip(?:hone|od)[\w, ]*)(?:\/|;)/i],[b,[g,F],[y,T]],[/\((ipad);[-\w\),; ]+apple/i,/applecoremedia\/[\w\.]+ \((ipad)/i,/\b(ipad)\d\d?,\d\d?[;\]].+ios/i],[b,[g,F],[y,R]],[/(macintosh);/i],[b,[g,F]],[/\b(sh-?[altvz]?\d\d[a-ekm]?)/i],[b,[g,pe],[y,T]],[/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i],[b,[g,re],[y,R]],[/(?:huawei|honor)([-\w ]+)[;\)]/i,/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][012359c][adn]?)\b(?!.+d\/s)/i],[b,[g,re],[y,T]],[/\b(poco[\w ]+|m2\d{3}j\d\d[a-z]{2})(?: bui|\))/i,/\b; (\w+) build\/hm\1/i,/\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i,/\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i,/oid[^\)]+; (m?[12][0-389][01]\w{3,6}[c-y])( bui|; wv|\))/i,/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\))/i],[[b,/_/g," "],[g,xe],[y,T]],[/oid[^\)]+; (2\d{4}(283|rpbf)[cgl])( bui|\))/i,/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i],[[b,/_/g," "],[g,xe],[y,R]],[/; (\w+) bui.+ oppo/i,/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i],[b,[g,"OPPO"],[y,T]],[/\b(opd2\d{3}a?) bui/i],[b,[g,"OPPO"],[y,R]],[/vivo (\w+)(?: bui|\))/i,/\b(v[12]\d{3}\w?[at])(?: bui|;)/i],[b,[g,"Vivo"],[y,T]],[/\b(rmx[1-3]\d{3})(?: bui|;|\))/i],[b,[g,"Realme"],[y,T]],[/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,/\bmot(?:orola)?[- ](\w*)/i,/((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i],[b,[g,j],[y,T]],[/\b(mz60\d|xoom[2 ]{0,2}) build\//i],[b,[g,j],[y,R]],[/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i],[b,[g,be],[y,R]],[/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i,/\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i,/\blg-?([\d\w]+) bui/i],[b,[g,be],[y,T]],[/(ideatab[-\w ]+)/i,/lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i],[b,[g,"Lenovo"],[y,R]],[/(?:maemo|nokia).*(n900|lumia \d+)/i,/nokia[-_ ]?([-\w\.]*)/i],[[b,/_/g," "],[g,"Nokia"],[y,T]],[/(pixel c)\b/i],[b,[g,q],[y,R]],[/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i],[b,[g,q],[y,T]],[/droid.+ (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i],[b,[g,we],[y,T]],[/sony tablet [ps]/i,/\b(?:sony)?sgp\w+(?: bui|\))/i],[[b,"Xperia Tablet"],[g,we],[y,R]],[/ (kb2005|in20[12]5|be20[12][59])\b/i,/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i],[b,[g,"OnePlus"],[y,T]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo(?!bc)\w\w)( bui|\))/i,/(kf[a-z]+)( bui|\)).+silk\//i],[b,[g,W],[y,R]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i],[[b,/(.+)/g,"Fire Phone $1"],[g,W],[y,T]],[/(playbook);[-\w\),; ]+(rim)/i],[b,g,[y,R]],[/\b((?:bb[a-f]|st[hv])100-\d)/i,/\(bb10; (\w+)/i],[b,[g,ee],[y,T]],[/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i],[b,[g,G],[y,R]],[/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i],[b,[g,G],[y,T]],[/(nexus 9)/i],[b,[g,"HTC"],[y,R]],[/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i,/(zte)[- ]([\w ]+?)(?: bui|\/|\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i],[g,[b,/_/g," "],[y,T]],[/droid [\w\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])\w*(\)| bui)/i],[b,[g,"TCL"],[y,R]],[/(itel) ((\w+))/i],[[g,Un],b,[y,Pr,{tablet:["p10001l","w7001"],"*":"mobile"}]],[/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i],[b,[g,"Acer"],[y,R]],[/droid.+; (m[1-5] note) bui/i,/\bmz-([-\w]{2,})/i],[b,[g,"Meizu"],[y,T]],[/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i],[b,[g,"Ulefone"],[y,T]],[/droid.+; (a(?:015|06[35]|142p?))/i],[b,[g,"Nothing"],[y,T]],[/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\w]*)/i,/(hp) ([\w ]+\w)/i,/(asu
vendor: 7,521 bytes, line 73
73s)-?(\w+)/i,/(microsoft); (lumia[\w ]+)/i,/(lenovo)[-_ ]?([-\w]+)/i,/(jolla)/i,/(oppo) ?([\w ]+) bui/i],[g,b,[y,T]],[/(kobo)\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\/([\w\.]+)/i,/(nook)[\w ]+build\/(\w+)/i,/(dell) (strea[kpr\d ]*[\dko])/i,/(le[- ]+pan)[- ]+(\w{1,9}) bui/i,/(trinity)[- ]*(t\d{3}) bui/i,/(gigaset)[- ]+(q\w{1,9}) bui/i,/(vodafone) ([\w ]+)(?:\)| bui)/i],[g,b,[y,R]],[/(surface duo)/i],[b,[g,se],[y,R]],[/droid [\d\.]+; (fp\du?)(?: b|\))/i],[b,[g,"Fairphone"],[y,T]],[/(u304aa)/i],[b,[g,"AT&T"],[y,T]],[/\bsie-(\w*)/i],[b,[g,"Siemens"],[y,T]],[/\b(rct\w+) b/i],[b,[g,"RCA"],[y,R]],[/\b(venue[\d ]{2,7}) b/i],[b,[g,"Dell"],[y,R]],[/\b(q(?:mv|ta)\w+) b/i],[b,[g,"Verizon"],[y,R]],[/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i],[b,[g,"Barnes & Noble"],[y,R]],[/\b(tm\d{3}\w+) b/i],[b,[g,"NuVision"],[y,R]],[/\b(k88) b/i],[b,[g,"ZTE"],[y,R]],[/\b(nx\d{3}j) b/i],[b,[g,"ZTE"],[y,T]],[/\b(gen\d{3}) b.+49h/i],[b,[g,"Swiss"],[y,T]],[/\b(zur\d{3}) b/i],[b,[g,"Swiss"],[y,R]],[/\b((zeki)?tb.*\b) b/i],[b,[g,"Zeki"],[y,R]],[/\b([yr]\d{2}) b/i,/\b(dragon[- ]+touch |dt)(\w{5}) b/i],[[g,"Dragon Touch"],b,[y,R]],[/\b(ns-?\w{0,9}) b/i],[b,[g,"Insignia"],[y,R]],[/\b((nxa|next)-?\w{0,9}) b/i],[b,[g,"NextBook"],[y,R]],[/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[g,"Voice"],b,[y,T]],[/\b(lvtel\-)?(v1[12]) b/i],[[g,"LvTel"],b,[y,T]],[/\b(ph-1) /i],[b,[g,"Essential"],[y,T]],[/\b(v(100md|700na|7011|917g).*\b) b/i],[b,[g,"Envizen"],[y,R]],[/\b(trio[-\w\. ]+) b/i],[b,[g,"MachSpeed"],[y,R]],[/\btu_(1491) b/i],[b,[g,"Rotor"],[y,R]],[/(shield[\w ]+) b/i],[b,[g,"Nvidia"],[y,R]],[/(sprint) (\w+)/i],[g,b,[y,T]],[/(kin\.[onetw]{3})/i],[[b,/\./g," "],[g,se],[y,T]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i],[b,[g,Me],[y,R]],[/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i],[b,[g,Me],[y,T]],[/smart-tv.+(samsung)/i],[g,[y,I]],[/hbbtv.+maple;(\d+)/i],[[b,/^/,"SmartTV"],[g,fe],[y,I]],[/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i],[[g,be],[y,I]],[/(apple) ?tv/i],[g,[b,F+" TV"],[y,I]],[/crkey/i],[[b,ye+"cast"],[g,q],[y,I]],[/droid.+aft(\w+)( bui|\))/i],[b,[g,W],[y,I]],[/\(dtv[\);].+(aquos)/i,/(aquos-tv[\w ]+)\)/i],[b,[g,pe],[y,I]],[/(bravia[\w ]+)( bui|\))/i],[b,[g,we],[y,I]],[/(mitv-\w{5}) bui/i],[b,[g,xe],[y,I]],[/Hbbtv.*(technisat) (.*);/i],[g,b,[y,I]],[/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i,/hbbtv\/\d+\.\d+\.\d+ +\([\w\+ ]*; *([\w\d][^;]*);([^;]*)/i],[[g,Fn],[b,Fn],[y,I]],[/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i],[[y,I]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[g,b,[y,k]],[/droid.+; (shield) bui/i],[b,[g,"Nvidia"],[y,k]],[/(playstation [345portablevi]+)/i],[b,[g,we],[y,k]],[/\b(xbox(?: one)?(?!; xbox))[\); ]/i],[b,[g,se],[y,k]],[/\b(sm-[lr]\d\d[05][fnuw]?s?)\b/i],[b,[g,fe],[y,M]],[/((pebble))app/i],[g,b,[y,M]],[/(watch)(?: ?os[,\/]|\d,\d\/)[\d\.]+/i],[b,[g,F],[y,M]],[/droid.+; (glass) \d/i],[b,[g,q],[y,M]],[/droid.+; (wt63?0{2,3})\)/i],[b,[g,Me],[y,M]],[/(quest( \d| pro)?)/i],[b,[g,it],[y,M]],[/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i],[g,[y,L]],[/(aeobc)\b/i],[b,[g,W],[y,L]],[/droid .+?; ([^;]+?)(?: bui|; wv\)|\) applew).+? mobile safari/i],[b,[y,T]],[/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i],[b,[y,R]],[/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i],[[y,R]],[/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i],[[y,T]],[/(android[-\w\. ]{0,9});.+buil/i],[b,[g,"Generic"]]],engine:[[/windows.+ edge\/([\w\.]+)/i],[S,[v,_e+"HTML"]],[/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i],[S,[v,"Blink"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i,/ekioh(flow)\/([\w\.]+)/i,/(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i,/(icab)[\/ ]([23]\.[\d\.]+)/i,/\b(libweb)/i],[v,S],[/rv\:([\w\.]{1,9})\b.+(gecko)/i],[S,v]],os:[[/microsoft (windows) (vista|xp)/i],[v,S],[/(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i],[v,[S,Pr,fr]],[/windows nt 6\.2; (arm)/i,/windows[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i,/(?:win(?=3|9|n)|win 9x )([nt\d\.]+)/i],[[S,Pr,fr],[v,"Windows"]],[/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i,/(?:ios;fbsv\/|iphone.+ios[\/ ])([\d\.]+)/i,/cfnetwork\/.+darwin/i],[[S,/_/g,"."],[v,"iOS"]],[/(mac os x) ?([\w\. ]*)/i,/(macintosh|mac_powerpc\b)(?!.+haiku)/i],[[v,zt],[S,/_/g,"."]],[/droid ([\w\.]+)\b.+(android[- ]x86|harmonyos)/i],[S,v],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i,/(blackberry)\w*\/([\w\.]*)/i,/(tizen|kaios)[\/ ]([\w\.]+)/i,/\((series40);/i],[v,S],[/\(bb(10);/i],[S,[v,ee]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i],[S,[v,"Symbian"]],[/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i],[S,[v,Y+" OS"]],[/web0s;.+rt(tv)/i,/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i],[S,[v,"webOS"]],[/watch(?: ?os[,\/]|\d,\d\/)([\d\.]+)/i],[S,[v,"watchOS"]],[/crkey\/([\d\.]+)/i],[S,[v,ye+"cast"]],[/(cros) [\w]+(?:\)| ([\w\.]+)\b)/i],[[v,ot],S],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\/(\d+\.[\w\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\);]+)/i,/\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i,/(mint)[\/\(\) ]?(\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i,/(hurd|linux) ?([\w\.]*)/i,/(gnu) ?([\w\.]*)/i,/\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i,/(haiku) (\w+)/i],[v,S],[/(sunos) ?([\w\.\d]*)/i],[[v,"Solaris"],S],[/((?:open)?solaris)[-\/ ]?([\w\.]*)/i,/(aix) ((\d)(?=\.|\)| )[\w\.])*/i,/\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\w\.]*)/i],[v,S]]},en=function(ze,A){if(typeof ze===d&&(A=ze,ze=a),!(this instanceof en))return new en(ze,A).getResult();var N=typeof n!==p&&n.navigator?n.navigator:a,B=ze||(N&&N.userAgent?N.userAgent:s),D=N&&N.userAgentData?N.userAgentData:a,C=A?Lr(Tn,A):Tn,x=N&&N.userAgent==B;return this.getBrowser=function(){var U={};return U[v]=a,U[S]=a,Nr.call(U,B,C.browser),U[f]=Kn(U[S]),x&&N&&N.brave&&typeof N.brave.isBrave==c&&(U[v]="Brave"),U},this.getCPU=function(){var U={};return U[w]=a,Nr.call(U,B,C.cpu),U},this.getDevice=function(){var U={};return U[g]=a,U[b]=a,U[y]=a,Nr.call(U,B,C.device),x&&!U[y]&&D&&D.mobile&&(U[y]=T),x&&U[b]=="Macintosh"&&N&&typeof N.standalone!==p&&N.maxTouchPoints&&N.maxTouchPoints>2&&(U[b]="iPad",U[y]=R),U},this.getEngine=function(){var U={};return U[v]=a,U[S]=a,Nr.call(U,B,C.engine),U},this.getOS=function(){var U={};return U[v]=a,U[S]=a,Nr.call(U,B,C.os),x&&!U[v]&&D&&D.platform&&D.platform!="Unknown"&&(U[v]=D.platform.replace(/chrome os/i,ot).replace(/macos/i,zt)),U},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return B},this.setUA=function(U){return B=typeof U===m&&U.length>O?Fn(U,O):U,this},this.setUA(B),this};en.VERSION=o,en.BROWSER=En([v,S,f]),en.CPU=En([w]),en.DEVICE=En([b,g,y,k,T,I,R,M,L]),en.ENGINE=en.OS=En([v,S]),t.exports&&(e=t.exports=en),e.UAParser=en;var Et=typeof n!==p&&(n.jQuery||n.Zepto);if(Et&&!Et.ua){var At=new en;Et.ua=At.getResult(),Et.ua.get=function(){return At.getUA()},Et.ua.set=function(ze){At.setUA(ze);var A=At.getResult();for(var N in A)Et.ua[N]=A[N]}}})(typeof window=="object"?window:Gp)}
73)(A0,A0.exports);var mQ=A0.exports;const gQ=Cc(mQ),yQ=["iOS"];class Ld extends gQ{constructor(){super(window.navigator.userAgent)}isChromium(){return this.getUA().match(/Chrome/i)}isChrome(){const e=this.getBrowser();if(!e.name)return!1;const n=this.getOS();let a=!0;return a=!new RegExp(yQ.join("|"),"i").test(n.name),e.name.match(/Chrome/i)&&a}isFirefox(){const e=this.getBrowser();return e.name?e.name.match(/Firefox/i):!1}isOpera(){const e=this.getBrowser();return e.name?e.name.match(/Opera/i):!1}isSafari(){const e=this.getBrowser();return e.name?e.name.match(/Safari/i):!1}}const Mt=Ni.get("SdpParser"),bR=35,bQ=65,vR=96,vQ=127,wQ=Array.from({length:bQ-bR+1},(t,e)=>e+bR),_Q=Array.from({length:vQ-vR+1},(t,e)=>e+vR),wR=1,SQ=14,_R=16,kQ=255,EQ=Array.from({length:SQ-wR+1},(t,e)=>e+wR),TQ=Array.from({length:kQ-_R+1},(t,e)=>e+_R),Dn={setSimulcast(t,e){if(Mt.info("Setting simulcast. Codec: ",e),!new Ld().isChromium())return Mt.warn("Your browser does not appear to support Simulcast. For a better experience, use a Chromium based browser."),t;if(e!=="h264"&&e!=="vp8")return Mt.warn("Your selected codec ".concat(e," does not appear to support Simulcast. To broadcast using simulcast, please use H.264 or VP8.")),t;if(!/m=video/.test(t))return Mt.warn("There is no available video for simulcast to be enabled."),t;try{const n=new RegExp("m=video.*?a=ssrc:(\\d*) cname:(.+?)\\r\\n","s"),a=new RegExp("m=video.*?a=ssrc:(\\d*) msid:(.+?)\\r\\n","s"),o=n.exec(t),s=o[1],u=o[2],c=a.exec(t)[2],p=2,d=[s];for(let m=0;m<p;++m){const f=100+m*2,b=f+1;d.push(f),t+="a=ssrc-group:FID "+f+" "+b+`\r 74a=ssrc:`+f+" cname:"+u+`\r 75a=ssrc:`+f+" msid:"+c+`\r 76a=ssrc:`+b+" cname:"+u+`\r 77a=ssrc:`+b+" msid:"+c+`\r 78`}return t+="a=ssrc-group:SIM "+d.join(" ")+`\r 79`,Mt.info("Simulcast setted"),Mt.debug("Simulcast SDP: ",t),t}catch(n){throw Mt.error("Error setting SDP for simulcast: ",n),n}},setStereo(t){return Mt.info("Replacing SDP response for support stereo"),t=t.replace(/useinbandfec=1/g,"useinbandfec=1; stereo=1"),Mt.info("Replaced SDP response for support stereo"),Mt.debug("New SDP value: ",t),t},setDTX(t){return Mt.info("Replacing SDP response for support dtx"),t=t.replace("useinbandfec=1","useinbandfec=1; usedtx=1"),Mt.info("Replaced SDP response for support dtx"),Mt.debug("New SDP value: ",t),t},setAbsoluteCaptureTime(t){const e="a=extmap:"+Dn.getAvailableHeaderExtensionIdRange(t)[0]+` http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time\r 80`,n=/(m=.*\r\n(?:.*\r\n)*?)(a=extmap.*\r\n)/gm;return t=t.replace(n,(a,o,s)=>o+e+s),Mt.info("Replaced SDP response for setting absolute capture time"),Mt.debug("New SDP value: ",t),t},setDependencyDescriptor(t){const e="a=extmap:"+Dn.getAvailableHeaderExtensionIdRange(t)[0]+` https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension\r 81`,n=/(m=.*\r\n(?:.*\r\n)*?)(a=extmap.*\r\n)/gm;return t=t.replace(n,(a,o,s)=>o+e+s),Mt.info("Replaced SDP response for setting depency descriptor"),Mt.debug("New SDP value: ",t),t},setVideoBitrate(t,e){if(e<1)Mt.info("Remove bitrate restrictions"),t=t.replace(/b=AS:.*\r\n/,"").replace(/b=TIAS:.*\r\n/,"");else{const n=Nu.parse(t),a=n.getMedia("video");Mt.info("Setting video bitrate"),a.setBitrate(e),t=n.toString()}return t},removeSdpLine(t,e){return Mt.debug("SDP before trimming: ",t),t=t.split(` 82`).filter(n=>n.trim()!==e).join(` 83`),Mt.debug("SDP trimmed result: ",t),t},adaptCodecName(t,e,n){if(!t)return t;const a=new RegExp("".concat(e),"i");return t.replace(a,n)},setMultiopus(t,e){if(!new Ld().isFirefox()&&(!e||RQ(e)))if(t.includes("multiopus/48000/6"))Mt.info("Multiopus already setted");else{Mt.info("Setting multiopus");const n=/m=audio 9 UDP\/TLS\/RTP\/SAVPF (.*)\r\n/.exec(t)[0],a=Dn.getAvailablePayloadTypeRange(t)[0],o=n.replace(`\r 84`," ")+a+`\r 85a=rtpmap:`+a+` multiopus/48000/6\r 86a=fmtp:`+a+` channel_mapping=0,4,1,2,3,5;coupled_streams=2;minptime=10;num_streams=4;useinbandfec=1\r 87`;t=t.replace(n,o),Mt.info("Multiopus offer created"),Mt.debug("SDP parsed for multioups: ",t)}return t},getAvailablePayloadTypeRange(t){const e=/m=(?:.*) (?:.*) UDP\/TLS\/RTP\/SAVPF (.*)\r\n/gm,n=t.matchAll(e);let a=_Q.concat(wQ);for(const o of n){const s=o[1].split(" ").map(u=>parseInt(u));a=a.filter(u=>!s.includes(u))}return a},getAvailableHeaderExtensionIdRange(t){const e=/a=extmap:(\d+)(?:.*)\r\n/gm,n=t.matchAll(e);let a=EQ.concat(TQ);for(const o of n){const s=o[1].split(" ").map(u=>parseInt(u));a=a.filter(u=>!s.includes(u))}return a},renegotiate(t,e){const n=Nu.parse(t),a=Nu.parse(e);for(const o of n.getMedias()){let s=a.getMediaById(o.getId());if(!s){s=new fQ(o.getId(),o.getType()),s.setDirection(pQ.reverse(o.getDirection()));const u=a.getMedia(o.getType());if(u){s.setCodecs(u.getCodecs());for(const[c,p]of u.getExtensions())s.addExtension(c,p)}a.addMedia(s)}}return a.toString()},updateMissingVideoExtensions(t,e){var n;const a=Nu.parse(t),o=(n=Nu.parse(e).getMediasByType("video")[0])==null?void 0:n.getExtensions();if(!(!o&&!o.length)){for(const s of a.getMediasByType("video")){const u=s.getExtensions();o.forEach((c,p)=>{if(!u.get(p)){const d=s.getId(),m="a=extmap:"+p+" "+c+`\r
88`,f=new RegExp("(a=mid:"+d+`\r 89(?:.*\r 90)*?)`,"g");t=t.replace(f,(b,v,y)=>v+m)}})}return t}},getCodecPayloadType(t){const e=/a=rtpmap:(\d+) (\w+)\/\d+/g,n=t.matchAll(e),a={};for(const o of n)a[o[1]]=o[2];return a}},RQ=t=>t.getAudioTracks().some(e=>e.getSettings().channelCount>2),Sr={VP8:"vp8",VP9:"vp9",H264:"h264",AV1:"av1",H265:"h265"},CQ={OPUS:"opus",MULTIOPUS:"multiopus"},AQ="d40e38ea-d419-4c62-94ed-20ac37b4e4fa",Ke=Ni.get("PeerConnection"),hp={Publisher:"Publisher",Viewer:"Viewer"},Er={track:"track",connectionStateChange:"connectionStateChange"},SR={stereo:!1,mediaStream:null,codec:"h264",simulcast:!1,scalabilityMode:null,disableAudio:!1,disableVideo:!1,setSDPToPeer:!0};class vc extends Lm{constructor(){super(),this.mode=null,this.sessionDescription=null,this.peer=null,this.peerConnectionStats=null,this.transceiverMap=new Map}async createRTCPeer(e={autoInitStats:!0,statsIntervalMs:1e3},n=hp.Viewer){Ke.info("Creating new RTCPeerConnection"),Ke.debug("RTC configuration provided by user: ",e),this.peer=OQ(this,e),this.mode=n,e.autoInitStats&&this.initStats(e)}getRTCPeer(){return Ke.info("Getting RTC Peer"),this.peer}async closeRTCPeer(){var e;Ke.info("Closing RTCPeerConnection"),(e=this.peer)==null||e.close(),this.peer=null,this.stopStats(),this.emit(Er.connectionStateChange,"closed")}async setRTCRemoteSDP(e){Ke.info("Setting RTC Remote SDP");const n={type:"answer",sdp:e};try{await this.peer.setRemoteDescription(n),Ke.info("RTC Remote SDP was set successfully."),Ke.debug("RTC Remote SDP new value: ",e)}catch(a){throw Ke.error("Error while setting RTC Remote SDP: ",a),a}}async getRTCLocalSDP(e=SR){Ke.info("Getting RTC Local SDP"),e=Je(Je({},SR),e),Ke.debug("Options: ",e);const n=xQ(e.mediaStream);n?LQ(this.peer,n,e):NQ(this.peer,e),Ke.info("Creating peer offer");const a=await this.peer.createOffer();return Ke.info("Peer offer created"),Ke.debug("Peer offer response: ",a.sdp),this.sessionDescription=a,e.disableAudio||(e.stereo&&(this.sessionDescription.sdp=Dn.setStereo(this.sessionDescription.sdp)),e.dtx&&(this.sessionDescription.sdp=Dn.setDTX(this.sessionDescription.sdp)),this.sessionDescription.sdp=Dn.setMultiopus(this.sessionDescription.sdp,n)),!e.disableVideo&&e.simulcast&&(this.sessionDescription.sdp=Dn.setSimulcast(this.sessionDescription.sdp,e.codec)),e.absCaptureTime&&(this.sessionDescription.sdp=Dn.setAbsoluteCaptureTime(this.sessionDescription.sdp)),e.dependencyDescriptor&&(this.sessionDescription.sdp=Dn.setDependencyDescriptor(this.sessionDescription.sdp)),e.setSDPToPeer&&(await this.peer.setLocalDescription(this.sessionDescription),Ke.info("Peer local description set")),this.sessionDescription.sdp}async addRemoteTrack(e,n){return new Promise((a,o)=>{try{const s=this.peer.addTransceiver(e,{direction:"recvonly",streams:n});this.transceiverMap.set(s,a)}catch(s){o(s)}})}updateBandwidthRestriction(e,n){if(this.mode===hp.Viewer)throw Ke.error("Viewer attempting to update bitrate, this is not allowed"),new Error("It is not possible for a viewer to update the bitrate.");return Ke.info("Updating bandwidth restriction, bitrate value: ",n),Ke.debug("SDP value: ",e),Dn.setVideoBitrate(e,n)}async updateBitrate(e=0){if(this.mode===hp.Viewer)throw Ke.error("Viewer attempting to update bitrate, this is not allowed"),new Error("It is not possible for a viewer to update the bitrate.");if(!this.peer)throw Ke.error("Cannot update bitrate. No peer found."),new Error("Cannot update bitrate. No peer found.");Ke.info("Updating bitrate to value: ",e),this.sessionDescription=await this.peer.createOffer(),await this.peer.setLocalDescription(this.sessionDescription);const n=this.updateBandwidthRestriction(this.peer.remoteDescription.sdp,e);await this.setRTCRemoteSDP(n),Ke.info("Bitrate restrictions updated: ","".concat(e>0?e:"unlimited"," kbps"))}getRTCPeerStatus(){if(Ke.info("Getting RTC peer status"),!this.peer)return null;const e=PQ(this.peer);return Ke.info("RTC peer status getted, value: ",e),e}replaceTrack(e){if(!this.peer){Ke.error("Could not change track if there is not an active connection.");return}const n=this.peer.getSenders().find(a=>a.track.kind===e.kind);n?n.replaceTrack(e):Ke.error("There is no ".concat(e.kind," track in active broadcast."))}static getCapabilities(e){const n=new Ld,a=RTCRtpSender.getCapabilities(e);if(a){const o={};let s=new RegExp("^video/(".concat(Object.values(Sr).join("|"),")x?$"),"i");e==="audio"&&(s=new RegExp("^audio/(".concat(Object.values(CQ).join("|"),")$"),"i"),n.isChrome()&&
90(o.multiopus={mimeType:"audio/multiopus",channels:6}));for(const u of a.codecs){const c=u.mimeType.match(s);if(c){const p=c[1].toLowerCase();if(o[p]=or(Je({},o[p]),{mimeType:u.mimeType}),u.scalabilityModes){let d=o[p].scalabilityModes||[];d=[...d,...u.scalabilityModes],o[p].scalabilityModes=[...new Set(d)]}u.channels&&(o[p].channels=u.channels)}}a.codecs=Object.keys(o).map(u=>Je({codec:u},o[u]))}return a}getTracks(){var e,n;return(n=(e=this.peer)==null?void 0:e.getSenders())==null?void 0:n.map(a=>a.track)}initStats(e){this.peerConnectionStats?Ke.warn("PeerConnection.initStats() has already been called. Automatic initialization occurs via View.connect(), Publish.connect() or this.createRTCPeer(). See options"):this.peer?(this.peerConnectionStats=new xJ(this.peer,e),Hp(this.peerConnectionStats,this,[T3.stats])):Ke.warn("Cannot init peer stats: RTCPeerConnection not initialized")}stopStats(){var e;(e=this.peerConnectionStats)==null||e.stop(),this.peerConnectionStats=null}}const kR=t=>(t==null?void 0:t.getAudioTracks().length)<=1&&(t==null?void 0:t.getVideoTracks().length)<=1,xQ=t=>{if(!t)return null;if(t instanceof MediaStream&&kR(t))return t;if(!(t instanceof MediaStream)){Ke.info("Creating MediaStream to add received tracks.");const e=new MediaStream;for(const n of t)e.addTrack(n);if(kR(e))return e}throw Ke.error("MediaStream must have 1 audio track and 1 video track, or at least one of them."),new Error("MediaStream must have 1 audio track and 1 video track, or at least one of them.")},OQ=(t,e)=>{const n=new RTCPeerConnection(e);return DQ(t,n),n};async function IQ(t){return new Promise(e=>setTimeout(e,t))}const DQ=(t,e)=>{e.ontrack=async n=>{Ke.info("New track from peer."),Ke.debug("Track event value: ",n);const a=t.transceiverMap.get(n.transceiver);if(a){for(;!n.transceiver.mid;)await IQ(100);a(n.transceiver),t.transceiverMap.delete(n.transceiver)}setTimeout(()=>{t.emit(Er.track,n)},0)},e.connectionState?e.onconnectionstatechange=n=>{Ke.info("Peer connection state change: ",e.connectionState),t.emit(Er.connectionStateChange,e.connectionState)}:e.oniceconnectionstatechange=n=>{Ke.info("Peer ICE connection state change: ",e.iceConnectionState),t.emit(Er.connectionStateChange,e.iceConnectionState)},e.onnegotiationneeded=async n=>{if(!e.remoteDescription)return;Ke.info("Peer onnegotiationneeded, updating local description");const a=await e.createOffer();Ke.info("Peer onnegotiationneeded, got local offer",a.sdp),a.sdp=Dn.updateMissingVideoExtensions(a.sdp,e.remoteDescription.sdp),await e.setLocalDescription(a);const o=Dn.renegotiate(a.sdp,e.remoteDescription.sdp);Ke.info("Peer onnegotiationneeded, updating remote description",o),await e.setRemoteDescription({type:"answer",sdp:o}),Ke.info("Peer onnegotiationneeded, renegotiation done")}},LQ=(t,e,n)=>{Ke.info("Adding mediaStream tracks to RTCPeerConnection");for(const a of e.getTracks()){const o={streams:[e]};a.kind==="audio"&&(o.direction=n.disableAudio?"inactive":"sendonly"),a.kind==="video"&&(o.direction=n.disableVideo?"inactive":"sendonly",n.scalabilityMode&&new Ld().isChrome()?(Ke.debug("Video track with scalability mode: ".concat(n.scalabilityMode,".")),o.sendEncodings=[{scalabilityMode:n.scalabilityMode}]):n.scalabilityMode&&Ke.warn("SVC is only supported in Google Chrome")),t.addTransceiver(a,o),Ke.info("Track '".concat(a.label,"' added: "),"id: ".concat(a.id),"kind: ".concat(a.kind))}},NQ=(t,e)=>{const n=new Ld;if(!e.disableVideo){const a=t.addTransceiver("video",{direction:"recvonly"});n.isOpera()&&a.setCodecPreferences(RTCRtpReceiver.getCapabilities("video").codecs.filter(o=>o.mimeType!=="video/H264"||o.sdpFmtpLine.includes("profile-level-id=4")))}e.disableAudio||t.addTransceiver("audio",{direction:"recvonly"});for(let a=0;a<e.multiplexedAudioTracks;a++)t.addTransceiver("audio",{direction:"recvonly"})},PQ=t=>{var e;const n=(e=t.connectionState)!=null?e:t.iceConnectionState;switch(n){case"checking":return"connecting";case"completed":return"connected";default:return n}};var t_={};Object.defineProperty(t_,"__esModule",{value:!0});t_.TypedEmitter=Fw.EventEmitter;const{TypedEmitter:r5}=t_;class WQ extends r5{constructor(e,n){super(),this.namespace=e,this.tm=n}cmd(e,n){return this.tm.cmd(e,n,this.namespace)}event(e,n){return this.tm.event(e,n,this.namespace)}close(){return this.tm.namespaces.delete(this.namespace)}}class MQ extends r5{constructor(e){super(),this.maxId=0,this.namespaces=new Map,this.transactions=new Map,this.transport=e,this.listener=n=>{let a;try{a=JSON.parse(n.utf8Data||n.data||n)}catch{return}switch(a.type){case"cmd":const{transId:s}=a,u={name:a.name,data:a.data,namespace:a.namespace,accept:p=>{this._send({type:"response",transId:s,data:p})},reject:p=>{this._send({type:"error",transId:s,data:p})}};if(u.namespace){const p=this.namespaces.get(u.namespace);
90p?p.emit("cmd",u):this.emit("cmd",u)}else this.emit("cmd",u);break;case"response":{const p=this.transactions.get(a.transId);if(!p)return;this.transactions.delete(a.transId),p.resolve(a.data);break}case"error":{const p=this.transactions.get(a.transId);if(!p)return;this.transactions.delete(a.transId),p.reject(a.data);break}case"event":const c={name:a.name,data:a.data,namespace:a.namespace};if(c.namespace){var o=this.namespaces.get(c.namespace);o?o.emit("event",c):this.emit("event",c)}else this.emit("event",c);break}},this.transport.addListener?this.transport.addListener("message",this.listener):this.transport.addEventListener("message",this.listener)}_send(e){this.transport.send(JSON.stringify(e))}cmd(e,n,a=void 0){return new Promise((o,s)=>{if(!e||e.length===0)throw new Error("Bad command name");const u={type:"cmd",transId:this.maxId++,name:e,data:n};a&&(u.namespace=a),this.transactions.set(u.transId,or(Je({},u),{resolve:o,reject:s}));try{this._send(u)}catch(c){throw this.transactions.delete(u.transId),c}})}event(e,n,a=void 0){if(!e||e.length===0)throw new Error("Bad event name");const o={type:"event",name:e,data:n};a&&(o.namespace=a),this._send(o)}namespace(e){let n=this.namespaces.get(e);return n||(n=new WQ(e,this),this.namespaces.set(e,n),n)}close(){for(const e of this.namespaces.values())e.close();this.transport.removeListener?this.transport.removeListener("message",this.listener):this.transport.removeEventListener("message",this.listener)}}var BQ=MQ;const UQ=Cc(BQ),Ft=Ni.get("Signaling"),za={connectionSuccess:"wsConnectionSuccess",connectionError:"wsConnectionError",connectionClose:"wsConnectionClose",broadcastEvent:"broadcastEvent"};class a5 extends Lm{constructor(e={streamName:null,url:"ws://localhost:8080/"}){super(),this.streamName=e.streamName,this.wsUrl=e.url,this.webSocket=null,this.transactionManager=null,this.serverId=null,this.clusterId=null,this.streamViewId=null}async connect(){var e;return Ft.info("Connecting to Signaling Server"),this.transactionManager&&((e=this.webSocket)==null?void 0:e.readyState)===WebSocket.OPEN?(Ft.info("Connected to server: ",this.webSocket.url),Ft.debug("WebSocket value: ",{url:this.webSocket.url,protocol:this.webSocket.protocol,readyState:this.webSocket.readyState,binaryType:this.webSocket.binaryType,extensions:this.webSocket.extensions}),this.emit(za.connectionSuccess,{ws:this.webSocket,tm:this.transactionManager}),this.webSocket):new Promise((n,a)=>{this.webSocket=new WebSocket(this.wsUrl),this.transactionManager=new UQ(this.webSocket),this.webSocket.onopen=()=>{Ft.info("WebSocket opened"),this.transactionManager.on("event",o=>{this.emit(za.broadcastEvent,o)}),Ft.info("Connected to server: ",this.webSocket.url),Ft.debug("WebSocket value: ",{url:this.webSocket.url,protocol:this.webSocket.protocol,readyState:this.webSocket.readyState,binaryType:this.webSocket.binaryType,extensions:this.webSocket.extensions}),this.emit(za.connectionSuccess,{ws:this.webSocket,tm:this.transactionManager}),n(this.webSocket)},this.webSocket.onerror=()=>{Ft.error("WebSocket not connected: ",this.webSocket.url),this.emit(za.connectionError,this.webSocket.url),a(this.webSocket.url)},this.webSocket.onclose=()=>{this.webSocket=null,this.transactionManager=null,Ft.info("Connection closed with Signaling Server."),this.emit(za.connectionClose)}})}close(){var e;Ft.info("Closing connection with Signaling Server."),(e=this.webSocket)==null||e.close()}async subscribe(e,n,a=null,o=null){var s,u,c,p;Ft.info("Starting subscription to streamName: ",this.streamName),Ft.debug("Subcription local description: ",e);const d=FQ(n,a,o);e=Dn.adaptCodecName(e,"AV1X",Sr.AV1);const m=["active","inactive","layers","viewercount","vad","updated","migrate","stopped"],f={sdp:e,streamId:this.streamName,pinnedSourceId:d.pinnedSourceId,excludedSourceIds:d.excludedSourceIds,events:m};d.vad&&(f.vad=!0),Array.isArray(d.events)&&(f.events=d.events),d.forcePlayoutDelay&&(f.forcePlayoutDelay=d.forcePlayoutDelay),d.layer&&(f.layer=d.layer);try{if(d.disableVideo&&d.disableAudio)throw new Error("Not attempting to connect as video and audio are disabled");await this.connect(),Ft.info("Sending view command");const b=await this.transactionManager.cmd("view",f),v=(p=(c=(u=(s=RTCRtpReceiver.getCapabilities)==null?void 0:s.call(RTCRtpReceiver,"video"))==null?void 0:u.codecs)==null?void 0:c.find)==null?void 0:p.call(c,y=>y.mimeType==="video/AV1X");return b.sdp=v?Dn.adaptCodecName(b.sdp,Sr.AV1,"AV1X"):b.sdp,Ft.info("Command sent, subscriberId: ",b.subscriberId),Ft.debug("Command result: ",b),this.serverId=b.subscriberId,this.clusterId=b.clusterId,this.streamVie
90wId=b.streamViewId,ir.initStreamName(this.streamName),ir.initSubscriberId(this.serverId),ir.initStreamViewId(b.streamViewId),ir.setClusterId(this.clusterId),b.sdp}catch(b){throw Ft.error("Error sending view command, error: ",b),b}}async publish(e,n,a=null,o=null){var s,u,c,p,d,m,f,b;const v=$Q(n,a,o);Ft.info("Starting publishing to streamName: ".concat(this.streamName,", codec: ").concat(v.codec)),Ft.debug("Publishing local description: ",e);const y=(p=(c=(u=(s=vc.getCapabilities)==null?void 0:s.call(vc,"video"))==null?void 0:u.codecs)==null?void 0:c.map(w=>w.codec))!=null?p:[],g=Object.values(Sr);if(g.indexOf(v.codec)===-1)throw Ft.error("Invalid codec ".concat(v.codec,". Possible values are: "),g),new Error("Invalid codec ".concat(v.codec,". Possible values are: ").concat(g));if(y.length>0&&y.indexOf(v.codec)===-1)throw Ft.error("Unsupported codec ".concat(v.codec,". Possible values are: "),y),new Error("Unsupported codec ".concat(v.codec,". Possible values are: ").concat(y));v.codec===Sr.AV1&&(e=Dn.adaptCodecName(e,"AV1X",Sr.AV1));const S={name:this.streamName,sdp:e,codec:v.codec,sourceId:v.sourceId};if(v.priority)if(Number.isInteger(v.priority)&&v.priority>=-2147483648&&v.priority<=2147483647)S.priority=v.priority;else throw new Error("Invalid value for priority option. It should be a decimal integer between the range [-2^31, +2^31 - 1]");v.record!==null&&(S.record=v.record),Array.isArray(v.events)&&(S.events=v.events);try{if(v.disableVideo&&v.disableAudio)throw new Error("Not attempting to connect as video and audio are disabled");await this.connect(),Ft.info("Sending publish command");const w=await this.transactionManager.cmd("publish",S);if(v.codec===Sr.AV1){const k=(b=(f=(m=(d=RTCRtpSender.getCapabilities)==null?void 0:d.call(RTCRtpSender,"video"))==null?void 0:m.codecs)==null?void 0:f.find)==null?void 0:b.call(f,T=>T.mimeType==="video/AV1X");w.sdp=k?Dn.adaptCodecName(w.sdp,Sr.AV1,"AV1X"):w.sdp}return Ft.info("Command sent, publisherId: ",w.publisherId),Ft.debug("Command result: ",w),this.serverId=w.publisherId,this.clusterId=w.clusterId,ir.initStreamName(this.streamName),ir.initSubscriberId(this.serverId),ir.initFeedId(w.feedId),ir.setClusterId(this.clusterId),w.sdp}catch(w){throw Ft.error("Error sending publish command, error: ",w),w}}async cmd(e,n){return Ft.info("Sending cmd: ".concat(e)),this.transactionManager.cmd(e,n)}}const FQ=(t,e,n)=>{let a=typeof t=="object"?t:{};return Object.keys(a).length===0&&(a={vad:t,pinnedSourceId:e,excludedSourceIds:n}),a},$Q=(t,e,n)=>{let a=typeof t=="object"?t:{};if(Object.keys(a).length===0){const o=Sr.H264;a={codec:t??o,record:e,sourceId:n}}return a};class qp extends Error{constructor(e,n){super(e),this.name="FetchError",this.status=n}}const Tl=Ni.get("Director"),zQ={WEBRTC:"WebRtc"};let ER="";const jQ="https://director.millicast.com";let TR=jQ;const wi={setEndpoint:t=>{TR=t.replace(/\/$/,"")},getEndpoint:()=>TR,setLiveDomain:t=>{ER=t.replace(/\/$/,"")},getLiveDomain:()=>ER,getPublisher:async(t,e=null,n=zQ.WEBRTC)=>{const a=GQ(t,e,n);Tl.info("Getting publisher connection path for stream name: ",a.streamName);const o={streamName:a.streamName,streamType:a.streamType},s={"Content-Type":"application/json",Authorization:"Bearer ".concat(a.token)},u="".concat(wi.getEndpoint(),"/api/director/publish");try{const c=await fetch(u,{method:"POST",headers:s,body:JSON.stringify(o)});let p=await c.json();if(p.status==="fail")throw new qp(p.data.message,c.status);return p=RR(p),Tl.debug("Getting publisher response: ",p),ir.initAccountId(p.data.streamAccountId),p.data}catch(c){throw Tl.error("Error while getting publisher connection path. ",c),c}},getSubscriber:async(t,e=null,n=null)=>{const a=HQ(t,e,n);ir.initAccountId(a.streamAccountId),Tl.info("Getting subscriber connection data for stream name: ".concat(a.streamName," and account id: ").concat(a.streamAccountId));const o={streamAccountId:a.streamAccountId,streamName:a.streamName};let s={"Content-Type":"application/json"};a.subscriberToken&&(s=or(Je({},s),{Authorization:"Bearer ".concat(a.subscriberToken)}));const u="".concat(wi.getEndpoint(),"/api/director/subscribe");try{const c=await fetch(u,{method:"POST",headers:s,body:JSON.stringify(o)});let p=await c.json();if(p.status==="fail")throw new qp(p.data.message,c.status);return p=RR(p),Tl.debug("Getting subscriber response: ",p),a.subscriberToken&&(p.data.subscriberToken=a.subscriberToken),p.data}catch(c){throw Tl.error("Error while getting subscriber connection path. ",c),c}}},GQ=(t,e,n)=>{let a=typeof t=="object"?t:{};return Object.keys(a).length===0&&(a={token:t,streamName:e,streamType:n}),a},HQ=(t,e,n)=>{let a=typeof t=="object"?t:{};return Object.keys(a).length===0&&(a={streamName:t,streamAccountId:e,subscriberToken:n}),a},RR=t=>{if(wi.getLiveDomain()){const e=/\/\/(.*?)\//,n=t.data.urls.map(a=>{const o=e.exec(a);
90return a.replace(o[1],wi.getLiveDomain())});t.data.urls=n}if(t.data.drmObject){const e=t.data.drmObject.playReadyUrl;e&&(t.data.drmObject.playReadyUrl="".concat(wi.getEndpoint()).concat(e));const n=t.data.drmObject.widevineUrl;n&&(t.data.drmObject.widevineUrl="".concat(wi.getEndpoint()).concat(n));const a=t.data.drmObject.fairPlayUrl;a&&(t.data.drmObject.fairPlayUrl="".concat(wi.getEndpoint()).concat(a));const o=t.data.drmObject.fairPlayCertUrl;o&&(t.data.drmObject.fairPlayCertUrl="".concat(wi.getEndpoint()).concat(o))}return t};function x0(t){this.message=t}x0.prototype=new Error,x0.prototype.name="InvalidCharacterError";var CR=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(t){var e=String(t).replace(/=+$/,"");if(e.length%4==1)throw new x0("'atob' failed: The string to be decoded is not correctly encoded.");for(var n,a,o=0,s=0,u="";a=e.charAt(s++);~a&&(n=o%4?64*n+a:a,o++%4)?u+=String.fromCharCode(255&n>>(-2*o&6)):0)a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(a);return u};function VQ(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}try{return function(n){return decodeURIComponent(CR(n).replace(/(.)/g,function(a,o){var s=o.charCodeAt(0).toString(16).toUpperCase();return s.length<2&&(s="0"+s),"%"+s}))}(e)}catch{return CR(e)}}function Zp(t){this.message=t}function i5(t,e){if(typeof t!="string")throw new Zp("Invalid token specified");var n=(e=e||{}).header===!0?0:1;try{return JSON.parse(VQ(t.split(".")[n]))}catch(a){throw new Zp("Invalid token specified: "+a.message)}}Zp.prototype=new Error,Zp.prototype.name="InvalidTokenError";var O0={exports:{}};(function(t,e){(function(n){if(e!=null&&typeof e.nodeType!="number")t.exports=n();else{var a=n(),o=typeof self<"u"?self:$.global;typeof o.btoa!="function"&&(o.btoa=a.btoa),typeof o.atob!="function"&&(o.atob=a.atob)}})(function(){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function a(u){this.message=u}a.prototype=new Error,a.prototype.name="InvalidCharacterError";function o(u){for(var c=String(u),p,d,m,f,b=0,v="";b<c.length;){if(p=c.charCodeAt(b++),d=c.charCodeAt(b++),m=c.charCodeAt(b++),p>255||d>255||m>255)throw new a("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");f=p<<16|d<<8|m,v+=n.charAt(f>>18&63)+n.charAt(f>>12&63)+n.charAt(f>>6&63)+n.charAt(f&63)}switch(c.length%3){case 0:return v;case 1:return v.slice(0,-2)+"==";case 2:return v.slice(0,-1)+"="}}function s(u){var c=String(u).replace(/[=]+$/,"");if(c.length%4===1)throw new a("'atob' failed: The string to be decoded is not correctly encoded.");for(var p=0,d,m,f=0,b="";m=c.charAt(f++);~m&&(d=p%4?d*64+m:m,p++%4)?b+=String.fromCharCode(255&d>>(-2*p&6)):0)m=n.indexOf(m);return b}return{btoa:o,atob:s}})})(O0,O0.exports);var YQ=O0.exports,o5={exports:{}};(function(t,e){(function(n,a){t.exports=a()})(self,()=>{return n={7629:(o,s,u)=>{const c=u(375),p=u(8571),d=u(9474),m=u(1687),f=u(8652),b=u(8160),v=u(3292),y=u(6354),g=u(8901),S=u(9708),w=u(6914),k=u(2294),T=u(6133),R=u(1152),I=u(8863),M=u(2036),L={Base:class{constructor(O){this.type=O,this.$_root=null,this._definition={},this._reset()}_reset(){this._ids=new k.Ids,this._preferences=null,this._refs=new T.Manager,this._cache=null,this._valids=null,this._invalids=null,this._flags={},this._rules=[],this._singleRules=new Map,this.$_terms={},this.$_temp={ruleset:null,whens:{}}}describe(){return c(typeof S.describe=="function","Manifest functionality disabled"),S.describe(this)}allow(...O){return b.verifyFlat(O,"allow"),this._values(O,"_valids")}alter(O){c(O&&typeof O=="object"&&!Array.isArray(O),"Invalid targets argument"),c(!this._inRuleset(),"Cannot set alterations inside a ruleset");const W=this.clone();W.$_terms.alterations=W.$_terms.alterations||[];for(const F in O){const G=O[F];c(typeof G=="function","Alteration adjuster for",F,"must be a function"),W.$_terms.alterations.push({target:F,adjuster:G})}return W.$_temp.ruleset=!1,W}artifact(O){return c(O!==void 0,"Artifact cannot be undefined"),c(!this._cache,"Cannot set an artifact with a rule c
90ache"),this.$_setFlag("artifact",O)}cast(O){return c(O===!1||typeof O=="string","Invalid to value"),c(O===!1||this._definition.cast[O],"Type",this.type,"does not support casting to",O),this.$_setFlag("cast",O===!1?void 0:O)}default(O,W){return this._default("default",O,W)}description(O){return c(O&&typeof O=="string","Description must be a non-empty string"),this.$_setFlag("description",O)}empty(O){const W=this.clone();return O!==void 0&&(O=W.$_compile(O,{override:!1})),W.$_setFlag("empty",O,{clone:!1})}error(O){return c(O,"Missing error"),c(O instanceof Error||typeof O=="function","Must provide a valid Error object or a function"),this.$_setFlag("error",O)}example(O,W={}){return c(O!==void 0,"Missing example"),b.assertOptions(W,["override"]),this._inner("examples",O,{single:!0,override:W.override})}external(O,W){return typeof O=="object"&&(c(!W,"Cannot combine options with description"),W=O.description,O=O.method),c(typeof O=="function","Method must be a function"),c(W===void 0||W&&typeof W=="string","Description must be a non-empty string"),this._inner("externals",{method:O,description:W},{single:!0})}failover(O,W){return this._default("failover",O,W)}
90forbidden(){return this.presence("forbidden")}id(O){return O?(c(typeof O=="string","id must be a non-empty string"),c(/^[^\.]+$/.test(O),"id cannot contain period character"),this.$_setFlag("id",O)):this.$_setFlag("id",void 0)}invalid(...O){return this._values(O,"_invalids")}label(O){return c(O&&typeof O=="string","Label name must be a non-empty string"),this.$_setFlag("label",O)}meta(O){return c(O!==void 0,"Meta cannot be undefined"),this._inner("metas",O,{single:!0})}note(...O){c(O.length,"Missing notes");for(const W of O)c(W&&typeof W=="string","Notes must be non-empty strings");return this._inner("notes",O)}only(O=!0){return c(typeof O=="boolean","Invalid mode:",O),this.$_setFlag("only",O)}optional(){return this.presence("optional")}prefs(O){c(O,"Missing preferences"),c(O.context===void 0,"Cannot override context"),c(O.externals===void 0,"Cannot override externals"),c(O.warnings===void 0,"Cannot override warnings"),c(O.debug===void 0,"Cannot override debug"),b.checkPreferences(O);const W=this.clone();return W._preferences=b.preferences(W._preferences,O),W}presence(O){return c(["optional","required","forbidden"].includes(O),"Unknown presence mode",O),this.$_setFlag("presence",O)}raw(O=!0){return this.$_setFlag("result",O?"raw":void 0)}result(O){return c(["raw","strip"].includes(O),"Unknown result mode",O),this.$_setFlag("result",O)}required(){return this.presence("required")}strict(O){const W=this.clone(),F=O!==void 0&&!O;return W._preferences=b.preferences(W._preferences,{convert:F}),W}strip(O=!0){return this.$_setFlag("result",O?"strip":void 0)}tag(...O){c(O.length,"Missing tags");for(const W of O)c(W&&typeof W=="string","Tags must be non-empty strings");return this._inner("tags",O)}unit(O){return c(O&&typeof O=="string","Unit name must be a non-empty string"),this.$_setFlag("unit",O)}valid(...O){b.verifyFlat(O,"valid");const W=this.allow(...O);return W.$_setFlag("only",!!W._valids,{clone:!1}),W}when(O,W){const F=this.clone();F.$_terms.whens||(F.$_terms.whens=[]);const G=v.when(F,O,W);if(!["any","link"].includes(F.type)){const ee=G.is?[G]:G.switch;for(const de of ee)c(!de.then||de.then.type==="any"||de.then.type===F.type,"Cannot combine",F.type,"with",de.then&&de.then.type),c(!de.otherwise||de.otherwise.type==="any"||de.otherwise.type===F.type,"Cannot combine",F.type,"with",de.otherwise&&de.otherwise.type)}return F.$_terms.whens.push(G),F.$_mutateRebuild()}cache(O){c(!this._inRuleset(),"Cannot set caching inside a ruleset"),c(!this._cache,"Cannot override schema cache"),c(this._flags.artifact===void 0,"Cannot cache a rule with an artifact");const W=this.clone();return W._cache=O||f.provider.provision(),W.$_temp.ruleset=!1,W}clone(){const O=Object.create(Object.getPrototypeOf(this));return this._assign(O)}concat(O){c(b.isSchema(O),"Invalid schema object"),c(this.type==="any"||O.type==="any"||O.type===this.type,"Cannot merge type",this.type,"with another type:",O.type),c(!this._inRuleset(),"Cannot concatenate onto a schema with open ruleset"),c(!O._inRuleset(),"Cannot concatenate a schema with open ruleset");let W=this.clone();if(this.type==="any"&&O.type!=="any"){const F=O.clone();for(const G of Object.keys(W))G!=="type"&&(F[G]=W[G]);W=F}W._ids.concat(O._ids),W._refs.register(O,T.toSibling),W._preferences=W._preferences?b.preferences(W._preferences,O._preferences):O._preferences,W._valids=M.merge(W._valids,O._valids,O._invalids),W._invalids=M.merge(W._invalids,O._invalids,O._valids);for(const F of O._singleRules.keys())W._singleRules.has(F)&&(W._rules=W._rules.filter(G=>G.keep||G.name!==F),W._singleRules.delete(F));for(const F of O._rules)O._definition.rules[F.method].multi||W._singleRules.set(F.name,F),W._rules.push(F);if(W._flags.empty&&O._flags.empty){W._flags.empty=W._flags.empty.c
90oncat(O._flags.empty);const F=Object.assign({},O._flags);delete F.empty,m(W._flags,F)}else if(O._flags.empty){W._flags.empty=O._flags.empty;const F=Object.assign({},O._flags);delete F.empty,m(W._flags,F)}else m(W._flags,O._flags);for(const F in O.$_terms){const G=O.$_terms[F];G?W.$_terms[F]?W.$_terms[F]=W.$_terms[F].concat(G):W.$_terms[F]=G.slice():W.$_terms[F]||(W.$_terms[F]=G)}return this.$_root._tracer&&this.$_root._tracer._combine(W,[this,O]),W.$_mutateRebuild()}extend(O){return c(!O.base,"Cannot extend type with another base"),g.type(this,O)}extract(O){return O=Array.isArray(O)?O:O.split("."),this._ids.reach(O)}fork(O,W){c(!this._inRuleset(),"Cannot fork inside a ruleset");let F=this;for(let G of[].concat(O))G=Array.isArray(G)?G:G.split("."),F=F._ids.fork(G,W,F);return F.$_temp.ruleset=!1,F}rule(O){const W=this._definition;b.assertOptions(O,Object.keys(W.modifiers)),c(this.$_temp.ruleset!==!1,"Cannot apply rules to empty ruleset or the last rule added does not support rule properties");const F=this.$_temp.ruleset===null?this._rules.length-1:this.$_temp.ruleset;c(F>=0&&F<this._rules.length,"Cannot apply rules to empty ruleset");const G=this.clone();for(let ee=F;ee<G._rules.length;++ee){const de=G._rules[ee],ye=p(de);for(const _e in O)W.modifiers[_e](ye,O[_e]),c(ye.name===de.name,"Cannot change rule name");G._rules[ee]=ye,G._singleRules.get(ye.name)===de&&G._singleRules.set(ye.name,ye)}return G.$_temp.ruleset=!1,G.$_mutateRebuild()}get ruleset(){c(!this._inRuleset(),"Cannot start a new ruleset without closing the previous one");const O=this.clone();return O.$_temp.ruleset=O._rules.length,O}get $(){return this.ruleset}tailor(O){O=[].concat(O),c(!this._inRuleset(),"Cannot tailor inside a ruleset");let W=this;if(this.$_terms.alterations)for(const{target:F,adjuster:G}of this.$_terms.alterations)O.includes(F)&&(W=G(W),c(b.isSchema(W),"Alteration adjuster for",F,"failed to return a schema object"));return W=W.$_modify({each:F=>F.tailor(O),ref:!1}),W.$_temp.ruleset=!1,W.$_mutateRebuild()}tracer(){return R.location?R.location(this):this}validate(O,W){return I.entry(O,this,W)}validateAsync(O,W){return I.entryAsync(O,this,W)}$_addRule(O){typeof O=="string"&&(O={name:O}),c(O&&typeof O=="object","Invalid options"),c(O.name&&typeof O.name=="string","Invalid rule name");for(const de in O)c(de[0]!=="_","Cannot set private rule properties");const W=Object.assign({},O);W._resolve=[],W.method=W.method||W.name;const F=this._definition.rules[W.method],G=W.args;c(F,"Unknown rule",W.method);const ee=this.clone();if(G){c(Object.keys(G).length===1||Object.keys(G).length===this._definition.rules[W.name].args.length,"Invalid rule definition for",this.type,W.name);for(const de in G){let ye=G[de];if(F.argsByName){const _e=F.argsByName.get(de);if(_e.ref&&b.isResolvable(ye))W._resolve.push(de),ee.$_mutateRegister(ye);else if(_e.normalize&&(ye=_e.normalize(ye),G[de]=ye),_e.assert){const Y=b.validateArg(ye,de,_e);c(!Y,Y,"or reference")}}ye!==void 0?G[de]=ye:delete G[de]}}return F.multi||(ee._ruleRemove(W.name,{clone:!1}),ee._singleRules.set(W.name,W)),ee.$_temp.ruleset===!1&&(ee.$_temp.ruleset=null),F.priority?ee._rules.unshift(W):ee._rules.push(W),ee}$_compile(O,W){return v.schema(this.$_root,O,W)}$_createError(O,W,F,G,ee,de={}){const ye=de.flags!==!1?this._flags:{},_e=de.messages?w.merge(this._definition.messages,de.messages):this._definition.messages;return new y.Report(O,W,F,ye,_e,G,ee)}$_getFlag(O){return this._flags[O]}$_getRule(O){return this._singleRules.get(O)}$_mapLabels(O){return O=Array.isArray(O)?O:O.split("."),this._ids.labels(O)}$_match(O,W,F,G){(F=Object.assign({},F)).abortEarly=!0,F._externals=!1,W.snapshot();const ee=!I.validate(O,this,W,F,G).errors;return W.restore(),ee}$_modify(O){return b.assertOptions(O,["each","once","ref","schema"]),k.schema(this,O)||this}$_mutateRebuild(){return c(!this._inRuleset(),"Cannot add this rule inside a ruleset"),this._refs.reset(),this._ids.reset(),this.$_modify({each:(O,{source:W,name:F,path:G,key:ee})=>{const de=this._definition[W][F]&&this._definition[W][F].register;de!==!1&&this.$_mutateRegister(O,{family:de,key:ee})}}),this._definition.rebuild&&this._definition.rebuild(this),this.$_temp.ruleset=!1,this}$_mutateRegister(O,{family:W,key:F}={}
90){this._refs.register(O,W),this._ids.register(O,{key:F})}$_property(O){return this._definition.properties[O]}$_reach(O){return this._ids.reach(O)}$_rootReferences(){return this._refs.roots()}$_setFlag(O,W,F={}){c(O[0]==="_"||!this._inRuleset(),"Cannot set flag inside a ruleset");const G=this._definition.flags[O]||{};if(d(W,G.default)&&(W=void 0),d(W,this._flags[O]))return this;const ee=F.clone!==!1?this.clone():this;return W!==void 0?(ee._flags[O]=W,ee.$_mutateRegister(W)):delete ee._flags[O],O[0]!=="_"&&(ee.$_temp.ruleset=!1),ee}$_parent(O,...W){return this[O][b.symbols.parent].call(this,...W)}$_validate(O,W,F){return I.validate(O,this,W,F)}_assign(O){O.type=this.type,O.$_root=this.$_root,O.$_temp=Object.assign({},this.$_temp),O.$_temp.whens={},O._ids=this._ids.clone(),O._preferences=this._preferences,O._valids=this._valids&&this._valids.clone(),O._invalids=this._invalids&&this._invalids.clone(),O._rules=this._rules.slice(),O._singleRules=p(this._singleRules,{shallow:!0}),O._refs=this._refs.clone(),O._flags=Object.assign({},this._flags),O._cache=null,O.$_terms={};for(const W in this.$_terms)O.$_terms[W]=this.$_terms[W]?this.$_terms[W].slice():null;O.$_super={};for(const W in this.$_super)O.$_super[W]=this._super[W].bind(O);return O}_bare(){const O=this.clone();O._reset();const W=O._definition.terms;for(const F in W){const G=W[F];O.$_terms[F]=G.init}return O.$_mutateRebuild()}_default(O,W,F={}){return b.assertOptions(F,"literal"),c(W!==void 0,"Missing",O,"value"),c(typeof W=="function"||!F.literal,"Only function value supports literal option"),typeof W=="function"&&F.literal&&(W={[b.symbols.literal]:!0,literal:W}),this.$_setFlag(O,W)}_generate(O,W,F){if(!this.$_terms.whens)return{schema:this};const G=[],ee=[];for(let _e=0;_e<this.$_terms.whens.length;++_e){const Y=this.$_terms.whens[_e];if(Y.concat){G.push(Y.concat),ee.push("".concat(_e,".concat"));continue}const q=Y.ref?Y.ref.resolve(O,W,F):O,re=Y.is?[Y]:Y.switch,be=ee.length;for(let se=0;se<re.length;++se){const{is:j,then:X,otherwise:fe}=re[se],pe="".concat(_e).concat(Y.switch?"."+se:"");if(j.$_match(q,W.nest(j,"".concat(pe,".is")),F)){if(X){const we=W.localize([...W.path,"".concat(pe,".then")],W.ancestors,W.schemas),{schema:xe,id:Me}=X._generate(O,we,F);G.push(xe),ee.push("".concat(pe,".then").concat(Me?"(".concat(Me,")"):""));break}}else if(fe){const we=W.localize([...W.path,"".concat(pe,".otherwise")],W.ancestors,W.schemas),{schema:xe,id:Me}=fe._generate(O,we,F);G.push(xe),ee.push("".concat(pe,".otherwise").concat(Me?"(".concat(Me,")"):""));break}}if(Y.break&&ee.length>be)break}const de=ee.join(", ");if(W.mainstay.tracer.debug(W,"rule","when",de),!de)return{schema:this};if(!W.mainstay.tracer.active&&this.$_temp.whens[de])return{schema:this.$_temp.whens[de],id:de};let ye=this;this._definition.generate&&(ye=this._definition.generate(this,O,W,F));for(const _e of G)ye=ye.concat(_e);return this.$_root._tracer&&this.$_root._tracer._combine(ye,[this,...G]),this.$_temp.whens[de]=ye,{schema:ye,id:de}}_inner(O,W,F={}){c(!this._inRuleset(),"Cannot set ".concat(O," inside a ruleset"));const G=this.clone();return G.$_terms[O]&&!F.override||(G.$_terms[O]=[]),F.single?G.$_terms[O].push(W):G.$_terms[O].push(...W),G.$_temp.ruleset=!1,G}_inRuleset(){return this.$_temp.ruleset!==null&&this.$_temp.ruleset!==!1}_ruleRemove(O,W={}){if(!this._singleRules.has(O))return this;const F=W.clone!==!1?this.clone():this;F._singleRules.delete(O);const G=[];for(let ee=0;ee<F._rules.length;++ee){const de=F._rules[ee];de.name!==O||de.keep?G.push(de):F._inRuleset()&&ee<F.$_temp.ruleset&&--F.$_temp.ruleset}return F._rules=G,F}_values(O,W){b.verifyFlat(O,W.slice(1,-1));const F=this.clone(),G=O[0]===b.symbols.override;if(G&&(O=O.slice(1)),!F[W]&&O.length?F[W]=new M:G&&(F[W]=O.length?new M:null,F.$_mutateRebuild()),!F[W])return F;G&&F[W].override();for(const ee of O){c(ee!==void 0,"Cannot call allow/valid/invalid with undefined"),c(ee!==b.symbols.override,"Override must be the first value");const de=W==="_invalids"?"_valids":"_invalids";F[de]&&(F[de].remove(ee),F[de].length||(c(W==="_valids"||!F._flags.only,"Setting invalid value",ee,"leaves schema rejecting all values due to previous valid rule"),F[de]=null)),F[W].add(ee,F._refs)}return F}}};
90L.Base.prototype[b.symbols.any]={version:b.version,compile:v.compile,root:"$_root"},L.Base.prototype.isImmutable=!0,L.Base.prototype.deny=L.Base.prototype.invalid,L.Base.prototype.disallow=L.Base.prototype.invalid,L.Base.prototype.equal=L.Base.prototype.valid,L.Base.prototype.exist=L.Base.prototype.required,L.Base.prototype.not=L.Base.prototype.invalid,L.Base.prototype.options=L.Base.prototype.prefs,L.Base.prototype.preferences=L.Base.prototype.prefs,o.exports=new L.Base},8652:(o,s,u)=>{const c=u(375),p=u(8571),d=u(8160),m={max:1e3,supported:new Set(["undefined","boolean","number","string"])};s.provider={provision:f=>new m.Cache(f)},m.Cache=class{constructor(f={}){d.assertOptions(f,["max"]),c(f.max===void 0||f.max&&f.max>0&&isFinite(f.max),"Invalid max cache size"),this._max=f.max||m.max,this._map=new Map,this._list=new m.List}get length(){return this._map.size}set(f,b){if(f!==null&&!m.supported.has(typeof f))return;let v=this._map.get(f);if(v)return v.value=b,void this._list.first(v);v=this._list.unshift({key:f,value:b}),this._map.set(f,v),this._compact()}get(f){const b=this._map.get(f);if(b)return this._list.first(b),p(b.value)}_compact(){if(this._map.size>this._max){const f=this._list.pop();this._map.delete(f.key)}}},m.List=class{constructor(){this.tail=null,this.head=null}unshift(f){return f.next=null,f.prev=this.head,this.head&&(this.head.next=f),this.head=f,this.tail||(this.tail=f),f}first(f){f!==this.head&&(this._remove(f),this.unshift(f))}pop(){return this._remove(this.tail)}_remove(f){const{next:b,prev:v}=f;return b.prev=v,v&&(v.next=b),f===this.tail&&(this.tail=b),f.prev=null,f.next=null,f}}},8160:(o,s,u)=>{const c=u(375),p=u(7916),d=u(5934);let m,f;const b={isoDate:/^(?:[-+]\d{2})?(?:\d{4}(?!\d{2}\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\1(?:[12]\d|0[1-9]|3[01]))?|W(?:[0-4]\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[1-6])))(?![T]$|[T][\d]+Z$)(?:[T\s](?:(?:(?:[01]\d|2[0-3])(?:(:?)[0-5]\d)?|24\:?00)(?:[.,]\d+(?!:))?)(?:\2[0-5]\d(?:[.,]\d+)?)?(?:[Z]|(?:[+-])(?:[01]\d|2[0-3])(?::?[0-5]\d)?)?)?)?$/};s.version=d.version,s.defaults={abortEarly:!0,allowUnknown:!1,artifacts:!1,cache:!0,context:null,convert:!0,dateFormat:"iso",errors:{escapeHtml:!1,label:"path",language:null,render:!0,stack:!1,wrap:{label:'"',array:"[]"}},externals:!0,messages:{},nonEnumerables:!1,noDefaults:!1,presence:"optional",skipFunctions:!1,stripUnknown:!1,warnings:!1},s.symbols={any:Symbol.for("@hapi/joi/schema"),arraySingle:Symbol("arraySingle"),deepDefault:Symbol("deepDefault"),errors:Symbol("errors"),literal:Symbol("literal"),override:Symbol("override"),parent:Symbol("parent"),prefs:Symbol("prefs"),ref:Symbol("ref"),template:Symbol("template"),values:Symbol("values")},s.assertOptions=function(v,y,g="Options"){c(v&&typeof v=="object"&&!Array.isArray(v),"Options must be of type object");const S=Object.keys(v).filter(w=>!y.includes(w));c(S.length===0,"".concat(g," contain unknown keys: ").concat(S))},s.checkPreferences=function(v){f=f||u(3378);const y=f.preferences.validate(v);if(y.error)throw new p([y.error.details[0].message])},s.compare=function(v,y,g){switch(g){case"=":return v===y;case">":return v>y;case"<":return v<y;case">=":return v>=y;case"<=":return v<=y}},s.default=function(v,y){return v===void 0?y:v},s.isIsoDate=function(v){return b.isoDate.test(v)},s.isNumber=function(v){return typeof v=="number"&&!isNaN(v)},s.isResolvable=function(v){return!!v&&(v[s.symbols.ref]||v[s.symbols.template])},s.isSchema=function(v,y={}){const g=v&&v[s.symbols.any];return!!g&&(c(y.legacy||g.version===s.version,"Cannot mix different versions of joi schemas"),!0)},s.isValues=function(v){return v[s.symbols.values]},s.limit=function(v){return Number.isSafeInteger(v)&&v>=0},s.preferences=function(v,y){m=m||u(6914),v=v||{},y=y||{};const g=Object.assign({},v,y);return y.errors&&v.errors&&(g.errors=Object.assign({},v.errors,y.errors),g.errors.wrap=Object.assign({},v.errors.wrap,y.errors.wrap)),y.messages&&(g.messages=m.compile(y.messages,v.messages)),delete g[s.symbols.prefs],g},s.tryWithPath=function(v,y,g={}){try{return v()}catch(S){throw S.path!==void 0?S.path=y+"."+S.path:S.path=y,g.append&&(S.message="".concat(S.message," (").concat(S.path,")")),S}},s.validateArg=function(v,y,{assert:g,message:S}){if(s.isSchema(g)){const w=g.validate(v);return w.error?w.error.message:void 0}if(!g(v))return y?"".concat(y," ").concat(S):S},s.verifyFlat=function(v,y){for(const g of v)c(!Array.isArray(g),"Method no longer accepts array arguments:",y)}},3292:(o,s,u)=>
90{const c=u(375),p=u(8160),d=u(6133),m={};s.schema=function(f,b,v={}){p.assertOptions(v,["appendPath","override"]);try{return m.schema(f,b,v)}catch(y){throw v.appendPath&&y.path!==void 0&&(y.message="".concat(y.message," (").concat(y.path,")")),y}},m.schema=function(f,b,v){c(b!==void 0,"Invalid undefined schema"),Array.isArray(b)&&(c(b.length,"Invalid empty array schema"),b.length===1&&(b=b[0]));const y=(g,...S)=>v.override!==!1?g.valid(f.override,...S):g.valid(...S);if(m.simple(b))return y(f,b);if(typeof b=="function")return f.custom(b);if(c(typeof b=="object","Invalid schema content:",typeof b),p.isResolvable(b))return y(f,b);if(p.isSchema(b))return b;if(Array.isArray(b)){for(const g of b)if(!m.simple(g))return f.alternatives().try(...b);return y(f,...b)}return b instanceof RegExp?f.string().regex(b):b instanceof Date?y(f.date(),b):(c(Object.getPrototypeOf(b)===Object.getPrototypeOf({}),"Schema can only contain plain objects"),f.object().keys(b))},s.ref=function(f,b){return d.isRef(f)?f:d.create(f,b)},s.compile=function(f,b,v={}){p.assertOptions(v,["legacy"]);const y=b&&b[p.symbols.any];if(y)return c(v.legacy||y.version===p.version,"Cannot mix different versions of joi schemas:",y.version,p.version),b;if(typeof b!="object"||!v.legacy)return s.schema(f,b,{appendPath:!0});const g=m.walk(b);return g?g.compile(g.root,b):s.schema(f,b,{appendPath:!0})},m.walk=function(f){if(typeof f!="object")return null;if(Array.isArray(f)){for(const v of f){const y=m.walk(v);if(y)return y}return null}const b=f[p.symbols.any];if(b)return{root:f[b.root],compile:b.compile};c(Object.getPrototypeOf(f)===Object.getPrototypeOf({}),"Schema can only contain plain objects");for(const v in f){const y=m.walk(f[v]);if(y)return y}return null},m.simple=function(f){return f===null||["boolean","string","number"].includes(typeof f)},s.when=function(f,b,v){if(v===void 0&&(c(b&&typeof b=="object","Missing options"),v=b,b=d.create(".")),Array.isArray(v)&&(v={switch:v}),p.assertOptions(v,["is","not","then","otherwise","switch","break"]),p.isSchema(b))return c(v.is===void 0,'"is" can not be used with a schema condition'),c(v.not===void 0,'"not" can not be used with a schema condition'),c(v.switch===void 0,'"switch" can not be used with a schema condition'),m.condition(f,{is:b,then:v.then,otherwise:v.otherwise,break:v.break});if(c(d.isRef(b)||typeof b=="string","Invalid condition:",b),c(v.not===void 0||v.is===void 0,'Cannot combine "is" with "not"'),v.switch===void 0){let g=v;v.not!==void 0&&(g={is:v.not,then:v.otherwise,otherwise:v.then,break:v.break});let S=g.is!==void 0?f.$_compile(g.is):f.$_root.invalid(null,!1,0,"").required();return c(g.then!==void 0||g.otherwise!==void 0,'options must have at least one of "then", "otherwise", or "switch"'),c(g.break===void 0||g.then===void 0||g.otherwise===void 0,"Cannot specify then, otherwise, and break all together"),v.is===void 0||d.isRef(v.is)||p.isSchema(v.is)||(S=S.required()),m.condition(f,{ref:s.ref(b),is:S,then:g.then,otherwise:g.otherwise,break:g.break})}c(Array.isArray(v.switch),'"switch" must be an array'),c(v.is===void 0,'Cannot combine "switch" with "is"'),c(v.not===void 0,'Cannot combine "switch" with "not"'),c(v.then===void 0,'Cannot combine "switch" with "then"');const y={ref:s.ref(b),switch:[],break:v.break};for(let g=0;g<v.switch.length;++g){const S=v.switch[g],w=g===v.switch.length-1;p.assertOptions(S,w?["is","then","otherwise"]:["is","then"]),c(S.is!==void 0,'Switch statement missing "is"'),c(S.then!==void 0,'Switch statement missing "then"');const k={is:f.$_compile(S.is),then:f.$_compile(S.then)};if(d.isRef(S.is)||p.isSchema(S.is)||(k.is=k.is.required()),w){c(v.otherwise===void 0||S.otherwise===void 0,'Cannot specify "otherwise" inside and outside a "switch"');const T=v.otherwise!==void 0?v.otherwise:S.otherwise;T!==void 0&&(c(y.break===void 0,"Cannot specify both otherwise and break"),k.otherwise=f.$_compile(T))}y.switch.push(k)}return y},m.condition=function(f,b){for(const v of["then","otherwise"])b[v]===void 0?delete b[v]:b[v]=f.$_compile(b[v]);return b}},6354:(o,s,u)=>{const c=u(5688),p=u(8160),d=u(3328);s.Report=class{constructor(m,f,b,v,y,g,S){if(this.code=m,this.flags=v,this.messages=y,this.path=g.path,this.prefs=S,this.state=g,this.value=f,this.message=null,this.template=null,this.local=b||{},this.local.label=s.label(this.flags,this.state,this.prefs,this.messages),this.value===void 0||this.local.hasOwnProperty("value")||(this.local.value=this.value),this.path.length){const w=this.path[this.path.length-1];typeof w!="object"&&(this.local.key=w)}}_setTemplate(m){if(this.template=m,!this.flags.label&&this.path.length===0){const f=this._template(this.template,"root");f&&(this.local.label=f)}}toString(){if(this.message)return this.message;const m=this.code;
90if(!this.prefs.errors.render)return this.code;const f=this._template(this.template)||this._template(this.prefs.messages)||this._template(this.messages);return f===void 0?'Error code "'.concat(m,'" is not defined, your custom type is missing the correct messages definition'):(this.message=f.render(this.value,this.state,this.prefs,this.local,{errors:this.prefs.errors,messages:[this.prefs.messages,this.messages]}),this.prefs.errors.label||(this.message=this.message.replace(/^"" /,"").trim()),this.message)}_template(m,f){return s.template(this.value,m,f||this.code,this.state,this.prefs)}},s.path=function(m){let f="";for(const b of m)typeof b!="object"&&(typeof b=="string"?(f&&(f+="."),f+=b):f+="[".concat(b,"]"));return f},s.template=function(m,f,b,v,y){if(!f)return;if(d.isTemplate(f))return b!=="root"?f:null;let g=y.errors.language;if(p.isResolvable(g)&&(g=g.resolve(m,v,y)),g&&f[g]){if(f[g][b]!==void 0)return f[g][b];if(f[g]["*"]!==void 0)return f[g]["*"]}return f[b]?f[b]:f["*"]},s.label=function(m,f,b,v){if(!b.errors.label)return"";if(m.label)return m.label;let y=f.path;return b.errors.label==="key"&&f.path.length>1&&(y=f.path.slice(-1)),s.path(y)||s.template(null,b.messages,"root",f,b)||v&&s.template(null,v,"root",f,b)||"value"},s.process=function(m,f,b){if(!m)return null;const{override:v,message:y,details:g}=s.details(m);if(v)return v;if(b.errors.stack)return new s.ValidationError(y,g,f);const S=Error.stackTraceLimit;Error.stackTraceLimit=0;const w=new s.ValidationError(y,g,f);return Error.stackTraceLimit=S,w},s.details=function(m,f={}){let b=[];const v=[];for(const y of m){if(y instanceof Error){if(f.override!==!1)return{override:y};const S=y.toString();b.push(S),v.push({message:S,type:"override",context:{error:y}});continue}const g=y.toString();b.push(g),v.push({message:g,path:y.path.filter(S=>typeof S!="object"),type:y.code,context:y.local})}return b.length>1&&(b=[...new Set(b)]),{message:b.join(". "),details:v}},s.ValidationError=class extends Error{constructor(m,f,b){super(m),this._original=b,this.details=f}static isError(m){return m instanceof s.ValidationError}},s.ValidationError.prototype.isJoi=!0,s.ValidationError.prototype.name="ValidationError",s.ValidationError.prototype.annotate=c.error},8901:(o,s,u)=>{const c=u(375),p=u(8571),d=u(8160),m=u(6914),f={};s.type=function(b,v){const y=Object.getPrototypeOf(b),g=p(y),S=b._assign(Object.create(g)),w=Object.assign({},v);delete w.base,g._definition=w;const k=y._definition||{};w.messages=m.merge(k.messages,w.messages),w.properties=Object.assign({},k.properties,w.properties),S.type=w.type,w.flags=Object.assign({},k.flags,w.flags);const T=Object.assign({},k.terms);if(w.terms)for(const L in w.terms){const O=w.terms[L];c(S.$_terms[L]===void 0,"Invalid term override for",w.type,L),S.$_terms[L]=O.init,T[L]=O}w.terms=T,w.args||(w.args=k.args),w.prepare=f.prepare(w.prepare,k.prepare),w.coerce&&(typeof w.coerce=="function"&&(w.coerce={method:w.coerce}),w.coerce.from&&!Array.isArray(w.coerce.from)&&(w.coerce={method:w.coerce.method,from:[].concat(w.coerce.from)})),w.coerce=f.coerce(w.coerce,k.coerce),w.validate=f.validate(w.validate,k.validate);const R=Object.assign({},k.rules);if(w.rules)for(const L in w.rules){const O=w.rules[L];c(typeof O=="object","Invalid rule definition for",w.type,L);let W=O.method;if(W===void 0&&(W=function(){return this.$_addRule(L)}),W&&(c(!g[L],"Rule conflict in",w.type,L),g[L]=W),c(!R[L],"Rule conflict in",w.type,L),R[L]=O,O.alias){const F=[].concat(O.alias);for(const G of F)g[G]=O.method}O.args&&(O.argsByName=new Map,O.args=O.args.map(F=>(typeof F=="string"&&(F={name:F}),c(!O.argsByName.has(F.name),"Duplicated argument name",F.name),d.isSchema(F.assert)&&(F.assert=F.assert.strict().label(F.name)),O.argsByName.set(F.name,F),F)))}w.rules=R;const I=Object.assign({},k.modifiers);if(w.modifiers)for(const L in w.modifiers){c(!g[L],"Rule conflict in",w.type,L);const O=w.modifiers[L];c(typeof O=="function","Invalid modifier definition for",w.type,L);const W=function(F){return this.rule({[L]:F})};g[L]=W,I[L]=O}if(w.modifiers=I,w.overrides){g._super=y,S.$_super={};for(const L in w.overrides)c(y[L],"Cannot override missing",L),w.overrides[L][d.symbols.parent]=y[L],S.$_super[
vendor: 4,215 bytes, line 90
90L]=y[L].bind(S);Object.assign(g,w.overrides)}w.cast=Object.assign({},k.cast,w.cast);const M=Object.assign({},k.manifest,w.manifest);return M.build=f.build(w.manifest&&w.manifest.build,k.manifest&&k.manifest.build),w.manifest=M,w.rebuild=f.rebuild(w.rebuild,k.rebuild),S},f.build=function(b,v){return b&&v?function(y,g){return v(b(y,g),g)}:b||v},f.coerce=function(b,v){return b&&v?{from:b.from&&v.from?[...new Set([...b.from,...v.from])]:null,method(y,g){let S;if((!v.from||v.from.includes(typeof y))&&(S=v.method(y,g),S)){if(S.errors||S.value===void 0)return S;y=S.value}if(!b.from||b.from.includes(typeof y)){const w=b.method(y,g);if(w)return w}return S}}:b||v},f.prepare=function(b,v){return b&&v?function(y,g){const S=b(y,g);if(S){if(S.errors||S.value===void 0)return S;y=S.value}return v(y,g)||S}:b||v},f.rebuild=function(b,v){return b&&v?function(y){v(y),b(y)}:b||v},f.validate=function(b,v){return b&&v?function(y,g){const S=v(y,g);if(S){if(S.errors&&(!Array.isArray(S.errors)||S.errors.length))return S;y=S.value}return b(y,g)||S}:b||v}},5107:(o,s,u)=>{const c=u(375),p=u(8571),d=u(8652),m=u(8160),f=u(3292),b=u(6354),v=u(8901),y=u(9708),g=u(6133),S=u(3328),w=u(1152);let k;const T={types:{alternatives:u(4946),any:u(8068),array:u(546),boolean:u(4937),date:u(7500),function:u(390),link:u(8785),number:u(3832),object:u(8966),string:u(7417),symbol:u(8826)},aliases:{alt:"alternatives",bool:"boolean",func:"function"},root:function(){const R={_types:new Set(Object.keys(T.types))};for(const I of R._types)R[I]=function(...M){return c(!M.length||["alternatives","link","object"].includes(I),"The",I,"type does not allow arguments"),T.generate(this,T.types[I],M)};for(const I of["allow","custom","disallow","equal","exist","forbidden","invalid","not","only","optional","options","prefs","preferences","required","strip","valid","when"])R[I]=function(...M){return this.any()[I](...M)};Object.assign(R,T.methods);for(const I in T.aliases){const M=T.aliases[I];R[I]=R[M]}return R.x=R.expression,w.setup&&w.setup(R),R}};T.methods={ValidationError:b.ValidationError,version:m.version,cache:d.provider,assert(R,I,...M){T.assert(R,I,!0,M)},attempt:(R,I,...M)=>T.assert(R,I,!1,M),build(R){return c(typeof y.build=="function","Manifest functionality disabled"),y.build(this,R)},checkPreferences(R){m.checkPreferences(R)},compile(R,I){return f.compile(this,R,I)},defaults(R){c(typeof R=="function","modifier must be a function");const I=Object.assign({},this);for(const M of I._types){const L=R(I[M]());c(m.isSchema(L),"modifier must return a valid schema object"),I[M]=function(...O){return T.generate(this,L,O)}}return I},expression:(...R)=>new S(...R),extend(...R){m.verifyFlat(R,"extend"),k=k||u(3378),c(R.length,"You need to provide at least one extension"),this.assert(R,k.extensions);const I=Object.assign({},this);I._types=new Set(I._types);for(let M of R){typeof M=="function"&&(M=M(I)),this.assert(M,k.extension);const L=T.expandExtension(M,I);for(const O of L){c(I[O.type]===void 0||I._types.has(O.type),"Cannot override name",O.type);const W=O.base||this.any(),F=v.type(W,O);I._types.add(O.type),I[O.type]=function(...G){return T.generate(this,F,G)}}}return I},isError:b.ValidationError.isError,isExpression:S.isTemplate,isRef:g.isRef,isSchema:m.isSchema,in:(...R)=>g.in(...R),override:m.symbols.override,ref:(...R)=>g.create(...R),types(){const R={};for(const I of this._types)R[I]=this[I]();for(const I in T.aliases)R[I]=this[I]();return R}},T.assert=function(R,I,M,L){const O=L[0]instanceof Error||typeof L[0]=="string"?L[0]:null,W=O!==null?L[1]:L[0],F=I.validate(R,m.preferences({errors:{stack:!0}},W||{}));let G=F.error;if(!G)return F.value;if(O instanceof Error)throw O;const ee=M&&typeof G.annotate=="function"?G.annotate():G.message;throw G instanceof b.ValidationError==0&&(G=p(G)),G.message=O?"".concat(O," ").concat(ee):ee,G},T.generate=function(R,I,M){return c(R,"Must be invoked on a Joi instance."),I.$_root=R,I._definition.args&&M.length?I._definition.args(I,...M):I},T.expandExtension=function(R,I){if(typeof R.type=="string")return[R];const M=[];for(const L of I._types)if(R.type.test(L)){const O=Object.assign({},R);O.type=L,O.base=I[L](),M.push(O)}return M},o.exports=T.root()},6914:(o,s,u)=>
90{const c=u(375),p=u(8571),d=u(3328);s.compile=function(m,f){if(typeof m=="string")return c(!f,"Cannot set single message string"),new d(m);if(d.isTemplate(m))return c(!f,"Cannot set single message template"),m;c(typeof m=="object"&&!Array.isArray(m),"Invalid message options"),f=f?p(f):{};for(let b in m){const v=m[b];if(b==="root"||d.isTemplate(v)){f[b]=v;continue}if(typeof v=="string"){f[b]=new d(v);continue}c(typeof v=="object"&&!Array.isArray(v),"Invalid message for",b);const y=b;for(b in f[y]=f[y]||{},v){const g=v[b];b==="root"||d.isTemplate(g)?f[y][b]=g:(c(typeof g=="string","Invalid message for",b,"in",y),f[y][b]=new d(g))}}return f},s.decompile=function(m){const f={};for(let b in m){const v=m[b];if(b==="root"){f.root=v;continue}if(d.isTemplate(v)){f[b]=v.describe({compact:!0});continue}const y=b;for(b in f[y]={},v){const g=v[b];b!=="root"?f[y][b]=g.describe({compact:!0}):f[y].root=g}}return f},s.merge=function(m,f){if(!m)return s.compile(f);if(!f)return m;if(typeof f=="string")return new d(f);if(d.isTemplate(f))return f;const b=p(m);for(let v in f){const y=f[v];if(v==="root"||d.isTemplate(y)){b[v]=y;continue}if(typeof y=="string"){b[v]=new d(y);continue}c(typeof y=="object"&&!Array.isArray(y),"Invalid message for",v);const g=v;for(v in b[g]=b[g]||{},y){const S=y[v];v==="root"||d.isTemplate(S)?b[g][v]=S:(c(typeof S=="string","Invalid message for",v,"in",g),b[g][v]=new d(S))}}return b}},2294:(o,s,u)=>{const c=u(375),p=u(8160),d=u(6133),m={};s.Ids=m.Ids=class{constructor(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}clone(){const f=new m.Ids;return f._byId=new Map(this._byId),f._byKey=new Map(this._byKey),f._schemaChain=this._schemaChain,f}concat(f){f._schemaChain&&(this._schemaChain=!0);for(const[b,v]of f._byId.entries())c(!this._byKey.has(b),"Schema id conflicts with existing key:",b),this._byId.set(b,v);for(const[b,v]of f._byKey.entries())c(!this._byId.has(b),"Schema key conflicts with existing id:",b),this._byKey.set(b,v)}fork(f,b,v){const y=this._collect(f);y.push({schema:v});const g=y.shift();let S={id:g.id,schema:b(g.schema)};c(p.isSchema(S.schema),"adjuster function failed to return a joi schema type");for(const w of y)S={id:w.id,schema:m.fork(w.schema,S.id,S.schema)};return S.schema}labels(f,b=[]){const v=f[0],y=this._get(v);if(!y)return[...b,...f].join(".");const g=f.slice(1);return b=[...b,y.schema._flags.label||v],g.length?y.schema._ids.labels(g,b):b.join(".")}reach(f,b=[]){const v=f[0],y=this._get(v);c(y,"Schema does not contain path",[...b,...f].join("."));const g=f.slice(1);return g.length?y.schema._ids.reach(g,[...b,v]):y.schema}register(f,{key:b}={}){if(!f||!p.isSchema(f))return;(f.$_property("schemaChain")||f._ids._schemaChain)&&(this._schemaChain=!0);const v=f._flags.id;if(v){const y=this._byId.get(v);c(!y||y.schema===f,"Cannot add different schemas with the same id:",v),c(!this._byKey.has(v),"Schema id conflicts with existing key:",v),this._byId.set(v,{schema:f,id:v})}b&&(c(!this._byKey.has(b),"Schema already contains key:",b),c(!this._byId.has(b),"Schema key conflicts with existing id:",b),this._byKey.set(b,{schema:f,id:b}))}reset(){this._byId=new Map,this._byKey=new Map,this._schemaChain=!1}_collect(f,b=[],v=[]){const y=f[0],g=this._get(y);c(g,"Schema does not contain path",[...b,...f].join(".")),v=[g,...v];const S=f.slice(1);return S.length?g.schema._ids._collect(S,[...b,y],v):v}_get(f){return this._byId.get(f)||this._byKey.get(f)}},m.fork=function(f,b,v){const y=s.schema(f,{each:(g,{key:S})=>{if(b===(g._flags.id||S))return v},ref:!1});return y?y.$_mutateRebuild():f},s.schema=function(f,b){let v;for(const y in f._flags){if(y[0]==="_")continue;const g=m.scan(f._flags[y],{source:"flags",name:y},b);g!==void 0&&(v=v||f.clone(),v._flags[y]=g)}for(let y=0;y<f._rules.length;++y){const g=f._rules[y],S=m.scan(g.args,{source:"rules",name:g.name},b);if(S!==void 0){v=v||f.clone();const w=Object.assign({},g);w.args=S,v._rules[y]=w,v._singleRules.get(g.name)===g&&v._singleRules.set(g.name,w)}}for(const y in f.$_terms){if(y[0]==="_")continue;const g=m.scan(f.$_terms[y],{source:"terms",name:y},b);g!==void 0&&(v=v||f.clone(),v.$_terms[y]=g)}return v},m.scan=function(f,b,v,y,g){const S=y||[];if(f===null||typeof f!="object")return;let w;if(Array.isArray(f)){for(let k=0;k<f.length;++k){const T=b.source==="terms"&&b.name==="keys"&&f[k].key,R=m.scan(f[k],b,v,[k,...S],T);R!==void 0&&(w=w||f.slice(),w[k]=R)}return w}if(v.schema!==!1&&p.isSchema(f)||v.ref!==!1&&d.isRef(f)){const k=v.each(f,or(Je({},b),{path:S,key:g}));return k===f?void 0:k}for(const k in f){if(k[0]==="_")continue;const T=m.scan(f[k],b,v,[k,...S],g);T!==void 0&&(w=w||Object.assign({},f),w[k]=T)}return w}},6133:(o,s,u)=>
90{const c=u(375),p=u(8571),d=u(9621),m=u(8160);let f;const b={symbol:Symbol("ref"),defaults:{adjust:null,in:!1,iterables:null,map:null,separator:".",type:"value"}};s.create=function(v,y={}){c(typeof v=="string","Invalid reference key:",v),m.assertOptions(y,["adjust","ancestor","in","iterables","map","prefix","render","separator"]),c(!y.prefix||typeof y.prefix=="object","options.prefix must be of type object");const g=Object.assign({},b.defaults,y);delete g.prefix;const S=g.separator,w=b.context(v,S,y.prefix);if(g.type=w.type,v=w.key,g.type==="value")if(w.root&&(c(!S||v[0]!==S,"Cannot specify relative path with root prefix"),g.ancestor="root",v||(v=null)),S&&S===v)v=null,g.ancestor=0;else if(g.ancestor!==void 0)c(!S||!v||v[0]!==S,"Cannot combine prefix with ancestor option");else{const[k,T]=b.ancestor(v,S);T&&(v=v.slice(T))===""&&(v=null),g.ancestor=k}return g.path=S?v===null?[]:v.split(S):[v],new b.Ref(g)},s.in=function(v,y={}){return s.create(v,or(Je({},y),{in:!0}))},s.isRef=function(v){return!!v&&!!v[m.symbols.ref]},b.Ref=class{constructor(v){c(typeof v=="object","Invalid reference construction"),m.assertOptions(v,["adjust","ancestor","in","iterables","map","path","render","separator","type","depth","key","root","display"]),c([!1,void 0].includes(v.separator)||typeof v.separator=="string"&&v.separator.length===1,"Invalid separator"),c(!v.adjust||typeof v.adjust=="function","options.adjust must be a function"),c(!v.map||Array.isArray(v.map),"options.map must be an array"),c(!v.map||!v.adjust,"Cannot set both map and adjust options"),Object.assign(this,b.defaults,v),c(this.type==="value"||this.ancestor===void 0,"Non-value references cannot reference ancestors"),Array.isArray(this.map)&&(this.map=new Map(this.map)),this.depth=this.path.length,this.key=this.path.length?this.path.join(this.separator):null,this.root=this.path[0],this.updateDisplay()}resolve(v,y,g,S,w={}){return c(!this.in||w.in,"Invalid in() reference usage"),this.type==="global"?this._resolve(g.context,y,w):this.type==="local"?this._resolve(S,y,w):this.ancestor?this.ancestor==="root"?this._resolve(y.ancestors[y.ancestors.length-1],y,w):(c(this.ancestor<=y.ancestors.length,"Invalid reference exceeds the schema root:",this.display),this._resolve(y.ancestors[this.ancestor-1],y,w)):this._resolve(v,y,w)}_resolve(v,y,g){let S;if(this.type==="value"&&y.mainstay.shadow&&g.shadow!==!1&&(S=y.mainstay.shadow.get(this.absolute(y))),S===void 0&&(S=d(v,this.path,{iterables:this.iterables,functions:!0})),this.adjust&&(S=this.adjust(S)),this.map){const w=this.map.get(S);w!==void 0&&(S=w)}return y.mainstay&&y.mainstay.tracer.resolve(y,this,S),S}toString(){return this.display}absolute(v){return[...v.path.slice(0,-this.ancestor),...this.path]}clone(){return new b.Ref(this)}describe(){const v={path:this.path};this.type!=="value"&&(v.type=this.type),this.separator!=="."&&(v.separator=this.separator),this.type==="value"&&this.ancestor!==1&&(v.ancestor=this.ancestor),this.map&&(v.map=[...this.map]);for(const y of["adjust","iterables","render"])this[y]!==null&&this[y]!==void 0&&(v[y]=this[y]);return this.in!==!1&&(v.in=!0),{ref:v}}updateDisplay(){const v=this.key!==null?this.key:"";if(this.type!=="value")return void(this.display="ref:".concat(this.type,":").concat(v));if(!this.separator)return void(this.display="ref:".concat(v));if(!this.ancestor)return void(this.display="ref:".concat(this.separator).concat(v));if(this.ancestor==="root")return void(this.display="ref:root:".concat(v));if(this.ancestor===1)return void(this.display="ref:".concat(v||".."));const y=new Array(this.ancestor+1).fill(this.separator).join("");this.display="ref:".concat(y).concat(v||"")}},b.Ref.prototype[m.symbols.ref]=!0,s.build=function(v){return(v=Object.assign({},b.defaults,v)).type==="value"&&v.ancestor===void 0&&(v.ancestor=1),new b.Ref(v)},b.context=function(v,y,g={}){if(v=v.trim(),g){const S=g.global===void 0?"$":g.global;if(S!==y&&v.startsWith(S))return{key:v.slice(S.length),type:"global"};const w=g.local===void 0?"#":g.local;if(w!==y&&v.startsWith(w))return{key:v.slice(w.length),type:"local"};const k=g.root===void 0?"/":g.root;if(k!==y&&v.startsWith(k))return{key:v.slice(k.length),type:"value",root:!0}}return{key:v,type:"value"}},b.ancestor=function(v,y){if(!y)return[1,0];if(v[0]!==y)return[1,0];if(v[1]!==y)return[0,1];let g=2;for(;v[g]===y;)++g;return[g-1,g]},s.toSibling=0,s.toParent=1,s.Manager=class{constructor(){this.refs=[]}register(v,y){if(v)if(y=y===void 0?s.toParent:y,Array.isArray(v))for(const g of v)this.register(g,y);else if(m.isSchema(v))for(const g of v._refs.refs)g.ancestor-y>=0&&this.refs.push({ancestor:g.ancestor-y,root:g.root});else s.isRef(v)&&v.type==="value"&&v.ancestor-y>=0&&this.refs.push({ancestor:v.ancestor-y,root:v.root}),f=f||u(3328),f.isTemplate(v)&&this.register(v.refs(),y)}get length(){return this.refs.length}clone(){const v=new s.Manager;return v.refs=p(this.refs),v}reset(){this.refs=[]}roots(){return this.refs.filter(v=>
vendor: 5,809 bytes, line 90
90!v.ancestor).map(v=>v.root)}}},3378:(o,s,u)=>{const c=u(5107),p={};p.wrap=c.string().min(1).max(2).allow(!1),s.preferences=c.object({allowUnknown:c.boolean(),abortEarly:c.boolean(),artifacts:c.boolean(),cache:c.boolean(),context:c.object(),convert:c.boolean(),dateFormat:c.valid("date","iso","string","time","utc"),debug:c.boolean(),errors:{escapeHtml:c.boolean(),label:c.valid("path","key",!1),language:[c.string(),c.object().ref()],render:c.boolean(),stack:c.boolean(),wrap:{label:p.wrap,array:p.wrap,string:p.wrap}},externals:c.boolean(),messages:c.object(),noDefaults:c.boolean(),nonEnumerables:c.boolean(),presence:c.valid("required","optional","forbidden"),skipFunctions:c.boolean(),stripUnknown:c.object({arrays:c.boolean(),objects:c.boolean()}).or("arrays","objects").allow(!0,!1),warnings:c.boolean()}).strict(),p.nameRx=/^[a-zA-Z0-9]\w*$/,p.rule=c.object({alias:c.array().items(c.string().pattern(p.nameRx)).single(),args:c.array().items(c.string(),c.object({name:c.string().pattern(p.nameRx).required(),ref:c.boolean(),assert:c.alternatives([c.function(),c.object().schema()]).conditional("ref",{is:!0,then:c.required()}),normalize:c.function(),message:c.string().when("assert",{is:c.function(),then:c.required()})})),convert:c.boolean(),manifest:c.boolean(),method:c.function().allow(!1),multi:c.boolean(),validate:c.function()}),s.extension=c.object({type:c.alternatives([c.string(),c.object().regex()]).required(),args:c.function(),cast:c.object().pattern(p.nameRx,c.object({from:c.function().maxArity(1).required(),to:c.function().minArity(1).maxArity(2).required()})),base:c.object().schema().when("type",{is:c.object().regex(),then:c.forbidden()}),coerce:[c.function().maxArity(3),c.object({method:c.function().maxArity(3).required(),from:c.array().items(c.string()).single()})],flags:c.object().pattern(p.nameRx,c.object({setter:c.string(),default:c.any()})),manifest:{build:c.function().arity(2)},messages:[c.object(),c.string()],modifiers:c.object().pattern(p.nameRx,c.function().minArity(1).maxArity(2)),overrides:c.object().pattern(p.nameRx,c.function()),prepare:c.function().maxArity(3),rebuild:c.function().arity(1),rules:c.object().pattern(p.nameRx,p.rule),terms:c.object().pattern(p.nameRx,c.object({init:c.array().allow(null).required(),manifest:c.object().pattern(/.+/,[c.valid("schema","single"),c.object({mapped:c.object({from:c.string().required(),to:c.string().required()}).required()})])})),validate:c.function().maxArity(3)}).strict(),s.extensions=c.array().items(c.object(),c.function().arity(1)).strict(),p.desc={buffer:c.object({buffer:c.string()}),func:c.object({function:c.function().required(),options:{literal:!0}}),override:c.object({override:!0}),ref:c.object({ref:c.object({type:c.valid("value","global","local"),path:c.array().required(),separator:c.string().length(1).allow(!1),ancestor:c.number().min(0).integer().allow("root"),map:c.array().items(c.array().length(2)).min(1),adjust:c.function(),iterables:c.boolean(),in:c.boolean(),render:c.boolean()}).required()}),regex:c.object({regex:c.string().min(3)}),special:c.object({special:c.valid("deep").required()}),template:c.object({template:c.string().required(),options:c.object()}),value:c.object({value:c.alternatives([c.object(),c.array()]).required()})},p.desc.entity=c.alternatives([c.array().items(c.link("...")),c.boolean(),c.function(),c.number(),c.string(),p.desc.buffer,p.desc.func,p.desc.ref,p.desc.regex,p.desc.special,p.desc.template,p.desc.value,c.link("/")]),p.desc.values=c.array().items(null,c.boolean(),c.function(),c.number().allow(1/0,-1/0),c.string().allow(""),c.symbol(),p.desc.buffer,p.desc.func,p.desc.override,p.desc.ref,p.desc.regex,p.desc.template,p.desc.value),p.desc.messages=c.object().pattern(/.+/,[c.string(),p.desc.template,c.object().pattern(/.+/,[c.string(),p.desc.template])]),s.description=c.object({type:c.string().required(),flags:c.object({cast:c.string(),default:c.any(),description:c.string(),empty:c.link("/"),failover:p.desc.entity,id:c.string(),label:c.string(),only:!0,presence:["optional","required","forbidden"],result:["raw","strip"],strip:c.boolean(),unit:c.string()}).unknown(),preferences:{allowUnknown:c.boolean(),abortEarly:c.boolean(),artifacts:c.boolean(),cache:c.boolean(),convert:c.boolean(),dateFormat:["date","iso","string","time","utc"],errors:{escapeHtml:c.boolean(),label:["path","key"],language:[c.string(),p.desc.ref],wrap:{label:p.wrap,array:p.wrap}},externals:c.boolean(),messages:p.desc.messages,noDefaults:c.boolean(),nonEnumerables:c.boolean(),presence:["required","optional","forbidden"],skipFunctions:c.boolean(),stripUnknown:c.object({arrays:c.boolean(),objects:c.boolean()}).or("arrays","objects").allow(!0,!1),warnings:c.boolean()},allow:p.desc.values,invalid:p.desc.values,rules:c.array().min(1).items({name:c.string().required(),args:c.object().min(1),keep:c.boolean(),message:[c.string(),p.desc.messages],warn:c.boolean()}),keys:c.object().pattern(/.*/,c.link("/")),link:p.desc.ref}).pattern(/^[a-z]\w*$/,c.any())},493:(o,s,u)=>{const c=u(8571),p=u(9621),d=u(8160),m={value:Symbol("value")};o.exports=m.State=class{constructor(f,b,v){this.path=f,this.ancestors=b,this.mainstay=v.mainstay,this.schemas=v.schemas,this.debug=null}localize(f,b=null,v=null){const y=new m.State(f,b,this);return v&&y.schemas&&(y.schemas=[m.schemas(v),...y.schemas]),y}nest(f,b){const v=new m.State(this.path,this.ancestors,this);return v.schemas=v.schemas&&[m.schemas(f),...v.schemas],v.debug=b,v}shadow(f,b){this.mainstay.shadow=this.mainstay.shadow||new m.Shadow,this.mainstay.shadow.set(this.path,f,b)}snapshot(){this.mainstay.shadow&&(this._snapshot=c(this.mainstay.shadow.node(this.path))),this.mainstay.snapshot()}restore(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.restore(
90)}commit(){this.mainstay.shadow&&(this.mainstay.shadow.override(this.path,this._snapshot),this._snapshot=void 0),this.mainstay.commit()}},m.schemas=function(f){return d.isSchema(f)?{schema:f}:f},m.Shadow=class{constructor(){this._values=null}set(f,b,v){if(!f.length||v==="strip"&&typeof f[f.length-1]=="number")return;this._values=this._values||new Map;let y=this._values;for(let g=0;g<f.length;++g){const S=f[g];let w=y.get(S);w||(w=new Map,y.set(S,w)),y=w}y[m.value]=b}get(f){const b=this.node(f);if(b)return b[m.value]}node(f){if(this._values)return p(this._values,f,{iterables:!0})}override(f,b){if(!this._values)return;const v=f.slice(0,-1),y=f[f.length-1],g=p(this._values,v,{iterables:!0});b?g.set(y,b):g&&g.delete(y)}}},3328:(o,s,u)=>{const c=u(375),p=u(8571),d=u(5277),m=u(1447),f=u(8160),b=u(6354),v=u(6133),y={symbol:Symbol("template"),opens:new Array(1e3).join("\0"),closes:new Array(1e3).join("�"),dateFormat:{date:Date.prototype.toDateString,iso:Date.prototype.toISOString,string:Date.prototype.toString,time:Date.prototype.toTimeString,utc:Date.prototype.toUTCString}};o.exports=y.Template=class{constructor(g,S){if(c(typeof g=="string","Template source must be a string"),c(!g.includes("\0")&&!g.includes("�"),"Template source cannot contain reserved control characters"),this.source=g,this.rendered=g,this._template=null,S){const w=S,{functions:k}=w,T=Pl(w,["functions"]);this._settings=Object.keys(T).length?p(T):void 0,this._functions=k,this._functions&&(c(Object.keys(this._functions).every(R=>typeof R=="string"),"Functions keys must be strings"),c(Object.values(this._functions).every(R=>typeof R=="function"),"Functions values must be functions"))}else this._settings=void 0,this._functions=void 0;this._parse()}_parse(){if(!this.source.includes("{"))return;const g=y.encode(this.source),S=y.split(g);let w=!1;const k=[],T=S.shift();T&&k.push(T);for(const R of S){const I=R[0]!=="{",M=I?"}":"}}",L=R.indexOf(M);if(L===-1||R[1]==="{"){k.push("{".concat(y.decode(R)));continue}let O=R.slice(I?0:1,L);const W=O[0]===":";W&&(O=O.slice(1));const F=this._ref(y.decode(O),{raw:I,wrapped:W});k.push(F),typeof F!="string"&&(w=!0);const G=R.slice(L+M.length);G&&k.push(y.decode(G))}w?this._template=k:this.rendered=k.join("")}static date(g,S){return y.dateFormat[S.dateFormat].call(g)}describe(g={}){if(!this._settings&&g.compact)return this.source;const S={template:this.source};return this._settings&&(S.options=this._settings),this._functions&&(S.functions=this._functions),S}static build(g){return new y.Template(g.template,g.options||g.functions?or(Je({},g.options),{functions:g.functions}):void 0)}isDynamic(){return!!this._template}static isTemplate(g){return!!g&&!!g[f.symbols.template]}refs(){if(!this._template)return;const g=[];for(const S of this._template)typeof S!="string"&&g.push(...S.refs);return g}resolve(g,S,w,k){return this._template&&this._template.length===1?this._part(this._template[0],g,S,w,k,{}):this.render(g,S,w,k)}_part(g,...S){return g.ref?g.ref.resolve(...S):g.formula.evaluate(S)}render(g,S,w,k,T={}){if(!this.isDynamic())return this.rendered;const R=[];for(const I of this._template)if(typeof I=="string")R.push(I);else{const M=this._part(I,g,S,w,k,T),L=y.stringify(M,g,S,w,k,T);if(L!==void 0){const O=I.raw||(T.errors&&T.errors.escapeHtml)===!1?L:d(L);R.push(y.wrap(O,I.wrapped&&w.errors.wrap.label))}}return R.join("")}_ref(g,{raw:S,wrapped:w}){const k=[],T=I=>{const M=v.create(I,this._settings);return k.push(M),L=>{const O=M.resolve(...L);return O!==void 0?O:null}};try{const I=this._functions?Je(Je({},y.functions),this._functions):y.functions;var R=new m.Parser(g,{reference:T,functions:I,constants:y.constants})}catch(I){throw I.message='Invalid template variable "'.concat(g,'" fails due to: ').concat(I.message),I}if(R.single){if(R.single.type==="reference"){const I=k[0];return{ref:I,raw:S,refs:k,wrapped:w||I.type==="local"&&I.key==="label"}}return y.stringify(R.single.value)}return{formula:R,raw:S,refs:k}}toString(){return this.source}},y.Template.prototype[f.symbols.template]=!0,y.Template.prototype.isImmutable=!0,y.encode=function(g){return g.replace(/\\(\{+)/g,(S,w)=>y.opens.slice(0,w.length)).replace(/\\(\}+)/g,(S,w)=>y.closes.slice(0,w.length))},y.decode=function(g){return g.replace(/\u0000/g,"{").replace(/\u0001/g,"}")},y.split=function(g){const S=[];let w="";for(let k=0;k<g.length;++k){const T=g[k];if(T==="{"){let R="";for(;k+1<g.length&&g[k+1]==="{";)R+="{",++k;S.push(w),w=R}else w+=T}return S.push(w),S},y.wrap=function(g,S){return S?S.length===1?"".concat(S).concat(g).concat(S):"".concat(S[0]).concat(g).concat(S[1]):g},y.stringify=function(g,S,w,k,T,R={}){const I=typeof g,M=k&&k.errors&&k.errors.wrap||{};let L=!1;
90if(v.isRef(g)&&g.render&&(L=g.in,g=g.resolve(S,w,k,T,Je({in:g.in},R))),g===null)return"null";if(I==="string")return y.wrap(g,R.arrayItems&&M.string);if(I==="number"||I==="function"||I==="symbol")return g.toString();if(I!=="object")return JSON.stringify(g);if(g instanceof Date)return y.Template.date(g,k);if(g instanceof Map){const W=[];for(const[F,G]of g.entries())W.push("".concat(F.toString()," -> ").concat(G.toString()));g=W}if(!Array.isArray(g))return g.toString();const O=[];for(const W of g)O.push(y.stringify(W,S,w,k,T,Je({arrayItems:!0},R)));return y.wrap(O.join(", "),!L&&M.array)},y.constants={true:!0,false:!1,null:null,second:1e3,minute:6e4,hour:36e5,day:864e5},y.functions={if:(g,S,w)=>g?S:w,length:g=>typeof g=="string"?g.length:g&&typeof g=="object"?Array.isArray(g)?g.length:Object.keys(g).length:null,msg(g){const[S,w,k,T,R]=this,I=R.messages;if(!I)return"";const M=b.template(S,I[0],g,w,k)||b.template(S,I[1],g,w,k);return M?M.render(S,w,k,T,R):""},number:g=>typeof g=="number"?g:typeof g=="string"?parseFloat(g):typeof g=="boolean"?g?1:0:g instanceof Date?g.getTime():null}},4946:(o,s,u)=>{const c=u(375),p=u(1687),d=u(8068),m=u(8160),f=u(3292),b=u(6354),v=u(6133),y={};o.exports=d.extend({type:"alternatives",flags:{match:{default:"any"}},terms:{matches:{init:[],register:v.toSibling}},args:(g,...S)=>S.length===1&&Array.isArray(S[0])?g.try(...S[0]):g.try(...S),validate(g,S){const{schema:w,error:k,state:T,prefs:R}=S;if(w._flags.match){const M=[],L=[];for(let W=0;W<w.$_terms.matches.length;++W){const F=w.$_terms.matches[W],G=T.nest(F.schema,"match.".concat(W));G.snapshot();const ee=F.schema.$_validate(g,G,R);ee.errors?(L.push(ee.errors),G.restore()):(M.push(ee.value),G.commit())}if(M.length===0)return{errors:k("alternatives.any",{details:L.map(W=>b.details(W,{override:!1}))})};if(w._flags.match==="one")return M.length===1?{value:M[0]}:{errors:k("alternatives.one")};if(M.length!==w.$_terms.matches.length)return{errors:k("alternatives.all",{details:L.map(W=>b.details(W,{override:!1}))})};const O=W=>W.$_terms.matches.some(F=>F.schema.type==="object"||F.schema.type==="alternatives"&&O(F.schema));return O(w)?{value:M.reduce((W,F)=>p(W,F,{mergeArrays:!1}))}:{value:M[M.length-1]}}const I=[];for(let M=0;M<w.$_terms.matches.length;++M){const L=w.$_terms.matches[M];if(L.schema){const F=T.nest(L.schema,"match.".concat(M));F.snapshot();const G=L.schema.$_validate(g,F,R);if(!G.errors)return F.commit(),G;F.restore(),I.push({schema:L.schema,reports:G.errors});continue}const O=L.ref?L.ref.resolve(g,T,R):g,W=L.is?[L]:L.switch;for(let F=0;F<W.length;++F){const G=W[F],{is:ee,then:de,otherwise:ye}=G,_e="match.".concat(M).concat(L.switch?"."+F:"");if(ee.$_match(O,T.nest(ee,"".concat(_e,".is")),R)){if(de)return de.$_validate(g,T.nest(de,"".concat(_e,".then")),R)}else if(ye)return ye.$_validate(g,T.nest(ye,"".concat(_e,".otherwise")),R)}}return y.errors(I,S)},rules:{conditional:{method(g,S){c(!this._flags._endedSwitch,"Unreachable condition"),c(!this._flags.match,"Cannot combine match mode",this._flags.match,"with conditional rule"),c(S.break===void 0,"Cannot use break option with alternatives conditional");const w=this.clone(),k=f.when(w,g,S),T=k.is?[k]:k.switch;for(const R of T)if(R.then&&R.otherwise){w.$_setFlag("_endedSwitch",!0,{clone:!1});break}return w.$_terms.matches.push(k),w.$_mutateRebuild()}},match:{method(g){if(c(["any","one","all"].includes(g),"Invalid alternatives match mode",g),g!=="any")for(const S of this.$_terms.matches)c(S.schema,"Cannot combine match mode",g,"with conditional rules");return this.$_setFlag("match",g)}},try:{method(...g){c(g.length,"Missing alternative schemas"),m.verifyFlat(g,"try"),c(!this._flags._endedSwitch,"Unreachable condition");const S=this.clone();for(const w of g)S.$_terms.matches.push({schema:S.$_compile(w)});return S.$_mutateRebuild()}}},overrides:{label(g){return this.$_parent("label",g).$_modify({each:(S,w)=>w.path[0]!=="is"&&typeof S._flags.label!="string"?S.label(g):void 0,ref:!1})}},rebuild(g){g.$_modify({each:S=>{m.isSchema(S)&&S.type==="array"&&g.$_setFlag("_arrayItems",!0,{clone:!1})}})},manifest:{build(g,S){if(S.matches)for(const w of S.matches){const{schema:k,ref:T,is:R,not:I,then:M,otherwise:L}=w;g=k?g.try(k):T?g.conditional(T,{is:R,then:M,not:I,otherwise:L,switch:w.switch}):g.conditional(R,{then:M,otherwise:L})}return g}},messages:{"alternatives.all":"{{#label}} does not match all of the required types","alternatives.any":"{{#label}} does not match any of the allowed types","alternatives.match":"{{#label}} does not match any of the allowed types","alternatives.one":"{{#label}} matches more than one allowed type","alternatives.types":"{{#label}} must be one of {{#types}}"}}),y.errors=function(g,{error:S,state:w}){if(!g.length)return{errors:S("alternatives.any")};if(g.length===1)return{errors:g[0].reports};const k=new Set,T=[];for(const{reports:R,schema:I}of g){if(R.length>1)return y.unmatched(g,S);const M=R[0];if(M instanceof b.Report==0)return y.unmatched(g,S);if(M.state.path.length!==w.path.length){T.push({type:I.type,report:M});continue}if(M.code==="any.only"){for(const W of M.local.valids)k.add(W);continue}const[L,O]=M.code.split(".");O!=="base"?T.push({type:I.type,report:M}):M.code==="object.base"?k.add(M.local.type):k.add(L)}return T.length?T.length===1?{errors:T[0].report}:y.unmatched(g,S):{errors:S("alternatives.types",{types:[...k]})}},y.unmatched=function(g,S){const w=[];for(const k of g)w.push(...k.reports);return{errors:S("alternatives.match",b.details(w,{override:!1}))}}},8068:(o,s,u)=>
vendor: 12,176 bytes, line 90
90{const c=u(375),p=u(7629),d=u(8160),m=u(6914);o.exports=p.extend({type:"any",flags:{only:{default:!1}},terms:{alterations:{init:null},examples:{init:null},externals:{init:null},metas:{init:[]},notes:{init:[]},shared:{init:null},tags:{init:[]},whens:{init:null}},rules:{custom:{method(f,b){return c(typeof f=="function","Method must be a function"),c(b===void 0||b&&typeof b=="string","Description must be a non-empty string"),this.$_addRule({name:"custom",args:{method:f,description:b}})},validate(f,b,{method:v}){try{return v(f,b)}catch(y){return b.error("any.custom",{error:y})}},args:["method","description"],multi:!0},messages:{method(f){return this.prefs({messages:f})}},shared:{method(f){c(d.isSchema(f)&&f._flags.id,"Schema must be a schema with an id");const b=this.clone();return b.$_terms.shared=b.$_terms.shared||[],b.$_terms.shared.push(f),b.$_mutateRegister(f),b}},warning:{method(f,b){return c(f&&typeof f=="string","Invalid warning code"),this.$_addRule({name:"warning",args:{code:f,local:b},warn:!0})},validate:(f,b,{code:v,local:y})=>b.error(v,y),args:["code","local"],multi:!0}},modifiers:{keep(f,b=!0){f.keep=b},message(f,b){f.message=m.compile(b)},warn(f,b=!0){f.warn=b}},manifest:{build(f,b){for(const v in b){const y=b[v];if(["examples","externals","metas","notes","tags"].includes(v))for(const g of y)f=f[v.slice(0,-1)](g);else if(v!=="alterations")if(v!=="whens"){if(v==="shared")for(const g of y)f=f.shared(g)}else for(const g of y){const{ref:S,is:w,not:k,then:T,otherwise:R,concat:I}=g;f=I?f.concat(I):S?f.when(S,{is:w,not:k,then:T,otherwise:R,switch:g.switch,break:g.break}):f.when(w,{then:T,otherwise:R,break:g.break})}else{const g={};for(const{target:S,adjuster:w}of y)g[S]=w;f=f.alter(g)}}return f}},messages:{"any.custom":"{{#label}} failed custom validation because {{#error.message}}","any.default":"{{#label}} threw an error when running default method","any.failover":"{{#label}} threw an error when running failover method","any.invalid":"{{#label}} contains an invalid value","any.only":'{{#label}} must be {if(#valids.length == 1, "", "one of ")}{{#valids}}',"any.ref":"{{#label}} {{#arg}} references {{:#ref}} which {{#reason}}","any.required":"{{#label}} is required","any.unknown":"{{#label}} is not allowed"}})},546:(o,s,u)=>{const c=u(375),p=u(9474),d=u(9621),m=u(8068),f=u(8160),b=u(3292),v={};o.exports=m.extend({type:"array",flags:{single:{default:!1},sparse:{default:!1}},terms:{items:{init:[],manifest:"schema"},ordered:{init:[],manifest:"schema"},_exclusions:{init:[]},_inclusions:{init:[]},_requireds:{init:[]}},coerce:{from:"object",method(y,{schema:g,state:S,prefs:w}){if(!Array.isArray(y))return;const k=g.$_getRule("sort");return k?v.sort(g,y,k.args.options,S,w):void 0}},validate(y,{schema:g,error:S}){if(!Array.isArray(y)){if(g._flags.single){const w=[y];return w[f.symbols.arraySingle]=!0,{value:w}}return{errors:S("array.base")}}if(g.$_getRule("items")||g.$_terms.externals)return{value:y.slice()}},rules:{has:{method(y){y=this.$_compile(y,{appendPath:!0});const g=this.$_addRule({name:"has",args:{schema:y}});return g.$_mutateRegister(y),g},validate(y,{state:g,prefs:S,error:w},{schema:k}){const T=[y,...g.ancestors];for(let I=0;I<y.length;++I){const M=g.localize([...g.path,I],T,k);if(k.$_match(y[I],M,S))return y}const R=k._flags.label;return R?w("array.hasKnown",{patternLabel:R}):w("array.hasUnknown",null)},multi:!0},items:{method(...y){f.verifyFlat(y,"items");const g=this.$_addRule("items");for(let S=0;S<y.length;++S){const w=f.tryWithPath(()=>this.$_compile(y[S]),S,{append:!0});g.$_terms.items.push(w)}return g.$_mutateRebuild()},validate(y,{schema:g,error:S,state:w,prefs:k,errorsArray:T}){const R=g.$_terms._requireds.slice(),I=g.$_terms.ordered.slice(),M=[...g.$_terms._inclusions,...R],L=!y[f.symbols.arraySingle];delete y[f.symbols.arraySingle];const O=T();let W=y.length;for(let F=0;F<W;++F){const G=y[F];let ee=!1,de=!1;const ye=L?F:new Number(F),_e=[...w.path,ye];if(!g._flags.sparse&&G===void 0){if(O.push(S("array.sparse",{key:ye,path:_e,pos:F,value:void 0},w.localize(_e))),k.abortEarly)return O;I.shift();continue}const Y=[y,...w.ancestors];for(const se of g.$_terms._exclusions)if(se.$_match(G,w.localize(_e,Y,se),k,{presence:"ignore"})){if(O.push(S("array.excludes",{pos:F,value:G},w.localize(_e))),k.abortEarly)return O;ee=!0,I.shift();break}if(ee)continue;if(g.$_terms.ordered.length){if(I.length){const se=I.shift(),j=se.$_validate(G,w.localize(_e,Y,se),k);if(j.errors){if(O.push(...j.errors),k.abortEarly)return O}else if(se._flags.result==="strip")v.fastSplice(y,F),--F,--W;else{if(!g._flags.sparse&&j.value===void 0){if(O.push(S("array.sparse",{key:ye,path:_e,pos:F,value:void 0},w.localize(_e))),k.abortEarly)return O;continue}y[F]=j.value}continue}if(!g.$_terms.items.length){if(O.push(S("array.orderedLength",{pos:F,limit:g.$_terms.ordered.length})),k.abortEarly)return O;break}}const q=[];let re=R.length;for(let se=0;se<re;++se){const j=w.localize(_e,Y,R[se]);j.snapshot();const X=R[se].$_validate(G,j,k);if(q[se]=X,!X.errors){if(j.commit(),y[F]=X.value,de=!0,v.fastSplice(R,se),--se,--re,!g._flags.sparse&&X.value===void 0&&(O.push(S("array.sparse",{key:ye,path:_e,pos:F,value:void 0},w.localize(_e))),k.abortEarly))return O;break}j.restore()}if(de)continue;const be=k.stripUnknown&&!!k.stripUnknown.arrays||!1;re=M.length;for(const se of M){let j;const X=R.indexOf(se);if(X!==-1)j=q[X];else{const fe=w.localize(_e,Y,se);if(fe.snapshot(),j=se.$_validate(G,fe,k),!j.errors){fe.commit(),se._flags.result==="strip"?(v.fastSplice(y,F),--F,--W):g._flags.sparse||j.value!==void 0?y[F]=j.value:(O.push(S("array.sparse",{key:ye,path:_e,pos:F,value:void 0},w.localize(_e))),ee=!0),de=!0;break}fe.restore()}if(re===1){if(be){v.fastSplice(y,F),--F,--W,de=!0;break}if(O.push(...j.errors),k.abortEarly)return O;ee=!0;break}}if(!ee&&(g.$_terms._inclusions.length||g.$_terms._requireds.length)&&!de){if(be){v.fastSplice(y,F),--F,--W;continue}if(O.push(S("array.includes",{pos:F,value:G},w.localize(_e))),k.abortEarly)return O}}return R.length&&v.fillMissedErrors(g,O,R,y,w,k),I.length&&(v.fillOrderedErrors(g,O,I,y,w,k),O.length||v.fillDefault(I,y,w,k)),O.length?O:y},priority:!0,manifest:!1},length:{method(y){return this.$_addRule({name:"length",args:{limit:y},operator:"="})},validate:(y,g,{limit:S},{name:w,operator:k,args:T})=>f.compare(y.length,S,k)?y:g.error("array."+w,{limit:T.limit,value:y}),args:[{name:"limit",ref:!0,assert:f.limit,message:"must be a positive integer"}]},max:{method(y){return this.$_addRule({name:"max",method:"length",args:{limit:y},operator:"<="})}},min:{method(y){return this.$_addRule({name:"min",method:"length",args:{limit:y},operator:">="})}},ordered:{method(...y){f.verifyFlat(y,"ordered");const g=this.$_addRule("items");for(let S=0;S<y.length;++S){const w=f.tryWithPath(()=>this.$_compile(y[S]),S,{append:!0});v.validateSingle(w,g),g.$_mutateRegister(w),g.$_terms.ordered.push(w)}return g.$_mutateRebuild()}},single:{method(y){const g=y===void 0||!!y;return c(!g||!this._flags._arrayItems,"Cannot specify single rule when array has array items"),this.$_setFlag("single",g)}},sort:{method(y={}){f.assertOptions(y,["by","order"]);const g={order:y.order||"ascending"};return y.by&&(g.by=b.ref(y.by,{ancestor:0}),c(!g.by.ancestor,"Cannot sort by ancestor")),this.$_addRule({name:"sort",args:{options:g}})},validate(y,{error:g,state:S,prefs:w,schema:k},{options:T}){const{value:R,errors:I}=v.sort(k,y,T,S,w);if(I)return I;for(let M=0;M<y.length;++M)if(y[M]!==R[M])return g("array.sort",{order:T.order,by:T.by?T.by.key:"value"});return y},convert:!0},sparse:{method(y){const g=y===void 0||!!y;return this._flags.sparse===g?this:(g?this.clone():this.$_addRule("items")).$_setFlag("sparse",g,{clone:!1})}},unique:{method(y,g={}){c(!y||typeof y=="function"||typeof y=="string","comparator must be a function or a string"),f.assertOptions(g,["ignoreUndefined","separator"]);const S={name:"unique",args:{options:g,comparator:y}};if(y)if(typeof y=="string"){const w=f.default(g.separator,".");S.path=w?y.split(w):[y]}else S.comparator=y;return this.$_addRule(S)},validate(y,{state:g,error:S,schema:w},{comparator:k,options:T},{comparator:R,path:I}){const M={string:Object.create(null),number:Object.create(null),undefined:Object.create(null),boolean:Object.create(null),bigint:Object.create(null),object:new Map,function:new Map,custom:new Map},L=R||p,O=T.ignoreUndefined;for(let W=0;W<y.length;++W){const F=I?d(y[W],I):y[W],G=R?M.custom:M[typeof F];if(c(G,"Failed to find unique map container for type",typeof F),G instanceof Map){const ee=G.entries();let de;for(;!(de=ee.next()).done;)if(L(de.value[0],F)){const ye=g.localize([...g.path,W],[y,...g.ancestors]),_e={pos:W,value:y[W],dupePos:de.value[1],dupeValue:y[de.value[1]]};return I&&(_e.path=k),S("array.unique",_e,ye)}G.set(F,W)}else{if((!O||F!==void 0)&&G[F]!==void 0){const ee={pos:W,value:y[W],dupePos:G[F],dupeValue:y[G[F]]};return I&&(ee.path=k),S("array.unique",ee,g.localize([...g.path,W],[y,...g.ancestors]))}G[F]=W}}return y},args:["comparator","options"],multi:!0}},cast:{set:{from:Array.isArray,to:(y,g)=>new Set(y)}},rebuild(y){y.$_terms._inclusions=[],y.$_terms._exclusions=[],y.$_terms._requireds=[];for(const g of y.$_terms.items)v.validateSingle(g,y),g._flags.presence==="required"?y.$_terms._requireds.push(g):g._flags.presence==="forbidden"?y.$_terms._exclusions.push(g):y.$_terms._inclusions.push(g);for(const g of y.$_terms.ordered)v.validateSingle(g,y)},manifest:{build:(y,g)=>(g.items&&(y=y.items(...g.items)),g.ordered&&(y=y.ordered(...g.ordered)),y)},messages:{"array.base":"{{#label}} must be an array","array.excludes":"{{#label}} contains an excluded value","array.hasKnown":"{{#label}} does not contain at least one required match for type {:#patternLabel}","array.hasUnknown":"{{#label}} does not contain at least one required match","array.includes":"{{#label}} does not match any of the allowed types","array.includesRequiredBoth":"{{#label}} does not contain {{#knownMisses}} and {{#unknownMisses}} other required value(s)","array.includesRequiredKnowns":"{{#label}} does not contain {{#knownMisses}}","array.includesRequiredUnknowns":"{{#label}} does not contain {{#unknownMisses}} required value(s)","array.length":"{{#label}} must contain {{#limit}} items","array.max":"{{#label}} must contain less than or equal to {{#limit}} items","array.min":"{{#label}} must contain at least {{#limit}} items","array.orderedLength":"{{#label}} must contain at most {{#limit}} items","array.sort":"{{#label}} must be sorted in {#order} order by {{#by}}","array.sort.mismatching":"{{#label}} cannot be sorted due to mismatching types","array.sort.unsupported":"{{#label}} cannot be sorted due to unsupported type {#type}","array.sparse":"{{#label}} must not be a sparse array item","array.unique":"{{#label}} contains a duplicate value"}}),v.fillMissedErrors=function(y,g,S,w,k,T){const R=[];let I=0;for(const M of S){const L=M._flags.label;L?R.push(L):++I}R.length?I?g.push(y.$_createError("array.includesRequiredBoth",w,{knownMisses:R,unknownMisses:I},k,T)):g.push(y.$_createError("array.includesRequiredKnowns",w,{knownMisses:R},k,T)):g.push(y.$_createError("array.includesRequiredUnknowns",w,{unknownMisses:I},k,T))},v.fillOrderedErrors=function(y,g,S,w,k,T){const R=[];for(const I of S)I._flags.presence==="required"&&R.push(I);R.length&&v.fillMissedErrors(y,g,R,w,k,T)},v.fillDefault=function(y,g,S,w){const k=[];let T=!0;for(let R=y.length-1;R>=0;--R){const I=y[R],M=[g,...S.ancestors],L=I.$_validate(void 0,S.localize(S.path,M,I),w).value;if(T){if(L===void 0)continue;T=!1}k.unshift(L)}k.length&&g.push(...k)},v.fastSplice=function(y,g){let S=g;for(;S<y.length;)y[S++]=y[S];--y.length},v.validateSingle=function(y,g){(y.type==="array"||y._flags._arrayItems)&&(c(!g._flags.single,"Cannot specify array item with single rule enabled"),g.$_setFlag("_arrayItems",!0,{clone:!1}))},v.sort=function(y,g,S,w,k){const T=S.order==="ascending"?1:-1,R=-1*T,I=T,M=(L,O)=>{let W=v.compare(L,O,R,I);if(W!==null||(S.by&&(L=S.by.resolve(L,w,k),O=S.by.resolve(O,w,k)),W=v.compare(L,O,R,I),W!==null))return W;const F=typeof L;if(F!==typeof O)throw y.$_createError("array.sort.mismatching",g,null,w,k);
90if(F!=="number"&&F!=="string")throw y.$_createError("array.sort.unsupported",g,{type:F},w,k);return F==="number"?(L-O)*T:L<O?R:I};try{return{value:g.slice().sort(M)}}catch(L){return{errors:L}}},v.compare=function(y,g,S,w){return y===g?0:y===void 0?1:g===void 0?-1:y===null?w:g===null?S:null}},4937:(o,s,u)=>{const c=u(375),p=u(8068),d=u(8160),m=u(2036),f={isBool:function(b){return typeof b=="boolean"}};o.exports=p.extend({type:"boolean",flags:{sensitive:{default:!1}},terms:{falsy:{init:null,manifest:"values"},truthy:{init:null,manifest:"values"}},coerce(b,{schema:v}){if(typeof b!="boolean"){if(typeof b=="string"){const y=v._flags.sensitive?b:b.toLowerCase();b=y==="true"||y!=="false"&&b}return typeof b!="boolean"&&(b=v.$_terms.truthy&&v.$_terms.truthy.has(b,null,null,!v._flags.sensitive)||(!v.$_terms.falsy||!v.$_terms.falsy.has(b,null,null,!v._flags.sensitive))&&b),{value:b}}},validate(b,{error:v}){if(typeof b!="boolean")return{value:b,errors:v("boolean.base")}},rules:{truthy:{method(...b){d.verifyFlat(b,"truthy");const v=this.clone();v.$_terms.truthy=v.$_terms.truthy||new m;for(let y=0;y<b.length;++y){const g=b[y];c(g!==void 0,"Cannot call truthy with undefined"),v.$_terms.truthy.add(g)}return v}},falsy:{method(...b){d.verifyFlat(b,"falsy");const v=this.clone();v.$_terms.falsy=v.$_terms.falsy||new m;for(let y=0;y<b.length;++y){const g=b[y];c(g!==void 0,"Cannot call falsy with undefined"),v.$_terms.falsy.add(g)}return v}},sensitive:{method(b=!0){return this.$_setFlag("sensitive",b)}}},cast:{number:{from:f.isBool,to:(b,v)=>b?1:0},string:{from:f.isBool,to:(b,v)=>b?"true":"false"}},manifest:{build:(b,v)=>(v.truthy&&(b=b.truthy(...v.truthy)),v.falsy&&(b=b.falsy(...v.falsy)),b)},messages:{"boolean.base":"{{#label}} must be a boolean"}})},7500:(o,s,u)=>{const c=u(375),p=u(8068),d=u(8160),m=u(3328),f={isDate:function(b){return b instanceof Date}};o.exports=p.extend({type:"date",coerce:{from:["number","string"],method:(b,{schema:v})=>({value:f.parse(b,v._flags.format)||b})},validate(b,{schema:v,error:y,prefs:g}){if(b instanceof Date&&!isNaN(b.getTime()))return;const S=v._flags.format;return g.convert&&S&&typeof b=="string"?{value:b,errors:y("date.format",{format:S})}:{value:b,errors:y("date.base")}},rules:{compare:{method:!1,validate(b,v,{date:y},{name:g,operator:S,args:w}){const k=y==="now"?Date.now():y.getTime();return d.compare(b.getTime(),k,S)?b:v.error("date."+g,{limit:w.date,value:b})},args:[{name:"date",ref:!0,normalize:b=>b==="now"?b:f.parse(b),assert:b=>b!==null,message:"must have a valid date format"}]},format:{method(b){return c(["iso","javascript","unix"].includes(b),"Unknown date format",b),this.$_setFlag("format",b)}},greater:{method(b){return this.$_addRule({name:"greater",method:"compare",args:{date:b},operator:">"})}},iso:{method(){return this.format("iso")}},less:{method(b){return this.$_addRule({name:"less",method:"compare",args:{date:b},operator:"<"})}},max:{method(b){return this.$_addRule({name:"max",method:"compare",args:{date:b},operator:"<="})}},min:{method(b){return this.$_addRule({name:"min",method:"compare",args:{date:b},operator:">="})}},timestamp:{method(b="javascript"){return c(["javascript","unix"].includes(b),'"type" must be one of "javascript, unix"'),this.format(b)}}},cast:{number:{from:f.isDate,to:(b,v)=>b.getTime()},string:{from:f.isDate,to:(b,{prefs:v})=>m.date(b,v)}},messages:{"date.base":"{{#label}} must be a valid date","date.format":'{{#label}} must be in {msg("date.format." + #format) || #format} format',"date.greater":"{{#label}} must be greater than {{:#limit}}","date.less":"{{#label}} must be less than {{:#limit}}","date.max":"{{#label}} must be less than or equal to {{:#limit}}","date.min":"{{#label}} must be greater than or equal to {{:#limit}}","date.format.iso":"ISO 8601 date","date.format.javascript":"timestamp or number of milliseconds","date.format.unix":"timestamp or number of seconds"}}),f.parse=function(b,v){if(b instanceof Date)return b;if(typeof b!="string"&&(isNaN(b)||!isFinite(b))||/^\s*$/.test(b))return null;if(v==="iso")return d.isIsoDate(b)?f.date(b.toString()):null;const y=b;if(typeof b=="string"&&/^[+-]?\d+(\.\d+)?$/.test(b)&&(b=parseFloat(b)),v){if(v==="javascript")return f.date(1*b);if(v==="unix")return f.date(1e3*b);if(typeof y=="string")return null}return f.date(b)},f.date=function(b){const v=new Date(b);return isNaN(v.getTime())?null:v}},390:(o,s,u)=>
vendor: 6,239 bytes, line 90
90{const c=u(375),p=u(7824);o.exports=p.extend({type:"function",properties:{typeof:"function"},rules:{arity:{method(d){return c(Number.isSafeInteger(d)&&d>=0,"n must be a positive integer"),this.$_addRule({name:"arity",args:{n:d}})},validate:(d,m,{n:f})=>d.length===f?d:m.error("function.arity",{n:f})},class:{method(){return this.$_addRule("class")},validate:(d,m)=>/^\s*class\s/.test(d.toString())?d:m.error("function.class",{value:d})},minArity:{method(d){return c(Number.isSafeInteger(d)&&d>0,"n must be a strict positive integer"),this.$_addRule({name:"minArity",args:{n:d}})},validate:(d,m,{n:f})=>d.length>=f?d:m.error("function.minArity",{n:f})},maxArity:{method(d){return c(Number.isSafeInteger(d)&&d>=0,"n must be a positive integer"),this.$_addRule({name:"maxArity",args:{n:d}})},validate:(d,m,{n:f})=>d.length<=f?d:m.error("function.maxArity",{n:f})}},messages:{"function.arity":"{{#label}} must have an arity of {{#n}}","function.class":"{{#label}} must be a class","function.maxArity":"{{#label}} must have an arity lesser or equal to {{#n}}","function.minArity":"{{#label}} must have an arity greater or equal to {{#n}}"}})},7824:(o,s,u)=>{const c=u(978),p=u(375),d=u(8571),m=u(3652),f=u(8068),b=u(8160),v=u(3292),y=u(6354),g=u(6133),S=u(3328),w={renameDefaults:{alias:!1,multiple:!1,override:!1}};o.exports=f.extend({type:"_keys",properties:{typeof:"object"},flags:{unknown:{default:void 0}},terms:{dependencies:{init:null},keys:{init:null,manifest:{mapped:{from:"schema",to:"key"}}},patterns:{init:null},renames:{init:null}},args:(k,T)=>k.keys(T),validate(k,{schema:T,error:R,state:I,prefs:M}){if(!k||typeof k!==T.$_property("typeof")||Array.isArray(k))return{value:k,errors:R("object.base",{type:T.$_property("typeof")})};if(!(T.$_terms.renames||T.$_terms.dependencies||T.$_terms.keys||T.$_terms.patterns||T.$_terms.externals))return;k=w.clone(k,M);const L=[];if(T.$_terms.renames&&!w.rename(T,k,I,M,L))return{value:k,errors:L};if(!T.$_terms.keys&&!T.$_terms.patterns&&!T.$_terms.dependencies)return{value:k,errors:L};const O=new Set(Object.keys(k));if(T.$_terms.keys){const W=[k,...I.ancestors];for(const F of T.$_terms.keys){const G=F.key,ee=k[G];O.delete(G);const de=I.localize([...I.path,G],W,F),ye=F.schema.$_validate(ee,de,M);if(ye.errors){if(M.abortEarly)return{value:k,errors:ye.errors};ye.value!==void 0&&(k[G]=ye.value),L.push(...ye.errors)}else F.schema._flags.result==="strip"||ye.value===void 0&&ee!==void 0?delete k[G]:ye.value!==void 0&&(k[G]=ye.value)}}if(O.size||T._flags._hasPatternMatch){const W=w.unknown(T,k,O,L,I,M);if(W)return W}if(T.$_terms.dependencies)for(const W of T.$_terms.dependencies){if(W.key!==null&&w.isPresent(W.options)(W.key.resolve(k,I,M,null,{shadow:!1}))===!1)continue;const F=w.dependencies[W.rel](T,W,k,I,M);if(F){const G=T.$_createError(F.code,k,F.context,I,M);if(M.abortEarly)return{value:k,errors:G};L.push(G)}}return{value:k,errors:L}},rules:{and:{method(...k){return b.verifyFlat(k,"and"),w.dependency(this,"and",null,k)}},append:{method(k){return k==null||Object.keys(k).length===0?this:this.keys(k)}},assert:{method(k,T,R){S.isTemplate(k)||(k=v.ref(k)),p(R===void 0||typeof R=="string","Message must be a string"),T=this.$_compile(T,{appendPath:!0});const I=this.$_addRule({name:"assert",args:{subject:k,schema:T,message:R}});return I.$_mutateRegister(k),I.$_mutateRegister(T),I},validate(k,{error:T,prefs:R,state:I},{subject:M,schema:L,message:O}){const W=M.resolve(k,I,R),F=g.isRef(M)?M.absolute(I):[];return L.$_match(W,I.localize(F,[k,...I.ancestors],L),R)?k:T("object.assert",{subject:M,message:O})},args:["subject","schema","message"],multi:!0},instance:{method(k,T){return p(typeof k=="function","constructor must be a function"),T=T||k.name,this.$_addRule({name:"instance",args:{constructor:k,name:T}})},validate:(k,T,{constructor:R,name:I})=>k instanceof R?k:T.error("object.instance",{type:I,value:k}),args:["constructor","name"]},keys:{method(k){p(k===void 0||typeof k=="object","Object schema must be a valid object"),p(!b.isSchema(k),"Object schema cannot be a joi schema");const T=this.clone();if(k)if(Object.keys(k).length){T.$_terms.keys=T.$_terms.keys?T.$_terms.keys.filter(R=>!k.hasOwnProperty(R.key)):new w.Keys;for(const R in k)b.tryWithPath(()=>T.$_terms.keys.push({key:R,schema:this.$_compile(k[R])}),R)}else T.$_terms.keys=new w.Keys;else T.$_terms.keys=null;return T.$_mutateRebuild()}},length:{method(k){return this.$_addRule({name:"length",args:{limit:k},operator:"="})},validate:(k,T,{limit:R},{name:I,operator:M,args:L})=>b.compare(Object.keys(k).length,R,M)?k:T.error("object."+I,{limit:L.limit,value:k}),args:[{name:"limit",ref:!0,assert:b.limit,message:"must be a positive integer"}]},max:{method(k){return this.$_addRule({name:"max",method:"length",args:{limit:k},operator:"<="})}},min:{method(k){return this.$_addRule({name:"min",method:"length",args:{limit:k},operator:">="})}},nand:{method(...k){return b.verifyFlat(k,"nand"),w.dependency(this,"nand",null,k)}},or:{method(...k){return b.verifyFlat(k,"or"),w.dependency(this,"or",null,k)}},oxor:{method(...k){return w.dependency(this,"oxor",null,k)}},pattern:{method(k,T,R={}){const I=k instanceof RegExp;I||(k=this.$_compile(k,{appendPath:!0})),p(T!==void 0,"Invalid rule"),b.assertOptions(R,["fallthrough","matches"]),I&&p(!k.flags.includes("g")&&!k.flags.includes("y"),"pattern should not use global or sticky mode"),T=this.$_compile(T,{appendPath:!0});const M=this.clone();M.$_terms.patterns=M.$_terms.patterns||[];const L={[I?"regex":"schema"]:k,rule:T};return R.matches&&(L.matches=this.$_compile(R.matches),L.matches.type!=="array"&&(L.matches=L.matches.$_root.array().items(L.matches)),M.$_mutateRegister(L.matches),M.$_setFlag("_hasPatternMatch",!0,{clone:!1})),R.fallthrough&&(L.fallthrough=!0),M.$_terms.patterns.push(L),M.$_mutateRegister(T),M}},ref:{method(){return this.$_addRule("ref")},validate:(k,T)=>g.isRef(k)?k:T.error("object.refType",{value:k})},regex:{method(){return this.$_addRule("regex")},validate:(k,T)=>k instanceof RegExp?k:T.error("object.regex",{value:k})},rename:{method(k,T,R={}){p(typeof k=="string"||k instanceof RegExp,"Rename missing the from argument"),p(typeof T=="string"||T instanceof S,"Invalid rename to argument"),p(T!==k,"Cannot rename key to
90same name:",k),b.assertOptions(R,["alias","ignoreUndefined","override","multiple"]);const I=this.clone();I.$_terms.renames=I.$_terms.renames||[];for(const M of I.$_terms.renames)p(M.from!==k,"Cannot rename the same key multiple times");return T instanceof S&&I.$_mutateRegister(T),I.$_terms.renames.push({from:k,to:T,options:c(w.renameDefaults,R)}),I}},schema:{method(k="any"){return this.$_addRule({name:"schema",args:{type:k}})},validate:(k,T,{type:R})=>!b.isSchema(k)||R!=="any"&&k.type!==R?T.error("object.schema",{type:R}):k},unknown:{method(k){return this.$_setFlag("unknown",k!==!1)}},with:{method(k,T,R={}){return w.dependency(this,"with",k,T,R)}},without:{method(k,T,R={}){return w.dependency(this,"without",k,T,R)}},xor:{method(...k){return b.verifyFlat(k,"xor"),w.dependency(this,"xor",null,k)}}},overrides:{default(k,T){return k===void 0&&(k=b.symbols.deepDefault),this.$_parent("default",k,T)}},rebuild(k){if(k.$_terms.keys){const T=new m.Sorter;for(const R of k.$_terms.keys)b.tryWithPath(()=>T.add(R,{after:R.schema.$_rootReferences(),group:R.key}),R.key);k.$_terms.keys=new w.Keys(...T.nodes)}},manifest:{build(k,T){if(T.keys&&(k=k.keys(T.keys)),T.dependencies)for(const{rel:R,key:I=null,peers:M,options:L}of T.dependencies)k=w.dependency(k,R,I,M,L);if(T.patterns)for(const{regex:R,schema:I,rule:M,fallthrough:L,matches:O}of T.patterns)k=k.pattern(R||I,M,{fallthrough:L,matches:O});if(T.renames)for(const{from:R,to:I,options:M}of T.renames)k=k.rename(R,I,M);return k}},messages:{"object.and":"{{#label}} contains {{#presentWithLabels}} without its required peers {{#missingWithLabels}}","object.assert":'{{#label}} is invalid because {if(#subject.key, `"` + #subject.key + `" failed to ` + (#message || "pass the assertion test"), #message || "the assertion failed")}',"object.base":"{{#label}} must be of type {{#type}}","object.instance":"{{#label}} must be an instance of {{:#type}}","object.length":'{{#label}} must have {{#limit}} key{if(#limit == 1, "", "s")}',"object.max":'{{#label}} must have less than or equal to {{#limit}} key{if(#limit == 1, "", "s")}',"object.min":'{{#label}} must have at least {{#limit}} key{if(#limit == 1, "", "s")}',"object.missing":"{{#label}} must contain at least one of {{#peersWithLabels}}","object.nand":"{{:#mainWithLabel}} must not exist simultaneously with {{#peersWithLabels}}","object.oxor":"{{#label}} contains a conflict between optional exclusive peers {{#peersWithLabels}}","object.pattern.match":"{{#label}} keys failed to match pattern requirements","object.refType":"{{#label}} must be a Joi reference","object.regex":"{{#label}} must be a RegExp object","object.rename.multiple":"{{#label}} cannot rename {{:#from}} because multiple renames are disabled and another key was already renamed to {{:#to}}","object.rename.override":"{{#label}} cannot rename {{:#from}} because override is disabled and target {{:#to}} exists","object.schema":"{{#label}} must be a Joi schema of {{#type}} type","object.unknown":"{{#label}} is not allowed","object.with":"{{:#mainWithLabel}} missing required peer {{:#peerWithLabel}}","object.without":"{{:#mainWithLabel}} conflict with forbidden peer {{:#peerWithLabel}}","object.xor":"{{#label}} contains a conflict between exclusive peers {{#peersWithLabels}}"}}),w.clone=function(k,T){if(typeof k=="object"){if(T.nonEnumerables)return d(k,{shallow:!0});const I=Object.create(Object.getPrototypeOf(k));return Object.assign(I,k),I}const R=function(...I){return k.apply(this,I)};return R.prototype=d(k.prototype),Object.defineProperty(R,"name",{value:k.name,writable:!1}),Object.defineProperty(R,"length",{value:k.length,writable:!1}),Object.assign(R,k),R},w.dependency=function(k,T,R,I,M){p(R===null||typeof R=="string",T,"key must be a strings"),M||(M=I.length>1&&typeof I[I.length-1]=="object"?I.pop():{}),b.assertOptions(M,["separator","isPresent"]),I=[].concat(I);const L=b.default(M.separator,"."),O=[];for(const F of I)p(typeof F=="string",T,"peers must be strings"),O.push(v.ref(F,{separator:L,ancestor:0,prefix:!1}));R!==null&&(R=v.ref(R,{separator:L,ancestor:0,prefix:!1}));const W=k.clone();return W.$_terms.dependencies=W.$_terms.dependencies||[],W.$_terms.dependencies.push(new w.Dependency(T,R,O,I,M)),W},w.dependencies={and(k,T,R,I,M){const L=[],O=[],W=T.peers.length,F=w.isPresent(T.options);for(const G of T.peers)F(G.resolve(R,I,M,null,{shadow:!1}))===!1?L.push(G.key):O.push(G.key);if(L.length!==W&&O.length!==W)return{code:"object.and",context:{present:O,presentWithLabels:w.keysToLabels(k,O),missing:L,missingWithLabels:w.keysToLabels(k,L)}}},nand(k,T,R,I,M){const L=[],O=w.isPresent(T.options);for(const G of T.peers)O(G.resolve(R,I,M,null,{shadow:!1}))&&L.push(G.key);if(L.length!==T.peers.length)return;const W=T.paths[0],F=T.paths.slice(1);return{code:"object.nand",context:{main:W,mainWithLabel:w.keysToLabels(k,W),peers:F,peersWithLabels:w.keysToLabels(k,F)}}},or(k,T,R,I,M){const L=w.isPresent(T.options);for(const O of T.peers)if(L(O.resolve(R,I,M,null,{shadow:!1})))return;return{code:"object.missing",context:{peers:T.paths,peersWithLabels:w.keysToLabels(k,T.paths)}}},oxor(k,T,R,I,M){const L=[],O=w.isPresent(T.options);for(const F of T.peers)O(F.resolve(R,I,M,null,{shadow:!1}))&&L.push(F.key);if(!L.length||L.length===1)return;const W={peers:T.paths,peersWithLabels:w.keysToLabels(k,T.paths)};
90return W.present=L,W.presentWithLabels=w.keysToLabels(k,L),{code:"object.oxor",context:W}},with(k,T,R,I,M){const L=w.isPresent(T.options);for(const O of T.peers)if(L(O.resolve(R,I,M,null,{shadow:!1}))===!1)return{code:"object.with",context:{main:T.key.key,mainWithLabel:w.keysToLabels(k,T.key.key),peer:O.key,peerWithLabel:w.keysToLabels(k,O.key)}}},without(k,T,R,I,M){const L=w.isPresent(T.options);for(const O of T.peers)if(L(O.resolve(R,I,M,null,{shadow:!1})))return{code:"object.without",context:{main:T.key.key,mainWithLabel:w.keysToLabels(k,T.key.key),peer:O.key,peerWithLabel:w.keysToLabels(k,O.key)}}},xor(k,T,R,I,M){const L=[],O=w.isPresent(T.options);for(const F of T.peers)O(F.resolve(R,I,M,null,{shadow:!1}))&&L.push(F.key);if(L.length===1)return;const W={peers:T.paths,peersWithLabels:w.keysToLabels(k,T.paths)};return L.length===0?{code:"object.missing",context:W}:(W.present=L,W.presentWithLabels=w.keysToLabels(k,L),{code:"object.xor",context:W})}},w.keysToLabels=function(k,T){return Array.isArray(T)?T.map(R=>k.$_mapLabels(R)):k.$_mapLabels(T)},w.isPresent=function(k){return typeof k.isPresent=="function"?k.isPresent:T=>T!==void 0},w.rename=function(k,T,R,I,M){const L={};for(const O of k.$_terms.renames){const W=[],F=typeof O.from!="string";if(F)for(const G in T){if(T[G]===void 0&&O.options.ignoreUndefined||G===O.to)continue;const ee=O.from.exec(G);ee&&W.push({from:G,to:O.to,match:ee})}else!Object.prototype.hasOwnProperty.call(T,O.from)||T[O.from]===void 0&&O.options.ignoreUndefined||W.push(O);for(const G of W){const ee=G.from;let de=G.to;if(de instanceof S&&(de=de.render(T,R,I,G.match)),ee!==de){if(!O.options.multiple&&L[de]&&(M.push(k.$_createError("object.rename.multiple",T,{from:ee,to:de,pattern:
90F},R,I)),I.abortEarly)||Object.prototype.hasOwnProperty.call(T,de)&&!O.options.override&&!L[de]&&(M.push(k.$_createError("object.rename.override",T,{from:ee,to:de,pattern:F},R,I)),I.abortEarly))return!1;T[ee]===void 0?delete T[de]:T[de]=T[ee],L[de]=!0,O.options.alias||delete T[ee]}}}return!0},w.unknown=function(k,T,R,I,M,L){if(k.$_terms.patterns){let O=!1;const W=k.$_terms.patterns.map(G=>{if(G.matches)return O=!0,[]}),F=[T,...M.ancestors];for(const G of R){const ee=T[G],de=[...M.path,G];for(let ye=0;ye<k.$_terms.patterns.length;++ye){const _e=k.$_terms.patterns[ye];if(_e.regex){const re=_e.regex.test(G);if(M.mainstay.tracer.debug(M,"rule","pattern.".concat(ye),re?"pass":"error"),!re)continue}else if(!_e.schema.$_match(G,M.nest(_e.schema,"pattern.".concat(ye)),L))continue;R.delete(G);const Y=M.localize(de,F,{schema:_e.rule,key:G}),q=_e.rule.$_validate(ee,Y,L);if(q.errors){if(L.abortEarly)return{value:T,errors:q.errors};I.push(...q.errors)}if(_e.matches&&W[ye].push(G),T[G]=q.value,!_e.fallthrough)break}}if(O)for(let G=0;G<W.length;++G){const ee=W[G];if(!ee)continue;const de=k.$_terms.patterns[G].matches,ye=M.localize(M.path,F,de),_e=de.$_validate(ee,ye,L);if(_e.errors){const Y=y.details(_e.errors,{override:!1});Y.matches=ee;const q=k.$_createError("object.pattern.match",T,Y,M,L);if(L.abortEarly)return{value:T,errors:q};I.push(q)}}}if(R.size&&(k.$_terms.keys||k.$_terms.patterns)){if(L.stripUnknown&&k._flags.unknown===void 0||L.skipFunctions){const O=!(!L.stripUnknown||L.stripUnknown!==!0&&!L.stripUnknown.objects);for(const W of R)O?(delete T[W],R.delete(W)):typeof T[W]=="function"&&R.delete(W)}if(!b.default(k._flags.unknown,L.allowUnknown))for(const O of R){const W=M.localize([...M.path,O],[]),F=k.$_createError("object.unknown",T[O],{child:O},W,L,{flags:!1});if(L.abortEarly)return{value:T,errors:F};I.push(F)}}},w.Dependency=class{constructor(k,T,R,I,M){this.rel=k,this.key=T,this.peers=R,this.paths=I,this.options=M}describe(){const k={rel:this.rel,peers:this.paths};return this.key!==null&&(k.key=this.key.key),this.peers[0].separator!=="."&&(k.options=or(Je({},k.options),{separator:this.peers[0].separator})),this.options.isPresent&&(k.options=or(Je({},k.options),{isPresent:this.options.isPresent})),k}},w.Keys=class extends Array{concat(k){const T=this.slice(),R=new Map;for(let I=0;I<T.length;++I)R.set(T[I].key,I);for(const I of k){const M=I.key,L=R.get(M);L!==void 0?T[L]={key:M,schema:T[L].schema.concat(I.schema)}:T.push(I)}return T}}},8785:(o,s,u)=>{const c=u(375),p=u(8068),d=u(8160),m=u(3292),f=u(6354),b={};o.exports=p.extend({type:"link",properties:{schemaChain:!0},terms:{link:{init:null,manifest:"single",register:!1}},args:(v,y)=>v.ref(y),validate(v,{schema:y,state:g,prefs:S}){c(y.$_terms.link,"Uninitialized link schema");const w=b.generate(y,v,g,S),k=y.$_terms.link[0].ref;return w.$_validate(v,g.nest(w,"link:".concat(k.display,":").concat(w.type)),S)},generate:(v,y,g,S)=>b.generate(v,y,g,S),rules:{ref:{method(v){c(!this.$_terms.link,"Cannot reinitialize schema"),v=m.ref(v),c(v.type==="value"||v.type==="local","Invalid reference type:",v.type),c(v.type==="local"||v.ancestor==="root"||v.ancestor>0,"Link cannot reference itself");const y=this.clone();return y.$_terms.link=[{ref:v}],y}},relative:{method(v=!0){return this.$_setFlag("relative",v)}}},overrides:{concat(v){c(this.$_terms.link,"Uninitialized link schema"),c(d.isSchema(v),"Invalid schema object"),c(v.type!=="link","Cannot merge type link with another link");const y=this.clone();return y.$_terms.whens||(y.$_terms.whens=[]),y.$_terms.whens.push({concat:v}),y.$_mutateRebuild()}},manifest:{build:(v,y)=>(c(y.link,"Invalid link description missing link"),v.ref(y.link))}}),b.generate=function(v,y,g,S){let w=g.mainstay.links.get(v);if(w)return w._generate(y,g,S).schema;const k=v.$_terms.link[0].ref,{perspective:T,path:R}=b.perspective(k,g);b.assert(T,"which is outside of schema boundaries",k,v,g,S);try{w=R.length?T.$_reach(R):T}catch{b.assert(!1,"to non-existing schema",k,v,g,S)}return b.assert(w.type!=="link","which is another link",k,v,g,S),v._flags.relative||g.mainstay.links.set(v,w),w._generate(y,g,S).schema},b.perspective=function(v,y){if(v.type==="local"){for(const{schema:g,key:S}of y.schemas){if((g._flags.id||S)===v.path[0])return{perspective:g,path:v.path.slice(1)};if(g.$_terms.shared){for(const w of g.$_terms.shared)if(w._flags.id===v.path[0])return{perspective:w,path:v.path.slice(1)}}}return{perspective:null,path:null}}return v.ancestor==="root"?{perspective:y.schemas[y.schemas.length-1].schema,path:v.path}:{perspective:y.schemas[v.ancestor]&&y.schemas[v.ancestor].schema,path:v.path}},b.assert=function(v,y,g,S,w,k){v||c(!1,'"'.concat(f.label(S._flags,w,k),'" contains link reference "').concat(g.display,'" ').concat(y))}},3832:(o,s,u)=>
90{const c=u(375),p=u(8068),d=u(8160),m={numberRx:/^\s*[+-]?(?:(?:\d+(?:\.\d*)?)|(?:\.\d+))(?:e([+-]?\d+))?\s*$/i,precisionRx:/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/,exponentialPartRegex:/[eE][+-]?\d+$/,leadingSignAndZerosRegex:/^[+-]?(0*)?/,dotRegex:/\./,trailingZerosRegex:/0+$/,decimalPlaces(f){const b=f.toString(),v=b.indexOf("."),y=b.indexOf("e");return(v<0?0:(y<0?b.length:y)-v-1)+(y<0?0:Math.max(0,-parseInt(b.slice(y+1))))}};o.exports=p.extend({type:"number",flags:{unsafe:{default:!1}},coerce:{from:"string",method(f,{schema:b,error:v}){if(!f.match(m.numberRx))return;f=f.trim();const y={value:parseFloat(f)};if(y.value===0&&(y.value=0),!b._flags.unsafe)if(f.match(/e/i)){if(m.extractSignificantDigits(f)!==m.extractSignificantDigits(String(y.value)))return y.errors=v("number.unsafe"),y}else{const g=y.value.toString();if(g.match(/e/i))return y;if(g!==m.normalizeDecimal(f))return y.errors=v("number.unsafe"),y}return y}},validate(f,{schema:b,error:v,prefs:y}){if(f===1/0||f===-1/0)return{value:f,errors:v("number.infinity")};if(!d.isNumber(f))return{value:f,errors:v("number.base")};const g={value:f};if(y.convert){const S=b.$_getRule("precision");if(S){const w=Math.pow(10,S.args.limit);g.value=Math.round(g.value*w)/w}}return g.value===0&&(g.value=0),!b._flags.unsafe&&(f>Number.MAX_SAFE_INTEGER||f<Number.MIN_SAFE_INTEGER)&&(g.errors=v("number.unsafe")),g},rules:{compare:{method:!1,validate:(f,b,{limit:v},{name:y,operator:g,args:S})=>d.compare(f,v,g)?f:b.error("number."+y,{limit:S.limit,value:f}),args:[{name:"limit",ref:!0,assert:d.isNumber,message:"must be a number"}]},greater:{method(f){return this.$_addRule({name:"greater",method:"compare",args:{limit:f},operator:">"})}},integer:{method(){return this.$_addRule("integer")},validate:(f,b)=>Math.trunc(f)-f==0?f:b.error("number.integer")},less:{method(f){return this.$_addRule({name:"less",method:"compare",args:{limit:f},operator:"<"})}},max:{method(f){return this.$_addRule({name:"max",method:"compare",args:{limit:f},operator:"<="})}},min:{method(f){return this.$_addRule({name:"min",method:"compare",args:{limit:f},operator:">="})}},multiple:{method(f){const b=typeof f=="number"?m.decimalPlaces(f):null,v=Math.pow(10,b);return this.$_addRule({name:"multiple",args:{base:f,baseDecimalPlace:b,pfactor:v}})},validate:(f,b,{base:v,baseDecimalPlace:y,pfactor:g},S)=>m.decimalPlaces(f)>y?b.error("number.multiple",{multiple:S.args.base,value:f}):Math.round(g*f)%Math.round(g*v)==0?f:b.error("number.multiple",{multiple:S.args.base,value:f}),args:[{name:"base",ref:!0,assert:f=>typeof f=="number"&&isFinite(f)&&f>0,message:"must be a positive number"},"baseDecimalPlace","pfactor"],multi:!0},negative:{method(){return this.sign("negative")}},port:{method(){return this.$_addRule("port")},validate:(f,b)=>Number.isSafeInteger(f)&&f>=0&&f<=65535?f:b.error("number.port")},positive:{method(){return this.sign("positive")}},precision:{method(f){return c(Number.isSafeInteger(f),"limit must be an integer"),this.$_addRule({name:"precision",args:{limit:f}})},validate(f,b,{limit:v}){const y=f.toString().match(m.precisionRx);return Math.max((y[1]?y[1].length:0)-(y[2]?parseInt(y[2],10):0),0)<=v?f:b.error("number.precision",{limit:v,value:f})},convert:!0},sign:{method(f){return c(["negative","positive"].includes(f),"Invalid sign",f),this.$_addRule({name:"sign",args:{sign:f}})},validate:(f,b,{sign:v})=>v==="negative"&&f<0||v==="positive"&&f>0?f:b.error("number.".concat(v))},unsafe:{method(f=!0){return c(typeof f=="boolean","enabled must be a boolean"),this.$_setFlag("unsafe",f)}}},cast:{string:{from:f=>typeof f=="number",to:(f,b)=>f.toString()}},messages:{"number.base":"{{#label}} must be a number","number.greater":"{{#label}} must be greater than {{#limit}}","number.infinity":"{{#label}} cannot be infinity","number.integer":"{{#label}} must be an integer","number.less":"{{#label}} must be less than {{#limit}}","number.max":"{{#label}} must be less than or equal to {{#limit}}","number.min":"{{#label}} must be greater than or equal to {{#limit}}","number.multiple":"{{#label}} must be a multiple of {{#multiple}}","number.negative":"{{#label}} must be a negative number","number.port":"{{#label}} must be a valid port","number.positive":"{{#label}} must be a positive number","number.precision":"{{#label}} must have no more than {{#limit}} decimal places","number.unsafe":"{{#label}} must be a safe number"}}),m.extractSignificantDigits=function(f){return f.replace(m.exponentialPartRegex,"").replace(m.dotRegex,"").replace(m.trailingZerosRegex,"").replace(m.leadingSignAndZerosRegex,"")},m.normalizeDecimal=function(f){return(f=f.replace(/^\+/,"").replace(/\.0*$/,"").replace(/^(-?)\.([^\.]*)$/,"$10.$2").replace(/^(-?)0+([0-9])/,"$1$2")).includes(".")&&f.endsWith("0")&&(f=f.replace(/0+$/,"")),f==="-0"?"0":f}},8966:(o,s,u)=>{const c=u(7824);o.exports=c.extend({type:"object",cast:{map:{from:p=>p&&typeof p=="object",to:(p,d)=>new Map(Object.entries(p))}}})},7417:(o,s,u)=>
90{const c=u(375),p=u(5380),d=u(1745),m=u(9959),f=u(6064),b=u(9926),v=u(5752),y=u(8068),g=u(8160),S={tlds:b instanceof Set&&{tlds:{allow:b,deny:null}},base64Regex:{true:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}==|[\w\-]{3}=)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/},false:{true:/^(?:[\w\-]{2}[\w\-]{2})*(?:[\w\-]{2}(==)?|[\w\-]{3}=?)?$/,false:/^(?:[A-Za-z0-9+\/]{2}[A-Za-z0-9+\/]{2})*(?:[A-Za-z0-9+\/]{2}(==)?|[A-Za-z0-9+\/]{3}=?)?$/}},dataUriRegex:/^data:[\w+.-]+\/[\w+.-]+;((charset=[\w-]+|base64),)?(.*)$/,hexRegex:{withPrefix:/^0x[0-9a-f]+$/i,withOptionalPrefix:/^(?:0x)?[0-9a-f]+$/i,withoutPrefix:/^[0-9a-f]+$/i},ipRegex:m.regex({cidr:"forbidden"}).regex,isoDurationRegex:/^P(?!$)(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?$/,guidBrackets:{"{":"}","[":"]","(":")","":""},guidVersions:{uuidv1:"1",uuidv2:"2",uuidv3:"3",uuidv4:"4",uuidv5:"5",uuidv6:"6",uuidv7:"7",uuidv8:"8"},guidSeparators:new Set([void 0,!0,!1,"-",":"]),normalizationForms:["NFC","NFD","NFKC","NFKD"]};o.exports=y.extend({type:"string",flags:{insensitive:{default:!1},truncate:{default:!1}},terms:{replacements:{init:null}},coerce:{from:"string",method(w,{schema:k,state:T,prefs:R}){const I=k.$_getRule("normalize");I&&(w=w.normalize(I.args.form));const M=k.$_getRule("case");M&&(w=M.args.direction==="upper"?w.toLocaleUpperCase():w.toLocaleLowerCase());const L=k.$_getRule("trim");if(L&&L.args.enabled&&(w=w.trim()),k.$_terms.replacements)for(const W of k.$_terms.replacements)w=w.replace(W.pattern,W.replacement);const O=k.$_getRule("hex");if(O&&O.args.options.byteAligned&&w.length%2!=0&&(w="0".concat(w)),k.$_getRule("isoDate")){const W=S.isoDate(w);W&&(w=W)}if(k._flags.truncate){const W=k.$_getRule("max");if(W){let F=W.args.limit;if(g.isResolvable(F)&&(F=F.resolve(w,T,R),!g.limit(F)))return{value:w,errors:k.$_createError("any.ref",F,{ref:W.args.limit,arg:"limit",reason:"must be a positive integer"},T,R)};w=w.slice(0,F)}}return{value:w}}},validate(w,{schema:k,error:T}){if(typeof w!="string")return{value:w,errors:T("string.base")};if(w===""){const R=k.$_getRule("min");return R&&R.args.limit===0?void 0:{value:w,errors:T("string.empty")}}},rules:{alphanum:{method(){return this.$_addRule("alphanum")},validate:(w,k)=>/^[a-zA-Z0-9]+$/.test(w)?w:k.error("string.alphanum")},base64:{method(w={}){return g.assertOptions(w,["paddingRequired","urlSafe"]),w=Je({urlSafe:!1,paddingRequired:!0},w),c(typeof w.paddingRequired=="boolean","paddingRequired must be boolean"),c(typeof w.urlSafe=="boolean","urlSafe must be boolean"),this.$_addRule({name:"base64",args:{options:w}})},validate:(w,k,{options:T})=>S.base64Regex[T.paddingRequired][T.urlSafe].test(w)?w:k.error("string.base64")},case:{method(w){return c(["lower","upper"].includes(w),"Invalid case:",w),this.$_addRule({name:"case",args:{direction:w}})},validate:(w,k,{direction:T})=>T==="lower"&&w===w.toLocaleLowerCase()||T==="upper"&&w===w.toLocaleUpperCase()?w:k.error("string.".concat(T,"case")),convert:!0},creditCard:{method(){return this.$_addRule("creditCard")},validate(w,k){let T=w.length,R=0,I=1;for(;T--;){const M=w.charAt(T)*I;R+=M-9*(M>9),I^=3}return R>0&&R%10==0?w:k.error("string.creditCard")}},dataUri:{method(w={}){return g.assertOptions(w,["paddingRequired"]),w=Je({paddingRequired:!0},w),c(typeof w.paddingRequired=="boolean","paddingRequired must be boolean"),this.$_addRule({name:"dataUri",args:{options:w}})},validate(w,k,{options:T}){const R=w.match(S.dataUriRegex);return R&&(!R[2]||R[2]!=="base64"||S.base64Regex[T.paddingRequired].false.test(R[3]))?w:k.error("string.dataUri")}},domain:{method(w){w&&g.assertOptions(w,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);const k=S.addressOptions(w);return this.$_addRule({name:"domain",args:{options:w},address:k})},validate:(w,k,T,{address:R})=>p.isValid(w,R)?w:k.error("string.domain")},email:{method(w={}){g.assertOptions(w,["allowFullyQualified","allowUnicode","ignoreLength","maxDomainSegments","minDomainSegments","multiple","separator","tlds"]),c(w.multiple===void 0||typeof w.multiple=="boolean","multiple option must be an boolean");const k=S.addressOptions(w),T=new RegExp("\\s*[".concat(w.separator?f(w.separator):",","]\\s*"));return this.$_addRule({name:"email",args:{options:w},regex:T,address:k})},validate(w,k,{options:T},{regex:R,address:I}){const M=T.multiple?w.split(R):[w],L=[];for(const O of M)d.isValid(O,I)||L.push(O);return L.length?k.error("string.email",{value:w,invalids:L}):w}},guid:{alias:"uuid",method(w={}){g.assertOptions(w,["version","separator"]);let k="";if(w.version){const I=[].concat(w.version);c(I.length>=1,"version must have at least 1 valid version specified");const M=new Set;for(let L=0;L<I.length;++L){const O=I[L];
90c(typeof O=="string","version at position "+L+" must be a string");const W=S.guidVersions[O.toLowerCase()];c(W,"version at position "+L+" must be one of "+Object.keys(S.guidVersions).join(", ")),c(!M.has(W),"version at position "+L+" must not be a duplicate"),k+=W,M.add(W)}}c(S.guidSeparators.has(w.separator),'separator must be one of true, false, "-", or ":"');const T=w.separator===void 0?"[:-]?":w.separator===!0?"[:-]":w.separator===!1?"[]?":"\\".concat(w.separator),R=new RegExp("^([\\[{\\(]?)[0-9A-F]{8}(".concat(T,")[0-9A-F]{4}\\2?[").concat(k||"0-9A-F","][0-9A-F]{3}\\2?[").concat(k?"89AB":"0-9A-F","][0-9A-F]{3}\\2?[0-9A-F]{12}([\\]}\\)]?)$"),"i");return this.$_addRule({name:"guid",args:{options:w},regex:R})},validate(w,k,T,{regex:R}){const I=R.exec(w);return I?S.guidBrackets[I[1]]!==I[I.length-1]?k.error("string.guid"):w:k.error("string.guid")}},hex:{method(w={}){return g.assertOptions(w,["byteAligned","prefix"]),w=Je({byteAligned:!1,prefix:!1},w),c(typeof w.byteAligned=="boolean","byteAligned must be boolean"),c(typeof w.prefix=="boolean"||w.prefix==="optional",'prefix must be boolean or "optional"'),this.$_addRule({name:"hex",args:{options:w}})},validate:(w,k,{options:T})=>(T.prefix==="optional"?S.hexRegex.withOptionalPrefix:T.prefix===!0?S.hexRegex.withPrefix:S.hexRegex.withoutPrefix).test(w)?T.byteAligned&&w.length%2!=0?k.error("string.hexAlign"):w:k.error("string.hex")},hostname:{method(){return this.$_addRule("hostname")},validate:(w,k)=>p.isValid(w,{minDomainSegments:1})||S.ipRegex.test(w)?w:k.error("string.hostname")},insensitive:{method(){return this.$_setFlag("insensitive",!0)}},ip:{method(w={}){g.assertOptions(w,["cidr","version"]);const{cidr:k,versions:T,regex:R}=m.regex(w),I=w.version?T:void 0;return this.$_addRule({name:"ip",args:{options:{cidr:k,version:I}},regex:R})},validate:(w,k,{options:T},{regex:R})=>R.test(w)?w:T.version?k.error("string.ipVersion",{value:w,cidr:T.cidr,version:T.version}):k.error("string.ip",{value:w,cidr:T.cidr})},isoDate:{method(){return this.$_addRule("isoDate")},validate:(w,{error:k})=>S.isoDate(w)?w:k("string.isoDate")},isoDuration:{method(){return this.$_addRule("isoDuration")},validate:(w,k)=>S.isoDurationRegex.test(w)?w:k.error("string.isoDuration")},length:{method(w,k){return S.length(this,"length",w,"=",k)},validate(w,k,{limit:T,encoding:R},{name:I,operator:M,args:L}){const O=!R&&w.length;return g.compare(O,T,M)?w:k.error("string."+I,{limit:L.limit,value:w,encoding:R})},args:[{name:"limit",ref:!0,assert:g.limit,message:"must be a positive integer"},"encoding"]},lowercase:{method(){return this.case("lower")}},max:{method(w,k){return S.length(this,"max",w,"<=",k)},args:["limit","encoding"]},min:{method(w,k){return S.length(this,"min",w,">=",k)},args:["limit","encoding"]},normalize:{method(w="NFC"){return c(S.normalizationForms.includes(w),"normalization form must be one of "+S.normalizationForms.join(", ")),this.$_addRule({name:"normalize",args:{form:w}})},validate:(w,{error:k},{form:T})=>w===w.normalize(T)?w:k("string.normalize",{value:w,form:T}),convert:!0},pattern:{alias:"regex",method(w,k={}){c(w instanceof RegExp,"regex must be a RegExp"),c(!w.flags.includes("g")&&!w.flags.includes("y"),"regex should not use global or sticky mode"),typeof k=="string"&&(k={name:k}),g.assertOptions(k,["invert","name"]);const T=["string.pattern",k.invert?".invert":"",k.name?".name":".base"].join("");return this.$_addRule({name:"pattern",args:{regex:w,options:k},errorCode:T})},validate:(w,k,{regex:T,options:R},{errorCode:I})=>T.test(w)^R.invert?w:k.error(I,{name:R.name,regex:T,value:w}),args:["regex","options"],multi:!0},replace:{method(w,k){typeof w=="string"&&(w=new RegExp(f(w),"g")),c(w instanceof RegExp,"pattern must be a RegExp"),c(typeof k=="string","replacement must be a String");const T=this.clone();return T.$_terms.replacements||(T.$_terms.replacements=[]),T.$_terms.replacements.push({pattern:w,replacement:k}),T}},token:{method(){return this.$_addRule("token")},validate:(w,k)=>/^\w+$/.test(w)?w:k.error("string.token")},trim:{method(w=!0){return c(typeof w=="boolean","enabled must be a boolean"),this.$_addRule({name:"trim",args:{enabled:w}})},validate:(w,k,{enabled:T})=>T&&w!==w.trim()?k.error("string.trim"):w,convert:!0},truncate:{method(w=!0){return c(typeof w=="boolean","enabled must be a boolean"),this.$_setFlag("truncate",w)}},uppercase:{method(){return this.case("upper")}},uri:{method(w={}){g.assertOptions(w,["allowRelative","allowQuerySquareBrackets","domain","relativeOnly","scheme","encodeUri"]),w.domain&&g.assertOptions(w.domain,["allowFullyQualified","allowUnicode","maxDomainSegments","minDomainSegments","tlds"]);const{regex:k,scheme:T}=v.regex(w),R=w.domain?S.addressOptions(w.domain):null;return this.$_addRule({name:"uri",args:{options:w},regex:k,domain:R,scheme:T})},validate(w,k,{options:T},{regex:R,domain:I,scheme:M}){if(["http:/","https:/"].includes(w))return k.error("string.uri");let L=R.exec(w);if(!L&&k.prefs.convert&&T.encodeUri){const O=encodeURI(w);L=R.exec(O),L&&(w=O)}if(L){const O=L[1]||L[2];return!I||T.allowRelative&&!O||p.isValid(O,I)?w:k.error("string.domain",{value:O})}return T.relativeOnly?k.error("string.uriRelativeOnly"):T.scheme?
90k.error("string.uriCustomScheme",{scheme:M,value:w}):k.error("string.uri")}}},manifest:{build(w,k){if(k.replacements)for(const{pattern:T,replacement:R}of k.replacements)w=w.replace(T,R);return w}},messages:{"string.alphanum":"{{#label}} must only contain alpha-numeric characters","string.base":"{{#label}} must be a string","string.base64":"{{#label}} must be a valid base64 string","string.creditCard":"{{#label}} must be a credit card","string.dataUri":"{{#label}} must be a valid dataUri string","string.domain":"{{#label}} must contain a valid domain name","string.email":"{{#label}} must be a valid email","string.empty":"{{#label}} is not allowed to be empty","string.guid":"{{#label}} must be a valid GUID","string.hex":"{{#label}} must only contain hexadecimal characters","string.hexAlign":"{{#label}} hex decoded representation must be byte aligned","string.hostname":"{{#label}} must be a valid hostname","string.ip":"{{#label}} must be a valid ip address with a {{#cidr}} CIDR","string.ipVersion":"{{#label}} must be a valid ip address of one of the following versions {{#version}} with a {{#cidr}} CIDR","string.isoDate":"{{#label}} must be in iso format","string.isoDuration":"{{#label}} must be a valid ISO 8601 duration","string.length":"{{#label}} length must be {{#limit}} characters long","string.lowercase":"{{#label}} must only contain lowercase characters","string.max":"{{#label}} length must be less than or equal to {{#limit}} characters long","string.min":"{{#label}} length must be at least {{#limit}} characters long","string.normalize":"{{#label}} must be unicode normalized in the {{#form}} form","string.token":"{{#label}} must only contain alpha-numeric and underscore characters","string.pattern.base":"{{#label}} with value {:[.]} fails to match the required pattern: {{#regex}}","string.pattern.name":"{{#label}} with value {:[.]} fails to match the {{#name}} pattern","string.pattern.invert.base":"{{#label}} with value {:[.]} matches the inverted pattern: {{#regex}}","string.pattern.invert.name":"{{#label}} with value {:[.]} matches the inverted {{#name}} pattern","string.trim":"{{#label}} must not have leading or trailing whitespace","string.uri":"{{#label}} must be a valid uri","string.uriCustomScheme":"{{#label}} must be a valid uri with a scheme matching the {{#scheme}} pattern","string.uriRelativeOnly":"{{#label}} must be a valid relative uri","string.uppercase":"{{#label}} must only contain uppercase characters"}}),S.addressOptions=function(w){if(!w)return S.tlds||w;if(c(w.minDomainSegments===void 0||Number.isSafeInteger(w.minDomainSegments)&&w.minDomainSegments>0,"minDomainSegments must be a positive integer"),c(w.maxDomainSegments===void 0||Number.isSafeInteger(w.maxDomainSegments)&&w.maxDomainSegments>0,"maxDomainSegments must be a positive integer"),w.tlds===!1)return w;if(w.tlds===!0||w.tlds===void 0)return c(S.tlds,"Built-in TLD list disabled"),Object.assign({},w,S.tlds);c(typeof w.tlds=="object","tlds must be true, false, or an object");const k=w.tlds.deny;if(k)return Array.isArray(k)&&(w=Object.assign({},w,{tlds:{deny:new Set(k)}})),c(w.tlds.deny instanceof Set,"tlds.deny must be an array, Set, or boolean"),c(!w.tlds.allow,"Cannot specify both tlds.allow and tlds.deny lists"),S.validateTlds(w.tlds.deny,"tlds.deny"),w;const T=w.tlds.allow;return T?T===!0?(c(S.tlds,"Built-in TLD list disabled"),Object.assign({},w,S.tlds)):(Array.isArray(T)&&(w=Object.assign({},w,{tlds:{allow:new Set(T)}})),c(w.tlds.allow instanceof Set,"tlds.allow must be an array, Set, or boolean"),S.validateTlds(w.tlds.allow,"tlds.allow"),w):w},S.validateTlds=function(w,k){for(const T of w)c(p.isValid(T,{minDomainSegments:1,maxDomainSegments:1}),"".concat(k," must contain valid top level domain names"))},S.isoDate=function(w){if(!g.isIsoDate(w))return null;/.*T.*[+-]\d\d$/.test(w)&&(w+="00");const k=new Date(w);return isNaN(k.getTime())?null:k.toISOString()},S.length=function(w,k,T,R,I){return c(!I||!1,"Invalid encoding:",I),w.$_addRule({name:k,method:"length",args:{limit:T,encoding:I},operator:R})}},8826:(o,s,u)=>{const c=u(375),p=u(8068),d={};d.Map=class extends Map{slice(){return new d.Map(this)}},o.exports=p.extend({type:"symbol",terms:{map:{init:new d.Map}},coerce:{method(m,{schema:f,error:b}){const v=f.$_terms.map.get(m);return v&&(m=v),f._flags.only&&typeof m!="symbol"?{value:m,errors:b("symbol.map",{map:f.$_terms.map})}:{value:m}}},validate(m,{error:f}){if(typeof m!="symbol")return{value:m,errors:f("symbol.base")}},rules:{map:{method(m){m&&!m[Symbol.iterator]&&typeof m=="object"&&(m=Object.entries(m)),c(m&&m[Symbol.iterator],"Iterable must be an iterable or object");const f=this.clone(),b=[];for(const v of m){c(v&&v[Symbol.iterator],"Entry must be an iterable");const[y,g]=v;c(typeof y!="object"&&typeof y!="function"&&typeof y!="symbol","Key must not be of type object, function, or Symbol"),c(typeof g=="symbol","Value must be a Symbol"),f.$_terms.map.set(y,g),b.push(g)}return f.valid(...b)}}},manifest:{build:(m,f)=>(f.map&&(m=m.map(f.map)),m)},messages:{"symbol.base":"{{#label}} must be a symbol","symbol.map":"{{#label}} must be one of {{#map}}"}})},8863:(o,s,u)=>
vendor: 9,140 bytes, line 90
90{const c=u(375),p=u(8571),d=u(738),m=u(9621),f=u(8160),b=u(6354),v=u(493),y={result:Symbol("result")};s.entry=function(g,S,w){let k=f.defaults;w&&(c(w.warnings===void 0,"Cannot override warnings preference in synchronous validation"),c(w.artifacts===void 0,"Cannot override artifacts preference in synchronous validation"),k=f.preferences(f.defaults,w));const T=y.entry(g,S,k);c(!T.mainstay.externals.length,"Schema with external rules must use validateAsync()");const R={value:T.value};return T.error&&(R.error=T.error),T.mainstay.warnings.length&&(R.warning=b.details(T.mainstay.warnings)),T.mainstay.debug&&(R.debug=T.mainstay.debug),T.mainstay.artifacts&&(R.artifacts=T.mainstay.artifacts),R},s.entryAsync=async function(g,S,w){let k=f.defaults;w&&(k=f.preferences(f.defaults,w));const T=y.entry(g,S,k),R=T.mainstay;if(T.error)throw R.debug&&(T.error.debug=R.debug),T.error;if(R.externals.length){let M=T.value;const L=[];for(const O of R.externals){const W=O.state.path,F=O.schema.type==="link"?R.links.get(O.schema):null;let G,ee,de=M;const ye=W.length?[M]:[],_e=W.length?m(g,W):g;if(W.length){G=W[W.length-1];let Y=M;for(const q of W.slice(0,-1))Y=Y[q],ye.unshift(Y);ee=ye[0],de=ee[G]}try{const Y=(re,be)=>(F||O.schema).$_createError(re,de,be,O.state,k),q=await O.method(de,{schema:O.schema,linked:F,state:O.state,prefs:w,original:_e,error:Y,errorsArray:y.errorsArray,warn:(re,be)=>R.warnings.push((F||O.schema).$_createError(re,de,be,O.state,k)),message:(re,be)=>(F||O.schema).$_createError("external",de,be,O.state,k,{messages:re})});if(q===void 0||q===de)continue;if(q instanceof b.Report){if(R.tracer.log(O.schema,O.state,"rule","external","error"),L.push(q),k.abortEarly)break;continue}if(Array.isArray(q)&&q[f.symbols.errors]){if(R.tracer.log(O.schema,O.state,"rule","external","error"),L.push(...q),k.abortEarly)break;continue}ee?(R.tracer.value(O.state,"rule",de,q,"external"),ee[G]=q):(R.tracer.value(O.state,"rule",M,q,"external"),M=q)}catch(Y){throw k.errors.label&&(Y.message+=" (".concat(O.label,")")),Y}}if(T.value=M,L.length)throw T.error=b.process(L,g,k),R.debug&&(T.error.debug=R.debug),T.error}if(!k.warnings&&!k.debug&&!k.artifacts)return T.value;const I={value:T.value};return R.warnings.length&&(I.warning=b.details(R.warnings)),R.debug&&(I.debug=R.debug),R.artifacts&&(I.artifacts=R.artifacts),I},y.Mainstay=class{constructor(g,S,w){this.externals=[],this.warnings=[],this.tracer=g,this.debug=S,this.links=w,this.shadow=null,this.artifacts=null,this._snapshots=[]}snapshot(){this._snapshots.push({externals:this.externals.slice(),warnings:this.warnings.slice()})}restore(){const g=this._snapshots.pop();this.externals=g.externals,this.warnings=g.warnings}commit(){this._snapshots.pop()}},y.entry=function(g,S,w){const{tracer:k,cleanup:T}=y.tracer(S,w),R=w.debug?[]:null,I=S._ids._schemaChain?new Map:null,M=new y.Mainstay(k,R,I),L=S._ids._schemaChain?[{schema:S}]:null,O=new v([],[],{mainstay:M,schemas:L}),W=s.validate(g,S,O,w);T&&S.$_root.untrace();const F=b.process(W.errors,g,w);return{value:W.value,error:F,mainstay:M}},y.tracer=function(g,S){return g.$_root._tracer?{tracer:g.$_root._tracer._register(g)}:S.debug?(c(g.$_root.trace,"Debug mode not supported"),{tracer:g.$_root.trace()._register(g),cleanup:!0}):{tracer:y.ignore}},s.validate=function(g,S,w,k,T={}){if(S.$_terms.whens&&(S=S._generate(g,w,k).schema),S._preferences&&(k=y.prefs(S,k)),S._cache&&k.cache){const F=S._cache.get(g);if(w.mainstay.tracer.debug(w,"validate","cached",!!F),F)return F}const R=(F,G,ee)=>S.$_createError(F,g,G,ee||w,k),I={original:g,prefs:k,schema:S,state:w,error:R,errorsArray:y.errorsArray,warn:(F,G,ee)=>w.mainstay.warnings.push(R(F,G,ee)),message:(F,G)=>S.$_createError("custom",g,G,w,k,{messages:F})};w.mainstay.tracer.entry(S,w);const M=S._definition;if(M.prepare&&g!==void 0&&k.convert){const F=M.prepare(g,I);if(F){if(w.mainstay.tracer.value(w,"prepare",g,F.value),F.errors)return y.finalize(F.value,[].concat(F.errors),I);g=F.value}}if(M.coerce&&g!==void 0&&k.convert&&(!M.coerce.from||M.coerce.from.includes(typeof g))){const F=M.coerce.method(g,I);if(F){if(w.mainstay.tracer.value(w,"coerced",g,F.value),F.errors)return y.finalize(F.value,[].concat(F.errors),I);g=F.value}}const L=S._flags.empty;L&&L.$_match(y.trim(g,S),w.nest(L),f.defaults)&&(w.mainstay.tracer.value(w,"empty",g,void 0),g=void 0);const O=T.presence||S._flags.presence||(S._flags._endedSwitch?null:k.presence);if(g===void 0){if(O==="forbidden")return y.finalize(g,null,I);if(O==="required")return y.finalize(g,[S.$_createError("any.required",g,null,w,k)],I);if(O==="optional"){if(S._flags.default!==f.symbols.deepDefault)return y.finalize(g,null,I);w.mainstay.tracer.value(w,"default",g,{}),g={}}}else if(O==="forbidden")return y.finalize(g,[S.$_createError("any.unknown",g,null,w,k)],I);const W=[];if(S._valids){const F=S._valids.get(g,w,k,S._flags.insensitive);if(F)return k.convert&&(w.mainstay.tracer.value(w,"valids",g,F.value),g=F.value),w.mainstay.tracer.filter(S,w,"valid",F),y.finalize(g,null,I);if(S._flags.only){const G=S.$_createError("any.only",g,{valids:S._valids.values({display:!0})},w,k);if(k.abortEarly)return y.finalize(g,[G],I);W.push(G)}}if(S._invalids){const F=S._invalids.get(g,w,k,S._flags.insensitive);if(F){w.mainstay.tracer.filter(S,w,"invalid",F);const G=S.$_createError("any.invalid",g,{invalids:S._invalids.values({display:!0})},w,k);if(k.abortEarly)return y.finalize(g,[G],I);W.push(G)}}if(M.validate){const F=M.validate(g,I);if(F&&(w.mainstay.tracer.value(w,"base",g,F.value),g=F.value,F.errors)){if(!Array.isArray(F.errors))return W.push(F.errors),y.finalize(g,W,I);if(F.errors.length)return W.push(...F.errors),y.finalize(g,W,I)}}return S._rules.length?y.rules(g,W,I):y.finalize(g,W,I)},y.rules=function(g,S,w){const{schema:k,state:T,prefs:R}=w;for(const I of k._rules){const M=k._definition.rules[I.method];if(M.convert&&R.convert){T.mainstay.tracer.log(k,T,"rule",I.name,"full");continue}let L,O=I.args;if(I._resolve.length){O=Object.assign({},O);for(const F of I._resolve){const G=M.argsByName.get(F),ee=O[F].resolve(g,T,R),de=G.normalize?G.normalize(ee):ee,ye=f.validateArg(de,null,G);if(ye){L=k.$_createError("any.ref",ee,{arg:F,ref:O[F],reason:ye},T,R);break}O[F]=de}}L=L||M.validate(g,w,O,I);const W=y.rule(L,I);if(W.errors){if(T.mainstay.tracer.log(k,T,"rule",I.name,"error"),I.warn){T.mainstay.warnings.push(...W.errors);continue}if(R.abortEarly)return y.finalize(g,W.errors,w);S.push(...W.errors)}else T.mainstay.tracer.log(k,T,"rule",I.name,"pass"),T.mainstay.tracer.value(T,"rule",g,W.value,I.name),g=W.value}return y.finalize(g,S,w)},y.rule=function(g,S){return g instanceof b.Report?(y.error(g,S),{errors:[g],value:null}):Array.isArray(g)&&g[f.symbols.errors]?(g.forEach(w=>y.error(w,S)),{errors:g,value:null}):{errors:null,value:g}},y.error=function(g,S){return S.message&&g._setTemplate(S.message),g},y.finalize=function(g,S,w){S=S||[];const{schema:k,state:T,prefs:R}=w;if(S.length){const M=y.default("failover",void 0,S,w);M!==void 0&&(T.mainstay.tracer.value(T,"failover",g,M),g=M,S=[])}if(S.length&&k._flags.error)if(typeof k._flags.error=="function"){S=k._flags.error(S),Array.isArray(S)||(S=[S]);for(const M of S)c(M instanceof Error||M instanceof b.Report,"error() must return an Error object")}else S=[k._flags.error];if(g===void 0){const M=y.default("default",g,S,w);T.mainstay.tracer.value(T,"default",g,M),g=M}if(k._flags.cast&&g!==void 0){const M=k._definition.cast[k._flags.cast];if(M.from(g)){const L=M.to(g,w);T.mainstay.tracer.value(T,"cast",g,L,k._flags.cast),g=L}}if(k.$_terms.externals&&R.externals&&R._externals!==!1)for(const{method:M}of k.$_terms.externals)T.mainstay.externals.push({method:M,schema:k,state:T,label:b.label(k._flags,T,R)});const I={value:g,errors:S.length?S:null};return k._flags.result&&(I.value=k._flags.result==="strip"?void 0:w.original,T.mainstay.tracer.value(T,k._flags.result,g,I.value),T.shadow(g,k._flags.result)),k._cache&&R.cache!==!1&&!k._refs.length&&k._cache.set(w.original,I),g===void 0||I.errors||k._flags.artifact===void 0||(T.mainstay.artifacts=T.mainstay.artifacts||new Map,T.mainstay.artifacts.has(k._flags.artifact)||T.mainstay.artifacts.set(k._flags.artifact,[]),T.mainstay.artifacts.get(k._flags.artifact).push(T.path)),I},y.prefs=function(g,S){const w=S===f.defaults;return w&&g._preferences[f.symbols.prefs]?g._preferences[f.symbols.prefs]:(S=f.preferences(S,g._preferences),w&&(g._preferences[f.symbols.prefs]=S),S)},y.default=function(g,S,w,k){const{schema:T,state:R,prefs:I}=k,M=T._flags[g];if(I.noDefaults||M===void 0)return S;if(R.mainstay.tracer.log(T,R,"rule",g,"full"),!M)return M;if(typeof M=="function"){const L=M.length?[p(R.ancestors[0]),k]:[];try{return M(...L)}catch(O){return void w.push(T.$_createError("any.".concat(g),null,{error:O},R,I))}}return typeof M!="object"?M:M[f.symbols.literal]?M.literal:f.isResolvable(M)?M.resolve(S,R,I):p(M)},y.trim=function(g,S){if(typeof g!="string")return g;const w=S.$_getRule("trim");return w&&w.args.enabled?g.trim():g},y.ignore={active:!1,debug:d,entry:d,filter:d,log:d,resolve:d,value:d},y.errorsArray=function(){const g=[];return g[f.symbols.errors]=!0,g}},2036:(o,s,u)=>
90{const c=u(375),p=u(9474),d=u(8160),m={};o.exports=m.Values=class{constructor(f,b){this._values=new Set(f),this._refs=new Set(b),this._lowercase=m.lowercases(f),this._override=!1}get length(){return this._values.size+this._refs.size}add(f,b){d.isResolvable(f)?this._refs.has(f)||(this._refs.add(f),b&&b.register(f)):this.has(f,null,null,!1)||(this._values.add(f),typeof f=="string"&&this._lowercase.set(f.toLowerCase(),f))}static merge(f,b,v){if(f=f||new m.Values,b){if(b._override)return b.clone();for(const y of[...b._values,...b._refs])f.add(y)}if(v)for(const y of[...v._values,...v._refs])f.remove(y);return f.length?f:null}remove(f){d.isResolvable(f)?this._refs.delete(f):(this._values.delete(f),typeof f=="string"&&this._lowercase.delete(f.toLowerCase()))}has(f,b,v,y){return!!this.get(f,b,v,y)}get(f,b,v,y){if(!this.length)return!1;if(this._values.has(f))return{value:f};if(typeof f=="string"&&f&&y){const g=this._lowercase.get(f.toLowerCase());if(g)return{value:g}}if(!this._refs.size&&typeof f!="object")return!1;if(typeof f=="object"){for(const g of this._values)if(p(g,f))return{value:g}}if(b)for(const g of this._refs){const S=g.resolve(f,b,v,null,{in:!0});if(S===void 0)continue;const w=g.in&&typeof S=="object"?Array.isArray(S)?S:Object.keys(S):[S];for(const k of w)if(typeof k==typeof f){if(y&&f&&typeof f=="string"){if(k.toLowerCase()===f.toLowerCase())return{value:k,ref:g}}else if(p(k,f))return{value:k,ref:g}}}return!1}override(){this._override=!0}values(f){if(f&&f.display){const b=[];for(const v of[...this._values,...this._refs])v!==void 0&&b.push(v);return b}return Array.from([...this._values,...this._refs])}clone(){const f=new m.Values(this._values,this._refs);return f._override=this._override,f}concat(f){c(!f._override,"Cannot concat override set of values");const b=new m.Values([...this._values,...f._values],[...this._refs,...f._refs]);return b._override=this._override,b}describe(){const f=[];this._override&&f.push({override:!0});for(const b of this._values.values())f.push(b&&typeof b=="object"?{value:b}:b);for(const b of this._refs.values())f.push(b.describe());return f}},m.Values.prototype[d.symbols.values]=!0,m.Values.prototype.slice=m.Values.prototype.clone,m.lowercases=function(f){const b=new Map;if(f)for(const v of f)typeof v=="string"&&b.set(v.toLowerCase(),v);return b}},978:(o,s,u)=>{const c=u(375),p=u(8571),d=u(1687),m=u(9621),f={};o.exports=function(b,v,y={}){if(c(b&&typeof b=="object","Invalid defaults value: must be an object"),c(!v||v===!0||typeof v=="object","Invalid source value: must be true, falsy or an object"),c(typeof y=="object","Invalid options: must be an object"),!v)return null;if(y.shallow)return f.applyToDefaultsWithShallow(b,v,y);const g=p(b);if(v===!0)return g;const S=y.nullOverride!==void 0&&y.nullOverride;return d(g,v,{nullOverride:S,mergeArrays:!1})},f.applyToDefaultsWithShallow=function(b,v,y){const g=y.shallow;c(Array.isArray(g),"Invalid keys");const S=new Map,w=v===!0?null:new Set;for(let R of g){R=Array.isArray(R)?R:R.split(".");const I=m(b,R);I&&typeof I=="object"?S.set(I,w&&m(v,R)||I):w&&w.add(R)}const k=p(b,{},S);if(!w)return k;for(const R of w)f.reachCopy(k,v,R);const T=y.nullOverride!==void 0&&y.nullOverride;return d(k,v,{nullOverride:T,mergeArrays:!1})},f.reachCopy=function(b,v,y){for(const w of y){if(!(w in v))return;const k=v[w];if(typeof k!="object"||k===null)return;v=k}const g=v;let S=b;for(let w=0;w<y.length-1;++w){const k=y[w];typeof S[k]!="object"&&(S[k]={}),S=S[k]}S[y[y.length-1]]=g}},375:(o,s,u)=>{const c=u(7916);o.exports=function(p,...d){if(!p)throw d.length===1&&d[0]instanceof Error?d[0]:new c(d)}},8571:(o,s,u)=>{const c=u(9621),p=u(4277),d=u(7043),m={needsProtoHack:new Set([p.set,p.map,p.weakSet,p.weakMap])};o.exports=m.clone=function(f,b={},v=null){if(typeof f!="object"||f===null)return f;let y=m.clone,g=v;if(b.shallow){if(b.shallow!==!0)return m.cloneWithShallow(f,b);y=T=>T}else if(g){const T=g.get(f);if(T)return T}else g=new Map;const S=p.getInternalProto(f);if(S===p.buffer)return!1;if(S===p.date)return new Date(f.getTime());if(S===p.regex)return new RegExp(f);const w=m.base(f,S,b);if(w===f)return f;if(g&&g.set(f,w),S===p.set)for(const T of f)w.add(y(T,b,g));else if(S===p.map)for(const[T,R]of f)w.set(T,y(R,b,g));const k=d.keys(f,b);for(const T of k){if(T==="__proto__")continue;if(S===p.array&&T==="length"){w.length=f.length;continue}const R=Object.getOwnPropertyDescriptor(f,T);R?R.get||R.set?Object.defineProperty(w,T,R):R.enumerable?w[T]=y(f[T],b,g):Object.defineProperty(w,T,{enumerable:!1,writable:!0,configurable:!0,value:y(f[T],b,g)}):Object.defineProperty(w,T,{enumerable:!0,writable:!0,configurable:!0,value:y(f[T],b,g)})}return w},m.cloneWithShallow=function(f,b){const v=b.shallow;(b=Object.assign({},b)).shallow=!1;const y=new Map;for(const g of v){const S=c(f,g);typeof S!="object"&&typeof S!="function"||y.set(S,S)}return m.clone(f,b,y)},m.base=function(f,b,v){if(v.prototype===!1)return m.needsProtoHack.has(b)?new b.constructor:b===p.array?[]:{};const y=Object.getPrototypeOf(f);if(y&&y.isImmutable)return f;if(b===p.array){const g=[];return y!==b&&Object.setPrototypeOf(g,y),g}if(m.needsProtoHack.has(b)){const g=new y.constructor;return y!==b&&Object.setPrototypeOf(g,y),g}return Object.create(y)}},9474:(o,s,u)=>{const c=u(4277),p={mismatched:null};o.exports=function(d,m,f){return f=Object.assign({prototype:!0},f),!!p.isDeepEqual(d,m,f,[])}
90,p.isDeepEqual=function(d,m,f,b){if(d===m)return d!==0||1/d==1/m;const v=typeof d;if(v!==typeof m||d===null||m===null)return!1;if(v==="function"){if(!f.deepFunction||d.toString()!==m.toString())return!1}else if(v!=="object")return d!=d&&m!=m;const y=p.getSharedType(d,m,!!f.prototype);switch(y){case c.buffer:return!1;case c.promise:return d===m;case c.regex:return d.toString()===m.toString();case p.mismatched:return!1}for(let g=b.length-1;g>=0;--g)if(b[g].isSame(d,m))return!0;b.push(new p.SeenEntry(d,m));try{return!!p.isDeepEqualObj(y,d,m,f,b)}finally{b.pop()}},p.getSharedType=function(d,m,f){if(f)return Object.getPrototypeOf(d)!==Object.getPrototypeOf(m)?p.mismatched:c.getInternalProto(d);const b=c.getInternalProto(d);return b!==c.getInternalProto(m)?p.mismatched:b},p.valueOf=function(d){const m=d.valueOf;if(m===void 0)return d;try{return m.call(d)}catch(f){return f}},p.hasOwnEnumerableProperty=function(d,m){return Object.prototype.propertyIsEnumerable.call(d,m)},p.isSetSimpleEqual=function(d,m){for(const f of Set.prototype.values.call(d))if(!Set.prototype.has.call(m,f))return!1;return!0},p.isDeepEqualObj=function(d,m,f,b,v){const{isDeepEqual:y,valueOf:g,hasOwnEnumerableProperty:S}=p,{keys:w,getOwnPropertySymbols:k}=Object;if(d===c.array){if(!b.part){if(m.length!==f.length)return!1;for(let L=0;L<m.length;++L)if(!y(m[L],f[L],b,v))return!1;return!0}for(const L of m)for(const O of f)if(y(L,O,b,v))return!0}else if(d===c.set){if(m.size!==f.size)return!1;if(!p.isSetSimpleEqual(m,f)){const L=new Set(Set.prototype.values.call(f));for(const O of Set.prototype.values.call(m)){if(L.delete(O))continue;let W=!1;for(const F of L)if(y(O,F,b,v)){L.delete(F),W=!0;break}if(!W)return!1}}}else if(d===c.map){if(m.size!==f.size)return!1;for(const[L,O]of Map.prototype.entries.call(m))if(O===void 0&&!Map.prototype.has.call(f,L)||!y(O,Map.prototype.get.call(f,L),b,v))return!1}else if(d===c.error&&(m.name!==f.name||m.message!==f.message))return!1;const T=g(m),R=g(f);if((m!==T||f!==R)&&!y(T,R,b,v))return!1;const I=w(m);if(!b.part&&I.length!==w(f).length&&!b.skip)return!1;let M=0;for(const L of I)if(b.skip&&b.skip.includes(L))f[L]===void 0&&++M;else if(!S(f,L)||!y(m[L],f[L],b,v))return!1;if(!b.part&&I.length-M!==w(f).length)return!1;if(b.symbols!==!1){const L=k(m),O=new Set(k(f));for(const W of L){if(!b.skip||!b.skip.includes(W)){if(S(m,W)){if(!S(f,W)||!y(m[W],f[W],b,v))return!1}else if(S(f,W))return!1}O.delete(W)}for(const W of O)if(S(f,W))return!1}return!0},p.SeenEntry=class{constructor(d,m){this.obj=d,this.ref=m}isSame(d,m){return this.obj===d&&this.ref===m}}},7916:(o,s,u)=>{const c=u(8761);o.exports=class extends Error{constructor(p){super(p.filter(d=>d!=="").map(d=>typeof d=="string"?d:d instanceof Error?d.message:c(d)).join(" ")||"Unknown error"),typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,s.assert)}}},5277:o=>{const s={};o.exports=function(u){if(!u)return"";let c="";for(let p=0;p<u.length;++p){const d=u.charCodeAt(p);s.isSafe(d)?c+=u[p]:c+=s.escapeHtmlChar(d)}return c},s.escapeHtmlChar=function(u){return s.namedHtml.get(u)||(u>=256?"&#"+u+";":"&#x".concat(u.toString(16).padStart(2,"0"),";"))},s.isSafe=function(u){return s.safeCharCodes.has(u)},s.namedHtml=new Map([[38,"&"],[60,"<"],[62,">"],[34,"""],[160," "],[162,"¢"],[163,"£"],[164,"¤"],[169,"©"],[174,"®"]]),s.safeCharCodes=function(){const u=new Set;for(let c=32;c<123;++c)(c>=97||c>=65&&c<=90||c>=48&&c<=57||c===32||c===46||c===44||c===45||c===58||c===95)&&u.add(c);return u}()},6064:o=>{o.exports=function(s){return s.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")}},738:o=>{o.exports=function(){}},1687:(o,s,u)=>{const c=u(375),p=u(8571),d=u(7043),m={};o.exports=m.merge=function(f,b,v){if(c(f&&typeof f=="object","Invalid target value: must be an object"),c(b==null||typeof b=="object","Invalid source value: must be null, undefined, or an object"),!b)return f;if(v=Object.assign({nullOverride:!0,mergeArrays:!0},v),Array.isArray(b)){c(Array.isArray(f),"Cannot merge array onto an object"),v.mergeArrays||(f.length=0);for(let g=0;g<b.length;++g)f.push(p(b[g],{symbols:v.symbols}));return f}const y=d.keys(b,v);for(let g=0;g<y.length;++g){const S=y[g];if(S==="__proto__"||!Object.prototype.propertyIsEnumerable.call(b,S))continue;const w=b[S];if(w&&typeof w=="object"){if(f[S]===w)continue;!f[S]||typeof f[S]!="object"||Array.isArray(f[S])!==Array.isArray(w)||w instanceof Date||w instanceof RegExp?f[S]=p(w,{symbols:v.symbols}):m.merge(f[S],w,v)}else(w!=null||v.nullOverride)&&(f[S]=w)}return f}},9621:(o,s,u)=>
90{const c=u(375),p={};o.exports=function(d,m,f){if(m===!1||m==null)return d;typeof(f=f||{})=="string"&&(f={separator:f});const b=Array.isArray(m);c(!b||!f.separator,"Separator option is not valid for array-based chain");const v=b?m:m.split(f.separator||".");let y=d;for(let g=0;g<v.length;++g){let S=v[g];const w=f.iterables&&p.iterables(y);if(Array.isArray(y)||w==="set"){const k=Number(S);Number.isInteger(k)&&(S=k<0?y.length+k:k)}if(!y||typeof y=="function"&&f.functions===!1||!w&&y[S]===void 0){c(!f.strict||g+1===v.length,"Missing segment",S,"in reach path ",m),c(typeof y=="object"||f.functions===!0||typeof y!="function","Invalid segment",S,"in reach path ",m),y=f.default;break}y=w?w==="set"?[...y][S]:y.get(S):y[S]}return y},p.iterables=function(d){return d instanceof Set?"set":d instanceof Map?"map":void 0}},8761:o=>{o.exports=function(...s){try{return JSON.stringify(...s)}catch(u){return"[Cannot display object: "+u.message+"]"}}},4277:(o,s)=>{const u={};s=o.exports={array:Array.prototype,buffer:!1,date:Date.prototype,error:Error.prototype,generic:Object.prototype,map:Map.prototype,promise:Promise.prototype,regex:RegExp.prototype,set:Set.prototype,weakMap:WeakMap.prototype,weakSet:WeakSet.prototype},u.typeMap=new Map([["[object Error]",s.error],["[object Map]",s.map],["[object Promise]",s.promise],["[object Set]",s.set],["[object WeakMap]",s.weakMap],["[object WeakSet]",s.weakSet]]),s.getInternalProto=function(c){if(Array.isArray(c))return s.array;if(c instanceof Date)return s.date;if(c instanceof RegExp)return s.regex;if(c instanceof Error)return s.error;const p=Object.prototype.toString.call(c);return u.typeMap.get(p)||s.generic}},7043:(o,s)=>{s.keys=function(u,c={}){return c.symbols!==!1?Reflect.ownKeys(u):Object.getOwnPropertyNames(u)}},3652:(o,s,u)=>{const c=u(375),p={};s.Sorter=class{constructor(){this._items=[],this.nodes=[]}add(d,m){const f=[].concat((m=m||{}).before||[]),b=[].concat(m.after||[]),v=m.group||"?",y=m.sort||0;c(!f.includes(v),"Item cannot come before itself: ".concat(v)),c(!f.includes("?"),"Item cannot come before unassociated items"),c(!b.includes(v),"Item cannot come after itself: ".concat(v)),c(!b.includes("?"),"Item cannot come after unassociated items"),Array.isArray(d)||(d=[d]);for(const g of d){const S={seq:this._items.length,sort:y,before:f,after:b,group:v,node:g};this._items.push(S)}if(!m.manual){const g=this._sort();c(g,"item",v!=="?"?"added into group ".concat(v):"","created a dependencies error")}return this.nodes}merge(d){Array.isArray(d)||(d=[d]);for(const f of d)if(f)for(const b of f._items)this._items.push(Object.assign({},b));this._items.sort(p.mergeSort);for(let f=0;f<this._items.length;++f)this._items[f].seq=f;const m=this._sort();return c(m,"merge created a dependencies error"),this.nodes}sort(){const d=this._sort();return c(d,"sort created a dependencies error"),this.nodes}_sort(){const d={},m=Object.create(null),f=Object.create(null);for(const S of this._items){const w=S.seq,k=S.group;f[k]=f[k]||[],f[k].push(w),d[w]=S.before;for(const T of S.after)m[T]=m[T]||[],m[T].push(w)}for(const S in d){const w=[];for(const k in d[S]){const T=d[S][k];f[T]=f[T]||[],w.push(...f[T])}d[S]=w}for(const S in m)if(f[S])for(const w of f[S])d[w].push(...m[S]);const b={};for(const S in d){const w=d[S];for(const k of w)b[k]=b[k]||[],b[k].push(S)}const v={},y=[];for(let S=0;S<this._items.length;++S){let w=S;if(b[S]){w=null;for(let k=0;k<this._items.length;++k){if(v[k]===!0)continue;b[k]||(b[k]=[]);const T=b[k].length;let R=0;for(let I=0;I<T;++I)v[b[k][I]]&&++R;if(R===T){w=k;break}}}w!==null&&(v[w]=!0,y.push(w))}if(y.length!==this._items.length)return!1;const g={};for(const S of this._items)g[S.seq]=S;this._items=[],this.nodes=[];for(const S of y){const w=g[S];this.nodes.push(w.node),this._items.push(w)}return!0}},p.mergeSort=(d,m)=>d.sort===m.sort?0:d.sort<m.sort?-1:1}
90,5380:(o,s,u)=>{const c=u(443),p=u(2178),d={minDomainSegments:2,nonAsciiRx:/[^\x00-\x7f]/,domainControlRx:/[\x00-\x20@\:\/\\#!\$&\'\(\)\*\+,;=\?]/,tldSegmentRx:/^[a-zA-Z](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,domainSegmentRx:/^[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?$/,URL:c.URL||URL};s.analyze=function(m,f={}){if(!m)return p.code("DOMAIN_NON_EMPTY_STRING");if(typeof m!="string")throw new Error("Invalid input: domain must be a string");if(m.length>256)return p.code("DOMAIN_TOO_LONG");if(d.nonAsciiRx.test(m)){if(f.allowUnicode===!1)return p.code("DOMAIN_INVALID_UNICODE_CHARS");m=m.normalize("NFC")}if(d.domainControlRx.test(m))return p.code("DOMAIN_INVALID_CHARS");m=d.punycode(m),f.allowFullyQualified&&m[m.length-1]==="."&&(m=m.slice(0,-1));const b=f.minDomainSegments||d.minDomainSegments,v=m.split(".");if(v.length<b)return p.code("DOMAIN_SEGMENTS_COUNT");if(f.maxDomainSegments&&v.length>f.maxDomainSegments)return p.code("DOMAIN_SEGMENTS_COUNT_MAX");const y=f.tlds;if(y){const g=v[v.length-1].toLowerCase();if(y.deny&&y.deny.has(g)||y.allow&&!y.allow.has(g))return p.code("DOMAIN_FORBIDDEN_TLDS")}for(let g=0;g<v.length;++g){const S=v[g];if(!S.length)return p.code("DOMAIN_EMPTY_SEGMENT");if(S.length>63)return p.code("DOMAIN_LONG_SEGMENT");if(g<v.length-1){if(!d.domainSegmentRx.test(S))return p.code("DOMAIN_INVALID_CHARS")}else if(!d.tldSegmentRx.test(S))return p.code("DOMAIN_INVALID_TLDS_CHARS")}return null},s.isValid=function(m,f){return!s.analyze(m,f)},d.punycode=function(m){m.includes("%")&&(m=m.replace(/%/g,"%25"));try{return new d.URL("http://".concat(m)).host}catch{return m}}},1745:(o,s,u)=>{const c=u(9848),p=u(5380),d=u(2178),m={nonAsciiRx:/[^\x00-\x7f]/,encoder:new(c.TextEncoder||TextEncoder)};s.analyze=function(f,b){return m.email(f,b)},s.isValid=function(f,b){return!m.email(f,b)},m.email=function(f,b={}){if(typeof f!="string")throw new Error("Invalid input: email must be a string");if(!f)return d.code("EMPTY_STRING");const v=!m.nonAsciiRx.test(f);if(!v){if(b.allowUnicode===!1)return d.code("FORBIDDEN_UNICODE");f=f.normalize("NFC")}const y=f.split("@");if(y.length!==2)return y.length>2?d.code("MULTIPLE_AT_CHAR"):d.code("MISSING_AT_CHAR");const[g,S]=y;if(!g)return d.code("EMPTY_LOCAL");if(!b.ignoreLength){if(f.length>254)return d.code("ADDRESS_TOO_LONG");if(m.encoder.encode(g).length>64)return d.code("LOCAL_TOO_LONG")}return m.local(g,v)||p.analyze(S,b)},m.local=function(f,b){const v=f.split(".");for(const y of v){if(!y.length)return d.code("EMPTY_LOCAL_SEGMENT");if(b){if(!m.atextRx.test(y))return d.code("INVALID_LOCAL_CHARS")}else for(const g of y){if(m.atextRx.test(g))continue;const S=m.binary(g);if(!m.atomRx.test(S))return d.code("INVALID_LOCAL_CHARS")}}},m.binary=function(f){return Array.from(m.encoder.encode(f)).map(b=>String.fromCharCode(b)).join("")},m.atextRx=/^[\w!#\$%&'\*\+\-/=\?\^`\{\|\}~]+$/,m.atomRx=new RegExp(["(?:[\\xc2-\\xdf][\\x80-\\xbf])","(?:\\xe0[\\xa0-\\xbf][\\x80-\\xbf])|(?:[\\xe1-\\xec][\\x80-\\xbf]{2})|(?:\\xed[\\x80-\\x9f][\\x80-\\xbf])|(?:[\\xee-\\xef][\\x80-\\xbf]{2})","(?:\\xf0[\\x90-\\xbf][\\x80-\\xbf]{2})|(?:[\\xf1-\\xf3][\\x80-\\xbf]{3})|(?:\\xf4[\\x80-\\x8f][\\x80-\\xbf]{2})"].join("|"))},2178:(o,s)=>{s.codes={EMPTY_STRING:"Address must be a non-empty string",FORBIDDEN_UNICODE:"Address contains forbidden Unicode characters",MULTIPLE_AT_CHAR:"Address cannot contain more than one @ character",MISSING_AT_CHAR:"Address must contain one @
90character",EMPTY_LOCAL:"Address local part cannot be empty",ADDRESS_TOO_LONG:"Address too long",LOCAL_TOO_LONG:"Address local part too long",EMPTY_LOCAL_SEGMENT:"Address local part contains empty dot-separated segment",INVALID_LOCAL_CHARS:"Address local part contains invalid character",DOMAIN_NON_EMPTY_STRING:"Domain must be a non-empty string",DOMAIN_TOO_LONG:"Domain too long",DOMAIN_INVALID_UNICODE_CHARS:"Domain contains forbidden Unicode characters",DOMAIN_INVALID_CHARS:"Domain contains invalid character",DOMAIN_INVALID_TLDS_CHARS:"Domain contains invalid tld character",DOMAIN_SEGMENTS_COUNT:"Domain lacks the minimum required number of segments",DOMAIN_SEGMENTS_COUNT_MAX:"Domain contains too many segments",DOMAIN_FORBIDDEN_TLDS:"Domain uses forbidden TLD",DOMAIN_EMPTY_SEGMENT:"Domain contains empty dot-separated segment",DOMAIN_LONG_SEGMENT:"Domain contains dot-separated segment that is too long"},s.code=function(u){return{code:u,error:s.codes[u]}}},9959:(o,s,u)=>{const c=u(375),p=u(5752);s.regex=function(d={}){c(d.cidr===void 0||typeof d.cidr=="string","options.cidr must be a string");const m=d.cidr?d.cidr.toLowerCase():"optional";c(["required","optional","forbidden"].includes(m),"options.cidr must be one of required, optional, forbidden"),c(d.version===void 0||typeof d.version=="string"||Array.isArray(d.version),"options.version must be a string or an array of string");let f=d.version||["ipv4","ipv6","ipvfuture"];Array.isArray(f)||(f=[f]),c(f.length>=1,"options.version must have at least 1 version specified");for(let y=0;y<f.length;++y)c(typeof f[y]=="string","options.version must only contain strings"),f[y]=f[y].toLowerCase(),c(["ipv4","ipv6","ipvfuture"].includes(f[y]),"options.version contains unknown version "+f[y]+" - must be one of ipv4, ipv6, ipvfuture");f=Array.from(new Set(f));const b="(?:".concat(f.map(y=>{if(m==="forbidden")return p.ip[y];const g="\\/".concat(y==="ipv4"?p.ip.v4Cidr:p.ip.v6Cidr);return m==="required"?"".concat(p.ip[y]).concat(g):"".concat(p.ip[y],"(?:").concat(g,")?")}).join("|"),")"),v=new RegExp("^".concat(b,"$"));return{cidr:m,versions:f,regex:v,raw:b}}},5752:(o,s,u)=>{const c=u(375),p=u(6064),d={generate:function(){const m={},f="\\dA-Fa-f",b="["+f+"]",v="\\w-\\.~",y="!\\$&'\\(\\)\\*\\+,;=",g="%"+f,S=v+g+y+":@",w="["+S+"]",k="(?:0{0,2}\\d|0?[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])";m.ipv4address="(?:"+k+"\\.){3}"+k;const T=b+"{1,4}",R="(?:"+T+":"+T+"|"+m.ipv4address+")",I="(?:"+T+":){6}"+R,M="::(?:"+T+":){5}"+R,L="(?:"+T+")?::(?:"+T+":){4}"+R,O="(?:(?:"+T+":){0,1}"+T+")?::(?:"+T+":){3}"+R,W="(?:(?:"+T+":){0,2}"+T+")?::(?:"+T+":){2}"+R,F="(?:(?:"+T+":){0,3}"+T+")?::"+T+":"+R,G="(?:(?:"+T+":){0,4}"+T+")?::"+R,ee="(?:(?:"+T+":){0,5}"+T+")?::"+T,de="(?:(?:"+T+":){0,6}"+T+")?::";m.ipv4Cidr="(?:\\d|[1-2]\\d|3[0-2])",m.ipv6Cidr="(?:0{0,2}\\d|0?[1-9]\\d|1[01]\\d|12[0-8])",m.ipv6address="(?:"+I+"|"+M+"|"+L+"|"+O+"|"+W+"|"+F+"|"+G+"|"+ee+"|"+de+")",m.ipvFuture="v"+b+"+\\.["+v+y+":]+",m.scheme="[a-zA-Z][a-zA-Z\\d+-\\.]*",m.schemeRegex=new RegExp(m.scheme);const ye="["+v+g+y+":]*",_e="["+v+g+y+"]{1,255}",Y="(?:\\[(?:"+m.ipv6address+"|"+m.ipvFuture+")\\]|"+m.ipv4address+"|"+_e+")",q="(?:"+ye+"@)?"+Y+"(?::\\d*)?",re="(?:"+ye+"@)?("+Y+")(?::\\d*)?",be=w+"*",se=w+"+",j="(?:\\/"+be+")*",X="\\/(?:"+se+j+")?",fe=se+j,pe="["+v+g+y+"@]+"+j,we="(?:\\/\\/\\/"+be+j+")";return m.hierPart="(?:(?:\\/\\/"+q+j+")|"+X+"|"+fe+"|"+we+")",m.hierPartCapture="(?:(?:\\/\\/"+re+j+")|"+X+"|"+fe+")",m.relativeRef="(?:(?:\\/\\/"+q+j+")|"+X+"|"+pe+"|)",m.relativeRefCapture="(?:(?:\\/\\/"+re+j+")|"+X+"|"+pe+"|)",m.query="["+S+"\\/\\?]*(?=#|$)",m.queryWithSquareBrackets="["+S+"\\[\\]\\/\\?]*(?=#|$)",m.fragment="["+S+"\\/\\?]*",m}};d.rfc3986=d.generate(),s.ip={v4Cidr:d.rfc3986.ipv4Cidr,v6Cidr:d.rfc3986.ipv6Cidr,ipv4:d.rfc3986.ipv4address,ipv6:d.rfc3986.ipv6address,ipvfuture:d.rfc3986.ipvFuture},d.createRegex=function(m){const f=d.rfc3986,b="(?:\\?"+(m.allowQuerySquareBrackets?f.queryWithSquareBrackets:f.query)+")?(?:#"+f.fragment+")?",v=m.domain?f.relativeRefCapture:f.relativeRef;if(m.relativeOnly)return d.wrap(v+b);let y="";if(m.scheme){c(m.scheme instanceof RegExp||typeof m.scheme=="string"||Array.isArray(m.scheme),"scheme must be a RegExp, String, or Array");const w=[].concat(m.scheme);c(w.length>=1,"scheme must have at least 1 scheme specified");const k=[];for(let T=0;T<w.length;++T){const R=w[T];
90c(R instanceof RegExp||typeof R=="string","scheme at position "+T+" must be a RegExp or String"),R instanceof RegExp?k.push(R.source.toString()):(c(f.schemeRegex.test(R),"scheme at position "+T+" must be a valid scheme"),k.push(p(R)))}y=k.join("|")}const g="(?:"+(y?"(?:"+y+")":f.scheme)+":"+(m.domain?f.hierPartCapture:f.hierPart)+")",S=m.allowRelative?"(?:"+g+"|"+v+")":g;return d.wrap(S+b,y)},d.wrap=function(m,f){return{raw:m="(?=.)(?!https?:/(?:$|[^/]))(?!https?:///)(?!https?:[^/])".concat(m),regex:new RegExp("^".concat(m,"$")),scheme:f}},d.uriRegex=d.createRegex({}),s.regex=function(m={}){return m.scheme||m.allowRelative||m.relativeOnly||m.allowQuerySquareBrackets||m.domain?d.createRegex(m):d.uriRegex}},1447:(o,s)=>{const u={operators:["!","^","*","/","%","+","-","<","<=",">",">=","==","!=","&&","||","??"],operatorCharacters:["!","^","*","/","%","+","-","<","=",">","&","|","?"],operatorsOrder:[["^"],["*","/","%"],["+","-"],["<","<=",">",">="],["==","!="],["&&"],["||","??"]],operatorsPrefix:["!","n"],literals:{'"':'"',"`":"`","'":"'","[":"]"},numberRx:/^(?:[0-9]*(\.[0-9]*)?){1}$/,tokenRx:/^[\w\$\#\.\@\:\{\}]+$/,symbol:Symbol("formula"),settings:Symbol("settings")};s.Parser=class{constructor(c,p={}){if(!p[u.settings]&&p.constants)for(const d in p.constants){const m=p.constants[d];if(m!==null&&!["boolean","number","string"].includes(typeof m))throw new Error("Formula constant ".concat(d," contains invalid ").concat(typeof m," value type"))}this.settings=p[u.settings]?p:Object.assign({[u.settings]:!0,constants:{},functions:{}},p),this.single=null,this._parts=null,this._parse(c)}_parse(c){let p=[],d="",m=0,f=!1;const b=y=>{if(m)throw new Error("Formula missing closing parenthesis");const g=p.length?p[p.length-1]:null;if(f||d||y){if(g&&g.type==="reference"&&y===")")return g.type="function",g.value=this._subFormula(d,g.value),void(d="");if(y===")"){const S=new s.Parser(d,this.settings);p.push({type:"segment",value:S})}else if(f){if(f==="]")return p.push({type:"reference",value:d}),void(d="");p.push({type:"literal",value:d})}else if(u.operatorCharacters.includes(d))g&&g.type==="operator"&&u.operators.includes(g.value+d)?g.value+=d:p.push({type:"operator",value:d});else if(d.match(u.numberRx))p.push({type:"constant",value:parseFloat(d)});else if(this.settings.constants[d]!==void 0)p.push({type:"constant",value:this.settings.constants[d]});else{if(!d.match(u.tokenRx))throw new Error("Formula contains invalid token: ".concat(d));p.push({type:"reference",value:d})}d=""}};for(const y of c)f?y===f?(b(),f=!1):d+=y:m?y==="("?(d+=y,++m):y===")"?(--m,m?d+=y:b(y)):d+=y:y in u.literals?f=u.literals[y]:y==="("?(b(),++m):u.operatorCharacters.includes(y)?(b(),d=y,b()):y!==" "?d+=y:b();b(),p=p.map((y,g)=>y.type!=="operator"||y.value!=="-"||g&&p[g-1].type!=="operator"?y:{type:"operator",value:"n"});let v=!1;for(const y of p){if(y.type==="operator"){if(u.operatorsPrefix.includes(y.value))continue;if(!v)throw new Error("Formula contains an operator in invalid position");if(!u.operators.includes(y.value))throw new Error("Formula contains an unknown operator ".concat(y.value))}else if(v)throw new Error("Formula missing expected operator");v=!v}if(!v)throw new Error("Formula contains invalid trailing operator");p.length===1&&["reference","literal","constant"].includes(p[0].type)&&(this.single={type:p[0].type==="reference"?"reference":"value",value:p[0].value}),this._parts=p.map(y=>{if(y.type==="operator")return u.operatorsPrefix.includes(y.value)?y:y.value;if(y.type!=="reference")return y.value;if(this.settings.tokenRx&&!this.settings.tokenRx.test(y.value))throw new Error("Formula contains invalid reference ".concat(y.value));return this.settings.reference?this.settings.reference(y.value):u.reference(y.value)})}_subFormula(c,p){const d=this.settings.functions[p];if(typeof d!="function")throw new Error("Formula contains unknown function ".concat(p));let m=[];if(c){let f="",b=0,v=!1;const y=()=>{if(!f)throw new Error("Formula contains function ".concat(p," with invalid arguments ").concat(c));m.push(f),f=""};for(let g=0;g<c.length;++g){const S=c[g];v?(f+=S,S===v&&(v=!1)):S in u.literals&&!b?(f+=S,v=u.literals[S]):S!==","||b?(f+=S,S==="("?++b:S===")"&&--b):y()}y()}return m=m.map(f=>new s.Parser(f,this.settings)),function(f){const b=[];for(const v of m)b.push(v.evaluate(f));return d.call(f,...b)}}evaluate(c){const p=this._parts.slice();for(let d=p.length-2;d>=0;--d){const m=p[d];if(m&&m.type==="operator"){const f=p[d+1];p.splice(d+1,1);const b=u.evaluate(f,c);p[d]=u.single(m.value,b)}}return u.operatorsOrder.forEach(d=>{for(let m=1;m<p.length-1;)if(d.includes(p[m])){const f=p[m],b=u.evaluate(p[m-1],c),v=u.evaluate(p[m
90+1],c);p.splice(m,2);const y=u.calculate(f,b,v);p[m-1]=y===0?0:y}else m+=2}),u.evaluate(p[0],c)}},s.Parser.prototype[u.symbol]=!0,u.reference=function(c){return function(p){return p&&p[c]!==void 0?p[c]:null}},u.evaluate=function(c,p){return c===null?null:typeof c=="function"?c(p):c[u.symbol]?c.evaluate(p):c},u.single=function(c,p){if(c==="!")return!p;const d=-p;return d===0?0:d},u.calculate=function(c,p,d){if(c==="??")return u.exists(p)?p:d;if(typeof p=="string"||typeof d=="string"){if(c==="+")return(p=u.exists(p)?p:"")+(u.exists(d)?d:"")}else switch(c){case"^":return Math.pow(p,d);case"*":return p*d;case"/":return p/d;case"%":return p%d;case"+":return p+d;case"-":return p-d}switch(c){case"<":return p<d;case"<=":return p<=d;case">":return p>d;case">=":return p>=d;case"==":return p===d;case"!=":return p!==d;case"&&":return p&&d;case"||":return p||d}return null},u.exists=function(c){return c!=null}},9926:()=>{},5688:()=>{},9708:()=>{},1152:()=>{},443:()=>{},9848:()=>{},5934:o=>{o.exports=JSON.parse('{"version":"17.13.3"}')}},a={},function o(s){var u=a[s];if(u!==void 0)return u.exports;var c=a[s]={exports:{}};return n[s](c,c.exports,o),c.exports}(5107);var n,a})})(o5);var qQ=o5.exports;const Ht=Cc(qQ);let Rl;const ZQ=32e3,AR=1e3;class s5 extends Lm{constructor(e,n,a,o){if(super(),Rl=a,!n)throw Rl.error("Token generator is required to construct this module."),new Error("Token generator is required to construct this module.");this.webRTCPeer=new vc,this.signaling=null,this.autoReconnect=o,this.reconnectionInterval=AR,this.alreadyDisconnected=!1,this.firstReconnection=!0,this.stopReconnection=!1,this.isReconnecting=!1,this.tokenGenerator=n,this.options=null}getRTCPeerConnection(){return this.webRTCPeer?this.webRTCPeer.getRTCPeer():null}stop(){var e;Rl.info("Stopping"),this.webRTCPeer.closeRTCPeer(),(e=this.signaling)==null||e.close(),this.signaling=null,this.stopReconnection=!0,this.webRTCPeer=new vc}isActive(){const e=this.webRTCPeer.getRTCPeerStatus();return Rl.info("Broadcast status: ",e||"not_established"),e==="connected"}setReconnect(){this.signaling.on("migrate",()=>this.replaceConnection()),this.autoReconnect&&(this.signaling.on(za.connectionError,()=>{(this.firstReconnection||!this.alreadyDisconnected)&&(this.firstReconnection=!1,this.reconnect({error:new Error("Signaling error: wsConnectionError")}))}),this.webRTCPeer.on(Er.connectionStateChange,e=>{ir.setConnectionState(e),e==="connected"&&ir.setConnectionTime(new Date),(e==="failed"||e==="disconnected"&&this.alreadyDisconnected)&&this.firstReconnection?(this.firstReconnection=!1,this.reconnect({error:new Error("Connection state change: RTCPeerConnectionState disconnected")})):e==="disconnected"?(this.alreadyDisconnected=!0,setTimeout(()=>this.reconnect({error:new Error("Connection state change: RTCPeerConnectionState disconnected")}),1500)):this.alreadyDisconnected=!1}))}async reconnect(e){try{Rl.info("Attempting to reconnect..."),!this.isActive()&&!this.stopReconnection&&!this.isReconnecting&&(this.stop(),this.emit("reconnect",{timeout:xR(this.reconnectionInterval),error:e!=null&&e.error?e==null?void 0:e.error:new Error("Attempting to reconnect")}),this.isReconnecting=!0,await this.connect(this.options),this.alreadyDisconnected=!1,this.reconnectionInterval=AR,this.firstReconnection=!0,this.isReconnecting=!1)}catch(n){this.isReconnecting=!1,this.reconnectionInterval=xR(this.reconnectionInterval),Rl.error("Reconnection failed, retrying in ".concat(this.reconnectionInterval,"ms. "),n),setTimeout(()=>this.reconnect({error:n}),this.reconnectionInterval)}}}const xR=t=>t<ZQ?t*2:t,I0=window.RTCRtpSender&&!!RTCRtpSender.prototype.createEncodedStreams&&window.RTCRtpReceiver&&!!RTCRtpReceiver.prototype.createEncodedStreams,l5="RTCRtpScriptTransform"in window,c5="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBGPXR5cGVvZiBnbG9iYWxUaGlzPCJ1Ij9nbG9iYWxUaGlzOnR5cGVvZiB3aW5kb3c8InUiP3dpbmRvdzp0eXBlb2YgZ2xvYmFsPCJ1Ij9nbG9iYWw6dHlwZW9mIHNlbGY8InUiP3NlbGY6e307ZnVuY3Rpb24gVyhuKXtyZXR1cm4gbiYmbi5fX2VzTW9kdWxlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobiwiZGVmYXVsdCIpP24uZGVmYXVsdDpufXZhciBCPXtleHBvcnRzOnt9fTsvKiEKICoganMtbG9nZ2VyIC0gaHR0cDovL2dpdGh1Yi5jb20vam9ubnlyZWV2ZXMvanMtbG9nZ2VyCiAqIEpvbm55IFJlZXZlcywgaHR0cDovL2pvbm55cmVldmVzLmNvLnVrLwogKiBqcy1sb2dnZXIgbWF5IGJlIGZyZWVseSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqLyhmdW5jdGlvbihuKXsoZnVuY3Rpb24odCl7dmFyIGU9e307ZS5WRVJTSU9OPSIxLjYuMSI7dmFyIHMscj17fSxvPWZ1bmN0aW9uKGksdSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHUuYXBwbHkoaSxhcmd1bWVudHMpfX0sYT1mdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cyx1PWlbMF0saCxjO2ZvcihjPTE7YzxpLmxlbmd0aDtjKyspZm9yKGggaW4gaVtjXSkhKGggaW4gdSkmJmlbY10uaGFzT3duUHJvcGVydHkoaCkmJih1W2hdPWlbY11baF0pO3JldHVybiB1fSxkPWZ1bmN0aW9uKGksdSl7cmV0dXJue3ZhbHVlOmksbmFtZTp1fX07ZS5UUkFDRT1kKDEsIlRSQUNFIiksZS5ERUJVRz1kKDIsIkRFQlVHIiksZS5JTkZPPWQoMywiSU5GTyIpLGUuVElNRT1kKDQsIlRJTUUiKSxlLldBUk49ZCg1LCJXQVJOIiksZS5FUlJPUj1kKDgsIkVSUk9SIiksZS5PRkY9ZCg5OSwiT0ZGIik7dmFyIGw9ZnVuY3Rpb24oaSl7dGhpcy5jb250ZXh0PWksdGhpcy5zZXRMZXZlbChpLmZpbHRlckxldmVsKSx0aGlzLmxvZz10aGlzLmluZm99O2wucHJvdG90eXBlPXtzZXRMZXZlbDpmdW5jdGlvbihpKXtpJiYidmFsdWUiaW4gaSYmKHRoaXMuY29udGV4dC5maWx0ZXJMZXZlbD1pKX0sZ2V0TGV2ZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0LmZpbHRlckxldmVsfSxlbmFibGVkRm9yOmZ1bmN0aW9uKGkpe3ZhciB1PXRoaXMuY29udGV4dC5maWx0ZXJMZXZlbDtyZXR1cm4gaS52YWx1ZT49dS52YWx1ZX0sdHJhY2U6ZnVuY3Rpb24oKXt0aGlzLmludm9rZShlLlRSQUNFLGFyZ3VtZW50cyl9LGRlYnVnOmZ1bmN0aW9uKCl7dGhpcy5pbnZva2UoZS5ERUJVRyxhcmd1bWVudHMpfSxpbmZvOmZ1bmN0aW9uKCl7dGhpcy5pbnZva2UoZS5JTkZPLGFyZ3VtZW50cyl9LHdhcm46ZnVuY3Rpb24oKXt0aGlzLmludm9rZShlLldBUk4sYXJndW1lbnRzKX0sZXJyb3I6ZnVuY3Rpb24oKXt0aGlzLmludm9rZShlLkVSUk9SLGFyZ3VtZW50cyl9LHRpbWU6ZnVuY3Rpb24oaSl7dHlwZW9mIGk9PSJzdHJpbmciJiZpLmxlbmd0aD4wJiZ0aGlzLmludm9rZShlLlRJTUUsW2ksInN0YXJ0Il0pfSx0aW1lRW5kOmZ1bmN0aW9uKGkpe3R5cGVvZiBpPT0ic3RyaW5nIiYmaS5sZW5ndGg+MCYmdGhpcy5pbnZva2UoZS5USU1FLFtpLCJlbmQiXSl9LGludm9rZTpmdW5jdGlvbihpLHUpe3MmJnRoaXMuZW5hYmxlZEZvcihpKSYmcyh1LGEoe2xldmVsOml9LHRoaXMuY29udGV4dCkpfX07dmFyIGY9bmV3IGwoe2ZpbHRlckxldmVsOmUuT0ZGfSk7KGZ1bmN0aW9uKCl7dmFyIGk9ZTtpLmVuYWJsZWRGb3I9byhmLGYuZW5hYmxlZEZvciksaS50cmFjZT1vKGYsZi50cmFjZSksaS5kZWJ1Zz1vKGYsZi5kZWJ1ZyksaS50aW1lPW8oZixmLnRpbWUpLGkudGltZUVuZD1vKGYsZi50aW1lRW5kKSxpLmluZm89byhmLGYuaW5mbyksaS53YXJuPW8oZixmLndhcm4pLGkuZXJyb3I9byhmLGYuZXJyb3IpLGkubG9nPWkuaW5mb30pKCksZS5zZXRIYW5kbGVyPWZ1bmN0aW9uKGkpe3M9aX0sZS5zZXRMZXZlbD1mdW5jdGlvbihpKXtmLnNldExldmVsKGkpO2Zvcih2YXIgdSBpbiByKXIuaGFzT3duUHJvcGVydHkodSkmJnJbdV0uc2V0TGV2ZWwoaSl9LGUuZ2V0TGV2ZWw9ZnVuY3Rpb24oKXtyZXR1cm4gZi5nZXRMZXZlbCgpfSxlLmdldD1mdW5jdGlvbihpKXtyZXR1cm4gcltpXXx8KHJbaV09bmV3IGwoYSh7bmFtZTppfSxmLmNvbnRleHQpKSl9LGUuY3JlYXRlRGVmYXVsdEhhbmRsZXI9ZnVuY3Rpb24oaSl7aT1pfHx7fSxpLmZvcm1hdHRlcj1pLmZvcm1hdHRlcnx8ZnVuY3Rpb24ocCxfKXtfLm5hbWUmJnAudW5zaGlmdCgiWyIrXy5uYW1lKyJdIil9O3ZhciB1PXt9LGg9ZnVuY3Rpb24oYyxwKXtGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjLGNvbnNvbGUscCl9O3JldHVybiB0eXBlb2YgY29uc29sZT4idSI/ZnVuY3Rpb24oKXt9OmZ1bmN0aW9uKGMscCl7Yz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjKTt2YXIgXz1jb25zb2xlLmxvZyxnO3AubGV2ZWw9PT1lLlRJTUU/KGc9KHAubmFtZT8iWyIrcC5uYW1lKyJdICI6IiIpK2NbMF0sY1sxXT09PSJzdGFydCI/Y29uc29sZS50aW1lP2NvbnNvbGUudGltZShnKTp1W2ddPW5ldyBEYXRlKCkuZ2V0VGltZSgpOmNvbnNvbGUudGltZUVuZD9jb25zb2xlLnRpbWVFbmQoZyk6aChfLFtnKyI6ICIrKG5ldyBEYXRlKCkuZ2V0VGltZSgpLXVbZ10pKyJtcyJdKSk6KHAubGV2ZWw9PT1lLldBUk4mJmNvbnNvbGUud2Fybj9fPWNvbnNvbGUud2FybjpwLmxldmVsPT09ZS5FUlJPUiYmY29uc29sZS5lcnJvcj9fPWNvbnNvbGUuZXJyb3I6cC5sZX
90ZlbD09PWUuSU5GTyYmY29uc29sZS5pbmZvP189Y29uc29sZS5pbmZvOnAubGV2ZWw9PT1lLkRFQlVHJiZjb25zb2xlLmRlYnVnP189Y29uc29sZS5kZWJ1ZzpwLmxldmVsPT09ZS5UUkFDRSYmY29uc29sZS50cmFjZSYmKF89Y29uc29sZS50cmFjZSksaS5mb3JtYXR0ZXIoYyxwKSxoKF8sYykpfX0sZS51c2VEZWZhdWx0cz1mdW5jdGlvbihpKXtlLnNldExldmVsKGkmJmkuZGVmYXVsdExldmVsfHxlLkRFQlVHKSxlLnNldEhhbmRsZXIoZS5jcmVhdGVEZWZhdWx0SGFuZGxlcihpKSl9LGUuc2V0RGVmYXVsdHM9ZS51c2VEZWZhdWx0cyxuLmV4cG9ydHM/bi5leHBvcnRzPWU6KGUuX3ByZXZMb2dnZXI9dC5Mb2dnZXIsZS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuTG9nZ2VyPWUuX3ByZXZMb2dnZXIsZX0sdC5Mb2dnZXI9ZSl9KShGKX0pKEIpO3ZhciB6PUIuZXhwb3J0cyxEPVcoeik7Y2xhc3Mgd3tjb25zdHJ1Y3Rvcih0KXt0aGlzLmRhdGE9dCx0aGlzLmJpdE9mZnNldD0wfXJlYWRCaXRzKHQpe2lmKHRoaXMuYml0T2Zmc2V0K3Q+dGhpcy5kYXRhLmxlbmd0aCo4KXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGVkIHRvIHJlYWQgcGFzdCB0aGUgZW5kIG9mIHRoZSBiaXRzdHJlYW0iKTtsZXQgZT0wO2ZvcihsZXQgcz0wO3M8dDtzKyspe2NvbnN0IHI9TWF0aC5mbG9vcih0aGlzLmJpdE9mZnNldC84KSxvPTctdGhpcy5iaXRPZmZzZXQlOCxhPXRoaXMuZGF0YVtyXT4+byYxO2V8PWE8PHQtMS1zLHRoaXMuYml0T2Zmc2V0Kyt9cmV0dXJuIGV9c2tpcCh0KXt0aGlzLmJpdE9mZnNldCs9dH1yZWFkRXhwR29sb21iVW5zaWduZWQoKXtsZXQgdD0tMTtmb3IobGV0IGU9MDtlPT09MDt0KyspZT10aGlzLnJlYWRCaXRzKDEpO3JldHVybigxPDx0KS0xK3RoaXMucmVhZEJpdHModCl9cmVhZEV4cEdvbG9tYlNpZ25lZCgpe2NvbnN0IHQ9dGhpcy5yZWFkRXhwR29sb21iVW5zaWduZWQoKTtyZXR1cm4gdCUyPT09MD8tKHQvMik6KHQrMSkvMn19Y29uc3QgbT17U0xJQ0VfTk9OX0lEUjoxLFNMSUNFX1BBUlRJVElPTl9BOjIsU0xJQ0VfSURSOjUsU0VJX0gyNjQ6NixTRUlfSDI2NV9QUkVGSVg6MzksU0VJX0gyNjVfU1VGRklYOjQwLFNQU19IMjY0OjcsU1BTX0gyNjU6MzMsUFBTX0gyNjQ6OCxQUFNfSDI2NTozNH0sUj17UElDX1RJTUlORzoxLFVTRVJfREFUQV9VTlJFR0lTVEVSRUQ6NX0sRT17TEVHQUNZOjEsTkVXOjIsVElNRUNPREU6MyxPVEhFUjo0fSxqPSI2ZTljZmQyYS01OTA3LTQ5ZmYtYjM2My04OTc4YTZlODM0MGUiLHE9IjlhMjFmM2JlLTMxZjAtNGI3OC1iMGJlLWM3ZjdkYmI5NzI1MCIsTD0iZDQwZTM4ZWEtZDQxOS00YzYyLTk0ZWQtMjBhYzM3YjRlNGZhIjtjbGFzcyBWe2NvbnN0cnVjdG9yKHQ9IkgyNjQiKXt0aGlzLnNwcz1uZXcgTWFwLHRoaXMucHBzPW5ldyBNYXAsdGhpcy5hY3RpdmVTUFM9bnVsbCx0aGlzLmNvZGVjPXR9Y29sbGVjdFBQUyh0KXt0aGlzLmNvZGVjPT09IkgyNjQiP3RoaXMuY29sbGVjdEgyNjRQUFModCk6dGhpcy5jb2xsZWN0SDI2NVBQUyh0KX1jb2xsZWN0U1BTKHQpe3RoaXMuY29kZWM9PT0iSDI2NCI/dGhpcy5jb2xsZWN0SDI2NFNQUyh0KTp0aGlzLmNvbGxlY3RIMjY1U1BTKHQpfWNvbGxlY3RIMjY0U1BTKHQpe2NvbnN0IGU9bmV3IHcodCkscz1lLnJlYWRCaXRzKDgpLHI9WzEwMCwxMTAsMTIyLDI0NCw0NCw4Myw4NiwxMTgsMTI4LDEzOCwxMzksMTM0LDEzNV07ZS5za2lwKDgpLGUuc2tpcCg4KTtjb25zdCBvPWUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCk7aWYobz4zMXx8bzwwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXFfcGFyYW1ldGVyX3NldF9pZCIpO2lmKHIuaW5jbHVkZXMocykpe2NvbnN0IGw9ZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKTtpZihsPT09MyYmZS5za2lwKDEpLGUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCksZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKSxlLnNraXAoMSksZS5yZWFkQml0cygxKSl7Y29uc3QgaT1sIT09Mz84OjEyO2ZvcihsZXQgdT0wO3U8aTt1KyspaWYoZS5yZWFkQml0cygxKSl7Y29uc3QgaD11PDY/MTY6NjQ7bGV0IGM9OCxwPTg7Zm9yKGxldCBfPTA7XzxoO18rKyl7aWYocCE9PTApe2NvbnN0IGc9ZS5yZWFkRXhwR29sb21iU2lnbmVkKCk7cD0oYytnKzI1NiklMjU2fWM9cD09PTA/YzpwfX19fWUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCk7Y29uc3QgYT1lLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpO2lmKGE9PT0wKWUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCk7ZWxzZSBpZihhPT09MSl7ZS5za2lwKDEpLGUucmVhZEV4cEdvbG9tYlNpZ25lZCgpLGUucmVhZEV4cEdvbG9tYlNpZ25lZCgpO2NvbnN0IGw9ZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKTtmb3IobGV0IGY9MDtmPGw7ZisrKWUucmVhZEV4cEdvbG9tYlNpZ25lZCgpfWUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCksZS5za2lwKDEpLGUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCksZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKSxlLnJlYWRCaXRzKDEpPT09MCYmZS5za2lwKDEpLGUuc2tpcCgxKSxlLnJlYWRCaXRzKDEpJiYoZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKSxlLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpLGUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCksZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKSk7bGV0IGQ7aWYoZS5yZWFkQml0cygxKSl7bGV0IGY9ZnVuY3Rpb24oYyl7Y29uc3QgcD1jLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpO2Muc2tpcCg0KSxjLnNraXAoNCk7Zm9yKGxldCB4PTA7eDw9cDt4KyspYy5yZWFkRXhwR29sb21iVW5zaWduZWQoKSxjLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpLGMuc2tpcCgxKTtjLnNraXAoNSk7Y29uc3QgXz1jLnJlYWRCaXRzKDUpLGc9Yy5yZWFkQml0cyg1KSxBPWMucmVhZEJpdHMoNSk7cmV0dXJue2NwYl9yZW1vdmFsX2RlbGF5X2xlbmd0aF9taW51czE6XyxkcGJfb3V0cHV0X2RlbGF5X2xlbmd0aF9taW51czE6Zyx0aW1lX29mZnNldF9sZW5ndGg6QX19O2UucmVhZEJpdHMoMSkmJmUucmVhZEJpdHMoOCk9PT0yNTUmJihlLnNraXAoMTYpLGUuc2tpcCgxNikpLGUucmVhZEJpdHMoMSkmJmUuc2tpcCgxKSxlLnJlYWRCaXRzKDEpJiYoZS5za2lwKDMpLGUuc2tpcCgxKSxlLnJlYWRCaXRzKDEpJiZlLnNraXAoMjQpKSxlLnJlYWRCaXRzKDEpJiYoZS5yZWFkRXhwR29sb21iVW5zaWduZWQoKSxlLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpKTtjb25zdCBsPWUucmVhZEJpdHMoMSk/e251bV91bml0c19pbl90aWNrOmUucmVhZEJpdHMoMzIpLHRpbWVfc2NhbGU6ZS5yZWFkQml0cygzMiksZml4ZWRfZnJhbWVfcmF0ZV9mbGFnOmUucmVhZEJpdHMoMSl9OnZvaWQgMCxpPWUucmVhZEJpdHMoMSk/ZihlKTp2b2lkIDAsdT1lLnJlYWRCaXRzKDEpP2YoZSk6dm9pZCAwOyhpfHx1KSYmZS5za2lwKDEpO2NvbnN0IGg9ZS5yZWFkQml0cygxKTtkPXt0aW1pbmdfaW5mbzpsLG5hbF9ocmRfcGFyYW1ldGVyczppLHZjbF9ocmRfcGFyYW1ldGVyczp1LHBpY19zdHJ1Y3RfcHJlc2VudF9mbGFnOmh9fXRoaXMuc3BzLnNldChvLHt2dWlfcGFyYW1ldGVyczpkfSl9Y29sbGVjdEgyNjVTUFModCl7fWNvbGxlY3RIMjY0UFBTKHQpe2NvbnN0IGU9bmV3IHcodCkscz1lLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpO2lmKHM+MjU1fHxzPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHBpY19wYXJhbWV0ZXJfc2V0X2lkIik7Y29uc3Qgcj1lLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpO3RoaXMucHBzLnNldChzLHtzZXFfcGFyYW1ldGVyX3NldF9pZDpyfSl9Y29sbGVjdEgyNjVQUFModCl7fWZpbmRBY3RpdmVTUFModCl7Y29uc3QgZT1uZXcgdyh0KTtlLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpLGUucmVhZEV4cEdvbG9tYlVuc2lnbmVkKCk7Y29uc3Qgcz1lLnJlYWRFeHBHb2xvbWJVbnNpZ25lZCgpLHI9dGhpcy5wcHMuZ2V0KHMpO2lmKHIpe2NvbnN0IG89dGhpcy5zcHMuZ2V0KHIuc2VxX3BhcmFtZXRlcl9zZXRfaWQpO2lmKG8pe3RoaXMuYWN0aXZlU1BTPW87cmV0dXJufX10aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHRoZSBhY3RpdmUgU1BTIil9fWNvbnN0IFM9bmV3IFY7ZnVuY3Rpb24gRyhuLHQpe2Zvcig7dDxuLmJ5dGVMZW5ndGgtNDspe2lmKG5bdF09PT0wJiZuW3QrMV09PT0wJiYoblt0KzJdPT09MXx8blt0KzJdPT09MCYmblt0KzNdPT09MSkpcmV0dXJuIHQ7dCs9MX1yZXR1cm4tMX1mdW5jdGlvbiBVKG4pe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkobi5ieXRlTGVuZ3RoKTtsZXQgZT0wLHM9MDtmb3IobGV0IHI9MjtyPG4uYnl0ZUxlbmd0aDtyKyspbltyXT09PTMmJm5bci0xXT09PTAmJm5bci0yXT09PTAmJih0LnNldChuLnN1YmFycmF5KHMsciksZSksZSs9ci1zLHM9cisxKTtyZXR1cm4gczxuLmJ5dGVMZW5ndGgmJnQuc2V0KG4uc3ViYXJyYXkocyksZSksdH1mdW5jdGlvbiBZKG4sdCl7bGV0IGU9MDtjb25zdCBzPXQ9PT0iSDI2NCI/MToyLHI9W107Zm9yKDtlPG4uYnl0ZUxlbmd0aC00Oyl7Y29uc3Qgbz1HKG4sZSk7aWYobz49ZSl7Y29uc3QgYT1uW28rMl09PT0xPzM6NCxkPUcobixvK2Ercyk7aWYoZD5vKXIucHVzaChuLnN1YmFycmF5KG8sZCkpLGU9ZDtlbHNle3IucHVzaChuLnN1YmFycmF5KG8pKTticmVha319ZWxzZSBicmVha31yZXR1cm4gcn1mdW5jdGlvbiBYKG4sdCl7bGV0IGU9ITA7cmV0dXJuIFkobix0KS5maWx0ZXIocz0+e2NvbnN0IHI9c1syXT09PTE/Mzo0LG89dD09PSJIMjY0Ij8xOjIsYT1zW3JdLGQ9dD09PSJIMjY0Ij9hJjMxOmE+PjEmNjM7aWYoZSlzd2l0Y2goZCl7Y2FzZSBtLlBQU19IMjY0OmNhc2UgbS5QU
90FNfSDI2NTpTLmNvbGxlY3RQUFMoVShzLnN1YmFycmF5KHIrbykpKTticmVhaztjYXNlIG0uU1BTX0gyNjQ6Y2FzZSBtLlNQU19IMjY1OlMuY29sbGVjdFNQUyhVKHMuc3ViYXJyYXkocitvKSkpO2JyZWFrO2Nhc2UgbS5TTElDRV9JRFI6Y2FzZSBtLlNMSUNFX05PTl9JRFI6Y2FzZSBtLlNMSUNFX1BBUlRJVElPTl9BOnRyeXtTLmZpbmRBY3RpdmVTUFMoVShzLnN1YmFycmF5KHIrbykpKSxlPSExfWNhdGNoKGwpe2NvbnNvbGUuaW5mbygiRmFpbGVkIHRvIGZpbmQgYWN0aXZlIFNQUy4gV2lsbCBub3QgYmUgYWJsZSB0byBleHRyYWN0IFBJQyB0aW1pbmcgbWV0YWRhdGEiKX1icmVha31yZXR1cm5bbS5TRUlfSDI2NCxtLlNFSV9IMjY1X1BSRUZJWCxtLlNFSV9IMjY1X1NVRkZJWF0uaW5jbHVkZXMoZCl9KX1mdW5jdGlvbiAkKG4pe2xldCB0PTAsZT0wO2Zvcig7bltlXT09PTI1NTspdCs9MjU1LGUrKzt0Kz1uW2VdLGUrKztsZXQgcz0wO2Zvcig7bltlXT09PTI1NTspcys9MjU1LGUrKztyZXR1cm4gcys9bltlXSxlKysse3R5cGU6dCxjb250ZW50Om4uc3ViYXJyYXkoZSxlK3MpfX1mdW5jdGlvbiBKKG4pe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoVChxKSksZT1uZXcgVWludDhBcnJheShUKGopKSxzPW5ldyBVaW50OEFycmF5KFQoTCkpO3JldHVybiB0LmV2ZXJ5KChyLG8pPT5yPT09bltvXSk/RS5USU1FQ09ERTplLmV2ZXJ5KChyLG8pPT5yPT09bltvXSk/RS5MRUdBQ1k6cy5ldmVyeSgocixvKT0+cj09PW5bb10pP0UuTkVXOkUuT1RIRVJ9ZnVuY3Rpb24gSyhuLHQpe2xldCBlPTA7bi51dWlkPXQuc3ViYXJyYXkoZSxlKzE2KSxlKz0xNjtjb25zdCBzPUoobi51dWlkKSxyPXQuc3ViYXJyYXkoZSk7c3dpdGNoKHMpe2Nhc2UgRS5MRUdBQ1k6Y2FzZSBFLk9USEVSOm4udW5yZWdpc3RlcmVkPXI7YnJlYWs7Y2FzZSBFLlRJTUVDT0RFOm4udGltZWNvZGU9TyhyKTticmVhaztjYXNlIEUuTkVXOntsZXQgbz0wO2NvbnN0IGE9QyhEYXRlLm5vdygpKS5sZW5ndGgsZD1yLnN1YmFycmF5KG8sYSk7bys9YTtjb25zdCBsPXIuc3ViYXJyYXkobyk7bi50aW1lY29kZT1PKGQpLG4udW5yZWdpc3RlcmVkPWw7YnJlYWt9fX1mdW5jdGlvbiBPKG4pe2NvbnN0IHQ9bi5yZWR1Y2UoKG8sYSk9PihvPDxCaWdJbnQoOCkpK0JpZ0ludChhKSxCaWdJbnQoMCkpLGU9TnVtYmVyKHQpLHM9bmV3IERhdGUoZSk7cmV0dXJuIG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShzLnRvSVNPU3RyaW5nKCkpfWZ1bmN0aW9uIFoobix0KXt2YXIgZixpLHUsaCxjO2lmKCFTLmFjdGl2ZVNQUyl7Y29uc29sZS53YXJuKCJDYW5ub3QgZmluZCB0aGUgYWN0aXZlIFNQUyIpO3JldHVybn1jb25zdCBlPShmPVMuYWN0aXZlU1BTLnZ1aV9wYXJhbWV0ZXJzLm5hbF9ocmRfcGFyYW1ldGVycykhPW51bGw/ZjpTLmFjdGl2ZVNQUy52dWlfcGFyYW1ldGVycy52Y2xfaHJkX3BhcmFtZXRlcnMscz17Y3BiX2RwYl9kZWxheXNfcHJlc2VudF9mbGFnOmU/MTowLGNwYl9yZW1vdmFsX2RlbGF5X2xlbmd0aF9taW51czE6KGk9ZT09bnVsbD92b2lkIDA6ZS5jcGJfcmVtb3ZhbF9kZWxheV9sZW5ndGhfbWludXMxKSE9bnVsbD9pOjIzLGRwYl9vdXRwdXRfZGVsYXlfbGVuZ3RoX21pbnVzMToodT1lPT1udWxsP3ZvaWQgMDplLmRwYl9vdXRwdXRfZGVsYXlfbGVuZ3RoX21pbnVzMSkhPW51bGw/dToyMyx0aW1lX29mZnNldF9sZW5ndGg6ZT8oaD1lLnRpbWVfb2Zmc2V0X2xlbmd0aCkhPW51bGw/aDoyNDp2b2lkIDAscGljX3N0cnVjdF9wcmVzZW50X2ZsYWc6KGM9Uy5hY3RpdmVTUFMudnVpX3BhcmFtZXRlcnMucGljX3N0cnVjdF9wcmVzZW50X2ZsYWcpIT1udWxsP2M6MH07aWYoIXMucGljX3N0cnVjdF9wcmVzZW50X2ZsYWcpe2NvbnNvbGUud2FybigicGljX3N0cnVjdF9wcmVzZW50X2ZsYWcgaXMgbm90IHByZXNlbnQiKTtyZXR1cm59Y29uc3Qgcj1uZXcgdyh0KTtzLmNwYl9kcGJfZGVsYXlzX3ByZXNlbnRfZmxhZyYmKHIuc2tpcChzLmNwYl9yZW1vdmFsX2RlbGF5X2xlbmd0aF9taW51czErMSksci5za2lwKHMuZHBiX291dHB1dF9kZWxheV9sZW5ndGhfbWludXMxKzEpKTtjb25zdCBvPVsxLDEsMSwyLDIsMywzLDIsM10sYT1yLnJlYWRCaXRzKDQpO2lmKGE+PW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBwaWNfc3RydWN0Iik7Y29uc3QgZD1vW2FdLGw9W107Zm9yKGxldCBwPTA7cDxkO3ArKylpZihyLnJlYWRCaXRzKDEpKXtjb25zdCBnPXt9O3Iuc2tpcCgyKSxyLnNraXAoMSksci5za2lwKDUpO2NvbnN0IEE9ci5yZWFkQml0cygxKTtpZihyLnNraXAoMiksZy5uX2ZyYW1lcz1yLnJlYWRCaXRzKDgpLEE/KGcuc2Vjb25kc192YWx1ZT1yLnJlYWRCaXRzKDYpLGcubWludXRlc192YWx1ZT1yLnJlYWRCaXRzKDYpLGcuaG91cnNfdmFsdWU9ci5yZWFkQml0cyg1KSk6ci5yZWFkQml0cygxKSYmKGcuc2Vjb25kc192YWx1ZT1yLnJlYWRCaXRzKDYpLHIucmVhZEJpdHMoMSkmJihnLm1pbnV0ZXNfdmFsdWU9ci5yZWFkQml0cyg2KSxyLnJlYWRCaXRzKDEpJiYoZy5ob3Vyc192YWx1ZT1yLnJlYWRCaXRzKDUpKSkpLHMudGltZV9vZmZzZXRfbGVuZ3RoKXRyeXtnLnRpbWVfb2Zmc2V0PXIucmVhZEJpdHMocy50aW1lX29mZnNldF9sZW5ndGgpfWNhdGNoKHgpe2NvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byByZWFkIHRpbWVfb2Zmc2V0Iix4KSxnLnRpbWVfb2Zmc2V0PTB9ZWxzZSBnLnRpbWVfb2Zmc2V0PTA7bC5wdXNoKGcpfW4uc2VpUGljVGltaW5nVGltZUNvZGVBcnJheT1sfWZ1bmN0aW9uIFEobix0KXtpZih0IT09IkgyNjQiJiZ0IT09IkgyNjUiKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgY29kZWMgIi5jb25jYXQodCkpO2NvbnN0IGU9e307cmV0dXJuIFMuY29kZWM9dCxYKG5ldyBVaW50OEFycmF5KG4uZGF0YSksdCkuZm9yRWFjaChzPT57Y29uc3Qgcj1zWzJdPT09MT8zOjQsbz10PT09IkgyNjQiPzE6MixhPVUocy5zdWJhcnJheShyK28pKSxkPSQoYSk7c3dpdGNoKGQudHlwZSl7Y2FzZSBSLlBJQ19USU1JTkc6WihlLGQuY29udGVudCk7YnJlYWs7Y2FzZSBSLlVTRVJfREFUQV9VTlJFR0lTVEVSRUQ6SyhlLGQuY29udGVudCk7YnJlYWt9fSksZX1mdW5jdGlvbiBlZShuKXtyZXR1cm4vXlswLTlhLWZBLUZdezh9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezR9LVswLTlhLWZBLUZdezEyfSQvLnRlc3Qobil9ZnVuY3Rpb24gVChuKXtyZXR1cm4gbi5yZXBsYWNlKC8tL2csIiIpLm1hdGNoKC8uezEsMn0vZykubWFwKHQ9PnBhcnNlSW50KHQsMTYpKX1mdW5jdGlvbiB0ZShuLHQsZSl7Y29uc3Qgcz1uZXcgVWludDhBcnJheShUKG4pKSxyPUMoZSksbz1uZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkodCkpLGE9bmV3IFVpbnQ4QXJyYXkocy5sZW5ndGgrci5sZW5ndGgrby5sZW5ndGgpO3JldHVybiBhLnNldChzKSxhLnNldChyLHMubGVuZ3RoKSxhLnNldChvLHIubGVuZ3RoK3MubGVuZ3RoKSxhfWZ1bmN0aW9uIG5lKG4pe2NvbnN0IHQ9W10sZT1NYXRoLmZsb29yKG4uYnl0ZUxlbmd0aC8yNTUpLHM9bi5ieXRlTGVuZ3RoJTI1NTtmb3IobGV0IHI9MDtyPGU7cisrKXQucHVzaCgyNTUpO3JldHVybiB0LnB1c2gocyksbmV3IFVpbnQ4QXJyYXkoWzUsLi4udF0pfWZ1bmN0aW9uIHJlKG4pe2NvbnN0IHQ9W107Zm9yKGxldCBlPTA7ZTxuLmJ5dGVMZW5ndGg7ZSsrKWUrMjxuLmJ5dGVMZW5ndGgmJlswLDEsMiwzXS5pbmNsdWRlcyhuW2UrMl0pJiZuW2VdPT09MCYmbltlKzFdPT09MD8odC5wdXNoKG5bZV0pLHQucHVzaChuW2UrMV0pLGUrPTIsdC5wdXNoKDMpKTp0LnB1c2gobltlXSk7cmV0dXJuIHQucHVzaCgxMjgpLG5ldyBVaW50OEFycmF5KHQpfWZ1bmN0aW9uIEMobil7Y29uc3QgdD1bXTtpZighaXNOYU4obikpe2NvbnN0IGU9QmlnSW50KG4pO2ZvcihsZXQgcz0wO3M8TWF0aC5jZWlsKE1hdGguZmxvb3IoTWF0aC5sb2cyKG5ldyBOdW1iZXIobikpKzEpLzgpO3MrKyl0LnVuc2hpZnQobmV3IE51bWJlcihlPj5CaWdJbnQoOCpzKSZCaWdJbnQoMjU1KSkpfXJldHVybi
90BuZXcgVWludDhBcnJheSh0KX1mdW5jdGlvbiBzZSh7dXVpZDpuLHBheWxvYWQ6dCx0aW1lY29kZTplfSl7Y29uc3Qgcz1bMCwwLDAsMV0scj1bMTAyXSxvPXRlKG4sdCxlKSxhPW5lKG8pLGQ9cmUobyksbD1uZXcgVWludDhBcnJheShzLmxlbmd0aCtyLmxlbmd0aCthLmxlbmd0aCtkLmxlbmd0aCk7cmV0dXJuIGwuc2V0KHMpLGwuc2V0KHIscy5sZW5ndGgpLGwuc2V0KGEscy5sZW5ndGgrci5sZW5ndGgpLGwuc2V0KGQscy5sZW5ndGgrci5sZW5ndGgrYS5sZW5ndGgpLGx9ZnVuY3Rpb24gaWUoe3V1aWQ6bixwYXlsb2FkOnQsdGltZWNvZGU6ZX0scyl7aWYobj09PSIifHx0PT09IiIpdGhyb3cgbmV3IEVycm9yKCJ1dWlkIGFuZCBwYXlsb2FkIGNhbm5vdCBiZSBlbXB0eSIpO2VlKG4pfHwoY29uc29sZS53YXJuKCJJbnZhbGlkIFVVSUQuIFVzaW5nIGRlZmF1bHQgVVVJRC4iKSxuPUwsZT1EYXRlLm5vdygpKTtjb25zdCByPXNlKHt1dWlkOm4scGF5bG9hZDp0LHRpbWVjb2RlOmV9KSxvPW5ldyBEYXRhVmlldyhzLmRhdGEpLGE9bmV3IEFycmF5QnVmZmVyKHMuZGF0YS5ieXRlTGVuZ3RoK3IuYnl0ZUxlbmd0aCksZD1uZXcgRGF0YVZpZXcoYSk7Zm9yKGxldCBsPTA7bDxzLmRhdGEuYnl0ZUxlbmd0aDtsKyspZC5zZXRVaW50OChsLG8uZ2V0VWludDgobCkpO2ZvcihsZXQgbD0wO2w8ci5ieXRlTGVuZ3RoO2wrKylkLnNldFVpbnQ4KHMuZGF0YS5ieXRlTGVuZ3RoK2wscltsXSk7cy5kYXRhPWF9RC5nZXQoIlRyYW5zZm9ybVdvcmtlciIpLnNldExldmVsKEQuREVCVUcpO2NvbnN0IG9lPTJlMyxiPVtdO2xldCB5PSIiLFA9e307Y29uc3Qgdj17fTtsZXQgST1bXTtmdW5jdGlvbiBIKG4pe3JldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtzdGFydCgpe30sZmx1c2goKXt9LGFzeW5jIHRyYW5zZm9ybSh0LGUpe3ZhciBzLHI7aWYodCBpbnN0YW5jZW9mIFJUQ0VuY29kZWRWaWRlb0ZyYW1lKXtjb25zdCBvPSgocz1QW3QuZ2V0TWV0YWRhdGEoKS5wYXlsb2FkVHlwZV0pPT1udWxsP3ZvaWQgMDpzLnRvVXBwZXJDYXNlKCkpfHwoeT09bnVsbD92b2lkIDA6eS50b1VwcGVyQ2FzZSgpKTtpZihvPT09IkgyNjQiKXtjb25zdCBhPVEodCxvKTsoYS50aW1lY29kZXx8YS51bnJlZ2lzdGVyZWR8fCgocj1hLnNlaVBpY1RpbWluZ1RpbWVDb2RlQXJyYXkpPT1udWxsP3ZvaWQgMDpyLmxlbmd0aCk+MCkmJnNlbGYucG9zdE1lc3NhZ2Uoe2V2ZW50OiJtZXRhZGF0YSIsbWlkOm4sbWV0YWRhdGE6YX0pfXNlbGYucG9zdE1lc3NhZ2Uoe2V2ZW50OiJjb21wbGV0ZSIsZnJhbWU6e3R5cGU6dC50eXBlLHRpbWVzdGFtcDp0LnRpbWVzdGFtcCxkYXRhOnQuZGF0YX19KX1lLmVucXVldWUodCl9fSl9ZnVuY3Rpb24gTSgpe09iamVjdC5rZXlzKHYpLnNvcnQoKS5qb2luKCk9PT1JLnNvcnQoKS5qb2luKCkmJihiLnNoaWZ0KCksST1bXSl9ZnVuY3Rpb24gYWUobil7Y29uc3QgdD1uZXcgRGF0ZSgpLmdldFRpbWUoKTt2W25dPXQsT2JqZWN0LmtleXModikuZmlsdGVyKHM9PnQtdltzXT5vZSkuZm9yRWFjaChzPT57ZGVsZXRlIHZbc10sZGVsZXRlIElbc119KSxNKCl9ZnVuY3Rpb24gTigpe3JldHVybiBuZXcgVHJhbnNmb3JtU3RyZWFtKHtzdGFydCgpe30sZmx1c2goKXt9LGFzeW5jIHRyYW5zZm9ybShuLHQpe2lmKG4gaW5zdGFuY2VvZiBSVENFbmNvZGVkVmlkZW9GcmFtZSl7Y29uc3Qgcz1uLmdldE1ldGFkYXRhKCkuc3luY2hyb25pemF0aW9uU291cmNlO2lmKGFlKHMpLCFJLmluY2x1ZGVzKHMpJiZiLmxlbmd0aCl0cnl7aWYoIS8oaDI2WzRdKS8udGVzdCh5KSl0aHJvdyBuZXcgRXJyb3IoIlNlbmRpbmcgbWV0YWRhdGEgaXMgbm90IHN1cHBvcnRlZCB3aXRoIGFueSBvdGhlciBjb2RlYyBvdGhlciB0aGFuIEguMjY0Iik7YlswXS51dWlkPT09TCYmKGJbMF0udGltZWNvZGU9RGF0ZS5ub3coKSksaWUoYlswXSxuKSxJLnB1c2gocyl9Y2F0Y2gocil7Y29uc29sZS5lcnJvcihyKX1maW5hbGx5e00oKX19dC5lbnF1ZXVlKG4pfX0pfWZ1bmN0aW9uIGsoe3JlYWRhYmxlOm4sd3JpdGFibGU6dH0sZSl7bi5waXBlVGhyb3VnaChlKS5waXBlVG8odCl9YWRkRXZlbnRMaXN0ZW5lcigicnRjdHJhbnNmb3JtIixuPT57bGV0IHQ7aWYobi50cmFuc2Zvcm1lci5vcHRpb25zLm5hbWU9PT0ic2VuZGVyVHJhbnNmb3JtIil5PW4udHJhbnNmb3JtZXIub3B0aW9ucy5jb2RlYyx0PU4oKTtlbHNlIGlmKG4udHJhbnNmb3JtZXIub3B0aW9ucy5uYW1lPT09InJlY2VpdmVyVHJhbnNmb3JtIilQPW4udHJhbnNmb3JtZXIub3B0aW9ucy5wYXlsb2FkVHlwZUNvZGVjfHx7fSx5PW4udHJhbnNmb3JtZXIub3B0aW9ucy5jb2RlY3x8IiIsdD1IKG4udHJhbnNmb3JtZXIub3B0aW9ucy5taWQpO2Vsc2UgcmV0dXJuO2sobi50cmFuc2Zvcm1lcix0KX0pLGFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG49Pntjb25zdHthY3Rpb246dH09bi5kYXRhO3N3aXRjaC
90h0KXtjYXNlImluc2VydGFibGUtc3RyZWFtcy1zZW5kZXIiOnk9bi5kYXRhLmNvZGVjLGsobi5kYXRhLE4oKSk7YnJlYWs7Y2FzZSJpbnNlcnRhYmxlLXN0cmVhbXMtcmVjZWl2ZXIiOlA9bi5kYXRhLnBheWxvYWRUeXBlQ29kZWN8fHt9LHk9bi5kYXRhLmNvZGVjfHwiIixrKG4uZGF0YSxIKG4uZGF0YS5taWQpKTticmVhaztjYXNlIm1ldGFkYXRhLXNlaS11c2VyLWRhdGEtdW5yZWdpc3RlcmVkIjpiLnB1c2goe3V1aWQ6bi5kYXRhLnV1aWQscGF5bG9hZDpuLmRhdGEucGF5bG9hZH0pO2JyZWFrfX0pfSkoKTsK",KQ=t=>Uint8Array.from(atob(t),e=>e.charCodeAt(0)),OR=typeof self<"u"&&self.Blob&&new Blob([KQ(c5)],{type:"text/javascript;charset=utf-8"});function D0(t){let e;try{if(e=OR&&(self.URL||self.webkitURL).createObjectURL(OR),!e)throw"";const n=new Worker(e,{name:t==null?void 0:t.name});return n.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),n}catch{return new Worker("data:text/javascript;base64,"+c5,{name:t==null?void 0:t.name})}finally{e&&(self.URL||self.webkitURL).revokeObjectURL(e)}}const Wn=Ni.get("Publish"),Qb={mediaStream:null,bandwidth:0,metadata:!1,disableVideo:!1,disableAudio:!1,codec:Sr.H264,simulcast:!1,scalabilityMode:null,peerConfig:{autoInitStats:!0,statsIntervalMs:1e3}};class XQ extends s5{constructor(e,n,a=!0){e&&Wn.warn("The streamName property has been deprecated. In a future release, this will be removed. Please do not rely on this value. Instead, set via token generator"),super(null,n,Wn,a)}async connect(e=Qb){const n=Ht.object({sourceId:Ht.string(),stereo:Ht.boolean(),dtx:Ht.boolean(),absCaptureTime:Ht.boolean(),dependencyDescriptor:Ht.boolean(),mediaStream:Ht.alternatives().try(Ht.array().items(Ht.object()),Ht.object()),bandwidth:Ht.number(),metadata:Ht.boolean(),disableVideo:Ht.boolean(),disableAudio:Ht.boolean(),codec:Ht.string().valid(...Object.values(Sr)),simulcast:Ht.boolean(),scalabilityMode:Ht.string(),peerConfig:Ht.object(),record:Ht.boolean(),events:Ht.array().items(Ht.string().valid("active","inactive","viewercount")),priority:Ht.number()}),{error:a,value:o}=n.validate(e);a&&Wn.warn(a,o),this.options=or(Je(Je({},Qb),e),{peerConfig:Je(Je({},Qb.peerConfig),e.peerConfig),setSDPToPeer:!1}),this.options.metadata=this.options.metadata&&this.options.codec===Sr.H264&&!this.options.disableVideo,await this.initConnection({migrate:!1})}async reconnect(e){var n,a;this.options.mediaStream=(a=(n=this.webRTCPeer)==null?void 0:n.getTracks())!=null?a:this.options.mediaStream,super.reconnect(e)}async replaceConnection(){var e,n;Wn.info("Migrating current connection"),this.options.mediaStream=(n=(e=this.webRTCPeer)==null?void 0:e.getTracks())!=null?n:this.options.mediaStream,await this.initConnection({migrate:!0})}async record(){var e;this.recordingAvailable?(this.options.record=!0,await((e=this.signaling)==null?void 0:e.cmd("record")),Wn.info("Broadcaster start recording")):Wn.error("Record not available")}async unrecord(){var e;this.recordingAvailable?(this.options.record=!1,await((e=this.signaling)==null?void 0:e.cmd("unrecord")),Wn.info("Broadcaster stop recording")):Wn.error("Unrecord not available")}stop(){var e;super.stop(),(e=this.worker)==null||e.terminate(),this.worker=null}async initConnection(e){var n,a;Wn.debug("Broadcast option values: ",this.options),this.stopReconnection=!1;let o;if(!this.options.mediaStream)throw Wn.error("Error while broadcasting. MediaStream required"),new Error("MediaStream required");if(!e.migrate&&this.isActive())throw Wn.warn("Broadcast currently working"),new Error("Broadcast currently working");let s;try{s=await this.tokenGenerator(),this.options.peerConfig.iceServers=s==null?void 0:s.iceServers,this.options.peerConfig.encodedInsertableStreams=this.options.metadata}catch(w){throw Wn.error("Error generating token."),w instanceof qp&&(w.status===401||!this.autoReconnect?this.stopReconnection=!0:this.reconnect()),w}if(!s)throw Wn.error("Error while broadcasting. Publisher data required"),new Error("Publisher data required");const u=i5(s.jwt);if(this.streamName=u.millicast.streamName,this.recordingAvailable=u[YQ.atob("bWlsbGljYXN0")].record,this.options.record&&!this.recordingAvailable)throw Wn.error("Error while broadcasting. Record option detected but recording is not available"),new Error("Record option detected but recording is not available");const c=new a5({streamName:this.streamName,url:"".concat(s.urls[0],"?token=").concat(s.jwt)}),p=e.migrate?new vc:this.webRTCPeer;await p.createRTCPeer(this.options.peerConfig,hp.Publisher),(n=this.stopReemitingWebRTCPeerInstanceEvents)==null||n.call(this),(a=this.stopReemitingSignalingInstanceEvents)==null||a.call(this),this.stopReemitingWebRTCPeerInstanceEvents=Hp(p,this,[Er.connectionStateChange]),this.stopReemitingSignalingInstanceEvents=Hp(c,this,[za.broadcastEvent]);const d=p.getRTCLocalSDP(this.options),m=c.connect();o=await Promise.all([d,m]);const f=o[0];this.options.metadata&&(this.worker||(this.worker=new D0),this.getRTCPeerConnection().getSenders().forEac
90h(w=>{if(l5)w.transform=new RTCRtpScriptTransform(this.worker,{name:"senderTransform",codec:this.options.codec});else if(I0){const{readable:k,writable:T}=w.createEncodedStreams();this.worker.postMessage({action:"insertable-streams-sender",codec:this.options.codec,readable:k,writable:T},[k,T])}}));let b=this.signaling;this.signaling=c;const v=this.signaling.publish(f,this.options),y=p.peer.setLocalDescription(p.sessionDescription);o=await Promise.all([v,y]);let g=o[0];!this.options.disableVideo&&this.options.bandwidth>0&&(g=p.updateBandwidthRestriction(g,this.options.bandwidth)),await p.setRTCRemoteSDP(g),Wn.info("Broadcasting to streamName: ",this.streamName);let S=this.webRTCPeer;this.webRTCPeer=p,this.setReconnect(),e.migrate&&this.webRTCPeer.on(Er.connectionStateChange,w=>{var k,T;["connected","disconnected","failed","closed"].includes(w)&&((k=b==null?void 0:b.close)==null||k.call(b),(T=S==null?void 0:S.closeRTCPeer)==null||T.call(S),b=S=null)})}sendMetadata(e,n=AQ){var a;if((a=this.options)!=null&&a.metadata&&this.worker)this.worker.postMessage({action:"metadata-sei-user-data-unregistered",uuid:n,payload:e});else{let o="Could not send metadata due to:";this.options?this.options.metadata?this.worker||(o+=` 91- Stream not being published.`):(o+=` 92- Metadata option is not enabled.`,this.options.codec!==Sr.H264&&(o+=` 93- Incompatible codec. Only H264 available.`),this.options.disableVideo&&(o+=` 94- Video disabled.`)):o+=` 95- Stream not being published.`,Wn.warn(o)}}}function IR(t){if(!t)return new Uint8Array;const e=t.length,n=new Uint8Array(e/2);for(let a=0;a<e;a+=2)n[a/2]=parseInt(t.substr(a,2),16);return n}function DR(t,e,n){if(Object.prototype.hasOwnProperty.call(t,n)&&Object.prototype.hasOwnProperty.call(e,n)){const a=t[n];t[n]=e[n],e[n]=a}else console.error('One or both objects do not have the property "'.concat(n,'"'))}function n_(t,e,n,a){return new(n||(n=Promise))(function(o,s){function u(d){try{p(a.next(d))}catch(m){s(m)}}function c(d){try{p(a.throw(d))}catch(m){s(m)}}function p(d){var m;d.done?o(d.value):(m=d.value,m instanceof n?m:new n(function(f){f(m)})).then(u,c)}p((a=a.apply(t,e||[])).next())})}const hr=r_;function r_(t,e){const n=o_();return(r_=function(a,o){return n[a-=257]})(t,e)}var ev;(function(){const t=r_,e=o_();for(;;)try{if(parseInt(t(266))/1*(-parseInt(t(261))/2)+parseInt(t(258))/3*(-parseInt(t(264))/4)+-parseInt(t(267))/5*(parseInt(t(274))/6)+parseInt(t(260))/7*(parseInt(t(268))/8)+parseInt(t(270))/9+-parseInt(t(277))/10+parseInt(t(263))/11===303379)break;e.push(e.shift())}catch{e.push(e.shift())}})();const a_=navigator&&navigator[hr(276)]||"",JQ=navigator&&navigator.vendor||"",QQ=!!(window!=null&&window[hr(273)]),Mm=a_[hr(278)](hr(257)),i_=!Mm&&JQ[hr(278)](hr(259)),u5=!Mm&&!i_&&a_.includes(hr(272)),eee=!Mm&&!i_&&!u5&&a_[hr(278)](hr(275)),tv=((ev=navigator==null?void 0:navigator[hr(262)])===null||ev===void 0?void 0:ev[hr(271)])||(navigator==null?void 0:navigator[hr(271)])||"";function o_(){const t=["2403660vsbxKa","includes","Firefox","653511krAkNS","Apple","63eEorAu","2iQvmqu","userAgentData","13393182jRLBxS","4fTXBZP","Win32","74923SyWRbn","1345hVdNEb","21688LwGppn","Windows","132498ZoOcLo","platform","Edg","RTCRtpScriptTransform","9372dNMWWf","Chrome","userAgent"];return(o_=function(){return t})()}const Wi={supportsRtpScriptTransform:QQ,isFirefox:Mm,isSafari:i_,isEdge:u5,isChrome:eee,platform:tv,isWindows:tv===hr(269)||tv===hr(265)},K=s_;function s_(t,e){const n=l_();return(s_=function(a,o){return n[a-=185]})(t,e)}(function(){const t=s_,e=l_();for(;;)try{if(-parseInt(t(380))/1+-parseInt(t(354))/2+-parseInt(t(464))/3*(parseInt(t(486))/4)+-parseInt(t(253))/5+parseInt(t(377))/6+parseInt(t(321))/7*(-parseInt(t(285))/8)+-parseInt(t(444))/9*(-parseInt(t(279))/10)===657542)break;e.push(e.shift())}catch{e.push(e.shift())}})();const tee=Wi[K(496)];function L0(t,e){const n=K;let a=new Uint8Array((0|t.byteLength)+(0|e[n(442)]));return a[n(311)](t,0),a[n(311)](e,0|t.byteLength),a}const nee=(t,e,n,a)=>{const o=K,s=a[o(203)]||1;e*=s,n*=s;const u=(d=t)instanceof ArrayBuffer?d:d[K(492)],c=(t[o(447)]||0)+t[o(442)],p=(t[o(447)]||0)+e;var d;let m=Math[o(389)](0,Math[o(487)](p,c)),f=Math[o(487)](m+Math[o(389)](n,0),c);return m/=s,f/=s,new a(u,m,f-m)};function l_(){const t=["[MSE] source buffer error","ManagedMediaSource","BYTES_PER_ELEMENT","types","ready","valid","Num frames in chunk: ","readBits","getTrackID","mvhd","parsePPS","encrypted","dependsOn","payload","len","moov","V
95MHD","mse","volume","h264","setUint16","tfdt","nextDts","avc1.","audioSampleAuxInfo","message","endMSE","width","hdlr","warn","traf","readBoolean","shift","mseReady","revokeObjectURL","smhd","dts","indexOf","<PROTECTINFO>","webkitsourceclose","onMSEClose","[H264Parser] IDR without SPS/PPS, not suitable for recovery",'VALUE="',"createObjectURL","</KID>","mdhd","SMHD","getFramePayload","tkhd","flush","clRtcDrmDebugLog","getBits","2598770DahMdb","dbgQueue","dispatch","DINF","http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader","isReady","sps","nalus","endOfStream","toString","UNKNOWN","Opus","minf","onError","stco","STSC","buffered","</KIDS>","initSegment","dinf","org.w3.clearkey","mp4track","keyFrame","units","mseEnded","videoSampleAuxInfo","41695210Plpuuo","splice","ended","bitLength","seq","url","8YyaFaO","com.apple.fps","[MSE] error: ","bitsAvailable","</WRMHEADER>","trex","setData","buffer error","slice","length","readUByte","mp4a","Unsupported DRM type ","mdia","fromCharCode",'<WRMHEADER xmlns="',"index","string","both","NDR","dOps","cenc","getPayload","bind","PPS","sourceBuffer","set","Checking codec","releaseBuffer","tenc","trak","flags",'/mp4; codecs="',"[H264Parser] Both IDR and non-IDR VCL NALUs found in the same frame","clRtcDrmCreateMediaDump","STSD","6352549TgZLxu","initBrowser","IDR","trun"," - ","start","mediaSource","startsWith","stype","readSPS","addEventListener","schi","encv","createElement","getVideoFrames","onReady","href","sourceopen","setUint32","vmhd","FTYP","schm","getData","toISOString","remuxer","track","skipScalingList","STSZ","getSize","addSourceBuffer","[MSE] buffer error:","appendBufferError","off","2392886zJoPkf","destroy","sdtp","audiosamplerate",": NRI: ","reportDiscontinuity","extractNALUs","No A/V data","pps","senc","saio","concat","config","ftyp","parseNAL","esds","error","feed","Browser does not support codec","4.3.0.0","skipUEG","mp4","end","2232924PKvVOf","updating","options","227868XbMqAn","prototype","createBuffer","info","MediaSource","timestamp","mvex","isfmb","opus","max","stsz","POSITIVE_INFINITY","saiz","timescale","call","encryption","height","jmuxer","bufferControllers","open","patchSampleAuxinfo","queue","stsd","onBufferError","frameCounter","ntype","remux","getPayloadSize","isSupported","</LA_URL>","waitingForIdr","box","idr"," samples - expected 1","tracks","stbl","getNri",'<KID ALGID="AESCTR" ',"download","readUInt","join","com.microsoft.playready.recommendation",'" version="',"remuxController","Received ","frma","resetTrack","disableRemotePlayback","</DATA>","mfhd","pssh","charCodeAt","drm","mediaDuration","video","readyToDecode","from","SPS","skipLZ","data","keySystem","[MSE] sourceclose","byteLength","STTS","9mESMVl","Buffered range ","samples","byteOffset","parseHeader","codec","node","audio","Failure: Browser doesn't support MSE/MMS","subarray","replaceAll","downloadToFile","onBuffer","skipBits","mdat","isKeyframe","moof","mode","push","STCO","9ffcUcC","listener","isReset","map","enca","type","<LA_URL>","parseSPS","getElementById","no video element were found to render, provide a valid video element","sinf","doAppend","HDLR_TYPES","videoElement","stts","keyId","trackTypes","TYPES","remove","size","AUD","src","1376748eVkTXq","min","tfhd","initialized","offAll","appendBuffer","buffer","nri","skipEG","isvcl","isSafari","isTypeSupported","readyState","abort","apply","reduce","assign","calculateExpectedSizeFromSai","duration","generatePlayReadyHeader","readUEG","onMSEOpen","sampleAuxInfo","SEI","irrecoverableError","channelCount","saiIvSize","stsc"];return(l_=function(){return t})()}function N0(t,e=0,n=1/0){return nee(t,e,n,Uint8Array)}function LR(t){const e=K,n=Array[e(436)](t)[e(467)](a=>a[e(431)](0));return new Uint8Array(n)}function ree(t){const e=function(n){const a=K;let o="";for(let s=0;s<n.length;s+=16e3){const u=n[a(453)](s,s+16e3);o+=String[a(299)][a(187)](null,u)}return o}(N0(t));return btoa(e)}window[K(455)]=(t,e,n="application/octet-stream")=>{const a=K,o=document[a(334)]("a"),s=new Blob([t],{type:n});o[a(337)]=URL[a(244)](s),o[a(418)]=e,o.click(),URL[a(235)](o[a(337)])};class It{static get[K(304)](){return 1}static get[K(323)](){return 5}static get[K(196)](){return 6}static get SPS(){return 7}static get PPS(){return 8}static get[K(484)](){return 9}static get[K(481)](){const e=K;return{[It[e(323)]]:e(323),[It.SEI]:e(196),[It.SPS]:e(437),[It[e(309)]]:e(309),[It[e(304)]]:e(304),[It[e(484)]]:e(484)}}static type(e){const n=K;return e[n(405)]in It[n(481)]?It[n(481)][e[n(405)]]:n(263)}constructor(e){const n=K;this.payload=e,this[n(493)]=(96&this.payload[0])>>5,this[n(405)]=31&this[n(214)][0],this[n(495)]=this.ntype==1||this[n(405)]==5,this[n(329)]="",this[n(387)]=!1}toString(){const e=K;return It[e(469)](this)+e(358)+this[e(416)]()}getNri(){return this[K(493)]}[K(469)](){return this[K(405)]}
95[K(459)](){const e=K;return this[e(405)]===It[e(323)]}[K(307)](){return this[K(214)]}[K(407)](){const e=K;return this[e(214)][e(442)]}getSize(){return 4+this[K(407)]()}[K(343)](){const e=K,n=new Uint8Array(this.getSize());return new DataView(n.buffer)[e(339)](0,this.getSize()-4),n[e(311)](this[e(307)](),4),n}}class NR{constructor(e){const n=K;this[n(439)]=e,this[n(301)]=0,this.bitLength=8*e[n(442)]}[K(291)](e){const n=K;this.data=e,this[n(301)]=0,this[n(282)]=8*e[n(442)]}get[K(288)](){const e=K;return this[e(282)]-this[e(301)]}skipBits(e){if(this[K(288)]<e)return!1;this.index+=e}[K(208)](e,n=!0){return this.getBits(e,this.index,n)}[K(252)](e,n,a=!0){const o=K;if(this.bitsAvailable<e)return 0;const s=n%8,u=this[o(439)][n/8|0]&255>>>s,c=8-s;if(c>=e)return a&&(this.index+=e),u>>c-e;{a&&(this.index+=c);const p=e-c;return u<<p|this[o(252)](p,n+c,a)}}[K(438)](){const e=K;let n;for(n=0;n<this.bitLength-this[e(301)];++n)if(this.getBits(1,this[e(301)]+n,!1)!==0)return this.index+=n,n;return n}[K(374)](){const e=K;this[e(457)](1+this[e(438)]())}[K(494)](){const e=K;this[e(457)](1+this[e(438)]())}readUEG(){const e=K,n=this[e(438)]();return this[e(208)](n+1)-1}readEG(){const e=this[K(193)]();return 1&e?1+e>>>1:-1*(e>>>1)}readBoolean(){return this[K(208)](1)===1}[K(295)](e=1){return this[K(208)](8*e)}readUShort(){return this[K(208)](16)}[K(419)](){return this[K(208)](32)}}class vs{static[K(360)](e,n){const a=K;let o=[],s=!1,u=!1,c=!1,p=!1,d=0,m=0,f=0,b=[];for(;d<=e.byteLength;){if(d<e.byteLength){const g=e[d++];g!==0?(g===1&&m>1&&(f=m>2?4:3,b.push(d)),m=0):++m}else f=0,b.push(d++);if(b.length>1){const g=b.shift(),S=b[0]-f;if(g<S){let w=!1;const k=31&e[g];if(k===It.NDR?u=!0:k===It.IDR?s=!0:k===It.SPS?(w=c,c=!0):k===It.PPS&&(w=p,p=!0),!w)if(!n||k!==It.NDR&&k!==It.IDR)o.push(e.subarray(g,S));else{const T=new Uint8Array(S-g);let R=0;for(d=g,m=0;d<S;){let I=e[d++];m>1&&I===3&&(m=0,I=e[d++]),I!==0?m=0:++m,T[R++]=I}o.push(T.subarray(0,R))}}}}let v=!0,y=!1;return u||s?u&&s&&(console[a(230)](a(318)),v=!1):(console[a(230)]("[H264Parser] No VCL NALUs found"),v=!1),s&&(c&&p?y=!0:console[a(230)](a(242))),{valid:v,idr:y,nalus:o}}static skipScalingList(e,n){let a,o=8,s=8;for(let u=0;u<n;u++)s!==0&&(a=e.readEG(),s=(o+a+256)%256),o=s===0?o:s}static[K(330)](e){const n=K;let a,o,s,u,c,p,d=new NR(e),m=0,f=0,b=0,v=0,y=1;if(d[n(295)](),a=d.readUByte(),d[n(208)](5),d[n(457)](3),d.readUByte(),d[n(374)](),a===100||a===110||a===122||a===244||a===44||a===83||a===86||a===118||a===128){var g=d[n(193)]();if(g===3&&d[n(457)](1),d.skipUEG(),d[n(374)](),d[n(457)](1),d[n(232)]()){p=g!==3?8:12;for(let w=0;w<p;++w)d[n(232)]()&&(w<6?vs[n(347)](d,16):vs[n(347)](d,64))}}d[n(374)]();var S=d.readUEG();if(S===0)d[n(193)]();else if(S===1){d.skipBits(1),d[n(494)](),d[n(494)](),o=d[n(193)]();for(let w=0;w<o;++w)d.skipEG()}if(d.skipUEG(),d[n(457)](1),s=d[n(193)](),u=d.readUEG(),c=d[n(208)](1),c===0&&d[n(457)](1),d[n(457)](1),d[n(232)]()&&(m=d[n(193)](),f=d[n(193)](),b=d[n(193)](),v=d.readUEG()),d.readBoolean()){if(d[n(232)]()){let w;switch(d[n(295)]()){case 1:w=[1,1];break;case 2:w=[12,11];break;case 3:w=[10,11];break;case 4:w=[16,11];break;case 5:w=[40,33];break;case 6:w=[24,11];break;case 7:w=[20,11];break;case 8:w=[32,11];break;case 9:w=[80,33];break;case 10:w=[18,11];break;case 11:w=[15,11];break;case 12:w=[64,33];break;case 13:w=[160,99];break;case 14:w=[4,3];break;case 15:w=[3,2];break;case 16:w=[2,1];break;case 255:w=[d[n(295)]()<<8|d.readUByte(),d[n(295)]()<<8|d[n(295)]()]}w&&w[0]>0&&w[1]>0&&(y=w[0]/w[1])}d.readBoolean()&&d[n(457)](1),d[n(232)]()&&(d.skipBits(4),d[n(232)]()&&d[n(457)](24)),d.readBoolean()&&(d.skipUEG(),d[n(374)]()),d.readBoolean()&&(d[n(419)](),d[n(419)](),d.readBoolean())}return{width:Math.ceil((16*(s+1)-2*m-2*f)*y),height:(2-c)*(u+1)*16-(c?2:4)*(b+v)}}static[K(448)](e){const n=K;let a=new NR(e[n(307)]());a.readUByte(),e.isfmb=a[n(193)]()===0,e.stype=a[n(193)]()}constructor(e){const n=K;this.remuxer=e,this[n(346)]=e[n(274)]}[K(471)](e){const n=K;var a=vs[n(330)](new Uint8Array(e));this[n(346)][n(228)]=a[n(228)],this[n(346)][n(396)]=a[n(396)],this[n(346)].sps=[new Uint8Array(e)],this[n(346)][n(449)]=n(224);let o=new DataView(e.buffer,e[n(447)]+1,4);for(let u=0;u<3;++u){var s=o.getUint8(u)[n(262)](16);s.length<2&&(s="0"+s),this.track[n(449)]+=s}}[K(211)](e){this[K(346)].pps=[new Uint8Array(e)]}[K(368)](e){const n=K;if(!e)return!1;let a=!1;switch(e.type()){case It[n(323)]:case It[n(304)]:a=!0;break;case It[n(309)]:!this[n(346)][n(362)]&&(this.parsePPS(e[n(307)]()),!this[n(345)][n(435)]&&this[n(346)][n(362)]&&this[n(346)][n(259)]&&(this[n(345)][n(435)]=!0)),a=!0;break;case It[n(437)]:!this[n(346)][n(259)]&&(this[n(471)](e[n(307)]()),!this[n(345)][n(435)]&&this[n(346)][n(362)]&&this.track.sps&&(this[n(345)][n(435)]=!0)),a=!0;break;case It[n(484)]:break;case It[n(196)]:a=!0}return a}}class c_{constructor(e){const n=K;this[n(465)]={},this[n(469)]=""|e}on(e,n){const a=K;return!this[a(465)][e]&&(this[a(465)][e]=[]),this[a(465)][e][a(462)](n),!0}[K(353)](e,n){const a=K;if(this[a(465)][e]){var o=this.listener[e][a(238)](n);return o>-1&&this[a(465)][e][a(280)](o,1),!0}return!1}[K(490)](){this[K(465)]={}}
95[K(255)](e,n){const a=K;return!!this.listener[e]&&(this[a(465)][e][a(467)](o=>{o[a(187)](null,[n])}),!0)}}class le{constructor(e){var n,a;const o=K;this[o(432)]=e,this[o(199)]={video:((n=e[o(366)][o(434)])==null?void 0:n.encryption)===o(306)?16:0,audio:((a=e[o(366)][o(451)])==null?void 0:a.encryption)===o(306)?16:0},le.types={avc1:[],encv:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],Opus:[],dOps:[],enca:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],pssh:[],sinf:[],frma:[],schm:[],schi:[],tenc:[],saiz:[],saio:[],senc:[]};for(let b in le[o(204)])le[o(204)][b]=[b[o(431)](0),b[o(431)](1),b.charCodeAt(2),b[o(431)](3)];const s=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),u=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);le[o(476)]={video:s,audio:u};const c=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),p=new Uint8Array([0,0,0,0,0,0,0,0]);le[o(443)]=le[o(268)]=le[o(463)]=p,le[o(348)]=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),le[o(217)]=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),le.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),le[o(320)]=new Uint8Array([0,0,0,0,0,0,0,1]);const d=new Uint8Array([105,115,111,109]),m=new Uint8Array([97,118,99,49]),f=new Uint8Array([0,0,0,1]);le[o(341)]=le[o(411)](le[o(204)][o(367)],d,f,d,m),le.DINF=le[o(411)](le[o(204)][o(272)],le[o(411)](le[o(204)].dref,c))}static[K(411)](e,...n){const a=K;let o,s=8,u=n.length,c=u;for(;u--;)n[u]&&(s+=n[u].byteLength);for(o=new Uint8Array(s),o[0]=s>>>24,o[1]=s>>>16&255,o[2]=s>>>8&255,o[3]=255&s,o[a(311)](e,4),u=0,s=8;u<c;++u)n[u]&&(o[a(311)](n[u],s),s+=n[u][a(442)]);return o}hdlr(e){const n=K;return le[n(411)](le[n(204)][n(229)],le[n(476)][e])}mdat(e){const n=K;return le.box(le.types[n(458)],e)}[K(246)](e,n){const a=K;return le.box(le[a(204)][a(246)],new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,e>>>24,e>>>16&255,e>>>8&255,255&e,0,0,0,0,85,196,0,0]))}[K(298)](e){const n=K;return le[n(411)](le[n(204)][n(298)],this[n(246)](e[n(393)],e.duration),this[n(229)](e[n(469)]),this[n(265)](e))}[K(429)](e){const n=K;return le[n(411)](le.types[n(429)],new Uint8Array([0,0,0,0,e>>>24,e>>>16&255,e>>>8&255,255&e]))}[K(265)](e){const n=K;return e[n(469)]===n(451)?le[n(411)](le[n(204)][n(265)],le.box(le[n(204)][n(236)],le[n(247)]),le.DINF,this[n(415)](e)):le[n(4
9511)](le[n(204)][n(265)],le[n(256)],this[n(415)](e),le[n(411)](le[n(204)][n(340)],le[n(217)]))}[K(460)](e,n,a){const o=K;return le[o(411)](le[o(204)][o(460)],this[o(429)](e),this.traf(a,n))}moov(e,n,a){const o=K;let s=e[o(294)],u=[];for(;s--;)u[s]=this[o(315)](e[s]);return le[o(411)][o(187)](null,[le[o(204)].moov,this[o(210)](a,n),this[o(430)](e)].concat(u)[o(365)](this[o(386)](e)))}mvex(e){const n=K;let a=e[n(294)],o=[];for(;a--;)o[a]=this[n(290)](e[a]);return le.box[n(187)](null,[le[n(204)].mvex].concat(o))}[K(210)](e,n){const a=K;let o=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,e>>>24,e>>>16&255,e>>>8&255,255&e,n>>>24,n>>>16&255,n>>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return le[a(411)](le[a(204)].mvhd,o)}[K(356)](e){const n=K;let a=e[n(446)]||[],o=new Uint8Array(4+a.length);for(let s=0;s<a.length;s++){const u=a[s][n(316)];o[s+4]=u[n(213)]<<4|u.isDependedOn<<2|u.hasRedundancy}return le.box(le.types.sdtp,o)}[K(415)](e){const n=K;return le[n(411)](le.types[n(415)],this[n(402)](e),le.box(le.types[n(478)],le[n(443)]),le.box(le.types[n(200)],le[n(268)]),le[n(411)](le[n(204)][n(390)],le[n(348)]),le[n(411)](le[n(204)][n(267)],le[n(463)]))}[K(333)](e){const n=K;let a,o,s,u=[],c=[];for(a=0;a<e[n(259)][n(294)];a++)o=e[n(259)][a],s=o[n(442)],u.push(s>>>8&255),u[n(462)](255&s),u=u[n(365)](Array[n(381)].slice.call(o));for(a=0;a<e.pps.length;a++)o=e.pps[a],s=o[n(442)],c.push(s>>>8&255),c[n(462)](255&s),c=c[n(365)](Array[n(381)][n(293)][n(394)](o));const p=le[n(411)](le[n(204)].avcC,new Uint8Array([1,u[3],u[4],u[5],255,224|e[n(259)][n(294)]][n(365)](u)[n(365)]([e[n(362)].length]).concat(c))),d=e[n(228)],m=e[n(396)],f=le[n(411)](le[n(204)][n(474)],le[n(411)](le.types[n(425)],new Uint8Array([97,118,99,49])),le[n(411)](le[n(204)][n(342)],new Uint8Array([0,0,0,0,...LR(this[n(432)][n(366)].video[n(395)]),0,1,0,0])),le[n(411)](le[n(204)].schi,this[n(314)]("video")));return le[n(411)](le[n(204)][n(333)],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,d>>>8&255,255&d,m>>>8&255,255&m,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,65,86,67,32,67,111,100,105,110,103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]),p,f)}[K(369)](e){const n=K;let a=e.config[n(442)],o=new Uint8Array(26+a+3);return o[n(311)]([0,0,0,0,3,23+a,0,1,0,4,15+a,64,21,0,0,0,0,0,0,0,0,0,0,0,5,a]),o[n(311)](e[n(366)],26),o[n(311)]([6,1,2],26+a),o}[K(296)](e){const n=K,a=e.audiosamplerate;return le[n(411)](le[n(204)][n(296)],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e[n(198)],0,16,0,0,0,0,a>>>8&255,255&a,0,0]),le[n(411)](le[n(204)][n(369)],this.esds(e)))}dOps(e){const n=K,a=e[n(357)];return new Uint8Array([0,e[n(198)],1,56,0,0,a>>>8&255,255&a,0,0,0])}[K(264)](e){const n=K,a=e[n(357)];return le[n(411)](le[n(204)].Opus,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e[n(198)],0,16,0,0,0,0,a>>>8&255,255&a,0,0]),le[n(411)](le.types[n(305)],this[n(305)](e)))}[K(468)](e){const n=K,a=le[n(411)](le[n(204)].dOps,this[n(305)](e)),o=le[n(411)](le[n(204)].sinf,le[n(411)](le[n(204)].frma,new Uint8Array([79,112,117,115])),le[n(411)](le[n(204)][n(342)],new Uint8Array([0,0,0,0,...LR(this.drm[n(366)].audio[n(395)]),0,1,0,0])),le[n(411)](le[n(204)][n(332)],this[n(314)](n(451)))),s=e[n(357)];return le[n(411)](le[n(204)][n(468)],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e[n(198)],0,16,0,0,0,0,s>>>8&255,255&s,0,0]),a,o)}[K(402)](e){const n=K;return e[n(469)]===n(451)?le.box(le[n(204)][n(402)],le[n(320)],e[n(212)]?this[n(468)](e):this[n(264)](e)):le.box(le[n(204)][n(402)],le[n(320)],this.encv(e))}[K(249)](e){const n=K,a=e.id,o=e[n(191)],s=e.width,u=e[n(396)],c=e[n(219)];return le[n(411)](le[n(204)][n(249)],new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,a>>>24,a>>>16&255,a>>>8&255,255&a,0,0,0,0,o>>>24,o>>>16&255,o>>>8&255,255&o,0,0,0,0,0,0,0,0,0,0,0,0,255&c,c%1*10&255,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,s>>>8&255,255&s,0,0,u>>>8&255,255&u,0,0]))}[K(231)](e,n){var a;const o=K,s=e.id,u=e[o(446)][0][o(483)],c=e[o(446)][0][o(191)],p=e[o(446)][0].flags,d=le[o(411)](le[o(204)][o(488)],new Uint8Array([0,2,0,58,s>>>24,s>>>16&255,s>>>8&255,255&s,0,0,0,1,c>>>24,s>>>16&255,c>>>8&255,255&c,u>>>24,u>>>16&255,u>>>8&255,255&u,0,p.isNonSync,0,0])),m=le[o(411)](le[o(204)][o(222)],new Uint8Array([0,0,0,0,n>>>24,n>>>16&255,n>>>8&255,255&n]));if(e[o(212)]){let f,b;if(e[o(469)]===o(434)?(f=!0,b=this[o(199)][o(434)]+((a=e[o(446)][0].sampleAuxInfo)==null?void 0:a.byteLength)):(f=!1,b=this[o(199)][o(451)]),b>0){const v=this[o(392)](b),y=this[o(363)](e[o(446)],f),g=v.length+20+y.length+d[o(294)]+m[o(294)]+8+16+8+8,S=this[o(324)](e,g);return le[o(411)](le[o(204)][o(231)],d,m,S,v,this[o(364)](g-y[o(294)]+S[o(294)]+8),y)}{const v=this[o(363)](null,!1),y=v[o(294)]+d[o(294)]+m.length+8+16+8+8,g=this[o(324)](e,y);return le[o(411)](le[o(204)][o(231)],d,m,g,v)}}return le.box(le.types.traf,d,m,this[o(324)](e,d[o(294)]+m[o(294)]+8+16+8+8))}[K(315)](e){const n=K;return e[n(191)]=e[n(191)]||4294967295,le.box(le[n(204)][n(315)],this[n(249)](e),this[n(298)](e))}trex(e){const n=K,a=e.id;return le[n(411)](le[n(204)][n(290)],new Uint8Array([0,0,0,0,a>>>24,a>>>16&255,a>>>8&255,255&a,0,0,0,1,0,0,0,16,0,0,0,0,0,0,0,0]))}trun(e,n){const a=K;let o=(e.samples||[]).length,s=new Uint8Array(12);return n+=20,s[a(311)]([0,0,0,1,o>>>24,o>>>16&255,o>>>8&255,255&o,n>>>24,n>>>16&255,n>>>8&255,255&n],0),le.box(le.types[a(324)],s)}[K(192)](e,n){const a=K,o=a(373),s=a(257),u=ree(function(c){const p=K,d=[];return d[p(462)](c[3]),d[p(462)](c[2]),d[p(462)](c[1]),d[p(462)](c[0]),d.push(c[5]),d.push(c[4]),d.push(c[7]),d.push(c[6]),(c=N0(c))[p(311)](d,0),c}(e));return N0(function(c,p){const d=K,m=new Uint8Array(2*c.length),f=new DataView(m[d(492)]);for(let b=0;b<c[d(294)];++b){const v=c[d(431)](b);f[d(221)](2*b,v,p)}return m[d(492)]}([a(300)+s+a(422)+o+'">',"<DATA>",a(239),"<KIDS>",a(417),a(243)+u+'"',">",a(245),a(270),"</PROTECTINFO>",n?a(470)+n+a(409):"",a(428),a(289)][a(420)](""),!0))}[K(430)](e){const n=K;if(this[n(432)][n(440)][n(328)]("com.widevine"))return le[n(411)](le[n(204)][n(430)],new Uint8Array([0,0,0,0,237,239,139,169,121,214,74,206,163,200,39,220,213,29,33,237,0,0,0,18,18,16,...this[n(432)][n(366)][e[0][n(469)]][n(479)]]));if(this[n(432)].keySystem===n(421)){const a=this[n(192)](this[n(432)][n(366)][e[0].type][n(479)],this.drm.licenseUrl),o=a[n(442)];return le[n(411)](le[n(204)][n(430)],new Uint8Array([0,0,0,0,154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149,o>>>24,o>>>16&255,o>>>8&255,255&o,...a]))}return this[n(432)][n(440)]===n(273)?le[n(411)](le[n(204)][n(430)],new Uint8Array([1,0,0,0,16,119,239,236,192,178,77,2,172,227,60,30,82,226,251,75,0,0,0,1,...this.drm.config[e[0][n(469)]][n(479)],0,0,0,0])):this[n(432)][n(440)]===n(286)?null:void console[n(370)](n(297)+this[n(432)].keySystem)}[K(314)](e){const n=K;let a,o,s=this[n(432)][n(366)][e];return s.encryption==="cbcs"?(a=new Uint8Array([16,...s.iv]),o=25):(a=new Uint8Array([]),o=0),le[n(411)](le[n(204)].tenc,new Uint8Array([1,0,0,0,0,o,1,this[n(199)][e],...s[n(479)],...a]))}[K(392)](e){return le[K(411)](le.types.saiz,new Uint8Array([0,0,0,0,e,0,0,0,1]))}[K(364)](e){const n=K;return le[n(411)](le[n(204)][n(364)],new Uint8Array([0,0,0,0,0,0,0,1,e>>>24,e>>>16&255,e>>>8&255,255&e]))}[K(363)](e,n){const a=K;let o=null;return e&&(e[a(294)]!==1&&console[a(370)](a(424)+e[a(294)]+a(413)),o=e[0][a(195)]),o&&o[a(442)]?le[a(411)](le[a(204)][a(363)],new Uint8Array([0,0,0,n?2:0,0,0,0,1,...o])):le[a(411)](le[a(204)][a(363)],new Uint8Array([0,0,0,0,0,0,0,1]))}[K(271)](e,n,a){const o=K,s=this[o(216)](e,n,a);let u=new Uint8Array(le[o(341)][o(442)]+s.byteLength);return u.set(le[o(341)]),u[o(311)](s,le[o(341)].byteLength),u}}let aee=1;class Kp{constructor(){this[K(283)]=1}static[K(209)](){return aee++}[K(250)](){const e=K;this[e(274)][e(215)]=0,this.mp4track[e(446)]=[]}[K(258)](){const e=K;return!(!this.readyToDecode||!this[e(446)][e(294)])}}class iee extends Kp{constructor(e){const n=K;super(),this[n(435)]=!0,this[n(223)]=0,this[n(237)]=0,this[n(274)]={id:Kp[n(209)](),type:"audio",channelCount:2,audiosamplerate:48e3,len:0,fragmented:!0,timescale:e,duration:e,s
95amples:[],codec:n(388),encrypted:!0},this[n(446)]=[]}resetTrack(){const e=K;this[e(283)]=1,this[e(223)]=0,this[e(237)]=0}[K(406)](e,n,a){const o=K;if(e.length>0)for(let s=0;s<e[o(294)];s++){let u=e[s],c=u[o(276)],p=c[o(442)];this.samples.push({units:c,size:p,duration:u.duration,sampleAuxInfo:n,timestamp:a}),this[o(274)][o(215)]+=p}}[K(248)](){const e=K;if(!this[e(446)])return null;let n,a=this[e(274)][e(446)];for(;this.samples[e(294)];){let o=this[e(446)][e(233)](),s=(1e3*o[e(385)]|0)-this.nextDts|0;s<5&&(s=5),this.dts=this.nextDts,this[e(223)]+=s,n={size:o.size,duration:s,cts:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:1},sampleAuxInfo:o[e(195)]};let u=new Uint8Array(o.size);return u[e(311)](o.units,0),a.push(n),new Uint8Array(u.buffer,0,o[e(483)])}return null}}class oee extends Kp{constructor(e,n){const a=K;super(),this[a(435)]=!1,this.nextDts=0,this[a(237)]=0,this[a(477)]=n,this.mp4track={id:Kp[a(209)](),type:a(434),len:0,fragmented:!0,sps:"",pps:"",width:0,height:0,timescale:e,duration:e,samples:[],encrypted:!0},this[a(446)]=[],this[a(220)]=new vs(this)}[K(426)](){const e=K;this[e(283)]=1,this.readyToDecode=!1,this[e(274)].sps="",this[e(274)][e(362)]="",this[e(223)]=0,this[e(237)]=0}[K(406)](e,n,a){const o=K;for(let s of e){let u=[],c=0;for(let p of s[o(276)])this.h264[o(368)](p)&&(u[o(462)](p),c+=p.getSize());u[o(294)]>0&&this[o(435)]&&(this[o(274)][o(215)]+=c,this[o(446)][o(462)]({units:u,size:c,keyFrame:s.keyFrame,duration:s[o(191)],sampleAuxInfo:n,timestamp:a}))}}[K(248)](){const e=K;if(!this[e(258)]()||!this.samples)return null;let n,a=this[e(274)][e(446)],o=this.samples[e(233)](),s=o[e(276)],u=(1e3*o.timestamp|0)-this[e(223)]|0;u<5&&(u=5),window[e(251)]&&u>5e3&&console[e(383)]("timestamp gap: "+(u/1e3|0)+" s"),this[e(237)]=this[e(223)],this.nextDts+=u,n={size:o[e(483)],duration:u,cts:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,isNonSync:o[e(275)]?0:1,dependsOn:o.keyFrame?2:1},sampleAuxInfo:o[e(195)]};let c=0;for(const m of s)c+=m[e(349)]();let p=0,d=new Uint8Array(c);for(const m of s)d[e(311)](m[e(343)](),p),p+=m[e(349)]();return a[e(462)](n),new Uint8Array(d[e(492)],0,c)}}class see extends c_{constructor(e,n){const a=K;super(a(345)),this.initialized=!1,this.trackTypes=[],this[a(414)]={},this[a(393)]=1e3,this.mediaDuration=0,this[a(477)]=e,this[a(375)]=n}addTrack(e){const n=K;(e===n(434)||e==="both")&&(this[n(414)][n(434)]=new oee(this[n(393)],this.videoElement),this[n(480)][n(462)](n(434))),(e===n(451)||e===n(303))&&(this[n(414)][n(451)]=new iee(this.timescale),this[n(480)][n(462)](n(451)))}reset(){const e=K;for(let n of this[e(480)])this[e(414)][n][e(426)]();this[e(489)]=!1}[K(355)](){const e=K;this[e(414)]={},this[e(490)]()}[K(250)](){const e=K;if(this[e(489)])for(let n of this[e(480)]){let a=this[e(414)][n];for(;;){let o=a.getFramePayload();if(!o||!o[e(442)])break;let s={type:n,payload:L0(this[e(375)][e(460)](a[e(283)]++,a[e(237)],a[e(274)]),this[e(375)][e(458)](o)),dts:a[e(237)]};this[e(255)](e(492),s),a[e(250)]()}}else this[e(258)]()&&(this[e(255)](e(205)),this[e(271)](),this[e(489)]=!0,this[e(250)]())}initSegment(){const e=K;for(let n of this[e(480)]){let a=this[e(414)][n],o={type:n,payload:this[e(375)][e(271)]([a[e(274)]],this[e(433)],this[e(393)])};this.dispatch(e(492),o)}}isReady(){const e=K;for(let n of this.trackTypes)if(!this[e(414)][n][e(435)]||!this[e(414)][n].samples[e(294)])return!1;return!0}[K(406)](e){const n=K;for(let a of this[n(480)]){let o=e[a];o.length>0&&this[n(414)][a][n(406)](o,a===n(451)?e[n(225)]:e.videoSampleAuxInfo,e[n(385)])}this.flush()}}class lee extends c_{constructor(e,n,a){const o=K;super(o(492)),this[o(469)]=n,this.queue=new Uint8Array,window[o(319)]&&(this[o(254)]=new Uint8Array,this[o(404)]=0),this.sourceBuffer=e,this[o(218)]=a,this[o(197)]=!1,this[o(310)].addEventListener(o(370),s=>{const u=o;console.warn(u(201),s,this.type),this[u(197)]=!0,this[u(255)](u(370),{type:this[u(469)],name:"buffer",error:u(292)})})}[K(355)](){const e=K;this[e(401)]=null,this[e(254)]=null;try{this.sourceBuffer&&(this[e(310)][e(186)](),this[e(218)].removeSourceBuffer(this[e(310)]),this[e(310)]=null)}catch{}this.offAll()}[K(475)](){const e=K;if(this.queue[e(294)]&&this[e(310)]&&!this[e(310)].updating){if(this[e(310)].buffered[e(294)]>1){for(let n=0;n<this[e(310)].buffered[e(294)];++n){const a=n<this[e(310)].buffered[e(294)]-1;window[e(251)]&&console[e(383)](e(445)+n+(a?" (remove)":"")+": "+this[e(310)][e(269)][e(326)](n)+e(325)+this[e(310)][e(269)][e(376)](n)),a&&this.sourceBuffer[e(482)](this[e(310)][e(269)].start(n),this[e(310)].buffered[e(376)](n))}if(this.sourceBuffer[e(378)])return}try{this[e(310)][e(491)](this[e(401)]),this.queue=new Uint8Array}catch(n){this[e(255)](e(370),{type:this[e(469)],name:e(352),error:n})}}}[K(371)](e){const n=K;if(this[n(254)]&&(this.dbgQueue=L0(this[n(254)],e),++this[n(404)]==100)){const a=new Date()[n(344)]().substring(0,19)[n(454)](":","-"),o=this.type+"-"+a+".mp4";window.downloadToFile(this[n(254)],o),this[n(254)]=null}this[n(197)]||(this[n(401)]=L0(this[n(401)],e)),this.doAppend()}}class u_ extends c_{static isSupported(e){const n=K;return window[n(202)]?window.ManagedMediaSource[n(497)](e):!!window[n(384)]&&window.MediaSource[n(497)](e)}constructor(e){const n=K;super(n(397)),this[n(197)]=!1,this[n(410)]=!0,this[n(466)]=!1,this[n(234)]=!1,this.mseEnded=!1,this[n(379)]=Object[n(189)]({},{node:"",mode:"video",debug:!1,onReady:function(){},onError:function(a){}},e),this[n(450)]=typeof this.options[n(450)]===n(302)?document[n(472)](this.options.node):this[n(379)].node,this[n(432)]=e.drm,this.mp4=new le(this.drm),this[n(423)]=new see(this.node,this[n(375)]),this[n(423)].addTrack(this[n(379)][n(461)]),this[n(423)].on(n(492),this[n(456)].bind(this)),this[n(423)].on(n(205),this[n(382)][n(308)](this)),this.initBrowser()}[K(322)](){const e=K;typeof this.options.node===e(302)&&this.options[e(450)]==""&&console[e(370)](e(473)),this[e(234)]=!1,this.setupMSE()}setupMSE(){const e=K;if(!window[e(202)]&&!window[e(384)])throw e(452);window.ManagedMediaSource?(this.node[e(427)]=!0,this[e(327)]=new ManagedMediaSource):this[e(327)]=new MediaSource,this[e(284)]=URL[e(244)](this[e(327)]),this.node[e(485)]=this[e(284)],this[e(277)]=!1,this[e(327)][e(331)](e(338),this.onMSEOpen[e(308)](this)),this.mediaSource.addEventListener("sourceclose",this[e(241)][e(308)](this)),this[e(327)][e(331)]("webkitsourceopen",this[e(194)][e(308)](this)),this.mediaSource[e(33
951)](e(240),this[e(241)].bind(this)),this[e(327)][e(331)]("error",function(n){const a=e;console[a(370)](a(287),n[a(226)])})}[K(227)](){const e=K;if(!this[e(277)])try{this.mseEnded=!0,this[e(327)][e(185)]===e(399)&&this[e(327)][e(261)]()}catch(n){console[e(370)]("mediasource is not available to end: ",n)}}[K(359)](){this[K(410)]=!0}[K(371)](e){const n=K;let a={video:[],audio:[]};if(this[n(197)]||this[n(277)]||!e||!this[n(423)])return-1;if(e[n(434)]){a.timestamp=e.timestamp;const o=this[n(190)](e.videoSampleAuxInfo,this.mp4[n(199)][n(434)]),s=o!=e[n(434)][n(442)];let u=vs[n(360)](e[n(434)],s);if(!u[n(206)]||u[n(260)].length<1)return 0;if(this.waitingForIdr){if(!u[n(412)])return 0;this[n(410)]=!1}if(!tee&&e[n(278)]){const c=u[n(260)][n(188)]((p,d)=>p+4+d[n(442)],0);c!==o&&this[n(400)](e[n(278)],this.mp4[n(199)][n(434)],c-o)}a[n(434)]=this[n(335)](u[n(260)]),a[n(278)]=e[n(278)]}return e[n(451)]&&(a[n(385)]=e[n(385)],a[n(451)]=[{units:e.audio}],a.audioSampleAuxInfo=e[n(225)]),e[n(434)]||e[n(451)]?(this[n(423)][n(406)](a),0):(console.error(n(361)),0)}[K(335)](e){const n=K;let a=[],o=[],s=!1,u=!1;for(let c of e){let p=new It(c);p.type()!==It.IDR&&p[n(469)]()!==It.NDR||vs[n(448)](p),a[n(294)]&&u&&(p[n(387)]||!p[n(495)])&&(o[n(462)]({units:a,keyFrame:s}),a=[],s=!1,u=!1),a[n(462)](p),s=s||p[n(459)](),u=u||p[n(495)]}if(a[n(294)])if(u)o[n(462)]({units:a,keyFrame:s});else{let c=o[n(294)]-1;c>=0&&(o[c].units=o[c][n(276)].concat(a))}return o[n(294)]!==1&&console[n(230)](n(207)+o[n(294)]),o}[K(190)](e,n){const a=K;if(!e)return 0;const o=(e[0]<<8)+e[1],s=n+2+4;let u=0,c=2;for(;0<o&&c+s<=e[a(442)];){c+=n;const p=(e[c]<<8)+e[c+1],d=(e[c+2]<<24)+(e[c+3]<<16)+(e[c+4]<<8)+e[c+5];c+=6,u+=p+d}return u}patchSampleAuxinfo(e,n,a){const o=K;let s=2;if(0<(e[0]<<8)+e[1]&&s+(n+2+4)<=e[o(442)]){s+=n;let u=(e[s]<<8)+e[s+1];u+=a,u>=0&&(e[s]=u>>>8&255,e[s+1]=255&u)}return 0}[K(382)](){const e=K;if(this[e(234)]&&this[e(423)]&&this[e(423)].isReady()&&!this.bufferControllers){this.bufferControllers={};for(let n in this[e(423)][e(414)]){let a=this[e(423)][e(414)][n];const o="".concat(n,e(317))[e(365)](a[e(274)][e(449)],'"');if(window.clRtcDrmDebugLog&&console[e(383)](e(312),o),!u_[e(408)](o))return console[e(370)](e(372)),!1;let s=this[e(327)][e(350)](o);this[e(398)][n]=new lee(s,n,this[e(327)]),this.bufferControllers[n].on(e(370),this[e(403)][e(308)](this))}}}[K(313)](){const e=K;for(let n in this[e(398)])this[e(398)][n].doAppend()}onBuffer(e){const n=K;this[n(234)]&&this[n(398)]&&this[n(398)][e.type]&&this[n(398)][e[n(469)]][n(371)](e[n(214)])}[K(194)](){const e=K;window[e(251)]&&console.info("[MSE] sourceopen"),this[e(327)][e(185)]!==e(281)&&(this.mediaSource.duration=Number[e(391)],this[e(234)]=!0,typeof this[e(379)][e(336)]=="function"&&this[e(379)].onReady[e(394)](null,this[e(466)]),URL[e(235)](this.url),this[e(382)]())}[K(241)](){const e=K;window.clRtcDrmDebugLog&&console[e(383)](e(441)),this.mseReady=!1,this[e(227)]()}[K(403)](e){const n=K;console.warn(n(351),e),this.irrecoverableError=!0,this[n(227)](),typeof this[n(379)][n(266)]=="function"&&this[n(379)][n(266)][n(394)](null,e)}}function d5(t,e){const n=d_();return(d5=function(a,o){return n[a-=222]})(t,e)}(function(){const t=d5,e=d_();for(;;)try{if(parseInt(t(228))/1*(-parseInt(t(229))/2)+-parseInt(t(222))/3*(parseInt(t(227))/4)+parseInt(t(226))/5+parseInt(t(224))/6+parseInt(t(223))/7+-parseInt(t(231))/8+parseInt(t(230))/9===409100)break;e.push(e.shift())}catch{e.push(e.shift())}})();function d_(){const t=["__dev_time__","1634635aeNfVS","4rWkceo","1051qHPzyB","314juHkBI","7752096GfpyFE","1023208nKrJjX","2137269uUqtNM","303058KNxeBb","1097196nHglzA"];return(d_=function(){return t})()}const Xt=h_;function h_(t,e){const n=f_();return(h_=function(a,o){return n[a-=460]})(t,e)}(function(){const t=h_,e=f_();for(;;)try{if(-parseInt(t(471))/1*(-parseInt(t(474))/2)+parseInt(t(479))/3+parseInt(t(473))/4*(parseInt(t(461))/5)+parseInt(t(487))/6+-parseInt(t(467))/7+-parseInt(t(482))/8+-parseInt(t(464))/9===139726)break;e.push(e.shift())}catch{e.push(e.shift())}})();const cee="CrsCCAMSEKDc0WAwLAQT1SB2ogyBJEwYv4Tx7gUijgIwggEKAoIBAQC8Xc/GTRwZDtln
95BThq8"+Xt(462)+"wyoYOE+M/t1oIbccwlTQ7o+BpV1X6TB7fxFyx1jsBtRsBWphU65w121zqmSiwzZzJ4xsXVQCJ"+Xt(460)+Xt(476)+Xt(480)+Xt(484)+Xt(485)+"7hyskG5ZLAyJMzTvgnV3D8/I5Y6mCFBPb/+/Ri+9bEvquPF3Ff9ip3yEHu9mcQeEYCeGe9zR/27eI5MATX39gYtCnn7dDXVxo4/rCYK0A4VemC3HRai2X3pSGcsKY7+6we7h4IycjqtuGtYg8A"+Xt(475)+"RL9KsD0v7ysBQVdUXEbJotcFz71tI5qc3jwr6GjYIPA3VzusD17PN6AGQniMwxJV12z/EgnUo"+Xt(477),uee=Uint8Array[Xt(478)](window[Xt(470)](cee),t=>t.charCodeAt(0));class ha{constructor(e){this[Xt(488)]=e}[Xt(469)](){return this[Xt(488)]}[Xt(483)](){const e=Xt;switch(this[e(488)]){case e(489):return"https://lic.staging.drmtoday.com";case e(465):return e(481);default:return e(466)}}certificate(){return uee}}function f_(){const t=["development","https://lic.drmtoday.com","462553oMrSQp","Staging","toString","atob","20047HjYCpd","Development","52chMPdC","6mbMcSk","baigovcoURAZcr1d/G0rpREjLdVLG0Gjqk63Gx688W5gh3TKemsK3R1jV0dOfj3e6uV/kTpsN","+vwmV2/NJWxKqHBKdL9JqvOnNiQUF0hDI7Wf8Wb63RYSXKE27Ky31hKgx1wuq7TTWkA+kHnJT","pcFB13osydpD2AaDsgWo5RWJcNf+fzCgtUQx/0Au9+xVm5LQBdv8Ja4f2oiHN3dw","from","146355HhTpSB","UrTEfQxfPR4dJTquE+IDLAi5yeVVxzbAgMBAAE6DGNhc3RsYWJzLmNvbUABEoADMmGXpXg/0q","https://lic.test.drmtoday.com","501688OkVRMl","baseUrl","xUuwokpsqVIHZrJfu62ar+BF8UVUKdK5oYQoiTZd9OzK3kr29kqGGk3lSgM0/p499p/FUL8oH","HzgsJ7Hajdsyzn0Vs3+VysAgaJAkXZ+k+N6Ka0WBiZlCtcunVJDiHQbz1sF9GvcePUUi2fM/h","Production","1063410zFUyaf","name","staging","pQnNI61gzHO42XZOMuxytMm0F6puNHTTqhyY3Z290YqvSDdOB+UY5QJuXJgjhvOUD9+oaLlvT","93365ZJpndd","V382D1oJAM0F/YgCQtNDLz7vTWJ+QskNGi5Dd2qzO4s48Cnx5BLvL4H0xCRSw2Ed6ekHSdrRU","production","2343546YgIYCY"];return(f_=function(){return t})()}function Bm(t,e){const n=p_();return(Bm=function(a,o){return n[a-=325]})(t,e)}function p_(){const t=["1052499bnJBHn","cenc","4222tSxFth","Unsupported SampleAuxInfo version","12980Tusgux","3160ZwXFcU","40030ewyARR","16lkTHRT","1199124lbwxEr","data","105TSrukA","getUint8","12bBEpge","SampleAuxInfo corrupted (postfix not found)","getUint16","error","85265ZYYyUv","buffer","3616548TKdsLX","subarray","byteLength","SampleAuxInfo corrupted"];return(p_=function(){return t})()}function m_(t,e){const n=g_();return(m_=function(a,o){return n[a-=295]})(t,e)}ha[Xt(468)]=new ha(Xt(489)),ha[Xt(486)]=new ha(Xt(463)),ha[Xt(472)]=new ha(Xt(465)),function(){const t=Bm,e=p_();for(;;)try{if(parseInt(t(328))/1+-parseInt(t(332))/2*(-parseInt(t(336))/3)+-parseInt(t(338))/4*(-parseInt(t(342))/5)+-parseInt(t(344))/6+-parseInt(t(326))/7*(parseInt(t(333))/8)+parseInt(t(334))/9+parseInt(t(331))/10*(parseInt(t(330))/11)===358550)break;e.push(e.shift())}catch{e.push(e.shift())}}(),function(){const t=m_,e=g_();for(;;)try{if(parseInt(t(305))/1*(-parseInt(t(297))/2)+-parseInt(t(295))/3+parseInt(t(310))/4*(parseInt(t(309))/5)+-parseInt(t(304))/6*(parseInt(t(296))/7)+parseInt(t(307))/8*(-parseInt(t(298))/9)+-parseInt(t(301))/10*(parseInt(t(302))/11)+-parseInt(t(300))/12*(-parseInt(t(308))/13)===178039)break;e.push(e.shift())}catch{e.push(e.shift())}}();const Pu=[];let nv=null,PR=0;function dee(t){return!nv&&function(){const e=m_;nv=new Uint8Array([0,0,0,1,65,154,255,255]).buffer,Pu[e(303)](new Uint8Array([0,0,0,1,39,100,0,13,172,87,5,6,100,0,0,0,1,40,238,60,176,0,0,0,1,37,184,32,0,203,255,38,29,217,24,192,161,96,0,0,12,229,174,166,6,7,20,3,84,0,247,96,193,181,229,128,0,32,32])[e(306)]),Pu[e(303)](Pu[0][e(299)](0)),new Uint8Array(Pu[1]).set([16,0,50],27)}(),t?nv:(PR^=1,Pu[PR])}function g_(){const t=["31476hbBsvr","850RxzAPl","4180KczaCN","push","156MUFuvQ","96571jvhWaB","buffer","26232BkewNd","4303YGAqiP","5yhGpFn","1137036pzCnTd","1035942NcoZLh","94073eTaQjy","2bXtEms","414snfiTE","slice"];return(g_=function(){return t})()}const hee=Sn;function y_(){const t=["Data does not seem to be UTF-16 encoded!","No init data available!","getElementsByTagName","min","14BFNrBA","keystatuseschange","catch","childNodes","internal-error","Failed to reuse previous EME session: ","output-downscaled","expired","bind","5576688EKOFOG","has","length","License acquisition failed with error ","arrayBuffer","apply","CDM error generating license request: ","<Challenge","No PR challenge data!","then","license","createSession","warn","[PR] License fetched:","text/xml","clRtcDrmDebugLog","push","encode","max","json"," is not ","replace","target","rtcdrmerror","update","fromCharCode","subarray","2993694njpqat","4002692oINhTV","Content-Type","1347492MkzfDC","Data has an incorrect length, must be even.","addEventListener","buffer","onFetch","generateRequest","initData","dispatchEvent","atob","No clear key test key provided!","Challenge","New lic will be requested","oct","BYTES_PER_ELEMENT","sessionId","usable for decryption (status: ","[WV] License fetched:","Key ","5MtuOVr","byteLength","744563CKOUzg","load","floor","error","decode","indexOf","info","isSafari","edef8ba979d64acea3c827dcd51d21ed","mediaKeys","Previous lic will be reused","charCodeAt","licenseUrl","status","Failed to update the session: ","log","keyStatuses","temporary","9a04f07998404286ab92e65be0885f95","output-restricted","nodeValue","btoa","message","EME createSession() failed - no DRM available","5977680uUTwUr","getUint16","[PR] Challenge node not found","A128KW","3974463jrELhf","Failed to update the session","stringify","[EME]","delete","No media ke
95ys for media element!","set","2nMQfRz"];return(y_=function(){return t})()}(function(){const t=Sn,e=y_();for(;;)try{if(-parseInt(t(419))/1*(parseInt(t(454))/2)+parseInt(t(495))/3+parseInt(t(496))/4*(-parseInt(t(417))/5)+-parseInt(t(498))/6*(-parseInt(t(459))/7)+parseInt(t(468))/8+-parseInt(t(447))/9+parseInt(t(443))/10===555073)break;e.push(e.shift())}catch{e.push(e.shift())}})();let wc={licenseUrl:"",onFetch:void 0};const h5={},fee=(t,e,n)=>{const a=Sn,o=Uint8Array[a(511)];e*=o,n*=o;const s=(p=t)instanceof ArrayBuffer?p:p[Sn(501)],u=t[a(418)],c=e;var p;let d=Math[a(486)](0,Math[a(458)](c,u)),m=Math[a(458)](d+Math[a(486)](n,0),u);return d/=o,m/=o,new Uint8Array(s,d,m-d)},WR=(t,e=0,n=1/0)=>fee(t,e,n);function Sn(t,e){const n=y_();return(Sn=function(a,o){return n[a-=417]})(t,e)}function pee(t,e,n=!1){const a=Sn;if(!t)return"";let o=t;if(!n&&o.byteLength%2!=0)throw console[a(422)](a(499)),new Error(a(455));const s=WR(o);let u;if((s[0]===255&&s[1]===254||s[0]===254&&s[1]===255)&&(o=s[a(494)](2)),o instanceof ArrayBuffer)u=o;else{const m=new Uint8Array(o[a(418)]);m[a(453)](WR(o)),u=m[a(501)]}const c=Math[a(421)](o.byteLength/2),p=new Uint16Array(c),d=new DataView(u);for(let m=0;m<c;m++)p[m]=d[a(444)](2*m,e);return function(m){const f=Sn;let b="";for(let v=0;v<m[f(470)];v+=16e3){const y=m[f(494)](v,v+16e3);b+=String[f(493)].apply(null,y)}return b}(p)}const MR=t=>{const e=Sn;let n="";for(const a of t){let o=a.toString(16);o[e(470)]==1&&(o="0"+o),n+=o}return n};let P0=null;const mee=t=>{const e=Sn;return window[e(440)](String[e(493)][e(473)](null,t))[e(489)](/\+/g,"-")[e(489)](/\//g,"_")[e(489)](/=*$/,"")},gee=(t,e)=>{const n=Sn,a=(o=>{const s=Sn,u=JSON.parse(new TextDecoder()[s(423)](o));if(console[s(434)]("CK license request:",u),P0===null)throw new Error(s(507));const c=[];for(const p of u.kids){const d={kty:s(510),alg:s(446),kid:p,k:mee(P0)};c[s(484)](d)}return new TextEncoder()[s(485)](JSON[s(449)]({keys:c}))})(e.message);e[n(490)][n(492)](a)[n(461)](function(o){const s=n;console[s(422)](s(448),o)})},b_=t=>{const e=Sn,n=window[e(506)](t[e(489)](/-/g,"+")[e(489)](/_/g,"/")),a=new Uint8Array(n[e(470)]);for(let o=0;o<n.length;++o)a[o]=n[e(430)](o);return a},v_=(t,e,...n)=>n_(void 0,[t,e,...n],void 0,function*(a,o,s=!1){const u=Sn,c=new Headers(h5);s&&c.append(u(497),u(482));const p={method:"POST",headers:c,body:o},d=yield wc[u(502)]?wc[u(502)](a,p):fetch(a,p);if(!d.ok)throw new Error(u(471)+d[u(432)]);return d}),yee=(t,e)=>{const n=Sn;v_(wc[n(431)],e[n(441)])[n(477)](a=>a[n(487)]())[n(477)](a=>{const o=n;window[o(483)]&&console.info(o(514),a.license);const s=b_(a[o(478)])[o(501)];e[o(490)][o(492)](s)[o(461)](u=>{console[o(422)]("Failed to update the session",u)})})[n(461)](a=>{const o=n;t.dispatchEvent(new CustomEvent(o(491),{detail:{message:""+a}})),console[o(422)](a)})},bee=(t,e)=>{const n=Sn,a=((o,s)=>{const u=Sn,c=new DOMParser;try{const p=pee(s,!0);if(p[u(424)](u(475))>-1){const d=c.parseFromString(p,u(482))[u(457)](u(508))[0][u(462)][0][u(439)];if(d===null)throw new Error("No PR challenge data!");return b_(d)}console[u(480)](u(445))}catch(p){o.dispatchEvent(new CustomEvent(u(491),{detail:{message:""+p}})),console.error(p)}return null})(t,e.message);if(a===null)return t[n(505)](new CustomEvent("rtcdrmerror",{detail:{message:"No PR challenge data!"}})),void console.error(n(476));v_(wc[n(431)],a[n(501)],!0)[n(477)](o=>o[n(472)]())[n(477)](o=>{const s=n;window[s(483)]&&console[s(425)](s(481),o),e[s(490)].update(o)[s(461)](function(u){const c=s;t[c(505)](new CustomEvent(c(491),{detail:{message:c(433)+u}})),console[c(422)](c(448),u)})})[n(461)](o=>{const s=n;t.dispatchEvent(new CustomEvent("rtcdrmerror",{detail:{message:""+o}})),console[s(422)](o)})},vee=(t,e)=>{const n=Sn;v_(wc[n(431)],e[n(441)])[n(477)](a=>{const o=n,s=a.text();return window[o(483)]&&console.info("[FPS] License fetched:",a,s),s})[n(477)](a=>{const o=n;e[o(490)][o(492)](b_(a))})[n(461)](a=>{const o=n;t.dispatchEvent(new CustomEvent(o(491),{detail:{message:""+a}})),console[o(422)](a)})},BR=(t,e)=>{h5[t]=e},f5=Wi[hee(426)];let Nf=!f5;const Wu=new Map;function wee(t){return n_(this,void 0,void 0,function*(){const e=Sn;if(t[e(504)]===null)throw new Error(e(456));const n=t[e(490)];if(n===null)throw new Error("No media element available!");const a=n[e(428)];if(a===null)throw new Error(e(452));const o=MR(new Uint8Array(t[e(504)])),s=o+n.id;let u=null;Wu[e(469)](s)&&(u=Wu.get(s),u!=null&&u.close(),Wu[e(451)](s)),window[e(483)]&&console[e(425)](e(450),e(u?429:509));let c=null;try{c=a[e(479)](Nf?"persistent-license":"temporary")}
95catch(p){console[e(434)]("EME createSession(persistent) failed:",p)}if(!c&&Nf){Nf=!1;try{c=a[e(479)](e(436))}catch(p){console[e(422)]("EME createSession(temporary) failed:",p)}}if(c)if(c[e(500)](e(460),p=>{const d=e;p[d(490)][d(435)].forEach((m,f)=>{const b=d;(m===b(466)||m===b(438)||m===b(465)||m===b(463))&&n[b(505)](new CustomEvent(b(491),{detail:{message:b(515)+MR(new Uint8Array(f))+b(488)+(b(513)+m+")"),keyId:f}}))})}),f5?c.addEventListener(e(441),vee[e(467)](null,n),!1):o[e(424)](e(427))!==-1?c.addEventListener(e(441),yee[e(467)](null,n),!1):o[e(424)](e(437))!==-1?c[e(500)](e(441),bee[e(467)](null,n),!1):c.addEventListener("message",gee[e(467)](null,n),!1),u)try{(yield c[e(420)](u[e(512)]))?Wu[e(453)](s,c):n.dispatchEvent(new CustomEvent(e(491),{detail:{message:"Failed to load previous EME session"}}))}catch(p){n[e(505)](new CustomEvent(e(491),{detail:{message:e(464)+p}}))}else c[e(503)](t.initDataType,t[e(504)]).then(()=>{Nf&&Wu[e(453)](s,c)})[e(461)](p=>{const d=e;n[d(505)](new CustomEvent(d(491),{detail:{message:d(474)+p}}))});else n[e(505)](new CustomEvent(e(491),{detail:{message:e(442)}}))})}const Qe=Fm;function w_(){const t=[" too close to seek, ","fpsCertificateUrl","9880640TWxZrg","H264","ignoreAudio","Unable to create Worker!","createMediaKeys(",", restart required: ","/license-proxy-headerauth/drmtoday/RightsManager.asmx","6236Nwzlef","worker","serverCertificateUrl","serverCertificate","seq",",255]).buffer,idrFrames.push(new Uint8Array([0,0,0,1,39,100,0,13,172,87,5,6,100,0,0,0,1,40,238,60,176,0,0,0,1,37,","ClearKey","No valid DRM config found, call rtcDrmConfigure first.","sessionId","toISOString","indexOf","robustness","isInteger","info","includes","Development","slice","16niaptx"," frame","video/mp4","isArray","Android","end","PlayReady","streamType","1772WtcYWF","]: ","Frame gap: ","nextKeyFrameAllowedTime","use rtcDrmFeedFrame to push frames manually","Error recovery attempted","merchant","FairPlay","requestMediaKeySystemAccess(","pipeThrough","/license-server-fairplay/","isChrome","type","MSE (re)init","const DUMMY_IDR_FRAME_SLICE_HDR0=new Uint8Array([32,0,203]),DUMMY_IDR_FRAME_SLICE_HDR1=new Uint8Array([16,0,50]);","DRM config env value must be one of: ","length","GOP is getting too long, requesting a new key frame","Worker","let brokenFrame=null,idrFrames=[];function initializeDummyFrames(){brokenFrame=new Uint8Array([0,0,0,1,65,154,255","srcObject","RTCRtpScriptTransform","),idrFrames.push(idrFrames[0].slice());let $=new Uint8Array(idrFrames[1]);$.set([16,0,50],27)}let idrPicIdToggle=","now"," to ","join","setServerCertificate","audioCapabilities","lastKeyFrameTime","prevSeqNum"," seeking from ",".experiment","clRtcDrmDebugLog","Server certificate fetch failed with error ","isFirefox","org.w3.clearkey","x-dt-custom-data","jitterBufferTarget","playbackRate","enabled","keyFrameNeeded","createEncodedStreams","wvCertificateUrl","key","sai","Discarding corrupted video frame (too small)",'gle^=1]}function audioTransformFunction($,e){postMessage({streamType:"audio",frame:{timestamp:$.timestamp,data:$.',"H264 is the only supported video codec.","com.microsoft.playready.recommendation"," will be used","DRM config iv must be an instance of 16-byte long Uint8Array.","encryption","0;function generateDummyFrame($){return(brokenFrame||initializeDummyFrames(),$)?brokenFrame:idrFrames[idrPicIdTog","toString","message","status","bytesSinceKey","currentTime","supportsRtpScriptTransform","1585647fRskxG","audioElement","track","sinf","createObjectURL","enqueue","Invalid videoElement, it must be an instance of HTMLVideoElement.","7302558TqFWae","pipeTo","SampleAuxInfo extraction failed (video)","isEdge","keys","not-allowed","rtcdrmerror","btoa","?audioTransformFunction:videoTransformFunction});e.pipeThrough(a).pipeTo(x)}self.RTCTransformEvent&&(self.onrtctr",", a1d1f1 is recommended).","reportDiscontinuity","onFetch","keyId","sessionTypes","). Edge only supports PlayReady, Widevine and ClearKey.","audioEncrypted","audioStartTimestamp","frame","videoStartTimestamp","184,32,0,203,255,38,29,217,24,192,161,96,0,0,12,229,174,166,6,7,20,3,84,0,247,96,193,181,229,128,0,32,32]).buffer","Duplicate/reordered frame, prev seq: ","ClearKey is not supported by Safari.","bind",") not found in [","DRM config robustness can only be one of: ","persistent-license","postMessage","receiver","get","both","jmuxer","Production","Blob","t
95imestamp","cenc","emeConfig","clear","cbcs-1-9","5iKPdqC","isWindows","PlayReady license acquisition might fail without output protection enabled (sessionId is ","). Chrome only supports Widevine and ClearKey.","mediaBufferMs should be an integer.","size","certificate","prLicenseUrl","fpsLicenseUrl","/license-proxy-widevine/cenc/","4572770OAoUlm","BYTES_PER_ELEMENT","then","SW_SECURE_CRYPTO","ansform=$=>{let e=$.transformer;handleTransform(e.options.operation,e.readable,e.writable)}),onmessage=$=>{keyFra","splice","Safari doesn't support 'cenc'/AES-CTR, use 'cbcs' instead if possible.","videoElement","rtcDrmConfigure did not specify audioElement, audio will be dropped",'audio/mp4; codecs="opus"',"object","Invalid audioElement, it must be an instance of HTMLMediaElement.","keyFrameNeededPosted","debugCreateMediaDump","next","play","6591266VeIbXo","userId","jitterBufferDelayHint",'ame(keyFrameNeeded),e.enqueue($)}function handleTransform($,e,x){let a=new TransformStream({transform:"audio"===$',"dispatchEvent","reduce"," bytes, playback at ","offset","arrayBuffer","waitingForIdr","Widevine","DRM config mediaBufferMs should be an integer.","hwSecurity","authToken","audio"," bytes)","push","licenseUrl","Default transform mode enabled, ","RTCRtpScriptTransform/TransformStream will not be created, ","GET","baseUrl","video","trim","7377TdQrIK","3000","playoutDelayHint","catch","fpsCertificate","POSITIVE_INFINITY","/license-server-fairplay/cert/","DRM config:","streams","mediaBufferMs","log","codec","onmessage","Target video element (","Applying pre-configured certificate (","webkitURL","Discarding corrupted video frame (no Annex B startcode)"," requesting a new key frame (latency ","PlayReady might not support '","No target media element!","URL","set","warn","data","config","isSafari","forEach","setMediaKeys","buffered"," - ","keySystem",'data}}),e.enqueue($)}let keyFrameNeeded=!1;function videoTransformFunction($,e){postMessage({streamType:"video",f',"paused","wvCertificate","a1d1f1","2000","keyFrameRequestInterval","Several DRM configs detected, rtcDrmOnTrack have to be called with target DRM config.","error","238HZxcdH","HW_SECURE_ALL","Invalid DRM type (","buffer","x-dt-auth-token","clRtcDrmCreateMediaDump",'rame:{type:$.type,timestamp:$.timestamp,data:$.data}}),"key"===$.type&&(keyFrameNeeded=!1),$.data=generateDummyFr',"addEventListener",") failed","keyFrameLogCntr","feed","byteLength","kind","purchase","environment","videoCapabilities","requestMediaKeySystemAccess","temporary","). It has to be a string containing a JWT.","value",".. ","string"];return(w_=function(){return t})()}(function(){const t=Fm,e=w_();for(;;)try{if(parseInt(t(543))/1*(parseInt(t(512))/2)+parseInt(t(473))/3*(parseInt(t(568))/4)+-parseInt(t(672))/5*(-parseInt(t(634))/6)+-parseInt(t(536))/7+parseInt(t(560))/8*(parseInt(t(627))/9)+-parseInt(t(682))/10+-parseInt(t(449))/11===932877)break;e.push(e.shift())}catch{e.push(e.shift())}})();const UR=Wi[Qe(626)],Um=Wi[Qe(602)],yo=Wi[Qe(498)],p5=Wi[Qe(637)],m5=Wi[Qe(579)],_ee=Wi.platform,g5=Wi[Qe(673)],See=p5||m5&&_ee===Qe(564),kee=1e6*(Um?82:yo?220:120),__=Um?5e3:2e3,Eee=Um?1.5:.5;function W0(t){const e=Qe;return typeof t!==e(692)||t===null||t instanceof Element||t instanceof ha?t:function(n){const a=Qe;return!!((n==null?void 0:n[a(515)])instanceof ArrayBuffer&&n!=null&&n[a(683)])}(t)?t[e(559)]():Array[e(563)](t)?t[e(454)]((n,a,o)=>(n[o]=W0(a),n),[]):t instanceof Object?Object[e(638)](t)[e(454)]((n,a)=>(n[a]=W0(t[a]),n),{}):t}class Tee{constructor(e){const n=Qe;this[n(545)]="",this.licenseUrl="",this[n(503)]="",this[n(669)]=[],this[n(497)]=W0(e),this[n(664)]=null,this[n(521)]=0,this[n(571)]=Date.now(),this.videoStartTimestamp=0,this.audioStartTimestamp=0,this.prevSeqNum=-1,this[n(596)]=0,this[n(624)]=0,this.keyFrameNeeded=!0,this.keyFrameNeededPosted=!1,this.keyFrameRequestInterval=__,this.worker=null}}const ds=new Map,Ree=new Uint8Array([60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60]),Cee=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]),Aee=new Uint8Array([213,251,214,184,46,217,62,78,249,138,228,9,49,238,51,183]);function xee(t,e){const n=Qe;e!==void 0&&(t[n(497)][n(482)]=e),(t[n(497)][n(482)]===void 0||t[n(497)].mediaBufferMs<0)&&(t.config[n(482)]=100,Um?t[n(497)][n(482)]=350:!yo&&g5&&(t[n(497)][n(580)]===n(566)||t[n(461)])&&(t[n(497)][n(482)]=1400))}function Oee(t){const e=Qe;let n=!1;if((t[e(497)].video&&t[e(497)].video[e(619)]!=="clear"&&t.config[e(471)][e(554)]==="HW"||t[e(497)][e(463)]&&t[e(497)][e(463)].encryption!==e(670)&&t[e(497)][e(463)][e(554)]==="HW")&&(n=!0),t.hwSecurity=n,xee(t,t[e(497)][e(482)
95]),t.config.authToken===void 0){t.config[e(450)]===void 0&&(t[e(497)][e(450)]=e(525)),t[e(497)][e(551)]===void 0&&(t.config[e(551)]=e(507));const s=window[e(641)](JSON.stringify({userId:t.config[e(450)],sessionId:t[e(497)][e(551)],merchant:t.config[e(574)]}));BR(e(604),s)}else BR(e(516),t.config[e(462)]);for(const s of[t[e(497)].audio,t[e(497)][e(471)]])s&&s[e(619)]!==e(670)&&(s[e(646)]||(s[e(646)]=Cee),s.iv||(s.iv=Aee));t[e(546)]=void 0,t[e(545)]="",t[e(466)]="";const a=t.config[e(526)][e(470)]();var o;if(t[e(497)][e(580)]===e(549)?(t.keySystem=e(603),P0=Ree):t.config.type===e(459)?(t[e(503)]="com.widevine.alpha",g5&&n&&(t[e(503)]+=e(599)),t.config.wvCertificate?t[e(546)]=t[e(497)][e(506)]:t[e(497)][e(610)]?t[e(545)]=t[e(497)][e(610)]:t[e(546)]=t.config[e(526)][e(678)](),t.config.wvLicenseUrl?t[e(466)]=t[e(497)].wvLicenseUrl:t[e(466)]=a+e(681)):t[e(497)][e(580)]===e(566)?(t[e(503)]=e(616),t[e(497)][e(679)]?t.licenseUrl=t[e(497)][e(679)]:t[e(466)]=a+e(542)):t[e(497)].type===e(575)&&(t.keySystem="com.apple.fps",t.config[e(477)]?t[e(546)]=t[e(497)][e(477)]:t[e(497)][e(535)]?t.serverCertificateUrl=t.config[e(535)]:t[e(545)]=a+e(479)+t[e(497)].merchant,t[e(497)][e(680)]?t[e(466)]=t.config.fpsLicenseUrl:t.licenseUrl=a+e(578)),o={licenseUrl:t[e(466)],onFetch:t.config[e(645)]},wc=o,t[e(669)]=[],t.config[e(580)]!==e(575)){t[e(669)][e(465)]({initDataTypes:[e(668)],sessionTypes:["persistent-license",e(529)]});for(const s of[t[e(497)][e(471)],t[e(497)][e(463)]])if(s&&s.encryption!==e(670)){const u=s==t[e(497)][e(471)]?e(471):e(463);let c;t[e(497)][e(580)]===e(459)?c=s[e(554)]==="HW"?e(513):e(685):t[e(497)][e(580)]==="PlayReady"&&(c=s.robustness==="HW"?e(474):e(508)),u===e(471)?t[e(669)][0][e(527)]=[{contentType:'video/mp4; codecs="avc1.640032"',encryptionScheme:s[e(619)]==="cenc"?e(668):"cbcs-1-9",robustness:c||void 0}]:t[e(669)][0][e(595)]=[{contentType:e(691),encryptionScheme:s[e(619)]===e(668)?"cenc":e(671),robustness:c||void 0}]}}else t[e(669)]=[{initDataTypes:[e(630)],videoCapabilities:[{contentType:e(562),robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:e(639),sessionTypes:["temporary"]}];window[e(600)]&&console.info(e(480),t)}function y5(t){const e=Qe;window[e(600)]&&console[e(556)](e(581));let n=t[e(497)].videoElement;(!t[e(497)][e(471)]||t.config[e(471)][e(619)]===e(670))&&(n=t.config.audioElement),t[e(664)]=null;const a=!t.ignoreAudio&&t[e(497)][e(463)]&&t[e(497)].audio[e(619)]!=="clear",o=t[e(497)][e(471)]&&t.config.video[e(619)]!==e(670);t[e(624)]=0,t[e(608)]=!0,t.keyFrameNeededPosted=!1,t[e(509)]=__,t[e(652)]=0,t[e(650)]=0,t[e(597)]=-1,t[e(596)]=0,t.jmuxer=new u_({node:n,mode:a?e(o?663:463):"video",fps:60,drm:t}),yo&&t[e(497)].videoElement&&t[e(497)][e(689)][e(448)]()[e(684)](()=>{})[e(476)](()=>{})}function Iee(t,e){const n=Qe;t[n(652)]===0&&(t[n(652)]=e[n(667)],t[n(509)]=__,t[n(571)]=Date[n(591)]()+2e3);let a=null,o=!1;if(e.data[n(523)]<=4)console[n(495)](n(613)),o=!0;else{const c=new Uint8Array(e[n(496)],0,4);c[0]!=0||c[1]!=0||c[2]!=0||c[3]!=1?(console[n(495)](n(489)),o=!0):(a=function(p,d){const m=
95Bm,f=new DataView(p[m(335)]),b=p.data[m(346)]-2,v=f[m(340)](b);if(v<b){let y=b-v;if(f[m(337)](b-1)!==69)return console[m(341)](m(339)),null;if(f.getUint8(y++)>>>4!==1)return console[m(341)](m(329)),null;const g=new Uint8Array(v-2);let S=0,w=0;for(;y<b-1;){let I=f.getUint8(y++);w>1&&I===3&&(w=0,I=f.getUint8(y++)),I!==0?w=0:++w,g[S++]=I}const k=new DataView(g[m(343)]),T=d===m(327)?16:0,R=T+2+6*k.getUint16(T);return R+2>S?(console.error(m(325)),null):{sai:g[m(345)](0,R),offset:b-v,seq:k.getUint16(R)}}return null}(e,t[n(497)][n(471)][n(619)]),!a&&(console.warn(n(636)),o=!0))}if(a)if(t[n(597)]===-1){if(e[n(580)]!==n(611))return 0;t[n(597)]=a[n(547)]}else{let c=a.seq-t[n(597)];if(c<-32767&&(c+=65536),c<=0)return window[n(600)]&&console[n(495)](n(654)+t[n(597)]+", curr: "+a[n(547)]),0;c>1&&(o=e[n(580)]!==n(611),console[n(495)](n(570)+t[n(597)]+n(502)+a[n(547)]+n(541)+o)),t.prevSeqNum=a[n(547)]}let s=0;o&&!t[n(664)][n(458)]&&(s=-1,t[n(664)][n(644)]());const u=(e[n(667)]-t[n(652)])/9e4;return a&&t[n(664)][n(522)]({video:new Uint8Array(e.data,0,a[n(456)]),videoSampleAuxInfo:a[n(612)],timestamp:u})<0&&(s=-1,console[n(495)](n(573)),y5(t)),s>=0&&e[n(580)]==="key"&&(t[n(596)]=u,console[n(483)](new Date()[n(552)]()[n(559)](11,-1)+" kf at "+u+", playback at "+t[n(497)].videoElement[n(625)])),s}function Dee(t){const e=Qe,n=t.config[e(689)];if(!n||n[e(501)][e(584)]<1||n[e(505)]||n[e(625)]<Eee)return;const a=t[e(497)].mediaBufferMs;if(a===void 0||a<0)throw new Error("targetLatency not set!");const o=n[e(501)][e(565)](n[e(501)][e(584)]-1),s=1e3*(o-n[e(625)])|0;if(!t[e(649)]&&function(u,c,p){const d=Qe;let m;m=c<3*p>>>2?.875:c<=p?1:c<7*p>>>2?1.125:c<9*p>>>2?1.25:c<11*p>>>2?1.375:1.5,m!==u.playbackRate&&(u[d(606)]=m)}(n,s,a),!(s<a+50||s<5*a>>>2))if(t.lastKeyFrameTime>n[e(625)]+.1){const u=1e3*(o-t[e(596)])|0;u>40&&u>a-100?(window[e(600)]&&console.info(new Date().toISOString().slice(11,-1)+e(598)+(n[e(625)]+e(592)+t[e(596)]+" (")+(t.lastKeyFrameTime-n[e(625)])+")"),n[e(625)]=t[e(596)]):console[e(483)](new Date()[e(552)]().slice(11,-1)+e(534)+u)}else!t[e(608)]&&Date[e(591)]()>t[e(571)]&&s>a+100&&s>3*a>>>1&&(window[e(600)]&&console[e(556)](new Date().toISOString()[e(559)](11,-1)+e(490)+s+" ms)"),t[e(608)]=!0,t[e(509)]<16e3&&(t[e(509)]<<=1))}function Lee(t,e){const n=Qe;var a;if(!t.jmuxer||t[n(538)])return 0;t[n(650)]===0&&(t[n(650)]=e[n(667)]);const o=(e[n(667)]-t.audioStartTimestamp)/48e3;if(((a=t.config[n(463)])===null||a===void 0?void 0:a[n(619)])==="cbcs")return t[n(664)][n(522)]({audio:new Uint8Array(e[n(496)]),timestamp:o});const s=function(u){const c=Bm,p=new DataView(u.data),d=u.data[c(346)]-2,m=p.getUint16(d);if(m<d){let f=d-m;if(p[c(337)](d-1)!==69)return console[c(341)](c(339)),null;if(p[c(337)](f++)>>>4!==1)return console[c(341)](c(329)),null;const b=new Uint8Array(m-2);let v=0;for(;f<d-1;){const y=p[c(337)](f++);if(b[v++]=y,v>=16)break}return{sai:b,offset:d-m}}return null}(e);return s?t[n(664)][n(522)]({audio:new Uint8Array(e[n(496)],0,s[n(456)]),audioSampleAuxInfo:s[n(612)],timestamp:o}):(console[n(511)]("SampleAuxInfo extraction failed (audio)"),-1)}function Nee(t,e,n){const a=Qe,o=b5(n);return t[a(580)]?M0(o,t,e):B0(o,t,e)}function M0(t,e,n){const a=Qe;if(t[a(497)][a(471)]&&t.config[a(471)][a(619)]==="clear")return n==null||n[a(632)](e),!1;const o=Date[a(591)]();if(e.type===a(611)){const s=window[a(600)];++t[a(521)]<(s?Number[a(478)]:5)&&(console[a(556)](new Date()[a(552)]().slice(11,-1)+" "+e[a(580)]+", "+(e[a(496)].byteLength+a(455)+t[a(497)][a(689)][a(625)])),s&&t[a(521)]===1&&function(u,c=64,p=64){const d=Qe,m=new Uint8Array(u[d(496)]);let f="",b=0;for(let v=0;v<c&&v<m[d(584)];++v)f+=(m[v]<16?"0":"")+m[v].toString(16)+" ";if(b<m[d(584)])for(b<m[d(584)]-p&&(f+=d(532),b=m[d(584)]-p);b<m[d(584)];b++)f+=(m[b]<16?"0":"")+m[b][d(621)](16)+" ";console.info("["+((u[d(580)]||d(463))+d(561))+d(569)+f[d(472)]())}(e,128,8)),t[a(608)]=!1,t[a(624)]=0,t[a(571)]=o+t[a(509)]}return t[a(624)]+=e.data[a(523)],!t[a(608)]&&t[a(624)]>kee&&(console[a(556)](a(585)),t[a(608)]=!0),t.jmuxer&&(Iee(t,e)<0?t[a(608)]=!0:Dee(t)),n?(!t[a(608)]||!See)&&(e[a(496)]=dee(t[a(608)]),n[a(632)](e)):t[a(608)]!=t[a(445)]&&(t.worker&&t[a(544)][a(660)](t[a(608)]),t[a(445)]=t[a(608)]),t[a(608)]}function Fm(t,e){const n=w_();return(Fm=function(a,o){return n[a-=445]})(t,e)}function B0(t,e,n){const a=Qe;return t[a(497)][a(463)]&&t[a(497)].audio[a(619)]!==a(670)?e[a(496)][a(523)]>0&&Lee(t,e):n&&n[a(632)](e),!1}function rv(t){const e=Qe;if(!t||typeof t!==e(692))throw new TypeError("Invalid config argument type, DRM config must be an object.");if(!(t[e(689)]instanceof HTMLVideoElement))throw new TypeError(e(633));if(t[e(628)]&&!(t.audioElement instanceof HTMLMediaElement))throw new TypeError(e(693));if(t[e(482)]!==void 0&&!Number[e(555)](t[e(482)]))throw new TypeError(e(460));let n=!1,a=!1,o=!1;const s=["cbcs",e(668),e(670)],u=["SW","HW"];
95for(const p of[t[e(471)],t[e(463)]])if(p){if(!s[e(557)](p[e(619)]))throw new RangeError("DRM config encryption value must be one of: "+s[e(593)](", "));if(yo&&p.encryption==="cenc")throw new RangeError(e(688));if(p[e(619)]!==e(670)){if(a=!0,p.keyId){if(!(p[e(646)]instanceof Uint8Array)||p.keyId[e(584)]!==16)throw new TypeError("DRM config keyId must be an instance of 16-byte long Uint8Array.");o=!0}else if(yo)throw new ReferenceError(e(655));if(p.iv&&(!(p.iv instanceof Uint8Array)||p.iv.length!==16))throw new TypeError(e(618));if(p[e(554)]&&!u[e(557)](p.robustness))throw new RangeError(e(658)+u[e(593)](", "));if(p===t[e(471)]&&p[e(484)]!==e(537))throw new RangeError(e(615));yo&&p===t.audio&&p.codec==="opus"&&(n=!0,console.warn("Safari does not support Opus, audio will not be rendered.")),t[e(580)]==="PlayReady"&&(p[e(619)]!==e(668)&&console[e(495)](e(491)+p[e(619)]+"', it's safer to use 'cbcs' instead."),t.sessionId===void 0||t.sessionId[e(557)]("f1")||console.warn(e(674)+t.sessionId+e(643)))}}if(a){const p=[ha[e(558)],ha.Staging,ha[e(665)]];if(!p.includes(t[e(526)]))throw new RangeError(e(583)+p.join(", "));if(t[e(462)]&&typeof t[e(462)]!==e(533))throw new TypeError("Invalid authToken type ("+typeof t[e(462)]+e(530));if(t.type){if(yo){if(t[e(580)]!==e(575))throw new RangeError(e(514)+t[e(580)]+"). Safari only supports FairPlay.")}else if(m5){if(t.type!==e(459)&&t[e(580)]!=="ClearKey")throw new RangeError("Invalid DRM type ("+t.type+e(675))}else if(p5&&t[e(580)]!==e(566)&&t[e(580)]!=="Widevine"&&t[e(580)]!=="ClearKey")throw new RangeError(e(514)+t.type+e(648))}}t.debugLog!==void 0&&(window[e(600)]=t.debugLog),t[e(446)]!==void 0&&(window[e(517)]=t[e(446)]);let c=ds.get(t[e(689)]);!c&&(c=new Tee(t),ds[e(494)](t[e(689)],c)),c.enabled=a,c[e(538)]=n,c[e(649)]=!n&&c[e(497)][e(463)]&&c[e(497)].audio.encryption!==e(670),a&&(c[e(497)].type||(c[e(497)][e(580)]=e(yo?575:459)),o||c[e(497)][e(580)]===e(549)||(c[e(497)][e(580)]=e(549)),Oee(c),function(p){n_(this,void 0,void 0,function*(){const d=Fm;var m,f;let b=p[d(497)][d(689)];if((!p[d(497)][d(471)]||p[d(497)][d(471)].encryption===d(670))&&(b=p[d(497)][d(628)]),!b)throw new Error(d(492));b.src="",b[d(588)]=null,yield b.setMediaKeys(null);let v=null;try{v=yield navigator[d(528)](p[d(503)],p.emeConfig)}catch{}if(!v&&p[d(669)][0]){const g=(m=p[d(669)][0][d(647)])===null||m===void 0?void 0:m[d(553)](d(659));if(g!==void 0&&g>=0){(f=p.emeConfig[0].sessionTypes)===null||f===void 0||f[d(687)](g,1);try{v=yield navigator[d(528)](p[d(503)],p[d(669)])}catch{}}}if(!v){const g=d(576)+p[d(503)]+d(520);return b.dispatchEvent(new CustomEvent(d(640),{detail:{message:g}})),void console[d(511)](g)}let y=null;try{y=yield v.createMediaKeys()}catch{}if(!y){const g=d(540)+p[d(503)]+d(520);return b[d(453)](new CustomEvent("rtcdrmerror",{detail:{message:g}})),void console[d(511)](g)}if(p.serverCertificate)window.clRtcDrmDebugLog&&console[d(556)](d(487)+p[d(546)][d(523)]+d(464)),yield y[d(594)](p[d(546)]);else if(p.serverCertificateUrl){const g={method:d(469)},S=p.serverCertificateUrl;try{const w=yield p[d(497)].onFetch?p.config[d(645)](S,g):fetch(S,g);if(!w.ok){const T=d(601)+w[d(623)];return void b[d(453)](new CustomEvent(d(640),{detail:{message:T}}))}const k=yield w[d(457)]();window.clRtcDrmDebugLog&&console[d(556)]("Fetched certificate from "+S+", "+k[d(523)]+" bytes"),yield y[d(594)](k)}catch(w){const k=w.name+": "+w[d(622)];return console.error(k),void b[d(453)](new CustomEvent(d(640),{detail:{message:k}}))}}yield b[d(500)](y),b[d(519)]("encrypted",wee),y5(p)})}(c)),c[e(497)][e(689)][e(519)](e(448),function(){const p=e;c[p(497)][p(689)][p(625)]>.5&&(c[p(571)]=Date.now())})}const Pee=Qe(582)+Qe(587)+Qe(548)+Qe(653)+Qe(590)+Qe(620)+Qe(614)+Qe(504)+Qe(518)+Qe(452)+Qe(642)+Qe(686)+"meNeeded=$.data};";function b5(t){const e=Qe;if(ds[e(677)]===0)throw new TypeError(e(550));let n;if(t&&t[e(689)])n=t[e(689)];else{if(ds.size!==1)throw new TypeError(e(510));n=ds[e(638)]()[e(447)]()[e(531)]}const a=ds[e(662)](n);if(!a){let o="";throw ds[e(499)]((s,u)=>{o+=u.id+", "}),o=o.slice(0,-2),new TypeError(e(486)+n.id+e(657)+o+"]")}return a}function v5(t,e){const n=Qe;if(t&&t[n(497)][n(689)]){const a=t[n(497)][n(689)];if(a[n(501)].length>0){const o=a.buffered[n(565)](a[n(501)][n(584)]-1)-a[n(625)];e.playoutDelayHint=e.jitterBufferDelayHint=e.jitterBufferTarget=o}setTimeout(v5,1e3,t,e)}}function Wee(t,e){const n=Qe;var a,o;const s=t[n(629)][n(524)];s==="video"&&(t[n(661)][n(475)]=t[n(661)][n(451)]=t[n(661)][n(605)]=0);const u=b5(e),c=u[n(497)].videoElement,p=u[n(497)][n(628)];
95if(u[n(607)]){if(u[n(497)].customTransform)window.clRtcDrmDebugLog&&console[n(556)](n(468)+n(572));else if(window[n(600)]&&console[n(556)](n(467)+(n(UR?589:609)+n(617))),UR){if(u[n(544)]=function(d){const m=Qe,f=window[m(493)]||window[m(488)],b=window[m(666)],v=window[m(586)];if(!(f&&b&&v&&d))return null;const y=new b([d]);return new v(f[m(631)](y))}(Pee),u[n(544)]==null)throw new Error(n(539));u[n(544)][n(485)]=d=>{const m=n;d[m(496)][m(567)]===m(471)?M0(u,d[m(496)].frame,null):B0(u,d[m(496)][m(651)],null)},t[n(661)].transform=new RTCRtpScriptTransform(u.worker,{operation:s})}else{const d=s===n(471)?M0:B0,m={drm:u,transform:(g,S)=>{d(u,g,S)}},f=t.receiver.createEncodedStreams(),b=new TransformStream({transform:m.transform[n(656)](m)}),{readable:v,writable:y}=f;v[n(577)](b)[n(635)](y)}if(s==="audio"&&((a=u[n(497)][n(463)])===null||a===void 0?void 0:a.encryption)===n(670)){if(!p)return void console.warn(n(690));p[n(588)]!==t[n(481)][0]&&(p[n(588)]=t[n(481)][0]),u[n(497)].videoElement&&(t[n(661)][n(475)]=t[n(661)].jitterBufferDelayHint=t[n(661)][n(605)]=u[n(497)][n(482)],v5(u,t[n(661)]))}else s==="video"&&((o=u.config[n(471)])===null||o===void 0?void 0:o[n(619)])==="clear"&&c[n(588)]!==t[n(481)][0]&&(c.srcObject=t.streams[0])}else c[n(588)]!==t[n(481)][0]&&(c.srcObject=t[n(481)][0])}const Ct=Ni.get("View");Ct.setLevel(Ni.DEBUG);const av={metadata:!1,enableDRM:!1,disableVideo:!1,disableAudio:!1,peerConfig:{autoInitStats:!0,statsIntervalMs:1e3}};class foe extends s5{constructor(e,n,a=null,o=!0){e&&Ct.warn("The streamName property has been deprecated. In a future release, this will be removed. Please do not rely on this value. Instead, set via token generator"),super(null,n,Ct,o),this.payloadTypeCodec={},this.tracksMidValues={},this.drmOptionsMap=null,this.eventQueue=[],this.isMainStreamActive=!1,a&&(this.on(Er.track,s=>{a.srcObject=s.streams[0]}),Ct.warn("The mediaElement property has been deprecated. In a future release, this will be removed. Please do not rely on this value. Instead, do this in either the `track` or the `active` broadcast event."))}async connect(e=av){this.options=or(Je(Je({},av),e),{peerConfig:Je(Je({},av.peerConfig),e.peerConfig),setSDPToPeer:!1}),this.eventQueue.length=0,await this.initConnection({migrate:!1})}async select(e={}){Ct.debug("Viewer select layer values: ",e),await this.signaling.cmd("select",{layer:e}),Ct.info("Connected to streamName: ",this.streamName)}async addRemoteTrack(e,n){Ct.info("Viewer adding remote track",e);const a=await this.webRTCPeer.addRemoteTrack(e,n);for(const o of n)o.addTrack(a.receiver.track);return a}async project(e,n){for(const a of n){if(!a.trackId&&!a.media)throw Ct.error("Error in projection mapping, trackId or mediaId must be set"),new Error("Error in projection mapping, trackId or mediaId must be set");const o=this.webRTCPeer.getRTCPeer();if(a.mediaId&&!o.getTransceivers().find(s=>s.mid===a.mediaId.toString()))throw Ct.error("Error in projection mapping, ".concat(a.mediaId," mid not found in local transceivers")),new Error("Error in projection mapping, ".concat(a.mediaId," mid not found in local transceivers"))}Ct.debug("Viewer project source: layer mappings: ",e,n),await this.signaling.cmd("project",{sourceId:e,mapping:n}),Ct.info("Projection done")}async unproject(e){Ct.debug("Viewer unproject mediaIds: ",e),await this.signaling.cmd("unproject",{mediaIds:e}),Ct.info("Unprojection done")}async replaceConnection(){Ct.info("Migrating current connection"),await this.initConnection({migrate:!0})}stop(){var e,n;super.stop(),(e=this.drmOptionsMap)==null||e.clear(),this.DRMProfile=null,(n=this.worker)==null||n.terminate(),this.worker=null,this.payloadTypeCodec={},this.tracksMidValues={},this.eventQueue.length=0}async initConnection(e){var n;Ct.debug("Viewer connect options values: ",this.options),this.stopReconnection=!1;let a;if(!e.migrate&&this.isActive())throw Ct.warn("Viewer currently subscribed"),new Error("Viewer currently subscribed");let o;try{o=await this.tokenGenerator(),this.options.peerConfig.iceServers=o==null?void 0:o.iceServers,this.options.peerConfig.encodedInsertableStreams=I0&&(this.options.enableDRM||this.options.metadata)}catch(S){throw Ct.error("Error generating token."),S instanceof qp&&(S.status===401||!this.autoReconnect?this.stopReconnection=!0:this.reconnect()),S}if(!o)throw Ct.error("Error while subscribing. Subscriber data required"),new Error("Subscriber data required");const s=i5(o.jwt);this.streamName=s.millicast.streamName;const u=new a5({streamName:this.streamName,url:"".concat(o.urls[0],"?token=").concat(o.jwt)});o.subscriberToken&&(this.subscriberToken=o.subscriberToken);const c=e.migrate?new vc:this.webRTCPeer;await c.createRTCPeer(this.options.peerConfig),(n=this.stopReemitingWebRTCPeerInstanceEvents)==null||n.call(this),this.stopReemitingWebRTCPeerInstanceEvents=Hp(c,this,Object.values(Er).filter(S=>S!==Er.track)),this.options.metadata&&(this.worker||(this.worker=new D0),this.worker.onmessage=S=>{if(S.data.event==="metadata"){const w=new TextDecoder,k=S.data.metadata;if(k.mid=S.data.mid,k.track=this.tracksMidValues[S.data.mid],k.uuid){const T=k.uuid;k.uuid=T.reduce((R,I)=>R+I.toString(16).padStart(2,"0"),""),k.uuid=k.uuid.replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/,"$1-$2-$3-$4-$5")}if(k.timecode&&(k.timecode=new Date(w.decode(k.timecode))),k.unregistered){const T=w.decode(k.unregistered);try{const R=JSON.parse(T);k.unregistered=R}catch{Ct.info("The content could not be converted to JSON, returning raw bytes instead")}}
95this.emit("metadata",k),this.emit("onMetadata",k)}}),c.on(Er.track,S=>{if(!this.isMainStreamActive){this.eventQueue.push(S);return}this.onTrackEvent(S)}),u.on(za.broadcastEvent,async S=>{if(!this.isMainStreamActive&&S.name==="active"){if(this.mainSourceId=S.data.sourceId,!this.DRMProfile&&S.data.encryption){const w=await this.tokenGenerator();w.drmObject&&(this.DRMProfile=w.drmObject)}for(this.emit(za.broadcastEvent,S),this.isMainStreamActive=!0;this.eventQueue.length>0;)this.onTrackEvent(this.eventQueue.shift());return}S.name==="inactive"&&this.isMainStreamActive&&this.mainSourceId===S.data.sourceId&&(this.isMainStreamActive=!1),this.emit(za.broadcastEvent,S)});const p=c.getRTCLocalSDP(or(Je({},this.options),{stereo:!0})),d=u.connect();a=await Promise.all([p,d]);const m=a[0];let f=this.signaling;this.signaling=u;const b=this.signaling.subscribe(m,or(Je({},this.options),{vad:this.options.multiplexedAudioTracks>0})),v=c.peer.setLocalDescription(c.sessionDescription);a=await Promise.all([b,v]);const y=a[0];this.payloadTypeCodec=Dn.getCodecPayloadType(y),await c.setRTCRemoteSDP(y),Ct.info("Connected to streamName: ",this.streamName);let g=this.webRTCPeer;this.webRTCPeer=c,this.setReconnect(),e.migrate&&this.webRTCPeer.on(Er.connectionStateChange,S=>{var w,k;S==="connected"?setTimeout(()=>{var T,R;(T=f==null?void 0:f.close)==null||T.call(f),(R=g==null?void 0:g.closeRTCPeer)==null||R.call(g),f=g=null,Ct.info("Current connection migrated")},1e3):["disconnected","failed","closed"].includes(S)&&((w=f==null?void 0:f.close)==null||w.call(f),(k=g==null?void 0:g.closeRTCPeer)==null||k.call(g),f=g=null)})}onTrackEvent(e){var n,a,o;if(this.tracksMidValues[(n=e.transceiver)==null?void 0:n.mid]=e.track,this.isDRMOn){const s=e.transceiver.mid,u=this.getDRMConfiguration(s);try{Wee(e,u)}catch(c){Ct.error("Failed to apply DRM on media Id:",s,"error is: ",c),this.emit("error",new Error("Failed to apply DRM on media Id: "+s+" error is: "+c))}this.worker||(this.worker=new D0),this.worker.addEventListener("message",c=>{c.data.event==="complete"&&Nee(c.data.frame,null,u)})}if(this.options.metadata){if(l5)e.receiver.transform=new RTCRtpScriptTransform(this.worker,{name:"receiverTransform",payloadTypeCodec:Je({},this.payloadTypeCodec),codec:this.options.metadata&&"h264",mid:(a=e.transceiver)==null?void 0:a.mid});else if(I0){const{readable:s,writable:u}=e.receiver.createEncodedStreams();this.worker.postMessage({action:"insertable-streams-receiver",payloadTypeCodec:Je({},this.payloadTypeCodec),codec:this.options.metadata&&"h264",mid:(o=e.transceiver)==null?void 0:o.mid,readable:s,writable:u},[s,u])}}this.emit(Er.track,e)}getDRMConfiguration(e){return this.drmOptionsMap?this.drmOptionsMap.get(e):null}async onRtcDrmFetch(e,n){return n.headers||(n.headers=new Headers),n.headers.get("x-dt-custom-data")&&n.headers.delete("x-dt-custom-data"),this.subscriberToken?n.headers.append("Authorization","Bearer ".concat(this.subscriberToken)):Ct.warn("onRtcDrmFetch: no subscriberToken"),fetch(e,n)}configureDRM(e){if(!e)throw new Error("Required DRM options is not provided");this.drmOptionsMap||(this.drmOptionsMap=new Map);const n={merchant:"dolby",environment:ha.Production,customTransform:this.options.metadata,videoElement:e.videoElement,audioElement:e.audioElement,video:{codec:"H264",encryption:"cbcs",keyId:IR(e.videoEncryptionParams.keyId),iv:IR(e.videoEncryptionParams.iv)},audio:{codec:"opus",encryption:"clear"},onFetch:this.onRtcDrmFetch.bind(this)};e.mediaBufferMs&&(n.mediaBufferMs=e.mediaBufferMs),this.DRMProfile&&(this.DRMProfile.playReadyUrl&&(n.prLicenseUrl=this.DRMProfile.playReadyUrl),this.DRMProfile.widevineUrl&&(n.wvLicenseUrl=this.DRMProfile.widevineUrl),this.DRMProfile.fairPlayUrl&&(n.fpsLicenseUrl=this.DRMProfile.fairPlayUrl),this.DRMProfile.fairPlayCertUrl&&(n.fpsCertificateUrl=this.DRMProfile.fairPlayCertUrl));try{rv(n),this.drmOptionsMap.set(e.videoMid,n),e.audioMid&&this.drmOptionsMap.set(e.audioMid,n),n.videoElement.addEventListener("rtcdrmerror",a=>{Ct.error("DRM error: ",a.detail.message,"in video element:",n.videoElement.id),this.emit("error",new Error(a.detail.message))})}catch(a){Ct.error("Failed to configure DRM with options:",e,"error is:",a)}}removeDRMConfiguration(e){var n;(n=this.drmOptionsMap)==null||n.delete(e)}get isDRMOn(){return!!this.drmOptionsMap&&this.drmOptionsMap.size>0}exchangeDRMConfiguration(e,n){const a=this.getDRMConfiguration(e),o=this.getDRMConfiguration(n);if(a===null)throw new Error("No DRM configuration found for "+e);if(o===null)throw new Error("No DRM configuration found for "+n);DR(a.video,o.video,"keyId"),DR(a.video,o.video,"iv");try{rv(a)}catch(s){Ct.error("Failed to configure DRM with options:",a,"error is:",s)}try{rv(o)}catch(s){Ct.error("Failed to configure DRM with options:",o,"error is:",s)}}}const Oi={webcam:null,frame:null},U0={webcam:null,frame:null};let Nd=null,Xp=null,FR=null,Jp=null;const F0=(t,e=100,n=!1)=>
95{if(Nd)return Jp=t,$0(e,n),FR.stream;const a=new(window.AudioContext||window.webkitAudioContext),o=a.createMediaStreamSource(new MediaStream([t])),s=a.createGain(),u=a.createMediaStreamDestination();return o.connect(s),s.connect(u),Nd=a,Xp=s,FR=u,Jp=t,$0(e,n),u.stream},$0=(t,e=!1)=>{if(!Xp)return;const n=e?0:Math.max(0,Math.min(1,t/100));Xp.gain.setValueAtTime(n,Nd.currentTime),Jp&&(Jp.enabled=!e)},Mee=async(t,e,n=!1)=>{if(!t)return!1;try{return Xp&&Nd&&Nd.state!=="closed"?$0(e,n):t.getAudioTracks().length&&F0(t.getAudioTracks()[0],e,n),t.getAudioTracks().forEach(a=>{a.enabled=!n}),!0}catch(a){return console.error("[mediaDevices] Failed to update stream volume",a),!1}},Bee=async t=>{const{idVideo:e,idAudio:n,webcamOn:a=!0,micVolume:o=100,hasWebcamPermission:s=!0}=t;if(!a||!s){console.warn("[getWebcamStream] Webcam disabled or no permission");try{const b=(await navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0];return F0(b,o,!1)}catch(b){return console.error("[getWebcamStream] No audio available",b),new MediaStream}}const u=e?{deviceId:{exact:e},frameRate:60}:!0,c=n?{deviceId:{exact:n},noiseSuppression:!0,echoCancellation:!0}:!0;let p=null,d=null;try{p=await navigator.mediaDevices.getUserMedia({video:u})}catch(b){console.error("[getWebcamStream] Failed to get video stream",b)}if(!d)try{d=(await navigator.mediaDevices.getUserMedia({audio:c})).getAudioTracks()[0]}catch(b){console.warn("[getWebcamStream] Audio permission denied or failed",b)}let m=null;d&&(m=F0(d,o,!1));const f=[...(p==null?void 0:p.getVideoTracks())||[],...m?m.getAudioTracks():[]];if(!f.length)throw new Error("[getWebcamStream] No tracks available");return new MediaStream(f)},Uee=(t,e,n,a)=>{if(Oi[a])return;const o=`${a}-${e}`,s=()=>wi.getPublisher({token:n,streamName:o});let u=0;const c=navigator.connection;if(c!=null&&c.effectiveType)switch(c.effectiveType){case"slow-2g":u=2e3;break;case"2g":u=4e3;break;case"3g":u=4e4;break;default:u=0;break}Oi[a]=new XQ(o,s),Oi[a].connect({mediaStream:t,simulcast:!0,bandwidth:u}).then(()=>{U0[a]=setInterval(()=>$ee(a),5e3)}).catch(p=>{console.error(`[Millicast Upload] Connection failed for ${a}:`,p)})},Fee=t=>{var e;Oi[t]&&(U0[t]&&clearInterval(U0[t]),(e=Oi[t])==null||e.stop(),Oi[t]=null)},$ee=async t=>{Oi[t]&&!Oi[t].isActive()&&await Oi[t].reconnect()},zee=600,jee=3e3,S_=()=>new Promise((t,e)=>{if(window.WebcasterApiV6){t();return}const n=document.createElement("script");n.src="https://nanocosmos.github.io/webcaster/dist/nanostream.webcaster.js",n.async=!0,n.crossOrigin="anonymous",n.onload=()=>t(),n.onerror=()=>e(new Error("Failed to load nanoStream Webcaster")),document.head.appendChild(n)}),Gee=async t=>{var p,d;await S_();const e=window.WebcasterApiV6.DeviceUtils;let n,a=[],o=[],s,u;try{n=await e.getAvailableMediaDevices(),a=window.WebcasterApiV6.DeviceUtils.filterDevices(n,["videoinput"]),o=window.WebcasterApiV6.DeviceUtils.filterDevices(n,["audioinput"]),s=t.idVideo||((p=a[0])==null?void 0:p.deviceId),u=t.idAudio||((d=o[0])==null?void 0:d.deviceId)}catch{console.error("Failed to request available devices");try{if(t.webcamOn!==!1)try{const f=await navigator.mediaDevices.getUserMedia({video:!0,audio:!0});if(f.getVideoTracks().length>0)return f}catch(f){console.error("[getWebcamStreamForNanostream] getUserMedia video+audio failed, will try audio only:",f)}try{return await navigator.mediaDevices.getUserMedia({audio:!0})}catch(f){return console.error("[getWebcamStreamForNanostream] getUserMedia audio only failed:",f),null}}catch(f){return console.error("Failed to get media permission:",f),null}}let c=null;try{if(c=await navigator.mediaDevices.getUserMedia({audio:u?{deviceId:{exact:u},autoGainControl:!0,channelCount:2,echoCancellation:!1,noiseSuppression:!1}:!0,video:s?{deviceId:{exact:s}}:void 0}),c.getAudioTracks().length===0)throw console.error("[getWebcamStreamForNanostream] No audio track in stream"),new Error("No audio track in stream")}catch(m){throw console.error("Failed to acquire media stream:",m),m}return c},Xr={frame:null,webcam:null},Ha={frame:null,webcam:null},Hee=(t,e,n=100)=>{Ha[e]&&(Ha[e].context.close(),Ha[e]=null);const a=new AudioContext,o=a.createMediaStreamSource(t),s=a.createGain(),u=a.createMediaStreamDestination();s.gain.value=n/100,o.connect(s),s.connect(u),Ha[e]={context:a,gainNode:s,source:o};const c=new MediaStream;
95return t.getVideoTracks().forEach(p=>c.addTrack(p)),u.stream.getAudioTracks().forEach(p=>c.addTrack(p)),c},Vee=async(t,e,n,a=100)=>{await S_();const o="https://bintu-webrtc.nanocosmos.de/p/webrtc",s="rtmp://bintu-stream.nanocosmos.de:1935/live";if(!t.active)throw new Error(`[nanoStream:${n}] Stream is not active`);if(Xr[n]){try{await Xr[n].stopBroadcast(),await Xr[n].dispose()}catch(p){console.warn(`[nanoStream:${n}] Error disposing previous instance:`,p)}Xr[n]=null}const u=t.getAudioTracks().length>0?Hee(t,n,a):t,c=n==="webcam"?zee:jee;Xr[n]=new window.WebcasterApiV6.Webcaster({inputCfg:{mediaStream:u,broadcastCfg:{transcodeAudioBitrateBps:window.WebcasterApiV6.HelperUtils.kbps(128),maxAudioBitrateBps:window.WebcasterApiV6.HelperUtils.kbps(128),maxVideoBitrateBps:window.WebcasterApiV6.HelperUtils.kbps(c),maxEncodingFramerate:30}},ingestUrl:s,streamName:e,serverUrl:o,previewVideoElId:"preview",metrics:{accountId:"blacklabz",accountKey:"bla2XqNNzcQzA6lD"}}),Xr[n].onError=p=>{console.error(`[nanoStream:${n}] Error:`,p)},await Xr[n].setup(),await Xr[n].startBroadcast()},Yee=async(t,e,n=!1,a="webcam")=>{try{const o=t.getAudioTracks();if(o.length===0)return console.warn(`[nanoStream:${a}] No audio tracks in stream`),!1;if(o.forEach(s=>{s.enabled=!n}),Ha[a]){const s=n?0:e/100;Ha[a].gainNode.gain.setValueAtTime(s,Ha[a].context.currentTime)}return!0}catch(o){return console.error(`[nanoStream:${a}] Error updating volume:`,o),!1}},$R=async t=>{if(!Xr[t]){console.warn(`[nanoStream:${t}] No active instance`);return}try{await Xr[t].stopBroadcast(),await Xr[t].dispose(),Ha[t]&&(await Ha[t].context.close(),Ha[t]=null)}catch(e){console.error(`[nanoStream:${t}] Error stopping:`,e)}finally{Xr[t]=null}},qee=async()=>{await $R("frame"),await $R("webcam")},Hu=ke.createEffect(async t=>(await qn().get(`/room/owner/${t}`)).data),zR=ke.createEffect(async t=>(await qn().post(`/room/owner/${t.uuid}`,{amount:t.amount,depositCurrency:t.userCurrency})).data),iv=ke.createEffect(async t=>(await qn().put(`/room/owner/${t}`)).data),ov=ke.createEffect(async t=>(await qn().delete(`/room/owner/${t}`)).data),Zee=ke.createEffect(async t=>(await qn().delete(`/room/owner/${t}/game`)).data),Kee=ke.createEffect(async t=>(await qn().post(`/room/owner/${t.uuid}/game`,{gameCode:t.gameCode})).data),Xee=ke.createEffect(async t=>{const e=Object.entries(t.data).map(([a,o])=>({source:a,status:o}));return(await qn().patch(`/room/owner/${t.uuid}/source`,{data:e})).data}),lo=ke.createEffect(async()=>{try{await aJ();const t=iJ(),e=oJ(),n=t.filter(u=>u.deviceId!==""),a=e.filter(u=>u.deviceId!==""),o=n.map(u=>({value:u.deviceId,title:u.label||`Microphone ${u.deviceId.slice(-4)}`})),s=a.map(u=>({value:u.deviceId,title:u.label||`Camera ${u.deviceId.slice(-4)}`}));return{micSources:o,webCamSources:s,hasNoMicrophonePermissions:n.length===0,hasNoWebcamPermissions:a.length===0,hasPermissionError:n.length===0||a.length===0}}catch(t){throw console.error("Error initializing devices:",t),t}}),Pf=ke.createEffect(async t=>{try{return{success:!0,stream:await lJ(t.frameRef)}}catch(e){return console.error("Frame stream error:",e),{success:!1,error:e}}}),jR=ke.createEffect(()=>!sJ()),sv=ke.createEffect(async t=>{const{idVideo:e,idAudio:n,webcamOn:a,micVolume:o,hasWebcamPermission:s,streamProvider:u}=t;return u===da.NANOSTREAM?await Gee({idVideo:e,idAudio:n,webcamOn:a,micVolume:o,hasWebcamPermission:s}):await Bee({idVideo:e,idAudio:n,webcamOn:a,micVolume:o,hasWebcamPermission:s})}),GR=ke.createEffect(t=>{Uee(t.stream,t.dolbyName,t.dolbyToken,t.type)}),Jee=ke.createEffect(async t=>{await Mee(t.stream,t.volume,t.muted)});ke.createEffect(()=>{Fee("webcam")});const Qee=ke.createEffect(async t=>(await qn().post(`/chat/${t.chatId}/banUserFromChat`,{userId:t.userId}),{userId:t.userId})),ete=ke.createEffect(async()=>{await S_()}),HR=ke.createEffect(async()=>{await qee()}),VR=ke.createEffect(t=>{Vee(t.stream,t.streamName,t.type)}),tte=ke.createEffect(async t=>{await Yee(t.stream,t.volume,t.muted)}),YR=ke.createEvent("loadStreamerCredentials"),nte=ke.createEvent("loadStreamerDepositEvent"),rte=ke.createEvent("loadStreamerReadyEvent"),qR=ke.createEvent("loadStreamerCloseEvent"),ate=ke.createEvent("streamerStartFailedEvent"),ite=ke.createEvent("streamerDepositFailedEvent"),ote=ke.createEvent("streamerRoomClosedEvent"),ste=ke.createEvent("loadStreamerSetOriginalGameEvent"),lte=ke.createEvent("loadStreamerUnsetGameEvent"),cte=ke.createEvent("loadStreamerSetSourceStatusEvent"),ZR=ke.createEvent("setSettingsMicVolumeEvent"),ute=ke.createEvent("setSettingsMicSourceIdEvent"),dte=ke.createEvent("setSettingsWebCamSourceIdEvent"),hte=ke.createEvent("unsetStreamerCredentialsEvent"),fte=ke.createEvent("setSettingsWebCamIsEnabledEvent"),pte=ke.createEvent("setParentSidebarShowWebcamEvent"),KR=ke.createEvent("setSettingsMicIsMutedEvent"),XR=ke.createEvent("initializeDevicesEvent"),lv=ke.createEvent("setDeviceListsEvent"),cv=ke.createEvent("setPermissionErrorEvent"),uv=ke.createEvent("setDevicesLoadingEvent"),JR=ke.createEvent("setNoMicrophonePermissionsEvent"),QR=ke.createEvent("setNoWebcamPermissionsEvent"),eC=ke.createEvent("attemptFrameStreamEvent"),dv=ke.createEvent("setFrameStreamEvent"),tC=ke.createEvent("setFrameStatusEvent"),mte=ke.createEvent("setShowFrameRetryEvent"),gte=ke.createEvent("setFrameRetryAttemptEvent"),hv=ke.createEvent("setIsRetryingFrameEvent"),yte=ke.createEvent("setFrameRetryCanceledEvent"),bte=ke.createEvent("stopFrameStreamEvent"),nC=ke.createEvent("checkRestrictionTargetEvent"),rC=ke.createEvent("getWebcamStreamEvent"),Cl=ke.createEvent("setWebcamStreamEvent"),aC=ke.createEvent("stopWebcamStreamEvent");ke.createEvent("updateWebcamVolumeEvent");const vte=ke.createEvent("muteUserEvent"),wte=ke.createEvent("streamerPageUnloadEvent"),_te="tribes.errors.deposit.insufficient_balance",Ste=t=>{var n;const e=t==null?void 0:t.response;return(e==null?void 0:e.status)===400&&((n=e.data)==null?void 0:n.status)===_te?"insufficient-balance":"unknown"},kte=t=>{var n;return((n=t.response)==null?void 0:n.status)===402?"insufficient-balance":"unknown"},w5={id:0,dolbyName:"",dolbyToken:"",tokenConnection:"",tokenSubscription:""},Al=ke.store(w5),iC=ke.store("");Hu.pending;const Yl=ke.store(100),z0=ke.store(""),j0=ke.store(""),fp=ke.store(!0),Ete=ke.store(!0),Vu=ke.store(!1),Tte=ke.store([]),Rte=ke.store([]),Cte=ke.store(!0),Ate=ke.store(!1),xte=ke.store(!1),Ote=ke.store(!1),Wf=ke.store(null),Ite=ke.store(!1),Dte=ke.store(!1),Lte=ke.store(0),Nte=ke.store(!1),Pte=ke.store(!1),Wte=ke.store(!1),Ma=ke.store(null),oC=ke.store(0),sC=Vn(Ma,Yl,Vu,(t,e,n)=>({stream:t,volume:e,muted:n})),Mte=Vn(yd,gd,fp,Yl,(t,e,n,a)=>({isLive:t,isStreamer:e,webcamEnabled:n,micVolume:a})),Bte=Vn(j0,z0,Ma,(t,e,n)=>({webcamId:t,micId:e,existingAudioTrack:(n==null?void 0:n.getAudioTracks()[0])||null})),Ute=Vn(Mte,Bte,(t,e)=>({...t,...e})),Fte=()=>{ie({source:Vn(cn,gd),filter:([t,e])=>
95(t==null?void 0:t.room.streamProvider)===da.NANOSTREAM&&e,fn:([t])=>t,target:ete}),ie({source:Vn(pa,gd),filter:([t,e])=>!!(t&&e),fn:([t])=>t,target:YR}),ie({clock:hte,fn:()=>w5,target:Al}),ie({clock:YR,target:Hu}),ie({clock:Hu.doneData,target:Al}),ie({clock:Hu.done,fn:()=>"",target:iC}),ie({clock:Hu.failData,fn:t=>(t==null?void 0:t.message)||"Loading error",target:iC}),ie({clock:nte,target:zR}),ie({clock:zR.failData,fn:Ste,target:ite}),ie({clock:cte,target:Xee}),ie({source:pa,clock:rte,target:iv}),ie({clock:iv.done,fn:()=>!0,target:Up}),ie({clock:iv.failData,fn:kte,target:ate}),ie({clock:ov.done,fn:()=>!1,target:Up}),ie({clock:ov.done,fn:()=>{},target:ote}),ie({clock:lte,target:Zee}),ie({source:ste,target:Kee}),ie({clock:ZR,target:Yl}),ie({clock:ZR,fn:t=>!(t>0),target:Vu}),ie({clock:ute,target:z0}),ie({clock:dte,target:j0}),ie({clock:KR,target:Vu}),ie({clock:KR,fn:t=>t?0:100,target:Yl}),ie({clock:fte,target:fp}),ie({clock:pte,target:Ete}),ie({clock:XR,target:uv.prepend(()=>!0)}),ie({clock:XR,target:lo}),ie({clock:lo.doneData,fn:t=>({micSources:t.micSources,webCamSources:t.webCamSources}),target:lv}),ie({clock:lo.doneData,fn:t=>t.hasNoMicrophonePermissions,target:JR}),ie({clock:lo.doneData,fn:t=>t.hasNoWebcamPermissions,target:QR}),ie({clock:lo.doneData,fn:t=>t.hasPermissionError,target:cv}),ie({clock:lo.finally,fn:()=>!1,target:uv}),ie({clock:lo.failData,fn:()=>!0,target:cv}),ie({clock:lv,fn:t=>t.micSources,target:Tte}),ie({clock:lv,fn:t=>t.webCamSources,target:Rte}),ie({clock:uv,target:Cte}),ie({clock:cv,target:Ate}),ie({clock:JR,target:xte}),ie({clock:QR,target:Ote}),ie({clock:eC,target:hv.prepend(()=>!0)}),ie({clock:eC,target:Pf}),ie({clock:Pf.doneData,filter:t=>t.success,fn:t=>t.stream,target:dv}),ie({clock:Pf.doneData,filter:t=>t.success,fn:()=>!0,target:tC}),ie({clock:Pf.finally,fn:()=>!1,target:hv}),ie({clock:dv,target:Wf}),ie({clock:tC,target:Ite}),ie({clock:mte,target:Dte}),ie({clock:gte,target:Lte}),ie({clock:hv,target:Nte}),ie({clock:yte,target:Pte}),ie({source:pa,clock:qR,target:ov}),ie({source:cn,clock:qR,filter:t=>
95(t==null?void 0:t.room.streamProvider)===da.NANOSTREAM,target:HR}),ie({clock:bte,source:Wf,filter:t=>t!==null,fn:t=>(t==null||t.getTracks().forEach(e=>e.stop()),null),target:dv}),ie({clock:Wf,source:Al,filter:(t,e)=>e!==null&&t.dolbyName!==void 0&&t.dolbyName!=="",fn:(t,e)=>({stream:e,dolbyName:t.dolbyName,dolbyToken:t.dolbyToken,type:"frame"}),target:GR}),ie({clock:Wf,source:Al,filter:(t,e)=>e!==null&&t.nanostreamFrameId!==void 0,fn:(t,e)=>({stream:e,streamName:t.nanostreamFrameId,type:"frame"}),target:VR}),ie({source:cn,clock:wte,filter:t=>(t==null?void 0:t.room.streamProvider)===da.NANOSTREAM,target:HR}),ie({clock:nC,target:jR}),ie({clock:jR.doneData,target:Wte}),ie({clock:lo.done,target:nC}),ie({clock:rC,target:sv}),ie({clock:sv.doneData,target:Cl}),ie({clock:Cl,target:Ma}),ie({clock:aC,source:Ma,filter:t=>t!==null,fn:t=>(t==null||t.getVideoTracks().forEach(e=>e.stop()),new MediaStream(t.getAudioTracks())),target:Cl}),ie({clock:Ma,source:Al,filter:(t,e)=>{const n=((e==null?void 0:e.getVideoTracks().length)||0)>0,a=((e==null?void 0:e.getAudioTracks().length)||0)>0;return e!==null&&t.dolbyName!=null&&t.dolbyName!==""&&t.dolbyToken!==""&&(n||a)},fn:(t,e)=>({stream:e,dolbyName:t.dolbyName,dolbyToken:t.dolbyToken,type:"webcam"}),target:GR}),ie({clock:Ma,source:Al,filter:(t,e)=>{const n=((e==null?void 0:e.getVideoTracks().length)||0)>0,a=((e==null?void 0:e.getAudioTracks().length)||0)>0;return e!==null&&t.nanostreamWebcamId!==""&&(n||a)},fn:(t,e)=>({stream:e,streamName:t.nanostreamWebcamId,type:"webcam"}),target:VR}),ie({clock:[Yl,Vu,Ma],source:sC,filter:({stream:t})=>{var e;return!!t&&((e=cn.getState())==null?void 0:e.room.streamProvider)===da.DOLBY},fn:({stream:t,volume:e,muted:n})=>({stream:t,volume:e,muted:n}),target:Jee}),ie({clock:[Yl,Vu,Ma],source:sC,filter:({stream:t})=>{var e;return!!t&&((e=cn.getState())==null?void 0:e.room.streamProvider)===da.NA
95NOSTREAM},fn:({stream:t,volume:e,muted:n})=>({stream:t,volume:e,muted:n}),target:tte}),ie({clock:[j0,z0,yd,fp],source:Ute,filter:({isLive:t,isStreamer:e,webcamEnabled:n})=>t&&e&&n,fn:({webcamId:t,micId:e,webcamEnabled:n,micVolume:a})=>{var s;return{idVideo:t||"",idAudio:e||"",webcamOn:n,micVolume:a,streamProvider:((s=cn.getState())==null?void 0:s.room.streamProvider)||da.NANOSTREAM}},target:rC}),ie({clock:sv.doneData,fn:t=>t,target:Cl}),ie({clock:fp,source:Ma,fn:(t,e)=>{if(!e){if(t){t.getVideoTracks().forEach(a=>{a.stop()});const n=new MediaStream(t.getAudioTracks());return console.warn("Created audio-only stream:",{audioTracks:n.getAudioTracks().length,tracks:n.getTracks().map(a=>({id:a.id,kind:a.kind,enabled:a.enabled}))}),n}return null}return t||null},target:Cl}),ie({clock:aC,source:Ma,filter:t=>!!t,fn:t=>(t.getVideoTracks().forEach(e=>e.stop()),new MediaStream(t.getAudioTracks())),target:Cl}),ie({source:cn,fn:t=>(t==null?void 0:t.chat.id)||0,target:oC}),ie({clock:vte,source:oC,fn:(t,e)=>({chatId:t,userId:e}),target:Qee})},$te="NANOSTREAM",k_="/room",zte="/room/active",jte="/room/host",E_=t=>`${jte}/${encodeURIComponent(t)}`,Gte=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,poe=t=>Gte.test(t),Hte="/room/names",_5=t=>`${k_}/${t}/follow`,Vte=t=>`${E_(t)}/tribe`,Yte="/room/owner",S5=t=>`${Yte}/${t}/follow`,qte="/balance/room",Zte="/affiliate/balance/room",Kte="/affiliate/withdrawal/room",Xte="/affiliate/room",Jte=(t,e)=>`${Xte}?page=${t}&limit=${e}`,Qte=10,moe=5,ene=t=>`${E_(t)}/profile`,tne="/room/tribe-wars/leaderboard",nne=t=>{const e=new URLSearchParams({limit:String(t.limit),offset:String(t.offset??0)});return typeof t.seasonId=="number"&&e.set("seasonId",String(t.seasonId)),`${tne}?${e.toString()}`},rne=10,G0=30,ane=3,goe={isPrivate:!1,currency:"USDT"},ine=3,one=24,H0="currentTribeRoomUuid";let bo=null;const sne=t=>{bo=t},kn=()=>{if(!bo)throw new Error("@whale-client/dataflow-tribes is not configured. Call configureTribesDataflow() on app boot.");return bo},lne=()=>{var t;return((t=bo==null?void 0:bo.random)==null?void 0:t.call(bo))??Math.random()},cne=t=>[...t].sort((e,n)=>n.players.count-e.players.count),une=(t,e)=>{var a;const n=(a=t.find(o=>o.room.uuid===e.uuid))==null?void 0:a.owner.username;return t.map(o=>o.room.uuid===e.uuid||n!==void 0&&o.owner.username===n?{...o,owner:{...o.owner,isFollowing:e.isFollowing,followersCount:e.followersCount}}:o)},yoe=t=>t==="DOLBY"?"DOLBY":$te,boe=(t=lne)=>`/random/${Math.floor(t()*3)+1}.webp`,voe=t=>{const e=(t??"").trim().toUpperCase();return!/^[A-Z]{2}$/.test(e)||e==="ZZ"?"":String.fromCodePoint(...e.split("").map(n=>127397+n.charCodeAt(0)))},woe=t=>{const e=t.trim().length;return e>=ine&&e<=one},_oe=t=>t.includes("Chrome")&&!t.includes("Edg")&&!t.includes("OPR"),dne=2,hne=t=>typeof t=="number"&&Number.isFinite(t)&&t>=dne,Soe=t=>t.isAuthenticated?t.isProfileLoaded?t.isSelfExcluded?"self-excluded":t.canCreateTribes?"start-tribe":hne(t.level)?"none":"level-requirement":"none":"register",Ml=[{threshold:1e9,suffix:"B"},{threshold:1e6,suffix:"M"},{threshold:1e3,suffix:"k"},{threshold:1,suffix:""}],fne=1e3,lC=(t,e)=>{const n=10**e;return Math.round(Number((t*n).toFixed(6)))/n},cC=(t,e)=>t===Ml.length-1?0:e<10?2:e<100?1:0,uC=(t,e)=>e===0?t.toFixed(0):t.toFixed(e).replace(/\.?0+$/,""),koe=t=>{if(!Number.isFinite(t))return"0";const e=t<0?"-":"",n=Math.abs(t),a=Ml.findIndex(f=>n>=f.threshold),o=a===-1?Ml.length-1:a,s=n/Ml[o].threshold,u=cC(o,s),c=lC(s,u);if(c<fne||o===0)return`${e}${uC(c,u)}${Ml[o].suffix}`;const p=Ml[o-1],d=n/p.threshold,m=cC(o-1,d);return`${e}${uC(lC(d,m),m)}${p.suffix}`},pne=1e3,k5=60*pne,V0=60*k5,dC=24*V0,mne=(t,e=Date.now())=>{const n=t?Date.parse(t):Number.NaN,a=Number.isNaN(n)?0:n-e;return a<=0?{days:0,hours:0,minutes:0,isElapsed:!0}:{days:Math.floor(a/dC),hours:Math.floor(a%dC/V0),minutes:Math.floor(a%V0/k5),isElapsed:!1}},Eoe=(t,e=Date.now())=>{const{days:n,hours:a,minutes:o,isElapsed:s}=mne(t,e);return s?"0m":n>0?`${n}d ${a}h`:a>0?`${a}h ${String(o).padStart(2,"0")}m`:`${String(o).padStart(2,"0")}m`},Toe=t=>`${Number.isFinite(t)?parseFloat(t.toFixed(2)):0}x`,gne=t=>[...t].sort((e,n)=>e.rank-n.rank).slice(0,ane),hC=(t,e,n)=>t.map(a=>e.hostUserId!==void 0&&a.hostUserId===e.hostUserId||typeof e.username=="string"&&a.username===e.username?{...a,isFollowing:n}:a),yne=(t,e,n)=>e===null?t:t.map(a=>a.owner.username===e?{...a,owner:{...a.owner,isFollowing:n.isFollowing,followersCount:n.followersCount}}:a),bne=(t,e)=>{var n;return((n=t.find(a=>a.hostUserId===e))==null?void 0:n.username)??null},vne=(t,e)=>{var n;return((n=t.find(a=>a.room.uuid===e))==null?void 0:n.owner.username)??null},wne=(t,e)=>t&&t.host.hostUserId===e.ownerId?{...t,isFollowing:e.isFollowing,followersCount:e.followersCount}:t,Ee=Ns("tribes"),_ne=Ee.createEvent("roomsRequested"),Sne=Ee.createEvent("roomsOnceRequested"),fv=Ee.createEvent("hostRoomRequested"),kne=Ee.createEvent("activeRoomRequested"),Ene=Ee.createEvent("roomNamesRequested"),Tne=Ee.createEvent("tribeCreationRequested"),fC=Ee.createEvent("tribeCreationReset"),pC=Ee.createEvent("roomSelected"),Y0=Ee.createEvent("currentRoomUuidSet"),Rne=Ee.createEvent("currentRoomUuidCleared"),Cne=Ee.createEvent("carouselMuteToggled"),Ane=Ee.createEvent("originalsInTribesEntered"),mC=Ee.createEvent("originalsInTribesLeft"),xne=Ee.createEvent("roomBalancesRequested"),One=Ee.createEvent("affiliateStatsRequested"),Ine=Ee.createEvent("affiliateWithdrawalRequested"),Dne=Ee.createEvent("tribeSessionsPageRequested"),E5=Ee.createEvent("tribesDataflowInitialised"),Lne=Ee.createEvent("roomFollowRequested"),Nne=Ee.createEvent("roomUnfollowRequested"),Pne=Ee.createEvent("ownerFollowRequested"),Wne=Ee.createEvent("ownerUnfollowRequested"),Mne=Ee.createEvent("tribeWarsLeaderboardRequested"),Bne=Ee.createEvent("tribeWarsLeaderboardExpanded"),pv=Ee.createEvent("hostTribeRequested"),Mf=Ee.createEvent("hostProfileRequested"),Wa=Ee.createEffe
95ct(async()=>{const t=await kn().http.get(k_);return Array.isArray(t)?t:[]}),gC=Ee.createEffect(async()=>{try{const t=await kn().http.get(zte);return(t==null?void 0:t.uuid)??null}catch{return null}}),ss=Ee.createEffect(async({username:t})=>{const e=await kn().http.get(E_(t));if(!(e!=null&&e.uuid))throw new Error("Host room was resolved without a uuid");return{username:t,uuid:e.uuid}}),yC=Ee.createEffect(async()=>{try{const t=await kn().http.get(Hte);return(t==null?void 0:t.names)??[]}catch{return[]}}),Yu=Ee.createEffect(async t=>{const e=await kn().http.post(k_,t);if(!(e!=null&&e.uuid))throw new Error("Room was created without a uuid");return e.uuid}),bC=Ee.createEffect(async()=>{const t=await kn().http.get(qte);return Array.isArray(t)?t:[]}),vC=Ee.createEffect(async()=>{const t=await kn().http.get(Zte);return{available:(t==null?void 0:t.available)??0,claimed:(t==null?void 0:t.claimed)??0,wagered:(t==null?void 0:t.wagered)??0}}),q0=Ee.createEffect(async()=>{await kn().http.post(Kte)}),pp=Ee.createEffect(async({page:t,limit:e})=>{const n=await kn().http.get(Jte(t,e));return{data:Array.isArray(n==null?void 0:n.data)?n.data:[],page:(n==null?void 0:n.page)??{current:t,total:1,perPage:e}}}),Mu=Ee.createEffect(async({uuid:t})=>{const e=await kn().http.post(_5(t));return{uuid:t,...e}}),Bu=Ee.createEffect(async({uuid:t})=>{const e=await kn().http.delete(_5(t));return{uuid:t,...e}}),xl=Ee.createEffect(async({ownerId:t})=>{const e=await kn().http.post(S5(t));return{ownerId:t,...e}}),Ol=Ee.createEffect(async({ownerId:t})=>{const e=await kn().http.delete(S5(t));return{ownerId:t,...e}}),zn=Ee.createEffect(async t=>{const e=await kn().http.get(nne(t));return{season:(e==null?void 0:e.season)??null,boost:(e==null?void 0:e.boost)??null,prizes:Array.isArray(e==null?void 0:e.prizes)?e.prizes:[],prizePoolUsd:(e==null?void 0:e.prizePoolUsd)??0,records:Array.isArray(e==null?void 0:e.records)?e.records:[],total:(e==null?void 0:e.total)??0}}),ls=Ee.createEffect(async({username:t})=>{var n;const e=await kn().http.get(Vte(t));if(!((n=e==null?void 0:e.host)!=null&&n.username))throw new Error("Tribe was resolved without a host");return{host:e.host,liveRoom:e.liveRoom??null,lastStream:e.lastStream??null,isFollowing:e.isFollowing??!1,followersCount:e.followersCount??0}}),Il=Ee.createEffect(async({username:t})=>{const e=await kn().http.get(ene(t));if(!(e!=null&&e.stats))throw new Error("Tribe profile was resolved without stats");return{hostUserId:e.hostUserId,level:e.level??0,stats:{streams:e.stats.streams??0,lastBroadcastAt:e.stats.lastBroadcastAt??null,isLive:e.stats.isLive??!1,hoursStreamed:e.stats.hoursStreamed??0,totalViewers:e.stats.totalViewers??0,totalWageredUsd:e.stats.totalWageredUsd??0},biggestWins:Array.isArray(e.biggestWins)?e.biggestWins:[]}}),ho=Ee.createStore([]),Roe=Wa.pending,wC=Ee.createStore(null),_C=Ee.createStore(!1),Une=To(ho,cne),Coe=To(Une,t=>t.filter(e=>e.owner.isFollowing)),mv=Ee.createStore([]),Fne=Ee.createStore(null),Uu=Ee.createStore(null),SC=Ee.createStore(null);ss.pending;const kC=Ee.createStore(null),$ne=Ee.createStore([]),EC=Ee.createStore(null),gv=Ee.createStore(null),Aoe=Yu.pending,zne=Ee.createStore(null),yv=Ee.createStore(null),TC=Ee.createStore(!0),RC=Ee.createStore(!1),CC=Ee.createStore([]),bv=Ee.createStore({available:0,claimed:0,wagered:0}),xoe=q0.pending,jne=Ee.createStore([]),Gne=Ee.createStore({current:1,total:1,perPage:Qte}),Ooe=pp.pending,Hne=Ee.createStore(null),Vne=Ee.createStore(null),T5=Ee.createStore([]),Yne=Ee.createStore(0),Dl=Ee.createStore([]),R5=Ee.createStore(0),mp=Ee.createStore(rne),Ioe=zn.pending,AC=Ee.createStore(null),qne=Ee.createStore(!1),Doe=To(T5,gne),Loe=To(mp,R5,(t,e)=>t<G0&&e>t),co=Ee.createStore(null),xC=Ee.createStore(null);ls.pending;const OC=Ee.createStore(null),Bf=Ee.createStore(null),IC=Ee.createStore(null),Bl=Ee.createStore(null),Z0=Ee.createStore([]),Noe=To(Z0,Bl,(t,e)=>e!==null&&t.includes(e)),vv=Ee.createStore([]),Zne=Ee.createEffect(()=>{const t=kn().storage.get(H0);t&&Y0(t)});let DC=!1;const Kne=()=>{DC||(DC=!0,ve({clock:_ne,source:Wa.pending,filter:t=>!t,target:Wa}),ve({clock:Sne,source:{loaded:_C,pending:Wa.pending},filter:({loaded:t,pending:e})=>!t&&!e,target:Wa}),ve({clock:Wa.doneData,target:ho}),ve({clock:Wa.done,fn:()=>null,target:wC}),ve({clock:Wa.finally,fn:()=>!0,target:_C}),ve({clock:Wa.failData,fn:()=>[],target:ho}),ve({clock:Wa.failData,fn:t=>(t==null?void 0:t.message)||"Loading error",target:wC}),ve({clock:Lne,source:mv,filter:(t,{uuid:e})=>!t.includes(e),fn:(t,e)=>e,target:Mu}),ve({clock:Nne,source:mv,filter:(t,{uuid:e})=>!t.includes(e),fn:(t,e)=>e,target:Bu}),mv.on([Mu,Bu],(t,{uuid:e})=>[...t,e]).on([Mu.finally,Bu.finally],(t,{params:e})=>t.filter(n=>n!==e.uuid)),ve({clock:[Mu.doneData,Bu.doneData],source:ho,fn:(t,e)=>une(t,e),target:ho}),ve({clock:[Mu.doneData,Bu.doneData],source:{rooms:ho,records:Dl}
95,fn:({rooms:t,records:e},n)=>hC(e,{username:vne(t,n.uuid)},n.isFollowing),target:Dl}),ve({clock:Pne,source:vv,filter:(t,{ownerId:e})=>!t.includes(e),fn:(t,e)=>e,target:xl}),ve({clock:Wne,source:vv,filter:(t,{ownerId:e})=>!t.includes(e),fn:(t,e)=>e,target:Ol}),vv.on([xl,Ol],(t,{ownerId:e})=>[...t,e]).on([xl.finally,Ol.finally],(t,{params:e})=>t.filter(n=>n!==e.ownerId)),ve({clock:[xl.doneData,Ol.doneData],source:Dl,fn:(t,e)=>hC(t,{hostUserId:e.ownerId},e.isFollowing),target:Dl}),ve({clock:[xl.doneData,Ol.doneData],source:co,fn:(t,e)=>wne(t,e),target:co}),ve({clock:[xl.doneData,Ol.doneData],source:{rooms:ho,records:Dl,tribe:co},fn:({rooms:t,records:e,tribe:n},a)=>yne(t,bne(e,a.ownerId)??((n==null?void 0:n.host.hostUserId)===a.ownerId?n.host.username:null),a),target:ho}),kC.on(ss,(t,{username:e})=>e).on(ss.finally,(t,{params:e})=>t===e.username?null:t),ve({clock:fv,source:kC,filter:(t,{username:e})=>t!==e,fn:(t,e)=>e,target:ss}),ve({clock:fv,source:Uu,fn:(t,{username:e})=>(t==null?void 0:t.username)===e?t:null,target:Uu}),ve({clock:fv,fn:()=>null,target:SC}),ve({clock:ss.doneData,target:Uu}),ve({clock:ss.fail,source:Uu,filter:(t,{params:e})=>(t==null?void 0:t.username)===e.username,fn:()=>null,target:Uu}),ve({clock:ss.fail,fn:({params:t,error:e})=>({username:t.username,message:(e==null?void 0:e.message)||"Host not found"}),target:SC}),ve({clock:kne,target:gC}),ve({clock:gC.doneData,target:Fne}),ve({clock:Ene,target:yC}),ve({clock:yC.doneData,target:$ne}),ve({clock:Tne,target:Yu}),ve({clock:Yu.doneData,target:EC}),ve({clock:Yu.done,fn:()=>null,target:gv}),ve({clock:Yu.failData,fn:t=>(t==null?void 0:t.message)||"Unknown error",target:gv}),ve({clock:fC,fn:()=>null,target:EC}),ve({clock:fC,fn:()=>null,target:gv}),ve({clock:pC,target:zne}),ve({clock:pC,fn:t=>t.roomId,target:Y0}),ve({clock:Y0,target:yv}),ve({clock:Rne,fn:()=>null,target:yv}),yv.watch(t=>{const{storage:e}=kn();t===null?e.remove(H0):e.set(H0,t)}),ve({clock:Cne,source:TC,fn:t=>!t,target:TC}),ve({clock:Ane,fn:()=>!0,target:RC}),ve({clock:mC,fn:()=>!1,target:RC}),ve({clock:mC,fn:()=>[],target:CC}),ve({clock:xne,target:bC}),ve({clock:bC.doneData,target:CC}),ve({clock:One,target:vC}),ve({clock:vC.doneData,target:bv}),ve({clock:Ine,target:q0}),ve({clock:q0.done,source:bv,fn:t=>({...t,available:0}),target:bv}),ve({clock:Dne,target:pp}),ve({clock:pp.doneData,fn:({data:t})=>t,target:jne}),ve({clock:pp.doneData,fn:({page:t})=>t,target:Gne}),ve({clock:Mne,source:{limit:mp,pending:zn.pending},filter:({pending:t})=>!t,fn:({limit:t})=>({limit:t,offset:0}),target:zn}),ve({clock:Bne,source:{limit:mp,pending:zn.pending},filter:({limit:t,pending:e})=>!e&&t<G0,fn:()=>({limit:G0,offset:0}),target:zn}),ve({clock:zn.done,fn:({params:t})=>t.limit,target:mp}),ve({clock:zn.doneData,fn:({season:t})=>t,target:Hne}),ve({clock:zn.doneData,fn:({boost:t})=>t,target:Vne}),ve({clock:zn.doneData,fn:({prizes:t})=>t,target:T5}),ve({clock:zn.doneData,fn:({prizePoolUsd:t})=>t,target:Yne}),ve({clock:zn.doneData,fn:({records:t})=>t,target:Dl}),ve({clock:zn.doneData,fn:({total:t})=>t,target:R5}),ve({clock:zn.done,fn:()=>null,target:AC}),ve({clock:zn.finally,fn:()=>!0,target:qne}),ve({clock:zn.failData,fn:t=>(t==null?void 0:t.message)||"Loading error",target:AC}),OC.on(ls,(t,{username:e})=>e).on(ls.finally,(t,{params:e})=>t===e.username?null:t),ve({clock:pv,source:OC,filter:(t,{username:e})=>t!==e,fn:(t,e)=>e,target:ls}),ve({clock:pv,source:co,fn:(t,{username:e})=>(t==null?void 0:t.host.username)===e?t:null,target:co}),ve({clock:pv,fn:()=>null,target:xC}),ve({clock:ls.doneData,target:co}),ve({clock:ls.fail,source:co,filter:(t,{params:e})=>(t==null?void 0:t.host.username)===e.username,fn:()=>null,target:co}),ve({clock:ls.fail,fn:({params:t,error:e})=>({username:t.username,message:(e==null?void 0:e.message)||"Tribe not found",isNotFound:(e==null?void 0:e.status)===404}),target:xC}),Z0.on(Il,(t,{username:e})=>[...t,e]).on(Il.finally,(t,{params:e})=>{const n=t.indexOf(e.username);return n===-1?t:[...t.slice(0,n),...t.slice(n+1)]}),ve({clock:Mf,source:{profile:Bf,username:Bl},fn:({profile:t,username:e},n)=>e===n.username?t:null,target:Bf}),ve({clock:Mf,fn:()=>null,target:IC}),ve({clock:Mf,source:Z0,filter:(t,{username:e})=>!t.includes(e),fn:(t,e)=>e,target:Il}),ve({clock:Mf,fn:({username:t})=>t,target:Bl}),ve({clock:Il.done,source:Bl,filter:(t,{params:e})=>t===e.username,fn:(t,{result:e})=>e,target:Bf}),ve({clock:Il.fail,source:Bl,filter:(t,{params:e})=>t===e.username,fn:()=>null,target:Bf}),ve({clock:Il.fail,source:Bl,filter:(t,{params:e})=>t===e.username,fn:(t,{params:e,error:n})=>({username:e.username,message:(n==null?void 0:n.message)||"Tribe profile not found"}),target:IC}),ve({clock:E5,target:Zne}))},Fu=async(t,e)=>{try{return{data:await t(),status:200}}catch(n){if(e!=null&&e.validateStatus&&Em(n)&&e.validateStatus(n.status))return{data:n.body??{},status:n.status};throw n}},Xne=()=>({get:(t,e)=>Fu(()=>wn.get(t,{query:e==null?void 0:e.params,headers:e==null?void 0:e.headers}),e),post:(t,e,n)=>Fu(()=>wn.post(t,e,{query:n==null?void 0:n.params,headers:n==null?void 0:n.headers}),n),put:(t,e,n)=>Fu(()=>wn.put(t,e,{query:n==null?void 0:n.params,headers:n==null?void 0:n.headers}),n),patch:(t,e,n)=>Fu(()=>wn.patch(t,e,{query:n==null?void 0:n.params,headers:n==null?void 0:n.headers}),n),delete:(t,e)=>Fu(()=>wn.delete(t,{body:e==null?void 0:e.data,query:e==null?void 0:e.params,headers:e==null?void 0:e.headers}),e)});let Uf=null;const Jne=()=>(Uf||(Uf=Xne(),g7(Uf)),Uf),Qne={get:t=>wn.get(t),post:(t,e)=>wn.post(t,e),delete:t=>wn.delete(t)},ere={get:t=>_b.get(t),set:(t,e)=>void _b.set(t,e),remove:t=>void _b.remove(t)},tre=new Set(Object.values(Yd)),LC=t=>t&&tre.has(t)?t:Yd.USDT;let NC=!1;const nre=()=>{NC||(NC=!0,Jne(),sne({http:Qne,storage:ere}),sX(),Fte(),rJ(),Kne(),E5(),ve({clock:PT,fn:LC,target:y0}),y0(LC(PT.getState())))},PC="/user/terms/accept",WC="/user/verify",rre=150,are="Failed to update email";
95class K0 extends Error{constructor(e,n,a){super(e),this.status=n,this.serverMessage=a,this.name="VerificationSubmitError"}}let X0=null;const ire=t=>{X0=t},C5=()=>{if(!X0)throw new Error("@whale-client/dataflow-verification is not configured. Call configureVerificationDataflow() on app boot.");return X0},ore=/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,sre=(t=new Date)=>{const e=new Date(t);return e.setFullYear(t.getFullYear()-rre),e},lre=t=>Ww({nameFirst:Jr().nonempty(t.requiredField),nameLast:Jr().nonempty(t.requiredField),email:Jr().nonempty(t.requiredField).email(t.invalidEmail).regex(ore,t.invalidEmailCharacters),postalAddress:Jr().nonempty(t.requiredField),postalCode:Jr().nonempty(t.requiredField),birthDate:Jr().nonempty(t.requiredField).refine(e=>!Number.isNaN(new Date(e).getTime()),{message:t.invalidDate}).refine(e=>{const n=new Date(e);return!Number.isNaN(n.getTime())&&n>=sre()},{message:t.invalidDate}).refine(e=>{const n=new Date(e);return!Number.isNaN(n.getTime())&&n<=new Date},{message:t.invalidDate}),country:Jr().nonempty(t.requiredField),termsAccepted:K4().refine(e=>e===!0,{message:t.requiredField})}),cre=t=>Object.fromEntries(Object.entries(t).map(([e,n])=>[e,(n==null?void 0:n[0])??""])),ure=(t,e)=>{const n=lre(e).safeParse(t);return n.success?{success:!0,data:n.data}:{success:!1,fieldErrors:cre(n.error.flatten().fieldErrors)}},Poe=t=>!!(t!=null&&t.walletConnect),Ac=Ns("verification"),A5=Ac.createEvent("verificationFormReset"),dre=Ac.createEvent("verificationValidationFailed"),MC=t=>{const e=t==null?void 0:t.message;return typeof e=="string"?e:void 0},hre=Ac.createEffect(async t=>{const e=C5(),n=await e.http.post(PC);if(n.status!==200)throw new K0(`POST ${PC} answered ${n.status}`,n.status,MC(n.data));const a=await e.http.post(WC,t);if(a.status!==200)throw new K0(`POST ${WC} answered ${a.status}`,a.status,MC(a.data));await e.refreshProfile()}),Pd=Ac.createEffect(async t=>{const e=C5(),n=ure(t,e.messages);if(!n.success)return{fieldErrors:n.fieldErrors,formError:""};try{return await hre(n.data),null}catch(a){if(a instanceof K0)return a.serverMessage===are?{fieldErrors:{email:e.messages.emailError},formError:""}:{fieldErrors:{},formError:e.messages.genericError};throw e.trackEvent("Verification error",{error:a}),a}}),Woe=Ac.createStore({},{name:"verificationFieldErrors"}).on(dre,(t,e)=>e).on(Pd.doneData,(t,e)=>(e==null?void 0:e.fieldErrors)??{}).reset(A5,Pd),Moe=Ac.createStore("",{name:"verificationFormError"}).on(Pd.doneData,(t,e)=>(e==null?void 0:e.formError)??"").reset(A5,Pd);Pd.pending;const x5={title:"Couldn't sign you in through Telegram",description:"Something went wrong while signing you in. Check your connection and try again.",reopen:"Telegram didn't pass your account data to the app. Close it and open it from the bot again.",retry:"Try again"},O5={otp_open_original_browser:"Open this link in the browser where you requested the code, or enter the code in the original tab.",title:"Welcome to Whale.io",login:"Log in",register:"Register",create_one:"Create one?",create_account:"Create an Account",already_registered:"Already registered?",dont_have_account:"Donât have an account?",forgot_password:"Forgot the password",separator:{or:"or"},signup:"Sign up via",accept_terms:'I confirm that I am 18 years old and I have read the <a class="text-brandblue-300" href="/terms-and-conditions">Terms of Service</a>',form:{password:"Password",otp:"One-time Password",email:"Type your email",email_or_username:"Email address or Username",have_promocode:"I Have a Promo Code",promocode:"Promo Code",btn_email:"Send code",code:"Type your code",btn_auth:"Sign in",code_label:"Code"},paste_code:"Paste the code we sent to your email",code_sent_to:"Code sent to {email}",change_email:"Change e-mail",we_will_send_email:"We will send a password reset link to your email address",send_reset_link:"Send reset link",reset_link_invalid:"This password reset link is invalid or has expired. Please request a new one.",new_password:"New password",confirm_password:"Confirm password",passwords_do_not_match:"Passwords must match",password_requirements:"Password must be at least 8 characters and contain at least one digit.",confirm:"Confirm",error:{generic:"Something went wrong. Please try again later or contact Whale support.",too_many_login_attempts:"Too many login attempts, please try again later",account_not_found:"No account found for {identifier}
95.",invalid_credentials:"Wrong username or password",invalid_email_or_username:"Username must be at least 3 characters long.",password_too_short:"Password must be at least 8 characters long.",password_missing_letter:"Password must contain at least one letter.",password_missing_number:"Password must contain at least one digit.",password_edge_whitespace:"Password must not start or end with a space.",username_exists:"That username is already taken.",invalid_email:"Invalid email format",code:"You have entered an invalid code"},walletconnect_unavailable:"Wallet sign-in is unavailable right now. Please try another method.",walletconnect_timeout:"Wallet sign-in is taking too long. Approve the request in your wallet app, or close this and try again.",walletconnect_failed:"Wallet sign-in could not be completed. Please try again or use another sign-in method.",button:"Get Started",telegram:"Telegram",email:"Email",welcome:"Welcome to Whale!",description:"Choose below your preferred authentication method.",terms:"By accessing the site, I attest that I am at least 18 years old and have read the Terms and Conditions.",mtproto:"Telegram Mobile (QR)",use_tg:"Use telegram on your mobile device to scan this QR code",walletconnect:{title:"SIgn in with WalletConnect",description:"Scan QR code with a WalletConnect-compatible wallet",connect_button:"Authenticate via WalletConnect"}},I5='Check the spam folder for confirmation and mark the email as "not spam" to get these important emails from us in the future.',D5={"2fa":{enter_code:"Enter the code from your auth app","2fa":"Two-Factor authentication",enable_2fa:"Enable 2FA",add_more_methods:"Add more methods",linked_accounts:"Linked Accounts",authenticator_app:"Authenticator App",authenticator_app_description:"Get codes from Authenticator app of your choice.",recommended:"Recommended",second_email:"Second Email",second_email_description:"Get codes on your second Email",linked_auth_app:"Your account is linked with your Authenticator App",linked_second_email:"Your account is linked with",scan_or_copy:"Scan with your Authentication app or copy the key manually",enter_code_delete:"Enter the code to delete the 2FA",keep_2fa:"Keep 2FA",enter_email:"Enter the email for 2FA",can_not_use_primary_email:"you can not use your primary email",set_up:"Setup 2FA"},setup_completed:"Setup completed",password:{label:"Password",add_password:"Add password",change_password:"Change Password",new_password:"Add Password",email_required_add:"Email is required to add a password",email_required_change:"Email is required to change your password"},account:{user_id:"User ID: {id}"},username:{taken:"That username is already taken.",invalid:"Use 3 to 20 letters, numbers or underscores.",update_failed:"Failed to update the username."}},L5={validation:{invalid_email:"Invalid email format",required_field:"This field is required",invalid_email_characters:"Email contains invalid characters",emails_dont_match:"Email do not match",password_too_short:"Password must be at least 8 characters",passwords_dont_match:"Passwords do not match",email_same_as_current:"This is already your current email",invalid_date:"Invalid date"},default:"Error. Please try again later or contact {site}.",INVALID_WITHDRAWAL_ADDRESS:"Invalid withdrawal address",USER_NO_WD_ROLE:"Account must be verified before withdrawal. Contact Support for more info.",generic:"Something went wrong. Please try again.",verification_failed:"The code could not be verified. Please try again.",amount_positive:"Amount must be positive",CURRENCY_NOT_ALLOWED:"You are not allowed to withdraw this currency",MINIMUM_WITHDRAWAL_AMOUNT:"Amount is too small to withdraw",MINIMUM_WITHDRAWAL_AMOUNT_LOW_LEVEL:"Withdraw amount under the limit - level 10 required",BALANCE_NOT_FOUND:"We cannot find balance of this currency on your account",INSUFFICIENT_FUNDS:"Insufficient balance",INSUFFICIENT_BALANCE:"Insufficient balance",WALLET_NOT_FOUND:"Wallet not found",INSUFFICIENT_WAGERING:"You need to wager your deposit before you can withdraw",MAX_WITHDRAWAL_AMOUNT_EXCEEDED:"Maximum single withdrawal is $50,000 USD equivalent",USER_EMAIL_NOT_FOUND:"Please verify your email address before withdrawing",NO_WITHDRAWAL_ADDRESS:"Enter a withdrawal address",UNSUPPORTED_NETWORK_OR_CURRENCY:"This currency cannot be withdrawn on the selected network",TOO_MANY_REQUESTS:"Too many requests. Please try again later"},N5={too_many_requests:"Too many requests",try_later:"Please try again later"},P5={login:"Login",signup:"Sign Up",logout:"Log out"},W5=JSON.parse('{"wallet":{"title":"Wallet","tab":{"deposit":"Deposit","withdraw":"Withdraw","buycrypto":"Buy Crypto"},"deposit":{"currency":"Select Currency","network":"Select Network","blockchain":"Deposit through Blockchain","blockchainHint":"Direct deposits through blockchain can take up to 10 minutes. Please be patient!","address":"Your personal {currency} Deposit address","copy":"Copied!","warning":"Please carefully check the deposit wallet address!","bonus_first":"Get a {percent}% first deposit bonus","bonus_next":"Get a {percent}% deposit bonus","bonus_min":"On deposits of ${amount} or more","mesh":{"title":"Deposit from Exchange or Wallet","description":"Powered by MES
95H"},"express":"Express Deposit","expressHintMiniPay":"You can deposit through Mini Pay.","amount":"Deposit amount","minipaySuccess":"Payment successful. Please wait for the transaction to be confirmed.","minipayProcessingPayment":"Processing the payment","pix":{"amount":"Deposit Amount","first_name_placeholder":"Your first name","last_name_placeholder":"Your last name","order_placed":"Order Has Been Placed","scan_hint":"Scan the QR code or copy the PIX key to finish the payment.","copy_paste_address":"PIX Copy and paste address","exact_amount":"Transfer the exact amount"},"max":"Max","expressHint":"You can deposit through Telegram Bots. Choose one of the bots shown below and deposit without delay.","bonus":{"title_first":"First Deposit Bonus","title":"Deposit Bonus","headline":"Whatever you deposit, we add","highlight":"+{percent}% Bonus","terms":"Applied automatically. Min ${min}."},"minipay":{"error":{"rejected":"Transaction rejected","insufficient":"Not enough money","unavailable":"Sorry, we are unable to process your deposit at this time. Please try again later or contact support.","unsupported_currency":"MiniPay is only available for CUSD and USDT","transaction_failed":"Transaction failed","generic":"Deposit error!"},"dismiss":"Ok"},"addressError":"We couldn\'t create your deposit address. Please try again.","addressRetry":"Try again"},"buy":{"crypto":"Buy Crypto","hint":"Buy crypto instantly, and have it automatically transferred to your Whale wallet. Services related to payments are provided by a separate platform which is owned by a third party.","pay":"You Pay","provider":"Provider","warning":"Depending on the blockchain network, the purchase may take a few minutes to arrive.","placeholder":"Buying crypto is not available yet.","no_provider":"No payment provider is configured for this site.","methods":"Methods"},"withdrawal":{"warning":{"memo_not_supported":"We are not supporting memo!"},"withdrawable_info_tooltip":"Available balance is the amount you can cash out anytime. Your total balance also includes non-withdrawable funds like cashback, free spins, and bonuses with wagering requirements.","select_network":"Select network","confirm":{"title":"Confirm withdrawal","description":"Please check the details. Funds sent to the wrong network or address cannot be recovered.","amount":"Amount","network":"Network","address":"Address","confirm":"Confirm","cancel":"Cancel"}},"tribes":{"create":"Create Tribe"},"cant_find_currency_text":"Canât find what you are looking for?","click_here":"Click HERE"},"user":{"title":"Profile","level":"Level","yourLevel":"Your level:","cashback":"Cashback","yourCashback":"Your cashback:","mostWageredGames":"Most Wagered Games","statistics":{"title":"Statistics","totalWins":"Total Wins","totalBets":"Total Bets","totalWagered":"Total Wagered"},"transactions":{"title":"Transactions","action":"Action","amount":"Amount","status":"Status","date":"Date","moreInfo":"More Info","txid":"TXID","copyTxid":"Copy TXID","cancel":"Cancel","states":{"pending":"Processing","completed":"Completed","cancelled":"Canceled"},"deposit":"Deposit","withdrawal":"Withdrawal","cashback":"Cashback","commission":"Affiliate comission","commission_room":"Tribes Commission","bonus":"Bonus","reward":"Reward","tournament_prize":"Tournament Prize","reasonCategory":{"testing":"testing","balance_top_up":"deposit","cashback_correction":"Cashback correction","deposit_correction":"deposit correction","withdrawal_correction":"withdrawal correction","raf_correction":"raf correction","tribes_correction":"tribes correction","casino_correction":"casino correction","socials_prize":"socials prize","sports_prize":"sports prize","casino_tournament_prize":"casino tournament prize","vip_bonus":"vip bonus","bug_bounty":"bug bounty","battlepass_correction":"battlepass correction","sportbet_correction":"sportbet correction","streamer_commission":"streamer commission"}},"favoriteGames":"Your Favorite Games","tab":{"profile":"Profile","statistics":"Statistics","transactions":"Transactions","account":"Account","security":"Security","verification":"Verification"}},"settings":{"email":"Email","tab":{"account":"Account info","security":"Security","verification":"Verification","preferences":"Preferences","welcome":"Welcome to Whale!"},"welcome":{"subtitle":"Enable Two-factor to protect your account from unauthorized access.","code":"Verification code","validate":"Validate","errors":{"required":"Field is required"}},"level":"Level","verification1":"Verify your account!","verification2":"Complete KYC with SumSub","reviewTime":"Review time","minutes":"few mins","days":"1-5 days","verified":"Verified","verify":"Verify Now","title":"Settings","profileInfo":"Profile info","empty":"Not filed","emailVerification":"Email Verification","finishBasic":"Finish Basic Verification","mcp":{"title":"AI MCP","description":"Connect your AI assistant to play games on Whale. Pick your client and run the command in your terminal.","copy":"Copy command","clients":{"claude":"Claude Code CLI","codex":"OpenAI Codex CLI","openclaw":"OpenClaw CLI"}}},"verification":{"stub_description":"Identity verification is not available in this build yet. Level 1 verification will open here.","title":"Verify your Account","description":"Confirm your details and get yourself verified.","submit":"Continue","errors":{"email":"Failed to update email, please try again later.","generic":"Failed to update data, please try again later"}},"responsible_gaming":{"selfExclusion":"Self Exclusion","tab_description":"You can use this feature to exclude yourself from gambling & depositing until your restriction expires while still being able to do other activities such as withdrawing.","duration_24h":"24 Hours","duration_7d":"7 Days","duration_30d":"30 Days","limit_myself":"Limit myself","confirm_prompt":"Please confirm your action, it\'s irrevocable","confirm":"Confirm","excluded_until_date":"Your account is blocked until {date}","read_about":"Read about self exclusion","selfExclusionDisclaimer":"Disclaimer: Any decision made here is final and n
95ot reversible. Please withdraw any remaining balance from your account before submitting your self exclusion request.","excluded_notice":"You are Self Excluded from gambling on Whale.io until the timer expires. If you need urgent help, please contact our support team.","chat_unavailable":"Chat is unavailable while your self-exclusion is active","depositLimits":"Deposit Limits","breakInPlay":"Break In Play","breakInPlayDescription":"If you want to take a short break from betting and gaming, you can do so by taking a Time-Out for a period of 24 hours, 48 hours, 7 days, 30 days, 2 months or 3 months. Once you begin your Time-Out, you will not be able to use your account for betting and gaming, though you will still be able to log in to withdraw any remaining balance.","breakInPlayLearn":"Learn more about Break In Play","breakInPlayRequest":"Request Break In Play","selfExclusionDescription":"If you feel you are at risk of developing a gambling problem or believe you currently have a gambling problem, please consider using Self-Exclusion which prevents you gambling with Whale.io for a specified period of 6 months, 1 year, 2 years, 5 years, 10 years or indefinitely. If you want to stop playing for other reasons, please consider using a Time-Out or using Account Closure.","selfExclusionLearn":"Learn more about Self Exclusion","selfExclusionRequest":"Request Self Exclusion"},"provablyFair":{"rotateSeedPair":"Rotate Seed Pair","tab":{"seeds":"Seeds","verify":"Verify"},"input":{"label":{"activeClientSeed":"Active Client Seed","activeServerSeed":"Active Server Seed (hashed) ","totalBets":"Total bets made with pair","newClientSeed":"New Client Seed","clientSeed":"Client Seed","serverSeed":"Server Seed","nonce":"Nonce","nextServerSeed":"Next Server Seed","deckHash":"Shuffled Deck Hash"}},"cta":{"changePair":"Change"},"error":{"playing":"Impossible to change seed during the game. Finish current round first.","clientSeedRequired":"Client seed is required"},"activeSeed":"This is an active seed please generate new seeds to check this seed"},"refer":{"faq":"Frequently Asked Questions","tribes":{"title":"Tribes Earnings","description":"Earn 10% of the house edge from your roomâs turnover. The more active your Tribe, the more you profit.","available":"Available to Claim","claimed":"Claimed Commission","total":"Total Room Wagered","table":{"date":"Session date","players":"Viewers"}},"your":"Your referral","code":"Your code","table":{"faq":"Frequently Asked Questions","referral":"Referral","wagered":"Wagered","deposited":"Deposited","profit":"Your profit","yes":"Yes","no":"No"},"title":"Rewards","referrals":"Referrals","wagered":"Referral wagered","yours":"Your referrals","link":"Your Referral link","earned":"Total earned","balance":"Your current balance","yourreferrals":"Your referrals","claim":"Claim earnings","claimed":"Earnings claimed","error":"Error","claimed-error":"Earnings claimed","earnings":"Claimable earnings","10plus10":"Invite 10 Friends get 10 Freespins","whaleToken":{"earned":"$Whale earned","title":"Earn $Whale and USDT!","content":"Invite Friends: Share your unique referral link.<br />\\nLead Your Tribe: The more active Tribe, the more you get.<br /><br />\\nEarn in USDT and $Whale Tokens â 1 USD earned = 1 $Whale Token.","t
95itle-mobile":"Invite friends, Earn tokens!","title-desktop":"10,000,000 $Whale Tokens Up for Grabs!"},"earnWhaleAndUsdt":{"title":"Trade your $Whale tokens","description":"Whale.io introduces a new value layer for $WHALE by turning tokens into fully tradable digital cards. Each card is backed by a fixed amount of $WHALE, locked on-chain and redeemable at any time. Trade, collect, or redeem your $WHALE with more liquidity and flexibility than ever before. Start minting token-backed cards on <a href=\\"https://mintwhale.io\\">mintwhale.io</a> ","total":"Total $WHALE Earned"},"refer-a-friend":{"title":"Refer-A-Friend","description":"Invite friends, and earn on every dollar wagered! Unlock up to 25% theoretical revenue share! Just copy your unique link and spread the word!"},"missions":"Missions"},"rewards":{"deposit":{"claim":{"title":"Your Bonus Is Ready!","description":"Ready to blow it up? Smash that claim button and LFG!","cta":"Claim Reward"}},"claimed":{"title":"Congratulations! Youâve claimed your Reward!","free_spins_description":"Your free spins are ready. Open the game to use them.","bonus_buy_description":"Your Bonus Buy is ready. Open the game to use it.","custom_description":"Our support team will reach out about delivery.","cta":{"play":"Play Now!"},"cta_close":"Got it","description":"Boom! Bonus successfully unlocked. Now go have some fun!"},"claimInWeb":{"title":"Claim Your Reward","description":"This reward is available exclusively on our website. To claim it, click the button below and complete the process there. Donât miss out!","cta":"Go to Website","action":"Go to Website"},"battlepass":{"your_balance":"Your balance:","promo_message":"Unlock cashback and {amount} in bonuses","locked_message":"Only available with Battlepass","intro":{"title":"Battle Pass Intro","description":"Check out our introduction for Battle Pass, youâll understand the real value behind the feature."},"buy":{"title":"Buy Battle Pass","description":"Here are some of the perks that you will get buying our Battle Pass:","cta":"Buy Battle Pass","bottom_info":{"cost":"Battle Pass cost","content":{"special":"Special Rewards","freespins":"More Freespins","value":"Bigger Rewards","lootboxes":"Better Lootboxes"}}},"completeKYC":{"title":"Get Battle Pass!","description":"In order to get free Battle Pass, you have to do a KYC (Know Your Customer).","cta":"Verify now","complete_kyc_to_unlock":"KYC to Unlock"},"what_do_you_get_for":"WHAT DO YOU GET FOR","free":"FREE","what_are_you_getting_with":"WHAT ARE YOU GETTING WITH","level_up_rewards":"Level Up Rewards","tribes_leader":"Tribes Leader","kyc_required":"KYC Required","required_for_battlepass":"Required for Battle Pass","get_amazing_rewards":"Get amazing rewards with Battlepass.","xp_needed":"needed","confirm_buy":{"title":"Confirm Purchase","description":"Complete purchase for <span class=\\"font-semibold text-white\\">{{amount}} {{currency}}</span>.","cta":"Complete purchase"},"insufficient_funds":{"title":"Insufficient funds","description":"You donât have enough balance to buy Battle pass. Go earn more and then try again.","cta":"Earn more with Missions"},"sidebar_card_text":"Play Whale with benefits & power-ups."},"claim":{"title":"Congratulations! Youâve reached <b>Level {{level}}</b>!","description":"Your reward is ready! Hit the claim button to get it!","cta":"Claim Reward"},"shipping":{"title":"Please confirm your shipping","description":"Youâve got rewards shown below. To claim one of the items, please update your details in the profile section.","cta":"Confirm"},"kyc":{"description":"Complete \\"Know Your Customer\\" verification to receive Rewards!"}},"selfExclusion":{"notice":{"title":"Self-exclusion active","description":"You cannot claim rewards while self-exclusion is active.","description_until":"You cannot claim rewards until {date}.","cta":"Got it"}},"close":"Close"}'),M5={hide_zero_balances:"Hide 0 balances",display_fiat:"Display in USD"},B5="Deposit",U5="Withdraw",F5="Withdraw Address",$5="Buy Crypto",z5="First Name",j5="Last Name",G5="To protect your funds and prevent unauthorized withdrawals, withdrawals are available after you verify your email.",H
955="Verify your email first",V5={form:{personalData:{cpfNumber:{label:"CPF number"},modal:{title:"Enter Details",description:"Please provide your personal details in order to proceed with the payment."}},buttons:{continue:"Continue"},pixKey:{label:"Pix Key"},errors:{email:"Email is invalid",firstName:"First name is invalid",lastName:"Last name is invalid",personalCode:"CPF is invalid"}}},Y5="Games",q5="Community",Z5="User",K5="Home",X5="Originals",J5="Casino",Q5="Slots",eO="Crypto Casino",tO="Live Casino",nO="Sportsbook",rO="Lootboxes",aO="Tournaments",iO="Tribes",oO="Rewards",sO="Earn",lO="Promotions",cO="Token Dashboard",uO="Profile",dO="Whale Token",hO="Trade",fO="Sports",pO="Menu",mO="Casino",gO="Sports",yO="OG",bO="Earn",vO="Chat",wO="Continue Playing",_O="My Biggest Wins",SO="Find a game",kO="No games found",EO="Search Result",TO="Found {searchResultCount} results",RO="Volatility",CO="Win Often",AO="Neutral",xO="Win Big",OO="Coming soon",IO="View all",DO="By Provider",LO="Top 10",NO="Whale Originals",PO="New Arrivals",WO="Only at Whale",MO="Crypto Games",BO="Buy Feature",UO="Megaways",FO="Most Popular",$O="Roulette",zO="Blackjack",jO="Baccarat",GO="Poker",HO="Youâre not logged in",VO="Log in to play, click button below and start playing.",YO="Go back",qO="Support",ZO="You might also like",KO="Suggested games",XO="Game stats",JO="24H",QO="Week",eI="Month",tI="Minimum - Maximum bet",nI="Maximum Win Multiplier",rI="N/A",aI={cta:{support:"Support",vipTransfer:"VIP Transfer"}},iI={title:"Hall Of Whales",menu:{live:"Live",week:"Week",month:"Month",alltime:"All time"},menuxxs:{live:"Live",week:"W",month:"M",alltime:"All"},table:{game:"Game",player:"Player",time:"Time",multiplier:"Multiplier",winAmount:"Win Amount",xxs:{multiplier:"X",betAmount:"Bet",winAmount:"Win"},betAmount:"Bet Amount"}},oI={title:"Leaderboard",rank:"Rank",player:"Player",time:"Time",bet_amount:"Bet Amount",multiplier:"Multiplier",payout:"Payout"},sI={home:{title:"Whale | Lobby",description:"The crypto casino with 4,000+ games."},casino:{title:"Whale | Casino",description:"Slots, live casino and originals."},originals:{title:"Whale | Originals",description:"Provably fair games built in-house."},"live-casino":{title:"Whale | Live Casino",description:"Live dealer tables and game shows."},"crypto-games":{title:"Whale | Crypto Games",description:"Crypto-native casino games."},homepage:{description:"Play at Whale.io - the next-gen crypto casino & sportsbook. Enjoy 25% cashback, Battle Pass rewards, fast crypto withdrawals & provably fair games.",title:"Whale.io | Crypto Casino & Sportsbook with 25% Cashback"},sportsbook:{title:"Crypto Sportsbook - Bet on Sports & eSports | Whale.io",description:"Bet on football, basketball, tennis, and eSports with crypto. Instant deposits and withdrawals in BTC, ETH, GRAM, USDT. Anonymous betting with competitive odds."},"terms-and-conditions":{title:"Terms & Conditions - Whale.io Crypto Casino & Sportsbook",description:"Read Whale.io's terms of service including game rules, bonus terms, withdrawal policies, and account requirements. Licensed by Curaçao Gaming Control Board (OGL/2024/1254/0648)."},"responsible-gaming":{title:"Responsible Gaming & Player Protection | Whale.io",description:"Play responsibly with self-exclusion tools, deposit limits, and reality checks. Whale.io is committed to safe gambling. 24/7 support available. Licensed and regulated."},fairness:{title:"Provably Fair Gaming - Blockchain-Verified Results | Whale.io",description:"Every game result is verifiable on the blockchain. 96% RTP across all games. Transparent, tamper-proof outcomes. Play with confidence at Whale.io's provably fair casino."},"restricted-jurisdictions":{title:"Restricted Jurisdictions - Where Whale.io is Available",description:"View the list of restricted countries and jurisdictions where Whale.io services are not available. Licensed by Curaçao Gaming Control Board with global compliance standards."},"aml-policy":{title:"AML Policy - Anti-Money Laundering Compliance | Whale.io",description:"Whale.io's Anti-Money Laundering policy and procedures. We maintain strict compliance with international AML regulations while protecting user privacy and anonymity."},"privacy-policy":{title:"Privacy Policy - How Whale.io Protects Your Data",description:"Learn how Whale.io handles user data with minimal KYC requirements. We prioritize anonymity and privacy while maintaining Curaçao gaming license compliance standards."},lootbox:{title:"Welcome Lootbox - Free Crypto Casino Rewards | Whale.io",description:"Claim your Welcome Lootbox and unlock instant rewards. Free bonuses, cashback boosts, and exclusive perks. Start your crypto casino j
95ourney with Whale.io."},bonuses:{title:"Bonuses & Rewards | Whale.io",description:"Daily cashback, weekly and monthly bonuses, and missions that pay out free spins and free bets."},earn:{title:"Earn | Whale.io",description:"Invite friends, join a tribe and redeem promo codes on Whale.io."},tournaments:{title:"Casino Tournaments â Compete for USDT Prize Pools | Whale",description:"Join Whale casino tournaments and climb the leaderboard on slots, live casino and sportsbook. Real USDT prizes, no wagering requirements."},wc2026:{description:"Make your predictions for every match of the 2026 World Cup - 104 games, 48 teams, 3 countries. Join tournaments and win on Whale.io.",title:"World Cup 2026 Predictions - Pick Every Match | Whale.io"}},lI={gamesshowcase:{title:"PICK YOUR ACTION.",description_prefix:"4,000+",description_highlight_casino:"casino games",description_middle:"and 5,000+ daily",description_highlight_sports:"sports events",description_suffix:". Switch between them in one click â your $WHALE balance, cashback, and VIP tier carry across both.",tab:{originals:"Originals",slots:"Slots",livecasino:"Live Casino",sports:"Sports"},cta:{originals:"Play Originals",slots:"Explore Slots",livecasino:"Go to Live Casino",sports:"Take me to Sports"},sport:{football:"Football",hockey:"Hockey",basketball:"Basketball",tennis:"Tennis",cs2:"CS2",dota2:"Dota 2",mma:"MMA"}},paymentoptions:{title:"NO CRYPTO? NO PROBLEM!",description_prefix:"Buy crypto with card, Apple Pay or Google Pay after quick signup â",description_highlight:"instant funding!"},herobanner:{subtitle:"up to 25% Daily"},button:{cta:{banner:"Sign Up"}},badges:{title:"BEST place to win",description:"Community driven action!",cards_1_title:"Instant Withdrawals",cards_2_title:"Complete Privacy",cards_3_title:"Trusted by 15 Million Users",cards_4_title:"Buy Crypto",cards_5_title:"$777,777 Real Cash Rewards",cards_6_title:"Provably Fair",cards_7_title:"0% Gas Fees",cards_8_title:"+500 Wallets Connected",cards_9_title:"No Limits",cards_10_title:"VIP Transfer",cards_11_title:"Lootboxes",cards_12_title:"NFT Airdrops",title_line1:"whale.io",title_line2:"The World's Best Crypto Casino"},games:{title:"4000+ games",description:"Play all your favourite games and claim 25% worth of Cashback!"},sports:{title:"Sportsbook",description:"Join the live action in over 5000 Sport events daily. "},banner:{cta:{title:"Thrilled of Live action?",description:"From blackjack to Crazy Times, jump on to Live casino excitement at Whale!",button:"Join Today!"},token:{title:"Play with $Whale",subtitle:"Earn like a Whale",description:"Play with $Whale on Originals at 99% RTP. Unlock Battlepass for cashback, exclusive releases and more. Access the full Whale.io experience."},vipTransfer:{title:"VIP Transfer Program",description:"Get treat you like the Whale you are! Weâll transfer your VIP status, upgrade your perks and give you a free Battlepass to benefit from Cashback up to 25% & claim $222,222 worth of rewards!",button:"Read More"}},joinus:{title:"Join Today & claim your 1st cashback",description:"Play with Battlepass to benefit from Cashback up to 25% & claim $777,777 worth of rewards!"},tribes:{title:"Win With Your Friends - Tribes",description:"Play with your friends and win together! Stream your own gameplay and earn %!",button:"Join the Action!"}},cI={hallofwhales:{title:"Hall Of Whales",description:"Ocean of biggest Whales with real-time bragging rights"},herobanner:{title:"WHALE CASINO",subtitle:"#SometimesLoseAlwaysWin",description:"Sometimes lose, Always Win",description_prefix:"Up to",description_suffix:"Cashback Daily",wallets_to_connect:"+500 wallets to connect",or_login_via:"Or login via"},games:{title:"4000+ games",description:"From classics to your new favorites",casino:"Casino",sports:"Sports"},lootboxes:{title:"LOOTBOXES THAT ACTUALLY PAY!",description:"Free Spins, Bonus Buys, Whale Merch, Supercars. Built for winners!"},betterplace:{title:"Better place to win",description:"Biggest Combined Bonuses and Rewards",cards_1_title:"Instant Withdrawals",cards_2_title:"Complete Privacy",cards_3_title:"Play with friends in Tribes",cards_4_title:"Battlepass: Frequent bonuses",cards_5_title:"Only Real Cash Rewards",cards_6_title:"Live action Sportsbook"},paymentmethods:{title:"No Crypto? No Problem!",description:"Buy crypto with card, Apple Pay or Google Pay after quick signup â instant funding!",button:"Buy Crypto with 20+ Methods"},open:{title:"Open. Win.",subtitle:"Repeat.",button:"Sign Up & Play!"},getstarted:{button:"Get Started"},expandedtext:`# **Whale.io \\- Crypto Casino with 25% Cashback, Battle Pass & Fast Withdrawals** 96 97Welcome to Whale.io, the next-generation crypto casino and sportsbook that combines nonstop gaming, instant crypto payments, and one-of-a-kind rewards. Play provably fair casino games, bet on live sports, and climb through missions, lootboxes, and seasonal Battle Pass tiers to unlock exclusive perks. 98 99With up to 25% daily cashback, a Refer-a-Friend program, and unique Tribes for social play, Whale.io isnât just another online casino \\- itâs the future of blockchain gaming. 100 101--- 102 103## **Play Casino Games & Bet on Sports with Crypto** 104 105Choose from hundreds of thrilling casino titles, including: 106 107* Slots \\- high-volatility crypto slots and progressive jackpots. 108* Table Games \\- classics like blackjack, roulette, and baccarat. 109* Live Casino \\- real dealers, HD streams, and 24/7 action. 110* Sportsbook \\- bet with Bitcoin, Solana, or USDT on football, basketball, esports, and more. 111 112Whale.io gives you the best of crypto casino gaming and sports betting in one place. 113 114--- 115 116## **Fast & Secure Crypto Payments** 117 118Say goodbye to banking delays. Whale.io supports leading cryptocurrencies including BTC, ETH, SOL, GRAM, BNB, CUSD, NOT, TRUMP, BONK, USD1, USDC and USDT. 119 120* Instant deposits so youâre in the action right away. 121* Lightning-fast withdrawals \\- no waiting, no hassle. 122* Blockchain security ensures full transparency and privacy. 123 124Whether youâre into Bitcoin gambling or Solana casinos, Whale.io delivers seamless, secure crypto payments. 125 126--- 127 128## **Cashback, Missions & Battle Pass** 129 130At Whale.io, every spin and bet brings you closer to rewards. Our loyalty system is designed for crypto players who want more value: 131 132* Up to 25% Daily Cashback \\- get back a chunk of your losses every day. 133* Missions \\- complete daily challenges to earn $Whale Tokens. 134* Lootboxes \\- unlock mystery prizes, from bonuses to Whale merch. 135* Battle Pass \\- climb seasonal tiers for exclusive rewards, multipliers, and token drops. 136 137With gamified progression, Whale.io isnât just a casino \\- itâs a play-to-earn crypto experience. 138 139--- 140 141## **ð¥ Join Tribes & Play Together** 142 143Whale.io introduces Tribes, a first-of-its-kind feature in crypto casinos. Build or join a Tribe, compete with other players, and climb leaderboards together. 144 145* Team competitions for bragging rights and rewards. 146* Social gameplay where you share wins and strategies. 147* Community perks for top Tribes that dominate the rankings. 148 149Itâs not just about playing â itâs about belonging to the strongest Tribe in crypto gaming. 150 151--- 152 153## **ð¹ï¸ Provably Fair Originals** 154 155* ## **ð¹ï¸ Whale Originals â Exclusive Crypto Casino Games** 156 157 Whale.io isnât just about slots and table classics â we create our own provably fair crypto games, built for players who want explosive action, high RTP, and massive multipliers. These Whale Originals canât be found anywhere else. 158 159* ### ð£ **Whale Mines** â Explosive Wins, Max RTP 160 161 Every click could mean profit or disaster. Whale Mines is a high-stakes, high-reward game where you uncover safe tiles and dodge the bombs. With a max RTP and provably fair results, every move is a test of nerve and timing. 162 163* ### ð¡ **Whale Roulette** â Classic Spin, Crypto Twist 164 165 Take the casinoâs most iconic game and power it with blockchain transparency. Whale Roulette delivers instant spins, verifiable fairness, and crypto payouts that hit fast. Choose your side, place your bets, and let the wheel decide your fortune. 166 167* ### ð² **Whale Dice** â Roll the Risk, Win up to 96x 168 169 Customize your odds, roll the dice, and go for up to 96x multipliers. Whether you want steady wins or high-volatility action, Whale Dice puts you in control with fast-paced, provably fair gameplay designed for crypto thrill seekers. 170
171* ### ð¦ **What the Duck** â Quirky, Fast, and Big on Rewards 172 173 Crypto gaming meets chaos in What the Duck, Whale.ioâs one-of-a-kind original. Simple to play but packed with surprises, this fun and unpredictable game keeps you coming back for more. Each round is fast, fair, and full of ducking good wins. 174 175Every game is provably fair â meaning results are transparent, verifiable, and 100% trustworthy. 176 177--- 178 179## **ð§ââï¸ Fast & Reliable Support** 180 181At Whale.io, player experience comes first. Our support team is available almost around the clock, ready to help with deposits, withdrawals, bonuses, or account questions. 182 183* Quick responses via live chat. 184* Friendly team that understands crypto gaming 185* Constantly expanding toward full 24/7 coverage 186 187Weâre building one of the most reliable support systems in the crypto casino world, so youâre never left waiting when you need answers. 188 189--- 190 191# **ð³ Join Whale.io Today** 192 193With 25% cashback, Battle Pass progression, Tribes, lootboxes, and instant crypto payouts, Whale.io is the most rewarding crypto casino online. 194 195ð Sign up now, claim your cashback, and start climbing the Battle Pass today\\!`,timer:{title:"Available for"}},uI={settings:{tab:{security:"Security"},label:{profile_info:"Profile Info",contact_info:"Contact Info"},email:{add:"Add",change:"Change",change_email:"Change Email",current:"Current email",newemail:{label:"New Email"},new:{label:"Enter your email",confirm:"Confirm email",label_confirm:"Confirm your email"},next:"Next",verify_code:"Verify your email",verify_your_2fa:"Verify your 2FA",email_updated:"Email updated",verify:{prompt:{title:"Verify email to unlock priority withdrawals & lower limits.",description:"Not verified? Minimum is $10."}},addPrompt:{title:"Don't miss out â Add email to unlock Rewards",description:"Email unlocks best promos â and grab 1,000 Whale tokens instantly."}},"2fa":{choose_method:"Choose method",setup_app:"Setup authenticator app",setup_email:"Setup second email",confirm:"Confirm your 2FA",disable_2fa:"Disable 2fa",success:"Success"},password:{current:"Current password",new:"New Password",confirm:"Confirm Password",next:"Next",password_updated:"Your password has been updated successfully!",password_added:"Your password has been added successfully!"}}},dI={edit:"Edit avatar",modal_title:"Update avatar",dropzone_title:"Drag & drop an image here",dropzone_hint:"or click to browse (PNG, JPG or WebP)",zoom:"Zoom",save:"Save",cancel:"Cancel",remove:"Remove avatar",error_invalid_type:"Unsupported file type. Use PNG, JPG or WebP.",upload_success_title:"Avatar updated",upload_success_body:"Your new avatar is live.",upload_error_title:"Upload failed",upload_error_body:"Couldn't upload your avatar. Please try again.",remove_success_title:"Avatar removed",remove_success_body:"Your avatar has been removed.",remove_error_title:"Remove failed",remove_error_body:"Couldn't remove your avatar. Please try again."},hI={contact_manager:"Your personal VIP Manager",contact:"Contact",status:"VIP"},fI={modal:{errors:{generic:"Something went wrong. Please try again.",invalid_code:"You've entered an invalid code. Please try again."},title:"Waiting for Token?",paragraph:"A lot is happening, share your email to stay on top of it. Psst.. Whale Token launch info is shared to Whales first.",form:{label:{email:"Email",code:"Code"}},button:{label:{share_now:"Share NOW",send_email:"Send Email",send_code:"Send Code",join_whale_list:"Join Whale List"}},success:"Success, email verified! Look out for news about Whale Token! ð¥"}},pI="Language",mI="Verify",gI="Next",yI="Delete",bI="View",vI="Verify Now",wI="Welcome",_I={load_more:"Load More"},SI={title:"Provably Fair",mode:{manual:{title:"Manual",betAmount:"Bet Amount",numberOfBets:"Number of Bets",onWin:"On Win",reset:"Reset",increasedBy:"Increased By:",onLoss:"On Loss"},auto:{title:"Auto",stopOnProfit:"Stop on Profit",stopOnLoss:"Stop on Loss",start:"Start Autobet",stop:"Stop autoplay",startFreebet:"Start Free Autobet",cashoutOff:"Off",profitAmount:"Profit",cashoutAt:"Cashout At:"}},cta:{cashout:"Cashout",bet:"Bet",freebet:"Free Bet",remainingFreebetCount:"You have {remainingFreebetCount} free bets remaining",autobet:"Start Autobet",stopAutobet:"Stop Autobet"},settings:{turboMode:"Turbo Mode",sounds:"Audio",music:"Mute",maxBet:"Max Bet"},stats:{profit:"Profit",wins:"Wins",wagered:"Wagered",losses:"Losses",turnover:"Turnover",reset:"Reset Live Stats",rtp:"Actual RTP"}
195,controls:{payout:"Payout",winChance:"Win Chance",roll:"Roll",above:"above",below:"below",profit_on_win:"Profit on Win",profitOnWin:"Profit on Win"},errors:{E1001:"Configuration is invalid",E1002:"No encryption key found",E2001:"Bet amount needs to be a number",E2002:"Bet format is invalid",E2003:"Bet currency is invalid",E2004:"Bet amount is required to be greater than 0",E2005:"Bet currency is required to be one of the following: {currencies}",E2006:"Unsupported bet currency {currency}",E2007:"Bet amount is required to be less than {max}",E2008:"Bet amount is required to be greater than {min}",E2009:"Bet amount is required to be a multiple of {min}",E3001:"No bet found during the round",E3002:"Round is not closed",E3003:"Changing bet settings during the round is not allowed",E3004:"Changing bet amount during the round is not allowed",E3005:"Same bet during the round is not allowed",E3006:"Max bet amount exceeded",E3010:"No more Free Bets available",E3014:"You cannot bet on both Player and Banker in the same round.",E3015:"Place a bet on the matching main (Player or Banker) before a pair side bet.",E3016:"A pair side bet can be at most 50% of its main bet.",E4001:"Error processing bet",E4002:"Unable to process cashout",E4003:"Unable to generate random roll",E4004:"Multiplier is incorrect",E4005:"Unable to generate determined outcome"},closedRounds:{empty:"No closed rounds yet."}},kI=JSON.parse(`{"baccarat":{"result":{"won":"You Won","tie":"Tie","refunded":"Bets are refunded"},"hand":{"player":"Player","banker":"Banker"},"spot":{"player":"Player","banker":"Banker","tie":"Tie","playerPair":"Player Pair","bankerPair":"Banker Pair","perfectPair":"Perfect Pair"},"controls":{"deal":"Deal","dealing":"Dealingâ¦","rebet":"Rebet","double":"x2","clear":"Clear","newBet":"New Bet","betsIn":"Bets are in {currency}"},"errors":{"loadFailed":"Failed to load Baccarat. Are you logged in and is the game seeded?","betNotAllowed":"Bet not allowed","minPerSpot":"Minimum bet per spot is {min}.","maxPerSpot":"Max bet on this spot is {max}.","freebetStake":"Your free bet is limited to {max} in total.","sideBetHalf":"A pair side bet can be at most 50% of your main bet.","liabilityCap":"Total table liability is capped at {max}."},"aria":{"scrollLeft":"Scroll chips left","scrollRight":"Scroll chips right","rules":"Rules","provablyFair":"Provably Fair","settings":"Settings","statistics":"Statistics"},"rules":{"title":"Rules","close":"Close","objective":{"title":"Objective","body":"Bet on which hand finishes closer to 9 â Player or Banker â or bet on a Tie. You are not dealt a hand yourself. Both hands are dealt and played out automatically by the rules below."},"decks":{"title":"Decks","body":"8 standard decks (416 cards), shuffled each round. Card values: 2-9 count as face value, 10s/Jacks/Queens/Kings = 0, Aces = 1. Hand value is the rightmost digit of the total (e.g., 15 = 5). Perfect Pairs are possible because the shoe holds 8 copies of every card."},"betting":{"title":"Betting","body":"Choose a bet per hand (Player, Banker, or Tie; 1-2 hands allowed). Confirm to start dealing cards for the round.","item1":"You can back Player and Tie, or Banker and Tie, in the same round.","item2":"Opposite betting is not allowed. You cannot back Player and Banker in the same round.","item3":"Side bets are optional and go on top of your main bet. See Side Bets below."},"sideBets":{"title":"Side Bets","body":"Side bets are decided by the first two cards of a hand. They are settled independently of who wins the round, so a side bet can win on a hand that goes on to lose.","item1":"Banker/Player Pair: that hand's first two cards are the same rank.","item2":"Player/Banker Perfect Pair: that hand's first two cards are the same rank and suit"},"dealing":{"title":"Dealing","body":"Two cards dealt face-up to both Player and Banker hands. A third card may be drawn automatically per rules below."},"tie":{"title":"What happens on a Tie","item1":"If the round ends in a Tie and you did not bet on Tie, your bet is returned in full. A Tie is not a loss. Your Player or Banker bet is refunded and the round settles with no gain and no loss.","item2":"If you did bet on Tie, it pays 8:1 and any Player or Banker bet you placed alongside it is still returned.","item3":"Side bets are not affected by a Tie. They win or lose on the first two cards, and are settled either way."},"drawing":{"title":"Rules","body":"Hand value is calculated based on Sum card values, take the units digit (e.g., 7+6 = 13 â 3).","player":"Player: Stands on 6 or 7; draws on 0-5.","bankerIntro":"Banker: Draws or stands based on Player's third card (if drawn):","banker02":"0-2: Always draws.","banker36":"3-6: Draws based on Player's third card value.","banker7":"7: Stands.","banker89":"8-9: Natural 8 or Natural 9, game ends.","auto":"Third card rules apply automatically; no player choice.","sideIntro":"Rules for placing side bets:","side1":"A side bet cannot be placed before a main bet.","side2":"A side bet cannot exceed 50% of your main bet."},"scoreboard":{"title":"Scoreboard Explanation","grayDot":"Small Gray Dot: Not played","redStroke":"Red Stroke: Banker wins","blueStroke":"Blue Stroke: Player wins","greenSlash":"Green Slash: Tie","redDot":"Small Red Dot: Banker had a pair","blueDot":"Small Blue Dot: Player had a pair","greenSlashNumber":"Green Slash with Number: Consecutive ties (2 or 3)","goldStroke":"Gold Stroke with Red/Blue inside: Natural win (8 or 9 in first 2 cards)","re
195cordIntro":"The results are recorded top to bottom, left to right:","record1":"The first result starts at the top of the first column.","record2":"If the same side wins again (Banker or Player), the circle is drawn below the previous one.","record3":"When the opposite side wins, a new column starts on the right, beginning at the top row.","record4":"Ties do not break the streak; they just get marked on the last result."},"payouts":{"title":"Payouts","player":"Player Win: 1:1.","banker":"Banker Win: 0.95:1 (5% commission on win).","tie":"Tie: 8:1.","pair":"Player/Banker Pair Win: 11:1","perfectPair":"Player/Banker Perfect Pair win: 50:1"},"fairness":{"title":"Fairness","body":"Provably fair RNG shuffles cards; verify outcomes after each round."}}},"blackjack":{"won":"You Won","result":{"dealerWins":"Dealer Wins","push":"Tie â All bets returned"},"insurance":{"title":"Insurance","description":"Dealer shows Ace, insurance is now available","skip":"Skip","selectHandsFirst":"Select the hands first"},"actions":{"deal":"Deal","clear":"Clear","hit":"Hit","stand":"Stand","split":"Split","double":"Double","newbet":"New Bet","rebet":"Rebet","helper":"Bets are on {currency}","bettingHint":"Choose your spots â one per hand â then tap a chip to place your bet"},"settings":{"mute":"Mute","turbo":"Turbo"},"aria":{"settings":"Settings","statistics":"Statistics","rules":"Rules","provablyFair":"Provably Fair","close"
195:"Close"},"rules":"### Objective\\nBeat the dealer by getting a hand value closer to 21 without going over.\\n\\n### Decks\\n8 standard decks (416 cards), shuffled each round. Card values: 2-10 face value, Jacks/Queens/Kings = 10, Aces = 1 or 11 (best for your hand).\\n\\n### Betting\\nChoose a bet per hand (1-3 hands allowed). Confirm to start the round.\\n\\n### Dealing\\nYou get two face-up cards per hand; dealer gets one face-up, one face-down.\\n\\n### Your Turn\\nFor each hand, choose:\\n- Hit: Take another card (repeat until you stand or bust).\\n- Stand: Keep your hand and end your turn.\\n- Double Down: Double your bet, get one more card, then stand.\\n- Split: If dealt a pair, split into two hands (extra bet). Re-split up to 1 times (max 2 hands on each hand dealt). Aces get one card each, no further hits.\\n- Insurance: If dealer shows an Ace, bet up to half your main bet per hand (pays 2:1 if dealer has Blackjack). Decide within 10 seconds or skip.\\n\\n### Payouts\\n- Win (beat dealer): 1:1.\\n- Natural Blackjack (Ace + 10-value card): 3:2.\\n- Tie: Bet returned (push).\\n- Bust (over 21): Lose bet.\\n- Dealer Blackjack: Lose main bet unless insured; insurance pays 2:1.\\n\\n### Fairness\\nProvably fair RNG shuffles cards; verify outcomes after each round."},"mines":{"currency-not-allowed":"Currency is not allowed","bad-min-amount":"Amount should be greater than {{amount}}","bad-max-amount":"Amount should be less than {{amount}}","not-enough-balance":"not enough balance","title":"Mines","result":{"unlucky":"Unlucky","better_luck_next_time":"Better luck next time!","play_again":"Play again","lose":{"title":"Unlucky","description":"More luck next time!"}},"cta":{"pickRandomCell":"Pick Randomly"},"error":{"made_a_bet_first":"Place your bet first","please_choose_a_cells":"Please choose cells first"}},"keno":{"difficulty":{"title":"Risk","easy":"Low","medium":"Medium","hard":"High"},"cta":{"clearTable":"Clear table","pickRandomCell":"Random pick","selectCells":"Select from {min} to {max} cells to start the game"}},"duck":{"controls":{"difficulty":"Difficulty"},"difficulty":{"easy":"Easy","medium":"Medium","hard":"Hard","legendary":"Legendary"},"lastGames":"Last games:","howToPlay":{"title":"Here's how What the Duck!? works","step":{"1":{"title":"Choose Your Bet","description":"Bigger bets means bigger payout. Adjust accordingly to your risk tolerance."},"2":{"title":"Set The Difficulty","description":"How much risk are you willing to take? The higher the difficulty, the bigger the multipliers for every lane you cross."},"3":{"title":"Cashout","description":"Ready for the profit? Cashout when you have had enough fun already."},"value":"Step {step}"},"tryNow":"Try now","button":"How to play"},"gameRules":{"button":"Game rules","bettingRange":"Betting Range","bettingRangeDescription":"Bets range from {minBet} to {maxBet}, affecting the final payout based on the multiplier achieved. Max win is {maxWin} USD.","minBet":"Min Bet","maxBet":"Max Bet","maxWin":"Max Win","close":"Close"},"provablyFair":{"deadAtLine":"Dead at line {fatalLine}"}},"crash":{"round_countdown":{"starts_in":"Starts In:"},"place_bets_next_round":"Place bets for the next round","bets_placed":"Bets placed","new_game_starts_soon":"New game starts soon","crashed_at":"Crashed at:","crashed":"Crashed","round_over":"Round over","1st_bet":"1st bet","2nd_bet":"2nd bet","place_the_bet":"Place the bet","cashout":"Cashout {multiplier}"},"roulette":{"no_previous_rolls":"No Previous Rolls yet.","previous_rolls":"Previous Rounds","last_100":"Last 100","place_bet_button":{"place_bet":"Place Bet","win_amount":"Win {multiplier}x","free_bet":"Place Free Bet"},"bettors_list":{"count":"Bets Total","you":"You"},"bet_input_control":{"placeholder":"Enter bet amount","clear":"Clear"},"round_countdown":{"starts_in":"Starts in"},"error":{"generic":"An error occurred. Please try again later","bet_amount_low":"Bet amount is too low","already_bet":"Already placed a bet","bet_amount_high":"Bet amount is too high","insufficient_funds":"Insufficient funds. Top up your balance."}},"croc":{"title":"Broken Teeth","cta":{"pickRandomCell":"Random pick"}},"see_over":"See over 4,000+ games","tower":{"controls":{"difficulty":"Difficulty","difficultyInfo":"Changing the difficulty increases multiplier & risk on each floor. Easy is the safest; Hard has the best win potential."},"difficulty":{"easy":"Easy","medium":"Medium","hard":"Hard"},"lastGames":"Last Games:","build":"Build","gameRules":{"button":"Game rules","bettingRange":"Betting Range","bettingRangeDescription":"Bets range from {minBet} to {maxBet}, affecting the final payout based on the multiplier achieved. Max win is {maxWin} USD.","minBet":"Min Bet","maxBet":"Max Bet","maxWin":"Max Win","close"
195:"Close"},"howToPlay":{"button":"How to play?","title":"How to play?","placeholder":"How-to-play content coming soon."},"provablyFair":{"collapseAtFloor":"Tower collapsed at floor {collapseFloor}","survived":"Tower reached the top â no collapse"},"placeBet":"Place a bet","result":{"title":"Tower down!","subtitle":"Rebuild and climb higher"}},"plinko":{"controls":{"risk":"Risk","rows":"Number of Rows"},"risk":{"low":"Low","medium":"Medium","high":"High"},"verify":{"result":"Result","bucket":"Bucket","enterSeeds":"Enter the seeds and nonce to verify"}}}`),EI={label:"RTP",rtp_with_battlepass:"RTP with Battlepass",rtp_regular:"Regular RTP"},TI={toast:{error:{title:"Error!",body:"Please try again later or contact Whale support. Notification ID=({id})",expired:"This reward has expired and can no longer be claimed.",already_claimed:"You've already claimed this reward.",not_available_yet:"This reward isn't available yet. Please try again later.",not_found:"This reward is no longer available.",conditions_not_met:"You haven't met the conditions for this reward yet."},success:{title:"Success!",body:"You've successfully claimed {type} and its been assigned to you",deposit:{body:"Your {currency} has been successfully added to your balance!"},free_bet:{body:"Your free bet has been successfully activated!"}},levelup:{title:"Level Up!",body:"Congratulations! You've reached level {level}!"},rejected:{title:"Rejected!",body:"You've rejected this {type} and it won't be shown again"}},action:{accept:"Claim",expired:"Expired",reject:"Reject",view:"View"},addEmail:{title:"Don't miss out on Rewards",body:"Add your email to unlock top promos â and grab 1,000 Whale tokens instantly.",button:"Add email"},cashback:{title:"Cashback",body:"Your daily cash back is now available! Claim by clicking below!",expired:"You snooze you loose! Your Cashback has been expired."},freespin:{title:"Freespins",body:"You have Freespins! Claim now before they expire!",expired:"You snooze you loose! Your Freespins have been expired",description:"{bet_count} Spins"},periodicBonus:{weekly:{title:"Weekly Bonus",body:"Your weekly bonus is ready! Claim it before the next drop."},monthly:{title:"Monthly Bonus",body:"Your monthly bonus is ready! Claim it before the next drop."},expired:"You snooze you lose! Your bonus has expired."},deposit_bonus:{title:"Bonus Reward"},claimed:"Claimed",rejected:"Rejected",credited:"Credited",welcome_lootbox:{title:"Reward has landed!",description:"Itâs on the house!",button:"Claim Now"},friday_lootbox:{title:"Friday Reward!",description:"Your Friday Lootbox is ready, open it!",button:"Open Friday Box"},bonusClaimed:{title:"Bonus claimed",body:"Your bonus has been claimed successfully."},tokenPrint:{claimable:{title:"Your printer is complete",body:"That print run is done and your $Whale is waiting. Claim it, then load up the next one.",cta:"Go Claim"}},personalBonus:{expiring:{title:"Bonus expiring soon",body:"Your bonus is about to expire. Claim it before it's gone!"}},kyc:{approved:{title:"Verification approved",body:"Your identity verification is complete. You're all set!"},rejected:{title:"Verification unsuccessful",body:"We couldn't verify your identity. Please review and try again."}},security:{"2faEnabled":{title:"Two-factor enabled",body:"Two-factor authentication is now active on your account."},"2faDisabled":{title:"Two-factor disabled",body:"Two-factor authentication has been turned off."},passwordChanged:{title:"Password changed",body:"Your account password was changed."},emailChanged:{title:"Email changed",body:"The email on your account was updated."}},withdrawal:{requested:{title:"Withdrawal requested",body:"Your withdrawal request has been received."},approved:{title:"Withdrawal approved",body:"Your withdrawal has been approved and is being processed."},completed:{title:"Withdrawal completed",body:"Your withdrawal has been sent successfully."},rejected:{title:"Withdrawal unsuccessful",body:"Your withdrawal could not be processed and the amount was returned to your balance."}},promotion:{message:{title:"New offer",body:"You have a new promotion waiting."}},tournament:{started:{title:"Tournament started",body:"{tournamentName} has started â jump in and compete!"},added:{title:"New tournament",body:"{tournamentName} just dropped â join now and compete!"},reminder:{title:"Tournament ending soon",body:"{tournamentName} is ending soon. Climb the leaderboard before time runs out!"},winnings:{title:"You won a prize!",body:"You placed #{rank} in {tournamentName} and won ${amountUsd}."},expires_in:"Expires in:"}},RI={provider:"Provider"},CI=JSON.parse(`{"battlepass_required":"A Battlepass is required to play Whale Originals.","description":{"whale_blackjack":"Ready to outsmart the house in a high-stakes showdown? Deal into Whale Blackjack, the sleek and thrilling Whale Originals twist on the classic card game, now a fan-favorite sensation at Whale Casino! Play up to three hands simultaneously and provably fair odds, delivering intense action and fun experience with one of the highest RTPs in the industry.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Blackjack?</h4>\\nWhale Blackjack is a pulse-pounding online casino game exclusive to Whale Casino, elevating the timeless blackjack experience with a modern edge. Face off against the house, aiming to hit 21 or beat the dealerâs hand across up to three simultaneous hands. With standard online blackjack rules, insurance bets, and 3:2 payouts for natural blackjacks, this provably fair, RNG-powered Whale Originals classic turns every deal into a shot at whale-sized rewards.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Blackjack?</h4>\\nJumping into Whale Blackjack at Whale Casino is fast, strategic, and exhilarating. Start by selecting your bet size for up to three hands. Cards are dealt, and your goal is to get as close to 21 as possible without busting, while outscoring the dealer. Cho
195ose to hit, stand, double down, split pairs, or take insurance when the dealer shows an ace. Nail a blackjack for a 3:2 payout, or play smart to lock in steady wins!\\n\\nHere are the key rules to master Whale Blackjack:\\n\\n⢠Multi-Hand Action: Play up to three hands at once, multiplying your chances to beat the dealer and stack rewards.\\n\\n⢠Blackjack Payout: Land a natural blackjack (21 on the first two cards) for a 3:2 payout; other wins pay 1:1.\\n\\n⢠Insurance Option: When the dealerâs upcard is an ace, take insurance to hedge against a dealer blackjack (pays 2:1 if insurance hits).\\n\\n⢠Standard Rules: Follow classic online blackjackâhit, stand, double down, or split pairs (like aces or eights) to optimize your hands.\\n\\n⢠Battlepass Rewards: Earn XP with every round to unlock exclusive Battlepass perks and climb the Whale Casino ranks.\\n\\nMaster strategy and timing in Whale Blackjack to outwit the dealer across multiple hands. With provably fair RNG ensuring every card is fair, dominate the tables, soar up the leaderboards, and cash in on epic wins in this sophisticated Whale Casino exclusive!","whale_dice":"Craving a fast-paced, high-reward thrill? Roll into Whale Dice, the ultimate Whale Originals spin on the classic dice game, now a blockbuster hit at Whale Casino! With customizable odds, provably fair RNG, and a sleek autoplay feature, Whale Dice offers heart-pounding excitement and massive win potential with one of the highest RTPs in the industry.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Dice?</h4>\\nWhale Dice is an electrifying online casino game exclusive to Whale Casino, transforming the traditional dice game into a modern masterpiece. Your goal? Predict whether the roll of a virtual 100-sided die will land above, below, or on your chosen number. Adjust the odds to control risk and reward, and watch your multipliers soar with every winning roll in this provably fair, RNG-driven Whale Originals gem.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Dice?</h4>\\nGetting started with Whale Dice at Whale Casino is quick and exhilarating. Choose your bet size, set your target number (from 0 to 100), and select whether the roll will be higher or lower. Then, roll the dice to see if luckâs on your side! Hit a winning roll to boost your multiplier, and cash out to secure your profits. The more you tweak the odds, the bigger the potential payout!\\n\\nHere are the key rules to master Whale Dice:\\n\\n⢠Set Your Prediction: Pick a number and bet on whether the dice roll will be higher or lowerâcloser odds mean higher risk but bigger multipliers.\\n\\n⢠Multiplier Wins: Correct predictions increase your payout, with multipliers ranging from x1.1 to x98+ based on your settings.\\n\\n⢠Battlepass Rewards: Earn XP with every roll to unlock exclusive Battlepass rewards and rise through Whale Casino ranks.\\n\\n⢠Autoplay Mode: Set your preferred odds and cashout limits, then let autoplay roll for you, stacking profits seamlessly.\\n\\nMastering Whale Dice is all about balancing risk and reward. With provably fair RNG ensuring every roll is transparent, you can chase massive multipliers, dominate the leaderboards, and roll your way to whale-sized wins at Whale Casino!","whale_baccarat":"Step up to the elegant table with Whale Baccarat, the sleek Whale Originals take on the most iconic card game in the casino, now dealing nonstop thrills at Whale Casino! Bet on Player, Banker, or Tie, add Pair and Perfect Pair side bets, and let a provably fair 8-deck shoe decide the coupâall with one of the lowest house edges in the industry.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Baccarat?</h4>\\nWhale Baccarat is a refined online casino game exclusive to Whale Casino, bringing the timeless high-roller classic into a fast, provably fair format. Two handsâPlayer and Bankerâare dealt from an eight-deck shoe, and whichever lands closest to nine wins. Back your call, sprinkle in side bets, and turn every coup into a shot at whale-sized rewards, no strategy degree required.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Baccarat?</h4>\\nJumping into Whale Baccarat at Whale Casino is effortless and exhilarating. Pick your chip size and place it on any mix of spots: Player, Banker, Tie, Player Pair, Banker Pair, or Perfect Pair. Confirm your bet, the cards are dealt and totaled automatically under classic third-card rules, and winning spots pay out instantly. Rebet or double up and go again!\\n\\nHere are the key rules to master Whale Baccarat:\\n\\n⢠Player & Banker: Bet on the hand you think lands closest to nineâPlayer pays 1:1, Banker pays 19:20 after the standard commission.\\n\\n⢠Tie Bet: Wager that both hands finish level for a big 8:1 payout; on a tie, Player and Banker bets simply push.\\n\\n⢠Pair Side Bets: Player Pair or Banker Pair pays 11:1 when that hand's first two cards match in rank.\\n\\n⢠Perfect Pair: Land a matching suited pair on your chosen hand for a huge 50:1 payout.\\n\\n⢠Multi-Spot Betting: Cover several spots in a single coup, stacking chips just like the real table.\\n\\nWith a provably fair 8-deck shoe keeping every coup transparent, Whale Baccarat blends timeless elegance with instant actionâplace your bets, climb the leaderboards, and chase sophisticated, whale-sized wins in this Whale Casino exclusive!","whale_mines":"Ready for a high-stakes adventure? \\nBlast into Whale Mines, the electrifying Whale Originals take on the classic Mines game, now a fan favorite at Whale Casino! With 25 tiles, provably fair RNG, and seamless autoplay, Whale Mines delivers heart-racing excitement and massive win potential with one of the highest RTPs in the industry.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Mines?</h4>\\nWhale Mines is a thrilling online casino game exclusive to Whale Casino, reimagining the timeless Mines game with a modern twist. Your mission? Navigate a 25-tile grid, uncovering safe tiles to boost your multiplier while avoiding hidden mines that end the round. Each safe tile increases your payout, turning small bets into colossal wins in this provably fair, RNG-powered Whale Originals classic.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Mines?</h4>\\nJumping into Whale Mines at Whale Casino is simple and exhilarating. Start by selecting your bet size and the number of mines (from 1 to 24) to set the risk level. Then, click tiles on the 25-tile grid to reveal safe spots or deadly mines. Each safe tile racks up your multiplier, but hit a mine, and itâs game over. Cash out anytime to lock in your winnings!\\n\\nHere are the key rules to conquer Whale Mines:\\n\\n⢠Safe Tile Clicks: Each safe tile you uncover increases your multiplierâkeep going to climb the payout ladder.\\n\\n⢠Mine Risk: One wrong click on a mine ends the round, so cash out strategically to secure your profits.\\n\\n⢠Multiplier Ladder: Safe tiles boost multipliers from x1 to massive x1000+ payouts, depending on mine count.\\n\\n⢠Battlepass Rewards: Earn XP per round to unlock exclusive Battlepass rewards and climb the Whale Casino ranks.\\n\\n⢠Autoplay Mode: Set your cashout limit and let autoplay handle the action, making it easy to rack up wins effortlessly.\\n\\nMaster the art of risk and reward in Whale Mines by knowing when to push your luck or cash out. With provably fair RNG ensuring transparency, dominate the leaderboards and strike it rich in this explosive Whale Casino exclusive!","whale_keno":"Looking for fast-paced thrills with massive payout potential? Dive into Whale Keno, classic game brought to life at Whale Originals series! Featuring provably fair RNG, lightning-fast rounds, and flexible number selection, Whale Keno delivers nonstop excitement and one of the most iconic casino experiencesâreimagined for modern players.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Keno?</h4>\\n\\nWhale Keno is Whale Casinoâs exclusive take on the legendary Keno game, combining simplicity with high-risk, high-reward gameplay. Choose your lucky numbers, watch the draw unfold, and match as many numbers as possible to score big multipliers. The more matches you hit, the higher your payoutâmaking every round a pulse-pounding chase for huge wins in this provably fair Whale Originals favorite.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Keno</h4>\\n\\nGetting started with Whale Keno at Whale Casino is quick and effortless. Begin by selecting your bet size, then choose how many numbers you want to play from the available board. Once youâre locked in, start the round and watch as the game draws the winning numbers. Match enough numbers, and youâll land powerful multipliers and instant payouts!\\n\\nHere are the key rules to master Whale Keno:\\n\\n⢠Number Selection: Pick your lucky numbers from the boardâthe more numbers you select, the more probability to get a rewards.\\n\\n⢠Winning Matches: Adjust how many numbers you play to trigger payouts and unlocking massive multipliers.\\n\\n⢠Flexible Risk Levels: Match drawn numbers with your favorites to control your risk and reward levels.\\n\\n⢠Provably Fair RNG: Every draw is transparent and verifiable, ensuring fair outcomes every round.\\n\\n⢠Autoplay Mode: Set your preferences and let autoplay run rounds automatically for seamless, nonstop action.\\n\\n⢠Turbo Mode: Play flash-quick rounds with instant results and nonstop action.\\n\\n⢠Battlepass Rewards: Earn XP with every round played to unlock exclusive Battlepass rewards and climb the Whale Casino ranks.\\n\\nWhether youâre chasing consistent wins or hunting for explosive payouts, Whale Keno offers endless possibilities with every draw. Simple to play, thrilling to watch, and backed by provably fair technologyâthis Whale Casino exclusive is a must-play for Keno fans and high-rollers alike. ðð¯","whale_duck":"Tired of the same old casino grind? Waddle into What the Duck!?, the hilariously chaotic Whale Originals spin on the iconic chicken-crossing game, now a wild hit at Whale Casino! Guide your daring duck across endless lanes of zooming traffic to stack massive multipliers, dodging cars in a frenzy of feathers and fortuneâwith one of the highest RTPs in the industry.\\n\\n<h4 class=\\"text-white text-xl\\">What is What the Duck!?</h4>\\nWhat the Duck!? is a feathery frenzy of an online casino game exclusive to Whale Casino, transforming the legendary \\"chicken crossing the road\\" into a multiplier-munching adventure. Your feathered hero braves w
195ave after wave of traffic lanes, clearing paths to ramp up rewards. Each successful crossing boosts your payout, but one collision with a car ends the roundâcash out smart to turn your bets into blockbuster wins in this provably fair, RNG-powered Whale Originals riot.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play What the Duck!?</h4>\\nLeaping into What the Duck!? at Whale Casino is a quack-tastic rush of strategy and split-second decisions. Kick off by picking your bet size, then watch your duck dash across the highway. Swipe or click to navigate through traffic-packed lanesâclear a lane to snag a multiplier boost and keep the streak alive. The faster and farther you go, the bigger the rewards, but hit a car and it's game over!\\n\\nHere are the key rules to rule the road in What the Duck!?:\\n\\n⢠Dodge traffic: Guide the duck through safe gaps in traffic to clear each lane, stacking multipliers with every successful crossing.\\n\\n⢠Multiplier Ladder: Consecutive cleared lanes escalate your payout from x1 to x3000+, rewarding bold runs across multiple lanes.\\n\\n⢠Battlepass Rewards: Score XP with every crossing attempt to unlock exclusive Battlepass goodies and surge up Whale Casino ranks.\\n\\n⢠Cashout Timing: No autopilot hereâmaster control to decide when to cash out and secure your feathered fortune before disaster strikes.\\n\\nHone your reflexes and risk tolerance in What the Duck!? to cross into legend status. With provably fair RNG keeping every dash transparent, top the leaderboards and hatch epic wins in this uproarious Whale Casino exclusive!","whale_crock_dentist":"Do you love high-risk, high-reward games? Dive into Crock Dentist, the thrilling Whale Originals twist on the classic children's game and is now a top sensation at Whale Casino! With massive multipliers and heart-pounding tension, this Crock Dentist experience offers the highest RTP in the industry. \\n\\n<h4 class=\\"text-white text-xl\\">What is Crock Dentist?</h4>\\nCrock Dentist is one of the most exciting online casino games available at Whale Casino. Inspired by the popular game from our childhood, the aim is to rack up high multipliers by clicking on safe teeth in the crocodile's mouth while dodging broken teeth that cashout before you get bitten. Each safe tooth cleared boosts your multiplier, turning small bets into whale-sized wins in this OG Crock Dentist Whale Originals exclusive. \\n\\n<h4 class=\\"text-white text-xl\\">How to Play Online Crock Dentist?</h4>\\nPlaying Crock Dentist and other games at Whale Casino is a breeze. Start the game by selecting number of safe teeth and your bet size. Once the crocodileâs mouth opens, itâs go time: Click on teeth one by one to reveal if theyâre safe (collect the multiplier and keep going) or broken (game over, bet lost). Build streaks of safe teeth for escalating rewardsâhit a long run, and watch your bet explode with high multipliers!\\n\\nHere are some simple rules to master this Crock Dentist thrill:\\n\\nSafe Teeth Clicks: Every successful click on a safe tooth adds to your multiplier - cash out before you lose\\n\\nBroken Tooth Risk: One wrong click ends the round so cash out before disaster strikes.\\n\\nMultiplier Ladder: Safe teeth climbs the multiplier tiers (x1 to x900+).\\n\\nBattlepass Rewards: Earn battlepass XP per round to unlock rewards in Battlepass and move up in the Ranks.\\n\\nAuto-mode Option: In Auto modes, you can set a limit when to cashout to play Crock Dentist seamlessly and rack up the profits.\\n\\nMastering when to push your luck or cash out is key to your Crock Dentist strategy, helping you dominate leaderboards and conquer the whale casino with bigger, bolder multipliers!","title":"Game Description","whale_roulette":"Ready to chase electrifying wins with a bold twist? Spin into Whale Roulette, the revolutionary Whale Originals reimagining of roulette, now exploding in popularity at Whale Casino! Bet exclusively on three colorsâblue, yellow, or redâfor provably fair RNG thrills, and massive multipliers with one of the highest RTPs in the industry.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Roulette?</h4>\\nWhale Roulette is a pulse-racing online casino game exclusive to Whale Casino, flipping the classic roulette wheel into a streamlined, color-based powerhouse. Forget the traditional gridâhere, you wager on just three outcomes: blue, yellow, or red. The wheel spins, landing on a color to trigger your payout. Each bet unlocks escalating multipliers, turning modest stakes into whale-sized jackpots in this provably fair, RNG-driven Whale Originals sensation.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Roulette?</h4>\\nLaunching into Whale Roulette at Whale Casino is fast, intuitive, and adrenaline-fueled. Select your bet size, choose one of the three colors (blue, yellow, or red), and hit spin. The vibrant wheel whirls, revealing the winning hueâif it matches your pick, you win the multiplier! \\n\\nHere are the key rules to dominate Whale Roulette:\\n\\n⢠Color Bets: Stake on blue, yellow, or redâtwo with equal multipliers and equal amounts on the board and the rarest color only has one correct coin to land on with much better multipliers. \\n\\n⢠Wheel Spin: Every spin of the color-coded wheel determines the outcome, with hits multiplying your bet from x2 to x15.\\n\\n⢠Multiplier Ladder: Chain winning colors to climb payout tiers, where precision betting yields life-changing wins.\\n\\n⢠Battlepass Rewards: Rack up XP with each spin to unlock exclusive Battlepass perks and ascend Whale Casino ranks.\\n\\nMaster the rhythm of colors and timing in Whale Roulette to outsmart the wheel. With provably fair RNG guaranteeing every spin's integrity, conquer the leaderboards and flood your balance with colossal wins in this innovative Whale Casino exclusive!","whale_crash":"Buckle up for nonstop adrenaline! Crash by Whale is the ultimate high-speed casino game from Whale Originals, delivering instant thrills, strategic cashouts, and massive win potential. Featuring provably fair RNG, lightning-fast rounds, and the unique ability to play up to two hands at once, Crash by Whale is a must-play favorite at Whale Casino with one of the industryâs most competitive RTPs.\\n\\n<h4 class=\\"text-white text-xl\\">What is Crash by Whale?</h4>\\n\\nCrash by Whale is a fast-paced online casino game exclusive to Whale Casino, inspired by the iconic Crash game format and elevated with Whale Originals innovation. Watch the multiplier soar from x1 upwardâbut be quick. The round can crash at any moment. Cash out before it does to secure your winnings, or risk it all for explosive payouts. With the option to play one or tw
195o hands simultaneously, Crash by Whale gives players more control, more strategy, and more chances to win big.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Crash by Whale?</h4>\\n\\nGetting started with Crash by Whale is simple, fast, and insanely exciting. Begin by choosing your bet amount and decide whether to play one hand or two hands at the same time, allowing you to run different strategies in a single round. Once the game starts, the multiplier climbs higher and higherâcash out at the perfect moment before the crash to lock in your profits.\\n\\n<h4 class=\\"text-white text-xl\\">Here are the key rules to master Crash by Whale:</h4>\\n\\n⢠Rising Multiplier:\\nThe multiplier increases in real time from x1 upwardâcash out anytime before the crash to secure your payout.\\n\\n⢠Crash Risk:\\nIf the multiplier crashes before you cash out, your bet is lost. Timing is everything.\\n\\n⢠Dual-Hand Gameplay:\\nPlay with 1 or 2 hands simultaneously, letting you cash out one bet early while pushing the other for higher multipliers.\\n\\n⢠Massive Payout Potential:\\nMultipliers can skyrocket to x1000+, offering huge win opportunities in seconds.\\n\\n⢠Battlepass Rewards:\\nEarn XP every round to progress through the Whale Casino Battlepass and unlock exclusive rewards.\\n\\nCrash by Whale is the perfect blend of speed, strategy, and pure excitement. With provably fair technology, dual-hand gameplay, and instant high-multiplier action, itâs no surprise Crash by Whale is one of the most popular Whale Originals at Whale Casino. Time your cashout, beat the crash, and ride the multiplier to legendary wins!","whale_plinko":"Ready to watch your bets bounce their way to massive multipliers? Drop into Whale Plinko, the electrifying Whale Originals take on the classic peg-board game, now a rising favorite at Whale Casino! With adjustable risk levels, customizable rows, and provably fair RNG, Whale Plinko delivers mesmerizing drops and massive win potential.\\n\\n<h4 class=\\"text-white text-xl\\">What is Whale Plinko?</h4>\\nWhale Plinko is a captivating online casino game exclusive to Whale Casino, reimagining the beloved peg-board classic as a provably fair RNG thriller. Your ball drops from the top of the board, bouncing off row after row of pegs before settling into one of the multiplier slots at the bottom. Set your risk level and row count to shape the odds, and watch every drop turn a simple bet into a shot at whale-sized rewards.\\n\\n<h4 class=\\"text-white text-xl\\">How to Play Whale Plinko?</h4>\\nGetting started with Whale Plinko at Whale Casino takes seconds. Choose your bet size, pick a risk levelâLow, Medium, or Highâand set the number of rows the ball falls through. Drop the ball and watch it ricochet down the board until it lands in a slot, instantly crediting your multiplier. Fire off drops back to back with Autoplay, or speed through rounds with Turbo Mode!\\n\\nHere are the key rules to master Whale Plinko:\\n\\n⢠Risk Levels: Choose Low, Medium, or High riskâhigher risk widens the gap between the smallest and biggest multipliers on the board.\\n\\n⢠Row Count: Adjust the number of rows the ball crosses; more rows mean more bounces and bigger potential payouts.\\n\\n⢠Multiplier Slots: Where the ball lands decides your payout, with edge slots paying the biggest multipliers.\\n\\n⢠Autoplay Mode: Queue up consecutive drops and let the board do the work, stacking wins seamlessly.\\n\\n⢠Turbo Mode: Speed through drops for rapid-fire rounds and nonstop action.\\n\\n⢠Battlepass Rewards: Earn XP with every drop to unlock exclusive Battlepass rewards and climb the Whale Casino ranks.\\n\\nMastering Whale Plinko is all about balancing risk and reward across every bounce. With provably fair RNG ensuring every drop is transparent, chase towering multipliers, dominate the leaderboards, and ride the pegs to whale-sized wins at Whale Casino!"},"rules":{"whale_keno":"<h4 class=\\"text-white font-semibold text-base\\">Objective</h4>\\n<p class=\\"text-brandblue-100 text-sm pb-4\\">Pick 10 numbers to match as many of the 10 drawn numbers as possible.</p>\\n\\n<h4 class=\\"text-white font-semibold text-base\\">Tiles</h4>\\n<p class=\\"text-brandblue-100 text-sm pb-4\\">40 numbered tiles (1-40). 10 numbers drawn randomly each round.</p>\\n\\n<h4 class=\\"text-white font-semibold text-base\\">Betting</h4>\\n<p class=\\"text-brandblue-100 text-sm pb-4\\">
195Choose a bet amount per round. Confirm by clicking to start the draw.</p>\\n\\n<h4 class=\\"text-white font-semibold text-base\\">Payouts</h4>\\n<p class=\\"text-brandblue-100 text-sm pb-4\\">Winning multiplier depends on how many correct tiles player guessed and which difficulty is set for round. Lower difficulty gives smaller multiplier but pays out for at less correct guesses.</p>\\n\\n<h4 class=\\"text-white font-semibold text-base\\">Fairness</h4>\\n<p class=\\"text-brandblue-100 text-sm pb-4\\">Provably fair RNG draws numbers; verify outcomes after each round.</p>"}}`),AI="Copied",xI="History",OI="Round",II="Rules",DI="Total Bets",LI="You've reached the maximum win and your round has been closed.",NI="Congratulations!",PI="You won",WI="Win",MI="N/A",BI="You",UI="Moderator",FI="Host",$I="Loading...",zI="Terms and conditions",jI="Responsible Gaming",GI="Fairness",HI="Restricted jurisdictions",VI="AML Policy",YI="Affiliates",qI="Trade $Whale",ZI="Crock NFT",KI="Whale.io is owned and operated by Whale Operations Ltd. registration number: 222756, registered address: Suite 3, Global Village, Jivanâs Complex, Mont Fleuri, Mahe, Seychelles. Contact us [email protected]. Whale.io is licensed and regulated by the Government of the Autonomous Island of Anjouan, Union of Comoros and operates under License No. ALSI-202503012-FI1. Whale.io has passed all regulatory compliance and is legally authorized to conduct gaming operations for any and all games of chance and wagering.",XI="Legal",JI="Privacy Policy",QI="Marbles",eD="WTF?!",tD="Refer a Friend",nD="Football",rD="Live",aD="Basketball",iD="Tennis",oD="Ice Hockey",sD="Your account is Suspended!",lD="Think it's a mistake? Contact support or verify your account now.",cD="Verify yourself",uD="Contact support",dD="Think it's a mistake? Contact support now.",hD={common:{downloadApp:"Download App",android:"Android",ios:"iOS"},hero:{label:"QUICK & CONVENIENT",title:"Install",titleBrand:"Whale.io",titleSuffix:"app on your phone",subtitle:"Get fast access to Whale.io from Android & iOS."},phone:{time:"9:41",responsibleScan:"Responsible Scan",whalesChoice:"Whale's",whalesChoiceLine2:"Choice",whalesChoiceSubtitle:"Best Rewards and",whalesChoiceSubtitleLine2:"Exclusive Benefits",playNow:"Play Now",recentlyPlayed:"Recently Played",game:"Game",whalePlako:"Whale Plako",startPlay:"ð® Start Play"},features:{lightningSpeed:{title:"Lightning speed",description:"Whale.io runs directly on your device â no lag, no delays, just lightning-fast performance."},firstToKnow:{title:"First to Know",description:"Never miss out! Be the first to hear about new releases, tournaments, and rewards."},quickAccess:{title:"Quick Access",description:"Open Whale.io in just one tap â no waiting, no hassle. Jump straight into the action."}},steps:{android:{title:"Download the Whale APK for Android in 4 Easy Steps",step1:{title:"Step 1",description:`Hit the "Download" button either above or below hereâdon't worry, it won't bite.`},step2:{title:"Step 2",description:'Once the download wraps up, tap on "Open." You might get asked to choose "Package Installer".'},step3:{title:"Step 3",description:`You'll see a shiny "Install" prompt. Go ahead and give it a tap. Think of it like hitting the "Start" button on a new adventure.`},step4:{title:"Step 4",description:"The app is now installed, and you're ready to roll. Look for the Whale icon on your deviceâit's your new best friend in the digital sea."}},ios:{title:"Download the Whale APP for iOS in 4 Easy Steps",step1:{title:"Step 1",description:"Tap the button below to magically transport yourself to our app page. No brooms or portals needed, just a simple tap!"},step2:{title:"Step 2",description:`Once you're there, hit the "Sharing" button at the bottom of the screen. It looks a bit like a square with an arrow trying to escape. It's the button that's always ready to party.`},step3:{title:"Step 3",description:`After the party button does its thing, you'll see an option that says "Add to Home Screen." Give that a tap. It's like giving your home screen a giftâthe gift of our awesome Whale icon!`},step4:{title:"Step 4",description:"Voila! You'll now see the Whale icon sitting pretty on your home screen. Now you can open Whale.io in just one tap â no waiting, no hassle. Jump straight into the action."}}}},fD={header:"{site} isn't available in your location",subheader:"Try turning your VPN off and reloading the page.",reloadPage:"Reload Page"},pD={try_again:"Please try again later or contact support",game_load_failed:"Error loading the game"},mD="Email Address",gD="Select country",yD="Phone number",bD="Postal address",vD="City",wD="Postal code",_D=JSON.parse(`{"collectibles":{"hero_overline":"Open Lootboxes","hero_title_line1":"Win Prizes","hero_title_line2":"every time","win_paragraph":"You win prizes every time with lootboxes. Sell back what you don't need.","home_subtitle":"Free spins and bonus cash inside, and anything you skip you can sell straight back.","pokemon_packs":"Pokemon Packs","slots_packs":"Slots Booster Packs","coming_soon":"Coming soon","label_lootbox":"Lootbox","label_booster_pack":"Booster Pack","view_pack":"View Pack","open_free":"Open free","free":"Free","free_opens_left":"{count} free left","per_pack":"per pack","buy":"Buy","buy_for":"Buy for","buy_confirm":{"title":"Confirm Purchase","quantity":"Quantity","price_per_pack":"Price per pack","total":"Total","confirm":"Confirm","cancel":"Cancel"},"demo":"Demo","demo_no_real_prize":"Demo mode â no real prize. Nothing is charged or credited.","demo_sell_note":"Demo â nothing was sold and no funds will be credited.","inventory":"Inventory","switch_packs":"Switch packs","whats_inside":"Whats Inside?","spins":"Spins","value_label":"Value:","value":"Value","free_spins_count":"{count} x FREE SPINS","sell_for":"Sell for","keep":"Keep","open_next_pack":"Open next pack","bet_size":"Bet size","continue":"Continue","my_loot":"My Loot","total_value":"Total value","sell_all_for":"Sell All For","all_cards_sold":"All Items Sold","card_sold":"Item Sold","my_inventory":"My Inventory","inventory_subtitle":"Collectibles, Free Spins and Merch held in storage. Sell back for instant credit, or ship it home.","inventory_value":"Inventory value","o
195pen_buyback_offers":"Open buyback offers","tab_all":"All","tab_pokemon":"Pokemon","tab_rewards":"Rewards","tab_free_spins":"Free Spins","tab_shipments":"Shipments","claim_items":"Claim Items","claim":"Claim","search_inventory":"Search name, set or cert number","sort_by":"Sort by","highest_value":"Highest Value","pack_complete":"Pack Complete","items_count":"{count} items","open_another_pack":"Open Another Pack","share":"Share","more_packs_title":"More Packs","more_packs_subtitle":"Free spins and bonus cash inside, and anything you skip you can sell straight back.","received":"received","funds_delay_note":"Funds may take up to 2 minutes to appear in your wallet.","sell_continue":"Continue","sold":"Sold","peel_to_open":"Peel to open","open_failed":"Couldn't open the pack. Please try again.","open_failed_inventory_note":"If the purchase went through, the item is already in your inventory.","try_again":"Try again","faq_title":"Frequently Asked Questions","faq_subtitle":"If you can't find an answer here, check out the community forum, reach out on Twitter, or contact support through Chat on Whale.","claim_flow":{"shipping_method_standard":"International Standard","shipping_method_priority":"International Priority","shipping_eta_standard":"5-15 days","shipping_eta_priority":"3-5 business days","step_address":"Address","step_buybacks":"Buybacks","step_items":"Items","step_shipping":"Shipping","step_review":"Review","add_address_title":"Add New Shipping Address","add_address_subtitle":"Make sure you enter correct details where you want this to be delivered","email":"Email","phone":"Phone number","address_line":"Address line 1","city":"City","postal_code":"Postal Code","country":"Country","restricted_country_title":"Shipping unavailable","restricted_country_description":"We can't ship to the selected country at the moment.","continue":"Continue","cancel":"Cancel","back":"Back","address_title":"Where should we ship?","address_subtitle":"Select or add a shipping address","no_address":"No address saved","no_address_subtitle":"Add a shipping address to claim your items.","add_address":"Add address","add_another_address":"Add Another Address","default":"Default","delete_address":"Delete address","buybacks_title":"Sell it back instead?","buybacks_subtitle":"We'll buy back at {rate} of market value. Funds may take up to 2 minutes to appear in your wallet.","total_offer":"Our Total Offer","market_value":"{rate} Market value","sell_all":"Sell All For","sell":"Sell","sell_selected":"Sell Selected","skip_ship_everything":"Skip, ship everything instead","cards_sold":"Cards sold","unsold_items":"{count} unsold items","are_you_sure":"Are you sure?","on_the_table":"That's {amount} on the table","credit_instant_title":"Credit lands instantly","credit_instant_desc":"No shipping, no customs, nothing to wait for.","credit_packs_title":"It covers your next {packs} packs","credit_packs_desc":"{amount} of loot against $25 a pack â you'd be opening on winnings.","sell_all_for":"Sell All For {amount}","yeah_im_sure":"Yeah, I'm sure","items_title":"Select items to claim","items_subtitle":"Everything you pick here ships together in one insured package.","items_search":"Search by name or set","sort_highest":"Highest Value","sort_lowest":"Lowest Value","showing_count":"Showing {shown} of {total}","no_items":"No items found","value_tag":"FML","n_selected":"{count} Selected","clear_selection":"Clear Selection","remove_item":"Remove item","none_selected":"No items selected yet","options_placeholder":"Select","options_required":"Choose the product options for each selected item to continue","shipping_total":"Shipping Total","shipping_title":"Shipping method","shipping_subtitle":"Choose how your items get to you","change":"Change","choose_method":"Choose a method","recommended":"Recommended","shipping_calc_title":"How shipping is calculated?","shipping_calc_1":"Fees are charged per vault. Items held at different vaults ship separately, and each vault adds its own shipping fee.","shipping_calc_2":"Each vault prices differently â a flat rate inside the US, or a rate built from card count, value and destination when shipping abroad.","review_title":"Review order","review_subtitle":"Confirm details before submitting","n_items":"{count} Items","withdrawal_fees":"Withdrawal fees","shipping":"Shipping","total":"Total","duties_title":"Import duties and VAT","duties_description":"If you're shipping outside the US, your shipment may be subject to import duties, taxes, and other customs fees charged by your local authorities. If you do not pay these charges and the package is returned, any return shipping and related fees may be deducted from your account or charged to you.","duties_accept":"I have read and understand the duties and taxes policy.","submit_claim":"Submit claim","claim_submitted":"Your claim has been submitted.","insufficient_funds":"Insufficient funds for shipping. Top up your balance.","claim_failed":"Something went wrong submitting your claim. Please try again.","loading":"Loading","edit_address_title":"Edit Shipping Address"},"items_in_transit":"Items in transit","shipments":{"recipient":"Recipient","address":"Address","phone":"Phone","details":"Delivery details","status_delivered":"Delivered","status_in_transit":"In transit","status_preparing":"Preparing","arrives":"Arrives {date}","tracking_nr":"Tracking nr","copy_tracking":"Copy tracking number","stage_origin":"Warehouse","stage_transit":"In Transit","stage_customs":"Customs","empty":"No shipments yet"},"hero_guest_overline":"Legendary Picks","hero_guest_title_line1":"Rip a pack.","hero_guest_title_line2":"Sell the card.","hero_guest_paragraph":"Every pack holds a
195single card, graded and slabbed before it was sealed. Open it here, sell it or have it shipped to you.","hero_cta_start":"Start Opening Now","chip_graded":"Graded Cards","chip_provably_fair":"Provably Fair","chip_instant_sell":"Instant Sell","this_weeks_packs":"This Week's Packs","how_it_works":"How it Works?","recent_pulls":"Recent Pulls","recent_pulls_subtitle":"See what others are pulling right now.","chance":"Chance","first_edition":"1st Edition","step_pick_title":"Pick a pack","step_pick_text":"Five themes live this week, from $10 to $250. Every pack holds one card.","step_reveal_title":"Reveal your card","step_reveal_text":"Every card is a real slab, graded by PSA and held in the vault from the moment it's yours.","step_keep_title":"Keep, ship, or sell","step_keep_text":"Hold it in your inventory, have the slab shipped to your door, or sell it back at 90% market value.","whale_banner_title":"There's a Lambo in a box at Whale.io","whale_banner_text":"And there is so much more. Slots, sportsbook, and boxes with cars in them â one login across both, everything in the same inventory.","check_it_out":"Check it out","promo_title":"See it work before you spend anything.","promo_text":"Rip a demo pack. If you like it, the real ones start at $10.","open_demo":"Open Demo","nav_packs":"Packs","nav_item":"Item","footer_themes":"Themes","footer_support":"Support/Legal","hero_best_pull":"Your best pull","hero_empty_overline":"Nothing on your shelf yet","hero_empty_title":"Your first card is in one of these","hero_empty_text":"Every pack holds a single graded card, slabbed before it was sealed. Keep it, ship it, or sell it back at 90%.","pick_first_pack":"Pick your first pack","view_your_inventory":"View your Inventory","footer_blurb":"Whale Collectibles is operated by Whale.io. Cards are graded by third-party graders and sealed in-house.","footer_disclaimer":"Packs is not affiliated with Nintendo, Disney, Wizards of the Coast, or Bandai N
195amco. All visuals on the site are used to sell our physical products.","footer_copyright":"© 2025 â 2026 Whale.io Collectibles. All rights reserved.","secured_by":"Secured by","opening_title":"Everyone's Opening Something","opening_subtitle":"Watch what people are pulling, then go find out what's in yours."},"search":{"empty":"No lootboxes found by this parameters","search_result":"Search Result","found_search_result":"Found {searchResultCount} results","placeholder":"Search for lootbox","placeholder_inventory":"Search for items in your inventory","sort_by":"Sort by","collection":"Collection","status":"Status","sort_key":{"all":"All","popular":"Popularity","newest":"Newest","oldest":"Oldest","price-low":"Lowest price","price-high":"Highest price"},"collection_key":{"all":"All","token":"Token","nft":"NFT","ton":"GRAM","hot":"HOT","new":"New","reward":"Reward"},"status_key":{"all":"All","available":"Available","sold":"Sold","requested_delivery":"Requested delivery","processing_delivery":"Processing delivery","shipped":"Shipped","delivered":"Delivered","refunded":"Refunded","activated":"Active Free Spins","withdrawn":"Withdrawn"}},"inventory":{"title":"Inventory","withdraw":"Order item","not_available":"Not available","withdraw_processing":"Item shipped","withdrawn":"Item delivered","requested_delivery":"Requested delivery","processing_delivery":"Processing delivery","sold":"Sold","sold_for":"Sold for","sell_item":"Sell for ","button":"My inventory","empty":"You don't have any items in your inventory","out_of_stock":"Out of stock","deliveries":"Deliveries","order":"Order item","claimed":"Claimed","sell_instantly":"Sell instantly","withdraw_crypto":"Get crypto","withdraw_freespin":"Get freespins","withdraw_deposit":"Add to Balance","activating":"Activating","play_freespin":"Play","withdraw_freebet":"Get freebet","play_freebet":"Play","expired":"Expired","expires_in":"Expires","item_expired":"Offer has expired"},"case":{"open_case":"Open case for","demo":"Demo","items_in_case":"Items in case","try_again":"Try again?","play_again":"Play again","login":"Sign in to Open","open_case_free":"Open case for free","open_case_free_disabled":"No Free Bets remaining","open_case_free_verification_required":"How to Collect your Gift Box?"},"request_delivery":{"product_details":"Product Details","shipping_details":"Shipping Details","product_details_label":{"size":"Size"},"shipping_terms":{"label":"I agree with shipping ","link":"Terms","label_full":"I agree with shipping Terms"},"shipping_details_label":{"name":"Name, Surname","email":"Email","phone":"Phone number","address":"Address","country":"Country"},"continue":"Continue","confirm":"Confirm withdrawal","edit_shipping_details":"Edit","edit_shipping_details_subtitle":"Make sure you enter correct details where you want this to be delivered","terms_and_conditions":{"title":"Terms and conditions","text":"<h3>Shipping Terms and Condition</h3><p>Welcome to Whale.io! By redeeming or purchasing physical items through our platform, you agree to the following shipping terms. Please read carefully before proceeding.</p><p>1. Shipping Eligibility</p><p>1.1 Whale.io ships items to eligible countries only. Users are responsible for ensuring their shipping address is accurate and located in a supported region.</p><p>1.2 Shipping to certain countries may be restricted due to legal, logistical, or operational reasons. Whale.io reserves the right to decline shipping to such locations.</p><p>2. Reimbursement Policy for Non-Deliverable Locations</p><p>2.1 If shipping to your country is not possible, Whale.io will reimburse the full value of the physical items in cryptocurrency.</p><p>2.2 Reimbursement is provided only when delivery is deemed impossible and confirmed by Whale.io.</p><p>3. Delivery Timeline</p><p>3.1 Shipping times may vary based on location, courier availability, and customs processing.</p><p>3.2 While Whale.io strives to dispatch items promptly, delivery delays may occur due to circumstances outside our control. Users agree not to hold Whale.io liable for delays caused by couriers, customs, or force majeure events.</p><p>4. Non-Exchangeability of Items</p><p>4.1 Physical items successfully delivered cannot be exchanged for monetary compensation.</p><p>4.2 Once delivered, the item becomes the property of the user, and any claims for exch
195anges or refunds will be subject to the productâs warranty or guarantee, if applicable.</p><p>5. User Responsibility</p><p>5.1 Users must provide accurate and complete shipping information at the time of redemption. Whale.io is not responsible for lost or undeliverable items due to incorrect details provided by the user. User can only order the items for themselves, to the person registered to their Whale account.</p><p>5.2 Users are responsible for any customs duties, taxes, or fees that may be imposed by their country for the delivery of items.</p><p>6. Lost or Damaged Items</p><p>6.1 If an item is lost or damaged during shipping, users must notify Whale.io within 7 days of the expected delivery date or receipt of the damaged item.</p><p>6.2 Whale.io will work with the courier to resolve issues, but cannot guarantee replacement or reimbursement in all cases.</p><p>7. Contact Information</p><p>For any questions or concerns related to shipping, please contact support.</p><p>By proceeding with your purchase or redemption, you acknowledge that you have read, understood, and agreed to these shipping terms.</p>"},"restricted_country_title":"Delivery is not available for this country","restricted_country_description":"We are unable to deliver to this country. Please sell the items from your inventory instead."},"confirm_sale":{"title":"You are about to sell the item","will_receive":"You will receive","cancel":"Cancel","confirm":"Confirm sale","sale_all":"Sell {count} items for","keep":"Keep items"},"win_modal":{"title_single_item":"You've won {itemName}!","title_many_items":{"prefix":"You've won","suffix":"from {count} Lootboxes!"}},"toast":{"item_sold":"Item sold","you_sold":"You've sold {item} for {price} {currency}!","you_sold_many":"You've sold {count} items for {price} {currency}!","success":"Success!","item_withdrawn":"You've successfully withdrawn {item} and it's on its way!","order_cancelled":"Order cancelled","order_cancelled_subtitle":"You've cancelled your delivery order and item is available for sale or order again","error":"Something went wrong","inventory_sell_error":"We could not sell this item. Please try again or contact support."},"product_details":{"title":"Product Details","size":{"label":"Size","EU_35":"35 EU / US 5 / UK 2.5","EU_36":"36 EU / US 5.5 / UK 3","EU_37":"37 EU / US 6 / UK 3.5","EU_38":"38 EU / US 7 / UK 4.5","EU_39":"39 EU / US 8 / UK 5.5","EU_40":"40 EU / US 8.5 / UK 6","EU_41":"41 EU / US 9 / UK 7","EU_42":"42 EU / US 9.5 / UK 7.5","EU_43":"43 EU / US 8.5 / UK 6.5","EU_44":"44 EU / US 10 / UK 9","EU_45":"45 EU / US 11 / UK 9.5","EU_46":"46 EU / US 12 / UK 10","EU_47":"47 EU / US 13 / UK 11","EU_48":"48 EU / US 14 / UK 12","EU_49":"49 EU / US 15 / UK 13","EU_50":"50 EU / US 16 / UK 14","XS":"XS (Extra Small) - EU 32/34 / RU 42","S":"S (Small) - EU 36/38 / RU 44","M":"M (Medium) - EU 38/40 / RU 46","L":"L (Large) - EU 40/42 / RU 48","XL":"XL (Extra Large) - EU 44/46 / RU 50","XXL":"XXL (Double Extra Large) - EU 48/50 / RU 52","XXXL":"XXXL (Triple Extra Large) - EU 52/54 / RU 54","XXXXL":"XXXXL (Quadruple Extra Large) - EU 56/58 / RU 56"},"color":{"label":"Color","GREEN":"Green","RED":"Red","BLUE":"Blue","YELLOW":"Yellow","PURPLE":"Purple","BLACK":"Black","WHITE":"White","GRAY":"Gray","PINK":"Pink","ORANGE":"Orange","BROWN":"Brown","GOLD":"Gold","SILVER":"Silver"}},"history":{"button":"Unboxing history","title":"Unboxing history","empty":"You don't have any unboxing history","unboxed_item":"Unboxed item","item_value":"Item value","from_lootbox":"From Lootbox","profit":"Profit","date":"Date"},"item":{"type":{"NFT":"NFT","TOKEN":"Token","CRYPTO":"Crypto","PHYSICAL_ITEM":"Physical item","FREESPIN":"Freespin","DEPOSIT":"Deposit"}},"deliveries":{"title":"My Deliveries","empty":"You don't have any deliveries","unboxed_item":"Unboxed item","sending_to":"Sending to","status":"Status","details":"Details","cancel_order":"Cancel order","statuses":{"REQUESTED_DELIVERY":{"title":"Confirming order","subtitle":"This step can take up to 48h. We will send you an email once your order is ready to be shipped."},"PROCESSING_DELIVERY":{"title":"Processing delivery","subtitle":"This step can take up to 48h. We will send you an email once your order is ready to be shipped."},"SHIPPED":{"title":"Order has been shipped","subtitle":"Your order {id} from {date} was passed to the shipping company."},"DELIVERED":{"title":"Order Delivered","subtitle":"Delivered"},"SOLD":{"title":"Item Sold","subtitle":"You've sold your item for {price} {currency} and delivery order has been cancelled"},"AVAILABLE":{"title":"Item Available","subtitle":"You've cancelled your delivery order and item is available for sale or order again"}},"order_number":"Order number:"},"confirm_withdraw":{"title":"You are about to withdraw the item","
195will_receive":"You will receive {bet_count} freespins in {name}","cancel":"Cancel","confirm":"Confirm withdrawal","provide_wallet_address":"Provide wallet address in {network} network","will_receive_crypto":"You will receive {name} on your wallet in {network} network","received_deposit":"You will receive {rawAmount} {currency} on your Whale account"},"banner":{"title":"Open Lootboxes <br /><span class=\\"highlighted\\">Win Prizes Every Time</span>","paragraph":"You <strong>win prizes every time</strong> with lootboxes. Open 4 at a time and sell back what you donât need."},"faq":{"faq_item_1":{"heading":"How do Lootboxes work?","paragraph":"Select a lootbox, Open, and always win something. After getting your reward, you can either claim it or sell it back immediately and open more lootboxes."},"faq_item_2":{"heading":"Are Lootboxes available to all players?","paragraph":"Yes, Lootboxes are available to all users."},"faq_item_3":{"heading":"How much do Lootboxes cost?","paragraph":"Prices depend on the specific Lootbox and can vary. Check the Lootbox page for available lootboxes and their rewards."},"faq_item_4":{"heading":"What currency can I use to open a Lootbox?","paragraph":"You can use any of the available currencies on Whale to open any Lootbox."},"faq_item_5":{"heading":"What happens if I donât like my reward?","paragraph":"All Lootbox rewards can be sold for resell value immediately after opening the box. You can open more boxes straight after selling."},"faq_item_6":{"heading":"Do you ship globally?","paragraph":"Yes, we can ship almost everything to anyone globally."},"faq_item_7":{"heading":"How long does it take to ship it to me?","paragraph":"Delivery time depends on your location and our stock availability. While we can guarantee a delivery in 6 months, most deliveries take much less time."},"faq_item_8":{"heading":"Where can I see the latest information about my ordered items?","paragraph":"You can see your inventory and your in-delivery items under Inventory (https://whale.io/lootbox/inventory) and Deliveries (https://whale.io/lootbox/deliveries). We update delivery information regularly to keep you up to date on the location of your rewards."},"faq_item_9":{"heading":"How often are new Lootboxes added?","paragraph":"Weâre committed to keeping things fresh! New Lootboxes and Rewards will be introduced periodically to enhance your experience. Stay tuned to Whale Social channels for announcements on the latest drops."}},"verification":{"title":"How to Collect your Gift Box?","step":"Step","step_1_title":"Congratz! You got a Free Gift box!","step_1_body":"Big rewards, more safety! To claim the free gift box full of surprises, we ask you to complete the following steps:","step_2_title":"Show us youâre a human","step_2_body":"In next 2 minutes, you prove being a human and complete our Level 2 verification. For that you need your ID card, so go and get it before you click \\"Start\\".","step_3_title":"Spin & Win","step_3_body":"Gift box is available. Go ahead and spin for the chance to win tokens, Free Spins or even up to 0.5 BTC.","start":"Start","dont_show_again":"Don't show this again","button_next":"Next","button":"Start"}}`),SD={title:"How to spin & win with Lootboxes?",button:"Try now!",button_next:"Next",step:{1:{title:"Select a Lootbox",description:"Choose the Lootbox that you like the most. Simply open the ones that tickle you the most."},2:{title:"Open",description:"Simply click âOpenâ to dive into a chance to win exciting prizes! Every lootbox guarantees you to win something from there."},3:{title:"Win and claim your prize",description:"Limited Merch, NFTs, FreeSpins, and tokens are waiting for you in the lootboxes. Take your chance to win big!"}}},kD="Ban user",ED="just won on",TD="Got it",RD="Close Poll",CD="Today",AD="Yesterday",xD="Delete message",OD="Go to replied",ID="Join",DD="Just went live on Tribes!",LD="Loading poll...",ND="Log in & send it!",PD="No ghosts in this chat.",WD="Say something...",MD="Reply",BD="Chat Rules",UD="Glad youâre here. We keep things fun, loud, and fair, so read this before you dive in:",FD="ð³ Welcome to the Whale Community!",$D="1. Have fun, flex your wins, and connect with the pod",zD="2. Network, share vibes, and celebrate together",jD="3. Respect each other. Weâre here to build, not bicker",GD="4. English only (unless youâre in a dedicated language topic)",HD="5. Need help? Hit up Support, theyâre fast and friendly",VD="ð¥ Do This, And Youâre Good:",YD="1. Abuse, spam, scams, hard no",qD="2. No external links or ads. No promos",ZD="3. Break the rules = instant removal. No warning, no drama.",KD="â ï¸ What Gets You Kicked:",XD='Whale mods will update rules as needed to keep things flowing for everyone. Full terms live <a target="_blank" href="/terms-and-conditions">here</a>.',JD="ð§ Quick Note:",QD="Search...",eL="Sign In",tL="Emojis",nL="GIFs",rL="Stickers",aL="Add option",iL="You can add {{count}} more options",oL="Duration",sL="Multiple Answers",lL="New Poll",cL="Enter your option",uL="Options",dL="Poll",hL="Publish",fL="Publishing...",pL="Question",mL="Enter your question",gL="Quiz",yL="Quiz Mode",bL="Vote",vL="voted",wL="Voting...",_L="No channels available",SL="Connectingâ¦",kL="Reconnectingâ¦",EL="Load older messages",TL="Loading messagesâ¦",RL="No messages yet. Say hi!",CL="Failed to send message",AL="No GIFs found",xL="No stickers found",OL="Tourn
195aments are coming to this drawer soon.",IL={banner:{title:"Claim your bonus!",description:"You have the secret code? Claim it to unlock one of many bonuses."},badge:{exclusive:"EXCLUSIVE"},status:{season_ends_in:"Season ends in:",delayed:"Delayed"},rewards:{free_spins:{title:"Free Spins",description:"Unlock Free Spins as Your Level Up the Ranks!"},free_lootbox:{title:"Lootboxes",description:"Unbox Merch, Free Spins and More Epic Rewards!"},whale_tokens:{title:"$Whale Token",description:"Stack up and be on the Right side of History."},lead_tribe:{title:"Earn from leading a Tribe",description:"Lead a Tribe and earn commissions on turnover."},free_bets:{title:"Freebets",description:"Bet Big, Risk Nothing"},free_cashback:{title:"Daily Cashback",description:"Earn up to 25% Cashback. Every. Single. Day."},legacy_themes:{title:"Whale Skins",description:"Customize your Casino."},next_bp_season:{title:"Next Season Battlepass",description:"Stay ahead of the Game."},nft:{title:"NFTs",description:"Digital Gold that prove youâre a Legend in the game."},daily_cashback:{title:"Daily Cashback",description:"Unlock Daily Cashback and increase it progressively by climbing through Ranks."},weekly_cashback:{title:"Weekly Cashback",description:"Get a percentage of your weekly losses back."},og_rtp:{title:"Higher RTP in Originals",description:"Enjoy 99% RTP on Originals with your Battlepass. Better odds, bigger wins."}},logged_out_state:{sign_in_short:"Sign in",sign_in_verbose:"Sign in to Get Started",banner:{title:'What are you waiting for? <br /><span class="highlighted">YOUR ULTIMATE POWERPLAY STARTS NOW!</span>',text:"Unlock elite rewards, exclusive perks, or claim your spot as a Tribe Leader. More prizes, more power, more prestige. This is how winners play.",cta:"Start Here"}},actions:{fridaylootbox:{heading:"Friday Reward!",description:"Your Friday Lootbox is ready, open it!",button:{label:"Open Friday Box"}}}},DL={buttons:{claim:"Claim",claimed:"Claimed",get_battle_pass:"Get Battlepass",not_enough_funds:"Not enough funds. Try different currency.",deposit:"Deposit",deposit_now:"Deposit now",play_to_get:"Play to Get",reach_level:"Reach the level",reach_xp:"Earn more EXP"},code_form:{placeholder:"Enter your promo code",success:"Reward unlocked!",not_found:"That code isn't valid.",already_used:"This code has already been used.",expired:"This code has expired.",not_available_yet:"This code isn't active yet.",locked:"Code accepted. {condition} to unlock your reward.",locked_generic:"Code accepted. Complete the remaining requirement to unlock your reward.",failed:"Couldn't redeem the code. Please try again.",required:"Enter a code first."},level_card_bonus_block:{free_spins:"Free Spins",free_spin:"Free Spin",free_bets:"Free bet",bonus_buy:"Bonus Buy",deposit_bonus:"Deposit Bonus",original_games_free_bet:"Free bet"},cashback:{breakdown:{title_daily:"Daily cashback breakdown",period:"Period",deposits:"Deposits",withdrawals:"Withdrawals",ending_balance:"Ending balance",unsettled_bets:"Unsettled bets",net_loss:"Net loss",cashback_rate:"Your rate",cashback_amount:"Cashback",formula:"Cashback = net loss x your rate. Only losing days generate cashback."}},faq:{faq_item_1:{heading:"What is the Battlepass on Whale.io?",paragraph:"The Battlepass is your all-access pass to Whale.ioâs most rewarding experience ever. It transforms regular gameplay into a progression-based adventure - packed with 101 rewards, 11 ranks, and up to 11% daily + 11% weekly cashback. Every bet you make earns XP, every level unlocks rewards, and every rank boosts your cashback. Itâs not just playing - itâs leveling up your legacy."},faq_item_2:{heading:"How can I get Battlepass?",paragraph:`You can unlock Battlepass Season 4 in two ways: 196 1971. Buy it directly - for just $1.99 USD or 4,999 $WHALE tokens. 1982. Go Beast Mode - for $19.99 USD or 89,999 $WHALE tokens, instantly unlocking premium perks and accelerated rewards progression. 199Once purchased, your Battlepass activates instantly and you can start earning rewards.`},faq_item_3:{heading:"Is the Battlepass a one-time purchase or seasonal?",paragraph:"Battlepass operates on a seasonal model and one season lasts ~ 12-16 weeks. Each season has their own unique vibe and list of rewards. All users have the opportunity to decide if they want this seasons battlepass or not."},faq_item_4:{heading:"What is Beast Mode and its benefits?",paragraph:`Purchase Beast Mode to get a head start to more valuable rewards. You will skip the "BS" rewards on lower levels altogether and jump right into level 31 â where you will instantly receive a combined 9% cashback (5% daily + 4% weekly) and a $10 Bonus Buy. You're 31 steps closer to Immortality!`},faq_item_5:{heading:"What are the main features of Battlepass Season 4?",paragraph:`Season 4 is stacked with exclusive benef
199its designed to reward every play: 2001. 101 total rewards - crypto bonuses, free spins, and more at every level. 2012. 11 unique ranks - each come with a cashback boost. 2023. Cashback that grows with you - up to 11% daily and 11% weekly at Immortal rank. 2034. Exclusive to Battlepass holders - if you donât own a Battlepass, you wonât receive daily or weekly cashback. 2045. Higher RTP in Whale Originals. 2056. All-in-one access - unlock everything for a single purchase.`},faq_item_6:{heading:"Why should I buy the Battlepass?",paragraph:`Because itâs the only way to unlock the full Whale.io experience: 206- Exclusive access to cashback rewards. 207- 101 level rewards worth far more than the cost. 208- A system built to give back more, the more you play. 209 210For less than the gas fee on your last swap, youâre unlocking the most rewarding season Whale.io has ever launched.`},faq_item_7:{heading:"What makes the Battlepass different from regular gameplay?",paragraph:"Unlike standard play, the Battlepass offers a structured journey with levels to conquer, exclusive content, and additional rewards not available to non-battlepass holder. It's designed to boost engagement and reward your dedication."},faq_item_8:{heading:"Are there any eligibility requirements?",paragraph:"You need to be a registered Whale.io user and comply with regional gaming regulations. The Battlepass is open to all eligible players, whether new or returning, as long as you meet the requirements and purchase or earn your seasonal Battlepass."}},available:{action_wager:{football:"Bet on the World Cup 2026 to grab your bonus",sportsbook:"Bet on sports to grab your bonus",condition:"Wager to grab your bonus"},battlepass:{title:"Battlepass",description:"Unlock rewards as you progress through the Battlepass"},boostcashback:{title:"Boosted Cashback",description:"Receive enhanced cashback on your activities"},boostaffiliate:{title:"Affiliate Boost",description:"Extra rewards for referring friends and affiliates"},showvideo:{title:"Watch Video",description:"Watch a short video to claim your reward"},deliverableItem:{title:"Special Item",description:"Order a unique item delivered directly to your home"},deposit:{description:"Take Your Reward Now!"},freespins:{description:"Enjoy free spins on selected slot games"},sportsbetting:{description:"Here's your Free Bet, change currency to USDT to claim!"},originalgamesfreebets:{description:"Free bets on original games â try your luck!"},cashback:{description:"Get a portion of your losses back as Cashback"},custom:{description:"A custom reward created just for you"},play_to_grab:"Play {gameCode}. Wager to grab your bonus",play_game:{condition:"Play {gameCode}"},bonusBuy:{description:"Play your Bonus Buy now!",title:"$ {Amount} Bonus Buy"}},reward_progress:{wager:"Wager",tnc_apply:"T&C apply"}},LL={captions:{pass_name:"Battlepass - Season 3",pass_name4:"Battlepass - Season 4",pass_name5:"Battlepass Season 5",price:"Price",currency:"Currency",you_are_about_to_purchase:"You are about to purchase",available_balance:"Available:",selected_currency:"Selected Currency"},beast_mode:"Beast Mode",special_offer:"Special offer â more rewards, instantly",limited_time_offer:"Beast Mode 50% off:",limited_time_offer_expired:"This offer has expired",error:{title:"Something went wrong.",description:"Battle Pass purchase failed. Please try again later.",beast_mode_expired:"The Beast Mode offer has expired. Try again without it.",unavailable:"There is no Battlepass season on sale right now. Check back soon."},cta:"Confirm Purchase"},NL={title:"Purchase complete!",paragraph:"Congratulations! You have obtained Season 5 Battlepass and can unlock all your earned rewards.",cta:"Unlock Rewards"},PL={cashback:{title:"CASHBACK",description:"Start at 8% with Beast Mode, grind up to 25%",novice_title:"Cashback from day one",novice_description:"Start at 1%, grind up to 25%"},rewards_instant:{title:"SKIP BS REWARDS",description:"Start playing from level 31",novice_title:"NO INSTANT REWARDS",novice_description:"Grind rewards from your current level"},rtp:{title:"ORIGINALS RTP",description:"Get higher RTP in Originals"},rank:{title:"UNLOCK RANK",description:"Instantly get Beast Rank & Benefits",novice_description:"Instantly get Rookie Rank & Benefits"},tribe:{title:"TRIBE LEADERSHIP",description:"Lead and Earn from Tribes"},tokens:{title:"TOKENS",description:"Get $Whale and USDT"},vip:{title:"FIRST STEP TO VIP",description:"With BP & Emperor rank, you can Apply for VIP Status"},rewards:{title:"REWARDS",description:"Get lootboxes, freespins and more"}
210,explore_more:{title:"EXPLORE MORE",description:"get more info about BP"},og_battlepass_required:{title:"ORIGINALS EARLY ACCESS",description:"Battlepass holders get early access to new games",access_denied:"Access Denied - Battlepass required"}},WL={title:'Get in the game.<br /> <span class="text-white">get the edge.</span>',subtitle:"Unlock up to 25% in Cashback. 101 levels. 11 Ranks. Beast Status.",paragraph:"Unlock Cashback, Bigger Rewards & Exclusive Drops."},ML={title:"Earn",subtitle:"Invite friends, join a tribe, and redeem promo codes.",affiliate_pending_title:"Refer a friend",affiliate_pending_body:"The affiliate dashboard and Tribes arrive in a later module.",no_tribe_session:"No tribe sessions",referrals:{no_referrals:"No referrals",share_code:"Share your code with friends and earn."}},BL="{count} Users bought Battlepass<br /> in last 24h",UL={button:{label:{verify:"Verify",claim:"Claim",claimed:"Claimed",sign_in:"Sign in now"}},actions:{actionFollowX:{heading:"Follow Us on X",description:"Follow @whalegames_en on X and get the latest updates!",button:{label:"Follow"}},actionFollowTikTok:{heading:"Follow Us on TikTok",description:"Follow @whalesocials on TikTok!",button:{label:"Follow"}},actionKycPassed:{heading:"Verify Account",description:"Verify your account to get a free Battle Pass",button:{label:"Verify Now"}},actionRetweet:{heading:"Retweet",description:"Retweet our latest tweet and get a reward!",button:{label:"Retweet"}},affiliatesCount:{heading:"Invite 5 Friends",description:"Invite 5 friends trough RAF by utilizing your unique link!"},actionReviewWhale:{button:{label:"Start"},title:"Review Whale",description:"Leave us some feedback on the experience with Whale",modal:{title:"How much do you love Whale?",description:"Don't worry, we won't tell your spouse the answer. It's only for us to better understand your needs and improve our product & service",button:"Submit"}},contactSupport:{modal:{title:"We're here to help",description:"Sorry to hear that you haven't enjoyed Whale to the fullest. If you need help from Whale humans with active issue, contact support",button:"Contact support"}},rateTrustpilot:{modal:{button:"Review us",title:"Review us on Trustpilot",description:"Weâre glad you have enjoyed playing in Whale. It would help us bring more exciting campaigns to your if you would review us on Trustpilot"}},actionClaimCashback:{button:{label:"Deposit now"},title:"Claim Daily Cashback",description:"Deposit and Play today to claim cashback tomorrow"},actionFollowYoutube:{description:"Follow @whalegames_en on YouTube and get the latest updates!",heading:"Follow Us on YouTube",button:{label:"Follow"}},actionFollowTwitch:{button:{label:"Follow"},description:"Follow whale_games_tg on Twitch and get the latest updates!",heading:"Follow Us on Twitch"},actionFollowInstagram:{description:"Follow whalesocials_tg on Instagram and get the latest updates!",heading:"Follow Us on Instagram",button:{label:"Follow"}},actionFollowDiscord:{heading:"Join Our Discord",description:"Join our Discord community and get the latest updates!",button:{label:"Join"}},lootbox:{heading:"Lootbox",description:"This one's on the house. Unbox your Reward now!",label:"Claim"},actionEmailVerified:{heading:"Connect Email",description:"Connect your email to your account and get a reward!",button:{label:"Connect"}}}},FL="Crypto Markets",$L="Token",zL="All Time",jL="Explore",GL="Read More",HL="Read less",VL="How to get Crock NFT?",YL="You can mint the NFT directly from Whale and buy it with usdt from your onsite wallet. Alternatively you can buy it from secondary market in Magic Eden. ",qL="What is the benefit of owning a Crock NFT?",ZL="All Crock NFT owners have rights to $Whale airdrop according to how many NFTs they hold. Each nft gives right to 0.1% of total Airdrop and Airdrop size depends profits of Crock Dentist game.",KL="How do I get my airdrop?",XL="Airdrops will be automatically distributed to nft holders wallets by Whale at random times during a month. You don't have to do anything else but Mint, Hold, and Earn.",JL="Is there a schedule for Airdrops?",QL="No, there isn't a public schedule or pattern for airdrops that could affect the airdrop size. ",eN="What to do with $Whale Token?",tN="Whale Token is the native currency in Whale ecosystem and has multiple different use cases even before TGE. $Whale can be used to play games, buy battlepass, and stake. After TGE there's many more utilities added. ",nN="After mint, when will I get my NFT?",rN="It can take anywhere from few minutes to 24 hours to receive the NFT in your wallet.",aN="What to do if I dont have solana wallet?",iN="You have to create one for yourself before you can mint Crock NFT. We recommend Phantom, Base, or Ledger as most reputable Solana wallets.",oN="Can I sell my NFT?",sN="Yes, all Crock NFTs are tradeable in Magic Eden where you can also see stats about the collection. Create an account in Magic Eden using the same Solana wallet to list your NFT or buy more from the market.",lN="Is there a limit how many NFTs I can mint?",cN="O
210ne user can mint maximum 5 NFTs per account but you can buy as many as you want from the secondary market in Magic Eden.",uN={banner:{has_landed:"Has Landed!",our_slogan:"Our slogan is",slogan:"Playing and wagering money will get you rewards and some money back!",description:"You love whale, token is your chance to own piece of the pie. No investors, only community!"},projected_tokens:"Projected Tokens",tokens_in_printer:"Tokens in Printer",duration:"Duration",printer_value:"Printer value",apy:"APY",printing_done_in:"Printing done in",projected_earned_tokens:"Projected Earned Tokens",your_printer:"Your printer",total_amount:"Total amount",days:"Days",infinity:"Infinity",print_money:"Print money",amount_of_tokens:"Amount of tokens",start_printing:"Start Printing",printing_failed:"Something went wrong starting your printer. Please try again.",claim_failed:"Something went wrong collecting your earnings. Please try again.",passive_income:"Passive Income",lambo:"Lambo",play_description:"$Whale is native currency of Whale.io and can be used across the platform.",earn_description:"Be part of Whale army by completing missions, inviting friends, and earning tokens by working hard.",passive_income_description:"Money never sleeps. Use your tokens to earn passive income with high yield staking.",lambo_description:"Work hard on your road to Lamborighini and take part of promotions to get there.",why_matters:"Why This Matters To",visit:"Visit",take_pictures:"events and take pictures of whales scattered around Dubai to win a big prize.",mention_in:"As mentioned in",printing:"Printing",title:"Token Dashboard",welcome_back:"Welcome back",market_cap:"Market cap",noobs:"Noobs",pro:"Pro",printing_header:'Why This Matters To ð <span class="text-amber-300">You</span>?',printing_subheader:'Itâs not just crypto. Itâs your <span class="text-white">in-game edge</span>, income stream, and ticket to the top.',printing_title:'Printing â <span class="text-amber-300">Coming soon</span>!',printing_subtitle:'Introducing seamless staking (called Printing) rewards directly in Whale.io. Turn your $Whale into more $Whale. Stake it. Multiply it. <span class="text-white">Watch it Print</span>.',originals_title:'Whale Originals: <span class="text-amber-300">Play With $WHALE</span>',originals_subtitle:"What to do with your $WHALE? Play & Win, of course. Take your tokens to Whale Original games and have fun.",live_transactions:{title:"Live Transactions",printer:"Printer",username:"Username",time:"Time",locked_until:"Locked until",multiplier_selected:"Multiplier selected",amount:"Amount"},buyback:{title:"Buyback & Burn",description:"Whale is committed to reinvesting part of Whale profits for Buy back & Burn tokens from the market. "},faq:{faq_item_1:{heading:"What are $WHALE NFTs?",paragraph:"$WHALE NFTs are digital collectibles that represent ownership of $WHALE tokens. Each NFT contains a specific amount of $WHALE tokens that can be claimed (burned) back into your wallet at any time."},faq_item_2:{heading:"What do I need to mint $WHALE NFTs?",paragraph:"To mint $WHALE NFTs, you need a Solana-compatible wallet (such as Phantom or Solflare), $WHALE tokens in your wallet, and a small amount of SOL to cover network transaction fees."},faq_item_3:{heading:"How do I mint $WHALE NFTs?",paragraph:"Connect your wallet to the minting interface, select the amount of $WHALE tokens you want to convert into an NFT (100K, 1M, or 10M $WHALE), approve the transaction, and your NFT will be minted to your wallet."},faq_item_4:{heading:"What are the fees for minting $WHALE NFTs?",paragraph:"Minting costs 10 USD paid in $WHALE tokens. Claiming (burning NFTs back to tokens) is completely free with no platform fees."},faq_item_5:{heading:"How do I claim $WHALE tokens from my NFTs?",paragraph:"Connect your wallet, select the NFT you want to claim, confirm the burn transaction, and the $WHALE tokens will be transferred to your wallet. The NFT will be permanently burned in the process."},faq_item_6:{heading:"Where can I trade $WHALE NFTs?",paragraph:"$WHALE NFTs can be traded on Magic Eden, the leading NFT marketplace on Solana. You can buy, sell, or list your NFTs there."},faq_item_7:{heading:"Can I buy $WHALE NFTs from other users?",paragraph:"Yes, you can purchase $WHALE NFTs from other users on Magic Eden. Browse available listings, connect your wallet, and complete the purchase using SOL."},faq_item_8:{heading:"Is the burning process reversible?",paragraph:"No, burning an NFT is permanent and irreversible. Once you claim the $WHALE tokens from an NFT, the NFT is destroyed forever. Make sure you want to claim before confirming the transaction."},faq_item_9:{heading:"Are there any fees for burning $WHALE NFTs?",paragraph:"Burning is completely free. There are no platform fees or network fees charged for claiming your $WHALE tokens back from NFTs."},faq_item_10:{heading:"How can I get support for $WHALE NFT issues?",paragraph:"For support with $WHALE NFTs, please contact our support team through the live chat on Whale.io or join our community channels on Discord and Telegram for assistance."}},token_holders:"Token Holders",video:{byuback:{title:"Buyback & Burn",description:"Whale is committed to using part of Whale.io profits for Monthly Buy Backs."},gameplay:{title:"Gameplay on whale",description:"Whale token is the native currency on Whale and available to play games, buy battlepass, open Lootboxes, and more."},stacking:{description:"Freeze your Tokens and earn Rewards for holding. Flexible options connected to your selected multiplier.",title:"High apy staking"},title:'What Else to ð <span class="text-amber-300">Do</span>?',description:"Buyback boosts the price. Staking stacks your bags. And gameplay? Thatâs where $Whale turns into pure fire."},buy_whale_tokens:"Buy $WHALE",sell_whale_tokens:"Sell $WHALE",slippage_tolerance:"Slippage Tolerance",your_transaction:"Your Transaction",estimated_slippage:"Est. Slippage",impact_to_price:"Impact to Price",estimated_network_fee:"Est. Network Fee",exchange_fee:"Exchange Fee",swapping_title:'Token Swapping â <span class="text-amber-300">Coming soon</span>!',swapping_subtitle:`Turn your $WHALE into $USDT or $USDT into more $WHALE. 211Token Swapping is coming`,staking_header_title:'Printing - <span class="text-amber-300">Stake your tokens!</span>',staking_header_subtitle:'Introducing seamless staking (called <i>Printing</i>) rewards directly in Whale.io. Multiply your $Whale with Whale Printer. Stake it. Multiply it. <span class="font-bold text-white">Watch it Print</span>.',multiplier:"Multiplier",days_left:"Days Left",whale_earned:"Whale Earned",collect_earnings:"Collect Earnings",earnings_collected:"Collected {amount} WHALE â added to your balance.",whales_in_printer:"Whales in printer",tokens_to_claim:"Tokens to Claim",show_details:"Show details",show_summary:"Show summary",staking_header_title_desktop:'Printing ð <span class="bg-gradient-to-r from-[#fcd753] via-[#ffe68e] to-[#fcd753] bg-clip-text text-transparent">Next</span>?',staking_header_subtitle_desktop:'Introducing seamless staking (called <i>Printing</i>) rewards directly in Whale.io. Turn your $Whale into more $Whale. Stake it. Multiply it. <span class="font-bold text-white">Watch it Print</span>.',stake_your_whale_title:"Stake your $Whale",stake_your_whale_subtitle:"Turn your $Whale into more $Whale by Staking & Multiplying it.",lets_print_money:"Letâs Print Money",minimum_balance_to_print:"Minimum 10K $Whale to start Printing",trade_banner_title:"Trade your $Whale",trade_banner_subtitle:"Your $WHALE balance, wrapped in a card. Mint it, trade it, claim it.",trade_banner_cta:"Mint",trade_banner_link:"Buy $Whale token NFTs"},dN={get_nft_get_value:"get the nft - get value",get_nft_get_value_description:"What to do with your $WHALE? Play & Win, of course. Take your tokens to Whale Original games and have fun.",mint:"Mint",mint_description:"Mint yourself the Crock Dentist NFT and be part of the RWA revolution! ",global_earn_description:"Each Crock Dentist NFT holder will participate in airdrops funded by earnings of Crock Dentist!",trade:"Trade",trade_description:"Hold and keep earning frequent rewards or speculate with future value at aftermarket.",game_turnover:"Game Turnover",vs:"Vs",airdrop_size:"Airdrop size",airdrop_rule:"Each spin made by players in Whale.io original game Crock Dentist increases sizes of the airdrops! With 97% RTP the 3% house edge is distributed through airdrops to all NFT holders on frequent basis! Airdrop size depends on the amount of NFTs holder has in their wallet with each NFT entitled to 0.1% of airdrop. ",projection_explanation:"projection based on previous Original games growth","100_unique_nfts":"1000 RWA NFT's",buy_section_description:"Crock NFTs is a limited edition of 1000 NFTs that entitles owners the rights to frequent airdrops based on Crock Dentist game turnover.",rate_to_original_game:"1 NFT = 0.1% of the Crock Dentist Game",price:"Price",next_price_increase:"Next Price Increase",per_unit:"per unit",buy_battlepass_or_wait:"Buy with Battlepass or wait 24h",minted:"Minted",limited_supply:"Limited Supply",limited_supply_description:"1000 unique NFTâs to enable access to airdrops.",whale_platform_description:"Airdrops utilizing Whale platforms own token!",transparent:"Trans
211parent",transparent_description:"Real-time activity and airdrop distribution.",crock_dentist_live_stats:"Crock Dentist - Live Stats",biggest_holders:"Biggest Holders",crock_nft:"Crock NFT",airdrop_transactions:"Airdrop Transactions",table_action:"Action",table_user:"User",table_date:"Date",table_amount:"Amount",table_cell_purchased:"Purchased",treasure_wallet:"Treasury Wallet",treasure_wallet_description:"Find all the transactions related to collection, nft minting, and transactions related to it from the blockchain. ",royalty_wallet:"Royalty Wallet",royalty_wallet_description:"Find all the info related to aftermarket transactions, buybacks, collection royalty and airdrops from the blockchain. ",enter_solana_address:"Enter Your Solana Address",dont_have_solana:"Donât have one?",purchased_success_title:"Congratulations!",purchased_success_description:"Your NFTs will arrive within 24 hours",purchase_nft_cta:"Confirm Purchase",invalid_solana_address:"Invalid Solana address",max_purchases_reached:"All good! Youâve minted all 5 NFTs",available_for_everyone:"Available for Everyone",rounds_played:"Rounds Played",game_stats:"Game Stats",unique_players:"Unique Players",total_revenue:"Total Turnover",next_airdrop:"Next Airdrop",weakly_rtp:"Weekly RTP",last_airdrop:"Last airdrop",black_friday_sale_description:"50% WEEKEND SPECIAL discount until",table_cell_airdrop:"Airdrop",learn_more:{title:"Learn more about Crock NFT",description:"Explore blog posts and videos about the nft, airdrops, and tokens.",video:{one:{title:"What is Crock NFT?",description:"Whale launched a new original game called Crock Dentist and released a unique NFT collection alongside it."},two:{title:"How do get airdrop with Crock NFT?",description:"Crock NFTs grant the owners right to airdrop based on Crock Dentist game turnover."}}},sale:{bp4season:"-50% New Season discount until"},sold_out:"Sold out",already_minted:"Already minted",insufficient_usdt:"Insufficient USDT",buy_from_magic_eden:"Buy from Magic Eden",buy_from_tensor:"Buy from Tensor",average_airdrop_value_per_nft:"Average Airdrop value per NFT",airdrops_done:"Airdrops done",total_value_airdropped:"Total value airdropped",all_time_volume:"All-time Volume",floor_price:"Floor Price",owners:"Owners",minted_supply:"Minted Supply",og_owners_club:"OG Owners Club",nfts:"NFTs"},hN="Play",fN={AF:"Afghanistan",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BR:"Brazil",IO:"British Indian Ocean Territory",VG:"British Virgin Islands",BN:"Brunei",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos Islands",CO:"Colombia",KM:"Comoros",CK:"Cook Islands",CR:"Costa Rica",HR:"Croatia",CU:"Cuba",CW:"Curacao",CY:"Cyprus",CZ:"Czech Republic",CD:"Democratic Republic of the Congo",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",TL:"East Timor",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",PF:"French Polynesia",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IM:"Isle of Man",IL:"Israel",IT:"Italy",CI:"Ivory Coast",JM:"Jamaica",JP:"Japan",JE:"Jersey",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",XK:"Kosovo",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Laos",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MK:"Macedonia",MG:"Mad
211agascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia",MD:"Moldova",MC:"Monaco",MN:"Mongolia",ME:"Montenegro",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",AN:"Netherlands Antilles",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",KP:"North Korea",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",CG:"Republic of the Congo",RE:"Reunion",RO:"Romania",RU:"Russia",RW:"Rwanda",BL:"Saint Barthelemy",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",MF:"Saint Martin",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",RS:"Serbia",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SX:"Sint Maarten",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",KR:"South Korea",SS:"South Sudan",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Swaziland",SE:"Sweden",CH:"Switzerland",SY:"Syria",TW:"Taiwan",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",VI:"U.S. Virgin Islands",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VA:"Vatican",VE:"Venezuela",VN:"Vietnam",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe"},pN={agreed:"I agree with <a href='/terms-and-conditions'>Terms and Conditions</a>"},mN="Let's Go!",gN="Date of Birth",yN="Close",bN={rewards:{eyebrow:"Rewards",title:"{percent}% welcome bonus",subtitle:"Your first deposit. Boosted.",cta:"Claim bonus"},tribes:{eyebrow:"Whale Tribes",title:`Play 212& Win together`,subtitle:"Your tribe. Your room. Your cut.",cta:"Open Tribes"},tournaments:{eyebrow:"Tournaments",title:`Race 213to the top`,subtitle:"Live prize pools. Every day.",cta:"Open Tournaments"},originals:{eyebrow:"Whale Originals",title:`Only on 214Whale`,subtitle:"Built in-house. Nowhere else.",cta:"Play Originals"}},vN=JSON.parse(`{"offline":{"status":"Offline","followers":"{count} subscribers","back":"Back to tribes"},"profile":{"notify":"The tribe is currently offline. Subscribe to get notified when it's live","biggest_wins":"Biggest Wins","stats":{"title":"Streamer stats","last_broadcast":"Last broadcast","hours_streamed":"Hours streamed","total_viewers":"Total viewers","total_wagered":"Total wagered"},"about":{"label":"What is Tribe","title":"What Is a Tribe on Whale.io?","intro":"A Tribe is a live, shared casino session on Whale.io. One player hosts and streams their gameplay, and everyone watching can put crypto into the same pool and ride every spin with them. Tribes are the social side of the Whale.io crypto casino: you play as a group, chat in real time, and win or lose together.","sections":{"how_it_works":{"title":"How Tribes Work","body":"The host opens a Tribe room by depositing crypto into a shared pool. Viewers join the room and deposit into the same pool. Only the host plays. They pick the games and place every bet from the pooled balance. Your share of the pool is your share of each bet, so when the host lands a 1,000x multiplier, every depositor's balance grows in proportion to what they put in. Follow the action in the room chat, check the host's biggest wins, and withdraw your share of the pool whenever you want."},"hosting":{"title":"Hosting and Streaming a Tribe","body":"Any Whale.io player can start a Tribe and stream their own casino sessions. Every host gets a permanent Tribe page with their streamer stats: total streams, hours streamed, total viewers and total wagered, plus a showcase of their biggest wins. Players can subscribe to a Tribe and get notified the moment it goes live, so regulars show up every time the host streams."},"earning":{"title":"How Tribe Hosts Earn","body":"Hosting a Tribe pays. The host earns 10% of the house edge on everything wagered in their room and can claim it after each stream. More viewers in the pool means bigger bets, and bigger bets mean more commission. For streamers, Tribes work as a built-in referral program: bring your community to Whale.io, play for them live, and earn from the action your Tribe creates."},"tribe_wars":{"title":"Tribe Wars: The Monthly Tribe Leaderboard","body":"Tribe Wars ranks Tribes against each other on a monthly leaderboard. Every Tribe is entered automatically, and wagering inside a Tribe earns points for that Tribe across every stream the host runs that month. The board resets on the 1st of each month, so every host gets a fresh shot at the top spot. For players, it's a reason to stick with one Tribe: every stream you join pushes your Tribe up the standings."}},"faq":{"title":"Tribes FAQ","join":{"question":"Do I need to host to join a Tribe?","answer":"No. Join any live Tribe, deposit into the pool, and the host plays for the group."},"split":{"question":"How are Tribe winnings split?","answer":"The pool rises and falls with the host's results. Each depositor's balance moves in proportion to their share of the pool."},"start":{"question":"How do I start my own Tribe?","answer":"Open the Tribes page, tap Start Your Tribe, and fund the pool to go live."},"points":{"question":"How do Tribes earn points in Tribe Wars?","answer":"Points come from wagering inside the Tribe, totalled across every stream the host runs in the calendar month."}}
214,"show_less":"Show less"}},"wars":{"title":"Tribe Wars","subtitle":"Back a tribe, wager with it, climb the board. The top 3 tribes win a prize when the month ends.","how_it_works":{"title":"How Tribe Wars works","description":"Tribes compete for the top spot every month","rule_wager":{"title":"$1 wagered = 1 point","description":"Any bet placed in a tribe counts"},"rule_boost":{"title":"Points grow each week","description":"Up to 3x in the last week"},"rule_reset":{"title":"New board on the 1st","description":"Rankings reset every month"}},"boost":{"title":"Points boost","points":"points","next":"Points get a {multiplier}x boost from {date}","countdown":"{multiplier}x in {countdown}","week":"Week {number}","now":"Now"},"rewards":{"title":"Money Rewards","prize_pool":"Prize pool","first":"1st","second":"2nd","third":"3rd","points":"{points} pts"},"table":{"title":"{month} leaderboard","subtitle":"Ranked by points, not wagered","resets_in":"Resets in {countdown}","host":"Host","streams":"Streams","players":"Players","wagered":"Wagered","points":"Points","show_top":"Show top {count}","join_live":"Join live","summary":"{streams} streams · {players} players","empty":"No tribes on the board yet.","follow_host":"Follow {host}","join_live_host":"Join {host}'s live stream","caption":"{month} Tribe Wars leaderboard","rows_shown":"{count} tribes shown"}},"badge":"The Platform to Play & Win with Friends! ","lobby":{"title":"TRIBES: Your Ultimate Family!","description":"Create, or join a TRIBE, play with Friends and share the PROFITS!","online_rooms_title":"Online Rooms","create_tribe_cta":{"text":"Create your own Tribe!","how_to":"Don't know how it works?","click_here":"Click here"},"info_card_1":{"title":"What is a Tribe?","description":"Tribe is a group stream for playing casino games together and sharing the profits."},"info_card_2":{"title":"Create your own tribe","description":"Create a Tribe, invite friends, and become the leading Tribe in Whale."},"info_card_3":{"title":"Battle against other tribes","description":"Play against others in a weekly leaderboard and win real cash rewards."},"no_rooms":{"title":"No one is streaming right now","description":"Unfortunately there is no livestream at the moment. Come back later and experience the Thrill of Tribal playing.","cta":"Back to homepage"},"goto_current_tribe_cta":{"text":"Go to current Tribe"},"cards":{"watch":{"title":"Watch the Action","description":"See your favorite streamers command the reels and lead Tribes to real wins."},"enter_a_tribe":{"title":"Enter a Tribe","description":"Deposit into the pool, chase the wins, and claim your cut."},"become_a_leader":{"title":"Become a Leader","description":"Maximize your earnings. The more turnover, the fatter your wallet."}},"how_tribe_works":{"title":"How Tribe Balance Works","text":"<p>\\nEach player of the Tribe adds funds to the total pool. Your contribution defines your share. For example, if you deposit $500 into a $1,900 pool, you own 26.32% of it. That percentage represents your cut of every win, as the Tribe Leader spins.\\n</p>\\n<p>\\nIf the Leader places a $100 bet and wins, the winnings are distributed proportionally. So if youâre holding 26.32% of the pool, you get 26.32% of the returns.\\n</p>\\n<p>\\nItâs one shared balance, one bet at a time, and every win is split based on your piece of the pie!\\n</p>"}},"streamer":{"close_stream":{"cta":"Close Stream","modal":{"balance_leave_label":"You will leave with a total of:","cancel":"Cancel","title":"Close Stream","description":"Close the stream to take out your own deposit and give all players their share of winnings.","primary_description":"You are about to stop the Stream","secondary_description":"Are you sure you want to stop streaming and end the Tribe?","not_yet":"Not yet"}},"stop_streaming":{"cta":"Stop Streaming"},"chrome_recommend":{"title":"Prefer Chrome","first_part":"We recommend using Google Chrome. Additionally, please enable the experimental setting by visiting","second_part":"to improve compatibility and performance. This setting can be accessed in Chromeâs experimental flags.","how_to_video":"Watch video","title-strong":"Use Chrome To Continue"},"chrome_required":{"title":"Stream Launch Restricted","description":"To ensure the best streaming experience, streams can only be launched using Google Chrome. Please install or switch to Chrome to start your stream","download":"Download Chrome"}},"room":{"playing":"Playing","stop":"Close Tribe","changeGame":"Change Game","selectGame":"Select Game","selectedGame":"Selected Game","selectedGameNone":"Not selected","startToLoadGame":"Press Start Streaming to load the game.","retryLoadGame":"Try again","cancelTribe":"Cancel Tribe","autoCloseNote":"An idle tribe closes automatically after 30 minutes of inactivity.","startFailedNoFunds":"Add funds to your room balance to start streaming.","startFailed":"Starting the stream failed. Please try again.","players":"Viewers","playersSearch":"Search for players","host":"Host","myTribe":"My tribe","roomBalance":"Room Balance","myBalance":"Your Balance","addBalance":"Add Balance To Start","table":{"name":"Name","totalDeposits":"Total Deposits","profit":"Profit","share":"Share","place":"Place","balance":"Balance","viewer":"Viewer","viewers":"Viewers"},"waitNextRound":"Wait for the next round","withdrawFromBalance":"Withdraw from your balance","addToYourBalance":"Add to your balance","stopStream":"Stop Streaming","start":"Start Streaming","roomDeposit":"Deposit","roomWithdraw":"Withdraw","tribeTotalBalance":"Tribe Total Balance","noPlayers":"No viewers","event":{"deposit":"Successfully deposited","withdrawal":"Withdrawal successfully proceeded","payout":"Payout!"},"counts":{"player":"Player","players":"Players"},"infoBar":{"game":"Game","gameNone":"Game not selected","viewers":"Viewers","totalBalance":"Total Balance","startChecklist":{"title":"To start tribe:","step1":"Add funds","step2":"Start Stream","step3":"Share the link"}}},"how_it_works":{"title":"This is how you become LEGENDARY!","description":"We understand you might have a lot of questions. Not everyone is familiar with Bonus hunts and especially in a live staking during streams.","bullets":{"create_tribe":"All players from Level 2 can create a Tribe","deposit_seed":"Tribe Leader deposits seed money into the room","deposit_usdt":"Anyone can participate by depositing USDT","closing_room":"When Tribe Leader closes the room, everyone gets their share of the wallet! ","percent_deposit":"Your deposit equals a percentage of room's wallet which is your share of winnings. You can deposit or withdraw from the wallet any time between bonus spins."},"cta":{"notify_button":"Notify me!","coming_soon":"Creating a Tribe will soon be available to everyone."}}
214,"viewer":{"modal":{"stream_closed":{"title":"Stream is closed","cta":"Claim My Winnings","balance_leave_label":"You will leave with a total of:"},"open_tribe":{"title":"Open your tribe","name":"Tribe name","description":"Tribe description","private":"Make it private?","privateExplanation":"Other players won't be able to see your tribe in main page","create":"Create a tribe","continue":"Continue"},"leave_stream":{"title":"Leaving Tribe?","cancel":"Cancel","time_to_go":"Time to Go","description_secondary":"Are you sure you want to leave tribe?","description_primary":"You are leaving your Tribe behind"},"sign_in":{"title":"Not Logged in","description":"You should Sign up to be able to watch the stream.","sign_up_cta":"Sign up","sign_in_cta":"Sign in"}},"not_found":{"title":"Tribe not found","description":"No tribe is registered under that name."},"load_error":{"title":"We couldn't load this tribe"}},"stream_requirements":"Get Battlepass to Create Your Tribe","chat":{"ban_user":"Ban user","you":"You","write_message":"Write a message","remove_message":"Remove message","title":"Chat","user_deposited":"Made a deposit into the room for a:","user_withdrawn":"Withdrawn from the room for a:"},"faq":{"faq_item_1":{"heading":"What are \\"Tribes\\" and how do they work?","paragraph":"Tribes allow anyone to host a gaming room where hundreds of players can play together. The host chooses the games and controls the bet size. The guests can watch, chat, and contribute as they please.\\n\\nPlayers may contribute to the shared room's wallet between each spin. As the host places bets, all participant balances will change based on their percentage share and the bet result."},"faq_item_2":{"heading":"How can I become a Tribe leader?","paragraph":"To become a tribe leader, simply click the \\"LEAD YOUR TRIBE\\" button and follow the instructions on the website. No prior experience is required, and getting started is completely free.\\n\\nEnabling your camera and microphone as a host of Tribe is always welcome and can enhance engagement with your audience but not required. You're more than welcome to simply talk in the chat."},"faq_item_3":{"heading":"What are the minimum hardware requirements for streaming?","paragraph":"All you need is a stable internet connection and a laptop or PC. Unfortunately, streaming is not available from mobile phones or tablets however you can watch it from a phone or tablet. Should you experience quality issues, try connecting your device to a power source and cable internet directly. Higher performing devices will result in improved stream quality."},"faq_item_4":{"heading":"How does the commission system for streamers work?","paragraph":"COMMISSION = (GAME EDGE AS DECIMAL * WAGERED / 2) * COMMISSION RATE\\n\\nHosts earn 10% of the wagered funds for controlling the rooms and managing the stream on behalf of the players. Room commissions and tips can be claimed after each stream. Commissions are driven by wagers placed using pooled wallet, and not host balance. The more players who join, the more you can bet; the more you can earn!"},"faq_item_5":{"heading":"Can I stream on different platforms (e.g., Twitch, Kick, YouTube)?","paragraph":"Of course! You can stream on any platform you want in addition to streaming on Whale tribes. We even encourage you to stream on other platforms to increase your audience in the Tribe and earn more."},"faq_item_6":{"heading":"What games can I play while streaming?","paragraph":"You can stream any game available on the platform, from slots and live casino to table games and even original games. There are no restrictions, so youâre free to choose what fits your style and engage your audience with your favorite games!"},"faq_item_7":{"heading":"What is Tribe Wars?","paragraph":"Tribe Wars is a monthly leaderboard where every tribe competes against each other. Every $1 wagered from a tribe's shared wallet earns that tribe 1 point, and the tribe with the most points at the end of the month tops the board. Every tribe with activity that month is entered automatically â there's nothing to sign up for."},"faq_item_8":{"heading":"Why are points worth more later in the month?","paragraph":"So everyone has a chance to win the top spot regardless if they play full month or join the war from the middle. Without it, a tribe that goes hard in week 1 could build a lead nobody can catch, and the rest of the month becomes pointless for everyone else. The rising multiplier means a
214slow start costs you far less than a slow finish, and a big lead never becomes a safe one."},"faq_item_9":{"heading":"Why is a tribe ranked above mine when it has wagered less?","paragraph":"The leaderboard ranks on points, not on only wagering. Because of the multiplier, a tribe that was active later in the month can finish ahead of one that wagered more earlier on."},"faq_item_10":{"heading":"What do I get for winning Tribe Wars?","paragraph":"The top of the board is the most valuable spot on the platform. Every player browsing Tribes sees the #1 tribe first â that puts you as the most active and best tribe to join. As tribe host earns from wagering within the tribe, having more exposure can increase your own earnings as well. More eyes means more followers, more followers means a fuller room the next time you go live, and a fuller room means a bigger shared wallet."}},"loadingVideo":"Loading video...","noStream":"Waiting for the stream to start","errors":{"deposit":{"insufficient_balance":"Insufficient balance"}}}`),wN={live:"LIVE",viewer:"viewer",viewers:"viewers",level:"Level",balance:"Tribe Balance"},_N={title:"Tribes",text:"Lead your Tribe and get rewards from EVERY spin! Earn 10% theoretical revenue share from your Tribe's gameplay!",cta:"Sign up & Lead Tribe"},SN="Tribes",kN="Welcome To Tribes!",EN="This isn't solo play, it's synchronized, powered by and adrenaline.<br />\\nOne balance. One mission. One Tribe.<br />\\nStep in, stake up, and spin like you're not alone, because you're not.",TN="What's Tribes?",RN="Tribes is where serious players gather. Led by a Tribe Leader, every room is built for real-time, high-stakes gameplay where the team rides every spin together.",CN="Into the Action",AN="The Leader opens the room, the Tribe joins in, and everyone deposits in a shared pool. That balance fuels the biggest bonus buys, and every spin is shared. When it hits, you win your cut.",xN="More Power? Become a Leader.",ON="Leading a Tribe isn't just about control, it's about strategy. As a Tribe Leader, you collect 10% of the house edge from every spin in your room. The more your Tribe plays, the more you collect.",IN="All",DN="Ongoing",LN="Upcoming",NN="Finished",PN="Starting",WN="DISCOVER TOURNAMENTS",MN="MAKE YOUR GAMEPLAY PAY MORE.",BN="No records",UN="Something went wrong. Please try again later.",FN="Show more",$N="Copy",zN="Share",jN=JSON.parse(`{"details":{"type":"Type","prizePool":"Prize Pool","rank":"Rank","currencies":"Currencies","participants":"Participants"},"participating_games":"Participating Games","see_less":"See less","leaderboard":{"title":"Leaderboard","table":{"place":"Place","player":"Player","points":"Points","prize":"Prize","you":"You","xp":"XP"},"viewall":"View All","fulltable":"Full Table","closemodal":"Close"},"countdown":{"days":"Days","hours":"Hours","minutes":"Min","seconds":"Sec"},"terms":{"modal":{"title":"Read Rules","content":{"1":{"title":"1. Eligibility & Participation","description":"Open to all registered Whale Casino users who meet platform eligibility criteria. Users must explicitly join the tournament; only points earned after joining count towards the leaderboard."},"2":{"title":"2. Point & Player Removal","description":"Player can gather points by playing on dedicated tournament games only. Whale Casino reserves the right to remove points or disqualify players if we detect abusive behavior such as: opposite betting, no-risk betting, cancelled bets and any other activity deemed unfair or manipulative. All decisions are final and made at Whale Casinoâs sole discretion.","descriptionOriginals":"Player can gather points by playing on dedicated tournament games. Wagering on following does not count toward points: Slots, Live Casino, Crash, Sportsbook, and Free Spins or Free Bets. Whale Casino reserves the right to remove points or disqualify players if we detect abusive behavior such as: opposite betting, no-risk betting, cancelled bets and any other activity deemed unfair or manipulative. All decisions are final and made at Whale Casinoâs sole discretion."},"3":{"title":"3. Payouts & Verification","description":"Winners will be verified for c
214ompliance. USDT rewards will be credited to user accounts within 48 hours after the tournament ends. Tournament end time is always displayed on dedicated tournament page."},"4":{"title":"4. Final Conditions","description":"Whale Casino may update or edit these rules at any time without prior notice. Changes take immediate effect once posted on the tournament page. Whale Casino is not responsible for technical issues such as server downtime or connectivity failures. All tournament-related decisions by Whale Casino are final."}}}},"tournaments":"Tournaments","join_tournament":"Join Tournament","rules":"Tournament Rules","try_now":"Full View","login_to_join":"Log in to join","faq":{"faq_item_1":{"heading":"How do I participate in a tournament?","paragraph":"To join any tournament (Slots, Live Casino, Sportsbook, or Refer a Friend), you must click the prominent âJoinâ button on the tournament page or banner. If you do not press Join, none of your wagers, bets or referrals will be counted toward the leaderboard â even if you play qualifying games."},"faq_item_2":{"heading":"How are points / leaderboard positions calculated?","paragraph":"Points depend on the tournament type. Wager type = points are calculated based on game play. Max Multiplier = points are calculated based on biggest win multiplier. Refer a Friend = points are calculated based on your friendsâ deposits and/or game play."},"faq_item_3":{"heading":"Do free spins, bonus money or free bets count toward points?","paragraph":"No â free spins, free bets and bonus funds themselves do not contribute to tournament points. However, any real-money winnings you receive from them do count once you wager those winnings on qualifying tournament games."},"faq_item_4":{"heading":"When will tournament prizes be paid out?","paragraph":"Winners are usually paid within 48 hours after the tournament ends. Winnings are added to your account balance."},"faq_item_5":{"heading":"Are there any wagering requirements on tournament prizes?","paragraph":"No wagering requirements. All tournament prizes are paid as pure cash in USDT â you can withdraw them immediately or use them however you like."},"faq_item_6":{"heading":"What types of tournaments does Whale.io offer?","paragraph":"We regularly run four main categories: Slots tournaments, Live Casino tournaments, Sportsbook tournaments & Refer a Friend tournaments. Each has separate leaderboards and prize pools. Always read the specific tournament rules for eligible games/providers and point calculation details."},"faq_item_7":{"heading":"Can I join multiple tournaments at the same time?","paragraph":"Yes â you can participate in several tournaments simultaneously (for example Slots + Live Casino + Refer a Friend) as long as you press âJoinâ for each one. Your activity will count toward every tournament youâve officially joined."},"faq_item_8":{"heading":"What happens if there is a tie on the leaderboard?","paragraph":"In case of a tie, the prize for that position is usually split equally among the tied players (or awarded based on who reached the score first."}},"card":{"you_are_in":"You Are In","be_first_to_join":"Be the First to Join"},"lobby":{"seo":{"description":"<h1>Casino Tournaments at Whale.io</h1>\\n<p>Whale.io runs regular casino tournaments where you compete against players worldwide for massive prize pools. Play <a href=\\"/casino\\">slots</a>, <a href=\\"/live-casino\\">live casino</a> games, or bet on <a href=\\"/sportsbook\\">sports</a>âall with real USDT prizes paid directly to your account. No wagering requirements, just pure cash.</p>\\n<h2>How Casino Tournaments Work</h2>\\n<p>Every bet you place counts toward your leaderboard position. Click \\"Join Tournament\\" on any active competition, play qualifying games to earn points, and watch yourself climb the rankings. Winners get paid in USDT within 48 hours of the tournament ending.</p>\\n<p>Point systems vary by tournament type. Wager-based tournaments give you one point per dollar wagered on qualifying games. Max multiplier tournaments rank you by your biggest win multiplier. Wagers from cashback and free spin winnings count toward your score, so everything matters.</p>\\n<h2>Types of Tournaments Available</h2>\\n<h3>Slots Tournaments</h3>\\n<p>Slots tournaments feature games from top providers like <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a>, <a href=\\"/casino/hacksawgaming\\">Hacksaw Gaming</a>, <a href=\\"/casino/nolimitcity\\">No Limit City</a>, and <a href=\\"/casino/play-n-go\\">Play'n GO</a>. Most use wager-based scoring where steady play on qualifying <
214a href=\\"/casino\\">slots</a> moves you up the leaderboard. Prize pools regularly hit $50,000 or more.</p>\\n<h3>Live Casino Tournaments</h3>\\n<p><a href=\\"/live-casino\\">Live casino tournaments</a> focus on games from <a href=\\"/casino/evolution-gaming\\">Evolution Gaming</a>, Pragmatic Play Live, and other live dealer providers. Play blackjack, roulette, baccarat, or game showsâyour total wagers on qualifying live games determine your leaderboard position.</p>\\n<h3>Sportsbook Tournaments</h3>\\n<p>If you bet on sports, <a href=\\"/sportsbook\\">sportsbook tournaments</a> let you earn points from your regular betting activity. Every dollar wagered on sports events counts. Whether you're into football, basketball, tennis, or esports, your bets contribute to the leaderboard while you chase tournament prizes.</p>\\n<h3>Refer a Friend Tournaments</h3>\\n<p><a href=\\"/earn\\">Refer a Friend tournaments</a> calculate points based on your referred players' deposits and gaming activity. Win prizes by building community instead of grinding games yourself.</p>\\n<h2>Tournament Rules and Scoring</h2>\\n<p>You must click \\"Join Tournament\\" before your gameplay counts. Without joining, your wagers won't contribute to the leaderboard no matter how much you play.</p>\\n<p>Wager-based tournaments award points equal to your total wagered on qualifying games. Minimum bet is usually $0.20 for tournament eligibility. Max multiplier tournaments rank you by your single biggest win multiplier during the tournament periodâone lucky hit can put you at the top.</p>\\n<p>Free spins, free bets, and bonus funds themselves don't generate tournament points. But any real money winnings from these bonuses count once you wager them on tournament games. Cashback winnings fully contribute when wagered on qualifying titles.</p>\\n<h2>Qualifying Games and Providers</h2>\\n<p>Each tournament specifies which games and providers count. Slots tournaments might include specific collections, <a href=\\"/megaways\\">Megaways titles</a>, or games from featured providers like <a href=\\"/casino/netent\\">NetEnt</a> and <a href=\\"/casino/relax-gaming\\">Relax Gaming</a>.</p>\\n<p><a href=\\"/live-casino\\">Live casino tournaments</a> focus on live dealer tables from Evolution Gaming and Pragmatic Play Live. Sportsbook tournaments count wagers on all available sports and leagues. Check individual tournament rules to see exactly which games contribute to your score.</p>\\n<p>Games typically excluded: <a href=\\"/crypto-games\\">Crash titles</a>, <a href=\\"/originals\\">Whale.io Originals</a>, and categories outside the tournament focus. Playing these won't hurt your standing but won't advance your position either.</p>\\n<h2>Prize Pools and Payouts</h2>\\n<p>Tournament prize pools range from $10,000 to $100,000 depending on the competition. Top leaderboard spots get the biggest payouts, but most tournaments reward the top 50-100 players so there are multiple winners.</p>\\n<p>All prizes are paid in pure USDT with zero wagering requirements. Win $1,000 and withdraw $1,000 immediatelyâno playthrough conditions or restrictions. Winners get paid directly to their account balance within 48 hours.</p>\\n<p>If players tie on the leaderboard, the prize for that position is split equally or awarded to whoever reached the score first. Specific tie-breaking rules are in each tournament's terms.</p>\\n<h2>Multi-Tournament Participation</h2>\\n<p>You can enter multiple tournaments at once across different categories. Run <a href=\\"/casino\\">slots</a>, <a href=\\"/live-casino\\">live casino</a>, <a href=\\"/sportsbook\\">sportsbook</a>, and refer a friend tournaments simultaneously to multiply your winning chances. Each has separate leaderboards and rules.</p>\\n<p>You need to click \\"Join Tournament\\" for each one individually. Joining one doesn't automatically enroll you in others. But once joined, your gameplay counts toward every tournament you're inâpotentially earning prizes across multiple leaderboards from the same sessions.</p>\\n<h2>Why Play Whale.io Tournaments</h2>\\n<p>Instant crypto deposits using GRAM, BTC, ETH, USDT, and 10+ other cryptocurrencies mean you can jump into tournaments immediately. Zero gas fees on deposits and withdrawals keep more money in your bankroll.</p>\\n<p>Tournament prizes have no wagering requirements. Traditional casino promotions make you play through bonuses multiple times. Here, your tournament winnings are withdrawable the moment they hit your account.</p>\\n<p>Outside tournaments, Whale.io offers up to 25% daily cashback, <a href=\\"/rewards\\">Battlepass progression rewards</a>, and <a href=\\"/tribes\\">Tribes community features</a>. Stack tournament prizes with these ongoing rewards to maximize every session.</p>\\n<h2>Getting Started with Tournaments</h2>\\n<p>Create your free account, deposit crypto instantly, browse active tournaments, and click \\"Join Tournament\\" on competitions that match your style. Start playing qualifying games and watch your leaderboard position update in real-time.</p>\\n<p>Leaderboards show your current rank, points accumulated, and prize tier. You can see competitor progress and adjust your strategy. Whether you prefer grinding consistent volume or hunting max multiplier hits, tournaments accommodate different playstyles.</p>\\n<p>Always read tournament terms before joining to understand eligible games, scoring methods, minimum bets, and prize structures. Each tournament lays out the rules clearly so everyone competes on a level playing field.</p>","showless":"Show less"}},"prompt":{"ends_in":"Ends in","not_now":"Not now"},"mcp":{"only_for_agents":"This tournament is open to MCP agents only."},"raf":{"popup":{"title":"Invite friends, climb the leaderboard","description":"Your referralsâ wagering counts towards your tournament score. Share your link and rack up the Bounty."}},"toast":{"error":{"title":"Tournaments unavailable","load":"We couldn't load the tournaments right now. Please try again later.","join":"We couldn't join you to this tournament right now. Please try again later."}}}
214`),GN={faq:{faq_item_1:{heading:"How do I join a tournament?",paragraph:"Head to the tournament page and hit the Join button. If you donât join, your bets donât count. Thatâs it. Donât just watch, tap in."},faq_item_2:{heading:"How do I earn points?",paragraph:"Tournament points can be collected based on wagering, or winning. The more you bet or win, the faster you climb. Wagering from Cashback or Free Spin winnings also counts. Wagering from actual Free Spins or Free Bets? Doesnât count. Point collection rules for each specific tournament are always displayed on tournament page."},faq_item_3:{heading:"What doesnât count toward Leaderboard points?",paragraph:"Wagering from actual Free Spins or Free Bets donât count. Bets made before joining the tournament. Crash, Originals, and Sportsbook, unless we say otherwise. Sports and Refer a Friend Tournaments have their own terms."},faq_item_4:{heading:"What games do I need to play?",paragraph:"Only the games listed in the tournament category. These vary depending on the event, and theyâre clearly shown on the tournament page. Donât waste your spins on games that donât count."},faq_item_5:{heading:"What are the prizes?",paragraph:"We reward the top players on the leaderboard. The number of winners and prize amounts are always listed clearly on each tournament page. No guessing, no fine print. All paid in real cash."},faq_item_6:{heading:"Is there a wagering requirement on the prizes?",paragraph:"None. Zero. What you win is yours. Withdraw it. Use it. Do what you want."},faq_item_7:{heading:"When do I get my prize?",paragraph:"Cash prizes are paid within 48 hours after the tournament ends. The winning amounts will be credited into Whale account balance."},faq_item_8:{heading:"How long does a tournament run?",paragraph:"Each tournament has a clearly marked countdown. Youâll always see the exact end date and time on the tournament page."},faq_item_9:{heading:"How does Refer a Friend Tournament work?",paragraph:`- Get your unique referral link from Whale.io 215- Make your friends spin. You sit back and rack up the Bounty. 216- Top 3 users by referred wagering volume take home the prizes.`}}},HN=JSON.parse(`{"promotions":{"spinwars":{"already_joined_cta":"Already Joined","title":"SPIN WARS: $30,000 in Cash Awaits","description":"One dollar = One point. Every betâs a weapon. Slots only!","endDate":"Ends at 23:59 PM 31/05/2025","content":"<i>Runs until: 18th of May, 23:59 UTC</i>\\n\\n<h3>SPIN WARS: $30K On the Line. Spin. Dominate. Repeat.</h3>\\n\\n<p>This isnât playtime. This is SPIN WARS, and the battlefield is spread across all Whaleâs slots.</p>\\n\\n<ul>𧨠Every $1 wagered = 1 point.</ul>\\n<ul>ð° Slots & Live Casino bets only.</ul>\\n<ul>ð Wagering from Cashback or Free Spin wins? Counts.</ul>\\n<ul>â ï¸ Crash, Originals, Sportsbook? Irrelevant.</ul>\\n<ul>âï¸ Free Spins or Free Bets themselves? Also donât count.</ul>\\n\\n<p>Youâre here to climb. To crush. To clean out the $30K prize pool!</p>\\n\\n<p>Want to warm up? Hit the new arrivals. Want to dominate? Fire up the bangers: Sweet Bonanza, Gates of Olympus, you know the drill.</p>\\n\\n<h3>$30K Prize Pool:</h3>\\n<ul>\\n <li>ð¥ 1st Place: $12,000</li>\\n <li>ð¥ 2nd Place: $5,000</li>\\n <li>ð¥ 3rd Place: $3,500</li>\\n <li>4th: $2,500</li>\\n <li>5th: $2,000</li>\\n <li>6th: $1,500</li>\\n <li>7th: $1,250</li>\\n <li>8th: $1,000</li>\\n <li>9th: $750</li>\\n <li>10th: $500</li>\\n</ul>\\n\\n<p><b>Winners will be credited on Monday, 19th of May.</b></p>\\n\\n<p>#SometimesLoseAlwaysWin</p>\\n\\n<center><button href=\\"https://whale.tg/casino\\">ð¥ JOIN THE SPIN WAR ð¥</button></center>","join_tournament_cta":"ð¥ JOIN THE SPIN WAR","content_first":"<i>Runs until: 31st of May, 23:59 UTC</i>\\n\\n<h3>SPIN WARS: $30K On the Line. Spin. Dominate. Repeat.</h3>\\n\\n<p>This isnât playtime. This is SPIN WARS, and the battlefield is spread across \\"Spin Wars\\" game category.</p>","content_second":"<ul><li>𧨠Every $1 wagered = 1 point.</li>\\n<li>ð° Play in <a href=\\"/page\\">Spin Wars slot category</a>.</li>\\n<li>ð Wagering from Cashback or Free Spin wins? Counts.</li>\\n<li>â ï¸ Live Casino, Crash, Originals, Sportsbook? Irrelevant.</li>\\n<li>âï¸ Free Spins or Free Bets themselves? Also donât count.</li></ul>\\n\\n<p>
216Youâre here to climb. To crush. To clean out the $30K prize pool!</p>\\n\\n<p>Want to warm up? Hit the new arrivals. Want to dominate? Fire up the bangers: Sweet Bonanza, Gates of Olympus, you know the drill.</p>\\n\\n<h3>$30K Prize Pool:</h3>\\n<ul>\\n <li>ð¥ 1st Place: $12,000</li>\\n <li>ð¥ 2nd Place: $5,000</li>\\n <li>ð¥ 3rd Place: $3,500</li>\\n <li>4th: $2,500</li>\\n <li>5th: $2,000</li>\\n <li>6th: $1,500</li>\\n <li>7th: $1,250</li>\\n <li>8th: $1,000</li>\\n <li>9th: $750</li>\\n <li>10th: $500</li></ul>\\n\\n<p><b>Winners will be credited on 1st of June, 2025.</b></p>\\n\\n<p>#SometimesLoseAlwaysWin</p>","table":{"user":"User","usd_wagered":"$ Wagered","rank":"Rank"},"content_tc":"<h3>Terms & Conditions: Spin Wars Tournament</h3>\\n\\n<ul>\\n <li>\\n <b>Eligibility & Participation:</b> \\n Open to all registered Whale Casino users who meet platform eligibility criteria. Users must explicitly join the tournament; only points earned after joining count towards the leaderboard.\\n </li>\\n\\n <li>\\n <b>Right to Remove Points or Players:</b> \\n Whale Casino reserves the right to remove points or disqualify players if we detect abusive behavior such as:\\n <ul>\\n <li>Opposite betting</li>\\n <li>No-risk betting</li>\\n <li>Cancelled bets</li>\\n <li>Any other activity deemed unfair or manipulative</li>\\n </ul>\\n All decisions are final and made at Whale Casinoâs sole discretion.\\n </li>\\n\\n <li>\\n <b>Winner Verification & Payment:</b> \\n Winners will be verified for compliance. USDT rewards will be credited to user accounts within 48 hours after the tournament ends (Tournament ends May 18th, 2025, 23:59 UTC. Payments completed by May 20th, 2025, 23:59 UTC).\\n </li>\\n\\n <li>\\n <b>Rule Modifications:</b> \\n Whale Casino may update or edit these rules at any time without prior notice. Changes take immediate effect once posted on the tournament page.\\n </li>\\n\\n <li>\\n <b>General Conditions:</b> \\n Whale Casino is not responsible for technical issues such as server downtime or connectivity failures. All tournament-related decisions by Whale Casino are final.\\n </li>\\n</ul>"},"dailycashback":{"title":"Daily Cashback","description":"No BS. Just rewards, every day.","endDate":"Ends at 23:59 PM 12/31/2026","content":"<h1>Get Paid to Play â Every Single Day</h1>\\n<h2>Up to 5% Daily + 17% Weekly Cashback with Battlepass Season 5</h2>\\n\\n<h3>How It Works</h3>\\n\\n<p>When the house wins, <b>you still win</b>. With Battlepass Season 5, we track every loss and give you real money back â up to <b>5% daily</b> and <b>17% weekly</b> based on your rank. No tricks, no wagering traps, just cash in your wallet.</p>\\n\\n<h3>The Whale.io Difference</h3>\\n\\n<ul>\\n<li><b>Paid Daily & Weekly</b> â Real money, not bonus credits</li>\\n<li><b>No Wagering Traps</b> â Withdraw after a single wager</li>\\n<li><b>Fresh Start Daily</b> â Yesterday's wins don't reduce today's cashback</li>\\n<li><b>Grows With Your Rank</b> â Climb from Rank 1 (1% daily) all the way to Rank 13 (5% daily + 17% weekly)</li>\\n<li><b>Claim Window</b> â Available from 7:00 AM UTC daily, claim within 24 hours</li>\\n</ul>\\n\\n<center><a href=\\"/rewards\\">GET BATTLEPASS NOW</a></center>\\n\\n<h3>Cashback by Rank</h3>\\n\\n<p>Your cashback percentage increases as you rank up through Battlepass Season 5. Daily cashback caps at <b>5%</b> from Rank 5 onward â but weekly cashback keeps climbing all the way to the top:</p>\\n\\n<ul>\\n<li><b>Rank 1:</b> 1% daily, 0% weekly</li>\\n<li><b>Rank 2:</b> 2% daily, 0% weekly</li>\\n<li><b>Rank 3:</b> 3% daily, 3% weekly</li>\\n<li><b>Rank 4:</b> 4% daily, 4% weekly</li>\\n<li><b>Rank 5:</b> 5% daily, 5% weekly</li>\\n<li><b>Rank 6:</b> 5% daily, 6% weekly</li>\\n<li><b>Rank 7:</b> 5% daily, 7% weekly</li>\\n<li><b>Rank 8:</b> 5% daily, 10% weekly</li>\\n<li><b>Rank 9:</b> 5% daily, 11% weekly</li>\\n<li><b>Rank 10:</b> 5% daily, 12% weekly</li>\\n<li><b>Rank 11:</b> 5% daily, 14% weekly</li>\\n<li><b>Rank 12:</b> 5% daily, 15% weekly</li>\\n<li><b>Rank 13:</b> 5% daily, 17% weekly</li>\\n</ul>\\n\\n<p><b>Maximum cashback: 5% daily + 17% weekly.</b> That's up to <b>25% total</b> coming back to you.</p>\\n\\n<h3>How Cashback Is Calculated</h3>\\n\\n<p>We use a straightforward formula:</p>\\n\\n<p><b>(Deposits - Withdrawals - Current Balance - Unsettled Bets) à Your Cashback %</b></p>\\n\\n<ul>\\n<li><b>Deposits:</b> What you added to your account that day (or week for weekly cashback)</li>\\n<li><b>Withdrawals:</b> Any money you took out</li>\\n<li><b>Current Balance:</b> What's left in your account</li>\\n<li><b>Unsettled Bets:</b> Bets still in progress</li>\\n<li><b>Your Cashback %:</b> Based on your current Battlepass rank (up to 5% daily + 17% weekly at Rank 13)</li>\\n</ul>\\n\\n<p><i>Daily cashback is calculated on settled bets from 00:00 to 23:59 UTC. Weekly cashback covers your net losses from Monday 00:00 to Sunday 23:59 UTC. Unsettled bets won't count toward eligibility. Deposits must be made and wagered same-day to qualify for daily cashback.</i></p>\\n\\n<h3>Example</h3>\\n\\n<p>If you deposited $100, withdrew $20, have $10 left, no unsettled bets, and you're at Rank 5 with 5% daily cashback, your daily cashback is:</p>\\n\\n<p><b>($100 - $20 - $10 - $0) à 5% = $3.50</b></p>\\n\\n<p>At the end of the week, you'll also get your weekly cashback calculated on your total weekly net losses at 5%.</p>\\n\\n<h3>Rank-Up Rewards</h3>\\n\\n<p>Cashback is only the beginning. Every time you hit a new rank, Season 5 drops a reward that actually hits:</p>\\n\\n<ul>\\n<li><b>Rank 2:</b> 10 Free Spins at $0.40</li>\\n<li><b>Rank 3:</b> 10 Free Spins at $1.00</li>\\n<li><b>Rank 4:</b> $40 Bonus Buy</li>\\n<li><b>Rank 5:</b> $80 Bonus Buy</li>\\n<li><b>Rank 6:</b> $300 Bonus Buy</li>\\n<li><b>Rank 7:</b> $600 Bonus Buy</li>\\n<li><b>Rank 8:</b> $3,000 Lootbox</li>\\n<li><b>Rank 9:</b> $6,000 Lootbox</li>\\n<li><b>Rank 10:</b> $10,000 Lootbox</li>\\n<li><b>Rank 11:</b> $80,000 Cash</li>\\n<li><b>Rank 12:</b> $200,000 Cash</li>\\n<li><b>Rank 13:</b> $400,000 Cash</li>\\n</ul>\\n\\n<h3>Level-Up Rewards</h3>\\n\\n<p>Between ranks, every level-up earns you <b>Whale Tokens</b> â scaling from 100 tokens per level at Rank 1 all the way to 5,000,000 per level at Rank 12. 121 levels, 13 ranks, rewards at every step.</p>\\n\\n<center><a href=\\"/rewards\\">GET BATTLEPASS NOW</a></center>\\n\\n<h3>Why Battlepass Changes Everything</h3>\\n\\n<p>
216Most casinos give you a welcome bonus once. We give you money back <b>every day and every week you play</b>. Win or lose, you're always earning â and the higher you climb, the more you earn back.</p>\\n\\n<p><b>No Negative Carryover:</b> Your cashback resets daily and weekly. Big wins last week? Doesn't matter. You're still eligible for cashback every single day.</p>\\n\\n<p><b>Your losses become your gains. Your loyalty gets rewarded. Every. Single. Day.</b></p>\\n\\n<p><i>Cashback available for 24 hours after each calculation. Battlepass Season 5 required to unlock cashback rewards. Cashback paid in USDT with a minimum payout of 0.05 USDT. Cashback must be wagered once before withdrawal.</i></p>\\n\\n<center><a href=\\"/rewards\\">CLAIM YOUR CASHBACK</a></center>"},"australianopen":{"title":"Australian Open Tournament","description":"Bet on AO & claim your share of $10K Prize Pool!","endDate":"Ends at 23:59 PM 27/01/2025","content":"<p>Step onto the court with @Whaleâs Australian Open Tournament!</p>\\n\\n<h3>ð¾ Tournament Highlights</h3>\\n<ul><li>Dates: January 11 â 27, 2025</li>\\n<li>Total Prize Pool: $10,000</li></ul>\\n\\n<p>Join the tournament in the Sportsbook section, place your bets on AO and win your share of the pool.</p>\\n\\n<h3>ð Prizes</h3>\\n<ul><li>1st Place: $3,000</li>\\n<li>2nd Place: $2,000</li>\\n<li>3rd Place: $1,200</li>\\n<li>4th Place: $900</li>\\n<li>5th Place: $750</li>\\n<li>6th Place: $650</li>\\n<li>7th Place: $550</li>\\n<li>8th Place: $400</li>\\n<li>9th Place: $300</li>\\n<li>10th Place: $250</li></ul>\\n\\n<p>Bet LIVE or PREMATCH, climb your way up on the leaderboard and secure your Cash Prize!</p>\\n\\n<p><i>Full T&C on the tournament section in the Sportsbook tab.</i></p>"},"rafcomp":{"title":"Refer A Friend Competition: Love Whale Edition","description":"Win Airpods MAX, Whale Merch & GRAM!","endDate":"Ends at 23:59 PM 02/28/2025","content":"<p>Cupidâs got nothing on you! ð This Valentineâs season, itâs all about sharing the love and collecting some seriously sweet prizes while youâre at it.</p>\\n\\n<p>Weâre talking a 500 GRAM prize pool + exclusive @Whale specials thatâll make your heart skip a beat!</p>\\n\\n<h3>ð The Prizes</h3>\\n<ul><li>1st Place: Custom AirPods MAX with @Whale engraving + 250 GRAM</li>\\n<li>2nd Place: Custom Love @Whale Sneakers + 200 GRAM</li>\\n<li>3rd Place: Love @Whale Merch Pack + 50 GRAM</li></ul>\\n\\n<h3>ð How to Join the Fun</h3>\\n<ul><li>Step 1: Head over to the Earn page and grab your unique Refer A Friend link</li>\\n<li>Step 2: Share it with your favorite people (or your secret crush ð)</li>\\n<li>Step 3: The more your referrals wager, the closer you get to winning BIG! ð¸</li></ul>\\n\\n<h3>⨠Love & Rewards, All February Long! â¨</h3>\\n<p>Competition runs all through February, so youâve got plenty of time to spread the love and rack up those referrals.</p>\\n\\n<p>Whether youâre in it for the prizes or just love flexing your referral game, thereâs no sweeter way to win than with your fellow Whale lovers. Winners will be contacted directly on 1st of March, 2025.</p>\\n\\n<p>Ready to fall in love with winning? Start referring now! ð</p>"},"championschallenge":{"title":"Champions Challenge: Turn $10K into $20K!","description":"Bet. Win. Double the Prize Pool!","endDate":"Ends at 23:59 PM 03/16/2025","content":"<p>The Champions Challenge is ON, and this time it's all about pushing the prize pool to the max! Start with $10K up for grabs, but if the total points reach the target, the pool DOUBLES to $20K! ð</p>\\n\\n<h3>â½ï¸HOW TO SCORE POINTS?</h3>\\n\\n<ul><li>Every winning bet = points</li>\\n<li>Points are calculated as win amount x 10</li>\\n<li>Example: A $10 winning bet at 1.5 odds = 150 points</li></ul>\\n\\n<h3>ð°HOW TO BOOST THE PRIZE POOL?</h3>\\n\\n<p>The tournament starts with a $10K pool, but if total points hit the target of 2 million, it jumps to $20K!</p>\\n\\n<p>Your wins fuel the pot! The more you win, the bigger it gets.</p>\\n\\n<h3>$20K PRIZE POOL</h3>\\n<p>1st Place: $6,000 | 2nd Place: $4,000 | 3rd Place: $2,400 | 4th Place: $1,800 | 5th Place: $1,500 | 6th Place: $1,300 | 7th Place: $1,100 | 8th Place: $800 | 9th Place: $600 | 10th Place: $500</p>\\n\\n<h3>ðWHEN & WHERE TO BET?</h3>\\n<ul><li>Bet on ANY football tournament, your call.</li>\\n<li>Big leagues = bigger limits = more points.</li>\\n<li>Tournament ends on Sunday, March 16, 23:59 UTC.</li></ul>\\n\\n<h3>ðLET'S GO â TIME TO SCORE!</h3>\\n<p>Place your bets, rack up points, and push the prize pool to $20K. The more you win, the higher the stakes!</p>\\n\\n<p>#ChampionsChallenge #DoubleThePrize</p>"},"battlepass2":{"title":"Battlepass. Reloaded.","description":"Season 2 Comes W
216ith Horsepower.","endDate":"Ends at 23:59 PM 07/31/2025","content":"<p>You asked for more. We dropped 2 Lambos. Yes, really. Reach Level 200 and weâll hand you the keys. Twice.</p>\\n\\n<p>This isnât just a Battlepass. Itâs a launchpad.</p>\\n\\n<h3>ð¯ What Is Battlepass?</h3>\\n\\n<p>Itâs playing with purpose. Every spin, every bet, every mission, it all stacks XP.</p>\\n\\n<p>Youâre not just spinning aimlessly, youâre progressing, leveling up, and unlocking superior rewards along the way.</p>\\n\\n<p>Battlepass is for players who want more than just the hit. Itâs for the ones who want to own the game, farm the rewards, and flex harder than the rest.</p>\\n\\n<h3>ð¥ What You Get in Season 2</h3>\\n\\n<ul>\\n <li>ð° Over 1,000 Free Spins</li>\\n <li>ð¥ 33 Bonus Buys</li>\\n <li>ð 129 Lootbox accesses</li>\\n <li>ð³ $130,000 worth of Whale Merch</li>\\n <li>ðï¸ $77,000 in Free Bets</li>\\n <li>ðª 19,500 $Whale Tokens</li>\\n <li>ð¸ Higher rewards in the Earn Program</li>\\n <li>ðï¸ And yes, 2 Lambos</li>\\n</ul>\\n\\n<p>Season 2 has begun. Are you ready to start?</p>\\n\\n<center><button href=\\"/rewards\\">BUY SEASON 2</center>"},"playoffheat":{"title":"From Playoffs to Payoffs!","description":"Every win moves you up. Every challenge pays.","endDate":"Ends at 23:59 PM 05/19/2025","content":"<h3>ð PLAYOFF HEAT</h3>\\n\\n<p><b>$31,000 Prize Pool | Ends May 19, 23:59 UTC</b></p>\\n\\n<p>From the intensity of the NBA and the grind of the NHL, to the firepower of the Champions League, Euroleague, and KHL â this is where playoff season turns into profit season.</p>\\n\\n<p>Every winning bet pushes you up the leaderboard. 1st place takes $12,000, and the action doesnât stop there.</p>\\n\\n<h3>ð¥ More Freebets? You Just Need to Show Up.</h3>\\n\\n<p>Follow the <a href=\\"https://t.me/whalesports\\">Big Bet Alerts</a> channel, complete the Weekly Challenges, and boom! Freebets in your pocket. \\nItâs easy, itâs extra, and itâs all yours for the taking.</p>\\n\\n<h3>ð Prize Breakdown: $31,000 Total</h3>\\n\\n<ul><li>1st â $12,000</li>\\n<li>2nd â $5,000</li>\\n<li>3rd â $3,500</li>\\n<li>4th â $2,500</li>\\n<li>5th â $2,000</li>\\n<li>6th â $1,500</li>\\n<li>7th â $1,250</li>\\n<li>8th â $1,000</li>\\n<li>9th â $750</li>\\n<li>10th â $500</li>\\n<li>11thâ15th â $200 Free Bet each</li></ul>\\n\\n<h3>ðï¸ Freebet Raffle: Ten Chances to Win!</h3>\\n\\n<p>Weâre giving away ten $100 Freebets in a special raffle.\\nWant in? Hereâs what you need to do:\\nPlace at least 10 bets during the tournament period. Winners drawn on May 20.</p>\\n\\n\\n<p>Dominate the board. Complete the weekly challenge.\\nTake your cut of $31K.</p>\\n\\n<center><button href=\\"%2Fsportsbook%3FsetIframePath%3D%2Fusers-tournament%2Fd644ef34-7534-4576-b2fb-9859620a6208\\">JOIN PLAYOFF HEAT NOW</button></center>\\n\\n<h3>â ï¸ Heads Up</h3>\\n<ul><li>Foul play = instant disqualification and reward confiscation (Multiple accounts, exploits, shady tactics â donât). We want fair play to all our Legends.</li>\\n<li>Every winning bet earns you points. The more you win, the higher you rise.</li>\\n<li>Bets with odds 1.2+ on any sport count toward points.</li>\\n<li>Min selection odds 1.1.</li>\\n<li>Single and multi bets count. </li></ul>"},"summercup":{"title":"SUMMER CUP","description":"Claim Your Spot on the Leaderboard & Take Cash!","endDate":"Ends at 23:59 PM 07/20/2025","content":"<h3>Summer CUP</h3>\\n\\n<p><b><i>$40,000 Prize Pool | Ends July 20, 23:59 UTC</i></b></p>\\n\\n\\n<p>Summerâs still burning, and so is the leaderboard. $40,000 is back on the line in the Summer Cup, your next shot at glory, bragging rights, and a major payout.</p>\\n\\n<p>You know the drill. Winning bets = tournament points. Stack enough of them, and the top spot (and cash) is yours. More free bets, more winners, and another $40K up for grabs.</b></p>\\n\\n<p>The race is back on. Are you in?</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">JOIN SUMMER CUP NOW</a></center>\\n\\n<h3>ð¥ More Freebets? You Just Need to Show Up.</h3>\\n\\n<p>Follow the <a href=\\"https://t.me/whalesports\\">Big Bet Alerts</a> channel, complete the Weekly Challenges, and boom! Freebets in your pocket. \\nItâs easy, itâs extra, and itâs all yours for the taking.</p>\\n\\n\\n<h3>ð Prize Breakdown: $40,000 Total</h3>\\n\\n<ul><li>1st â $12,000</li>\\n<li>2nd â $5,000</li>\\n<li>3rd â $3,500</li>\\n<li>4th â $2,500</li>\\n<li>5th â $2,000</li>\\n<li>6th â $1,500</li>\\n<li>7th â $1,250</li>\\n<li>8th â $1,000</li>\\n<li>9th â $750</li>\\n<li>10th â $500</li>\\n<li>11thâ25th â $400 Free Bet</li>\\n<li>26thâ40th â $200 Free Bet</li>\\n<li>41stâ50th â $100 Free Bet</li></ul>\\n\\n<h3>ðï¸ Freebet Raffle: Ten Chances to Win!</h3>\\n\\n<p>Weâre giving away ten $100 Freebets in a special raffle.\\nWant in? Hereâs what you need to do:\\nPlace at least 10 bets during the tournament period. Winners drawn on July 21.</p>\\n\\n<h3>â ï¸ Heads Up</h3>\\n<ul><li>Foul play = instant disqualification and reward confiscation (Multiple accounts, exploits, shady tactics â donât). We want fair play to all our Legends.</li>\\n<li>Every winning bet earns you points. The more you win, the higher you rise.</li>\\n<li>Bets with odds 1.2+ on any sport count toward points.</li>\\n<li>Min selection odds 1.1.</li>\\n<li>Single and multi bets count. </li></ul>"},"preseasonwhalecup":{"title":"Whale Cup: Preseason","description":"Claim Your Spot on the Leaderboard & Take Cash!","endD
216ate":"Ends at 23:59 PM 08/10/2025","content":"<h3>Whale Cup: Preseason</h3>\\n\\n<p><b><i>$40,000 Prize Pool | Ends August 10, 23:59 UTC</i></b></p>\\n\\n\\n<p>Summerâs still burning, and so is the leaderboard. $40,000 is back on the line in the Whale Cup: Preseason, your next shot at glory, bragging rights, and a major payout.</p>\\n\\n<p>You know the drill. Winning bets = tournament points. Stack enough of them, and the top spot (and cash) is yours. More free bets, more winners, and another $40K up for grabs.</p>\\n\\n<p>The race is back on. Are you in?</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">JOIN WHALE CUP NOW</a></center>\\n\\n<h3>ð¥ More Free bets? You Just Need to Show Up.</h3>\\n\\n<p>Join the Daily Challenge mini-tournaments on the Sportsbook page!</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">CHECK DAILY CHALLENGE</a></center>\\n\\n<h3>ð Prize Breakdown: $40,000 Total</h3>\\n\\n<ul><li>1st â $12,000</li>\\n<li>2nd â $5,000</li>\\n<li>3rd â $3,500</li>\\n<li>4th â $2,500</li>\\n<li>5th â $2,000</li>\\n<li>6th â $1,500</li>\\n<li>7th â $1,250</li>\\n<li>8th â $1,000</li>\\n<li>9th â $750</li>\\n<li>10th â $500</li>\\n<li>11thâ25th â $400 Free Bet</li>\\n<li>26thâ40th â $200 Free Bet</li>\\n<li>41stâ50th â $100 Free Bet</li></ul>\\n\\n<h3>ðï¸ Free bet Raffle: Ten Chances to Win!</h3>\\n\\n<p>Weâre giving away ten $100 Free bets in a special raffle.\\nWant in? Hereâs what you need to do:\\nPlace at least 10 bets during the tournament period. Winners drawn on August 11.</p>\\n\\n<h3>â ï¸ Heads Up</h3>\\n<ul><li>Foul play = instant disqualification and reward confiscation (Multiple accounts, exploits, shady tactics â donât). We want fair play to all our Legends.</li>\\n<li>Every winning bet earns you points. The more you win, the higher you rise.</li>\\n<li>Bets with odds 1.2+ on any sport count toward points.</li>\\n<li>Min selection odds 1.2.</li>\\n<li>Single and multi bets count. </li></ul>"},"seasonkickoff":{"title":"Whale Cup: Season Kickoff","description":"Claim Your Spot on the Leaderboard & Take Cash!","endDate":"Ends at 23:59 PM 08/31/2025","content":"<h3>Whale Cup: Season Kickoff</h3>\\n\\n<p><b><i>$40,000 Prize Pool | Ends August 31, 23:59 UTC</i></b></p>\\n\\n\\n<p>The leaderboard is on fire! $40,000 is back on the line in the Whale Cup: Season Kickoff, your next shot at glory, bragging rights, and a major payout.</p>\\n\\n<p>You know the drill. Winning bets = tournament points. Stack enough of them, and the top spot (and cash) is yours. More free bets, more winners, and another $40K up for grabs.</p>\\n\\n<p>The race is on. Are you in?</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">JOIN SEASON KICKOFF NOW</a></center>\\n\\n<h3>ð¥ More Free bets? You Just Need to Show Up.</h3>\\n\\n<p>Join the Daily Challenge mini-tournaments on the Sportsbook page!</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">CHECK DAILY CHALLENGE</a></center>\\n\\n<h3>ð Prize Breakdown: $40,000 Total</h3>\\n\\n<ul><li>1st â $12,000</li>\\n<li>2nd â $5,000</li>\\n<li>3rd â $3,500</li>\\n<li>4th â $2,500</li>\\n<li>5th â $2,000</li>\\n<li>6th â $1,500</li>\\n<li>7th â $1,250</li>\\n<li>8th â $1,000</li>\\n<li>9th â $750</li>\\n<li>10th â $500</li>\\n<li>11thâ25th â $400 Free Bet</li>\\n<li>26thâ40th â $200 Free Bet</li>\\n<li>41stâ50th â $100 Free Bet</li></ul>\\n\\n<h3>ðï¸ Free bet Raffle: Ten Chances to Win!</h3>\\n\\n<p>Weâre giving away ten $100 Free bets in a special raffle.\\nWant in? Hereâs what you need to do:\\nPlace at least 10 bets during the tournament period. Winners drawn on September 1st.</p>\\n\\n<h3>â ï¸ Heads Up</h3>\\n<ul><li>Foul play = instant disqualification and reward confiscation (Multiple accounts, exploits, shady tactics â donât). We want fair play to all our Legends.</li>\\n<li>Every winning bet earns you points. The more you win, the higher you rise.</li>\\n<li>Bets with odds 1.2+ on any sport count toward points.</li>\\n<li>Min selection odds 1.2.</li>\\n<li>Single and multi bets count. </li></ul>"},"seasonheat":{"title":"Season Has Begunâ¦","description":"And $40K is back for the taking!","endDate":"Ends at 23:59 PM 09/21/2025","content":"<h3>SEASON HEAT</h3>\\n\\n<p><b><i>$40,000 Prize Pool | Ends September 21, 23:59 UTC</i></b></p>\\n\\n\\n<p>The season is finally here. $40,000 is back on the line in the Season Heat, your next shot at glory, bragging rights, and a major payout.</p>\\n\\n<p>You know the drill. Winning bets = tournament points. Stack enough of them, and the top spot (and cash) is yours. More free bets, more winners, and another $40K up for grabs.</b></p>\\n\\n<p>The race is back on. Are you in?</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">JOIN SEASON HEAT</a></center>\\n\\n<h3>ð¥ More Freebets? You Just Need to Show Up.</h3>\\n\\n<p>
216Join the Daily Challenge mini-tournaments on the Sportsbook page!</p>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/all-users-tournaments\\">CHECK DAILY CHALLENGE</a></center>\\n\\n<h3>ð Prize Breakdown: $40,000 Total</h3>\\n\\n<ul><li>1st â $12,000</li>\\n<li>2nd â $5,000</li>\\n<li>3rd â $3,500</li>\\n<li>4th â $2,500</li>\\n<li>5th â $2,000</li>\\n<li>6th â $1,500</li>\\n<li>7th â $1,250</li>\\n<li>8th â $1,000</li>\\n<li>9th â $750</li>\\n<li>10th â $500</li>\\n<li>11thâ25th â $400 Free Bet</li>\\n<li>26thâ40th â $200 Free Bet</li>\\n<li>41stâ50th â $100 Free Bet</li></ul>\\n\\n<h3>ðï¸ Freebet Raffle: Ten Chances to Win!</h3>\\n\\n<p>Weâre giving away ten $100 Freebets in a special raffle.\\nWant in? Hereâs what you need to do:\\nPlace at least 10 bets during the tournament period. Winners drawn on September 22.</p>\\n\\n<h3>â ï¸ Heads Up</h3>\\n<ul><li>Foul play = instant disqualification and reward confiscation (Multiple accounts, exploits, shady tactics â donât). We want fair play to all our Legends.</li>\\n<li>Every winning bet earns you points. The more you win, the higher you rise.</li>\\n<li>Bets with odds 1.2+ on any sport count toward points.</li>\\n<li>Min selection odds 1.1.</li>\\n<li>Single and multi bets count. </li></ul>"},"battlepass4":{"title":"Battlepass: Season 4","description":"Your path to Immortality","endDate":"Ends at 23:59 PM 04/30/2026","content":"<h1>Battlepass Season 4: Your Path to Immortality</h1>\\n<p><b>Welcome to the most rewarding season yet.</b> Whale.io's Battlepass Season 4 is your ticket to legendary status, massive cashback, and rewards at every turn. Ready to climb from Rookie to Immortal?</p>\\n\\n<h2>ð 11 Ranks, 101 Levels, Endless Rewards</h2>\\n<p>Battlepass S4 features <b>11 epic ranks</b> and <b>101 levels</b> of pure progression. Every level unlocks a reward. Every rank grants an exclusive bonus <b>plus</b> a permanent cashback boost that stacks as you climb. <br><br>\\n<b>Get Battlepass for just $1.99 or $WHALE 4.999</b>\\n</p>\\n<center><a href=\\"/rewards\\">GET BATTLEPASS NOW</a></center>\\n\\n<h2>ð¥ Beast Mode: Skip the Grind</h2>\\n<p><b>Skip the BS rewards and jump right into Level 31.</b> Instantly unlock <b>5% daily + 4% weekly cashback</b>, and <b>$10 Bonus Buy to Big Bass Bonanza 1000</b>, as your first level & rank rewards.<br><br>\\n<b>Go Beast Mode for $19.99 or $WHALE 89,999</b>\\n</p>\\n<center><a href=\\"/rewards\\">BUY BEAST MODE</a></center>\\n\\n<h3>Your Journey Through the Ranks</h3>\\n<p><b>Rookie</b> â Start strong. Claim your first rewards.</p>\\n<p><b>Brawler</b> â Find your rhythm. XP flows, wins stack.</p>\\n<p><b>Warrior</b> â Battle-tested. Hungry for more.</p>\\n<p><b>Beast</b> â Unleash power. Cashback climbs fast.</p>\\n<p><b>Crusher</b> â Dominate. Level after level, you crush it.</p>\\n<p><b>Legend</b> â Elite status. Rewards get serious.</p>\\n<p><b>Master</b> â Peak grind. Top-tier returns.</p>\\n<p><b>King</b> â Rule the field. Cashback fit for royalty.</p>\\n<p><b>Emperor</b> â Command respect. Progress unstoppable.</p>\\n<p><b>God</b> â Transcend limits. Few reach this.</p>\\n<p><b>Immortal</b> â Eternal glory. Max cashback. Legendary.</p>\\n\\n<h2>ð° Cashback That Grows With You</h2>\\n<p>Rank up to boost your <b>daily and weekly cashback</b>âthe higher you go, the more you get back on every bet.</p>\\n<p><b>Rookie:</b> 2% daily, 0% weekly</p>\\n<p><b>Brawler:</b> 3% daily, 0% weekly</p>\\n<p><b>Warrior:</b> 4% daily, 3% weekly</p>\\n<p><b>Beast:</b> 5% daily, 4% weekly</p>\\n<p><b>Crusher:</b> 6% daily, 5% weekly</p>\\n<p><b>Legend:</b> 7% daily, 6% weekly</p>\\n<p><b>Master:</b> 8% daily, 7% weekly</p>\\n<p><b>King:</b> 9% daily, 8% weekly</p>\\n<p><b>Emperor:</b> 10% daily, 9% weekly</p>\\n<p><b>God:</b> 10% daily, 10% weekly</p>\\n<p><b>Immortal:</b> 11% daily, 11% weekly</p>\\n<p><b>Reach Immortal for 11% daily + 11% weekly cashback.</b> Real money, every day, every weekâwin or lose.</p>\\n\\n<h2>ð 101 Rewards, Zero Filler</h2>\\n<p>Every level = crypto bonuses, free spins, exclusive loot, and rank-up rewards. <b>101 levels. 101 rewards.</b> Pure value, no fluff.</p>\\n\\n<h2>ð¥ Why Buy the Battlepass?</h2>\\n<p><b>This is where the magic happens.</b>
216 All cashback, all rank-up rewards, all 101 level rewardsâ<b>exclusive to Battlepass holders.</b></p>\\n<ul>\\n<li>Access to all 101 level rewards</li>\\n<li>Cashback boosts at every rank (up to 11% daily + 11% weekly)</li>\\n<li>Exclusive rank-up bonuses</li>\\n<li>Legendary status from Rookie to Immortal</li>\\n<li>Maximum value and returns on every bet</li>\\n</ul>\\n<p><b>Not a paywall. A VIP pass to the most rewarding experience on Whale.io.</b> Play more, get more back. Simple.</p>\\n\\n<h2>ð Battlepass Season 4 Pricing</h2>\\n<p><b>Just $1.99 or $WHALE 4.999</b></p>\\n<p>Less than a coffee for <b>101 rewards</b>, <b>11 cashback boosts</b>, and a shot at Immortal. Pay once, unlock everything.</p>\\n\\n<h2>ð¥ Beast Mode Pricing</h2>\\n<p><b>$19.99 or $WHALE 89,999</b> gets you instant Level 31 and all Beast Mode perks.</p>\\n\\n<h2>ð How It Works</h2>\\n<p><b>Buy the Battlepass</b> â $1.99 or $WHALE 4.999 unlocks the full Season 4.</p>\\n<p><b>Or go Beast Mode</b> â $19.99 or $WHALE 89,999 for instant Level 31 and massive rewards.</p>\\n<p><b>Play your favorite games</b> â Earn XP with every bet.</p>\\n<p><b>Level up</b> â Claim rewards at all 101 levels.</p>\\n<p><b>Rank up</b> â Unlock cashback boosts through 11 ranks.</p>\\n<p><b>Reach Immortal</b> â Max out at 11% daily + 11% weekly cashback.</p>\\n\\n<h2>ð¯ For Every Type of Player</h2>\\n<p><b>Casuals</b> â Steady rewards, growing cashback, every session.</p>\\n<p><b>High rollers</b> â Elite cashback that scales with your play.</p>\\n<p><b>Crypto fans</b> â Instant, gas-free cashback in GRAM, BTC, ETH, and more.</p>\\n<p><b>Competitors</b> â Prove your dominance, reach Immortal.</p>\\n\\n<h2>ð Season 4 Is Live. Your Rank Awaits.</h2>\\n<p>From <b>Rookie to Immortal</b>, every level matters. For just <b>$1.99 or $WHALE 4.999</b>, unlock it allâ101 rewards, 11 ranks, cashback up to 11% daily + 11% weekly.</p>\\n<p>Or go Beast Mode for <b>$19.99 or $WHALE 89,999</b> and skip straight to Level 31.</p>\\n<p><b>Donât just play. Progress. Dominate. Ascend.</b></p>\\n<p><i>Whale.io â Where Legends Are Made.</i></p>"},"battlepass5":{"content":"<h1>What is the Battlepass?</h1>\\n\\n<p>The Battle Pass is Whale's progression system. You buy it once per season, and every bet you place â slots, live casino, or sports â moves you forward. As you level up, you earn <b>$WHALE</b> tokens, and as you rank up, you unlock bigger rewards: Free Spins, Bonus Buys, Lootboxes, and straight cash.</p>\\n\\n<p><b>Season 5</b> is live now. 13 ranks. 121 levels. Rewards that scale the higher you climb.</p>\\n\\n<h2>How to Get It</h2>\\n\\n<p>Head to the Rewards page and grab the Battle Pass. Two options:</p>\\n\\n<ul>\\n <li><b>Standard Battle Pass</b> â $1.99 or 9,999 $WHALE tokens. One-time purchase for the full season.</li>\\n <li><b>Beast Mode</b> â $39.99. Skip the early grind and jump straight to Rank 4.</li>\\n</ul>\\n\\n<p>Once purchased, the Battle Pass activates immediately and you can start earning rewards right away.</p>\\n\\n<h2>What is Beast Mode?</h2>\\n\\n<p>Beast Mode is for players who don't want to grind through the early ranks. Instead of starting at Rank 1, Beast Mode drops you straight into <b>Rank 4</b>, which means:</p>\\n\\n<ul>\\n <li>5% daily cashback and 4% weekly cashback from the jump</li>\\n <li>1,000 $WHALE tokens per level-up instead of starting at 100</li>\\n <li>You receive all the rewards at once from the ranks you skipped</li>\\n</ul>\\n\\n<p>Think of it as buying the express lane. You start earning everything from Rank 4 onward the normal way â you just skip the early grind.</p>\\n\\n<center><a href=\\"/rewards\\">GET BATTLEPASS NOW</a></center>\\n\\n<h2>How Progression Works</h2>\\n\\n<p>Every bet you place earns you progress toward the next level. Each rank contains 10 levels. Clear all 10 levels in a rank and you rank up â unlocking a milestone reward plus higher cashback rates.</p>\\n\\n<p>There are <b>13 ranks</b> in total. The further you go, the bigger the payoff.</p>\\n\\n<h2>What You Earn</h2>\\n\\n<h3>Level-Up Rewards</h3>\\n\\n<p>Every time you level up, you earn <b>$WHALE</b> tokens. The amount scales with your rank:</p>\\n\\n<ul>\\n <li><b>Rank 1:</b> 100 $WHALE</li>\\n <li><b>Rank 2:</b> 200 $WHALE</li>\\n <li><b>Rank 3:</b> 500 $WHALE</li>\\n <li><b>Rank 4:</b> 1,000 $WHALE</li>\\n <li><b>Rank 5:</b> 2,000 $WHALE</li>\\n <li><b>Rank 6:</b> 5,000 $WHALE</li>\\n <li><b>Rank 7:</b> 20,000 $WHALE</li>\\n <li><b>Rank 8:</b> 50,000 $WHALE</li>\\n <li><b>Rank 9:</b> 100,000 $WHALE</li>\\n <li><b>Rank 10:</b> 500,000 $WHALE</li>\\n <li><b>Rank 11:</b> 1,000,000 $WHALE</li>\\n <li><b>Rank 12:</b> 5,000,000 $WHALE</li>\\n</ul>\\n\\n<h3>Rank-Up Rewards</h3>\\n\\n<p>Hit a new rank and you get a big milestone reward on top of your level-up tokens:</p>\\n\\n<ul>\\n <li><b>Rank 2:</b> 10 Free Spins at $0.40</li>\\n <li><b>Rank 3:</b> 10 Free Spins at $1.00</li>\\n <li><b>Rank 4:</b> $20 Bonus Buy</li>\\n <li><b>Rank 5:</b> $80 Bonus Buy</li>\\n <li><b>Rank 6:</b> $300 Bonus Buy</li>\\n <li><b>Rank 7:</b> $600 Bonus Buy</li>\\n <li><b>Rank 8:</b> $3,000 Lootbox</li>\\n <li><b>Rank 9:</b> $6,000 Lootbox</li>\\n <li><b>Rank 10:</b> $10,000 Lootbox</li>\\n <li><b>Rank 11:</b> $80,000 Cash</li>\\n <li><b>Rank 12:</b> $200,000 Cash</li>\\n <li><b>Rank 13:</b> $400,000 Cash</li>\\n</ul>\\n\\n<h3>Cashback</h3>\\n\\n<p>Battle Pass holders earn daily and weekly cashback on losses. Rates increase as you rank up:</p>\\n\\n<ul>\\n <li><b>Rank 1:</b> 1% Daily</li>\\n <li><b>Rank 2:</b> 2% Daily</li>\\n <li><b>Rank 3:</b> 3% Daily + 3% Weekly</li>\\n <li><b>Rank 4:</b> 4% Daily + 4% Weekly</li>\\n <li><b>Rank 5â13:</b> 5% Daily (Weekly increases up to 17% at Rank 13)</li>\\n</ul>\\n\\n<p>Daily cashback is credited every day. Weekly cashback is credited once per week. Both are based on your net losses.</p>\\n\\n<h2>Boosted RTP on Whale Originals</h2>\\n\\n<p>Battle Pass holders get a boosted RTP of up to <b>99%</b> on all Whale Originals games (Crash, Dice, Mines, Keno, Blackjack, Roulette, What the Duck?!, Crock Dentist). Without Battle Pass, the standard RTP is 96%.<
216/p>\\n\\n<h2>Seasons and Resets</h2>\\n\\n<p>Each Battle Pass season runs for approximately 90 days. When a season ends, your progress resets and a new season begins with fresh rewards. You'll need to purchase a new Battle Pass for each season.</p>\\n\\n<center><a href=\\"/rewards\\">GET BATTLEPASS NOW</a></center>\\n\\n<h2>Where to Find It</h2>\\n\\n<p>Everything lives on the Rewards page. From there you can purchase the Battle Pass, track your rank and level, see upcoming rewards, and claim what you've earned.</p>\\n\\n<h2>How to Claim Rewards</h2>\\n\\n<p>Rewards are claimed directly from the Rewards page. As you level up and rank up, your rewards appear ready to claim. $WHALE tokens go straight to your balance, Free Spins and Bonus Buys are activated for use, and Lootboxes land in your inventory.</p>\\n\\n<center><a href=\\"/rewards\\">GET BATTLEPASS NOW</a></center>","title":"Battlepass Season 5","description":"Here's what this season's Battlepass gives you","endDate":"Ends at 23:59 PM 06/30/2026"}},"token":{"title":"We are airdropping our first 10M $WHALE tokens.","heading":{"main":"We heard you loud and clear. We know how much you guys want $WHALE tokens to be released and we are here to deliver.","sub":"This is why we are announcing our first ever token airdrop - directly to you guys - our beloved community."},"headline":"$WHALE Token","body":{"main":"The $WHALE token will be on the GRAM blockchain and is Whale.ioâs native cryptocurrency with heavy ties to all of our projects to provide additional value to the community. While we are still working on the exact timeline of the $WHALE token release, we can tell you that itâs planned for Q3 of 2024.","sub":"And most importantly, $WHALE will be listed on cryptocurrency exchanges. This potential listing is going to significantly increase the token's visibility and accessibility, providing more opportunities for trading and liquidity to all token holders."},"howto":{"title":"How to Get your $WHALE Tokens","desc":"Claiming $WHALE tokens through the EARN program is a straightforward process, designed to be user-friendly and accessible to everyone. Hereâs a step-by-step guide:","step1":{"heading":"Join the EARN Program:","body":"Sign up to Whale.io to get your unique referral link & code. You only need a telegram account to sign up."},"step2":{"heading":"Get your link: ","body":"Go to the âEarnâ page and copy your unique referral link."},"step3":{"heading":"Invite Friends","body":"Send your referral link to friends via social media, email, or messaging apps."},"step4":{"heading":"Earn USDT & Tokens:","sub:h":"Double Reward: ","sub:b":"On top of that, each $1 USDT earned = 1 $WHALE Token earned. Even after claiming $WHALE tokens, the $1 USDT remains in your wallet.","updated":"When your friends use your referral link or code to sign up and play on @Whale, you earn 10% of the house edge on your friendâs bets and an extra 1% from all your friendsâ referrals. This bonus lasts for a lifetime.","body":"When your friends sign up and play games on @Whale using your referral link or code, you earn a 10% bonus from your friendsâ bets, plus an extra 1% from all your friendsâ referral bets. This bonus is permanent."},"step5":{"heading":"Claim your earnings:","body":"Your referral earnings and $WHALE tokens are updated daily and you can see them in the âEarnâ tab. While you can claim your USDT earnings daily, your $WHALE tokens will be available later."},"step6":{"heading":"Limited airdrop:","body":"while referral earnings are for lifetime, token airdrop stops once 10M tokens are released throughout our earnings program. Supply left is regularly updated on the âEarnâ page."}},"future":{"heading":"Future Plans and Developments","body":"While the current focus is on the launch and distribution of $WHALE tokens, we have ambitious plans for the future. Transparency is a big part of how we interact with our community and thatâs why we will release our roadmap publicly in the next few days."}},"level_up_christmas":{"title":"LevelUP: Christmas Free Spins","endDate":"Ends at 23:59 PM 06/01/2025"},"wtf":{"tribes":{"endDate":"Ends at 23:59 PM 31/12/2026","title":"TRIBES: Play together, play to earn!","description":"A live room where players pool funds and play to win bigger.","content":"<p>Tribes is a live room where players team up, pool funds, hunt bonus buys and share the outcome.\\nIt's faster, more rewarding, and built for serious players.</p>\\n\\n<h3>How It Works</h3>\\n<ul><li>A Tribe Leader creates a room.</li>\\n<li>Players join and deposit into a shared pool.</li>\\n<li>The Leader spins and everyone shares the result based on their stake.</li>\\n<li>Join or leave anytime. Your balance updates in real time.</li></ul>\\n\\n<h3>Lead. Earn More.</h3>\\n\\n<p>Tribe Leaders earn 10% of the house edge from the total room turnover.\\nThe more action your Tribe generates, the more you make.\\nYou're not just playing, you're profiting.</p>\\n\\n<h3>Play With Purpose</h3>\\n\\n<p>Every bet you make impacts the shared pool.\\nYou're not watching, you're involved.\\nPlay alongside top bettors, friends, or run your own crew.\\nWhether you lead or join, you're in the game with real stakes.</p>\\n\\n<h3>This Is Not a Game. It's a Unit.</h3>\\n\\n<p>Pick your room or launch one and lead. Buy bonuses like it's a team sport.\\nThis isn't regular spinning, this is how winners play.</p>\\n\\n<p>Play together. Play to earn.</p>\\n\\n<center><button href=\\"/tribes\\">TAP FOR TRIBES</center>"},"rewardssystem":{"title":"The New Rewards System","description":"Permanent levels, daily cashback up to 25%, weekly & monthly bonuses. All in one place.","endDate":"Always on","content":"<h3>REWARDS, REBUILT.</h3>\\n<p>Whale rewards just got a full reset. Not a tweak, not a \\"new and improved\\" sticker on the same old system. A ground-up rethink of how loyalty actually works.</p>\\n\\n<p>Here's the headline: <b>the level you reach, you keep.</b>
216 No resets. No decay. No watching your progress evaporate at the end of a season. You climb, you stay.</p>\\n\\n<h3>Daily Cashback â Up to 25%</h3>\\n<p>Cashback hits an all-time high at <b>25%</b> for top-tier players. And the rule that matters most hasn't changed: <b>no negative carryover.</b> Every day starts clean. Yesterday's session is yesterday's session â today you're back at zero with a fresh slate.</p>\\n<p>Simple math. Transparent math. The kind you can actually verify on your rewards page.</p>\\n\\n<h3>Weekly & Monthly Bonuses</h3>\\n<p>New to the system â two additional reward layers built on your wagering and activity:</p>\\n<ul><li><b>Weekly bonuses</b> â claimable every Monday</li>\\n<li><b>Monthly bonuses</b> â claimable on the 1st of each month</li></ul>\\n<p>No hidden criteria. No vague \\"loyalty tiers\\" that nobody can explain. Wager, play, claim. That's it.</p>\\n\\n<h3>One Page. Everything.</h3>\\n<p>Your progress, your cashback, your weekly and monthly bonuses, and every active offer â all on one page. No hunting through menus, no separate promo tabs, no mystery where your rewards went.</p>\\n\\n<center><a href=\\"/rewards\\">CHECK YOUR REWARDS</a></center>\\n\\n<h3>The Short Version</h3>\\n<ul><li>Levels are permanent â what you earn, you keep</li>\\n<li>Daily cashback up to 25%, no negative carryover</li>\\n<li>Weekly bonuses every Monday, monthly bonuses every 1st</li>\\n<li>All rewards and offers visible on one page</li>\\n<li>Clean, transparent, trackable</li></ul>\\n\\n<p>Your losses become your gains. Your progress stays yours.</p>\\n\\n<p><b>#SometimesLoseAlwaysWin</b></p>"},"earnprogram":{"title":"WTF is Earn?","description":"Whaleâs Earn Program Uncovered","endDate":"Ends at 23:59 PM 31/12/2026","content":"<p>Welcome to Whaleâs <a href='/earn'>Earn Program</a>, your gateway to multiple ways of earning crypto and USDT!</p>\\n\\n<p>You can claim your earnings anytime via the Earn page, where you can choose to play or withdraw your funds. No need to wait around for a payday.</p>\\n\\n<h3>ð¸ Ways to Earn</h3>\\n\\n<p><b>𩵠Refer a Friend:</b></p>\\n<ul><li>Share your unique referral link with friends.</li>\\n<li>Earn rewards when they play.</li></ul>\\n\\n<p><b>ðªð¼ Lead a Tribe:</b></p>\\n<ul><li>Create and lead your own tribe.</li>\\n<li>Earn 10% of the house edge from your roomâs turnover.</li>\\n<li>But WTF is a Tribe? <a href='/tribes'>Check it out here</a>.</li></ul>\\n\\n<p><b>ð Complete Missions:</b></p>\\n<ul><li><i>Coming soonâ¦</i></li></ul>\\n\\n<p>Now you know. Go check out the <a href='/earn'>Earn page</a>, and if you have any more questions, reach out to our Legends at Support, theyâre always here to help you.</p>"},"tokenairdrop":{"endDate":"Ends at 23:59 PM 31/03/2025"},"lootboxes":{"title":"Hereâs how you get it!","description":"Where Legends Unbox Greatness.","endDate":"Ends at 23:59 PM 31/12/2026"},"whaletoken":{"title":"$WHALE Token","description":"We are airdropping our first 10M $WHALE tokens.","endDate":"Ends at 23:59 PM 31/12/2026","content":"<h3>We are airdropping our first 10M $WHALE tokens!</h3>\\n\\n<p>We heard you loud and clear. We know how much you guys want $WHALE tokens to be released and we are here to deliver. This is why we are announcing our first ever token airdrop - directly to you guys - our beloved community.</p>\\n\\n<h3>$WHALE Token</h3>\\n\\n<p>The $WHALE token will be on the GRAM blockchain and is Whale.ioâs native cryptocurrency with heavy ties to all of our projects to provide additional value to the community. While we are still working on the exact timeline of the $WHALE token release, we can tell you that itâs planned for 2025.</p>\\n\\n<p>And most importantly, $WHALE will be listed on cryptocurrency exchanges. This potential listing is going to significantly increase the token's visibility and accessibility, providing more opportunities for trading and liquidity to all token holders.</p>\\n\\n<h3>How to Get your $WHALE Tokens</h3>\\n<video src=\\"/whale_explain.mp4\\" controls></video>\\n<p>Claiming $WHALE tokens through the EARN program is a straightforward process, designed to be user-friendly and accessible to everyone. Hereâs a step-by-step guide:</p>\\n\\n<ul><li>Join the EARN Program: Sign up to whale.io to get your unique referral link & code. You only need a telegram account to sign up.</li>\\n<li>Get your link: Go to the âEarnâ page and copy your unique referral link.</li>\\n<li>Invite Friends Send your referral link to friends via social media, email, or messaging apps.</li>\\n<li>Double Reward: On top of that, each $1 USDT earned = 1 $WHALE Token earned. Even after claiming $WHALE tokens, the $1 USDT remains in your wallet.</li>\\n<li>Claim your earnings: Your referral earnings and $WHALE tokens are updated daily and you can see them in the âEarnâ tab. While you can claim your USDT earnings daily, your $WHALE tokens will be available later.</li>\\n<li>Limited airdrop: while referral earnings are for lifetime, token airdrop stops once 10M tokens are released throughout our earnings program. Supply left is regularly updated on the âEarnâ page.</li></ul>\\n\\n<h3>Future Plans and Developments</h3>\\n<p>While the current focus is on the launch and distribution of $WHALE tokens, we have ambitious plans for the future. Transparency is a big part of how we interact with our community and thatâs why we have released our roadmap publicly. Check it out from the site menu!</p>"},"nftbridge":{"title":"Whale NFTs Are Traveling","description":"GRAM to SOLANA. NEW CHAIN. NEW GAME.","endDate":"Ends at 23:59 PM 31/12/2026","content":"<h3>ð¥ Whatâs going on?</h3>\\n\\n<p>The Whale project is evolving, weâre officially going cross-chain, and Solana is our new home. Solana isnât just faster. Itâs where the action is: massive NFT ecosystem, low gas fees, hyperactive marketplaces & big liquidity.</p>\\n\\n<p>And now, Whale NFTs are joining that party.</p>\\n\\n<h3>ð² Reveal Again. Gamble Again. Win Again.</h3>\\n\\n<p>Weâre giving you a shot to bridge your Whale NFT from GRAM to Solana, and when you do:</p>\\n<ul><li>You burn the original GRAM version.</li>\\n<li>You mint a fresh new Whale on Solana.</li>\\n<li>That new NFT comes with new traits and new value, but same ID.</li></ul></p>\\n\\n<p>Itâs not just a transfer, itâs a reveal all over again.</p>\\n\\n<p>Have a low-value Whale on GRAM? This is your shot to reroll and gamble for something rare. Weâre calling it NFT rebirth!</p>\\n\\n<h3>ð How do you bridge?</h3>\\n\\n<p><b>Connect GRAM Wallet:</b>\\nConnect your wallet that holds Whale NFTs in GRAM. Make sure thereâs enough to pay gas fees. Itâll be roughly 1 USDT to mint.</p>\\n\\n<p><b>Select Whales:</b>\\nSelect which NFTs you want to bridge. Decisions are final, donât do a upsy-daisy.<
216/p>\\n\\n<p><b>Add Solana address:</b>\\nCopy your Solana wallet address that supports NFTs.</p>\\n\\n<p><b>Bridge:</b>\\nFull send, donât look back. Take your Whales to the NFT Ocean. Itâll take a few minutes for newly minted NFT to appear in your SOL wallet.</p>\\n\\n<center><button href=\\"https://bridgemedaddy.com/\\">BRIDGE NOW, FLEX LATER ð¥</center>"},"whaletakesdubai":{"endDate":"Soonâ¦"},"casinojargon":{"title":"WTF Does That Mean?","description":"Casino terms, decoded. No BS. Just what you need to win smarter.","endDate":"Ends at 23:59 PM 31/12/2026","content":"<h3>RTP (Return to Player)</h3>\\n<p>The percentage a game is built to pay back. A 97% RTP means youâll get $97 back for every $100 bet, over time. Higher RTP means better edge.</p>\\n\\n<h3>Wagering Requirement</h3>\\n<p>The amount youâre forced to bet before you can withdraw bonus wins. A 30x on $100 means $3,000 in wagering. Not here. We donât do requirements. What you win is what you withdraw. Instantly.</p>\\n\\n<h3>Wager Multiplier</h3>\\n<p>The sneaky version of wagering requirements. 30x, 40x, all traps. At Whale, thereâs no rollover math. Just clean rewards you keep.</p>\\n\\n<h3>Cashback</h3>\\n<p>We pay you back for losing. Up to 25 percent every day. No strings. No wagering. Just real money back in your account.</p>\\n\\n<h3>Rakeback</h3>\\n<p>Play more, get a cut of the house edge. Mostly for poker and tables. The more volume you bring, the more you earn back.</p>\\n\\n<h3>Bonus Buy</h3>\\n<p>Pay to skip straight into the bonus round. High risk, high reward. Want bigger buys? Join a Tribe, pool your balance and go after the big hits as a team. Then share the win!</p>\\n\\n<h3>Free Spins</h3>\\n<p>Spins that donât cost anything and can still pay. At Whale, no traps. What you win is yours. Always.</p>\\n\\n<h3>Free Bets</h3>\\n<p>Use sportsbook credit to bet without risk. You keep the profit, not the stake. Perfect for smart shots.</p>\\n\\n<h3>Volatility</h3>\\n<p>High volatility means massive wins but fewer of them. Low volatility hits more often but pays smaller. Know your style and play it right.</p>\\n\\n<h3>House Edge</h3>\\n<p>The casinoâs built-in advantage. At Whale, we give you tools to fight it. Cashback. RTP. Smart play. Use them.</p>\\n\\n<h3>Max Withdrawals</h3>\\n<p>This is the cap some casinos place on how much you can cash out, even if you hit a massive win. Sounds rigged? It is. At Whale, thereâs no max withdrawal. You win big, you take it all. No caps. No delays. No nonsense.</p>"},"whalecup":{"title":"Whale Cup","description":"12 teams. Live CS matches. Watch and bet on the Whale Cup!","endDate":"Ends at 23:59 PM 07/22/2025","content":"<h2>Whale Cup: $20,000 CS Showdown</h2>\\n\\n<p>Bullets fly. Cash drops. And itâs all happening live. Whale is hosting an official CS tournament you didnât know you needed, and youâve got front-row seats.</p>\\n\\n<p>12 teams. $20,000 in prizes. All going down live. And you can catch every moment (and bet on it) right here on Whale.</p>\\n\\n<h3>Here's What You Can Do:</h3>\\n<ul>\\n <li><b>Watch the Whale Cup</b>: Stream every match directly on Whale Sportsbook</li>\\n <li><b>Bet the momentum</b>: Live odds shift with the game</li>\\n <li><b>Score a Freebet Bonus</b>: Watch the Kick Stream and get your code to score a Freebet!</li>\\n</ul>\\n\\n<center><a href=\\"/sportsbook?setIframePath=/csgo/tournaments/28884\\">WATCH ON WHALE & BET</a></center>\\n\\n<center><a href=\\"https://kick.com/whale-esports\\">WATCH ON KICK</a></center>\\n\\n<h3>Got a Freebet code?</h3>\\n<p>Lock it in now. Just enter your code.</p>\\n\\n<p><i>The tournament runs until 22nd of July, 2025. Donât miss the final headshots.</i></p>\\n\\n#SometimesLoseAlwaysWin #WhaleCup"},"cashback":{"title":"Up to 25% Cashback at Whale.io","description":"The Ultimate Crypto Casino Reward System","endDate":"Always on","content":"<h1>Cashback â Your Losses Work for You</h1>\\n<h2>Up to 25% Daily Cashback Based on Your Rank</h2>\\n\\n<h3>How Cashback Works</h3>\\n\\n<p><b>Daily Cashback</b> â Credited every day based on your previous day's net losses. The higher your rank, the more you get back.</p>\\n\\n<h3>Cashback by Rank</h3>\\n\\n<p>Your cashback rate grows as you climb through the ranks â all the way up to <b>25%</b> at the Whale tier:</p>\\n\\n<ul>\\n<li><b>Bronze 1:</b> 1%</li>\\n<li><b>Bronze 2:</b> 2%</li>\\n<li><b>Bronze 3:</b> 3%</li>\\n<li><b>Bronze 4:</b> 4%</li>\\n<li><b>Silver 1:</b> 5%</li>\\n<li><b>Silver 2:</b> 6%</li>\\n<li><b>Silver 3:</b> 7%</li>\\n<li><b>Silver 4:</b> 8%</li>\\n<li><b>Gold 1:</b> 9%</li>\\n<li><b>Gold 2:</b> 10%</li>\\n<li><b>Gold 3:</b> 11%</li>\\n<li><b>Gold 4:</b> 12%</li>\\n<li><b>Platinum 1:</b> 13%</li>\\n<li><b>Platinum 2:</b> 14%</li>\\n<li><b>Platinum 3:</b> 15%</li>\\n<li><b>Platinum 4:</b> 16%</li>\\n<li><b>Diamond 1:</b> 17%</li>\\n<li><b>Diamond 2:</b> 18%</li>\\n<li><b>Diamond 3:</b> 19%</li>\\n<li><b>Diamond 4:</b> 20%</li>\\n<li><b>Emerald 1:</b> 21%</li>\\n<li><b>Emerald 2:</b> 22%</li>\\n<li><b>Emerald 3:</b> 23%</li>\\n<li><b>Emerald 4:</b> 24%</li>\\n<li><b>Whale:</b> 25%</li>\\n</ul>\\n\\n<p><b>Maximum cashback: 25%.</b> That's a quarter of your losses coming straight back to you.</p>\\n\\n<h3>How Cashback Is Calculated</h3>\\n\\n<p>We use a simple, transparent formula:</p>\\n\\n<p><b>(Deposits - Withdrawals - Current Balance - Unsettled Bets) à Your Cashback %</b></p>\\n\\n<ul>\\n<li><b>Deposits:</b> Total funds you added to your account</li>\\n<li><b>Withdrawals:</b> Any money you cashed out</li>\\n<li><b>Current Balance:</b> What's left in your account</li>\\n<li><b>Unsettled Bets:</b> Bets still in progress</li>\\n<li><b>Your Cashback %:</b> Based on your current rank</li>\\n</ul>\\n\\n<h3>Example</h3>\\n\\n<p>Say you deposited $100, withdrew $20, have $10 left, no unsettled bets, and you're at Gold 1 with 9% cashback:</p>\\n\\n<p><b>($100 - $20 - $10 - $0) à 9% = $6.30</b></p>\\n\\n<p>That's <b>$6.30 in cashback</b> â real money, straight to your balance.</p>\\n\\n<h3>Fresh Start Daily</h3>\\n\\n<p>Every day starts fresh. Yesterday's results won't affect today's cashback â no penalties carried over.</p>\\n\\n<h3>Cashback Details</h3>\\n\\n<ul>\\n<li><b>Cashback</b> is calculated on your transactions from 00:00 to 23:59 UTC</li>\\n<li><b>Currency:</b> Paid in USDT</li>\\n<li><b>Minimum Payout:</b> 0.05 USDT (even small amounts count)</li>\\n<li><b>Cashback</b> â Claimable at <b>7:00 AM UTC</b></li>\\n<li><b>Where to Claim:</b> On the <b>Rewards page</b></li>\\n<li><b>Wagering:</b> Cashback must be wagered <b>once</b> before withdrawal</li>\\n<li><b>Deposit Timing:</b> Deposits must be made after 00:00 UTC and wagered the same day to qualify for daily cashback</li>\\n</ul>\\n\\n<h3>Troubleshooting</h3>\\n\\n<p>Not seeing your cashback? Common reasons:</p>\\n\\n<ul>\\n<li><b>No Deposit:</b> You need to have deposited to qualify</li>\\n<li><b>No Net Loss:</b> Cashback only applies if you had a net loss</li>\\n<li><b>Unsettled Bets:</b> Open bets at the end of the day reduce your eligible losses â settle them before the day ends</li>\\n<li><b>Deposit Timing:</b> Deposits made too late or not wagered same-day won't qualify</li>\\n<li><b>Technical Issues:</b>
216 Rare, but if you believe you qualify and don't see it â contact <b>support</b></li>\\n</ul>\\n\\n<h3>Don't Forget to Claim</h3>\\n\\n<p>Cashback must be <b>claimed within 24 hours</b> after it's released, or it expires. Don't leave money on the table.</p>\\n\\n<center><a href=\\"/rewards\\">CHECK YOUR CASHBACK</a></center>"},"whaleoriginals":{"title":"Whale Originals: Provably Fair Crypto Games","description":"The Future of Transparent Gaming","endDate":"Always on","content":"<h1>Whale Original Provably Fair Crypto Games: The Future of Transparent Gaming at Whale.io</h1>\\n\\n<h2>Introduction: Where Blockchain Meets Trust in Online Gaming</h2>\\n\\n<p>Transparency isn't just an extra feature in crypto gaming, but a must-have. Whale.io, the next-gen <a href=\\"/\\">crypto casino</a> that transitioned from Telegram to a full web platform in 2025, has set the new standard with its <a href=\\"/originals\\">Whale Original</a> provably fair games. These blockchain-audited games are the epitome of cutting-edge tech and player trust, delivering record breaking levels of transparency to online gaming.</p>\\n\\n<h2>What Are <a href=\\"/originals\\">Whale Original</a> Provably Fair Games?</h2>\\n\\n<p><a href=\\"/originals\\">Whale Originals</a> games are custom games designed exclusively for the Whale.io platform, constructed from the ground up with blockchain authentication as the foundation. Unlike regular online casino games where players must trust the operator's word, these games use cryptographic algorithms that allow players to independently verify every single game result.</p>\\n\\n<p>The provably fair system works through a cutting-edge but beautiful process:</p>\\n<ul>\\n<li><b>Pre-game Hash Generation:</b> The game computes a cryptographic hash of the outcome prior to every round</li>\\n<li><b>Player Seed Input:</b> Players may enter their own random seed that influences the result</li>\\n<li><b>Transparent Verification:</b> Players may mathematically verify that the outcome was not manipulated with either seeds after the game</li>\\n<li><b>Immutable Blockchain Records:</b> Results of the game are recorded on the blockchain, creating an immutable audit trail</li>\\n</ul>\\n\\n<h2>The Technology Behind the Trust</h2>\\n\\n<h3>Blockchain Integration and Smart Contracts</h3>\\n\\n<p>Whale.io leverages advanced blockchain technology, specifically designed for The Open Network (GRAM), to ensure each <a href=\\"/originals\\">Whale Original</a> game is run transparently. The platform's smart contracts perform game logic independently, with absolutely no possibility of backend manipulation. This integration ensures that:</p>\\n\\n<ul>\\n<li><b>Real-time Verification:</b> Real-time verification is easy for players to check results without waiting for third-party audits</li>\\n<li><b>Cryptographic Security:</b> All game data and transactions are secured using military-grade encryption</li>\\n<li><b>Decentralized Validation:</b> All game outcomes are verified by several nodes, hence no single point of failure</li>\\n<li><b>Gas-Free Transactions:</b> Thanks to GRAM optimization, players enjoy seamless gameplay without transaction fees</li>\\n</ul>\\n\\n<h3>Unlock 99% RTP with Battlepass</h3>\\n\\n<p><a href=\\"/originals\\">Whale Original</a> games can reach up to <b>99% Return to Player (RTP)</b> when you play with <a href=\\"/rewards\\">Battlepass</a>. That means more value back over time, on top of provable fairnessâso youâre not just trusting the game, youâre verifying it.</p>\\n\\n<p>Transparency doesnât stop at outcomes. Players can also access:</p>\\n<ul>\\n<li>Historical RTP data for all games</li>\\n<li>Live payout rates</li>\\n<li>Community-wide winning percentages</li>\\n<li>Performance data per game</li>\\n</ul>\\n\\n<h2>The Competitive Edge: Why Players Choose Whale Original</h2>\\n\\n<h3>Instant Verification vs. Traditional Audits</h3>\\n\\n<p>Traditional online casinos rely on periodic third-party audits that players rarely see. Whale Original games flip this model around:</p>\\n\\n<p><b>Traditional Casino Model:</b></p>\\n<ul>\\n<li>Quarterly or monthly audits</li>\\n<li>Limited transparency</li>\\n<li>Trust-based model</li>\\n<li>Delayed dispute resolution</li>\\n</ul>\\n\\n<p><b>Whale Original Model:</b></p>\\n<ul>\\n<li>Instant, on-demand verification</li>\\n<li>Complete transparency</li>\\n<li>Mathematics-based trust</li>\\n<li>Instant dispute resolution</li>\\n</ul>\\n\\n<h3>Integration with Whale.io's Ecosystem</h3>\\n\\n<p>
216Whale Original games fit naturally into Whale.io's broader platform features:</p>\\n<ul>\\n<li><b><a href=\\"/thedailyfinn/promotion/unlock-your-rewards-dive-into-daily-cashbacks-at-whale\\">Daily Cashback</a> System:</b> Up to 25% cashback applies on every Whale Original</li>\\n<li><b><a href=\\"/tribes\\">Tribes</a> Compatibility:</b> Play with your Tribe</li>\\n<li><b><a href=\\"/rewards\\">Battlepass</a> Missions:</b> Complete specific challenges in Whale Original games</li>\\n<li><b>Multi-Currency Support:</b> Play with WHALE, GRAM, BTC, ETH, SOL, and others</li>\\n</ul>\\n\\n<h2>Security and Fair Play Guarantees</h2>\\n\\n<h3>Advanced Anti-Fraud Measures</h3>\\n\\n<p>Whale.io implements a few layers of security for Whale Original games:</p>\\n<ul>\\n<li><b>Real-Time Monitoring:</b> AI-enabled systems warn suspicious patterns</li>\\n<li><b>Smart Contract Audits:</b> Third-party code audits on a routine schedule</li>\\n<li><b>Bug Bounty Program:</b> Community-driven security improvements</li>\\n<li><b>Cold Storage Integration:</b> Safe fund management</li>\\n</ul>\\n\\n<h3>Regulatory Compliance</h3>\\n\\n<p>Operating under the <b>Curaçao Gaming Control Board license (OGL/2024/1254/0648)</b>, Whale Original games comply with strict regulatory standards:</p>\\n<ul>\\n<li>Periodic compliance audits</li>\\n<li>Player protection mechanisms</li>\\n<li>Responsible gambling utilities</li>\\n<li>Transparent terms and conditions</li>\\n</ul>\\n\\n<h2>Joining Whale Original Games</h2>\\n\\n<h3>Easy Onboarding Process</h3>\\n\\n<ol>\\n<li><b>Create Your Account:</b> No lengthy KYC for casual players</li>\\n<li><b>Make Your First Deposit:</b> As low as 1 GRAM (~$5)</li>\\n<li><b>Select Your Game:</b> Discover the Whale Original library</li>\\n<li><b>Check Your First Win:</b> Use the built-in verification feature</li>\\n</ol>\\n\\n<h3>New Player Tips</h3>\\n\\n<ul>\\n<li><b>Start Small:</b> Experiment with the verification system using small bets</li>\\n<li><b>Join a Tribe:</b> Take notes from experienced players</li>\\n<li><b>Track Your Stats:</b> Use the platform's analytics tools</li>\\n</ul>\\n\\n<h2>The Future of Whale Original Games</h2>\\n\\n<h3>What's to Come?</h3>\\n\\n<p><a href=\\"/\\">Whale.io</a> continues to innovate with planned features including:</p>\\n<ul>\\n<li><b>Cross-Chain Compatibility:</b> Expanded blockchain support</li>\\n<li><b>Player-Created Games:</b> Community-designed provably fair titles</li>\\n<li><b>Enhanced Social Features:</b> Leagues and tournaments</li>\\n</ul>\\n\\n<h3>Industry Impact</h3>\\n\\n<p>Whale Original games are setting the bar that others are eager to catch up to. The incorporation of:</p>\\n<ul>\\n<li>Instant verification</li>\\n<li>High RTP percentages</li>\\n<li>Gas-free transactions</li>\\n<li>Social gaming features</li>\\n</ul>\\n<p><i>...is revolutionizing player expectations in the whole crypto gambling industry.</i></p>\\n\\n<h2>Why Whale Original Games are Important for the Crypto Gambling Revolution</h2>\\n\\n<p>The significance of Whale Original provably fair games extends well beyond just <a href=\\"/\\">Whale.io</a>. They represent a paradigm shift in online gambling, where:</p>\\n<ul>\\n<li><b>Trust Turns into Math:</b> Blind trust in operators is a thing of the past</li>\\n<li><b>Players Take Actual Control:</b> Verify every outcome yourself</li>\\n<li><b>Innovation Drives Competition:</b> Pushing the entire industry forward</li>\\n<li><b>Blockchain Delivers Its Promise:</b> Realistic application of decentralized tech</li>\\n</ul>\\n\\n<h2>Conclusion: The New Gold Standard in Crypto Gaming</h2>\\n\\n<p>Whale Original provably fair online games on <a href=\\"/\\">Whale.io</a> are not just another gaming option. It's a glimpse into the future of online gaming. With the marriage of mathematical openness, blockchain technology, and engaging gameplay, these games offer what gamers have always dreamed of: <b>absolute confidence that they are being dealt a level playing field</b>.</p>\\n\\n<p>With its instant verification, gas-free transactions on GRAM, and support for <a href=\\"/\\">Whale.io</a>'s innovative features like <a href=\\"/thedailyfinn/promotion/unlock-your-rewards-dive-into-daily-cashbacks-at-whale\\">Daily Cashback</a> and <a href=\\"/tribes\\">Tribes</a>, Whale Original games provide the best gaming experience. Whether you're a seasoned crypto gambler or new to blockchain gaming, these provably fair games provide the perfect blend of entertainment, transparency, and possible winnings.</p>\\n\\n<p>And as the platform expands from its humble roots on Telegram to become a global web-based giant of <b>15 million+ users</b>, Whale Original games are a testament to technology being created first and always for the player. In an era where trust is built through math and not marketing, <i><a href=\\"/\\">Whale.io</a>'s Whale Original games are the new gold standard</i>.</p>\\n\\n<p><b>Ready to get a taste of truly honest gaming? Join the 170,000+ players every month experiencing the future of crypto gambling at <a href=\\"/\\">Whale.io</a>.</b></p>"},"sweetrushbonanza":{"title":"Sweet Rush Bonanza","description":"The Ultimate Guide to Sweetest Slot Adventure","endDate":"Always on","content":" <h1><a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a>: The Ultimate Guide to <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a>'s Sweetest Slot Adventure</h1>\\n\\n <h2>Introduction: Dive into the Sugar-Coated World of <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a></h2>\\n <p><a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a> has taken the <a href=\\"/\\">online casino</a> world by storm, combining <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a>'s signature gameplay mechanics with an irresistible candy-themed adventure. This comprehensive guide explores everything you need to know about this delightful slot game, from its mouth-watering features to winning strategies that could boost your gameplay experience.</p>\\n\\n <h2>What is <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a>?</h2>\\n <p><a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a> is a 6-reel, cluster-pays slot game developed by <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a>, one of the industry's leading game providers. Set in a colorful candy wonderland, this slot offers players an engaging experience with its unique tumbling reels mechanism and explosive bonus features.</p>\\n \\n <h3>Key Game Specifications:</h3>\\n <ul>\\n <li><b>Developer</b>: <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a></li>\\n <li><b>Reels</b>: 6x5 grid layout</li>\\n <li><b>Paylines</b>: Cluster pays system</li>\\n <li><b>Volatility</b>: High</li>\\n <li><b>Max Win</b>: Up to 21,100x your stake</li>\\n <li><b>Min Bet</b>: $0.20</li>\\n <li><b>Max Bet</b>: $100</li>\\n </ul>\\n\\n <h2><a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a> Features That Make It Special</h2>\\n \\n <h3>1. Tumbling Reels Mechanism</h3>\\n <p>The tumbling reels feature removes winning symbols after each payout, allowing new symbols to fall into place. This creates multiple winning opportunities from a single spin, maximizing your potential returns.</p>\\n\\n <h3>2. Cluster Pays System</h3>\\n <p>Instead of traditional paylines, <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a> uses a cluster pays system. You need at least 8 matching symbols anywhere on the reels to form a winning combination, making every spin potentially rewarding.</p>\\n\\n <h3>3. Multiplier Symbols</h3>\\n <p>Rainbow-colored bomb symbols act as multipliers, ranging from 2x to 100x. These can significantly boost your winnings when they appear during the base game or bonus rounds.</p>\\n\\n <h3>4. Free Spins Bonus Round</h3>\\n <p>Landing 4 or more scatter symbols (lollipop icons) triggers the free spins feature. During this bonus:</p>\\n <ul>\\n <li>You receive 10 free spins initially</li>\\n <li>Multiplier symbols remain sticky throughout the feature</li>\\n <li>Additional scatters can retrigger more free spins</li>\\n <li>All multipliers are added together for massive win potential</li>\\n </ul>\\n\\n <h2>How to Play <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a>: Step-by-Step Guide</h2>\\n \\n <h3>Getting Started:</h3>\\n <ol>\\n <li><b>Set Your Bet</b>: Choose your stake between $0.20 and $100</li>\\n <li><b>Spin the Reels</b>: Click the spin button to start your candy adventure</li>\\n <li><b>
216Form Clusters</b>: Match 8 or more identical symbols for wins</li>\\n <li><b>Watch for Features</b>: Keep an eye out for multipliers and scatters</li>\\n <li><b>Trigger Bonuses</b>: Collect 4+ scatters for the free spins round</li>\\n </ol>\\n\\n <h3>Symbol Values and Payouts:</h3>\\n <ul>\\n <li><b>High-Value Symbols</b>: Red heart, blue square, green triangle, purple diamond</li>\\n <li><b>Medium-Value Symbols</b>: Orange pentagon, yellow star</li>\\n <li><b>Low-Value Symbols</b>: Various colorful candies</li>\\n <li><b>Special Symbols</b>: Lollipop scatters, rainbow bomb multipliers</li>\\n </ul>\\n\\n <h2>Winning Strategies for <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a></h2>\\n \\n <h3>1. Bankroll Management</h3>\\n <p>With high volatility, <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a> can have extended dry spells. Set a budget and stick to it, ensuring you can weather the variance while waiting for big wins.</p>\\n\\n <h3>3. Bonus Buy Feature</h3>\\n <p>Some versions offer a bonus buy option, allowing you to purchase direct access to the free spins round. Consider this feature carefully, as it requires a significant investment upfront.</p>\\n\\n <h3>4. Patience During Base Game</h3>\\n <p>The real excitement happens during the free spins bonus. Be patient during base game play and focus on triggering the bonus round where the biggest wins await.</p>\\n\\n <h2>Why <a href=\\"/casino/pragmaticplay/pgp_sweetrushbonanza\\">Sweet Rush Bonanza</a> Stands Out Among <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a> Slots</h2>\\n \\n <h3>Visual Appeal and Theme</h3>\\n <p>The game's vibrant candy theme creates an immersive experience that appeals to players of all ages. The high-quality graphics and smooth animations enhance the overall gaming experience.</p>\\n\\n <h3>Innovative Mechanics</h3>\\n <p>The combination of tumbling reels, cluster pays, and sticky multipliers creates a unique gameplay experience that keeps players engaged spin after spin.</p>\\n\\n <h3>Mobile Optimization</h3>\\n <p>Sweet Rush Bonanza is fully optimized for mobile play, ensuring seamless gameplay across all devices without compromising on quality or features.</p>\\n\\n <h2>Sweet Rush Bonanza vs. Other Popular Slots</h2>\\n \\n <h3>Comparison with Sweet Bonanza</h3>\\n <p>While sharing similar themes, Sweet Rush Bonanza offers enhanced features and improved graphics compared to its predecessor, making it a worthy upgrade for fans of the original.</p>\\n\\n <h3>Against Other <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a> Titles</h3>\\n <p>Sweet Rush Bonanza holds its own against other popular <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a> slots like Gates of Olympus and The Dog House, offering comparable RTP and exciting bonus features.</p>\\n\\n <h2>Tips for Maximizing Your Sweet Rush Bonanza Experience</h2>\\n \\n <h3>1. Demo Play First</h3>\\n <p>Always try the demo version before playing with real money to understand the game mechanics and features.</p>\\n\\n <h3>2. Set Win and Loss Limits</h3>\\n <p>Establish clear limits for both wins and losses to maintain responsible gambling habits.</p>\\n\\n <h3>3. Take Advantage of Casino Bonuses</h3>\\n <p>Use welcome bonuses and free spins promotions to extend your playing time and increase winning opportunities.</p>\\n\\n <h3>4. Play During Peak Hours</h3>\\n <p><i>Some players believe that playing during peak casino hours can improve their chances, though this remains unproven.</i></p>\\n\\n <h2>The Future of Sweet Rush Bonanza</h2>\\n <p>As <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a> continues to innovate, we can expect potential updates and variations of Sweet Rush Bonanza. The developer's commitment to quality ensures that this slot will remain popular among players worldwide.</p>\\n\\n <h2>Conclusion: Is Sweet Rush Bonanza Worth Playing?</h2>\\n <p>Sweet Rush Bonanza delivers an exceptional slot gaming experience with its engaging theme, innovative features, and substantial win potential. The combination of high-quality graphics, exciting bonus rounds, and fair RTP makes it an excellent choice for both casual players and high-rollers.</p>\\n \\n <p>Whether you're a fan of <a href=\\"/casino/pragmaticplay\\">Pragmatic Play</a> slots or new to the candy-themed gaming genre, Sweet Rush Bonanza offers entertainment value and winning potential that's hard to resist. Remember to always gamble responsibly and within your means.</p>\\n \\n <p><b>Ready to experience the sweet rush?</b> Play Sweet Rush Bonanza at Whale.io and discover why this Pragmatic Play creation has become a player favorite worldwide. Enjoy instant crypto withdrawals, provably fair gaming, and up to 25% daily cashback on your losses.</p>"},"crocknft":{"title":"Crock NFT","description":"Real Yield, Real Airdrops, Real Whales","endDate":"Always on","content":"<h1>Crock NFT: Built on Numbers, Not Promises</h1>\\n\\n<p>Most NFT collections sell you a story. <b>Crock NFT is built on numbers.</b></p>\\n\\n<p>Backed by the performance of our Whale Originals game, <b>Crock Dentist</b>, this collection has already delivered <b>multiple on-chain airdrops in under two months</b>âwith early holders now in profit.</p>\\n\\n<p>
216This page walks you through what Crock NFT is, how the airdrops work, and why serious players and collectors are quietly stacking.</p>\\n\\n<h2>What Is Crock NFT?</h2>\\n<ul>\\n <li>Limited collection tied directly to the action on <b>Crock Dentist</b>, one of Whale.ioâs flagship Originals.</li>\\n <li>Each NFT = a share of an airdrop pool funded by real play on Crock Dentist.</li>\\n <li>Every time players spin, part of the house edge flows into that pool.</li>\\n <li>At intervals, the pool is split among NFT holdersâautomatically, straight to your wallet.</li>\\n <li>Crock NFT proves that RWA (real world assets) tokens are the thing to watch in crypto </li>\\n <li>No promises. No âsomedayâ roadmap. Just:\\n <ul>\\n <li>A live game</li>\\n <li>Transparent on-chain airdrops</li>\\n <li>Payouts already made</li>\\n </ul>\\n </li>\\n</ul>\\n\\n<h2>Airdrop #1 â The Proof It Works</h2>\\n<ul>\\n <li><b>Date:</b> 2.11.25</li>\\n <li><b>Total turnover shared:</b> $5,017.94 (27.11 SOL)</li>\\n <li><b>Accounts paid:</b> 143</li>\\n <li><b>Total NFTs:</b> 266</li>\\n <li><b>Avg per NFT:</b> $18.86</li>\\n <li><b>Avg per account:</b> $35</li>\\n <li>This was a live testâreal money, real walletsâbefore the collection was even close to sold out.</li>\\n</ul>\\n\\n<h2>Airdrop #2 â The âOkay, This Is Seriousâ Moment</h2>\\n<ul>\\n <li><b>Date:</b> 18.11.25</li>\\n <li><b>Total sent:</b> $48,788.41 (345.46 SOL)</li>\\n <li><b>Holders paid:</b> 161</li>\\n\\n\\n <li>Almost 10x bigger than the first airdrop</li>\\n <li>One holder (79 NFTs) received 58 SOL in a single drop</li>\\n <li>Early buyers (as low as $100/NFT) are now in profit after just 3 weeks</li>\\n</ul>\\n\\n<h2>Airdrop #3 â The Streak Continues</h2>\\n<ul>\\n <li><b>Date:</b> 22.12.25</li>\\n <li><b>Total sent:</b> $47,552.07 (377.52 SOL)</li>\\n <li><b>Holders paid:</b> 142</li>\\n <li>Nearly 10x bigger than the first airdrop and 30 more SOL than 2nd airdrop</li>\\n <li><b>Top holder got </b> 64.5 SOL with 83 NFTs</li>\\n</ul>\\n\\n<h2>Where The Money Comes From</h2>\\n<ul>\\n <li><b>Crock Dentist:</b> 3% house edge (97% RTP; 99% with Battlepass) fuels the pool</li>\\n <li>\\n <b>How it works:</b>\\n <ul>\\n <li>Players spin Crock Dentist on Whale.io</li>\\n <li>Each spin grows the airdrop pool</li>\\n <li>100% of the funds earned by Whale from the game are sent to NFT holders via Airdrop</li>\\n <li>At intervals, the pool is split among NFT holders (in SOL, soon $WHALE)</li>\\n <li>No claiming neededâairdrops are sent automatically to wallet with NFTs</li>\\n </ul>\\n </li>\\n <li>The more players spin, the bigger the pool. The more NFTs you hold, the bigger your share each time.</li>\\n</ul>\\n\\n<h2>One of the Most Expensive Mints in the MarketâFor a Reason</h2>\\n<ul>\\n <li>Most NFT mints: $10â$50</li>\\n <li>\\n <b>Crock NFT:</b>\\n <ul>\\n <li>Started at $100/NFT</li>\\n <li>Now fixed at $500/NFT on Whale.io</li>\\n <li>Secondary market (Magic Eden): ~$400+</li>\\n <li>Over 500 NFTs already minted</li>\\n <li>âNFT whaleâ with 91 NFTs and still buying</li>\\n </ul>\\n </li>\\n</ul>\\n\\n<h2>Crock Dentist: The Engine Behind It All</h2>\\n<ul>\\n <li><b>Total to date:</b> $7.5M+</li>\\n <li>Every spin feeds the airdrop pool</li>\\n <li>Three airdrops paid outânext pool forming in real time</li>\\n <li>Track everything live on Whale.io dashboards and on-chain</li>\\n</ul>\\n\\n<h2>Why Whales Are Quietly Stacking</h2>\\n<ul>\\n <li>Airdrops already live and growing</li>\\n <li>Crock Dentist action is strong</li>\\n <li>Collection supply is capped at 1,000</li>\\n <li>Mint is open at $500/NFT (secondary is cheaper for now)</li>\\n <li>Once mint closes, secondary is the only way in</li>\\n</ul>\\n\\n<h2>Minting Crock NFT</h2>\\n<ul>\\n <li><b>Mint on Whale.io:</b> $500/NFT, limited supply, battlepass Exclusive</li>\\n <li><b>Buy on Magic Eden:</b> Floor ~$400+, good for deals or specific IDs</li>\\n</ul>\\n\\n<h2>Why Crock NFT Matters</h2>\\n<ul>\\n <li>Crypto is full of âfuture utilityâ promises. <b>Crock NFT is different:</b></li>
216\\n <li>Itâs live</li>\\n <li>Itâs already paid three on-chain airdrops</li>\\n <li>Early holders are in profit after weeks, not years</li>\\n <li>All key data is publicâtrack, verify, decide</li>\\n</ul>\\n\\n<p>If you want NFTs backed by actual numbers instead of pure speculation, <b>Crock NFT is worth a closer look.</b></p>\\n\\n<p>Mint & info: <a href=\\"https://whale.io/nft\\">whale.io/nft</a><p>\\n <p>Secondary market: <a href=\\"https://magiceden.io/marketplace/crock\\">Magic Eden</a>\\n</p>"},"whalenft":{"title":"$WHALE Token-Backed NFTs","description":"A Smarter Way to Hold and Trade","endDate":"Always on","content":"<h1>$WHALE Token-Backed NFTs: A Smarter Way to Hold and Trade</h1>\\n\\n<p>The $WHALE ecosystem just launched one of its cleanest upgrades yet: <b>Token-Backed NFTs</b> on Whale.io. These are NFTs that lock a fixed amount of $WHALE tokens on-chain and let you treat them like fully tradable, redeemable assets. Think of them as a hybrid between collectibles and wrapped tokens â with zero trust issues and instant liquidity.</p>\\n\\n<h2>How It Works</h2>\\n<ul>\\n <li>Go to mintwhale.io</li>\\n <li>Connect your Whale.io account and a Solana Wallet</li>\\n <li>Choose how many $WHALE you want to lock (min 100k $whale)</li>\\n <li>Mint â your tokens are turned into tradable NFTs</li>\\n <li>Trade the NFTs freely on Magic Eden or any Solana marketplace</li>\\n <li>Convert NFTs back to $WHALE on mintwhale.io â for free, instantly, and 1:1</li>\\n</ul>\\n\\n<p>Every NFT is backed <b>1:1</b>, fully verifiable on-chain, and the backing amount never changes. Rarity (Titan Blue, Satin Chrome, Signature Gold) are based on the amount locked.</p>\\n\\n<h2>Why This Actually Matters</h2>\\n<ul>\\n <li>Existing holders can finally trade their stacks on pre-market</li>\\n <li>New users can buy $WHALE instantly on secondary markets</li>\\n <li>You keep earning battlepass and platform rewards and can mint them into tradable cards</li>\\n <li>No more âpaper handsâ â sell the NFT whenever you want and true believers will pick them up </li>\\n</ul>\\n\\n<p>In short, itâs a clean liquidity bridge that works both ways: tokens â NFTs â tokens, with full transparency and no middleman.</p>\\n\\n<p>Whether youâre stacking for the long term or just want more flexibility, $Whale NFTs is the ship you've been waiting for to get in the $WHALE ecosystem at.</p>\\n\\n<center><a href=\\"https://mintwhale.io/\\">MINT HERE</a></center>"}},"trash":{"dropsandwins":{"title":"$2,000,000 in Cash","description":"Weekly Wheel Drops & Daily Tournaments","endDate":"Ends at 23:59 PM 3/4/2027","content":"<h2>ð¥ DROPS & WINS: WINTER EDITION ð¥</h2>\\n<p>Spin the right slot, stack up your win multipliers, and rake in the rewards all winter long. Over 50,000 weekly prizes are up for grabs in Daily Tournaments and Weekly Wheel Drops!</p>\\n<h3>ð¥ WHATâS IN IT FOR YOU?</h3>\\n<ul>\\n <li><b>105x Daily Tournaments:</b> â¬20,000 daily, split across 500 real cash prizes.</li>\\n <li><b>15x Weekly Wheel Drops:</b> â¬350,000 total! Hit a drop and grab multipliers, instant bonuses, or Free Spins.</li>\\n</ul>\\n<h3>ð¯ HOW TO WIN</h3>\\n<h4>DAILY TOURNAMENTS</h4>\\n<p>Stack up your win multipliersâthe higher your win vs your bet, the better your score.</p>\\n<ul>\\n <li>Only your first 5,000 bets count.</li>\\n <li>Minimum bet: â¬0.15 (or equivalent).</li>\\n <li>Real cash prizes, no wagering traps.</li>\\n</ul>\\n<h4>WEEKLY WHEEL DROPS</h4>\\n<p>Collect 3 wheel pieces while playing: Unlock the wheel, spin, and win!</p>\\n<ul>\\n <li>Every real-money spin counts, no minimum bet.</li>\\n <li>Prizes up to 100,000x your bet, Free Spins, or instant bonuses.</li>\\n <li>All prizes are wager-free.</li>\\n</ul>\\n<h3>ð° PARTICIPATING GAMES</h3>\\n<p>Pragmaticâs greatest hits and new releases. Gates of Olympus, Sweet Bonanza, Sugar Rush, Big Bass Splash, The Dog House Megaways, Zeus vs Hades, and dozens more.</p>\\n<p><i>Full list includes:</i> Gates of Olympus 1000, Sweet Bonanza 1000, Starlight Princess 1000, Big Bass Bonanza 1000, Fruit Party, Sugar Ru
216sh, Wild West Gold, Gem Fire Fortune, Temple Guardians, and more fan-favorites.</p>\\n<h3>â¡ WHEN?</h3>\\n<p>Every week from <b>Wednesday 19:01 CEST to the next Wednesday 18:59 CEST</b>. Wheel Drops and Daily Tournaments run side by side.</p>\\n<h3>ð¡ PRO TIP:</h3>\\n<p>Check the leaderboard, collect those wheel pieces, and play daily to lock in your shot at thousands of prizes.</p>"},"kashdrop":{"title":"Kalamba Games: Kash Drops","description":"Up to â¬10,000,000","endDate":"Ends at 23:59 PM 09/30/2026","content":"<h>Kalamba Games: Kash Drops â Up to â¬10,000,000</h>\\n<p>Play eligible Kalamba slots and hit <b>random Kash Drops</b> prizes â credited <b>automatically</b> to your account.</p> <p><b>Promotion period:</b> 5 March 2026 00:00 (GMT+0) â 30 September 2026 23:59 (GMT+0)</p> <p><b>Markets:</b> MGA and .COM<h>Kalamba Games: Kash Drops â Up to â¬10,000,000</h>\\n<p>Spin eligible Kalamba slots and get hit with <b>random Kash Drops</b> prizes â straight into your account. No missions. No grind. Just play and let the drops find you.</p>\\n<h>How to Get Drops</h>\\n<ul> <li>Pick any slot from the <b>Promotion Games</b> list</li> <li>Bet <b>â¬0.50+</b> (or equivalent)</li> <li>Every <b>winning spin</b> has a chance to trigger a Kash Drop</li> </ul>\\n<h>What You Can Win</h>\\n<p>There are prizes flying around all promo long, with drops ranging from smaller hits to bigger jackpots â and the exact prize values are shown <b>in-game</b> on the promo panel.</p>\\n<h>Good to Know</h>\\n<ul> <li>Prizes are <b>random</b> and paid <b>automatically</b></li> <li>One spin = one chance (each prize can only be triggered once)</li> <li>If any prizes donât drop in time, they roll into the next round â so nothing gets wasted</li> </ul> <p><b>Open the Promotion Games list, start spinning, and catch your Kash Drop.</b></p>"},"worldcupseries":{"title":"â¬300,000 World Cup Series by Galaxsys","description":"6 tournaments. 14 days each. â¬50,000 per round. Every bet moves you up the leaderboard.","content":"<h2>â¬300,000. Six Rounds. One Leaderboard Per Round.</h2>\\n<p>The Galaxsys World Cup Series is live â and it's not slowing down until August. Six back-to-back tournaments, each loaded with a â¬50,000 prize pool. No fluff, no complicated rounds. Just bet, climb, and collect.</p>\\n\\n<h3>How It Works</h3>\\n<p>Play any qualifying Galaxsys game. Every real-money bet earns you leaderboard points â the more you wager, the higher you climb. Each tournament runs for 14 days with a fresh leaderboard. Top 300 players per tournament get paid.</p>\\n\\n<p><strong>Points formula:</strong> Points = Amount Wagered. Bet â¬1, earn 1 point. Bet â¬1.50, earn 1.5 points. Simple.</p>\\n\\n<h3>Tournament Schedule</h3>\\n<p>All tournaments start at 12:00 PM UTC and end at 11:50 PM UTC.</p>\\n<ul>\\n<li>Serie #1 â 11 May to 25 May 2026</li>\\n<li>Serie #2 â 25 May to 8 June 2026</li>\\n<li>Serie #3 â 8 June to 22 June 2026</li>\\n<li>Serie #4 â 22 June to 6 July 2026</li>\\n<li>Serie #5 â 6 July to 20 July 2026</li>\\n<li>Serie #6 â 20 July to 3 August 2026</li>\\n</ul>\\n\\n<h3>Qualifying Games</h3>\\n<p>Crash, slots, and everything in between â all from the Galaxsys portfolio:</p>\\n<p>Crash / Fast Games: Maestro, Rocketon, Tower Rush, Ninja Crash, Chicken Crash</p>\\n<p>Slots: FigoAl, Gangsta Piggy, Olympian Legends, Gates of Asgard, Fruity Wilds</p>\\n<p>Other: PlinkoMan, Bingo Star</p>\\n\\n<h3>Prize Pool â â¬50,000 Per Tournament</h3>\\n<ul>\\n<li>1st â â¬3,000</li>\\n<li>2nd â â¬1,900</li>\\n<li>3rd â â¬1,600</li>\\n<li>4thâ6th â â¬1,500 to â¬1,300</li>\\n<li>7thâ100th â â¬1,200 down to â¬100</li>\\n<li>101stâ300th â â¬50 to â¬30</li>\\n</ul>\\n<p>All prizes paid as cash. No wagering requirements. Paid within 72 hours after each tournament ends.</p>\\n\\n<h3>Rules</h3>\\n<ul>\\n<li>Real-money bets only. Free spins don't count.</li>\\n<li>Minimum qualifying bet: â¬0.20 equivalent.</li>\\n<li>Buy Feature counts as one spin â price = points.</li>\\n<li>Tied scores? Whoever got there first ranks higher.</li>\\n<li>Changing currency mid-tournament may reset your progress.</li>\\n</ul>\\n\\n<p>No entry fee. No opt-in. Just play and climb.</p>","endDate":"August 3, 2026"},"weekendclash":{"title":"â¬1,000,000 Weekend Clash by Endorphina","de
216scription":"6 weekends. 6 different mechanics. 130,000 prizes. â¬1,000,000 total. Score big every Friday to Monday.","endDate":"July 20, 2026","content":"<h2>â¬1,000,000. Six Weekends. Six Ways to Win.</h2><p>The Endorphina Weekend Clash is here â and it hits different every Friday. Six back-to-back weekend tournaments, each with its own scoring mechanic and prize pool. From cumulative multipliers to highest single win, every clash rewards a different kind of player. Total prize pool: â¬1,000,000 across 130,000 winners.</p><h3>How It Works</h3><p>Each Clash runs Friday to Monday (12:00 PM CET to 12:00 PM CET). Play any of the 23 qualifying Endorphina slots. How you score depends on which Clash is live â multipliers, total bet, total win, or highest single hit. Top performers get paid.</p><h3>The Six Clashes</h3><ul><li><strong>Clash 1: Big Kickoff</strong> â 12â15 June | Win Multiplier Cumulative | â¬250,000 | 30,000 winners</li><li><strong>Clash 2: Hot Battlefield</strong> â 19â22 June | Highest Win Multiplier | â¬150,000 | 20,000 winners</li><li><strong>Clash 3: Possession Clash</strong> â 26â29 June | Total Bet | â¬100,000 | 15,000 winners</li><li><strong>Clash 4: No Second Chance</strong> â 3â6 July | Total Win | â¬100,000 | 15,000 winners</li><li><strong>Clash 5: Winning Streak</strong> â 10â13 July | Highest Win Multiplier | â¬150,000 | 20,000 winners</li><li><strong>Clash 6: Final Knock-Out</strong> â 17â20 July | Win Multiplier Cumulative | â¬250,000 | 30,000 winners</li></ul><h3>Qualifying Games (23 Endorphina Slots)</h3><p>2021 Hit Slot, 2025 Hit Slot, 3 Coin Towers, 3 Royal Dracos, 3 Witch Pots, Bad Santa, Book Of Santa, Burning Coins 20, Burning Coins 40, Chance Machine 20, Clover Flames, Crown Coins, Football 2026, Fortune Capybara, Fortune Chests, Hell Hot 100, Jade Coins, Joker Stoker, Lucky Streak 1000, Lucky Streak 3, Thunder Crown, Ultra Fresh, Wild Love.</p><h3>Top Prizes Per Clash</h3><ul><li>Clash 1 & 6 (â¬250K each): 1st â â¬10,000 | 2nd â â¬4,000 | 3rd â â¬2,000</li><li>Clash 2 & 5 (â¬150K each): 1st â â¬8,000 | 2nd â â¬3,000 | 3rd â â¬1,000</li><li>Clash 3 & 4 (â¬100K each): 1st â â¬4,000 | 2nd â â¬1,500 | 3rd â â¬700</li></ul><p>All prizes paid as cash. No wagering requirements. Auto-payout after each Clash ends.</p><h3>Rules</h3><ul><li>Real-money bets only. Bonus funds don't count.</li><li>Minimum bet: â¬0.20 equivalent per Clash.</li><li>Tied scores? Whoever got there first ranks higher.</li><li>One account per player. Duplicates get disqualified.</li></ul><p>No entry fee. No opt-in. Just play Endorphina slots every weekend and climb.</p>"}}}`),VN="Address line 1, City",YN="Verified",qN="Check your email for the verification link",ZN="We will redirect you back in",KN="seconds.",XN="Redirecting...",JN="You've been verified",QN="VERIFY YOUR ACCOUNT",eP="Royal Realm",tP="What is the Whale Ambassador Refer-a-Friend Program?",nP="For every influencer the ambassador brings to Whale, they will earn 20% of the influencerâs total earnings. If an ambassador brings a regular player, Refer a Friend commissions apply. Receive 25% of the house edge on direct referrals, 2.5% on second-level referrals and 0.25% on third-level referrals.",rP="How can I obtain my referral link?",aP="Go to whale.io, open the Earn page, and copy your unique referral link to share it with your community.",iP="Who counts as a valid referral?",oP=`A valid referral is someone who: 217- Uses your referral link. 218- Is new to Whale. 219- Signs up to Whale.io. 220- Deposits to Whale.io. 221- Wagers in any Whale games.`,sP="What are Tier 2 and Tier 3 referrals?",lP="You earn from every referral that your direct referrals make: 2.5%, and 0.25% from the third tier player referred by the 2nd tier referral.",cP="How are my earnings paid out?",uP="Claim your earnings whenever you want from Whale Earn page!",dP="Is there a referral limit?",hP="No limit on referrals. Your earnings are based on your referralsâ gaming activity.",fP="How does house edge work?",pP="House edge is the casino's profit margin. For example, a 5% house edge on slots means the casino keeps 5 USDT for every 100 USDT wagered. And you would receive 10% of that house edge from every regular direct referral.",mP="Need more info?",gP="Please see our T&Cs or contact Whale support.",yP="What is the Whale Influencer Refer-a-Friend program?",bP="Earn rewards by inviting your community to Whale. Receive 25% of the house edge on direct referrals, 2,5% on second-tier referrals and 0.25% on third-tier referrals.",vP="How can I obtain my referral link?",wP="Go to whale.io, open the Earn page, and copy your unique referral link to share it with your community.",_P="Who counts as a valid referral?",SP=`A valid referral is someone who: 222- Uses your referral link. 223- Is new to Whale. 224- Signs up to Whale.io. 225- Deposits to Whale.io. 226- Wagers in any Whale games.`,kP="What are Tier 2 and Tier 3 referrals?",EP="You earn from every referral that your direct referrals make: 2.5%, and 0.25% from the third tier player referred by the 2nd tier referral.",TP="How are my earnings paid out?",RP="Claim your earnings whenever you want from Whale Earn page!",CP="Is there a referral limit?",AP="No limit on referrals. Your earnings are based on your referrals gaming activity.",xP="How does house edge work?",OP="House edge is the casino's profit margin. For example, a 5% house edge on slots means the casino keeps 5 USDT for every 100 USDT wagered. And you would receive 25% of that house edge from every direct referral.",IP="Need more info?",DP="Please see our T&Cs or contact Whale Support.",LP="What is the Whale Earn program?",NP="Earn USDT by inviting friends to Whale.",PP="How can I obtain my referral link?",WP="Go to whale.io, open the Earn page, and copy your unique referral link to share it with your community.",MP="Who counts as a valid referral?",BP=`A valid referral is someone who: 227- Uses your referral link. 228- Is new to Whale. 229- Signs up to Whale.io. 230- Deposits to Whale.io. 231- Wagers in any Whale games.`,UP="What are my earnings per referral?",FP="Earn 10% of the house edge from direct referrals, 1% from tier 2 referrals. With an average house edge of 4-5% at Whale, you earn a portion of the profits from your referrals wagers.",$P="What are Tier 2 referrals?",zP="You earn 1% from every referral that your direct referrals make.",jP="How are my earnings paid out?",GP="Claim your earnings whenever you want from Whale Earn page!",HP="Is there a referral limit?",VP="No limit on referrals. Your earnings are based on your referrals gaming activity.",YP="How does house edge work?",qP="House edge is the casino's profit margin. For example, a 5% house edge on slots means the casino keeps 5 USDT for every 100 USDT wagered. And you would receive 10% of that house edge from every referral.",ZP="Need more info?",KP="Please see our T&Cs or contact Whale Support.",XP="Your earnings are succesfully collected!",JP="Okay",QP="Referral",eW="Your Profit",tW="Your Referrals",nW="Your Referral Link",rW="Collect",aW="Total Earnings",iW="EARN",oW="Your Rewards",sW="Don't miss the fun!",lW="Join the community!",cW="TOP 3 FAVOURITE GAMES",uW="Total Wins",dW="Total Wagered",hW="Required",fW="Withdraw Amount",pW="Available",mW="Log Out",gW="Game Of The Week",yW="Hall Of Whales",bW="Table Of The Month",vW="Whale Games",wW="Deposit",_W="Refer-a-friend commission",SW="Transactions",kW="Balance",EW="Settings",TW="Save",RW="Statistics",CW="Refer",AW="Game",xW="Player",OW="Processing the payment, please wait",IW="Provider",DW="Method",LW="Crash Game banner",NW="Wild Wild West",PW="Bingo Games",WW="Table Games",MW="Winter Wonderland",BW="Gram",UW="USDT",FW="Euro",$W="United States Dollar",zW="Indian rupee",jW="Russian ruble",GW="Whale's Choice",HW="Games by",VW="To withdraw, please add your non-custodial GRAM wallet address",YW="GRAM address here",qW="Withdraw requested (ETA: 1 min)",ZW="Auto withdrawals",KW="Verify",XW="Verify Now",JW="Turn off auto withdrawal",QW="At least 1 GRAM required",eM="To receive referral commissions, you must deposit at least 1 GRAM to your wallet!",tM="Your Referrals",nM="You get 10% from house edge from every direct referral and 1% every tier 2 referrals!",rM="* Earnings are paid on a monthly basis",aM="This Month",iM="Last Month",oM="All Time",sM="New referrals",lM="Total wagering",cM="You've earned",uM="Play with real money",dM="Use settings",hM="Deposit",fM="Select your preferred currency",pM="COMING SOON",mM="All rights reserved",gM="Profile",yM="In progress",bM="Cancelled",vM="Completed",wM="Wallet",_M="Demo",SM="Total RTP",kM="E-Sports",EM="Horse Racing",TM="Browse all",RM="More",CM="Sponsorship",AM="Play on mobile",xM="You still read your emails?",OM="Entertainment",IM="Type to filter",DM="shown out of",LM="Claim",NM="How do I get tokens?",PM="You can earn tokens by inviting friends to Whale. Tokens are connected to how much USDT you have earned from referrals.",WM="How do token rewards work?",MM="Your referral earnings are calculated from USD and 1 USD earned = 1 $Whale token earned. These tokens will be added to your account automatically. Earned Tokens are updated regularly (~once per day) and added to accounts.",BM="go",UM={2023:{launch:{casino:{header:"Launched Casino & Sportsbook",body:"Built one of the integral parts of Whale entertainment hub with mobile-first approach on GRAM chain."},nft:{header:"Welcome to @Whale - NFT collection",body:{before:"Launched our NFT collection on",after:"the largest NFT Marketplace on GRAM."}},usdt:{header:"Enabled USDT gameplay",body:"Integrated most used and most requested stable coin to @Whale."}}},2024:{q1:{cashbacks:{header:"Daily Cashbacks",body:"Introduced a new way of giving back to community with a Daily Cashback #sometimeslosealwayswin"},stats:{header:"Profile Statistics",body:"Get quick data on your personal stats like total wins and money wagered."}
231,btc:{header:"BTC Deposits and Gameplay",body:"Integrated with BTC to allow playing with your preferred cryptocurrencies."}},q2:{not:{header:"Integrated with NotCoin",body:"As one of the first avid supporters of NotCoin, we played part of launching a new token on GRAM. "},leveling:{header:"Leveling system",body:"Introduced a gamification with a leveling system for more entertaining gameplay and rewards. "},season1:{header:"Season 1 Merch",body:"Released first ever Whale Merch to our community incl. custom-made sneakers and socks."},games:{header:"Released over 1000 new games",body:"Throughout the quarters, we released thousands of games in Whale casino."}},q3:{game:{header:"New & Unique casino game",body:"@Whale will be the first one to have this new type of game in the whole industry. While we cannot say what it is yet, you donât have to wait long as it will be launched already in August."},token:{header:"Token Stage 1: 10M token airdrop with EARN program",body:"Something youâve all been waiting, $WHALE! While weâre working on $WHALE token launch, weâre giving the first bite to our community. First $WHALE Token Airdrop worth of $10,000,000. Invite your friends, earn tokens! Use your unique âEarnâ link to invite your friends!"},latam:{header:"Major partnership in LATAM ",body:"We have secured a major partnership in LATAM region to introduce @whale to millions of new users."},tokenomics:{header:"Token Stage 3: Tokenomics, Whale Foundation & Treasury",body:"Release more information about $WHALE tokenomics and introduce Whale Foundation with Treasury. The role of Whale Foundation is to make sure token value is continuously growing and price is moving up."},chat:{header:"Live Chat on Whale",body:"@Whale has and always will be about our community. As Telegram-based casino, we are integrating our engaging Telegram community straight on our website at whale.io to make connecting with fellow gamers easier. "},nft:{header:"New layer of NFT utility",body:"Introducing completely new layers of utility to our NFT collection"},stage3:{header:"Token Stage 2: Token airdrop with a Play-to-Earn game ",body:"Introducing a game to give out 10% of $WHALE token total supply and bring new people to GRAM blockchain."},geo:{header:"Personalized-content",body:"Not all games are for everyone. With content update, you will see the most relevant content and games for you first without having to search for them."},merch:{header:"Season 2 Merch",body:"Levels has been big part of our community since we release them and so has Whale merch. With the launch of Season 2, weâre are release new set of merch and giving out even more interesting and fun prizes from our collection."}},q4:{celo:{header:"Major partnerships with Celo Foundation",body:"Whale is committed to prove a versatile and user-friendly platform by allowing gamers to using their preferred cryptocurrencies. Expanding our partnership with Celo opens up interesting opportunities in emerging markets."},lootbox:{header:"Lootboxes",body:"Introducing new wagering mechanism called Lootboxes with high potential earnings. "},futures:{header:"Crypto Futures",body:"Expanding past iGaming and introducing crypto futures trading inside Whale with easy to use. "},merch:{header:"Token stage 4: Merch Store with $WHALE token",body:"All of our beloved merch available for purchase with $WHALE and shipped around the world."},gameplay:{header:"Token Stage 5: $WHALE Token gameplay",body:"Releasing the long awaited native token of Whale ecosystem to our community with native games."},jackpots:{header:"Whale Jackpots",body:"New and improved ways to hit big on @Whale. Gamers have an increased chance to win the jackpot as part of playing any game."},plinko:{header:"Launch Whale Plinko",body:"As our grand plan of releasing even more Whale branded casino games, we are working on releasing our own Plinko game next."}}},2025:{q1:{crossnft:{header:"Cross-chain NFT support",body:"Enable Whale NFTs to be moved across blockchains and bring new people to Whale."},staking:{header:"Token Stage 6: $WHALE Token staking",body:"Enable token holders to earn rewards by staking their tokens and showing commitment to the community."},listing:{header:"Token Stage 7: $WHALE Token listed",body:"Listing $WHALE token on popular exchanges to make buying-selling-trading available for everyone."},buyback:{header:"Token Stage 8: Token dashboard",body:"As transparency is the cornerstones of our community, weâre creating a dashboard view inside @whale of everything going on with Whale token and Casino earnings. "}},q2:{lambo:{header:"Lamborghini(s)",body:"(in Oprahâs voice) You get a lambo, you get a lambo, everyone getâs a lambo."},stage9:{header:"Token Stage 9: 10% buyback",body:"Reinvest 10% of Casino revenue to buy $WHALE tokens back from the market. The more our community plays and the bigger community is, the more tokens are bought back, and the higher token price goes."},moon:{header:"Moon",body:`Fly me to the moon<br /> 232Let me play among the stars<br /> 233And let me see what spring is like<br /> 234On a-Jupiter and Mars`}}},title:"Welcome to Whale",description:"Where every game is fair, every transaction is fast, every player is a valuable part of the community, and every move is made towards being legendary. Built on The Open Network, Whaleâs entertainment hub combines the thrill of casino gaming and sports betting with the advantages of blockchain technology."},FM="Read more about",$M="Roadmap",zM={free_play:"Free Play",real_play:"Real Play",total_rtp:"Total RTP",game_stats:"Game stats",provider:"Provider",volatility:"Volatility",min_bet:"Minimum bet",maximum_bet:"Maximum bet"},jM={send:"Send"},GM="delete_me",HM={cta:"Play Now"},VM="E-Sports",YM="E-Sports",qM="Halloween",ZM="Empty",KM={cards:{levelup:{title:"Battlepass",de
234scription:"Play the games, level up and win prizes!"},cashback:{title:"Daily Cashback",description:'Earn up to 25% Daily "No BS" cashback'},raf:{title:"Refer and Earn",description:"Invite friends, complete missions and earn!"},crypto:{description:"Get crypto through most popular payment methods!",title:"No Crypto?"},birthday:{title:"Happy Birthday, Whale",description:"Click Here and see your own Whale Wrapped!"}}},XM={claimableTime:"Claimable time"},JM="View Recent",QM={tribes:{viewer:{modal:{leave_stream:{title:"Leaving Tribe?"}}},streamer:{chrome_recommend:{title:"Prefer Chrome",first_part:"We recommend using Google Chrome. Additionally, please enable the experimental setting by visiting",second_part:"to improve compatibility and performance. This setting can be accessed in Chromeâs experimental flags."}}},modals:{rewards:{battlepass:{completeKYC:{kyc_to_unlock:"KYC to Unlock"}}}}},eB="New this Christmas",tB="Jingle Balls",nB="Trash",rB="All",aB="Confirm your details",iB={filler:"Legend"},oB="How does Tribes wagering count towards Earnings?",sB=`Only Tribes Leader Earns from the tribes room wagering (doesn't count towards normal Earnings). 235 236<i>FYI! Wagering in Tribes private room doesn't count towards Tribes Earnings.</i>`,lB=`Only Tribes Leader Earns from the tribes room wagering (doesn't count towards normal Earnings). 237 238<i>FYI! Wagering in Tribes private room doesn't count towards Tribes Earnings.</i>`,cB={prize:"Prize",finished:"Finished",get:"Get prize","follow-x":{title:"Follow Us on X",description:"Follow Whale_Games in X<br />and get the latest updates!",action:"Follow"},"invite-5-friends":{title:"Invite 5 Friends",description:"Invite 5 friends through RAF<br />by utilizing your unique link!",action:"Invite"}
238,"install-apk":{title:"Install APK",description:"Install Whale to<br />your Android!!",action:"Download"},"watch-video":{title:"Watch video",description:"Watch a video and<br />earn $Whale tokens.",action:"Play a video"}},uB="Vibe Switch",dB={wtf:{lootboxes:{content:`<p>Introducing Whale Merch Lootboxes, where every unbox is a thrill, and every reward is a flex.ð How they work is as easy as breathing.</p> 239 240<h3>ð Go to Lootboxes</h3> 241<p>Head over to the âLootboxesâ section at Whale and explore a variety of exciting boxes packed with potential.</p> 242 243<h3>ð¯ Make Your Pick</h3> 244<p>Choose the Lootbox that calls your name (in this case weâre talking MERCH), crack it open, and watch your legendary reward reveal itself.</p> 245 246<h3>ð Keep It or Ship It</h3> 247<p>Love what you got? Store it safely in your inventory or ship it straight to your front door. Your call!</p> 248 249<h3>ð¸ Not Feeling It? Sell It!</h3> 250<p>If itâs not your style, thatâs okay. You can always flip it and cash out.</p> 251 252<p>Crack open a Whale Lootbox, and let the surprises roll in! Start unboxing now at Whale! ð</p>`},whaletakesdubai:{title:"$Whale Is Coming!",description:"Dubai Just Got The First Taste. Countdown Is On!",content:`<h3>$Whale Is Coming. Dubai Just Got the First Taste.</h3> 253 254<p>The countdown is ticking. And the $Whale drop is closer than anyone thinks.</p> 255 256<p>Token2049: Whale showed up, and showed out. We didnât come to network. We came to dominate.</p> 257 258<h3>ð Why It Matters</h3> 259 260<p>This isnât just another token. $Whale powers the entire ecosystem, itâs the backbone of everything weâre building. And when it launches? Those holding early eat first.</p> 261 262<h3>ð¸ How to Stay Ahead</h3> 263 264<ul><li>Complete missions</li> 265<li>Stack XP in Battlepass</li> 266<li>Invite your crew</li> 267<li>Play the game</li></ul> 268 269<p>Every action moves you closer to the drop, and everything that comes after. This isnât a token. Itâs a takeover.</p> 270 271<p>#SometimesLoseAlwaysWin</p>`}}},hB={cards:{verify_account:{title:"Verify Account",description:"Verify your account to get a free Battle Pass"}}},fB={heading:"Whale on Android",paragraph:"Play anywhere, win everywhere!",button:"Get it here"},pB={title:"Refer-A-Friend",text:"Invite friends, and earn on every dollar wagered! Unlock up to 25% theoretical revenue share! Just copy your unique link and spread the word!",cta:"Sign up & Earn"},mB="Top Sports",gB="Boxing",yB={ending:{paragraph:"Thatâs a Wrap! Share the video, send us the proof, and get a gift from Whale!",button:"SHARE IN TELEGRAM"}},bB={title:"How does Battlepass work?",button:"Try now!",button_next:"Next",step:{1:{title:"Get a Battlepass",description:"Buy Battlepass with $Whale token or USDT to unlock best rewards and cashback."},2:{title:"Play, Earn & Level Up",description:"Gain experience by playing the games and level up in your battlepass each season!"},3:{title:"Claim Rewards",description:"With every level gained, you unlock new rewards. Anything from freespins to super cars!"}}},vB="Upcoming <strong>Legendary reward</strong> coming soon.",wB="Pending",_B="Buy Level Up",SB="Live Rewards",kB={podium:{title:"Orcas of the Month",loading:"Getting Orcas of the Month..."},table:{user:"User",from:"From",reward:"Reward"}},EB="Total Earned $WHALE",TB="Total Earned USDT",RB="Live",CB="All Time",AB="Tribes",xB="Missions",OB="Refer-A-Friend Commission",IB="Refer-A-Friend",DB={provider:"Provider",game:"Game",custom:"Lobby"},LB=JSON.parse(`{"banner":{"title":"Play with $Whale Tokens <span class=\\"highlighted\\">in Original Games!</span>","paragraph":"Whale Originals are Provably Fair, built for high-speed plays, and come with the highest RTP!"},"provider_description":"<h1 style=\\"font-size: clamp(1.5rem, 3.5vw, 2rem); font-weight: 700; color: #ffffff; margin-bottom: clamp(6px, 1.5vw, 8px); padding-bottom: clamp(6px, 1.5vw, 8px); text-transform: uppercase; letter-spacing: 0.5px; line-height: 1.2; word-wrap: break-word; border-bottom: 2px solid rgb(255, 221, 98);\\">Whale Originals & Exclusive Casino Games</h1>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Whale builds its own casino games alongside a full provider library. The Originals are designed in-house â Crash, Dice, Mines, Keno, Roulette, Blackjack, Crock Dentist, What the Duck!?, Plinko, Tower, and Baccarat â with high RTP targets and straightforward mechanics. Beyond that, Whale has a set of exclusive branded titles made in partnership with top studios that you can only play here.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); padding: 12px; background: rgba(59, 130, 246, 0.08); border-left: 3px solid rgb(255, 221, 98); border-radius: 4px; line-height: 1.6;\\">Play all Whale Originals at <a href=\\"https://whale.io/originals\\" style=\\"display: inline; text-decoration: underline;
271 color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale.io/originals</a>, including <a href=\\"/casino/originals/whale_crash\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Crash</a>, <a href=\\"/casino/originals/whale_dice\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Dice</a>, <a href=\\"/casino/originals/whale_mines\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Mines</a>, and more â with instant crypto deposits, zero gas fees, and up to 25% daily cashback.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">What Are Whale Originals?</h2>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Whale Originals are casino games developed and operated directly by Whale. They're not slots â they're closer to betting tools with clean visual interfaces and fast outcomes. Crash runs a multiplier that climbs until it stops; you decide when to cash out. Dice lets you set your own win range and see the result in seconds. Mines works like minesweeper: each safe tile you flip multiplies your stake, and hitting a mine ends the round. Keno lets you pick numbers before each draw and pays out based on how many match.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Roulette, Blackjack and Baccarat follow standard casino rules, running on the same provably fair infrastru
271cture as the rest of the Originals. Crock Dentist and What the Duck!? are lighter, quicker titles built for short sessions between bigger games, while Plinko and Tower let you set your own risk level before you play. All Whale Originals are available exclusively at Whale and are built with competitive RTP to give players a fair shot every round.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">Whale Original Games</h2>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_crash\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Crash</a></strong> - A rising multiplier you cash out before it crashes. One of the most-played Originals at Whale, combining risk management with fast rounds.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_dice\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Dice</a></strong> - Set your own target range and roll. The narrower your range, the higher the payout. Clean, quick, and fully player-controlled.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_mines\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Mines</a></strong> - Flip tiles on a grid. Each safe tile multiplies your bet, but a mine ends the round immediately. Cash out at any point to lock in your winnings.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_keno\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Keno</a></strong> - Pick your numbers before each draw. The more you match, the bigger the win. A slow-burn game that works well at any bet size.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_roulette\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Roulette</a></strong> - Standard roulette with familiar bet types, built on Whale's provably fair system. Covers inside bets, outside bets, and everything in between.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_blackjack\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Blackjack</a></strong> - Classic blackjack with standard rules. If you prefer a live dealer version with real cards and a studio table, check out <a href=\\"/casino/evolution-gaming/evo_whaleblackjack\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Blackjack</a> by Evolution.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_crock_dentist\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Crock Dentist</a></strong> - Press the croc's teeth without getting bitten. Each safe press builds your multiplier, but the croc bites at a random point â a risk-reward game with a light twist.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_duck\\" style=\\"display: inline; text-decoration: underline;
271 color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">What the Duck!?</a></strong> - A fast, unpredictable format with a casual edge. Good for short sessions or breaking up the rhythm between other games.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_plinko\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Plinko</a></strong> - Drop the ball and watch it bounce down the peg board into a multiplier slot. Choose your risk level and the number of rows to shape the payouts.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_tower\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Tower</a></strong> - Build the tower one floor at a time. Each floor that holds raises your multiplier, but a collapse ends the round â cash out from the second floor to lock in your win. Pick your difficulty before you start.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/originals/whale_baccarat\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Baccarat</a></strong> - Classic baccarat dealt from a provably fair eight-deck shoe. Back Player, Banker or Tie, and add Pair and Perfect Pair side bets.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">Only at Whale â Exclusive Games</h2>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Alongside the in-house Originals, Whale has partnered with leading studios to create branded titles exclusive to this platform. These aren't games you'll find on other casinos â they were built for Whale specifically. Several are eligible for tournaments, running with separate prize pools for qualifying players.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/red-tiger-gaming/rtg_whalethorsrage\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Thor's Rage</a></strong> - A Whale-branded slot by Red Tiger Gaming built around Norse mythology and high volatility gameplay. Tournament-eligible.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/avitrix/avtrix_aviatrix\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Aviatrix</a></strong> - A crash-style game by Aviatrix with a plane that climbs until it exits the screen. Similar in concept to Crash, but with a distinct visual style and community multiplier element.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/evolution-gaming/evo_redbaronlive\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Red Baron Live</a></strong> - A Whale-exclusive live game by <a href=\\"/casino/evolution-gaming\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Evolution Gaming</a>, running in a dedicated live studio. For more Evolution live titles, explore the full <a href=\\"/live-casino\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">live casino</a> section.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/netent/ntn_starburstbranded\\" style=\\"display: inline; text-decoration: underline;
271 color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Starburst</a></strong> - The iconic <a href=\\"/casino/netent\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">NetEnt</a> classic reskinned for Whale. Tournament-eligible with the same low-volatility mechanics that made Starburst a player favourite.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/spinomenal/spm_whalestreasure\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale's Treasure</a></strong> - A Whale-branded slot by Spinomenal with ocean-themed visuals and a classic reel setup. Tournament-eligible.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/onetouch/ont_whalecasinopawsomeplinko\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Plinko</a></strong> - A Whale-branded plinko by OneTouch. Drop the ball, watch it bounce, win based on where it lands. If you enjoy plinko mechanics, also try <a href=\\"/casino/turbogames/tbg_whaleplinko\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">WhaleX Plinko</a> by Turbogames for a different take.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/caleta-gaming/clt_whaleofxtremefortune\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Of Xtreme Fortune</a></strong> - High-energy Caleta Gaming slot built under the Whale brand. Part of Caleta's exclusive Whale lineup alongside <a href=\\"/casino/caleta-gaming/clt_whaleoffortune\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale of Fortune</a> and <a href=\\"/casino/caleta-gaming/clt_whalebingo\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Bingo</a>.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/evolution-gaming/evo_whaleblackjack\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Whale Blackjack</a></strong> - A Whale-branded live blackjack table powered by Evolution Gaming. Dedicated table, live dealers, real-time play â a different experience from the RNG Blackjack Original.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">How to Start Playing</h2>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Step 1: Create your account</strong> - Register at Whale.io in seconds. No lengthy forms, no slow verification upfront.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Step 2: Deposit crypto instantly</strong> - Fund your balance with GRAM, USDT, BTC, ETH, SOL, BNB, and more. Zero gas fees on all deposits.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Step 3: Head to Originals</strong> - Open the <a href=\\"/originals\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Originals section</a> or browse the \\"Only at Whale\\" row for exclusive titles.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Step 4: Set your stakes and play</strong> - Each Original lets you adjust your bet freely before starting. Take your time, especially with Crash and Mines where timing or risk level is y
271our call.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Step 5: Withdraw instantly</strong> - Cash out at any time. Withdrawals are fast and gas-free across all supported cryptocurrencies.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">Why Whale Originals Are Different</h2>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Built in-house:</strong> Whale owns the full stack on these games â the rules, the RTP, the interface. No third-party provider to route through.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Provably fair:</strong> Every result in the Originals is verifiable. You can check the outcome of any round using the hash seed displayed during play.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>High RTP:</strong> The Originals run at competitive return rates. Games like Dice and Mines let you adjust the risk level yourself, which directly affects what the payout odds look like.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Eligible for cashback:</strong> All Whale Originals count towards the daily and weekly <a href=\\"/rewards\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">cashback</a> â up to 25% back on net losses with no wagering requirements.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong>Tribe missions:</strong> Many Battlepass and <a href=\\"/tribes\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Tribes</a> challenges are tied to Originals play, making them a natural part of working through the reward structure at Whale.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">Explore More Games at Whale.io</h2>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">The Originals are one part of a much bigger catalogue. If you're looking for something different, Whale carries games from every major studio:</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/pragmaticplay\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Pragmatic Play</a></strong> - The largest slot library on Whale. Gates of Olympus, Sweet Bonanza, Sugar Rush 1000, Big Bass series, and hundreds more.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/evolution-gaming\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Evolution Gaming</a></strong> - Live casino games with professional dealers. Baccarat, roulette, blackjack, and original game shows in real-time. Also home to Red Baron Live and Whale Blackjack.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/nolimitcity\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">No Limit City</a></strong> - High-volatility slots with extreme multiplier potential. A good next step if you enjoy the risk-reward feel of Crash or Mines.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/hacksawgaming\\" style=\\"display: inline; text-decoration: underline;
271 color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Hacksaw Gaming</a></strong> - Fast-format slots and scratchcards with sharp mechanics and high-end win potential.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/play-n-go\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Play'n GO</a></strong> - Story-driven slots with strong bonus features. Book of Dead, Reactoonz, and Chocolates are among the most-played titles.</p>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\"><strong><a href=\\"/casino/155\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">155</a></strong> - Racing and arcade-style games including <a href=\\"/casino/155/zcl3u_lobby\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Live Marble Racing</a>, <a href=\\"/casino/155/zcl3u_duckracing\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Duck Racing</a>, and <a href=\\"/casino/155/zcl3u_cctvgame-rushhour\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">CCTV Game - Rush Hour</a>. Fast rounds, no slots.</p>\\n<h2 style=\\"font-size: clamp(1.25rem, 3vw, 1.65rem); font-weight: 700; color: #ffffff; margin-top: 16px; margin-bottom: 8px; padding-bottom: 6px; line-height: 1.3; border-bottom: 2px solid rgb(255, 221, 98);\\">Whale Originals FAQ</h2>\\n<h3 style=\\"font-size: clamp(1.1rem, 2.5vw, 1.35rem); font-weight: 600; color: #ffffff; margin-top: 16px; margin-bottom: 8px; line-height: 1.3;\\">Are Whale Originals provably fair?</h3>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Yes. Every result in the Originals uses a hash-based seed system you can verify independently after each round. The outcome is determined before the round begins and can't be altered.</p>\\n<h3 style=\\"font-size: clamp(1.1rem, 2.5vw, 1.35rem); font-weight: 600; color: #ffffff; margin-top: 16px; margin-bottom: 8px; line-height: 1.3;\\">What's the difference between Whale Originals and the \\"Only at Whale\\" games?</h3>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Originals are built entirely by Whale â they own the game engine, the rules, and the RTP. \\"Only at Whale\\" titles are made by external studios (Evolution, NetEnt, Red Tiger, etc.) but branded and distributed exclusively through Whale. Both are unique to this platform.</p>\\n<h3 style=\\"font-size: clamp(1.1rem, 2.5vw, 1.35rem); font-weight: 600; color: #ffffff; margin-top: 16px; margin-bottom: 8px; line-height: 1.3;\\">Where can I play Whale Crash online?</h3>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Play it directly here: <a href=\\"/casino/originals/whale_crash\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">Crash</a>. It's available as soon as you have a funded Whale.io account.</p>\\n<h3 style=\\"font-size: clamp(1.1rem, 2.5vw, 1.35rem); font-weight: 600; color: #ffffff; margin-top: 16px; margin-bottom: 8px; line-height: 1.3;\\">Do Whale Originals count towards cashback?</h3>\\n<p style=\\"font-size: clamp(0.95rem, 2vw, 1.05rem); color: rgb(144, 146, 178); line-height: 1.6;\\">Yes â all Originals qualify for the daily and weekly <a href=\\"/rewards\\" style=\\"display: inline; text-decoration: underline; color: rgb(144, 146, 178); transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1);\\">cashback</a> at Whale.io, up to 25% back on net losses with no wagering requirements.</p>\\n<p style=\\"font-size: clamp(1rem, 2.2vw, 1.15rem); font-weight: 600; color: rgb(255, 221, 98); line-height: 1.6;\\">Play Crash, Dice, Mines, and all Whale Originals at Whale.io â built in-house, provably fair, and backed by up to 25% daily cashback on every round.</p>"}`),NB={babywhaletakeover_bot:{HACKSEASONS:{START:`You found a Whale in the future. Nicely done! ð 272{whalecount} Whale, to be exact. 273 274Amidst all the stages, talks, and panels, you just unlocked something real: 275A $Whale Lootbox. 276 277Now open it! 278 279#SometimesLoseAlwaysWin`,REMINDER1:`ð§ Still exploring the future? Your $Whaleâs still untouched. 280 281Keynotes are great. Lootboxes are greater. 282Step out of theory and into real $Whale. ðð³ 283 284#SometimesLoseAlwaysWin`,REMINDER2:`â³ One hour later, your Whale is still floating in the future. 285 286You scanned it, now it's time for the fun part: claim it!
287Ideas are cool. Bagging $Whale is better. ð¸ð³ 288 289#SometimesLoseAlwaysWin`,REMINDER3:`ð¬ Yesterday, you explored the future. Today, your $Whale is still waiting. 290 291Panels end. Discussions fade. But a $Whale doesnât just disappear. 292Final call to make your future wallet fatter. â³ 293 294#SometimesLoseAlwaysWin`},THANKYOU:{START:`ð³ Dubai = Conquered. 295 296You found the Whale. You rode the wave. 297We turned TOKEN2049 into our playground, and Dubai heatâs got nothing on whatâs coming next. ð¥ð¥ 298 299<b>$Whale is dropping soon⦠300If you bagged it? Smart. See you at the top. ð</b> 301 302Thanks for joining the legends. Weâre just getting started. 303 304#SometimesLoseAlwaysWin`}}},PB="No bullshit",WB="Multiplier",MB="Next",BB="Your Balance",UB={title:'Congratulations! <span class="text-golden">Your Whale tokens landed!</span>',paragraph:"You successfully collected and converted your hard-earned tokens from Wheel of Whales.",cta:"Continue"},FB={title:"Your Account is connected",paragraph:"Youâve successfully connected your Whale and Wheel of Whales accounts.",cta:"Back to Wheel of Whales"},$B={cashback:{title:'Donât miss your <span class="golden-highlight">Daily cashback</span>',description:`Up to 25% Back. No BS. 305#SometimesLoseAlwaysWin`,timer_label:"Your Next Cashback Drops In"},nolimit_city:{title:`Don't Miss Your <span class="golden-highlight">Daily Cashback!</span>`,description:"Up to 25% back. NoBS. #SometimesLoseAlwaysWin"},providerpage:{timer_label:"Arriving in"},hacksaw:{title:'Cute. Deadly. Legendary. <span class="golden-highlight">Rainbow Princess</span>',description:'Max Multiplier: <span class="text-white">10.000x</span> <br /> RTP: <span class="text-white">96,36%</span>'},redtiger:{description:'Max Multiplier: <span class="text-white">10.000x</span> <br /> RTP: <span class="text-white">96,11%</span>',title:'Early Access Release: <span class="golden-highlight">Take The Money</span>'},peterandsons:{title:`Coming Soon: <span class="golden-highlight">Lock'n Load</span>`,description:'Max Multiplier: <span class="text-white">20.000x</span> <br /> RTP: <span class="text-white">96,56%</span>'},netent:{title:'Coming Soon: <span class="golden-highlight">Flock Me</span>',description:'Max Multiplier: <span class="text-white">8594x</span> <br /> RTP: <span class="text-white">96%</span>'},popiplay:{title:'Coming Soon: <span class="golden-highlight">Detective Donut Christmas</span>',description:'Max Multiplier: <span class="text-white">25,000x</span> <br /> RTP: <span class="text-white">97.28%</span>'},pragmatic:{title:'Coming Soon: <span class="golden-highlight">Zeus vs Hades â Gods of War 250</span>',description:'Max Multiplier: <span class="text-white">25,000x</span> <br /> RTP: <span class="text-white">96.56%</span>'},novomatic:{title:'Coming Soon: <span class="golden-highlight">Cash Connection Charming Lady</span>',description:'Max Multiplier: <span class="text-white">7,814x</span> <br /> RTP: <span class="text-white">94%</span>'},kalamba:{title:`Coming Soon: <span class="golden-highlight">Finnegan's Treasure 2</span>`,description:'Max Multiplier: <span class="text-white">4000x</span> <br /> RTP: <span class="text-white">94.10%</span>'},belatra:{title:'Coming Soon: <span class="golden-highlight">Cops vs Robs</span>',description:'Max Multiplier: <span class="text-white">10 000x</span> <br /> Volatility: <span class="text-white">Medium High</span>'}},zB={days:"Days",hours:"Hours",minutes:"Minutes",seconds:"Seconds"},jB={rules:{link:"Chat Rules",copy:"Please be respectful and kind in all conversations. Avoid sharing personal information, hate speech, or inappropriate content. Let's keep the chat safe and welcoming for everyone!"}},GB={pass:{what_do_you_get:"What do you get for",free:"Free",what_are_you_getting:"What are you getting with",buy_with_discount:"Buy with discount"},sections:{how_to_win:{title:'Pay to Win, <span class="text-[#E0C490]">Pay to Earn ð</span>',description:"Battlepass isnât just a boost, itâs a full-blown advantage. Every level drops real rewards: Lootboxes, Free Bets, Bonus Buys, and most importantly, $Whale Token."},buy_with_discount:{title:'Buy with <span class="text-[#E0C490]">Discount</span>',description:"Timeâs running out. Grab power before itâs gone."}},rewards:{tokens:{title:"Whale Tokens",description:"Stack $Whale like a true degen before it drops."},cashback:{title:"Daily Cashback",description:"Your Cashback percentage grows as you stack XP."},theme:{title:"Whale Skins",description:"Switch the Vibe to magically make your experience better."}
305,next_season_pass:{title:"Next Season Battlepass",description:"Level Up and earn your Battlepass for future seasons."}},premium_rewards:{cashback:"Daily Cashback",lootbox:"Over 100 Cases",free_spins:"Over 100 Free Spins",tribes:"Tribes Leader",tokens:"10000 $Whale"}},HB={no_limit:{banner:{title:'NOLIMIT CITY<br /><span class="highlighted">Max Volatility</span>',description:"Built For The Brave!"}},hacksaw:{banner:{title:'Hacksaw Gaming<br /><span class="highlighted">Cutthroat Slots!</span>',description:"Fast. Fierce. Unforgettable."}},redtiger:{banner:{title:'Red Tiger<br /><span class="highlighted">Strike Big</span>',description:"Win Without Mercy."}},live88:{banner:{title:'Live88<br /><span class="highlighted">Win Real!</span>',description:"The Real Deal."}},endorphina:{banner:{title:'Endorphina<br /><span class="highlighted">Spin Legendary!</span>',description:"Where the Luck Meets Iconic Spins"}},peterandsons:{banner:{title:'Peter & Sons<br /><span class="highlighted">Family Of Winners</span>',description:"Crafted for Those Who Know."}},netent:{banner:{title:'NETENT<br /><span class="highlighted">THE ORIGINAL INNOVATOR</span>',description:"The provider that never goes out of style."}},popiplay:{banner:{title:'Game of the Month<br /><span class="highlighted">Area 69</span>',description:"Classified wins. Alien multipliers. Top secret."}},pragmatic:{banner:{title:'Pragmatic Play<br /><span class="highlighted">The Crowd Favorite</span>',description:"Iconic slots. Big features. Pick a slot and send it!"}},boominggames:{banner:{title:'BOOMING GAMES<br /><span class="highlighted">Not Your Average Slots!</span>',description:"Masterful slots, Pulse-racing features, big win energy!"}},novomatic:{banner:{title:'GAME OF THE MONTH<br /><span class="highlighted">Charming Ladyâs Boom</span>',description:"Pink, polished, and built to pay. Play now."}},kalamba:{banner:{title:'PROVIDER OF THE MONTH<br /><span class="highlighted">KALAMBA GAMES</span>',description:"Fresh themes, slick visuals, and bonus-packed gameplay."}},belatra:{banner:{title:'GAME OF THE MONTH<br /><span class="highlighted">CYBER GYPSIES</span>',description:"Belatra's neon-soaked fortune teller is live â go see what the cards say."}},slotmill:{banner:{title:`GAME OF THE MONTH<br /><span class="highlighted">DEMON'S GATE</span>`,description:"One way in, no way outâ Demon's Gate doesn't let you leave empty-handed."}}},VB=`ð³ Welcome to the Whale Community! 306 307Glad youâre here. We keep things fun, loud, and fair, so read this before you dive in: 308 309ð¥ Do This, And Youâre Good: 310 311⢠Have fun, flex your wins, and connect with the pod 312⢠Network, share vibes, and celebrate together 313⢠Respect each other. Weâre here to build, not bicker 314⢠English only (unless youâre in a dedicated language topic) 315⢠Need help? Hit up Support, theyâre fast and friendly 316 317â What Gets You Kicked: 318 319⢠Abuse, spam, scams, hard no 320⢠No external links or ads. No promos 321⢠Break the rules = instant removal. No warning, no drama. 322 323ð§ Quick Note: 324 325Whale mods will update rules as needed to keep things flowing for everyone. Full terms live <a href="/terms-and-conditions">here</a>.`,YB="Roulette",qB="Whale Mines",ZB="New",KB={win_rewards:"Win rewards by just visiting Whale",next_reward:"Next reward",n_days_streak:"Daily Visit Streak",claim:"Claim Reward",claimed:"Claimed",collect_reward:"Collect Reward",reward_caption:"Reward for Daily Visit Streak",close:"Close",claim_in:"Claim this reward",days:"Days",reward:"Reward",n_days_reward:"{days} Days Reward",today_reward:"Today's Reward",worth_n_usd:"Worth ${amount}",new_login:"Miss a day? RIP streak. Stay locked in, get paid.",counter_to_zero:"Back to 0 in:",deposit_to_save:"Deposit to Save",come_back_every_day:"Come back every day to keep the streak and earn rewards. Skip a day, streak lost.",keep_it_up:"Keep it up!",todays_reward:"Todays Reward"},XB="Whale Dice",JB="Whale is sleeping, come back later ð¤",QB={title:"Casino Dashboard",section:{income:{title:"Income"},users:{title:"Users"},activeUsers:{search:{placeholder:"Search for User"},table:{header:{username:"Username",wagered:"Wagered",commission:"Commission",last_active:"Last Active",status:"Status"},user_status:{plankton:"Plankton",influencer:"Influencer",banned:"Banned"}},title:"Active Users"}},datapoint:{ngr:{title:"Net Gaming Revenue",tip:"Net Gaming Revenue, also known as NGR, is what is left after all operational costs have been deducted from gaming revenue generated."},commission:{title:"Commission",tip:"Commission is your final cut from from Net Gaming Revenue in the selected period."},total_deposits:{title:"Total Deposits",tip:"The total amount of money players have added to their accounts in the selected period."},total_wagering:{title:"Total Wagering",tip:"The total amount of money players have played through in the selected period."},new_users:{title:"New Users",tip:"Number of users who registered a new account in the selected period."},new_depositing_users:{title:"New Depositing Users",tip:"Number of users that deposited for the first-time in the selected period. Also known as FTDs. FTD % is percentage of new users who made a deposit out of all new registered users."},total_active_users:{title:"Total Active Users",tip:"Number of unique players who have wagered minimum 1 USD in the selected period."}},subheading:"Welcome back, {{name}}",date_filter:{today:{full:"Today",short:"Today"},month:{full:"This Month",short:"M"},week:{full:"This Week",short:"W"},year:{full:"This Year",short:"Y"},custom:{short:"Custom"}},country_filter:{all_countries:"All Countries"},tip:{title:"Refer 5 more friends",status:"{{status}} Referred"}},e6={title_supportive:"You can do it better! Donât stop!",title_derogatory:"You f*cked up and lost your Streak",caption_supportive:"You can still save the progress until the timer runs out.",caption_derogatory:"Life rarely gives 2nd chances, but we do. Save your streak before the timer runs out.",days_until_reward:'{days} days <span class="text-brandblue-100">until</span> {reward}',save:"Save my Streak",close:"I don't care",you_have_n_time:"You have:",turn_on_the_flame:"Turn on the Flame"},t6={default_caption:"Streak",streak_lost:"Streak Lost",save_cta:"Save"},n6="Tournaments",r6="Feeling down on your luck this week?",a6="Play with $Whale",i6="Play on Whale",o6={faq:{faq_item_1:{paragraph:"$WHALE is the native token of the Whale.io platform. It powers exclusive features like Battlepass, Original games, and many other features.",heading:"What is the $WHALE token?"},faq_item_2:{paragraph:"Token Dashboard is a transparent look into $Whale token metrics and sustainability. You can managed your tokens by choosing to stake, buy, or sell in the dashboard. This is the primary spots for all news and data about $Whale token as a continuous step toward prioritizing transparency.",heading:"What is token dashboard used for?"},faq_item_3:{paragraph:"While Noob mode is for users looking for a simplified dashboard without unnecessary distraction and noise, Pro mode features more data about token for daily trading decisions. ",heading:"What is the difference between Noob and Pro dashboard?"},faq_item_4:{paragraph:"Tokens are used across the platfrom with more utility added over time. You can buy a battlepass, play Whale Original games, print more tokens using our Staking (Printer), buy-sell without leaving the platform. There are many more features coming that require tokens which will be announced in the future.",heading:"What can I do with $WHALE tokens?"},faq_item_5:{paragraph:"Whale token cannot be bought before the Token Generation event (TGE). Once tokens are generated on blockchain, you'll be able to swap or buy/sell $WHALE and deposit them on your Whale account. Until that, you can only earn and use them.",heading:"Where can I buy $WHALE tokens?"},"faq_item_6:paragraph":"Printing is what we call Staking in Whale. You can earn passive income by locking your tokens for a duration of your choice. Cho
325ose the amount of $Whale tokens from your account wallet to start, pick a multiplier, and printing duration to start printing. Your tokens will be locked for whole duration of Printing and in return, you'll get a agreed upon multiplier. You can have more than one printer running for different options at any time.","faq_item_7:paragraph":"Staking $WHALE allows you to earn passive income, multiply your $WHALE based on chosen settings, and potentially increase your rewards over time. Staking also supports the WHALE ecosystemâs stability by keeping tokens inside the platform, and take away your urge to sell too soon.","faq_item_8:paragraph":"APY (Annual Percentage Yield) is the annualized rate of return from staking $WHALE, accounting for compounding rewards. For example, a 30% APY means your staked tokens could grow by 30% over a year, though actual returns vary based on protocol performance.","faq_item_9:paragraph":"There are multiple ways to earn $Whale tokens. You can play WheelofWhales.io to earn mWhale tokens that can be converted to $WHALE. You can complete missions, find them in lootboxes, or with our RAF program. ",faq_item_10:{paragraph:"You can join Whale Community in X (@whalegames_en) and Instagram @whalesocials_tg for latest updates. Keep eye on the Daily Finn (https://whale.io/thedailyfinn) for latest promotions, news, and more.",heading:"Where can I learn more about $WHALE and its community?"},faq_item_6:{heading:"How does $WHALE Printer work?"},faq_item_7:{heading:"What are the benefits of staking $WHALE?"},faq_item_8:{heading:"What is APY?"},faq_item_9:{heading:"How can I earn more $WHALE?"}}},s6={email_code_subject:"Your Wheel of Whales codeâs here ð",email_code_body:`Nice one, your accountâs all set. Hereâs your code: 326 327{code} 328 329Pop it in and youâre good to go.`},l6={newarrivals:{banner:{title:"Latest Drops",description:"New slots. New tables. New ways to win it."}},whalespecials:{banner:{title:"Whale Specials",description:"Exclusive games, Whale-only access."}},buyfeature:{banner:{title:"Buy Feature Games",description:"Skip the wait. Buy the bonus. Chase the max."}},megaways:{banner:{title:"Megaways Madness",description:"Tens of thousands of ways. One spin could send you flying."}}},c6="Don't show this again",u6="Skip",d6={description:{"ppl_live-lobbyroulette":"This is description",pgp_gatesofolympus:`Ascend to Mount Olympus and claim divine riches alongside Zeus himself in Gates of Olympus, the legendary slot from Pragmatic Play that has captivated players worldwide with its mythological theme and explosive win potential. 330Gates of Olympus is a 6x5 grid video slot featuring a pay-all-ways mechanism where you need 8 or more matching symbols anywhere on the reels to win. This highly volatile slot delivers an RTP of 96.50% and offers a maximum win potential of 5,000x your stake, making every spin a potential gateway to godly rewards. 331The game's innovative cascading wins feature removes winning symbols from the grid, allowing new ones to drop down and create additional winning opportunities in a single spin. Zeus himself watches over the reels from above, his eyes glowing with divine power as lightning strikes enhance the mystical atmosphere. 332The paytable features beautifully crafted colorful gemstones as low-paying symbols, offering payouts ranging from 0.25x to 10x for matching 8 to 12 or more symbols. Premium symbols include ornate goblets, golden rings, mystical hourglasses, and the coveted golden crown, which delivers the highest payout of 50x your bet for 12 or more matches. 333When multiplier symbols land on the reels, they can dramatically boost your wins by anywhere from 2x to an incredible 500x your bet. In the base game, these multipliers are applied to your total win at the end of each cascading sequence, and multiple multipliers combine their values for even greater rewards. 334Landing 4, 5, or 6 scatter symbols triggers the coveted free spins bonus round, starting you with 15 free spins. The real magic happens during this feature, as all multiplier values are added to a global multiplier meter that accumulates throughout the entire bonus round without resetting between spins. Additional scatter symbols can retrigger more free spins, extending your divine journey. 335The ante bet option allows you to increase your stake by 25% in exchange for doubling your chances of triggering the free spins feature. For those seeking immediate access to the bonus round, the buy feature is available for 100x your stake.
336Gates of Olympus combines stunning Greek mythology visuals with an epic orchestral soundtrack that builds tension with every spin. Zeus's lightning effects illuminate the reels as wins cascade down, creating an immersive experience that transports players directly to the realm of the gods. 337With betting options ranging from 0.20 to 100.00 per spin, Gates of Olympus accommodates players of all bankroll sizes while maintaining the potential for life-changing payouts. The game's high volatility means wins may be less frequent, but when they hit, they can deliver truly divine rewards that justify the wait.`,pgp_sweetbonanza1000:`Enter a candy-coated paradise where sweet dreams become reality in Sweet Bonanza 1000, Pragmatic Play's enhanced version of their beloved confectionery classic that takes sugar-rush excitement to explosive new heights. 338Sweet Bonanza 1000 features a 6x5 grid with a pay-anywhere system where matching 8 or more identical symbols anywhere on the reels creates winning combinations. This high volatility slot boasts an RTP of 96.48% and delivers a staggering maximum win potential of up to 21,100x your stake, making it one of the most rewarding slots in the Sweet Bonanza series. 339The game's tumbling reels mechanic removes winning symbols after each payout, allowing new symbols to cascade down and potentially create consecutive wins from a single spin. The colorful candy-themed symbols include juicy fruits like grapes, watermelons, plums, apples, and bananas as lower-paying symbols, while premium symbols feature delicious candies in vibrant blues, greens, reds, and purples. 340The paytable rewards players generously, with fruit symbols paying between 0.40x to 10x for matching 8 to 12 or more symbols, while the premium candy symbols offer substantially higher payouts ranging from 2x to 50x your bet for the same symbol counts. The most valuable symbol can deliver up to 50x your stake when 12 or more appear on the reels. 341Multiplier bombs are the game's signature feature, appearing as colorful spheres that can land anywhere on the grid during both base game and bonus rounds. These special symbols carry random multiplier values ranging from 2x up to an incredible 100x, and when multiple bombs land simultaneously, their values multiply together rather than simply adding, creating the potential for astronomical wins. 342The free spins feature activates when 4 or more lollipop scatter symbols appear anywhere on the reels, awarding 10 initial free spins. During the bonus round, multiplier bombs become even more powerful and frequent, with the potential to hit much higher values. Additional scatter symbols during free spins can retrigger the feature, adding more spins to extend the sweet celebration. 343The ante bet feature allows players to increase their stake by 25% in exchange for significantly improving their chances of triggering the free spins bonus round. For immediate access to the bonus excitement, players can utilize the buy feature for 100x their current bet amount. 344Sweet Bonanza 1000's visual presentation is a feast for the eyes, featuring bright, saturated colors and smooth animations that bring the candy world to life. The upbeat, playful soundtrack perfectly complements the cheerful theme, creating an atmosphere of pure joy and anticipation with every spin. 345The enhanced mathematics model in Sweet Bonanza 1000 delivers more frequent and potentially larger multiplier combinations compared to the original, while maintaining the beloved gameplay mechanics that made the series famous. The increased maximum win potential of 21,100x represents a significant upgrade that can transform modest bets into life-changing payouts. 346With betting options spanning from 0.20 to 100.00 per spin, Sweet Bonanza 1000 welcomes players across all budget ranges while maintaining its reputation for delivering sweet surprises. The high volatility ensures that patience is rewarded with the potential for truly spectacular wins that can multiply your stake beyond your sweetest dreams.`}},h6={title:"Explore all ranks",explore:"Explore Perks",unlock_with_battlepass:"Unlock
346with Battlepass"},f6={title:"Your Rank"},p6={0:"Bronze",1:"Silver",2:"Gold",3:"Platinum",4:"Diamond",5:"Emerald",6:"Whale"},m6={cashback:"Daily Cashback",weekly_cashback:"Weekly Cashback",og_rtp:"Higher RTP in Originals",tribe_leadership:"Tribe Leadership",vip:"Qualified to apply for VIP Status",cashback_percentage:"{percentage}% CB",unlock_levels:"Unlock Level 1-31 Rewards",starting_daily_cashback:"Starting Daily Cashback",starting_weekly_cashback:"Starting Weekly Cashback",unlock_beast_rank:"Unlock Beast Rank",unlock_rank:"Unlock Rank",live_sports:"Live Sports"},g6={title:"Your Rank",completed_rank:"Completed",xp_to_unlock:"{xp} XP to Unlock",get_battlepass:"Get Battlepass to unlock"},y6={xp_left_until_rank_up:"{xp} XP Left"},b6={cta:"Continue Playing"},v6={upcoming_rank:"Next Big Reward",og_rtp:"Originals RTP",cashback:"Cashback",perk_bonus:"20+ Perks",explore:"Explore",weekly_cashback:"Weekly CB",daily_cashback:"Daily CB",rewards:"{amount}+ Rewards",instant_reward:"Instant Reward",combined_cashback:"Combined CB",next_combined_cashback:"Next: {percentage}% Combined Cashback"},w6={explore:"Explore all Benefits",cashback:"Daily & Weekly Cashback",battlepass_only:"BP Only",og_rtp:"Better RTP in Originals",unlock_ranks:"Unlock Ranks",collect_rewards:"Collect Rewards",earn_with_tribes:"Earn with Tribes"},_6="Pre-release",S6={nft:{uniq_players:"692",round_count:"35840",air_drop:"1141",revenue:"57073",turnover:`[ 347 {"date": "2025-09-23", "value": 0.0}, 348 {"date": "2025-09-24", "value": 0.0}, 349 {"date": "2025-09-25", "value": 0.0}, 350 {"date": "2025-09-26", "value": 0.0}, 351 {"date": "2025-09-27", "value": 0.0}, 352 {"date": "2025-09-28", "value": 0.0}, 353 {"date": "2025-09-29", "value": 0.0}, 354 {"date": "2025-09-30", "value": 0.0}, 355 {"date": "2025-10-01", "value": 0.0}, 356 {"date": "2025-10-02", "value": 0.0}, 357 {"date": "2025-10-03", "value": 0.0}, 358 {"date": "2025-10-04", "value": 0.0}, 359 {"date": "2025-10-05", "value": 0.0}, 360 {"date": "2025-10-06", "value": 0.0}, 361 {"date": "2025-10-07", "value": 0.0}, 362 {"date": "2025-10-08", "value": 0.0}, 363 {"date": "2025-10-09", "value": 0.0}, 364 {"date": "2025-10-10", "value": 0.0}, 365 {"date": "2025-10-11", "value": 0.0}, 366 {"date": "2025-10-12", "value": 0.0}, 367 {"date": "2025-10-13", "value": 0.0}, 368 {"date": "2025-10-14", "value": 0.0}, 369 {"date": "2025-10-15", "value": 5013.12}, 370 {"date": "2025-10-16", "value": 2340.68}, 371 {"date": "2025-10-17", "value": 19779.03}, 372 {"date": "2025-10-18", "value": 5347.39}, 373 {"date": "2025-10-19", "value": 8794.08}, 374 {"date": "2025-10-20", "value": 2853.31}, 375 {"date": "2025-10-21", "value": 9063.71}, 376 {"date": "2025-10-22", "value": 11235.58}, 377 {"date": "2025-10-23", "value": 2906.91} 378] 379`,weekly_rtp:"98%"}},k6="Year",E6="Suggested for you",T6="Black Week: Double XP",R6={button:{login:"Login",signup:"Sign Up"}},C6="Whale Specials",A6="Live Casino",x6="Win Big",O6="Cluster Games",I6="Book Games",D6="Bingo Games",L6="Table Games",N6="Most Popular Live Casino",P6="Game Shows",W6="Top 10 Pragmatic",M6="Latest From Pragmatic",B6="Pragmatic Christmas",U6="Top 10 Nolimit City",F6="Biggest Multiplier",$6="Top 10 Hacksaw",z6="Win Big Hacksaw",j6="Top 10 Peter & Sons",G6="Volatility Madness Peter & Sons",H6="Spooky Fest Peter & Sons",V6="Top 10 Endorphina",Y6="Best of Endorphina",q6="Top 10 Red Tiger",Z6="What's New From Red Tiger",K6="Top 10 Popiplay",X6="Win Big Popiplay",J6="Top 10 NetEnt",Q6="High Volatility NetEnt",eU="XXXtreme NetEnt",tU="Responsible Gaming",nU="Your account is self-excluded",rU="You currently cannot play while your self-exclusion is active. If you need help, contact support.",aU="The displayed RTP (return to player) is theoretical combination of slot mechanics with accumulated Battlepass perks.",iU="Buy bundle",oU="Best of Whale Mode: Year III",sU={tournament:"Tournament",weeklyChoice:"Weekly Choice"},lU={invalid_email_error:"Your email is either already registered or invalid. Please try again.",email_already_in_use:"Email is already in use"},cU="Hacksaw Classics",uU="10 x $0.4 Free Spins: Brainwashed",dU="10 x $1 Free Spins: Le Fisherman",hU="$20 Bonus Buy: Sugar Ru
379sh 1000",fU="$80 Bonus Buy: Gates of Olympus SS",pU="30 x $10 Free Spins: Le Bandit",mU="30 x $20 Free Spins: Jelly Express",gU="$3000 Lootbox",yU="$6000 Lootbox",bU="$10,000 Lootbox",vU="$80,000 Cash",wU="$200,000 Cash",_U="$400,000 Cash",SU=JSON.parse(`{"yes":"Yes","no":"No","buy":"Buy","sell":"Sell","pool":"Pool","shares":"shares","section_world":"World Cup","rules":{"title":"Rules","body":"This market will resolve according to the national team that wins the 2026 FIFA World Cup. If at any point it becomes impossible for this team to win the FIFA World Cup based on the rules of FIFA (e.g., they are eliminated in the knockout stage), this market will resolve immediately to \\"No\\". If the 2026 FIFA World Cup is permanently canceled or has not been completed by October 13, 2026, 11:59 PM this market will resolve to \\"Other\\". The primary resolution source will be official information from FIFA, however, a consensus of credible reporting may also be used.","golden_boot":"This market will resolve according to the player who wins the 2026 FIFA World Cup Golden Boot award. The Golden Boot is awarded to the player who scores the most goals during the tournament. In the event of a tie, FIFA's tiebreaker criteria (assists, then fewer minutes played) will be used to determine the winner. This market will resolve after the conclusion of the final match of the tournament. If the 2026 FIFA World Cup is permanently canceled or has not been completed by October 13, 2026, 11:59 PM, this market will resolve to \\"Other\\". The primary resolution source will be official information from FIFA, however, a consensus of credible reporting may also be used.","golden_glove":"This market will resolve according to the goalkeeper who wins the 2026 FIFA World Cup Golden Glove award. The Golden Glove is awarded to the best goalkeeper of the tournament as selected by the FIFA Technical Study Group, based on overall performance including clean sheets, saves, and contribution to their team's progress. This market will resolve after the conclusion of the final match of the tournament. If the 2026 FIFA World Cup is permanently canceled or has not been completed by October 13, 2026, 11:59 PM, this market will resolve to \\"Other\\". The primary resolution source will be official information from FIFA, however, a consensus of credible reporting may also be used.","cristiano_ronaldo":"This market will resolve to \\"Yes\\" if Cristiano Ronaldo scores at least one goal AND performs his signature \\"Siuu\\" celebration (the mid-air jump with arms spread, followed by a turning landing) during Portugal's first group stage match against DR Congo on June 17, 2026. Both conditions must be met for this market to resolve \\"Yes\\". Only goals that stand after all official reviews (including VAR) count â if a goal is disallowed, it does not qualify. If Ronaldo scores but does not perform the \\"Siuu\\" celebration, or does not score at all, this market will resolve to \\"No\\". If Ronaldo is not in Portugal's matchday squad or does not enter the pitch, this market will resolve to \\"No\\". If the match is postponed and rescheduled before October 13, 2026, 11:59 PM, the rescheduled match will be used for resolution. If the match is permanently canceled or not played by October 13, 2026, 11:59 PM, this market will resolve to \\"Other\\". The primary resolution source will be official FIFA broadcast footage, however, a consensus of credible reporting may also be used.","neymar_haiti":"This market will resolve to \\"Yes\\" if Neymar appears on the pitch during Brazil's group stage match against Haiti at the 2026 FIFA World Cup. Neymar must enter the match at any point â starting or as a substitute â for this market to resolve \\"Yes\\". If Neymar is named in Brazil's matchday squad but does not enter the pitch, this market will resolve to \\"No\\". If Neymar is not named in the matchday squad, this market will resolve to \\"No\\". If the match is postponed and rescheduled before October 13, 2026, 11:59 PM, the rescheduled match will be used for resolution. If the match is permanently canceled or not played by October 13, 2026, 11:59 PM, this market will resolve to \\"Other\\". The primary resolution source will be official FIFA broadcast footage, however, a consensus of credible reporting may al
379so be used.","vozinha_instagram":"This market will resolve to \\"Yes\\" if Vozinha's official Instagram account reaches or exceeds 20,000,000 followers at any point before June 30, 2026, 11:59 PM UTC. Only the follower count displayed on his official public Instagram profile will be used as the resolution source. If the account is temporarily unavailable, restricted, or suspended, resolution will be delayed until the account is accessible again. If the account is permanently deleted or banned before the threshold is reached, this market will resolve to \\"No\\". If the deadline passes without the threshold being reached, this market will resolve to \\"No\\". A consensus of credible third-party social media tracking tools may be used to support resolution.","pinkBoots":"This market will resolve to \\"Yes\\" if more than 17 players across both teams combined are wearing predominantly pink boots during the Portugal vs Uzbekistan match on June 23 at the 2026 FIFA World Cup. \\"Pink boots\\" are defined as any boots where pink, magenta, or rose is the dominant visible colour. Any player who sets foot on the pitch during the match counts toward the total â including starting players and substitutes. Each player is counted once, based on the boots they wear when they first enter the field. If a player changes their boots mid-match, the boots worn on their first appearance are used for resolution. If official broadcast footage does not provide sufficient visibility to determine boot colours for one or more players, the market may be delayed pending review of alternative official sources such as team or FIFA photography. If the match is postponed and rescheduled before October 13, 2026, 11:59 PM, the rescheduled match will be used for resolution. If the match is permanently canceled or not played by October 13, 2026, 11:59 PM, this market will resolve to \\"Other\\". The primary resolution source will be official FIFA broadcast footage, however, a consensus of credible match-day photography and reporting may also be used.","crying_r32":"This market will resolve to \\"Yes\\" if official broadcast cameras capture at least one professional football player visibly crying during any Round of 32 match at the 2026 FIFA World Cup. The player must be a registered squad member of one of the competing teams. Crying must be clearly visible on the broadcast â tears or an unambiguous emotional breakdown caught on camera qualify. Emotional reactions that do not clearly show tears (e.g. covering the face, kneeling, or appearing distressed) are not sufficient for resolution. The crying may occur at any point during the match including before kick-off, during play, at half-time, after the final whistle, or during a penalty shootout, provided it is captured by the official broadcast feed. The Round of 32 is defined as all matches played in the first knockout round, expected to conclude by July 6, 2026. If the Round of 32 concludes without a qualifying moment being captured on official broadcast, this market will resolve to \\"No\\". If the schedule is materially changed by FIFA and the Round of 32 extends beyond July 6, 2026, the updated schedule will be used for resolution. If the Round of 32 is canceled entirely, this market will resolve to \\"Other\\". The primary resolution source will be official FIFA broadcast footage, however, a consensus of credible sports media reporting may also be used to support resolution.","bus_delay_r16":"This market will resolve to \\"Yes\\" if any Round of 16 match at the 2026 FIFA World Cup is officially delayed by more than 15 minutes from its scheduled kick-off time, and the delay is attributed â in whole or in part â to a team bus being delayed in traffic. Both conditions must be met: the delay must exceed 15 minutes, and traffic affecting a team's transportation must be a stated contributing cause. The delay must be acknowledged by FIFA, the host venue, or the affected team's official communications. Delays caused by other factors (weather, stadium issues, security, etc.) do not qualify unless traffic is also cited as a contributing factor. The Round of 16 is defined as all matches in the second knockout round of the tournament. If no such delay occurs across any R16 match, this market will resolve to \\"No\\". If the Round of 16 is canceled entirely, this market will resolve to \\"Other\\". The primary resolution source will be official FIFA communications and credible sports media reporting. Social media posts from official team or tournament accounts may also be used to support resolution.","red_card_r32_10m
379in":"This market will resolve to \\"Yes\\" if any player â from either team â receives a direct red card or two yellow cards resulting in a dismissal at any point from kick-off up to and including the 10th minute (including any stoppage time added within that period) in any Round of 32 match at the 2026 FIFA World Cup. The dismissal must be confirmed by the referee on the pitch. A red card shown after a VAR review that was initiated before the 10-minute mark but confirmed after counts toward resolution, provided the original incident occurred within the first 10 minutes. A red card shown to a team staff member or coach does not qualify â the dismissed individual must be a registered outfield player or goalkeeper. If no red card is issued within the first 10 minutes across any R32 match, this market will resolve to \\"No\\". If the Round of 32 is canceled entirely, this market will resolve to \\"Other\\". The Round of 32 is defined as all matches in the first knockout round, expected to conclude by July 6, 2026. The primary resolution source will be official FIFA match reports and broadcast footage. A consensus of credible sports media reporting may also be used to support resolution.","ball_burst":"This market will resolve to \\"Yes\\" if the official match ball used in any 2026 FIFA World Cup game visibly bursts, punctures, or deflates to the point where the referee stops play to replace it. The deflation or burst must be visible on official broadcast footage and must be the direct reason the referee halts play to call for a replacement ball. A ball that is replaced during a stoppage already in progress (e.g. a throw-in, goal kick, or injury break) does not qualify â the ball must be the direct cause of the stoppage. A ball that appears slightly softer but does not prompt the referee to stop play does not qualify. This market covers all matches across all roun
379ds of the 2026 FIFA World Cup. If no such incident occurs across the entire tournament, this market will resolve to \\"No\\". If the tournament is canceled entirely before any match is played, this market will resolve to \\"Other\\". The primary resolution source will be official FIFA broadcast footage. A consensus of credible sports media reporting and official FIFA communications may also be used to support resolution."},"timeline":{"title":"Timeline and payout","market_open":"Market open","market_closes":"Market closes","projected_payout":"Projected payout"},"transaction":{"resolution_source":"Resolution Source","terms":"By trading, you agree to the Terms of Use.","amount":"Amount","placing_trade":"Placing tradeâ¦","trade":"Trade","not_enough_funds":"Not enough funds","total_shares":"Total Shares","est_payout":"Est. Payout","sell_fee":"Sell fee","terms_prefix":"Not sure how this works? ","terms_link":"Rules"},"my":{"title":"My Positions","subtitle":"Track your open positions, P&L, and past calls.","total_value":"Total Value","profit_loss":"Profit and Loss","total_positions":"My total positions","tab_active":"Active","tab_closed":"Closed","tab_activity":"Activity","sort_newest":"Newest","sort_oldest":"Oldest","sort_highest_value":"Highest Value","sort_lowest_value":"Lowest Value","sort_by":"Sort by:","col_position":"Position","col_pnl":"P&L","col_value":"Value","no_active_positions":"No active positions","closed_coming_soon":"Closed positions coming soon","col_trade":"Trade","col_amount":"Amount","loading":"Loading...","no_trade_history":"No trade history yet","load_more":"Load more","bought":"Bought","sold":"Sold","result_win":"Win","result_loss":"Loss","result_refund":"Refund","result_pending":"Pending","payout":"Payout","col_result":"Result","no_closed_positions":"No closed positions"},"faq":{"title":"Frequently Asked Questions","subtitle":"If you can't find an answer here, check out the community forum, reach out on Twitter, or contact support through Chat on Whale.","q1":"What is a prediction market?","a1":"A prediction market lets you trade on real-world outcomes. Think of it like a stock market â but instead of companies, you're buying yes & no positions on whether Brazil wins the World Cup or Messi plays in the final. If you're right, you get paid. If you're wrong, you lose your stake.","q2":"How are the percentages calculated?","a2":"The percentage you see on each outcome is its current market price â driven entirely by what traders are willing to pay. If \\"Spain to win\\" is at 16%, that means a Yes position costs 16¢. More people buying = price goes up. More people selling = price goes down. It's supply and demand, not a house edge. The market decides.","q3":"Can I sell before the World Cup ends?","a3":"Yes. You can sell any position at any time before the event resolves. If you bought \\"Brazil Yes\\" at 20¢ and the price moves to 35¢, you can sell for a profit without waiting for the final whistle. Your P&L updates in real time on the main page.","q4":"When do I get paid?","a4":"Winning positions pay out after the event result is confirmed and the 2-day contest period ends.","q5":"What is the contest period?","a5":"After an event resolves, there's a 2-day window where the result can be disputed before payouts are finalized. If no valid contest is raised, payouts process automatically after the 2 days.","q6":"How is the winner decided?","a6":"Official FIFA match results. Resolution happens shortly after the outcome is confirmed. Every resolution has a 48h contest period.","q7":"What is the World Cup 2026 Raffle?","a7":"Every week, Whale.io runs a raffle for active prediction traders during that week. Spend at least $1 on any prediction and you get 1 raffle ticket. Every additional $1 traded earns another ticket â so the more you trade, the better your chances. Winners are drawn randomly at the end of each week between all qualified traders and the leaderboard is reset for next week.","q8":"How do you prevent manipulation of the odds?","a8":"Prices are set by all traders collectively â not by Whale. Position sizes are capped, trading patterns are monitored, and the more people trading, the harder it is to move the price artificially.","q9":"What currencies can I use?","a9":"All currencies on Whale are supported except $WHALE token. Everything is displayed in USD regardless of what you trade with. 100¢ = $1.","q10":"What does Yes and No mean?","a10":"Every prediction has two sides. Yes means you think it will happen. No means you think it won't. Both sides have a price â and they always add up to $1. Example: Yes 16¢ / No 84¢.","q11":"What happens if an event gets cancelled?","a11":"If an event can't be resolved â for example a match is cancelled and not rescheduled â all positions are refunded at their purchase price. If the event is rescheduled, it's continued until the market close."},"closed_poll":{"header_title":"Market is closed","pending":"Pending","closed_on":"Market closed on"}}`),kU={traded_volume:"$1.84M traded on the World Cup 2026",sidebar_card:{label:"WORLD CUP 2026",headline:"Predict. Compete. Win Big.",description:"Take part of the World Cup",cta:"Make Predictions"},hero_title:"You Called it all season",hero_subtitle:"now get paid for it.",raffle_title:"World Cup Raffle",raffle_every_dollar:"Every $1 =",raffle_ticket:"raffle ticket",raffle_tickets:"Raffle tickets",raffle_description:"Buy any World Cup Market Fresh raffle every week",leaderboard:"leaderboard",coming_soon:"Coming Soon",week_1:"Week 1",week_2
379:"Week 2",week_3:"Week 3",week_4:"Week 4",next_draw:"Next Draw in:",days:"Days",hrs:"Hrs",min:"Min",sec:"Sec",opening_match:"Opening Match",you:"(You)",winner:"Winner",winners_announced:"Winners announced",winners_will_be_announced_soon:"Winners will be announced soon",tabs:{groups:"Groups",knockout_stage:"Knockout stage",games:"Games"},standings:{country:"Country",played:"Played",wins:"Wins",draws:"Draws",losses:"Losses",points:"Points",played_short:"P",wins_short:"W",draws_short:"D",losses_short:"L",points_short:"Pts",group_with_letter:"Group {letter}"},upcoming:{vs:"vs"},cta:{title:"Join the conversation",description:"Thousands of fans breaking down every match in real time. Share your picks and see where the room's leaning.",button:"Open chat"},bracket:{r32:"Round of 32",r16:"Round of 16",qf:"Quarter finals",sf:"Semi-finals",final:"Finals",match:"Match {n}",previous_round:"Previous round",next_round:"Next round",third_place:"3rd place match"},games:{bet_now:"Bet Now"},rules:"Rules",tournament_sportsbook:{title:"Play the tournament. Bet the game.",description:"Our casino tournaments run during the whole World Cup. You can also bet on the real matches in our sportsbook.",live_odds:"Live odds on every match",cta:"Go to Sportsbook",wcfinal_name:"Lift the Cup!",wcfinal_description:`Every $1 you wager on World Cup = 1 point. 380Wagering from Cashback, Free Spin or Free Bet wins? That counts. 381Crash, Originals, Slots, Live Casino or Free Bets or other Sport events themselves donât. Play where it matters!`,wcroundof16_name:"Round of 16",wcroundof16_description:`Every $1 you wager on World Cup = 1 point. 382Wagering from Cashback, Free Spin or Free Bet wins? That counts. 383Crash, Originals, Slots, Live Casino or Free Bets or other Sport events themselves donât. Play where it matters!`}},EU={11:"Limited",12:"Without email verification, minimum withdrawal amount is 10 USD",telegram_auth_gate:x5,auth:O5,"auth.resend_code":"Send Again","auth.resending":"Sending...","auth.reset_link_sent":"Link Sent to your email","auth.back_to_login":"Back to login",check_spam_notice:I5,settings:D5,errors:L5,http:N5,header:P5,modals:W5,currency_menu:M5,"01":"Withdraw through Blockchain","02":"Direct withdrawal through blockchain can take up to 10 minutes. Please be patient!","03":"Withdrawal amount","04":"Available","05":"Minimal withdrawal","06":"Withdrawal completed","010":"Enter your address",global_cashier:B5,global_withdraw:U5,global_withdrawAddress:F5,global_buyCrypto:$5,global_firstname:z5,global_lastname:j5,withdrawal_verify_email_description:G5,withdrawal_verify_email_button:H5,pix:V5,global_games:Y5,global_community:q5,global_user:Z5,global_home:K5,global_whale_originals:X5,global_casino:J5,global_slots:Q5,global_cryptoCasino:eO,global_liveCasino:tO,global_sportsbookMain:nO,global_lootboxMain:rO,global_tournaments:aO,global_tribes:iO,global_rewards:oO,global_earn:sO,global_promotions:lO,global_token_dashboard:cO,global_profile:uO,"012":"Logout",global_whaleToken:dO,global_trade:hO,global_sportsbook:fO,stickyBMenu_menu:pO,stickyBMenu_casino:mO,stickyBMenu_sports:gO,stickyBMenu_originals:yO,stickyBMenu_earn:bO,stickyBMenu_chat:vO,"games.see_over":"See over 4,000+ games",global_recentlyPlayed:wO,global_myBiggestWins:_O,global_search_placeholder:SO,global_search_no_results:kO,global_searchResult:EO,global_foundSearchResult:TO,global_volatility:RO,global_winOften:CO,global_neutral:AO,global_winBig:xO,global_comingSoon:OO,"badge.weeklyChoice":"Weekly Choice","badge.tournament":"Tournament","badge.battlepassExclusive":"Battlepass",global_viewAll:IO,providersSection_title:DO,global_top10:LO,"category.top10":"Top 10",global_whaleOriginals:NO,global_newArrivals:PO,global_whaleSpecials:WO,global_cryptoGames:MO,global_buyFeature:BO,global_megaways:UO,global_mostPopular:FO,global_roulette:$O,global_blackjack:zO,global_baccarat:jO,global_poker:GO,global_yourenotloggedin:HO,global_clickButtonBelowToStartPlaying:VO,global_go_back:YO,"slot.provider":"Provider","slot.real_play":"Real Play",footer_support:qO,global_youMightAlsoLike:ZO,global_suggestedGames:KO,global_gamestats:XO,global_24h:JO,global_week:QO,global_month:eI,global_minimum_maximum_bet:tI,global_maximum_win_multiplier:nI,global_not_available:rI,"entity_summary.provider":"Provider",sidebar:aI,hallOfWhales:iI,leaderboard:oI,meta:sI,landingpage:lI,homepage:cI,"homepage.herobanner.h1":"Whale Casino â Crypto Casino & Sportsbook","homepage.herobanner.h2":"Sometimes Lose, Always Win â Up to 25% Daily Cashback","homepage.herobanner.h3":"Battle Pass: Level Up for Bigger Rewards & Higher Cashback","homepage.banner.stats.playing_now":"14,328 playing right now","homepage.banner.stats.cashed_out":"$1.2M cashed out today","homepage.banner.headline.part1":"200%","homepage.banner.headline.part2":"on your first deposit","homepage.banner.headline.part3":"only on whale.io","homepage.banner.description.part1":"The crypto casino with 4,000+ of your favorite games,","homepage.banner.description.highlight":"up to 25% daily cashback","homepage.banner.description.part2":"and 90-second withdrawals.","homepage.banner.cta.free_spins":"Get Free Spins","homepage.banner.cta.button":"Get Started","homepage.banner.cta.bonus_label":"200% Welcome bonus","homepage.banner.trust.privacy":"Complete Privacy","homepage.banner.trust.provably_fair":"Provably Fair","homepage.banner.trust.withdrawals":"Instant Withdrawals","homepage.banner.featured_in":"Featured in","homepage.hallofwhales.button":"Join the next win","landingpage.tribes.section.title":`PLAY TOGETHER. 384STREAM. EARN A CUT.`,"landingpage.tribes.section.description_part1":"Form a Tribe with your friends. Stream your gameplay. Climb the leaderboard together â","landingpage.tribes.section.description_highlight":"and earn a cut of every viewer's bet.","landingpage.tribes.section.description_part2":"Casino just became a team sport.","landingpage.tribes.section.viewers":"Viewers","landingpage.tribes.section.room_balance":"Room Balance","landingpage.tribes.section.cta":"Join a Tribe","landingpage.builddifferent.header":"Why Whale?","landingpage.builddifferent.title":"BUILD DIFFERENT.","landingpage.builddifferent.description":`Twelve reasons to swim with the whales â not against 385the house.`,"landingpage.builddifferent.cta":"Get paid to play","landingpage.builddifferent.section01.label":"Rewards","landingpage.builddifferent.section01.title":"Get paid to play. Literally.","landingpage.builddifferent.section01.card1.title":"Daily Cashback","landingpage.builddifferent.section01.card1.description":"A cut of every session back in your balance â every single day. Real cash, not credits.","landingpage.builddifferent.section01.card2.title":"Lootboxes","landingpage.builddifferent.section01.card2.description":"Open for cash, merch, NFTs, and the occasional Lambo.","landingpage.builddifferent.section01.card3.title":"NFT airdrops","landingpage.builddifferent.section01.card3.description":"Hold $WHALE, mint Originals, get airdropped â every season.","landingpage.builddifferent.section01.card4.title":"Weekly & Monthly Bonus","landingpage.builddifferent.section01.card4.description":"Top-ups land in your balance every week and every month, just for playing.","landingpage.builddifferent.section02.label":"Trust","landingpage.builddifferent.section02.title":"Why you can sleep at night","landingpage.builddifferent.section02.card1.title":"21M+ players trust us","landingpage.builddifferent.section02.card1.description":"Across 174 countries. One of the largest crypto-native casinos.","landingpage.builddifferent.section02.card2.title":"Complete privacy","landingpage.builddifferent.section02.card2.description":"Wallet in, play, wallet out. We don't track what we don't need.","landingpage.builddifferent.section02.card3.title":"Provably fair","landingpage.builddifferent.section02.card3.description":"Every spin verifiable on-chain. Don't trust â verify.","landingpage.builddifferent.section03.label":"Speed & freedom","landingpage.builddifferent.section03.title":"Get in fast. Get paid faster.","landingpage.builddifferent.section03.card1.title":"Instant withdrawals","landingpage.builddifferent.section03.card1.description":"Median 87 seconds. Hit cash out, watch it land.","landingpage.builddifferent.section03.card2.title":"0% gas fees","landingpage.builddifferent.section03.card2.description":"We cover the network fees. What you win is what you keep.","landingpage.builddifferent.section03.card3.title":"No limits","landingpage.builddifferent.section03.card3.description":"Bet $1 or bet $50,000. Withdraw what you win.","landingpage.builddifferent.section03.card4.title":"Buy crypto on-site","landingpage.builddifferent.section03.card4.description":"Card to wallet in 30 seconds. No exchange detour.","landingpage.builddifferent.section04.label":"Crypto-native","landingpage.builddifferent.section04.title":"Built for how crypto players actually play","landingpage.builddifferent.section04.card1.title":"500+ wallets supported","landingpage.builddifferent.section04.card1.description":"MetaMask, Phantom, Trust, Ledger â every wallet that matters.","landingpage.builddifferent.section04.card2.title":"VIP transfer","landingpage.builddifferent.section04.card2.description":"Bring your status from another casino. Keep your tier â no grinding back.","landingpage.builddifferent.section04.card3.title":"14 cryptocurrencies supported","landingpage.builddifferent.section04.card3.description":"BTC, ETH, USDT, GRAM and 10 more â deposit and cash out in your coin.","landingpage.imageshowcase.card1.title":`Pull up a seat. 386Real dealers 387waiting.`,"landingpage.imageshowcase.card1.description":`Blackjack, Roulette, Crazy 388Time - live now.`,"landingpage.imageshowcase.card2.title":`OWN A WHALE. GET 389PAID FOR IT.`,"landingpage.imageshowcase.card2.description":"Mint Whale Originals â and collect airdrops every season.","landingpage.imageshowcase.card3.title":`EVERY SPIN 390WINS`,"landingpage.imageshowcase.card3.description":"From Whale merch to a Lamborghini","landingpage.imageshowcase.card4.title":`PLAY WITH $WHALE. 391EARN LIKE ONE.`,"landingpage.imageshowcase.card4.description":`Play with $Whale on Originals at 99% 392RTP. Unlock Battlepass for cashback, 393exclusive releases and more.`,"landingpage.imageshowcase.vip.title":"VIP TRANSFER PROGRAM","landingpage.imageshowcase.vip.description":`Get treat you like the Whale you are! We'll transfer your VIP status, upgrade your perks and give 394you a free Battlepass to benefit from Cashback up to 25% & claim $222,222 worth of rewards!`,"landingpage.imageshowcase.vip.button":"Read More","landingpage.imageshowcase.cta.timer":"Welcome bonus expires in 00:01:32","landingpage.imageshowcase.cta.button":"I am ready","landingpage.letterfuturewhales.chapter_word":"Chapter","landingpage.letterfuturewhales.header.eyebrow":"A Letter to Future Whales","landingpage.letterfuturewhales.header.title":"The Crypto Casino That Pays You Back.","landingpage.letterfuturewhales.header.subtitle":"Whale.io exists because every other crypto casino was built to keep your money. We were built to give it back â every day, in crypto, with no strings.","landingpage.letterfuturewhales.chapter1.heading":"Why We Built This Crypto Casino","landingpage.letterfuturewhales.chapter1.span":"The math of the house edge isn't going anywhere â but we won't pretend it doesn't exist. That honesty is what separates Whale.io from every other online casino.","landingpage.letterfuturewhales.chapter1.p1":"Most casinos are designed around one outcome: keeping as much of your money as possible. We looked at that model and thought it could work differently. What if the math still favoured the house, but the platform was structured to return real value to the players who show up?","landingpage.letterfuturewhales.chapter1.p2.part1":"That's the reason Whale.io has been ","landingpage.letterfuturewhales.chapter1.p2.bold":"crypto-native from day one","landingpage.letterfuturewhales.chapter1.p2.part2":" â not a traditional casino with a Bitcoin button bolted on. Every transaction runs on blockchain rails because crypto is the only infrastru
394cture fast and transparent enough to support what we're building.","landingpage.letterfuturewhales.chapter1.p3.part1":"We won't promise you'll always win. But we will promise the odds are transparent, the ","landingpage.letterfuturewhales.chapter1.p3.bold":"crypto payouts","landingpage.letterfuturewhales.chapter1.p3.part2":" are instant, and the system is designed for people who understand the value of their money.","landingpage.letterfuturewhales.chapter1.quote":`"WE DON'T THINK OF YOU AS A CUSTOMER. WE THINK OF YOU AS A SHAREHOLDER, MATHEMATICALLY, BECAUSE THAT'S WHAT CASHBACK MAKES YOU."`,"landingpage.letterfuturewhales.chapter1.quote_attribution":"â The Whale Team","landingpage.letterfuturewhales.chapter2.heading":"What We Built: Crypto Casino & Sportsbook","landingpage.letterfuturewhales.chapter2.span":"A casino. A sportsbook. One wallet.","landingpage.letterfuturewhales.chapter2.p1.part1":"Whale.io is a ","landingpage.letterfuturewhales.chapter2.p1.bold1":"crypto-native casino and sportsbook","landingpage.letterfuturewhales.chapter2.p1.part2":" with instant crypto payouts, ","landingpage.letterfuturewhales.chapter2.p1.bold2":"provably fair","landingpage.letterfuturewhales.chapter2.p1.part3":" results, and no reason to trust anyone's word â because you can verify it all yourself.","landingpage.letterfuturewhales.chapter2.p2.part1":"Choose from hundreds of thrilling ","landingpage.letterfuturewhales.chapter2.p2.bold1":"casino","landingpage.letterfuturewhales.chapter2.p2.part2":" titles from the best studios in the industry. Stake games in a single click. ","landingpage.letterfuturewhales.chapter2.p2.link_livecasino":"Live casino","landingpage.letterfuturewhales.chapter2.p2.part3":" with real dealers and real-time action, right from your screen. A full ","landingpage.letterfuturewhales.chapter2.p2.link_sportsbook":"sportsbook","landingpage.letterfuturewhales.chapter2.p2.part4":" â live bets, pre-match odds, and everything in between. Or try a ","landingpage.letterfuturewhales.chapter2.p2.link_originals":"Whale Original","landingpage.letterfuturewhales.chapter2.p2.part5":": crash, dice, roulette â each one ","landingpage.letterfuturewhales.chapter2.p2.bold2":"provably fair","landingpage.letterfuturewhales.chapter2.p2.part6":", fast, and built for crypto.","landingpage.letterfuturewhales.chapter3.heading":"How Crypto Deposits and Withdrawals Work","landingpage.letterfuturewhales.chapter3.span":"Banking delays are over.","landingpage.letterfuturewhales.chapter3.p1.part1":"At most online casinos, withdrawals mean waiting days for someone to manually approve your payout. At Whale.io, ","landingpage.letterfuturewhales.chapter3.p1.bold1":"instant crypto withdrawals","landingpage.letterfuturewhales.chapter3.p1.part2":" get your winnings to your wallet the moment you request them. Lightning-fast. No three-day holding periods. ","landingpage.letterfuturewhales.chapter3.p1.bold2":"Blockchain-verified","landingpage.letterfuturewhales.chapter3.p1.part3":" transaction receipts mean you can confirm every transaction yourself.","landingpage.letterfuturewhales.chapter3.p2.part1":"Whether you're a ","landingpage.letterfuturewhales.chapter3.p2.bold":"Bitcoin","landingpage.letterfuturewhales.chapter3.p2.part2":" maximalist, a Solana believer, or a memecoin gambler â Whale.io supports your wallet and your way of playing.","landingpage.letterfuturewhales.chapter4.heading":"How the Players Win: Up to 25% Crypto Casino Cashback","landingpage.letterfuturewhales.chapter4.span":"Every spin and every bet brings you closer to the next reward.","landingpage.letterfuturewhales.chapter4.p1.part1":"We've built a loyalty system that doesn't mock you. Up to ","landingpage.letterfuturewhales.chapter4.p1.bold":"25% daily cashback","landingpage.letterfuturewhales.chapter4.p1.part2":" â a permanent feature that scales the more you play. Start with a 200% welcome bonus on your first crypto deposit, then keep earning through daily cashback and regular deposit bonuses. Because the math says if we're going to take from you, we should at least have the decency to give back before withdrawal.","landingpage.letterfuturewhales.chapter4.card5.title":"200% Welcome Bonus.","landingpage.letterfuturewhales.chapter4.card5.description":"New to Whale.io? Your first crypto deposit is matched with a 200% welcome bonus â one of the largest in any crypto casino. Plus regular deposit bonuses that reward you every time you top up.","landingpage.letterfuturewhales.chapter4.card1.title":"Up to 25% daily cashback.","landingpage.letterfuturewhales.chapter4.card1.description":"Losses from yesterday, returned today. Credited to your balance automatically â no forms to fill, no wagering requirements to clear. #SometimesLoseAlwaysWin","landingpage.letterfuturewhales.chapter4.card2.title":"Weekly and Monthly Bonus.","landingpage.letterfuturewhales.chapter4.card2.description":"Consistent rakeback rewards on a weekly and monthly cycle. The more you play, the more you earn back â automatically, no claim forms, no wagering requirements.","landingpage.letterfuturewhales.chapter4.card3.title":"Missions.","landingpage.letterfuturewhales.chapter4.card3.description":"Complete daily and weekly challenges to earn $WHALE tokens. Simple goals, real payouts.","landingpage.letterfuturewhales.chapter4.card4.title":"Lootboxes.","landingpage.letterfuturewhales.chapter4.card4.description":"Unlock mystery prizes â from free spins and bonuses to Whale Merch. O
394ne of our lootboxes pays out an actual Lamborghini. Not a joke.","landingpage.letterfuturewhales.chapter4.p2.part1":"It's not just a casino. It's a player-driven ","landingpage.letterfuturewhales.chapter4.p2.bold":"crypto casino","landingpage.letterfuturewhales.chapter4.p2.part2":" experience built for people who think gambling should give back more.","landingpage.letterfuturewhales.chapter5.heading":"Why Playing Alone Is Over: Tribes at Whale.io","landingpage.letterfuturewhales.chapter5.span":"Casinos used to be lonely places. We changed that.","landingpage.letterfuturewhales.chapter5.p1.link":"Tribes","landingpage.letterfuturewhales.chapter5.p1.part1":" is a built-in social feature in the Whale.io ","landingpage.letterfuturewhales.chapter5.p1.bold":"crypto casino","landingpage.letterfuturewhales.chapter5.p1.part2":" â create or join a Tribe, share wins, compete on leaderboards together. Stream your own gameplay and earn a share of your community's activity.","landingpage.letterfuturewhales.chapter5.p2.part1":"Top Tribe members and community leaders get rewarded â exclusive badges, drops, multiplied bonuses, and season-based competitions. It's not just about playing. It's about belonging to something bigger in the ","landingpage.letterfuturewhales.chapter5.p2.bold":"crypto gaming","landingpage.letterfuturewhales.chapter5.p2.part2":" community.","landingpage.letterfuturewhales.chapter6.heading":"Games We Built Ourselves: Provably Fair Crypto Casino Originals","landingpage.letterfuturewhales.chapter6.span":"Whale Originals â exclusive crypto casino games built in-house, built for us, the degen kind.","landingpage.letterfuturewhales.chapter6.p1.part1":"Our in-house titles don't come from third-party studios. They're our own. Whale ","landingpage.letterfuturewhales.chapter6.p1.link":"Originals","landingpage.letterfuturewhales.chapter6.p1.part2":" are ","landingpage.letterfuturewhales.chapter6.p1.bold":"provably fair","landingpage.letterfuturewhales.chapter6.p1.part3":", transparent, verifiable, and loaded with multiplier potential.","landingpage.letterfuturewhales.chapter6.p2.part1":"Every game is ","landingpage.letterfuturewhales.chapter6.p2.bold":"provably fair","landingpage.letterfuturewhales.chapter6.p2.part2":" â meaning results are transparent, verifiable, and impossible to manipulate. You don't have to trust us â you can verify.","landingpage.letterfuturewhales.chapter7.heading":"When Things Go Sideways: Fast Crypto Casino Support","landingpage.letterfuturewhales.chapter7.span":"Real people. Real answers. Real fast.","landingpage.letterfuturewhales.chapter7.p1.part1":"Player experience comes first, full stop. Our support team is online around the clock â not a bot that redirects you to an FAQ, but a real team that actually resolves issues quickly. Whether it's a ","landingpage.letterfuturewhales.chapter7.p1.bold1":"crypto deposit","landingpage.letterfuturewhales.chapter7.p1.part2":" question, a game concern, or account help â we respond fast because in the ","landingpage.letterfuturewhales.chapter7.p1.bold2":"crypto casino","landingpage.letterfuturewhales.chapter7.p1.part3":" world, delays cost trust.","landingpage.letterfuturewhales.footer.eyebrow":"The invitation","landingpage.letterfuturewhales.footer.subtitle":"25% cashback. 200% welcome bonus. Weekly and Monthly Bonus. Tribes. Whale Originals. Instant crypto payouts. The most rewarding crypto casino and sportsbook â built to give back to players.","landingpage.letterfuturewhales.cta.button":"Get Started","landingpage.letterfuturewhales.cta.continue_reading":"Continue Reading",modal:uI,avatar:dI,vip:hI,verify_email:fI,global_language:pI,global_verify:mI,global_Next:gI,global_delete:yI,global_view:bI,global_verifyNow:vI,global_welcome:wI,"modal.settings.password.current.placeholder":"Enter your current password","modal.settings.password.new.placeholder":"Enter new password","modal.settings.password.confirm.placeholder":"Confirm new password",table:_I,provablyFair:SI,games:kI,rtp_stats:EI,notification:TI,preloader:RI,originalGames:CI,global_copied:AI,global_history:xI,global_round:OI,global_rules:II,global_totalBets:DI,global_win_constrained:LI,global_congratulations:NI,global_youWon:PI,global_win:WI,global_na:MI,global_you:BI,global_chat_badge_moderator:UI,global_chat_badge_tribe_host:FI,global_loading:$I,footer_termsAndConditions:zI,footer_responsibleGaming:jI,footer_fairness:GI,footer_restrictedJurisdictions:HI,footer_amlPolicy:VI,footer_affiliates:YI,footer_trade_whale:qI,footer_crock_nft:ZI,footer_disclaimer:KI,global_legal:XI,global_privacy_policy:JI,"01_promotions":"The Daily Fin",global_marbles:QI,global_wtf:eD,global_referAFriend:tD,global_football:nD,global_live:rD,global_basketball:aD,global_tennis:iD,global_iceHockey:oD,global_accountRestricted:sD,global_accountRestricted_description:lD,global_accountRestricted_button_verify:cD,global_accountRestricted_button_contact:uD,global_accountRestricted_description_only_support:dD,apk:hD,geoRestriction:fD,error:pD,global_typeYourEmailHere:mD,global_selectCountry:gD,global_phone:yD,global_postaladdress:bD,global_city:vD,global_postalcode:wD,lootbox:_D,lootbox_tutorial:SD,global_chat_ban_user:kD,global_chat_big_win_message:ED,global_chat_button_confirm_text:TD,global_chat_close_poll:RD,global_chat_date_today_key:CD,global_chat_date_yesterday_key:AD,global_chat_delete_message:xD,global_chat_go_to_replied:OD,global_chat_join_tribes_button:ID,global_chat_join_tribes_message:DD,global_chat_loading_poll:LD,global_chat_login_prompt_description:ND,global_chat_login_prompt_title:PD,global_chat_placeholder:WD,global_chat_reply:MD,global_chat_rules:BD,global_chat_rules_content_p1_content:UD,global_chat_rules_content_p1_t
394itle:FD,global_chat_rules_content_p2_1:$D,global_chat_rules_content_p2_2:zD,global_chat_rules_content_p2_3:jD,global_chat_rules_content_p2_4:GD,global_chat_rules_content_p2_5:HD,global_chat_rules_content_p2_title:VD,global_chat_rules_content_p3_1:YD,global_chat_rules_content_p3_2:qD,global_chat_rules_content_p3_3:ZD,global_chat_rules_content_p3_title:KD,global_chat_rules_content_p4_1:XD,global_chat_rules_content_p4_title:JD,global_chat_search_placeholder:QD,global_chat_sign_in:eL,global_chat_tab_emoji:tL,global_chat_tab_gifs:nL,global_chat_tab_stickers:rL,global_poll_add_option:aL,global_poll_add_option_hint:iL,global_poll_duration:oL,global_poll_multiple_answers:sL,global_poll_new_poll:lL,global_poll_option_placeholder:cL,global_poll_options:uL,global_poll_poll:dL,global_poll_publish:hL,global_poll_publishing:fL,global_poll_question:pL,global_poll_question_placeholder:mL,global_poll_quiz:gL,global_poll_quiz_mode:yL,global_poll_vote:bL,global_poll_voted:vL,global_poll_voting:wL,global_chat_no_channels:_L,global_chat_connecting:SL,global_chat_disconnected:kL,global_chat_load_more:EL,global_chat_loading:TL,global_chat_empty:RL,global_chat_send_failed:CL,global_chat_gif_empty:AL,global_chat_stickers_empty:xL,global_tournaments_placeholder:OL,battlepass:IL,rewards:DL,purchase_battlepass_modal:LL,purchase_battlepass_complete_modal:NL,battlepass_perk_carousel:PL,get_battlepass_banner:WL,earn:ML,"rank.0":"Bronze","rank.1":"Silver","rank.2":"Gold","rank.3":"Platinum","rank.4":"Diamond","rank.5":"Emerald","rank.6":"Whale",battlepass_recent_purchases:BL,"notification-center.title":"Rewards","notification-center.claim.all":"Claim all","rank_perks_modal.cta":"See all perks",mission_card:UL,"bonuses.heading":"Bonuses","bonuses.claimable_title":"Available to claim","bonuses.accruing_title":"Accruing this period","bonuses.daily_cashback_t
394itle":"Daily cashback","bonuses.daily.title":"Daily Cashback","bonuses.daily.earned_today":"Earned today","bonuses.daily.claim_now":"Claim Now!","bonuses.daily.claimable_in":"Claimable in:","bonuses.daily.claimed":"Claimed","bonuses.daily.empty_title":"Play. Earn back. Daily.","bonuses.daily.empty_subtitle":"Start playing and watch this fill up. Up to 25% of your losses, back as cash every day.","bonuses.weekly":"Weekly bonus","bonuses.monthly":"Monthly bonus","bonuses.next_release":"Next release","bonuses.claimable_until":"Claimable until","bonuses.accrued":"Accrued so far","bonuses.empty":"No bonuses available yet. Keep playing to start earning.","bonuses.hero.promo_title":"Supercharge your first deposit by","bonuses.hero.promo_subtitle":"We'll add a {percent}% bonus to your first deposit â then keep earning cash back on every bet: daily, weekly and monthly.","bonuses.hero.min_deposit":"Minimum $10 deposit","bonuses.hero.claim_cta":"Claim {percent}% Bonus","bonuses.hero.welcome":"Welcome to bonuses, {username}","bonuses.hero.welcome_subtitle":"Every bet earns you rewards - Daily Cashback, Weekly & Monthly Bonus. No seasons, no battlepass. Start Playing and Claiming cash rewards.","bonuses.hero.balance":"Balance","bonuses.hero.withdraw_anytime":"Withdraw anytime","bonuses.hero.deposit":"Deposit","bonuses.hero.withdraw":"Withdraw","bonuses.hero.available_bonus":"Bonus Balance","bonuses.hero.ready_to_spin":"Unlock by Playing","bonuses.first_deposit.title":"Your first-deposit bonus","bonuses.first_deposit.unlocked":"{unlocked} of {total} unlocked","bonuses.first_deposit.hint":"Claim your daily cashback, weekly and monthly bonuses to release the rest â every claim unlocks more.","bonuses.periodic.weekly_title":"Weekly bonus","bonuses.periodic.monthly_title":"Monthly bonus","bonuses.periodic.earned_week":"Earned this week","bonuses.periodic.earned_month":"Earned this month","bonuses.periodic.claim":"Claim","bonuses.periodic.claimable_in":"Claimable in:","bonuses.periodic.activate":"Activate by playing games","bonuses.periodic.explore_games":"Explore games","bonuses.tournament_winnings.title":"Tournament winnings","bonuses.tournament_winnings.rank":"Rank #{rank}","bonuses.level.title":"Cashback & Level","bonuses.level.subtitle":"Your cashback rate climbs with every level","bonuses.level.level":"Level {level}","bonuses.level.next_level":"Next level: {percent} cashback","bonuses.level.exp":"exp","bonuses.level.wager_to_next":"wager to reach level {level}","bonuses.level.your_rank":"Your rank","bonuses.level.keep_playing":"Keep playing to climb the ranks!","bonuses.level.target_level":"level {level}","bonuses.level.cashback_rate":"Cashback rate","bonuses.level.cashback_rate_sub":"of your eligible wagers returned as cashback","bonuses.level.footnote":"Cashback is calculated on eligible wagers only. Bonuses and certain games may be excluded.","bonuses.stats.total_rewarded":"Total Rewarded","bonuses.stats.total_rewarded_sub":"Across all bonuses · lifetime","bonuses.stats.daily_cashback":"Daily Cashback","bonuses.stats.days_claimed":"{count} days claimed","bonuses.stats.weekly_bonus":"Weekly Bonus","bonuses.stats.weeks_claimed":"{count} weeks claimed","bonuses.stats.monthly_bonus":"Monthly Bonus","bonuses.stats.months_claimed":"{count} months claimed","bonuses.missions.coming_soon":"Missions â coming soon","bonuses.missions.promo.ranks_title":"Unlock Ranks","bonuses.missions.promo.ranks_desc":"Climb the ranks to unlock bigger rewards.","bonuses.ranks.coming_soon":"Ranks & benefits â coming soon","bonuses.ranks.title":"Ranks & their benefits","bonuses.ranks.subtitle":"Each rank has four levels. Every level lifts your cashback. You only move up.","bonuses.ranks.levels_range":"Levels I - IV","bonuses.ranks.max_level":"Max Level","bonuses.ranks.cashback":"Cashback","bonuses.ranks.current":"Current","bonuses.benefits.how":"How it works?","bonuses.benefits.title":"Earn more. The more you play.","bonuses.benefits.intro":"Four reward systems run side by side.","bonuses.benefits.term_daily":"Daily cashback","bonuses.benefits.daily_desc":"returns a share of your play in cash.","bonuses.benefits.term_bonuses":"Bonuses","bonuses.benefits.bonuses_desc":"stack up weekly and monthly just for playing.","bonuses.benefits.term_missions":"Missions","bonuses.benefits.missions_desc":"pay bonus for hitting simple targets.","bonuses.benefits.rank_pre":"And your","bonuses.benefits.term_rank":"Rank","bonuses.benefits.rank_desc":"climbs as you play, raising your cashback rate at every level.","bonuses.benefits.cta":"Get Started","bonuses.missions.title":"Missions","bonuses.missions.subtitle":"Complete missions and earn extra rewards","bonuses.missions.install_apk.title":"Install the app","bonuses.missions.install_apk.reward":"Reward · Bonus","bonuses.missions.follow_x.title":"Follow us on X","bonuses.missions.follow_x.reward":"Reward · Bonus","bonuses.missions.inv
394ite.title":"Invite 5 friends ({progress}/5)","bonuses.missions.invite.reward":"Reward · Bonus","bonuses.missions.claim":"Claim","bonuses.missions.explore":"Explore","bonuses.missions.default_title":"Complete mission","bonuses.missions.follow":"Follow","bonuses.missions.invite_cta":"Invite","bonuses.missions.completed":"Completed","bonuses.missions.claimed":"Claimed","bonuses.missions.reward_prefix":"Reward","bonuses.missions.battle_pass":"Battle Pass","bonuses.missions.free_spins":"{count} Free Spins","bonuses.missions.free_bets":"{count} Free Bets","bonuses.missions.lootbox":"{count} Lootbox","bonuses.missions.lootbox_named":"{name} Lootbox","bonuses.missions.lootboxes_named":"{count} {name} Lootboxes","bonuses.missions.cashback":"{amount} Cashback","bonuses.missions.copy_link":"Copy","bonuses.missions.link_copied":"Referral link copied","bonuses.missions.play":"Play","bonuses.missions.deposit_cta":"Deposit","bonuses.missions.titles.wager":"Wager ${amount}","bonuses.missions.titles.wager_game":"Wager ${amount} in game","bonuses.missions.titles.wager_game_named":"Wager ${amount} in {game}","bonuses.missions.titles.wager_sportsbook":"Wager ${amount} in Sportsbook","bonuses.missions.titles.bet_in_game":"Place a bet in {game}","bonuses.missions.titles.bet_sportsbook":"Place a bet in Sportsbook","bonuses.missions.titles.bet_discipline":"Bet on {discipline}","bonuses.missions.titles.deposit":"Deposit ${amount}","bonuses.missions.titles.level":"Reach level {amount}","bonuses.missions.titles.xp":"Earn {amount} XP","bonuses.missions.titles.streak":"Check in {amount} days","bonuses.missions.titles.place_bet":"Place a bet","bonuses.missions.titles.place_bet_over":"Place a bet over ${amount}","bonuses.missions.titles.place_bet_below":"Place a bet below ${amount}","bonuses.missions.titles.kyc":"Verify your account","bonuses.missions.titles.claim_cashback":"Claim your cashback","bonuses.missions.titles.review":"Leave a review","bonuses.missions.titles.connect_email":"Connect your email","bonuses.faq.title":"Frequently Asked Questions","bonuses.faq.q1":"What is the Reward Center on Whale.io?","bonuses.faq.a1":"It's Whale.io's always-on rewards engine â every bet pays you back in real cash. Daily Cashback, a Weekly Bonus, and a Monthly Bonus, all stacking automatically as you play, with your rate climbing through the ranks. No pass to buy, no season to chase â just play and claim.","bonuses.faq.q2":"How do I start earning?","bonuses.faq.a2":"Just play. Bonuses are earned, not bought â every eligible bet builds your cashback from your very first wager. Nothing to unlock, nothing to purchase.","bonuses.faq.q3":"Who's eligible for bonuses?","bonuses.faq.a3":"Any registered Whale.io player in good standing, subject to regional gaming rules. New or returning â everyone earns from their first bet.","bonuses.faq.q4":"What does the bonus system include?","bonuses.faq.a4":"Four cash rewards, all on one page: Daily Cashback (up to 25%, based on your net loss), a Weekly Bonus (2% of adjusted wagers), a Monthly Bonus (1.5% of adjusted wagers), and the occasional Mission Rewards â one-off rewards for completing missions. Plus a permanent level that lifts your cashback rate the more you play.","bonuses.faq.q5":"What is cashback and how does it work?","bonuses.faq.a5":"You earn a percentage of your eligible wagers back as cash. Daily Cashback is based on your net loss; the Weekly and Monthly Bonuses accrue on every bet you place.","bonuses.faq.q6":"How are the percentages calculated?","bonuses.faq.a6":"Your Daily Cashback rate is tied to your level and climbs as you play â up to 25%. The Weekly Bonus pays 2% and the Monthly Bonus 1.5% of your adjusted wagers, accruing live as you bet. It is calculated on a wager basis using the following formula: Monthly / Weekly Bonus = Total Wager à House Margin à Bonus Percentage.","bonuses.faq.q7":"When can I claim my bonuses?","bonuses.faq.a7":"Daily Cashback unlocks once per day. The Weekly and Monthly Bonuses unlock at the end of each period and stay claimable until the next drop. Every bonus has a live timer, so you always know what's ready.","bonuses.faq.q8":"What happens if I don't claim in time?","bonuses.faq.a8":"Unclaimed bonuses expire when the next period is released. Claim them before the timer runs out â the page shows exactly how long you've got.","bonuses.faq.q9":"Are bonuses real cash, or do I have to wager them?","bonuses.faq.a9":"Real cash with no wagering requirements after claiming. No 40à rollover, no bonus-buy strings. Claim it and it's yours â play it or withdraw it.","bonuses.faq.q10":"What are levels and ranks â and do they reset?","bonuses.faq.a10":"Your level is permanent. It never resets with a season. The higher your lifetime level, the higher your Daily Cashback rate â climbing through ranks from Bronze all the way to Whale. You keep what you earn.","bonuses.faq.q11":"How
394is the new system better than the Battlepass?","bonuses.faq.a11":"It does everything the Battlepass did â better. Cashback is permanent and only climbs, every reward is real cash instead of spins or lootboxes, and it's all unlocked from your first bet â no purchase, no season reset. Up to 25% daily, plus weekly and monthly bonuses, running automatically.","bonuses.faq.q12":"I had a Battlepass or Season 5 progress â what carries over?","bonuses.faq.a12":"Everything came with you. Your Season 5 level was mapped straight into the new permanent system, and any unclaimed rewards were honoured â you pick up right where you left off, on a level that never resets.","bonuses.faq.q13":"How do I unlock my Bonus Balance?","bonuses.faq.a13":"By playing. You unlock it through your three bonuses â each one releases part of your Bonus Balance into your USDT balance as cash, with no extra wagering:<ul><li><strong>Daily Cashback</strong> â a percentage of your daily net loss back, claimable every day.</li><li><strong>Weekly Bonus</strong> â grows as you play all week, then unlocks every week to claim as cash. The more you wager, the bigger it gets.</li><li><strong>Monthly Bonus</strong> â builds all month from your play and pays out on the 1st.</li></ul>Each time you claim one, that amount moves from your Bonus Balance into your balance. The more you play, the more you unlock.",global_cryptoMarkets:FL,global_token:$L,global_alltime:zL,global_explore:jL,global_read_more:GL,global_read_less:HL,global_nft_faq_1_q:VL,global_nft_faq_1_a:YL,global_nft_faq_2_q:qL,global_nft_faq_2_a:ZL,global_nft_faq_3_q:KL,global_nft_faq_3_a:XL,global_nft_faq_4_q:JL,global_nft_faq_4_a:QL,global_nft_faq_5_q:eN,global_nft_faq_5_a:tN,global_nft_faq_6_q:nN,global_nft_faq_6_a:rN,global_nft_faq_7_q:aN,global_nft_faq_7_a:iN,global_nft_faq_8_q:oN,global_nft_faq_8_a:sN,global_nft_faq_9_q:lN,global_nft_faq_9_a:cN,whale_token_dashboard:uN,nft:dN,global_play:hN,country:fN,termsAccepted:pN,termsPopup_accept:mN,global_dob:gN,global_close:yN,sidebarPromo:bN,tribes:vN,tribes_widget:wN,tribes_explainer:_N,global_ongoingtribes:SN,"meta.tribes.title":"Tribes - Join a Team & Win Together | Whale.io","meta.tribes.description":"Team up with players in Tribes for collaborative missions, shared rewards, and exclusive bonuses. The most social crypto casino experience. Win together at Whale.io.","tribes.streamer.startTribe":"Start Your Tribe","tribes.streamer.howto":"How to Become a Leader?","tribes.streamer.chrome_required.title":"Stream Launch Restricted","tribes.streamer.chrome_required.description":"To ensure the best streaming experience, streams can only be launched using Google Chrome. Please install or switch to Chrome to start your stream","tribes.streamer.chrome_required.download":"Download Chrome","tribes.streamer.chrome_recommend.how_to_video":"Watch video","tribes_widget.players":"Players","tribes_widget.selectedGame":"Selected Game","tribes_widget.totalBalance":"Total Balance",tribes_infocards_headerTitle:kN,tribes_infocards_headerDescription:EN,tribes_infocards_cards_1_title:TN,tribes_infocards_cards_1_description:RN,tribes_infocards_cards_2_title:CN,tribes_infocards_cards_2_description:AN,tribes_infocards_cards_3_title:xN,tribes_infocards_cards_3_description:ON,tournament_all:IN,tournament_ongoing:DN,tournament_upcoming:LN,tournament_finished:NN,tournament_starting:PN,tournament_lobby_title:WN,tournament_lobby_subtitle:MN,global_noRecords:BN,global_error_generic:UN,global_showmore:FN,global_copy:$N,global_share:zN,tournaments:jN,casinotournaments:GN,promo:HN,global_address:VN,global_verified:YN,global_checkYourEmail:qN,global_weWillRedirectYouBackIn:ZN,global_weWillRedirectYouBackInSeconds:KN,global_redirecting:XN,global_youveBeenVerified:JN,global_verifyYourAccount:QN,global_royalrealm:eP,global_ambassador_raf_faq_1_q:tP,global_ambassador_raf_faq_1_a:nP,global_ambassador_raf_faq_2_q:rP,global_ambassador_raf_faq_2_a:aP,global_ambassador_raf_faq_3_q:iP,global_ambassador_raf_faq_3_a:oP,global_ambassador_raf_faq_4_q:sP,global_ambassador_raf_faq_4_a:lP,global_ambassador_raf_faq_5_q:cP,global_ambassador_raf_faq_5_a:uP,global_ambassador_raf_faq_6_q:dP,global_ambassador_raf_faq_6_a:hP,global_ambassador_raf_faq_7_q:fP,global_ambassador_raf_faq_7_a:pP,global_ambassador_raf_faq_8_q:mP,global_ambassador_raf_faq_8_a:gP,global_influencer_raf_faq_1_q:yP,global_influencer_raf_faq_1_a:bP,global_influencer_raf_faq_2_q:vP,global_influencer_raf_faq_2_a:wP,global_influencer_raf_faq_3_q:_P,global_influencer_raf_faq_3_a:SP,global_influencer_raf_faq_4_q:kP,global_influencer_raf_faq_4_a:EP,global_influencer_raf_faq_5_q:TP,global_influencer_raf_faq_5_a:RP,global_influencer_raf_faq_6_q:CP,global_influencer_raf_faq_6_a:AP,global_influencer_raf_faq_7_q:xP,global_influencer_raf_faq_7_a:OP,global_influencer_raf_faq_8_q:IP,global_influencer_raf_faq_8_a:DP,global_raf_faq_1_q:LP,global_raf_faq_1_a:NP,global_raf_faq_2_q:PP,global_raf_faq_2_a:WP,global_raf_faq_3_q:MP,global_raf_faq_3_a:BP,global_raf_faq_4_q:UP,global_raf_faq_4_a:FP,global_raf_faq_5_q:$P,global_raf_faq_5_a:zP,global_raf_faq_6_q:jP,global_raf_faq_6_a:GP,global_raf_faq_7_q:HP,global_raf_faq_7_a:VP,global_raf_faq_8_q:YP,global_raf_faq_8_a:qP,global_raf_faq_9_q:ZP,global_raf_faq_9_a:KP,global_earningsCollected:XP,global_okay:JP,global_referral:QP,global_yourProfit:eW,global_yourReferrals:tW,global_yourReferralLink:nW,global_collect:rW,global_totalEarnings:aW,global_raf:iW,global_yourRewards:oW,"global_refer-a-Friend":"Refer -a-Friend",global_dontMissTheFun:sW,global_joinTheCommunity:lW,global_top3FavouriteGames:cW,global_totalWins:uW,global_totalWagered:dW,global_required:hW,global_withdrawAmount:fW,global_available:pW,global_logout:mW,global_gameOfWeek:gW,global_hallOfWhales:yW,global_tableOfMonth:bW,global_whaleGames:vW,global_deposit:wW,global_raf_payment:_W,global_transactions:SW,global_balance:kW,global_settings:EW,global_save:TW,global_statistics:RW,global_refer:CW,global_game:AW,global_player:xW,global_paymentProcessing:OW,global_provider:IW,global_method:DW,global_crashgameBanner:LW,global_wildWildWest:NW,global_bingoGames:PW,global_tableGames:WW,global_winterWonderland:MW,global_toncoin:BW,global_usdt:UW,global_eur:FW,global_usd:$W,global_inr:zW,global_rub:jW,global_whalesChoice:GW,games_providers_gamesBy:HW,profile_withdrawDemandTonAddress:VW,profile_tonAddressPlaceholder:YW,profile_manualWithdrawRequested:qW,profile_autoWithdrawals:ZW,profile_kycVerificationHeader:KW,profile_kycVerificationButton:XW,profile_autoWithdrawToggle1:JW,profile_autoWithdrawToggle2:QW,referrals_withdrawNoticeMessage:eM,referrals_title:tM,referrals_description:nM,referrals_description_span:rM,referrals_thisMonth:aM,referrals_lastMonth:iM,referrals_allTime:oM,referrals_newReferrals:sM,referrals_totalWagering:lM,referrals_youveEarned:cM,settings_playWithRealMoney:uM,settings_useSetting:dM,cryptoPopup_title:hM,cryptoPopup_description:fM,cryptoPopup_comingSoon:pM,footer_allRightsReserved:mM,stickyBMenu_profile:gM,pending:yM,cancelled:bM,completed:vM,global_wallet:wM,global_demo:_M,global_totalrtp:SM,global_esports:kM,global_horseRacing:EM,global_browseAll:TM,global_more:RM,global_sponsorship:CM,global_playOnMobile:AM,global_youStillReadYourEmails:xM,global_entertainment:OM,global_typeToFilter:IM,"07":"with Whale","08":"How it works?","09":"Direct deposits through blockchain can take up to 10 minutes. Please be patient!",global_shownOutOf:DM,"02_promotions":"Feeling down on your luck this week?",global_claim:LM,global_raf_faq_10_q:NM,global_raf_faq_10_a:PM,global_raf_faq_11_q:WM,global_raf_faq_11_a:MM,go_back:BM,roadmap:UM,global_read_more_about:FM,global_roadmap:$M,slot:zM,otp:jM,"pix.form.personalData.cpfNumber.label":"CPF number","pix.form.personalData.modal.title":"Enter Details","pix.form.personalData.modal.description":"Please provide your personal details in order to proceed with the payment.","pix.form.buttons.continue":"Continue","pix.form.pixKey.label":"Pix Key","minipay.global_ambassador_raf_faq_3_a":`A valid referral is someone who: 395- Uses your referral link. 396- Is new to Whale. 397- Signs up to Whale.io. 398- Deposits to Whale.io. 399- Wagers in any Whale games.`,"minipay.global_ambassador_raf_faq_7_a":"House edge is the casino's profit margin. For example, a 5% house edge on slots means the casino keeps 5 CUSD for every 100 CUSD wagered. And you would receive 25% of that house edge from every regular direct referral.","minipay.global_influencer_raf_faq_7_a":"House edge is the casino's profit margin. For example, a 5% house edge on slots means the casino keeps 5 CUSD for every 100 CUSD wagered. And you would receive 25% of that house edge from every direct referral.","minipay.global_raf_faq_1_a":"Earn CUSD by inviting friends to Whale.","minipay.global_raf_faq_8_a":"House edge is the casino's profit margin. For example, a 5% house edge on slots means the casino keeps 5 CUSD for every 100 CUSD wagered. And you would receive 10% of that house edge from every referral.","minipay.global_raf_faq_10_a":"You can earn tokens by inviting friends to Whale. Tokens are connected to how much CUSD you have earned from referrals.","minipay.global_raf_faq_11_a":"Your referral earnings are calculated from CUSD to USD and 1 USD earned = 1 $Whale token earned. These tokens will be added to your account automatically. Earned Tokens are updated regularly (~once per day) and added to accounts.","minipay.global_raf_faq_3_a":`A valid referral is someone who: 400- Uses your referral link. 401- Is new to Whale. 402- Signs up to Whale.io. 403- Deposits to Whale.io. 404- Wagers in any Whale games.`,"minipay.global_influencer_raf_faq_3_a":`A valid referral is someone who: 405- Uses your referral link. 406- Is new to Whale. 407- Signs up to Whale.io. 408- Deposits to Whale.io. 409- Wagers in any Whale games.`,stupid_delete_me:GM,whales_choice:HM,global_esportsbook:VM,stickyBMenu_esports:YM,global_halloween:qM,sportsbook:ZM,lobby:KM,global:XM,global_viewRecent:JM,"biggest-wins":{recent:{title:"Recent Big Wins"}},key:QM," tribes":{room:{tribeTotalBalance:"Tribe Total Balance"}},global_newThisChristmas:eB,global_jingleBalls:tB,global_trash:nB,global_all:rB,global_pleaseConfirmEmail:aB,username:iB,"rewards.banner.title.part_1":"Sometimes Lose,","rewards.banner.title.part_2":"Always Win!","rewards.banner.subtitle.part_1":"Our slogan is","rewards.banner.subtitle.part_2":"No bullshit","rewards.banner.subtitle.part_3":"Playing and wagering money will get you rewards and some money back!","rewards.code_form.placeholder":"Redeem a code","rewards.buttons.claim":"Claim","rewards.level_progress.title":"Level progress","rewards.buttons.deposit_now":"Deposit Now","rewards.level_card.active_level_message":"{{xp}} XP left to reach this level","rewards.level_card.active_level":"Level {{level}}","rewards.level_card.get_rewards_message":"Reach this level to unlock:","rewards.level_card.keep_going_message":"Keep grinding!","rewards.level_card_bonus_block.increase_cashback":"Cashback Boost","rewards.level_card_bonus_block.free_spin":"Free Spin","rewards.level_card_bonus_block.free_spins":"Free Spins","rewards.buttons.claimed":"Claimed","rewards.buttons.reach_xp":"Reach {{xp}} XP","rewards.available_rewards.title":"Available Rewards","rewards.available_rewards.claimable":"Claimable","rewards.reward_progress.level_up":"Level Up","rewards.reward_progress.reach_xp":"Reach XP","rewards.reward_progress.wagered":"Wagered:","rewards.reward_progress.deposited":"Deposited","rewards.reward_progress.expired":"Expired","rewards.reward_progress.claimable_in":"Claimable in","rewards.cashback.your_cashback":"Your Cashback","rewards.buttons.deposit":"Deposit","rewards.level_card_bonus_block.deposit_bonus":"$WHALE Token","rewards.level_card_bonus_block.sneakers":"Sneakers","rewards.level_card_bonus_block.lootbox":"Lootbox",global_ambassador_raf_faq_9_q:oB,global_ambassador_and_influencer_raf_faq_1_a:sB,global_ambassador_raf_faq_9_a:lB,"rewards.reward_progress.expires_in":"Expires in","rewards.buttons.reach_level":"Reach lvl","rewards.level_card_bonus_block.no_rewards":"No rewards!",mission:cB,global_holidayMode:uB,Promo:dB,missions:hB,"modals.refer.web_link":"Web Referral link","modals.refer.tg_link":"Telegram Referral link",android_promo_popup:fB,referrals_explainer:pB,global_top_sports:mB,global_boxing:gB,wrapped:yB,"modals.verification.errors.email":"Failed to update email, please try again later.","modals.verification.errors.generic":"Failed to update data, please try again later",battlepass_tutorial:bB,battlepass_next_legendary:vB,battlepass_next_pending:wB,battlepass_buy_level_up:_B,live_rewards_header:SB,live_rewards:kB,live_rewards_header_1:EB,live_rewards_header_2:TB,live_rewards_tab_1:RB,live_rewards_tab_2:CB,live_rewards_raf_room:AB,live_rewards_mission:xB,live_rewards_whale_token:OB,live_rewards_referral:IB,entity_summary:DB,whale_originals:LB,BOT:NB,global_no_bullshit:PB,global_multiplier:WB,global_next:MB,global_your_balance:BB,tokens_landed_modal:UB,wow_account_connected_modal:FB,countdown_banner:$B,intervals:zB,chat:jB,new_season_modal:GB,premium_provider:HB,global_chat_rules_content:VB,global_whaleRoulette:YB,global_whaleMines:qB,global_new:ZB,daily_streaks:KB,global_whaleDice:XB,global_maintenanceMode:JB,casino_dashboard:QB,recover_daily_streak:e6,daily_streak_sidebar_card:t6,tournament_title:n6,tournament_subtitle:r6,play_with_whale:a6,play_on_whale:i6,tokendashboard:o6,wow:s6,premium_category:l6,global_dontShowThisAgain:c6,global_skip:u6,game:d6,"rewards.offer.expires_in":"Valid until:",rank_list:h6,rank_perks:f6,rank:p6,rank_perk:m6,rank_info:g6,battlepass_main_banner_progress:y6,rank_perks_modal:b6,"purchase_battlepass_modal.captions.currency":"Currency","purchase_battlepass_modal.limited_time_offer":"Beast Mode 50% off:",highlighted_level:v6,battlepass_main_banner:w6,"highlighted_level.weekly_cashback":"Weekly CB","highlighted_level.daily_cashback":"Daily CB","highlighted_level.rewards":"{amount}+ Rewards","highlighted_level.instant_reward":"Instant Reward","auth.form.promo_code":"Promo Code","auth.form.have_promo_code":"I have a Promo Code","highlighted_level.reward_text":"$30,000 in Rewards","rewards.level_card_bonus_block.free_spins_fs":"FS","purchase_battlepass_modal.limited_time_offer_expired":"Discount Expired","purchase_battlepass_modal.special_offer":"Special Offer","purchase_battlepass_modal.beast_mode":"Beast Mode",global_preRelease:_6,"crock_dentist.get_nft_card.title":"Priority: Crock NFT","crock_dentist.get_nft_card.description":"Priority access to minting a Crock NFT with frequent airdrop to holders","crock_dentist.get_nft_card.cta":"Get NFT","get_crock_nft_button.text":"Get Crock NFT","crock_nft_banner.title":"Get the Crock NFT. Get value.","crock_nft_banner.description":"Collection includes 1000 NFTs that get frequent airdrops based on game success ","crock_nft_banner.cta":"I want Crock NFT","crock_nft_banner.next_increase":"Next price increase",temp:S6,global_year:k6,"meta.homepage.title":"Whale.io - Crypto Casino & Sportsbook | Up to 25% Cashback","meta.homepage.descipriotn":"Play at Whale.io - the next-gen crypto casino & sportsbook. Enjoy 25% cashback, Battle Pass rewards, fast crypto withdrawals & provably fair games.","meta.casino.title":"Crypto Casino - 4,000+ Slots & Table Games | Whale.io","meta.casino.description":"Play slots, roulette, blackjack, and baccarat with crypto. Instant payouts in BTC, ETH, GRAM. Provably fair games with 96% RTP. ","meta.home.title":"Whale.io Home - Your Crypto Casino & Sportsbook Dashboard","meta.home.description":"Access your personalized crypto casino dashboard. Track rewards, cashback, Battlepass progress, and Tribe achievements. Play 4,000+ games with instant crypto withdrawals.","meta.crypto-games.title":" Crypto Games - Provably Fair Casino Games | Whale.io","meta.crypto-games.description":"Play provably fair crypto games. Crash games, dice, plinko, and more. Instant BTC, ETH, GRAM payouts. 96% RTP guaranteed.","meta.live-casino.title":"Live Casino - Real Dealers, Crypto Betting | Whale.io","meta.live-casino.description":"Play live roulette, blackjack, baccarat, and game shows with real dealers. Stream in HD, bet with crypto, instant payouts. Powered by Evolution Gaming and Pragmatic Play.","meta.sportsbook.title":"Crypto Sportsbook - Bet on Sports & eSports | Whale.io","meta.sportsbook.description":"Bet on
409 football, basketball, tennis, and eSports with crypto. Instant deposits and withdrawals in BTC, ETH, GRAM, USDT. Anonymous betting with competitive odds.","meta.lootbox.title":"Welcome Lootbox - Free Crypto Casino Rewards | Whale.io","meta.lootbox.description":"Claim your Welcome Lootbox and unlock instant rewards. Free bonuses, cashback boosts, and exclusive perks. Start your crypto casino journey with Whale.io.","meta.rewards.title":"Rewards Program - Up to 25% Cashback & VIP Perks | Whale.io","meta.rewards.description":"Earn up to 25% daily cashback automatically. No wagering requirements. Unlock VIP perks, exclusive bonuses, and loyalty rewards. Play more, earn more at Whale.io.","meta.bonuses.title":"Bonuses | Whale.io","meta.bonuses.description":"Claim your weekly and monthly bonuses and daily cashback at Whale.io.","meta.earn.title":"Earn Crypto - Refer Friends & Complete Missions | Whale.io","meta.earn.description":"Earn crypto through our Refer & Earn program, Battlepass missions, and daily challenges. Get paid in USDT for playing and inviting friends.","meta.thedailyfinn.title":"The Daily Finn - Crypto Casino News, Promos & Guides | Whale.io","meta.thedailyfinn.description":"Latest crypto casino promotions, bonus offers, game guides, and industry news. Stay updated with exclusive Whale.io deals, tips, and winning strategies.","meta.token.title":"Whale.io Token - Native Crypto Casino Currency & Rewards","meta.token.description":"Learn about Whale.io's native token. Earn through gameplay, stake for rewards, and unlock exclusive VIP benefits. The future of crypto casino loyalty programs.","meta.apk.title":"Download the Whale.io App - Crypto Casino on Your Phone","meta.apk.description":"Install the Whale.io app for lightning-fast, one-tap access to casino games and sports betting. Be the first to hear about new releases, tournaments and rewards.","meta.originals.title":"Whale Originals - Exclusive In-House Casino Games | Whale.io","meta.originals.description":"Play exclusive Whale.io original games you won't find anywhere else. Unique crash games, slots, and table games. Provably fair with instant crypto payouts.","meta.most-popular.title":"Most Popular Casino Games - Top Slots & Tables | Whale.io","meta.most-popular.description":"Play the most popular crypto casino games. Top-rated slots, live dealer tables, and crash games. Join 170,000+ monthly players. Instant BTC, ETH, GRAM withdrawals.","meta.newarrivals.title":"New Casino Games - Latest Slots & Live Games | Whale.io","meta.newarrivals.description":"Discover the newest casino games added to Whale.io. Fresh slots, live dealer tables, and crypto games from top providers. Be the first to play and win.","meta.buyfeature.title":"Buy Feature Slots - Instant Bonus Rounds | Whale.io","meta.buyfeature.description":"Skip the wait and buy bonus features instantly. Play buy feature slots with crypto. Trigger free spins and multipliers on demand. Instant payouts in BTC, ETH, GRAM.","meta.megaways.title":"Megaways Slots - Up to 117,649 Ways to Win | Whale.io","meta.megaways.description":"Play Megaways slots with up to 117,649 winning combinations. Popular titles from Big Time Gaming and Pragmatic Play. Win big with crypto at Whale.io.","meta.terms-and-conditions.title":"Terms & Conditions - Whale.io Crypto Casino & Sportsbook","meta.terms-and-conditions.description":"Read Whale.io's terms of service including game rules, bonus terms, withdrawal policies, and account requirements. Licensed by Curaçao Gaming Control Board (OGL/2024/1254/0648).","meta.responsible-gaming.title":"Responsible Gaming & Player Protection | Whale.io","meta.responsible-gaming.description":"Play responsibly with self-exclusion tools, deposit limits, and reality checks. Whale.io is committed to safe gambling. 24/7 support available. Licensed and regulated.","meta.fairness.title":"Provably Fair Gaming - Blockchain-Verified Results | Whale.io","meta.fairness.description":"Every game result is verifiable on the blockchain. 96% RTP across all games. Transparent, tamper-proof outcomes. Play with confidence at Whale.io's provably fair casino.","meta.faq.title":"FAQ - Crypto Casino Help & Support | Whale.io","meta.faq.description":"Get answers about deposits, withdrawals, game fairness, account verification, and crypto transactions. 24/7 support in 30+ languages via live chat, email, and Telegram.","meta.restricted-jurisdictions.title":"Restricted Jurisdictions - Where Whale.io is Available","meta.restricted-jurisdictions.description":"View the list of restricted countries and jurisdictions where Whale.io services are not available. Licensed by Curaçao Gaming Control Board with global compliance standards.","meta.aml-policy.title":"AML Policy - Anti-Money Laundering Compliance | Whale.io","meta.aml-policy.description":"Whale.io's Anti-Money Laundering policy and procedures. We maintain strict compliance with international AML regulations while protecting user privacy and anonymity.","meta.privacy-policy.title":"Privacy Policy - How Whale.io Protects Your Data","meta.privacy-policy.description":"Learn how Whale.io handles user data with minimal KYC requirements. We prioritize anonymity and privacy while maintaining Curaçao gaming license compliance standards.","meta.nft.title":"NFT Rewards - Exclusive Digital Collectibles | Whale.io","meta.nft.description":"Earn and collect exclusive Whale.io NFTs. Unlock special perks, VIP access, and unique rewards. Trade, stake, and showcase your crypto casino achievements.",global_suggestedforyou:E6,global_BlackWeekGames:T6,actions:R6,global_whalespecials:C6,global_livecasino:A6,global_winbig:x6,global_clustergames:O6,global_bookgames:I6,global_bingogames:D6,global_tablegames:L6,global_mostpopularlivecasino:N6,global_gameshows:P6,global_top10pragmatic:W6,global_latestfrompragmatic:M6,global_pragmaticchristmas:B6,global_top10nolimitcity:U6,global_biggestmultiplierNLC:F6,global_top10hacksaw:$6,global_winbigHacksaw:z6,global_top10PeterSons:j6,global_volatilityPeterSons:G6,global_spookyPeterSons:H6,global_top10endorphina:V6,global_bestof2025Endorphina:Y6,global_top10redtiger:q6,global_newRedTiger:Z6,global_top10popiplay:K6,global_winbigPopiplay:X6,global_top10netent:J6,global_highvolatileNetEnt:Q6,global_xxxtremeNetEnt:eU,"modal.settings.password.confirm":"Confirm Password","modal.settings.password.next":"Next","modal.settings.password.current":"Current password","settings.password.change_password":"Change Password","modal.settings.password.password_updated":"Your password has been updated successfully!","modal.settings.password.password_added":"Your password has been added successfully!","new key: cms":{game_provider:{penguinking:{description:`Penguin King is an ambitious game studio thatâs already turning heads with fast, modern slot content built for pure entertainment. The focus is clear: create games that are easy to pick up, full of action, and optimized for both desktop and mobile, with quick load times, smooth performance, and a clean interface that keeps everything you need within reach. Depending on the platform, Penguin King titles can also be crypto-ready, letting players wager with Bitcoin, Ethereum, and other digital coins for extra flexibility across different markets. 410Across the portfolio youâll typically see high-energy mechanics like Hold & Win features, bonus rounds stacked with multipliers, and multi-level jackpots that keep the pressure on without making gameplay feel complicated. Visuals are sharp and colorful, the pacing is snappy, and the design leans into that ânext generationâ feelâless waiting, more moments where a spin can flip the session. In short, Penguin King is a strong pick for players who want modern slots that run clean on mobile, hit hard with features, and keep the action moving.`}}},global_responsible_gaming:tU,"modals.responsible_gaming.self_excluded.title":"Self Excluded","modals.responsible_gaming.self_excluded.description":"Your account is currently self excluded. You will be logged out in {seconds}s.","modals.responsible_gaming.activeLimits":"Active Limits","modals.responsible_gaming.active_self_exclusion_label":"Self Exclusion:","modals.responsible_gaming.active_deposit_limit_label":"Deposit limit ({period}):","modals.responsible_gaming.status.active":"Active","modals.responsible_gaming.breakInPlayConfirmHeader":"Confirm Break In Play","modals.responsible_gaming.breakInPlayFormDescription":"Choose how long you want to pause play. During this period, betting and gaming will be disabled.","modals.responsible_gaming.duration":"Duration","modals.responsible_gaming.next":"Next","modals.responsible_gaming.breakInPlayDisclaimer":'Disclaimer: Your account will immediately be put in to "withdraw only" mode.',"modals.responsible_gaming.breakInPlayConfirmTextPrefix":"Youâre about to request a Break In Play for","modals.responsible_gaming.breakInPlayConfirmTextSuffixPrefix":". During this period you wonât be able to bet or play games, and your account will be in","modals.responsible_gaming.withdrawOnly":"withdraw-only","modals.responsible_gaming.breakInPlayConfirmTextSuffixEnd":"mode.","modals.responsible_gaming.cancel":"Cancel","modals.responsible_gaming.confirm":"Confirm","modals.responsible_gaming.selfExclusionConfirmHeader":"Confirm Self Exclusion","modals.responsible_gaming.selfExclusionFormDescription":"Choose your self exclusion period carefully. Access to betting and gaming will be blocked until the selected period ends.","modals.responsible_gaming.selfExclusionDisclaimer":"Disclaimer: Any decision made here is final and n
410ot reversible. Please withdraw any remaining balance from your account before submitting your self exclusion request.","modals.responsible_gaming.selfExclusionConfirmTextPrefix":"Youâre about to request Self Exclusion for","modals.responsible_gaming.selfExclusionConfirmTextSuffix":". This is a final decision and canât be reversed until the period ends.","modals.responsible_gaming.common.available_now":"Available now","modals.responsible_gaming.period.one_day":"1 Day","modals.responsible_gaming.period.two_days":"2 Days","modals.responsible_gaming.period.one_week":"1 Week","modals.responsible_gaming.period.one_month":"1 Month","modals.responsible_gaming.period.two_months":"2 Months","modals.responsible_gaming.period.three_months":"3 Months","modals.responsible_gaming.period.six_months":"6 Months","modals.responsible_gaming.period.one_year":"1 Year","modals.responsible_gaming.period.two_years":"2 Years","modals.responsible_gaming.period.three_years":"3 Years","modals.responsible_gaming.period.four_years":"4 Years","modals.responsible_gaming.period.five_years":"5 Years","modals.responsible_gaming.period.ten_years":"10 Years","modals.responsible_gaming.period.indefinite":"Indefinite","modals.responsible_gaming.deposit_limits.header":"Set Your Deposit Limits","modals.responsible_gaming.deposit_limits.description_1":"Stay in control by setting a deposit limit, the maximum amount you can add to your account within a selected period.","modals.responsible_gaming.deposit_limits.description_2":"If you deposit more than your limit, the extra amount is withheld and released only when your limit resets.","modals.responsible_gaming.deposit_limits.section_title":"Your Deposit Limits","modals.responsible_gaming.deposit_limits.add_limit":"Add Limit","modals.responsible_gaming.deposit_limits.table.amount":"Amount","modals.responsible_gaming.deposit_limits.table.usage":"Usage","modals.responsible_gaming.deposit_limits.table.period":"Period","modals.responsible_gaming.deposit_limits.empty":"You have no limits set.","modals.responsible_gaming.deposit_limits.usage_text":"{used} used · {left} left","modals.responsible_gaming.deposit_limits.edit_limit":"Edit Limit","modals.responsible_gaming.deposit_limits.limit_period":"Limit Period","modals.responsible_gaming.deposit_limits.limit_amount":"Limit Amount","modals.responsible_gaming.deposit_limits.update_delay":"Please allow up to 30 seconds for the update to take effect.","modals.responsible_gaming.deposit_limits.confirm_limit":"Confirm Limit","modals.responsible_gaming.deposit_limits.frequency":"Frequency","modals.responsible_gaming.deposit_limits.new_limit":"New Limit","modals.responsible_gaming.deposit_limits.cooling_off":"Deposit limit increases are subject to a mandatory 24-hour cooling-off period before taking effect.","modals.responsible_gaming.deposit_limits.update_now":"Update Now",blocked_message_self_excluded_title:nU,blocked_message_self_excluded_description:rU,"auth.us.login_subtitle":"Log in to continue where you left off or create new one","auth.us.send_otp":"Send OTP","auth.us.create_account_free":"Create an Account for free","auth.us.register_subtitle":"Please provide all required information to be registered","auth.us.first_name":"First Name","auth.us.first_name_placeholder":"Enter your First Name","auth.us.last_name":"Last Name","auth.us.last_name_placeholder":"Enter your Last Name","auth.us.username":"Username","auth.us.username_placeholder":"Create your Username","auth.us.email":"Email","auth.us.email_placeholder":"Enter your Email","auth.us.create_password_placeholder":"Create Password","auth.us.show":"Show","auth.us.date_of_birth":"Date of birth","auth.us.date_of_birth_placeholder":"dd.mm.yyyy","auth.us.state":"State","auth.us.select_state":"Select State","auth.us.gender":"Gender","auth.us.select_gender":"Select Gender","auth.us.promocode_optional":"Promocode Optional","auth.us.promocode_placeholder":"Enter Promo Code","auth.us.apply":"Apply","auth.us.terms_long":"I agree to the terms and conditions and privacy policy, confirm the accuracy of my personal information, and ensure no unauthorized use of my account, and consent to account monitoring by the operator and regulatory body","auth.us.login_if_have_account":"Login if you already have one",global_totalrtp_tooltip:aU,global_buy_bundle:iU,"buy_bundle.meta.title":"Buy Bun
410dle | Whale.io","buy_bundle.meta.description":"Buy gold coin bundles and receive sweep coin bonuses.","buy_bundle.header.highlight":"Biggest","buy_bundle.header.title":"Sweepcoin Bonuses","buy_bundle.ticker.just_bought":"just bought","buy_bundle.ticker.bonus":"bonus","buy_bundle.hero.title":"First Purch Offer","buy_bundle.hero.image_alt":"First purchase offer coins","buy_bundle.form.price":"Price","buy_bundle.form.currency":"Currency","buy_bundle.form.buy":"Buy","buy_bundle.offer.image_alt":"Gold coin bundle","buy_bundle.offer.coins_label":"GOLD COINS","buy_bundle.offer.bonus_suffix":"bonus Sweep Coins","buy_bundle.badges.most_popular":"Most Popular","buy_bundle.badges.best_offer":"Best Offer","buy_bundle.faq.title":"Frequently Asked Questions","buy_bundle.faq.items.what_is_program.question":"What is the Whale Earn program?","buy_bundle.faq.items.what_is_program.answer":"A valid referral is someone who uses your referral link, is new to Whale, and plays in Whale games.","buy_bundle.faq.items.referral_link.question":"How can I obtain my referral link?","buy_bundle.faq.items.referral_link.answer":"You can find your referral link in your profile under the Refer section.","buy_bundle.faq.items.valid_referral.question":"Who counts as a valid referral?","buy_bundle.faq.items.valid_referral.answer":"A new player who registers through your link and becomes active on platform games.","buy_bundle.faq.items.earnings.question":"What are my earnings per referral?","buy_bundle.faq.items.earnings.answer":"Referral earnings depend on your level and the referred player activity.","buy_bundle.faq.items.bonus_timing.question":"When do I receive bonus coins?","buy_bundle.faq.items.bonus_timing.answer":"Bonus coins are credited instantly after a successful bundle purchase.","buy_bundle.faq.items.crypto_only.question":"Can I buy bundles with crypto only?","buy_bundle.faq.items.crypto_only.answer":"This page currently supports crypto currencies such as BTC for purchases.","buy_bundle.faq.items.purchase_limits.question":"Are there limits on bundle purchases?","buy_bundle.faq.items.purchase_limits.answer":"Limits can vary by account status and risk checks.","buy_bundle.faq.items.refunds.question":"Can I request a refund?","buy_bundle.faq.items.refunds.answer":"Please contact support if you need a purchase review.",global_bestof3yearsofwhale:oU,"buy_bundle.offer.sweep_coins_label":"Sweep Coins",badge:sU,email_check:lU,global_hacksawClassics:cU,"lootbox.request_delivery.restricted_country_title":"Delivery is not available for this country","lootbox.request_delivery.restricted_country_description":"We are unable to deliver to this country. Please sell the items from your inventory instead.",BP5_rank2_reward:uU,BP5_rank3_reward:dU,BP5_rank4_reward:hU,BP5_rank5_reward:fU,BP5_rank6_reward:pU,BP5_rank7_reward:mU,BP5_rank8_reward:gU,BP5_rank9_reward:yU,BP5_rank10_reward:bU,BP5_rank11_reward:vU,BP5_rank12_reward:wU,BP5_rank13_reward:_U,"lootbox.inventory.item_expired":"Offer has expired","rewards.no_wd_modal.title":"Verification required","rewards.no_wd_modal.description":"You are not able to collect any rewards before your verification is completed.","rewards.no_wd_modal.dismiss":"Got it","rewards.no_wd_modal.verify":"Verify Account","rewards.cashback.breakdown.title_daily":"Daily Cashback Breakdown","rewards.cashback.breakdown.title_weekly":"Weekly Cashback Breakdown","rewards.cashback.breakdown.period":"Period","rewards.cashback.breakdown.deposits":"Deposits","rewards.cashback.breakdown.withdrawals":"Withdrawals","rewards.cashback.breakdown.ending_balance":"Ending Balance","rewards.cashback.breakdown.unsettled_bets":"Unsettled Bets","rewards.cashback.breakdown.net_loss":"Net Loss","rewards.cashback.breakdown.cashback_rate":"Cashback Rate","rewards.cashback.breakdown.cashback_amount":"Cashback Amount","rewards.cashback.breakdown.formula":"Net Loss = Deposits - Withdrawals - Ending Balance - Unsettled Bets","error.page_not_found.title":"Page not found â Whale.io","error.page_not_found.go_to_main":"Go to Main Page","error.page_not_found.contact_support":"Contact Support","error.page_not_found.explore_below":"or explore the best parts of Whale below",predictions:SU,wc2026:kU,"tribes.streamer.level_requirement":"Reach Level 2 to start your Tribe","tribes.drip.title":"Drop Roulette","tribes.drip.rulesAria":"Drop Roulette rules","tribes.drip.expand":"Show standings","tribes.drip.collapse":"Hide standings","tribes.drip.total":"Total amount:","tribes.drip.empty":"No tickets yet. Deposit and your odds start building as the stream plays.","tribes.drip.rules.title":"Drop Roulette","tribes.drip.rules.general.title":"How it works","tribes.drip.rules.general.body":"Every bet the host places from the pool fills the pot. At $3.00 the drop lands and one depositor takes a prize box.","tribes.drip.rules.eligibility.title":"Earning tickets","tribes.drip.rules.eligibility.body":"Deposit into the pool. Every bet the host places hands out tickets, split between depositors by their share of the pool. Your money has to be in when a bet lands, so the longer you are in, the more you hold â depositing just before a drop earns you almost nothing. The host earns none.","tribes.drip.rules.winner.title":"Winning","tribes.drip.rules.winner.body":"More tickets, bigger slice of the wheel. One winner per drop. Tickets go to zero afterwards and the next pot starts filling from scratch, so the room has to earn another box before the next drop can land.","tribes.drip.rules.conditions.title":"Withdrawing and closing","tribes.drip.rules.conditions.body":"Take your money out of the pool and you stop earning, but the tickets you already earned stay yours for the rest of the round. If the pool's balance is lost at the tables, you keep your tickets too. A pot that has not filled by the time the stream ends does not carry over.","notification.tribeDrip.won.title":"You won the Drop Roulette","notification.tribeDrip.won.body":"A prize box is waiting in y
410our inventory","tribes.drip.nextDrop":"NEXT DROP","tribes.drip.collected":"collected","tribes.drip.you":"You","tribes.drip.lastDrop":"Last drop","tribes.drip.won":"won","tribes.drip.congratulations":"Congratulations!","tribes.drip.fromTheDropRoulette":"from the Drop Roulette!","tribes.room.back":"Back","tribes.room.copyLink":"Copy Link","tribes.room.copied":"Link copied","tribes.follow.subscribe":"Subscribe","tribes.follow.subscribed":"Subscribed","tribes.follow.subscribers":"Subscribers","tribes.follow.alreadySubscribed":"already subscribed","tribes.lobby.following":"Following","tribes.lobby.browse":"Browse","notification.tribe.live.title":"{host} is live","notification.tribe.live.body":"{tribe} just started streaming. Join the tribe now.","notification.tribe.live.cta":"Watch","tribes.streamer.settings":"Stream settings","tribes.streamer.settings.webcam":"Webcam","tribes.streamer.settings.microphone":"Microphone volume","tribes.streamer.settings.mute":"Mute","tribes.streamer.settings.unmute":"Unmute"},fre=Object.freeze(Object.defineProperty({__proto__:null,BOT:NB,BP5_rank10_reward:bU,BP5_rank11_reward:vU,BP5_rank12_reward:wU,BP5_rank13_reward:_U,BP5_rank2_reward:uU,BP5_rank3_reward:dU,BP5_rank4_reward:hU,BP5_rank5_reward:fU,BP5_rank6_reward:pU,BP5_rank7_reward:mU,BP5_rank8_reward:gU,BP5_rank9_reward:yU,Promo:dB,actions:R6,android_promo_popup:fB,apk:hD,auth:O5,avatar:dI,badge:sU,battlepass:IL,battlepass_buy_level_up:_B,battlepass_main_banner:w6,battlepass_main_banner_progress:y6,battlepass_next_legendary:vB,battlepass_next_pending:wB,battlepass_perk_carousel:PL,battlepass_recent_purchases:BL,battlepass_tutorial:bB,blocked_message_self_excluded_description:rU,blocked_message_self_excluded_title:nU,cancelled:bM,casino_dashboard:QB,casinotournaments:GN,chat:jB,check_spam_notice:I5,completed:vM,countdown_banner:$B,country:fN,cryptoPopup_comingSoon:pM,cryptoPopup_description:fM,cryptoPopup_title:hM,currency_menu:M5,daily_streak_sidebar_card:t6,daily_streaks:KB,default:EU,earn:ML,email_check:lU,entity_summary:DB,error:pD,errors:L5,footer_affiliates:YI,footer_allRightsReserved:mM,footer_amlPolicy:VI,footer_crock_nft:ZI,footer_disclaimer:KI,footer_fairness:GI,footer_responsibleGaming:jI,footer_restrictedJurisdictions:HI,footer_support:qO,footer_termsAndConditions:zI,footer_trade_whale:qI,game:d6,games:kI,games_providers_gamesBy:HW,geoRestriction:fD,get_battlepass_banner:WL,global:XM,global_24h:JO,global_BlackWeekGames:T6,global_Next:gI,global_accountRestricted:sD,global_accountRestricted_button_contact:uD,global_accountRestricted_button_verify:cD,global_accountRestricted_description:lD,global_accountRestricted_description_only_support:dD,global_address:VN,global_all:rB,global_alltime:zL,global_ambassador_and_influencer_raf_faq_1_a:sB,global_ambassador_raf_faq_1_a:nP,global_ambassador_raf_faq_1_q:tP,global_ambassador_raf_faq_2_a:aP,global_ambassador_raf_faq_2_q:rP,global_ambassador_raf_faq_3_a:oP,global_ambassador_raf_faq_3_q:iP,global_ambassador_raf_faq_4_a:lP,global_ambassador_raf_faq_4_q:sP,global_ambassador_raf_faq_5_a:uP,global_ambassador_raf_faq_5_q:cP,global_ambassador_raf_faq_6_a:hP,global_ambassador_raf_faq_6_q:dP,global_ambassador_raf_faq_7_a:pP,global_ambassador_raf_faq_7_q:fP,global_ambassador_raf_faq_8_a:gP,global_ambassador_raf_faq_8_q:mP,global_ambassador_raf_faq_9_a:lB,global_ambassador_raf_faq_9_q:oB,global_available:pW,global_baccarat:jO,global_balance:kW,global_basketball:aD,global_bestof2025Endorphina:Y6,global_bestof3yearsofwhale:oU,global_biggestmultiplierNLC:F6,global_bingoGames:PW,global_bingogames:D6,global_blackjack:zO,global_bookgames:I6,global_boxing:gB,global_browseAll:TM,global_buyCrypto:$5,global_buyFeature:BO,global_buy_bundle:iU,global_cashier:B5,global_casino:J5,global_chat_badge_moderator:UI,global_chat_badge_tribe_host:FI,global_chat_ban_user:kD,global_chat_big_win_message:ED,global_chat_button_confirm_text:TD,global_chat_close_poll:RD,global_chat_connecting:SL,global_chat_date_today_key:CD,global_chat_date_yesterday_key:AD,global_chat_delete_message:xD,global_chat_disconnected:kL,global_chat_empty:RL,global_chat_gif_empty:AL,global_chat_go_to_replied:OD,global_chat_join_tribes_button:ID,global_chat_join_tribes_message:DD,global_chat_load_more:EL,global_chat_loading:TL,global_chat_loading_poll:LD,global_chat_login_prompt_description:ND,global_chat_login_prompt_title:PD,global_chat_no_channels:_L,global_chat_placeholder:WD,global_chat_reply:MD,global_chat_rules:BD,global_chat_rules_content:VB,global_chat_rules_content_p1_content:UD,global_chat_rules_content_p1_t
410itle:FD,global_chat_rules_content_p2_1:$D,global_chat_rules_content_p2_2:zD,global_chat_rules_content_p2_3:jD,global_chat_rules_content_p2_4:GD,global_chat_rules_content_p2_5:HD,global_chat_rules_content_p2_title:VD,global_chat_rules_content_p3_1:YD,global_chat_rules_content_p3_2:qD,global_chat_rules_content_p3_3:ZD,global_chat_rules_content_p3_title:KD,global_chat_rules_content_p4_1:XD,global_chat_rules_content_p4_title:JD,global_chat_search_placeholder:QD,global_chat_send_failed:CL,global_chat_sign_in:eL,global_chat_stickers_empty:xL,global_chat_tab_emoji:tL,global_chat_tab_gifs:nL,global_chat_tab_stickers:rL,global_checkYourEmail:qN,global_city:vD,global_claim:LM,global_clickButtonBelowToStartPlaying:VO,global_close:yN,global_clustergames:O6,global_collect:rW,global_comingSoon:OO,global_community:q5,global_congratulations:NI,global_copied:AI,global_copy:$N,global_crashgameBanner:LW,global_cryptoCasino:eO,global_cryptoGames:MO,global_cryptoMarkets:FL,global_delete:yI,global_demo:_M,global_deposit:wW,global_dob:gN,global_dontMissTheFun:sW,global_dontShowThisAgain:c6,global_earn:sO,global_earningsCollected:XP,global_entertainment:OM,global_error_generic:UN,global_esports:kM,global_esportsbook:VM,global_eur:FW,global_explore:jL,global_firstname:z5,global_football:nD,global_foundSearchResult:TO,global_game:AW,global_gameOfWeek:gW,global_games:Y5,global_gameshows:P6,global_gamestats:XO,global_go_back:YO,global_hacksawClassics:cU,global_hallOfWhales:yW,global_halloween:qM,global_highvolatileNetEnt:Q6,global_history:xI,global_holidayMode:uB,global_home:K5,global_horseRacing:EM,global_iceHockey:oD,global_influencer_raf_faq_1_a:bP,global_influencer_raf_faq_1_q:yP,global_influencer_raf_faq_2_a:wP,global_influencer_raf_faq_2_q:vP,global_influencer_raf_faq_3_a:SP,global_influencer_raf_faq_3_q:_P,global_influencer_raf_faq_4_a:EP,global_influencer_raf_faq_4_q:kP,global_influencer_raf_faq_5_a:RP,global_influencer_raf_faq_5_q:TP,global_influencer_raf_faq_6_a:AP,global_influencer_raf_faq_6_q:CP,global_influencer_raf_faq_7_a:OP,global_influencer_raf_faq_7_q:xP,global_influencer_raf_faq_8_a:DP,global_influencer_raf_faq_8_q:IP,global_inr:zW,global_jingleBalls:tB,global_joinTheCommunity:lW,global_language:pI,global_lastname:j5,global_latestfrompragmatic:M6,global_legal:XI,global_live:rD,global_liveCasino:tO,global_livecasino:A6,global_loading:$I,global_logout:mW,global_lootboxMain:rO,global_maintenanceMode:JB,global_marbles:QI,global_maximum_win_multiplier:nI,global_megaways:UO,global_method:DW,global_minimum_maximum_bet:tI,global_month:eI,global_more:RM,global_mostPopular:FO,global_mostpopularlivecasino:N6,global_multiplier:WB,global_myBiggestWins:_O,global_na:MI,global_neutral:AO,global_new:ZB,global_newArrivals:PO,global_newRedTiger:Z6,global_newThisChristmas:eB,global_next:MB,global_nft_faq_1_a:YL,global_nft_faq_1_q:VL,global_nft_faq_2_a:ZL,global_nft_faq_2_q:qL,global_nft_faq_3_a:XL,global_nft_faq_3_q:KL,global_nft_faq_4_a:QL,global_nft_faq_4_q:JL,global_nft_faq_5_a:tN,global_nft_faq_5_q:eN,global_nft_faq_6_a:rN,global_nft_faq_6_q:nN,global_nft_faq_7_a:iN,global_nft_faq_7_q:aN,global_nft_faq_8_a:sN,global_nft_faq_8_q:oN,global_nft_faq_9_a:cN,global_nft_faq_9_q:lN,global_noRecords:BN,global_no_bullshit:PB,global_not_available:rI,global_okay:JP,global_ongoingtribes:SN,global_paymentProcessing:OW,global_phone:yD,global_play:hN,global_playOnMobile:AM,global_player:xW,global_pleaseConfirmEmail:aB,global_poker:GO,global_poll_add_option:aL,global_poll_add_option_hint:iL,global_poll_duration:oL,global_poll_multiple_answers:sL,global_poll_new_poll:lL,global_poll_option_placeholder:cL,global_poll_options:uL,global_poll_poll:dL,global_poll_publish:hL,global_poll_publishing:fL,global_poll_question:pL,global_poll_question_placeholder:mL,global_poll_quiz:gL,global_poll_quiz_mode:yL,global_poll_vote:bL,global_poll_voted:vL,global_poll_voting:wL,global_postaladdress:bD,global_postalcode:wD,global_pragmaticchristmas:B6,global_preRelease:_6,global_privacy_policy:JI,global_profile:uO,global_promotions:lO,global_provider:IW,global_raf:iW,global_raf_faq_10_a:PM,global_raf_faq_10_q:NM,global_raf_faq_11_a:MM,global_raf_faq_11_q:WM,global_raf_faq_1_a:NP,global_raf_faq_1_q:LP,global_raf_faq_2_a:WP,global_raf_faq_2_q:PP,global_raf_faq_3_a:BP,global_raf_faq_3_q:MP,global_raf_faq_4_a:FP,global_raf_faq_4_q:UP,global_raf_faq_5_a:zP,global_raf_faq_5_q:$P,global_raf_faq_6_a:GP,global_raf_faq_6_q:jP,global_raf_faq_7_a:VP,global_raf_faq_7_q:HP,global_raf_faq_8_a:qP,global_raf_faq_8_q:YP,global_raf_faq_9_a:KP,global_raf_faq_9_q:ZP,global_raf_payment:_W,global_read_less:HL,global_read_more:GL,global_read_more_about:FM,global_recentlyPlayed:wO,global_redirecting:XN,global_refer:CW,global_referAFriend:tD,global_referral:QP,global_required:hW,global_responsible_gaming:tU,global_rewards:oO,global_roadmap:$M,global_roulette:$O,global_round:OI,global_royalrealm:eP,global_rub:jW,global_rules:II,global_save:TW,global_searchResult:EO,global_search_no_results:kO,global_search_placeholder:SO,global_selectCountry:gD,global_settings:EW,global_share:zN,global_showmore:FN,global_shownOutOf:DM,global_skip:u6,global_slots:Q5,global_sponsorship:CM,global_spookyPeterSons:H6,global_sportsbook:fO,global_sportsbookMain:nO,global_statistics:RW,global_suggestedGames:KO,global_suggestedforyou:E6,global_tableGames:WW,global_tableOfMonth:bW,global_tablegames:L6,global_tennis:iD,global_token:$L,global_token_dashboard:cO,global_toncoin:BW,global_top10:LO,global_top10PeterSons:j6,global_top10endorphina:V6,global_top10hacksaw:$6,global_top10netent:J6,global_top10nolimitcity:U6,global_top10popiplay:K6,global_top10pragmatic:W6,global_top10redtiger:q6,global_top3FavouriteGames:cW,global_top_sports:mB,global_totalBets:DI,global_totalEarnings:aW,global_totalWagered:dW,global_totalWins:uW,global_totalrtp:SM,global_totalrtp_tooltip:aU,global_tournaments:aO,global_tournaments_placeholder:OL,global_trade:hO,global_transactions:SW,global_trash:nB,global_tribes:iO,global_typeToFilter:IM,global_typeYourEmailHere:mD,global_usd:$W,global_usdt:UW,global_user:Z5,global_verified:YN,global_verify:mI,global_verifyNow:vI,global_verifyYourAccount:QN,global_view:bI,global_viewAll:IO,global_viewRecent:JM,global_volatility:RO,global_volatilityPeterSons:G6,global_wallet:wM,global_weWillRedirectYouBackIn:ZN,global_weWillRedirectYouBackInSeconds:KN,global_week:QO,global_welcome:wI,global_whaleDice:XB,global_whaleGames:vW,global_whaleMines:qB,global_whaleOriginals:NO,global_whaleRoulette:YB,global_whaleSpecials:WO,global_whaleToken:dO,global_whale_originals:X5,global_whalesChoice:GW,global_whalespecials:C6,global_wildWildWest:NW,global_win:WI,global_winBig:xO,global_winOften:CO,global_win_constrained:LI,global_winbig:x6,global_winbigHacksaw:z6,global_winbigPopiplay:X6,global_winterWonderland:MW,global_withdraw:U5,global_withdrawAddress:F5,global_withdrawAmount:fW,global_wtf:eD,global_xxxtremeNetEnt:eU,global_year:k6,global_you:BI,global_youMightAlsoLike:ZO,global_youStillReadYourEmails:xM,global_youWon:PI,global_yourProfit:eW,global_yourReferralLink:nW,global_yourReferrals:tW,global_yourRewards:oW,global_your_balance:BB,global_yourenotloggedin:HO,global_youveBeenVerified:JN,go_back:BM,hallOfWhales:iI,header:P5,highlighted_level:v6,homepage:cI,http:N5,intervals:zB,key:QM,landingpage:lI,leaderboard:oI,live_rewards:kB,live_rewards_header:SB,live_rewards_header_1:EB,live_rewards_header_2:TB,live_rewards_mission:xB,live_rewards_raf_room:AB,live_rewards_referral:IB,live_rewards_tab_1:RB,live_rewards_tab_2:CB,live_rewards_whale_token:OB,lobby:KM,lootbox:_D,lootbox_tutorial:SD,meta:sI,mission:cB,mission_card:UL,missions:hB,modal:uI,modals:W5,new_season_modal:GB,nft:dN,notification:TI,originalGames:CI,otp:jM,pending:yM,pix:V5,play_on_whale:i6,play_with_whale:a6,predictions:SU,preloader:RI,premium_category:l6,premium_provider:HB,profile_autoWithdrawToggle1:JW,profile_autoWithdrawToggle2:QW,profile_autoWithdrawals:ZW,profile_kycVerificationButton:XW,profile_kycVerificationHeader:KW,profile_manualWithdrawRequested:qW,profile_tonAddressPlaceholder:YW,profile_withdrawDemandTonAddress:VW,promo:HN,provablyFair:SI,providersSection_title:DO,purchase_battlepass_complete_modal:NL,purchase_battlepass_modal:LL,rank:p6,rank_info:g6,rank_list:h6,rank_perk:m6,rank_perks:f6,rank_perks_modal:b6,recover_daily_streak:e6,referrals_allTime:oM,referrals_description:nM,referrals_description_span:rM,referrals_explainer:pB,referrals_lastMonth:iM,referrals_newReferrals:sM,referrals_thisMonth:aM,referrals_title:tM,referrals_totalWagering:lM,referrals_withdrawNoticeMessage:eM,referrals_youveEarned:cM,rewards:DL,roadmap:UM,rtp_stats:EI,settings:D5,settings_playWithRealMoney:uM,settings_useSetting:dM,sidebar:aI,sidebarPromo:bN,slot:zM,sportsbook:ZM,stickyBMenu_casino:mO,stickyBMenu_chat:vO,stickyBMenu_earn:bO,stickyBMenu_esports:YM,stickyBMenu_menu:pO,stickyBMenu_originals:yO,stickyBMenu_profile:gM,stickyBMenu_sports:gO,stupid_delete_me:GM,table:_I,telegram_auth_gate:x5,temp:S6,termsAccepted:pN,termsPopup_accept:mN,tokendashboard:o6,tokens_landed_modal:UB,tournament_all:IN,tournament_finished:NN,tournament_lobby_subtitle:MN,tournament_lobby_title:WN,tournament_ongoing:DN,tournament_starting:PN,tournament_subtitle:r6,tournament_title:n6,tournament_upcoming:LN,tournaments:jN,tribes:vN,tribes_explainer:_N,tribes_infocards_cards_1_description:RN,tribes_infocards_cards_1_title:TN,tribes_infocards_cards_2_description:AN,tribes_infocards_cards_2_title:CN,tribes_infocards_cards_3_description:ON,tribes_infocards_cards_3_title:xN,tribes_infocards_headerDescription:EN,tribes_infocards_headerTitle:kN,tribes_widget:wN,username:iB,verify_email:fI,vip:hI,wc2026:kU,whale_originals:LB,whale_token_dashboard:uN,whales_choice:HM,withdrawal_verify_email_button:H5,withdrawal_verify_email_description:G5,wow:s6,wow_account_connected_modal:FB,wrapped:yB},Symbol.toStringTag,{value:"Module"})),Boe="index, follow",Uoe="noindex",Foe="website",$oe="summary_large_image",pre="x-default",mre=t=>t.trim().replace(/\/+$/,""),J0=(t,e,n)=>{const a=t.replace(/^\/+|\/+$/g,"");return e===n?a===""?"/":`/${a}`:a===""?`/${e}`:`/${e}/${a}`},BC=(t,e)=>`${mre(t)}${e}`,zoe=({origin:t,path:e,locales:n,defaultLocale:a})=>{const o=n.map(s=>({hreflang:s,href:BC(t,J0(e,s,a))}));return o.push({hreflang:pre,href:BC(t,J0(e,a,a))}),o},joe=(t,e)=>JSON.stringify({"@context":"https://schema.org","@type":"Casino",name:"Whale Casino",url:t,description:e,offers:{"@type":"Offer",description:"Up to 25% Daily Cashback"}}).replace(/<\//g,"<\\/"),gre=Object.assign({
410"./locales/ar.json":()=>lt(()=>import("./ar-CLEyiDn9.js"),[]),
410"./locales/en.json":()=>lt(()=>Promise.resolve().then(()=>fre),void 0),
410"./locales/es.json":()=>lt(()=>import("./es-DiUAiMXT.js"),[]),
410"./locales/fa.json":()=>lt(()=>import("./fa-BoapYYOn.js"),[]),
410"./locales/fi.json":()=>lt(()=>import("./fi-Bgp4L3an.js"),[]),
410"./locales/fr.json":()=>lt(()=>import("./fr-DKmJHwmv.js"),[]),
410"./locales/id.json":()=>lt(()=>import("./id-BSnXCGtX.js"),[]),
410"./locales/it.json":()=>lt(()=>import("./it-BpnFBOxD.js"),[]),
410"./locales/ko.json":()=>lt(()=>import("./ko-CLL-3-ES.js"),[]),
410"./locales/pt.json":()=>lt(()=>import("./pt-B2SbWuBk.js"),[]),
410"./locales/ru.json":()=>lt(()=>import("./ru-CYpMzcuF.js"),[]),
410"./locales/sq.json":()=>lt(()=>import("./sq-D7yTILCf.js"),[]),
410"./locales/tr.json":()=>lt(()=>import("./tr-CSoMXIza.js"),[]),
410"./locales/uz.json":()=>lt(()=>import("./uz-Be4Sp1ZP.js"),[]),
410"./locales/vi.json":()=>lt(()=>import("./vi-C5yRo4iz.js"),[]),
410"./locales/zh.json":()=>lt(()=>import("./zh-ZUO8AS7V.js"),[])}),yre=t=>gre[`./locales/${t}.json`],bre=Object.assign({
410"./cms/cms-ar.json":()=>lt(()=>import("./cms-ar-WOpX2_UB.js"),[]),
410"./cms/cms-en.json":()=>lt(()=>import("./cms-en-DMOFoq7y.js"),[]),
410"./cms/cms-es.json":()=>lt(()=>import("./cms-es-CrqOutB7.js"),[]),
410"./cms/cms-fa.json":()=>lt(()=>import("./cms-fa-0l7dTeOE.js"),[]),
410"./cms/cms-fi.json":()=>lt(()=>import("./cms-fi-BYUUEVkv.js"),[]),
410"./cms/cms-fr.json":()=>lt(()=>import("./cms-fr-DABudqwT.js"),[]),
410"./cms/cms-id.json":()=>lt(()=>import("./cms-id-DEpaMWCB.js"),[]),
410"./cms/cms-it.json":()=>lt(()=>import("./cms-it-CTYo1alJ.js"),[]),
410"./cms/cms-ko.json":()=>lt(()=>import("./cms-ko-iWcu2T7l.js"),[]),
410"./cms/cms-pt.json":()=>lt(()=>import("./cms-pt-DV7ToUf1.js"),[]),
410"./cms/cms-ru.json":()=>lt(()=>import("./cms-ru-ChZUKoGG.js"),[]),
410"./cms/cms-sq.json":()=>lt(()=>import("./cms-sq-CCp65qvs.js"),[]),
410"./cms/cms-tr.json":()=>lt(()=>import("./cms-tr-CBOQe2qt.js"),[]),
410"./cms/cms-uz.json":()=>lt(()=>import("./cms-uz-OwG5ZG0u.js"),[]),
410"./cms/cms-vi.json":()=>lt(()=>import("./cms-vi-D4jtlqeC.js"),[]),
410"./cms/cms-zh.json":()=>lt(()=>import("./cms-zh-IBJ0NJwx.js"),[])
410}),vre=t=>bre[`./cms/cms-${t}.json`],Qp={[Cr]:EU},em=(t,e)=>{const n=Qp[t];if(!n){Qp[t]=e;return}const a=(o,s)=>{Object.entries(s).forEach(([u,c])=>{const p=o[u];if(c&&typeof c=="object"&&p&&typeof p=="object"){a(p,c);return}o[u]=c})};a(n,e)},TU=async t=>{if(Qp[t])return;const e=yre(t);if(!e){console.warn(`Locale file for "${t}" not found, falling back to default locale.`);return}try{const n=await e();n!=null&&n.default&&em(t,n.default)}catch(n){console.warn(`Locale file for "${t}" could not be loaded, falling back to default locale.`,n)}},wre=15e3,UC=[1e3,3e3,8e3],RU="i18n:override:",_re=async t=>{if(typeof window>"u")return{data:null,retryable:!1};const e=new AbortController,n=window.setTimeout(()=>e.abort(),wre);try{const a=await wn.get(`/translations/${t}`,{signal:e.signal});return{data:a&&typeof a=="object"?a:null,retryable:!1}}catch(a){return console.warn(`[i18n] Dynamic translations for "${t}" could not be loaded`,a),{data:null,retryable:!(a instanceof Tw&&a.status===404)}}finally{window.clearTimeout(n)}},Sre=t=>new Promise(e=>window.setTimeout(e,t)),kre=async t=>{for(let e=0;;e+=1){const{data:n,retryable:a}=await _re(t);if(n||!a||e>=UC.length)return n;await Sre(UC[e])}},Ere=t=>{try{const e=window.localStorage.getItem(`${RU}${t}`),n=e?JSON.parse(e):null;return n&&typeof n=="object"?n:null}catch{return null}},Tre=(t,e)=>{try{window.localStorage.setItem(`${RU}${t}`,JSON.stringify(e))}catch{return}},T_={},CU=(t,e)=>{T_[t]=structuredClone(e),em(t,e)},Rre=t=>{if(typeof window>"u"||T_[t])return;const e=Ere(t);e&&CU(t,e)},AU=new Set,wv=new Map;let ei=UA();const xU=(t,e=Promise.resolve())=>{const n=wv.get(t);if(n)return n;const a=(async()=>{const o=await kre(t);await e,o&&(Tre(t,o),CU(t,o),AU.add(t),t===ei&&IU())})().finally(()=>wv.delete(t));return wv.set(t,a),a},Cre=t=>{typeof document<"u"&&(document.documentElement.lang=t)},OU=aa(),Goe=Lo(ei).on(OU,(t,e)=>e),IU=aa(),Hoe=Lo(0).on(IU,t=>t+1),Voe=()=>ei,R_=async t=>{const e=TU(t);xU(t,e),await e,Rre(t),ei=t,Cre(t),OU(t)};let C_=!1;const Are=async t=>{C_=!0,await Promise.all([R_(t),t!==Cr?TU(Cr):Promise.resolve()])},tm=new Set,qu=new Set,_v=new Map,DU=aa(),Yoe=Lo(0).on(DU,t=>t+1),qoe=t=>tm.has(t)||qu.has(t)&&tm.has(Cr),FC=t=>{if(tm.has(t))return Promise.resolve(!1);const e=_v.get(t);if(e)return e;const n=vre(t);if(!n)return qu.has(t)?Promise.resolve(!1):(qu.add(t),console.warn(`CMS copy for "${t}" not found, falling back to default locale.`),Promise.resolve(!0));const a=n().then(o=>{if(o!=null&&o.default){em(t,o.default);const s=T_[t];s&&em(t,s),tm.add(t)}return!0}).catch(o=>(console.warn(`CMS copy for "${t}" could not be loaded, falling back to default locale.`,o),!qu.has(t))).finally(()=>{qu.add(t),_v.delete(t)});return _v.set(t,a),a},Zoe=async()=>{const t=ei;
410(await Promise.all([FC(t),t!==Cr?FC(Cr):Promise.resolve(!1)])).some(Boolean)&&DU()},Koe=async(t,e,n=!0)=>{const a=gz(t);if(e)try{await wn.put("/user/profile",{language:a})}catch(o){console.error("Failed to persist the language on the profile",o)}if(await R_(a),n&&typeof window<"u"){const{search:o,hash:s}=window.location;window.location.assign(`${J0(fz(),a,Cr)}${o}${s}`)}return a};pz(t=>{C_&&t!==ei&&R_(t)});const $C=()=>{C_&&!AU.has(ei)&&xU(ei)};typeof window<"u"&&(window.addEventListener("online",$C),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&$C()}));const xre=(t,e)=>{if(!t)return;const n=t[e];if(typeof n=="string")return n;let a=t;for(const o of e.split(".")){if(typeof a!="object"||a===null)return;a=a[o]}return typeof a=="string"?a:void 0},Ore=/\{\{([^{}]+)\}\}/g,Ire=/\{([^{}]+)\}/g,Dre=(t,e)=>{if(!e)return t;const n=(a,o)=>{const s=e[o.trim()];return s===void 0?a:String(s)};return t.replace(Ore,n).replace(Ire,n)},zC=(t,e)=>{const n=xre(Qp[t],e);return n!==void 0&&n.trim()!==""?n:void 0},Ll=(t,e)=>{const n=zC(ei,t)??(ei===Cr?void 0:zC(Cr,t));return n===void 0?t:Dre(n,{site:vp.meta.title,...e})},Lre=async t=>{try{return{status:200,data:await t()}}catch(e){if(Em(e))return{status:e.status,data:e.body??{}};throw e}},Nre=()=>({requiredField:Ll("errors.validation.required_field"),invalidEmail:Ll("errors.validation.invalid_email"),invalidEmailCharacters:Ll("errors.validation.invalid_email_characters"),invalidDate:Ll("errors.validation.invalid_date"),emailError:Ll("modals.verification.errors.email"),genericError:Ll("modals.verification.errors.generic")});let jC=!1;const Pre=t=>{jC||(jC=!0,ire({http:{post:(e,n)=>Lre(()=>wn.post(e,n))},refreshProfile:t,trackEvent:dw,messages:Nre()}))},nm="/image-placeholder.svg",Wre="data-image-placeholder",GC="imagePlaceholderApplied",Xoe=t=>{const e=t==null?void 0:t.trim();return e||nm},Mre=t=>{const e=t==null?void 0:t.trim();return e?e===nm||e.endsWith(nm):!1},Bre=t=>t.getAttribute(Wre)==="off"||t.dataset[GC]==="true"||Mre(t.getAttribute("src"))?!1:(t.dataset[GC]="true",t.src=nm,!0),Ure=()=>{const t=e=>{const{target:n}=e;if(!(n instanceof HTMLImageElement))return;const a=n.getAttribute("src");queueMicrotask(()=>{n.getAttribute("src")===a&&Bre(n)})};return document.addEventListener("error",t,!0),()=>document.removeEventListener("error",t,!0)},Fre=HH(),A_=new URLSearchParams(window.location.search);rz(A_);az(A_);iz(A_);Ure();XH(document,window,navigator);qH();YH();rX();GH();Pre(async()=>{const{loadProfileFx:t}=await lt(async()=>{const{loadProfileFx:e}=await import("./session-1pMhuUoh.js").then(n=>n.qU);return{loadProfileFx:e}},[]);await t()});nre();const LU=document.getElementById("root");if(!LU)throw new Error("Root container #root was not found");const $re=async()=>{var u;const t=H$(),e=BA(window.location.pathname),n=(u=window.location.pathname.split("/").filter(Boolean)[0])==null?void 0:u.toLowerCase(),a=e?mz(e):WA();if(!e&&!cm(n)&&a!==Cr){const{pathname:c,search:p,hash:d}=window.location;window.history.replaceState(window.history.state,"",`/${a}${c==="/"?"":c}${p}${d}`)}try{await Are(a)}catch(c){console.error("i18n setup failed; falling back to the default locale",c)}await t;const{App:o}=await lt(async()=>{const{App:c}=await import("./App-BhUh1sGR.js").then(p=>p.A);return{App:c}},__vite__mapDeps([0,1,2])),{appStarted:s}=await lt(async()=>{const{appStarted:c}=await import("./session-1pMhuUoh.js").then(p=>p.qU);return{appStarted:c}},[]);s(),dF.createRoot(LU).render(AE.jsx(ZC.StrictMode,{children:AE.jsx(o,{})}))};Fre||$re();export{Une as $,Sae as A,kG as B,Fe as C,yae as D,g$ as E,Lo as F,aa as G,IH as H,Gn as I,ks as J,_l as K,ld as L,ve as M,wn as N,Xre as O,j$ as P,Fae as Q,Hre as R,Ns as S,Pae as T,Uae as U,Bae as V,Mae as W,$ae as X,Em as Y,Vae as Z,lt as _,_ne as a,Ie as a$,Yf as a0,dw as a1,TA as a2,Iae as a3,UA as a4,Oae as a5,dm as a6,qn as a7,Vn as a8,ie as a9,Jre as aA,Qre as aB,roe as aC,aae as aD,Tae as aE,qF as aF,Rae as aG,Zre as aH,HF as aI,tae as aJ,dae as aK,VF as aL,nae as aM,mae as aN,hae as aO,oae as aP,iae as aQ,lae as aR,cae as aS,fae as aT,sae as aU,rae as aV,gae as aW,Dae as aX,pae as aY,Ec as aZ,GF as a_,Jne as aa,zz as ab,xae as ac,C$ as ad,lF as ae,bv as af,Ine as ag,q0 as ah,rie as ai,lH as aj,Na as ak,Yae as al,
410Kz as am,Zz as an,Aie as ao,gb as ap,xz as aq,fz as ar,Q0 as as,qre as at,Vre as au,Yre as av,mt as aw,jF as ax,uae as ay,eae as az,PT as b,Md as b$,sm as b0,Vie as b1,Yie as b2,Oie as b3,Iie as b4,gH as b5,Pie as b6,Xv as b7,Jv as b8,Nie as b9,Goe as bA,Koe as bB,OA as bC,Jr as bD,Xoe as bE,Zae as bF,tie as bG,Woe as bH,Moe as bI,Pd as bJ,Poe as bK,Rie as bL,Tie as bM,Ab as bN,Cb as bO,LT as bP,NT as bQ,ej as bR,nT as bS,zA as bT,Kae as bU,Xae as bV,Qz as bW,RC as bX,Jie as bY,G$ as bZ,_b as b_,GT as ba,qie as bb,Wie as bc,Gie as bd,Die as be,TH as bf,Rb as bg,cH as bh,Gz as bi,eie as bj,qv as bk,qae as bl,Jae as bm,Hie as bn,Qv as bo,Lie as bp,Uie as bq,Mie as br,Bie as bs,SH as bt,Fie as bu,Vx as bv,kr as bw,Qae as bx,Hae as by,Lv as bz,Gre as c,xne as c$,kae as c0,sA as c1,Ww as c2,ioe as c3,K4 as c4,Z4 as c5,nre as c6,xie as c7,$z as c8,zae as c9,Voe as cA,_C as cB,ho as cC,Sne as cD,Cae as cE,Yd as cF,Hb as cG,eR as cH,coe as cI,uoe as cJ,Xie as cK,Boe as cL,BA as cM,Cr as cN,dz as cO,aoe as cP,J0 as cQ,joe as cR,zoe as cS,Uoe as cT,Foe as cU,$oe as cV,IA as cW,Ane as cX,ooe as cY,LA as cZ,mC as c_,Zie as ca,Kie as cb,jz as cc,Xz as cd,Jz as ce,so as cf,Lae as cg,Eae as ch,soe as ci,jae as cj,noe as ck,qz as cl,Yz as cm,nie as cn,Hz as co,vp as cp,zp as cq,doe as cr,KX as cs,LX as ct,Nae as cu,DT as cv,Cie as cw,ua as cx,Uz as cy,Vz as cz,iie as d,rte as d$,EU as d0,xoe as d1,One as d2,jne as d3,Gne as d4,Ooe as d5,Qte as d6,moe as d7,Dne as d8,Yoe as d9,ste as dA,Yl as dB,Vu as dC,fp as dD,Al as dE,fte as dF,KR as dG,ZR as dH,Ma as dI,jb as dJ,is as dK,ZX as dL,hte as dM,$b as dN,Y0 as dO,Yr as dP,Wf as dQ,Ite as dR,eC as dS,bte as dT,cte as dU,iC as dV,ote as dW,ate as dX,ite as dY,wte as dZ,qR as d_,Zoe as da,qoe as db,Kre as dc,Qie as dd,poe as de,Wte as df,Tte as dg,Rte as dh,z0 as di,j0 as dj,XR as dk,ute as dl,dte as dm,Cte as dn,Ate as dp,xte as dq,Ote as dr,pa as ds,Gb as dt,oX as du,nte as dv,yd as dw,go as dx,lte as dy,Vb as dz,QE as e,EC as e$,vte as e0,Q2 as e1,Yb as e2,pX as e3,mX as e4,wX as e5,Bf as e6,Bl as e7,Noe as e8,Mf as e9,vv as eA,Pne as eB,Wne as eC,Wae as eD,DX as eE,Eoe as eF,Toe as eG,G0 as eH,koe as eI,Bne as eJ,Mne as eK,qne as eL,AC as eM,Ioe as eN,Loe as eO,Dl as eP,Yne as eQ,Doe as eR,Vne as eS,Hne as eT,yoe as eU,boe as eV,TC as eW,Cne as eX,pC as eY,voe as eZ,$ne as e_,foe as ea,wi as eb,oR as ec,sR as ed,CX as ee,AX as ef,xX as eg,OX as eh,IX as ei,hoe as ej,s3 as ek,aR as el,iR as em,da as en,kX as eo,SX as ep,TX as eq,EX as er,co as es,xC as et,pv as eu,b0 as ev,z2 as ew,loe as ex,yX as ey,bX as ez,toe as f,gv as f0,Aoe as f1,_oe as f2,Ene as f3,fC as f4,woe as f5,one as f6,goe as f7,Tne as f8,Coe as f9,mv as fa,Roe as fb,Fne as fc,Lne as fd,Nne as fe,kne as ff,Soe as fg,Aae as fh,Hoe as fi,Ts as fj,jre as fk,jie as fl,cA as fm,zie as fn,$ie as fo,X8 as g,eoe as h,Gae as i,AE as j,vi as k,BH as l,Y7 as m,J7 as n,To as o,xi as p,YF as q,ZC as r,mF as s,Ll as t,Gx as u,bae as v,y$ as w,_ae as x,vae as y,wae as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.