diff --git a/frontend/dist/assets/index-Bl6mT-Tv.js b/frontend/dist/assets/index-BaffKzEs.js similarity index 61% rename from frontend/dist/assets/index-Bl6mT-Tv.js rename to frontend/dist/assets/index-BaffKzEs.js index 2eaf6cb..23eba2a 100644 --- a/frontend/dist/assets/index-Bl6mT-Tv.js +++ b/frontend/dist/assets/index-BaffKzEs.js @@ -1,4 +1,4 @@ -var Kg=Object.defineProperty;var Yg=(r,a,o)=>a in r?Kg(r,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[a]=o;var zn=(r,a,o)=>Yg(r,typeof a!="symbol"?a+"":a,o);function Zg(r,a){for(var o=0;oi[u]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))i(u);new MutationObserver(u=>{for(const l of u)if(l.type==="childList")for(const A of l.addedNodes)A.tagName==="LINK"&&A.rel==="modulepreload"&&i(A)}).observe(document,{childList:!0,subtree:!0});function o(u){const l={};return u.integrity&&(l.integrity=u.integrity),u.referrerPolicy&&(l.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?l.credentials="include":u.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function i(u){if(u.ep)return;u.ep=!0;const l=o(u);fetch(u.href,l)}})();var Yc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Po(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function Uh(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var a=r.default;if(typeof a=="function"){var o=function i(){return this instanceof i?Reflect.construct(a,arguments,this.constructor):a.apply(this,arguments)};o.prototype=a.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(r).forEach(function(i){var u=Object.getOwnPropertyDescriptor(r,i);Object.defineProperty(o,i,u.get?u:{enumerable:!0,get:function(){return r[i]}})}),o}var Zc={exports:{}},ma={},Xc={exports:{}},Oe={};/** +var Kg=Object.defineProperty;var Yg=(r,a,o)=>a in r?Kg(r,a,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[a]=o;var zn=(r,a,o)=>Yg(r,typeof a!="symbol"?a+"":a,o);function Zg(r,a){for(var o=0;oi[u]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))i(u);new MutationObserver(u=>{for(const l of u)if(l.type==="childList")for(const A of l.addedNodes)A.tagName==="LINK"&&A.rel==="modulepreload"&&i(A)}).observe(document,{childList:!0,subtree:!0});function o(u){const l={};return u.integrity&&(l.integrity=u.integrity),u.referrerPolicy&&(l.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?l.credentials="include":u.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function i(u){if(u.ep)return;u.ep=!0;const l=o(u);fetch(u.href,l)}})();var Yc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Po(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function Uh(r){if(Object.prototype.hasOwnProperty.call(r,"__esModule"))return r;var a=r.default;if(typeof a=="function"){var o=function i(){return this instanceof i?Reflect.construct(a,arguments,this.constructor):a.apply(this,arguments)};o.prototype=a.prototype}else o={};return Object.defineProperty(o,"__esModule",{value:!0}),Object.keys(r).forEach(function(i){var u=Object.getOwnPropertyDescriptor(r,i);Object.defineProperty(o,i,u.get?u:{enumerable:!0,get:function(){return r[i]}})}),o}var Zc={exports:{}},ma={},Xc={exports:{}},Le={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var Kg=Object.defineProperty;var Yg=(r,a,o)=>a in r?Kg(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Hf;function Xg(){if(Hf)return Oe;Hf=1;var r=Symbol.for("react.element"),a=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),A=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),x=Symbol.iterator;function g(y){return y===null||typeof y!="object"?null:(y=x&&y[x]||y["@@iterator"],typeof y=="function"?y:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,k={};function v(y,j,L){this.props=y,this.context=j,this.refs=k,this.updater=L||w}v.prototype.isReactComponent={},v.prototype.setState=function(y,j){if(typeof y!="object"&&typeof y!="function"&&y!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,y,j,"setState")},v.prototype.forceUpdate=function(y){this.updater.enqueueForceUpdate(this,y,"forceUpdate")};function S(){}S.prototype=v.prototype;function E(y,j,L){this.props=y,this.context=j,this.refs=k,this.updater=L||w}var C=E.prototype=new S;C.constructor=E,b(C,v.prototype),C.isPureReactComponent=!0;var B=Array.isArray,D=Object.prototype.hasOwnProperty,T={current:null},I={key:!0,ref:!0,__self:!0,__source:!0};function P(y,j,L){var W,ue={},le=null,ce=null;if(j!=null)for(W in j.ref!==void 0&&(ce=j.ref),j.key!==void 0&&(le=""+j.key),j)D.call(j,W)&&!I.hasOwnProperty(W)&&(ue[W]=j[W]);var te=arguments.length-2;if(te===1)ue.children=L;else if(1a in r?Kg(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var zf;function Jg(){if(zf)return ma;zf=1;var r=Nu(),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,u=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function A(c,h,d){var p,x={},g=null,w=null;d!==void 0&&(g=""+d),h.key!==void 0&&(g=""+h.key),h.ref!==void 0&&(w=h.ref);for(p in h)i.call(h,p)&&!l.hasOwnProperty(p)&&(x[p]=h[p]);if(c&&c.defaultProps)for(p in h=c.defaultProps,h)x[p]===void 0&&(x[p]=h[p]);return{$$typeof:a,type:c,key:g,ref:w,props:x,_owner:u.current}}return ma.Fragment=o,ma.jsx=A,ma.jsxs=A,ma}var Vf;function ev(){return Vf||(Vf=1,Zc.exports=Jg()),Zc.exports}var R=ev(),F=Nu();const he=Po(F),Iu=Zg({__proto__:null,default:he},[F]);var Ks={},Jc={exports:{}},rr={},eu={exports:{}},tu={};/** + */var zf;function Jg(){if(zf)return ma;zf=1;var r=Nu(),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,u=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function A(c,h,d){var x,p={},g=null,C=null;d!==void 0&&(g=""+d),h.key!==void 0&&(g=""+h.key),h.ref!==void 0&&(C=h.ref);for(x in h)i.call(h,x)&&!l.hasOwnProperty(x)&&(p[x]=h[x]);if(c&&c.defaultProps)for(x in h=c.defaultProps,h)p[x]===void 0&&(p[x]=h[x]);return{$$typeof:a,type:c,key:g,ref:C,props:p,_owner:u.current}}return ma.Fragment=o,ma.jsx=A,ma.jsxs=A,ma}var Vf;function ev(){return Vf||(Vf=1,Zc.exports=Jg()),Zc.exports}var R=ev(),F=Nu();const he=Po(F),Iu=Zg({__proto__:null,default:he},[F]);var Ks={},Jc={exports:{}},rr={},eu={exports:{}},tu={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var Kg=Object.defineProperty;var Yg=(r,a,o)=>a in r?Kg(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Uf;function tv(){return Uf||(Uf=1,(function(r){function a(q,oe){var ee=q.length;q.push(oe);e:for(;0>>1,j=q[y];if(0>>1;yu(ue,ee))leu(ce,ue)?(q[y]=ce,q[le]=ee,y=le):(q[y]=ue,q[W]=ee,y=W);else if(leu(ce,ee))q[y]=ce,q[le]=ee,y=le;else break e}}return oe}function u(q,oe){var ee=q.sortIndex-oe.sortIndex;return ee!==0?ee:q.id-oe.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;r.unstable_now=function(){return l.now()}}else{var A=Date,c=A.now();r.unstable_now=function(){return A.now()-c}}var h=[],d=[],p=1,x=null,g=3,w=!1,b=!1,k=!1,v=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(q){for(var oe=o(d);oe!==null;){if(oe.callback===null)i(d);else if(oe.startTime<=q)i(d),oe.sortIndex=oe.expirationTime,a(h,oe);else break;oe=o(d)}}function B(q){if(k=!1,C(q),!b)if(o(h)!==null)b=!0,J(D);else{var oe=o(d);oe!==null&&re(B,oe.startTime-q)}}function D(q,oe){b=!1,k&&(k=!1,S(P),P=-1),w=!0;var ee=g;try{for(C(oe),x=o(h);x!==null&&(!(x.expirationTime>oe)||q&&!N());){var y=x.callback;if(typeof y=="function"){x.callback=null,g=x.priorityLevel;var j=y(x.expirationTime<=oe);oe=r.unstable_now(),typeof j=="function"?x.callback=j:x===o(h)&&i(h),C(oe)}else i(h);x=o(h)}if(x!==null)var L=!0;else{var W=o(d);W!==null&&re(B,W.startTime-oe),L=!1}return L}finally{x=null,g=ee,w=!1}}var T=!1,I=null,P=-1,H=5,M=-1;function N(){return!(r.unstable_now()-Mq||125y?(q.sortIndex=ee,a(d,q),o(h)===null&&q===o(d)&&(k?(S(P),P=-1):k=!0,re(B,ee-y))):(q.sortIndex=j,a(h,q),b||w||(b=!0,J(D))),q},r.unstable_shouldYield=N,r.unstable_wrapCallback=function(q){var oe=g;return function(){var ee=g;g=oe;try{return q.apply(this,arguments)}finally{g=ee}}}})(tu)),tu}var Wf;function rv(){return Wf||(Wf=1,eu.exports=tv()),eu.exports}/** + */var Uf;function tv(){return Uf||(Uf=1,(function(r){function a(q,ae){var ee=q.length;q.push(ae);e:for(;0>>1,H=q[k];if(0>>1;ku(de,ee))reu(le,de)?(q[k]=le,q[re]=ee,k=re):(q[k]=de,q[W]=ee,k=W);else if(reu(le,ee))q[k]=le,q[re]=ee,k=re;else break e}}return ae}function u(q,ae){var ee=q.sortIndex-ae.sortIndex;return ee!==0?ee:q.id-ae.id}if(typeof performance=="object"&&typeof performance.now=="function"){var l=performance;r.unstable_now=function(){return l.now()}}else{var A=Date,c=A.now();r.unstable_now=function(){return A.now()-c}}var h=[],d=[],x=1,p=null,g=3,C=!1,w=!1,b=!1,v=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(q){for(var ae=o(d);ae!==null;){if(ae.callback===null)i(d);else if(ae.startTime<=q)i(d),ae.sortIndex=ae.expirationTime,a(h,ae);else break;ae=o(d)}}function B(q){if(b=!1,y(q),!w)if(o(h)!==null)w=!0,J(D);else{var ae=o(d);ae!==null&&ne(B,ae.startTime-q)}}function D(q,ae){w=!1,b&&(b=!1,S(P),P=-1),C=!0;var ee=g;try{for(y(ae),p=o(h);p!==null&&(!(p.expirationTime>ae)||q&&!N());){var k=p.callback;if(typeof k=="function"){p.callback=null,g=p.priorityLevel;var H=k(p.expirationTime<=ae);ae=r.unstable_now(),typeof H=="function"?p.callback=H:p===o(h)&&i(h),y(ae)}else i(h);p=o(h)}if(p!==null)var V=!0;else{var W=o(d);W!==null&&ne(B,W.startTime-ae),V=!1}return V}finally{p=null,g=ee,C=!1}}var T=!1,M=null,P=-1,j=5,I=-1;function N(){return!(r.unstable_now()-Iq||125k?(q.sortIndex=ee,a(d,q),o(h)===null&&q===o(d)&&(b?(S(P),P=-1):b=!0,ne(B,ee-k))):(q.sortIndex=H,a(h,q),w||C||(w=!0,J(D))),q},r.unstable_shouldYield=N,r.unstable_wrapCallback=function(q){var ae=g;return function(){var ee=g;g=ae;try{return q.apply(this,arguments)}finally{g=ee}}}})(tu)),tu}var Wf;function rv(){return Wf||(Wf=1,eu.exports=tv()),eu.exports}/** * @license React * react-dom.production.min.js * @@ -30,14 +30,14 @@ var Kg=Object.defineProperty;var Yg=(r,a,o)=>a in r?Kg(r,a,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var qf;function nv(){if(qf)return rr;qf=1;var r=Nu(),a=rv();function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,d=/^[: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]*$/,p={},x={};function g(e){return h.call(x,e)?!0:h.call(p,e)?!1:d.test(e)?x[e]=!0:(p[e]=!0,!1)}function w(e,t,n,s){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function b(e,t,n,s){if(t===null||typeof t>"u"||w(e,t,n,s))return!0;if(s)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function k(e,t,n,s,f,m,_){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=f,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=m,this.removeEmptyString=_}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){v[e]=new k(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];v[t]=new k(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){v[e]=new k(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){v[e]=new k(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){v[e]=new k(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){v[e]=new k(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){v[e]=new k(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){v[e]=new k(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){v[e]=new k(e,5,!1,e.toLowerCase(),null,!1,!1)});var S=/[\-:]([a-z])/g;function E(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(S,E);v[t]=new k(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(S,E);v[t]=new k(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(S,E);v[t]=new k(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){v[e]=new k(e,1,!1,e.toLowerCase(),null,!1,!1)}),v.xlinkHref=new k("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){v[e]=new k(e,1,!1,e.toLowerCase(),null,!0,!0)});function C(e,t,n,s){var f=v.hasOwnProperty(t)?v[t]:null;(f!==null?f.type!==0:s||!(2"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,d=/^[: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]*$/,x={},p={};function g(e){return h.call(p,e)?!0:h.call(x,e)?!1:d.test(e)?p[e]=!0:(x[e]=!0,!1)}function C(e,t,n,s){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function w(e,t,n,s){if(t===null||typeof t>"u"||C(e,t,n,s))return!0;if(s)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function b(e,t,n,s,f,m,_){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=f,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=m,this.removeEmptyString=_}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){v[e]=new b(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];v[t]=new b(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){v[e]=new b(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){v[e]=new b(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){v[e]=new b(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){v[e]=new b(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){v[e]=new b(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){v[e]=new b(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){v[e]=new b(e,5,!1,e.toLowerCase(),null,!1,!1)});var S=/[\-:]([a-z])/g;function E(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(S,E);v[t]=new b(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(S,E);v[t]=new b(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(S,E);v[t]=new b(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){v[e]=new b(e,1,!1,e.toLowerCase(),null,!1,!1)}),v.xlinkHref=new b("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){v[e]=new b(e,1,!1,e.toLowerCase(),null,!0,!0)});function y(e,t,n,s){var f=v.hasOwnProperty(t)?v[t]:null;(f!==null?f.type!==0:s||!(2O||f[_]!==m[O]){var z=` -`+f[_].replace(" at new "," at ");return e.displayName&&z.includes("")&&(z=z.replace("",e.displayName)),z}while(1<=_&&0<=O);break}}}finally{L=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?j(e):""}function ue(e){switch(e.tag){case 5:return j(e.type);case 16:return j("Lazy");case 13:return j("Suspense");case 19:return j("SuspenseList");case 0:case 2:case 15:return e=W(e.type,!1),e;case 11:return e=W(e.type.render,!1),e;case 1:return e=W(e.type,!0),e;default:return""}}function le(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case I:return"Fragment";case T:return"Portal";case H:return"Profiler";case P:return"StrictMode";case Q:return"Suspense";case X:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case M:return(e._context.displayName||"Context")+".Provider";case V:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ae:return t=e.displayName||null,t!==null?t:le(e.type)||"Memo";case J:t=e._payload,e=e._init;try{return le(e(t))}catch{}}return null}function ce(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return le(t);case 8:return t===P?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function te(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function me(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ne(e){var t=me(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var f=n.get,m=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return f.call(this)},set:function(_){s=""+_,m.call(this,_)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(_){s=""+_},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function $e(e){e._valueTracker||(e._valueTracker=Ne(e))}function nt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=me(e)?e.checked?"true":"false":e.value),e=s,e!==n?(t.setValue(e),!0):!1}function st(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Ke(e,t){var n=t.checked;return ee({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Gt(e,t){var n=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;n=te(t.value!=null?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Ot(e,t){t=t.checked,t!=null&&C(e,"checked",t,!1)}function St(e,t){Ot(e,t);var n=te(t.value),s=t.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ct(e,t.type,n):t.hasOwnProperty("defaultValue")&&ct(e,t.type,te(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Wt(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ct(e,t,n){(t!=="number"||st(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Tt=Array.isArray;function et(e,t,n,s){if(e=e.options,t){t={};for(var f=0;f"+t.valueOf().toString()+"",t=Kt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function yt(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var ot={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Y=["Webkit","ms","Moz","O"];Object.keys(ot).forEach(function(e){Y.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),ot[t]=ot[e]})});function fe(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||ot.hasOwnProperty(e)&&ot[e]?(""+t).trim():t+"px"}function be(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var s=n.indexOf("--")===0,f=fe(n,t[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,f):e[n]=f}}var $=ee({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ne(e,t){if(t){if($[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(o(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(o(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(t.style!=null&&typeof t.style!="object")throw Error(o(62))}}function pe(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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 Re=null;function De(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ie=null,Te=null,Pe=null;function Ct(e){if(e=ra(e)){if(typeof Ie!="function")throw Error(o(280));var t=e.stateNode;t&&(t=us(t),Ie(e.stateNode,e.type,t))}}function ke(e){Te?Pe?Pe.push(e):Pe=[e]:Te=e}function je(){if(Te){var e=Te,t=Pe;if(Pe=Te=null,Ct(e),t)for(e=0;e>>=0,e===0?32:31-(dm(e)/fm|0)|0}var Qa=64,Ga=4194304;function jo(e){switch(e&-e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $a(e,t){var n=e.pendingLanes;if(n===0)return 0;var s=0,f=e.suspendedLanes,m=e.pingedLanes,_=n&268435455;if(_!==0){var O=_&~f;O!==0?s=jo(O):(m&=_,m!==0&&(s=jo(m)))}else _=n&~f,_!==0?s=jo(_):m!==0&&(s=jo(m));if(s===0)return 0;if(t!==0&&t!==s&&(t&f)===0&&(f=s&-s,m=t&-t,f>=m||f===16&&(m&4194240)!==0))return t;if((s&4)!==0&&(s|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0n;n++)t.push(e);return t}function Ho(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-wr(t),e[t]=n}function xm(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0=Go),R0=" ",T0=!1;function P0(e,t){switch(e){case"keyup":return Wm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function N0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ro=!1;function Qm(e,t){switch(e){case"compositionend":return N0(t);case"keypress":return t.which!==32?null:(T0=!0,R0);case"textInput":return e=t.data,e===R0&&T0?null:e;default:return null}}function Gm(e,t){if(ro)return e==="compositionend"||!Fl&&P0(e,t)?(e=k0(),Ja=El=ln=null,ro=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=z0(n)}}function U0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?U0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function W0(){for(var e=window,t=st();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=st(e.document)}return t}function Pl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function rg(e){var t=W0(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&U0(n.ownerDocument.documentElement,n)){if(s!==null&&Pl(n)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var f=n.textContent.length,m=Math.min(s.start,f);s=s.end===void 0?m:Math.min(s.end,f),!e.extend&&m>s&&(f=s,s=m,m=f),f=V0(n,m);var _=V0(n,s);f&&_&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==_.node||e.focusOffset!==_.offset)&&(t=t.createRange(),t.setStart(f.node,f.offset),e.removeAllRanges(),m>s?(e.addRange(t),e.extend(_.node,_.offset)):(t.setEnd(_.node,_.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,no=null,Nl=null,Zo=null,Il=!1;function q0(e,t,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Il||no==null||no!==st(s)||(s=no,"selectionStart"in s&&Pl(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Zo&&Yo(Zo,s)||(Zo=s,s=is(Nl,"onSelect"),0lo||(e.current=Gl[lo],Gl[lo]=null,lo--)}function Xe(e,t){lo++,Gl[lo]=e.current,e.current=t}var fn={},Ht=dn(fn),Zt=dn(!1),Fn=fn;function co(e,t){var n=e.type.contextTypes;if(!n)return fn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var f={},m;for(m in n)f[m]=t[m];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=f),f}function Xt(e){return e=e.childContextTypes,e!=null}function ds(){rt(Zt),rt(Ht)}function sd(e,t,n){if(Ht.current!==fn)throw Error(o(168));Xe(Ht,t),Xe(Zt,n)}function id(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var f in s)if(!(f in t))throw Error(o(108,ce(e)||"Unknown",f));return ee({},n,s)}function fs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fn,Fn=Ht.current,Xe(Ht,e),Xe(Zt,Zt.current),!0}function ld(e,t,n){var s=e.stateNode;if(!s)throw Error(o(169));n?(e=id(e,t,Fn),s.__reactInternalMemoizedMergedChildContext=e,rt(Zt),rt(Ht),Xe(Ht,e)):rt(Zt),Xe(Zt,n)}var Wr=null,As=!1,$l=!1;function cd(e){Wr===null?Wr=[e]:Wr.push(e)}function hg(e){As=!0,cd(e)}function An(){if(!$l&&Wr!==null){$l=!0;var e=0,t=Ge;try{var n=Wr;for(Ge=1;e>=_,f-=_,qr=1<<32-wr(t)+f|n<Fe?(Dt=_e,_e=null):Dt=_e.sibling;var We=se(G,_e,K[Fe],Ae);if(We===null){_e===null&&(_e=Dt);break}e&&_e&&We.alternate===null&&t(G,_e),U=m(We,U,Fe),Be===null?Se=We:Be.sibling=We,Be=We,_e=Dt}if(Fe===K.length)return n(G,_e),at&&Tn(G,Fe),Se;if(_e===null){for(;FeFe?(Dt=_e,_e=null):Dt=_e.sibling;var wn=se(G,_e,We.value,Ae);if(wn===null){_e===null&&(_e=Dt);break}e&&_e&&wn.alternate===null&&t(G,_e),U=m(wn,U,Fe),Be===null?Se=wn:Be.sibling=wn,Be=wn,_e=Dt}if(We.done)return n(G,_e),at&&Tn(G,Fe),Se;if(_e===null){for(;!We.done;Fe++,We=K.next())We=de(G,We.value,Ae),We!==null&&(U=m(We,U,Fe),Be===null?Se=We:Be.sibling=We,Be=We);return at&&Tn(G,Fe),Se}for(_e=s(G,_e);!We.done;Fe++,We=K.next())We=xe(_e,G,Fe,We.value,Ae),We!==null&&(e&&We.alternate!==null&&_e.delete(We.key===null?Fe:We.key),U=m(We,U,Fe),Be===null?Se=We:Be.sibling=We,Be=We);return e&&_e.forEach(function($g){return t(G,$g)}),at&&Tn(G,Fe),Se}function pt(G,U,K,Ae){if(typeof K=="object"&&K!==null&&K.type===I&&K.key===null&&(K=K.props.children),typeof K=="object"&&K!==null){switch(K.$$typeof){case D:e:{for(var Se=K.key,Be=U;Be!==null;){if(Be.key===Se){if(Se=K.type,Se===I){if(Be.tag===7){n(G,Be.sibling),U=f(Be,K.props.children),U.return=G,G=U;break e}}else if(Be.elementType===Se||typeof Se=="object"&&Se!==null&&Se.$$typeof===J&&pd(Se)===Be.type){n(G,Be.sibling),U=f(Be,K.props),U.ref=na(G,Be,K),U.return=G,G=U;break e}n(G,Be);break}else t(G,Be);Be=Be.sibling}K.type===I?(U=Ln(K.props.children,G.mode,Ae,K.key),U.return=G,G=U):(Ae=zs(K.type,K.key,K.props,null,G.mode,Ae),Ae.ref=na(G,U,K),Ae.return=G,G=Ae)}return _(G);case T:e:{for(Be=K.key;U!==null;){if(U.key===Be)if(U.tag===4&&U.stateNode.containerInfo===K.containerInfo&&U.stateNode.implementation===K.implementation){n(G,U.sibling),U=f(U,K.children||[]),U.return=G,G=U;break e}else{n(G,U);break}else t(G,U);U=U.sibling}U=qc(K,G.mode,Ae),U.return=G,G=U}return _(G);case J:return Be=K._init,pt(G,U,Be(K._payload),Ae)}if(Tt(K))return ve(G,U,K,Ae);if(oe(K))return Ee(G,U,K,Ae);ms(G,K)}return typeof K=="string"&&K!==""||typeof K=="number"?(K=""+K,U!==null&&U.tag===6?(n(G,U.sibling),U=f(U,K),U.return=G,G=U):(n(G,U),U=Wc(K,G.mode,Ae),U.return=G,G=U),_(G)):n(G,U)}return pt}var ho=xd(!0),md=xd(!1),gs=dn(null),vs=null,po=null,ec=null;function tc(){ec=po=vs=null}function rc(e){var t=gs.current;rt(gs),e._currentValue=t}function nc(e,t,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function xo(e,t){vs=e,ec=po=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Jt=!0),e.firstContext=null)}function hr(e){var t=e._currentValue;if(ec!==e)if(e={context:e,memoizedValue:t,next:null},po===null){if(vs===null)throw Error(o(308));po=e,vs.dependencies={lanes:0,firstContext:e}}else po=po.next=e;return t}var Pn=null;function oc(e){Pn===null?Pn=[e]:Pn.push(e)}function gd(e,t,n,s){var f=t.interleaved;return f===null?(n.next=n,oc(t)):(n.next=f.next,f.next=n),t.interleaved=n,Gr(e,s)}function Gr(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hn=!1;function ac(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function vd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function $r(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pn(e,t,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Ue&2)!==0){var f=s.pending;return f===null?t.next=t:(t.next=f.next,f.next=t),s.pending=t,Gr(e,n)}return f=s.interleaved,f===null?(t.next=t,oc(s)):(t.next=f.next,f.next=t),s.interleaved=t,Gr(e,n)}function ys(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,vl(e,n)}}function yd(e,t){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var f=null,m=null;if(n=n.firstBaseUpdate,n!==null){do{var _={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};m===null?f=m=_:m=m.next=_,n=n.next}while(n!==null);m===null?f=m=t:m=m.next=t}else f=m=t;n={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:m,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Cs(e,t,n,s){var f=e.updateQueue;hn=!1;var m=f.firstBaseUpdate,_=f.lastBaseUpdate,O=f.shared.pending;if(O!==null){f.shared.pending=null;var z=O,Z=z.next;z.next=null,_===null?m=Z:_.next=Z,_=z;var ie=e.alternate;ie!==null&&(ie=ie.updateQueue,O=ie.lastBaseUpdate,O!==_&&(O===null?ie.firstBaseUpdate=Z:O.next=Z,ie.lastBaseUpdate=z))}if(m!==null){var de=f.baseState;_=0,ie=Z=z=null,O=m;do{var se=O.lane,xe=O.eventTime;if((s&se)===se){ie!==null&&(ie=ie.next={eventTime:xe,lane:0,tag:O.tag,payload:O.payload,callback:O.callback,next:null});e:{var ve=e,Ee=O;switch(se=t,xe=n,Ee.tag){case 1:if(ve=Ee.payload,typeof ve=="function"){de=ve.call(xe,de,se);break e}de=ve;break e;case 3:ve.flags=ve.flags&-65537|128;case 0:if(ve=Ee.payload,se=typeof ve=="function"?ve.call(xe,de,se):ve,se==null)break e;de=ee({},de,se);break e;case 2:hn=!0}}O.callback!==null&&O.lane!==0&&(e.flags|=64,se=f.effects,se===null?f.effects=[O]:se.push(O))}else xe={eventTime:xe,lane:se,tag:O.tag,payload:O.payload,callback:O.callback,next:null},ie===null?(Z=ie=xe,z=de):ie=ie.next=xe,_|=se;if(O=O.next,O===null){if(O=f.shared.pending,O===null)break;se=O,O=se.next,se.next=null,f.lastBaseUpdate=se,f.shared.pending=null}}while(!0);if(ie===null&&(z=de),f.baseState=z,f.firstBaseUpdate=Z,f.lastBaseUpdate=ie,t=f.shared.interleaved,t!==null){f=t;do _|=f.lane,f=f.next;while(f!==t)}else m===null&&(f.shared.lanes=0);Mn|=_,e.lanes=_,e.memoizedState=de}}function Cd(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var s=uc.transition;uc.transition={};try{e(!1),t()}finally{Ge=n,uc.transition=s}}function Ld(){return pr().memoizedState}function gg(e,t,n){var s=vn(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},zd(e))Vd(t,n);else if(n=gd(e,t,n,s),n!==null){var f=Qt();_r(n,e,s,f),Ud(n,t,s)}}function vg(e,t,n){var s=vn(e),f={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(zd(e))Vd(t,f);else{var m=e.alternate;if(e.lanes===0&&(m===null||m.lanes===0)&&(m=t.lastRenderedReducer,m!==null))try{var _=t.lastRenderedState,O=m(_,n);if(f.hasEagerState=!0,f.eagerState=O,br(O,_)){var z=t.interleaved;z===null?(f.next=f,oc(t)):(f.next=z.next,z.next=f),t.interleaved=f;return}}catch{}finally{}n=gd(e,t,f,s),n!==null&&(f=Qt(),_r(n,e,s,f),Ud(n,t,s))}}function zd(e){var t=e.alternate;return e===lt||t!==null&&t===lt}function Vd(e,t){ia=Es=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ud(e,t,n){if((n&4194240)!==0){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,vl(e,n)}}var Bs={readContext:hr,useCallback:Lt,useContext:Lt,useEffect:Lt,useImperativeHandle:Lt,useInsertionEffect:Lt,useLayoutEffect:Lt,useMemo:Lt,useReducer:Lt,useRef:Lt,useState:Lt,useDebugValue:Lt,useDeferredValue:Lt,useTransition:Lt,useMutableSource:Lt,useSyncExternalStore:Lt,useId:Lt,unstable_isNewReconciler:!1},yg={readContext:hr,useCallback:function(e,t){return Ir().memoizedState=[e,t===void 0?null:t],e},useContext:hr,useEffect:Td,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ks(4194308,4,Id.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ks(4194308,4,e,t)},useInsertionEffect:function(e,t){return ks(4,2,e,t)},useMemo:function(e,t){var n=Ir();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=Ir();return t=n!==void 0?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=gg.bind(null,lt,e),[s.memoizedState,e]},useRef:function(e){var t=Ir();return e={current:e},t.memoizedState=e},useState:Fd,useDebugValue:mc,useDeferredValue:function(e){return Ir().memoizedState=e},useTransition:function(){var e=Fd(!1),t=e[0];return e=mg.bind(null,e[1]),Ir().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=lt,f=Ir();if(at){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),_t===null)throw Error(o(349));(In&30)!==0||kd(s,t,n)}f.memoizedState=n;var m={value:n,getSnapshot:t};return f.queue=m,Td(Bd.bind(null,s,m,e),[e]),s.flags|=2048,ua(9,Sd.bind(null,s,m,n,t),void 0,null),n},useId:function(){var e=Ir(),t=_t.identifierPrefix;if(at){var n=Qr,s=qr;n=(s&~(1<<32-wr(s)-1)).toString(32)+n,t=":"+t+"R"+n,n=la++,0O||f[_]!==m[O]){var L=` +`+f[_].replace(" at new "," at ");return e.displayName&&L.includes("")&&(L=L.replace("",e.displayName)),L}while(1<=_&&0<=O);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function de(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=W(e.type,!1),e;case 11:return e=W(e.type.render,!1),e;case 1:return e=W(e.type,!0),e;default:return""}}function re(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case M:return"Fragment";case T:return"Portal";case j:return"Profiler";case P:return"StrictMode";case Q:return"Suspense";case X:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case I:return(e._context.displayName||"Context")+".Provider";case z:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case se:return t=e.displayName||null,t!==null?t:re(e.type)||"Memo";case J:t=e._payload,e=e._init;try{return re(e(t))}catch{}}return null}function le(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return re(t);case 8:return t===P?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function te(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Se(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Me(e){var t=Se(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var f=n.get,m=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return f.call(this)},set:function(_){s=""+_,m.call(this,_)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(_){s=""+_},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ne(e){e._valueTracker||(e._valueTracker=Me(e))}function Oe(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=Se(e)?e.checked?"true":"false":e.value),e=s,e!==n?(t.setValue(e),!0):!1}function We(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Re(e,t){var n=t.checked;return ee({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Bt(e,t){var n=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;n=te(t.value!=null?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function xt(e,t){t=t.checked,t!=null&&y(e,"checked",t,!1)}function _t(e,t){xt(e,t);var n=te(t.value),s=t.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ct(e,t.type,n):t.hasOwnProperty("defaultValue")&&ct(e,t.type,te(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function qt(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ct(e,t,n){(t!=="number"||We(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Nt=Array.isArray;function rt(e,t,n,s){if(e=e.options,t){t={};for(var f=0;f"+t.valueOf().toString()+"",t=Kt.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ct(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var at={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Y=["Webkit","ms","Moz","O"];Object.keys(at).forEach(function(e){Y.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),at[t]=at[e]})});function fe(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||at.hasOwnProperty(e)&&at[e]?(""+t).trim():t+"px"}function we(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var s=n.indexOf("--")===0,f=fe(n,t[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,f):e[n]=f}}var $=ee({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function oe(e,t){if(t){if($[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(o(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(o(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(t.style!=null&&typeof t.style!="object")throw Error(o(62))}}function pe(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){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 Te=null;function De(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var je=null,Pe=null,Ie=null;function wt(e){if(e=ra(e)){if(typeof je!="function")throw Error(o(280));var t=e.stateNode;t&&(t=us(t),je(e.stateNode,e.type,t))}}function Ee(e){Pe?Ie?Ie.push(e):Ie=[e]:Pe=e}function ze(){if(Pe){var e=Pe,t=Ie;if(Ie=Pe=null,wt(e),t)for(e=0;e>>=0,e===0?32:31-(dm(e)/fm|0)|0}var Qa=64,Ga=4194304;function jo(e){switch(e&-e){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: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 e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function $a(e,t){var n=e.pendingLanes;if(n===0)return 0;var s=0,f=e.suspendedLanes,m=e.pingedLanes,_=n&268435455;if(_!==0){var O=_&~f;O!==0?s=jo(O):(m&=_,m!==0&&(s=jo(m)))}else _=n&~f,_!==0?s=jo(_):m!==0&&(s=jo(m));if(s===0)return 0;if(t!==0&&t!==s&&(t&f)===0&&(f=s&-s,m=t&-t,f>=m||f===16&&(m&4194240)!==0))return t;if((s&4)!==0&&(s|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0n;n++)t.push(e);return t}function Ho(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-wr(t),e[t]=n}function xm(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0=Go),R0=" ",T0=!1;function P0(e,t){switch(e){case"keyup":return Wm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function N0(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ro=!1;function Qm(e,t){switch(e){case"compositionend":return N0(t);case"keypress":return t.which!==32?null:(T0=!0,R0);case"textInput":return e=t.data,e===R0&&T0?null:e;default:return null}}function Gm(e,t){if(ro)return e==="compositionend"||!Fl&&P0(e,t)?(e=k0(),Ja=El=ln=null,ro=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=z0(n)}}function U0(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?U0(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function W0(){for(var e=window,t=We();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=We(e.document)}return t}function Pl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function rg(e){var t=W0(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&U0(n.ownerDocument.documentElement,n)){if(s!==null&&Pl(n)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var f=n.textContent.length,m=Math.min(s.start,f);s=s.end===void 0?m:Math.min(s.end,f),!e.extend&&m>s&&(f=s,s=m,m=f),f=V0(n,m);var _=V0(n,s);f&&_&&(e.rangeCount!==1||e.anchorNode!==f.node||e.anchorOffset!==f.offset||e.focusNode!==_.node||e.focusOffset!==_.offset)&&(t=t.createRange(),t.setStart(f.node,f.offset),e.removeAllRanges(),m>s?(e.addRange(t),e.extend(_.node,_.offset)):(t.setEnd(_.node,_.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,no=null,Nl=null,Zo=null,Il=!1;function q0(e,t,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Il||no==null||no!==We(s)||(s=no,"selectionStart"in s&&Pl(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),Zo&&Yo(Zo,s)||(Zo=s,s=is(Nl,"onSelect"),0lo||(e.current=Gl[lo],Gl[lo]=null,lo--)}function et(e,t){lo++,Gl[lo]=e.current,e.current=t}var fn={},Lt=dn(fn),Zt=dn(!1),Fn=fn;function co(e,t){var n=e.type.contextTypes;if(!n)return fn;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var f={},m;for(m in n)f[m]=t[m];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=f),f}function Xt(e){return e=e.childContextTypes,e!=null}function ds(){ot(Zt),ot(Lt)}function sd(e,t,n){if(Lt.current!==fn)throw Error(o(168));et(Lt,t),et(Zt,n)}function id(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var f in s)if(!(f in t))throw Error(o(108,le(e)||"Unknown",f));return ee({},n,s)}function fs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fn,Fn=Lt.current,et(Lt,e),et(Zt,Zt.current),!0}function ld(e,t,n){var s=e.stateNode;if(!s)throw Error(o(169));n?(e=id(e,t,Fn),s.__reactInternalMemoizedMergedChildContext=e,ot(Zt),ot(Lt),et(Lt,e)):ot(Zt),et(Zt,n)}var Wr=null,As=!1,$l=!1;function cd(e){Wr===null?Wr=[e]:Wr.push(e)}function hg(e){As=!0,cd(e)}function An(){if(!$l&&Wr!==null){$l=!0;var e=0,t=Ze;try{var n=Wr;for(Ze=1;e>=_,f-=_,qr=1<<32-wr(t)+f|n<Fe?(Rt=_e,_e=null):Rt=_e.sibling;var $e=ie(G,_e,K[Fe],Ae);if($e===null){_e===null&&(_e=Rt);break}e&&_e&&$e.alternate===null&&t(G,_e),U=m($e,U,Fe),Be===null?ke=$e:Be.sibling=$e,Be=$e,_e=Rt}if(Fe===K.length)return n(G,_e),st&&Tn(G,Fe),ke;if(_e===null){for(;FeFe?(Rt=_e,_e=null):Rt=_e.sibling;var wn=ie(G,_e,$e.value,Ae);if(wn===null){_e===null&&(_e=Rt);break}e&&_e&&wn.alternate===null&&t(G,_e),U=m(wn,U,Fe),Be===null?ke=wn:Be.sibling=wn,Be=wn,_e=Rt}if($e.done)return n(G,_e),st&&Tn(G,Fe),ke;if(_e===null){for(;!$e.done;Fe++,$e=K.next())$e=ue(G,$e.value,Ae),$e!==null&&(U=m($e,U,Fe),Be===null?ke=$e:Be.sibling=$e,Be=$e);return st&&Tn(G,Fe),ke}for(_e=s(G,_e);!$e.done;Fe++,$e=K.next())$e=xe(_e,G,Fe,$e.value,Ae),$e!==null&&(e&&$e.alternate!==null&&_e.delete($e.key===null?Fe:$e.key),U=m($e,U,Fe),Be===null?ke=$e:Be.sibling=$e,Be=$e);return e&&_e.forEach(function($g){return t(G,$g)}),st&&Tn(G,Fe),ke}function pt(G,U,K,Ae){if(typeof K=="object"&&K!==null&&K.type===M&&K.key===null&&(K=K.props.children),typeof K=="object"&&K!==null){switch(K.$$typeof){case D:e:{for(var ke=K.key,Be=U;Be!==null;){if(Be.key===ke){if(ke=K.type,ke===M){if(Be.tag===7){n(G,Be.sibling),U=f(Be,K.props.children),U.return=G,G=U;break e}}else if(Be.elementType===ke||typeof ke=="object"&&ke!==null&&ke.$$typeof===J&&pd(ke)===Be.type){n(G,Be.sibling),U=f(Be,K.props),U.ref=na(G,Be,K),U.return=G,G=U;break e}n(G,Be);break}else t(G,Be);Be=Be.sibling}K.type===M?(U=Ln(K.props.children,G.mode,Ae,K.key),U.return=G,G=U):(Ae=zs(K.type,K.key,K.props,null,G.mode,Ae),Ae.ref=na(G,U,K),Ae.return=G,G=Ae)}return _(G);case T:e:{for(Be=K.key;U!==null;){if(U.key===Be)if(U.tag===4&&U.stateNode.containerInfo===K.containerInfo&&U.stateNode.implementation===K.implementation){n(G,U.sibling),U=f(U,K.children||[]),U.return=G,G=U;break e}else{n(G,U);break}else t(G,U);U=U.sibling}U=qc(K,G.mode,Ae),U.return=G,G=U}return _(G);case J:return Be=K._init,pt(G,U,Be(K._payload),Ae)}if(Nt(K))return ge(G,U,K,Ae);if(ae(K))return be(G,U,K,Ae);ms(G,K)}return typeof K=="string"&&K!==""||typeof K=="number"?(K=""+K,U!==null&&U.tag===6?(n(G,U.sibling),U=f(U,K),U.return=G,G=U):(n(G,U),U=Wc(K,G.mode,Ae),U.return=G,G=U),_(G)):n(G,U)}return pt}var ho=xd(!0),md=xd(!1),gs=dn(null),vs=null,po=null,ec=null;function tc(){ec=po=vs=null}function rc(e){var t=gs.current;ot(gs),e._currentValue=t}function nc(e,t,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function xo(e,t){vs=e,ec=po=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Jt=!0),e.firstContext=null)}function hr(e){var t=e._currentValue;if(ec!==e)if(e={context:e,memoizedValue:t,next:null},po===null){if(vs===null)throw Error(o(308));po=e,vs.dependencies={lanes:0,firstContext:e}}else po=po.next=e;return t}var Pn=null;function oc(e){Pn===null?Pn=[e]:Pn.push(e)}function gd(e,t,n,s){var f=t.interleaved;return f===null?(n.next=n,oc(t)):(n.next=f.next,f.next=n),t.interleaved=n,Gr(e,s)}function Gr(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var hn=!1;function ac(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function vd(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function $r(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function pn(e,t,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,(Ge&2)!==0){var f=s.pending;return f===null?t.next=t:(t.next=f.next,f.next=t),s.pending=t,Gr(e,n)}return f=s.interleaved,f===null?(t.next=t,oc(s)):(t.next=f.next,f.next=t),s.interleaved=t,Gr(e,n)}function ys(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,vl(e,n)}}function yd(e,t){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var f=null,m=null;if(n=n.firstBaseUpdate,n!==null){do{var _={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};m===null?f=m=_:m=m.next=_,n=n.next}while(n!==null);m===null?f=m=t:m=m.next=t}else f=m=t;n={baseState:s.baseState,firstBaseUpdate:f,lastBaseUpdate:m,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Cs(e,t,n,s){var f=e.updateQueue;hn=!1;var m=f.firstBaseUpdate,_=f.lastBaseUpdate,O=f.shared.pending;if(O!==null){f.shared.pending=null;var L=O,Z=L.next;L.next=null,_===null?m=Z:_.next=Z,_=L;var ce=e.alternate;ce!==null&&(ce=ce.updateQueue,O=ce.lastBaseUpdate,O!==_&&(O===null?ce.firstBaseUpdate=Z:O.next=Z,ce.lastBaseUpdate=L))}if(m!==null){var ue=f.baseState;_=0,ce=Z=L=null,O=m;do{var ie=O.lane,xe=O.eventTime;if((s&ie)===ie){ce!==null&&(ce=ce.next={eventTime:xe,lane:0,tag:O.tag,payload:O.payload,callback:O.callback,next:null});e:{var ge=e,be=O;switch(ie=t,xe=n,be.tag){case 1:if(ge=be.payload,typeof ge=="function"){ue=ge.call(xe,ue,ie);break e}ue=ge;break e;case 3:ge.flags=ge.flags&-65537|128;case 0:if(ge=be.payload,ie=typeof ge=="function"?ge.call(xe,ue,ie):ge,ie==null)break e;ue=ee({},ue,ie);break e;case 2:hn=!0}}O.callback!==null&&O.lane!==0&&(e.flags|=64,ie=f.effects,ie===null?f.effects=[O]:ie.push(O))}else xe={eventTime:xe,lane:ie,tag:O.tag,payload:O.payload,callback:O.callback,next:null},ce===null?(Z=ce=xe,L=ue):ce=ce.next=xe,_|=ie;if(O=O.next,O===null){if(O=f.shared.pending,O===null)break;ie=O,O=ie.next,ie.next=null,f.lastBaseUpdate=ie,f.shared.pending=null}}while(!0);if(ce===null&&(L=ue),f.baseState=L,f.firstBaseUpdate=Z,f.lastBaseUpdate=ce,t=f.shared.interleaved,t!==null){f=t;do _|=f.lane,f=f.next;while(f!==t)}else m===null&&(f.shared.lanes=0);Mn|=_,e.lanes=_,e.memoizedState=ue}}function Cd(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var s=uc.transition;uc.transition={};try{e(!1),t()}finally{Ze=n,uc.transition=s}}function Ld(){return pr().memoizedState}function gg(e,t,n){var s=vn(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},zd(e))Vd(t,n);else if(n=gd(e,t,n,s),n!==null){var f=Gt();_r(n,e,s,f),Ud(n,t,s)}}function vg(e,t,n){var s=vn(e),f={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(zd(e))Vd(t,f);else{var m=e.alternate;if(e.lanes===0&&(m===null||m.lanes===0)&&(m=t.lastRenderedReducer,m!==null))try{var _=t.lastRenderedState,O=m(_,n);if(f.hasEagerState=!0,f.eagerState=O,br(O,_)){var L=t.interleaved;L===null?(f.next=f,oc(t)):(f.next=L.next,L.next=f),t.interleaved=f;return}}catch{}finally{}n=gd(e,t,f,s),n!==null&&(f=Gt(),_r(n,e,s,f),Ud(n,t,s))}}function zd(e){var t=e.alternate;return e===lt||t!==null&&t===lt}function Vd(e,t){ia=Es=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ud(e,t,n){if((n&4194240)!==0){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,vl(e,n)}}var Bs={readContext:hr,useCallback:zt,useContext:zt,useEffect:zt,useImperativeHandle:zt,useInsertionEffect:zt,useLayoutEffect:zt,useMemo:zt,useReducer:zt,useRef:zt,useState:zt,useDebugValue:zt,useDeferredValue:zt,useTransition:zt,useMutableSource:zt,useSyncExternalStore:zt,useId:zt,unstable_isNewReconciler:!1},yg={readContext:hr,useCallback:function(e,t){return Ir().memoizedState=[e,t===void 0?null:t],e},useContext:hr,useEffect:Td,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ks(4194308,4,Id.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ks(4194308,4,e,t)},useInsertionEffect:function(e,t){return ks(4,2,e,t)},useMemo:function(e,t){var n=Ir();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=Ir();return t=n!==void 0?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=gg.bind(null,lt,e),[s.memoizedState,e]},useRef:function(e){var t=Ir();return e={current:e},t.memoizedState=e},useState:Fd,useDebugValue:mc,useDeferredValue:function(e){return Ir().memoizedState=e},useTransition:function(){var e=Fd(!1),t=e[0];return e=mg.bind(null,e[1]),Ir().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=lt,f=Ir();if(st){if(n===void 0)throw Error(o(407));n=n()}else{if(n=t(),Ft===null)throw Error(o(349));(In&30)!==0||kd(s,t,n)}f.memoizedState=n;var m={value:n,getSnapshot:t};return f.queue=m,Td(Bd.bind(null,s,m,e),[e]),s.flags|=2048,ua(9,Sd.bind(null,s,m,n,t),void 0,null),n},useId:function(){var e=Ir(),t=Ft.identifierPrefix;if(st){var n=Qr,s=qr;n=(s&~(1<<32-wr(s)-1)).toString(32)+n,t=":"+t+"R"+n,n=la++,0<\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=_.createElement(n,{is:s.is}):(e=_.createElement(n),n==="select"&&(_=e,s.multiple?_.multiple=!0:s.size&&(_.size=s.size))):e=_.createElementNS(e,n),e[Pr]=t,e[ta]=s,uf(e,t,!1,!1),t.stateNode=e;e:{switch(_=pe(n,s),n){case"dialog":tt("cancel",e),tt("close",e),f=s;break;case"iframe":case"object":case"embed":tt("load",e),f=s;break;case"video":case"audio":for(f=0;fCo&&(t.flags|=128,s=!0,da(m,!1),t.lanes=4194304)}else{if(!s)if(e=ws(_),e!==null){if(t.flags|=128,s=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),da(m,!0),m.tail===null&&m.tailMode==="hidden"&&!_.alternate&&!at)return zt(t),null}else 2*ht()-m.renderingStartTime>Co&&n!==1073741824&&(t.flags|=128,s=!0,da(m,!1),t.lanes=4194304);m.isBackwards?(_.sibling=t.child,t.child=_):(n=m.last,n!==null?n.sibling=_:t.child=_,m.last=_)}return m.tail!==null?(t=m.tail,m.rendering=t,m.tail=t.sibling,m.renderingStartTime=ht(),t.sibling=null,n=it.current,Xe(it,s?n&1|2:n&1),t):(zt(t),null);case 22:case 23:return zc(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&(t.mode&1)!==0?(lr&1073741824)!==0&&(zt(t),t.subtreeFlags&6&&(t.flags|=8192)):zt(t),null;case 24:return null;case 25:return null}throw Error(o(156,t.tag))}function _g(e,t){switch(Yl(t),t.tag){case 1:return Xt(t.type)&&ds(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mo(),rt(Zt),rt(Ht),cc(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return ic(t),null;case 13:if(rt(it),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return rt(it),null;case 4:return mo(),null;case 10:return rc(t.type._context),null;case 22:case 23:return zc(),null;case 24:return null;default:return null}}var Rs=!1,Vt=!1,Dg=typeof WeakSet=="function"?WeakSet:Set,ge=null;function vo(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){At(e,t,s)}else n.current=null}function Dc(e,t,n){try{n()}catch(s){At(e,t,s)}}var Af=!1;function Fg(e,t){if(zl=Za,e=W0(),Pl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var f=s.anchorOffset,m=s.focusNode;s=s.focusOffset;try{n.nodeType,m.nodeType}catch{n=null;break e}var _=0,O=-1,z=-1,Z=0,ie=0,de=e,se=null;t:for(;;){for(var xe;de!==n||f!==0&&de.nodeType!==3||(O=_+f),de!==m||s!==0&&de.nodeType!==3||(z=_+s),de.nodeType===3&&(_+=de.nodeValue.length),(xe=de.firstChild)!==null;)se=de,de=xe;for(;;){if(de===e)break t;if(se===n&&++Z===f&&(O=_),se===m&&++ie===s&&(z=_),(xe=de.nextSibling)!==null)break;de=se,se=de.parentNode}de=xe}n=O===-1||z===-1?null:{start:O,end:z}}else n=null}n=n||{start:0,end:0}}else n=null;for(Vl={focusedElem:e,selectionRange:n},Za=!1,ge=t;ge!==null;)if(t=ge,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,ge=e;else for(;ge!==null;){t=ge;try{var ve=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(ve!==null){var Ee=ve.memoizedProps,pt=ve.memoizedState,G=t.stateNode,U=G.getSnapshotBeforeUpdate(t.elementType===t.type?Ee:kr(t.type,Ee),pt);G.__reactInternalSnapshotBeforeUpdate=U}break;case 3:var K=t.stateNode.containerInfo;K.nodeType===1?K.textContent="":K.nodeType===9&&K.documentElement&&K.removeChild(K.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(Ae){At(t,t.return,Ae)}if(e=t.sibling,e!==null){e.return=t.return,ge=e;break}ge=t.return}return ve=Af,Af=!1,ve}function fa(e,t,n){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var f=s=s.next;do{if((f.tag&e)===e){var m=f.destroy;f.destroy=void 0,m!==void 0&&Dc(t,n,m)}f=f.next}while(f!==s)}}function Ts(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function Fc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function hf(e){var t=e.alternate;t!==null&&(e.alternate=null,hf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Pr],delete t[ta],delete t[Ql],delete t[fg],delete t[Ag])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function pf(e){return e.tag===5||e.tag===3||e.tag===4}function xf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||pf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Rc(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=cs));else if(s!==4&&(e=e.child,e!==null))for(Rc(e,t,n),e=e.sibling;e!==null;)Rc(e,t,n),e=e.sibling}function Tc(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Tc(e,t,n),e=e.sibling;e!==null;)Tc(e,t,n),e=e.sibling}var Pt=null,Sr=!1;function xn(e,t,n){for(n=n.child;n!==null;)mf(e,t,n),n=n.sibling}function mf(e,t,n){if(Tr&&typeof Tr.onCommitFiberUnmount=="function")try{Tr.onCommitFiberUnmount(qa,n)}catch{}switch(n.tag){case 5:Vt||vo(n,t);case 6:var s=Pt,f=Sr;Pt=null,xn(e,t,n),Pt=s,Sr=f,Pt!==null&&(Sr?(e=Pt,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Pt.removeChild(n.stateNode));break;case 18:Pt!==null&&(Sr?(e=Pt,n=n.stateNode,e.nodeType===8?ql(e.parentNode,n):e.nodeType===1&&ql(e,n),Wo(e)):ql(Pt,n.stateNode));break;case 4:s=Pt,f=Sr,Pt=n.stateNode.containerInfo,Sr=!0,xn(e,t,n),Pt=s,Sr=f;break;case 0:case 11:case 14:case 15:if(!Vt&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var m=f,_=m.destroy;m=m.tag,_!==void 0&&((m&2)!==0||(m&4)!==0)&&Dc(n,t,_),f=f.next}while(f!==s)}xn(e,t,n);break;case 1:if(!Vt&&(vo(n,t),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(O){At(n,t,O)}xn(e,t,n);break;case 21:xn(e,t,n);break;case 22:n.mode&1?(Vt=(s=Vt)||n.memoizedState!==null,xn(e,t,n),Vt=s):xn(e,t,n);break;default:xn(e,t,n)}}function gf(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Dg),t.forEach(function(s){var f=Hg.bind(null,e,s);n.has(s)||(n.add(s),s.then(f,f))})}}function Br(e,t){var n=t.deletions;if(n!==null)for(var s=0;sf&&(f=_),s&=~m}if(s=f,s=ht()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Tg(s/1960))-s,10e?16:e,gn===null)var s=!1;else{if(e=gn,gn=null,Os=0,(Ue&6)!==0)throw Error(o(331));var f=Ue;for(Ue|=4,ge=e.current;ge!==null;){var m=ge,_=m.child;if((ge.flags&16)!==0){var O=m.deletions;if(O!==null){for(var z=0;zht()-Ic?jn(e,0):Nc|=n),tr(e,t)}function Rf(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ga,Ga<<=1,(Ga&130023424)===0&&(Ga=4194304)));var n=Qt();e=Gr(e,t),e!==null&&(Ho(e,t,n),tr(e,n))}function jg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Rf(e,n)}function Hg(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,f=e.memoizedState;f!==null&&(n=f.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(o(314))}s!==null&&s.delete(t),Rf(e,n)}var Tf;Tf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Jt=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Jt=!1,Sg(e,t,n);Jt=(e.flags&131072)!==0}else Jt=!1,at&&(t.flags&1048576)!==0&&ud(t,ps,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;Fs(e,t),e=t.pendingProps;var f=co(t,Ht.current);xo(t,n),f=fc(null,t,s,e,f,n);var m=Ac();return t.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Xt(s)?(m=!0,fs(t)):m=!1,t.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,ac(t),f.updater=_s,t.stateNode=f,f._reactInternals=t,vc(t,s,e,n),t=bc(null,t,s,!0,m,n)):(t.tag=0,at&&m&&Kl(t),qt(null,t,f,n),t=t.child),t;case 16:s=t.elementType;e:{switch(Fs(e,t),e=t.pendingProps,f=s._init,s=f(s._payload),t.type=s,f=t.tag=zg(s),e=kr(s,e),f){case 0:t=wc(null,t,s,e,n);break e;case 1:t=nf(null,t,s,e,n);break e;case 11:t=Xd(null,t,s,e,n);break e;case 14:t=Jd(null,t,s,kr(s.type,e),n);break e}throw Error(o(306,s,""))}return t;case 0:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),wc(e,t,s,f,n);case 1:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),nf(e,t,s,f,n);case 3:e:{if(of(t),e===null)throw Error(o(387));s=t.pendingProps,m=t.memoizedState,f=m.element,vd(e,t),Cs(t,s,null,n);var _=t.memoizedState;if(s=_.element,m.isDehydrated)if(m={element:s,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},t.updateQueue.baseState=m,t.memoizedState=m,t.flags&256){f=go(Error(o(423)),t),t=af(e,t,s,n,f);break e}else if(s!==f){f=go(Error(o(424)),t),t=af(e,t,s,n,f);break e}else for(ir=un(t.stateNode.containerInfo.firstChild),sr=t,at=!0,Er=null,n=md(t,null,s,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ao(),s===f){t=Kr(e,t,n);break e}qt(e,t,s,n)}t=t.child}return t;case 5:return wd(t),e===null&&Xl(t),s=t.type,f=t.pendingProps,m=e!==null?e.memoizedProps:null,_=f.children,Ul(s,f)?_=null:m!==null&&Ul(s,m)&&(t.flags|=32),rf(e,t),qt(e,t,_,n),t.child;case 6:return e===null&&Xl(t),null;case 13:return sf(e,t,n);case 4:return sc(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=ho(t,null,s,n):qt(e,t,s,n),t.child;case 11:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),Xd(e,t,s,f,n);case 7:return qt(e,t,t.pendingProps,n),t.child;case 8:return qt(e,t,t.pendingProps.children,n),t.child;case 12:return qt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,f=t.pendingProps,m=t.memoizedProps,_=f.value,Xe(gs,s._currentValue),s._currentValue=_,m!==null)if(br(m.value,_)){if(m.children===f.children&&!Zt.current){t=Kr(e,t,n);break e}}else for(m=t.child,m!==null&&(m.return=t);m!==null;){var O=m.dependencies;if(O!==null){_=m.child;for(var z=O.firstContext;z!==null;){if(z.context===s){if(m.tag===1){z=$r(-1,n&-n),z.tag=2;var Z=m.updateQueue;if(Z!==null){Z=Z.shared;var ie=Z.pending;ie===null?z.next=z:(z.next=ie.next,ie.next=z),Z.pending=z}}m.lanes|=n,z=m.alternate,z!==null&&(z.lanes|=n),nc(m.return,n,t),O.lanes|=n;break}z=z.next}}else if(m.tag===10)_=m.type===t.type?null:m.child;else if(m.tag===18){if(_=m.return,_===null)throw Error(o(341));_.lanes|=n,O=_.alternate,O!==null&&(O.lanes|=n),nc(_,n,t),_=m.sibling}else _=m.child;if(_!==null)_.return=m;else for(_=m;_!==null;){if(_===t){_=null;break}if(m=_.sibling,m!==null){m.return=_.return,_=m;break}_=_.return}m=_}qt(e,t,f.children,n),t=t.child}return t;case 9:return f=t.type,s=t.pendingProps.children,xo(t,n),f=hr(f),s=s(f),t.flags|=1,qt(e,t,s,n),t.child;case 14:return s=t.type,f=kr(s,t.pendingProps),f=kr(s.type,f),Jd(e,t,s,f,n);case 15:return ef(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),Fs(e,t),t.tag=1,Xt(s)?(e=!0,fs(t)):e=!1,xo(t,n),qd(t,s,f),vc(t,s,f,n),bc(null,t,s,!0,e,n);case 19:return cf(e,t,n);case 22:return tf(e,t,n)}throw Error(o(156,t.tag))};function Pf(e,t){return d0(e,t)}function Lg(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mr(e,t,n,s){return new Lg(e,t,n,s)}function Uc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function zg(e){if(typeof e=="function")return Uc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===V)return 11;if(e===ae)return 14}return 2}function Cn(e,t){var n=e.alternate;return n===null?(n=mr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zs(e,t,n,s,f,m){var _=2;if(s=e,typeof e=="function")Uc(e)&&(_=1);else if(typeof e=="string")_=5;else e:switch(e){case I:return Ln(n.children,f,m,t);case P:_=8,f|=8;break;case H:return e=mr(12,n,t,f|2),e.elementType=H,e.lanes=m,e;case Q:return e=mr(13,n,t,f),e.elementType=Q,e.lanes=m,e;case X:return e=mr(19,n,t,f),e.elementType=X,e.lanes=m,e;case re:return Vs(n,f,m,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case M:_=10;break e;case N:_=9;break e;case V:_=11;break e;case ae:_=14;break e;case J:_=16,s=null;break e}throw Error(o(130,e==null?e:typeof e,""))}return t=mr(_,n,t,f),t.elementType=e,t.type=s,t.lanes=m,t}function Ln(e,t,n,s){return e=mr(7,e,s,t),e.lanes=n,e}function Vs(e,t,n,s){return e=mr(22,e,s,t),e.elementType=re,e.lanes=n,e.stateNode={isHidden:!1},e}function Wc(e,t,n){return e=mr(6,e,null,t),e.lanes=n,e}function qc(e,t,n){return t=mr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Vg(e,t,n,s,f){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gl(0),this.expirationTimes=gl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gl(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function Qc(e,t,n,s,f,m,_,O,z){return e=new Vg(e,t,n,O,z),t===1?(t=1,m===!0&&(t|=8)):t=0,m=mr(3,null,null,t),e.current=m,m.stateNode=e,m.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ac(m),e}function Ug(e,t,n){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(a){console.error(a)}}return r(),Jc.exports=nv(),Jc.exports}var Gf;function ov(){if(Gf)return Ks;Gf=1;var r=Wh();return Ks.createRoot=r.createRoot,Ks.hydrateRoot=r.hydrateRoot,Ks}var av=ov();const sv="/api";async function Je(r,a){const o=await fetch(`${sv}${r}`,{...a,headers:{"Content-Type":"application/json",...a==null?void 0:a.headers}});if(!o.ok){const i=await o.text();throw new Error(i||o.statusText)}return o.json()}const Ye={getHealth:()=>Je("/health"),getRadioConfig:()=>Je("/radio/config"),updateRadioConfig:r=>Je("/radio/config",{method:"PATCH",body:JSON.stringify(r)}),setPrivateKey:r=>Je("/radio/private-key",{method:"PUT",body:JSON.stringify({private_key:r})}),sendAdvertisement:(r=!0)=>Je(`/radio/advertise?flood=${r}`,{method:"POST"}),rebootRadio:()=>Je("/radio/reboot",{method:"POST"}),reconnectRadio:()=>Je("/radio/reconnect",{method:"POST"}),getContacts:(r=100,a=0)=>Je(`/contacts?limit=${r}&offset=${a}`),getContact:r=>Je(`/contacts/${r}`),syncContacts:()=>Je("/contacts/sync",{method:"POST"}),addContactToRadio:r=>Je(`/contacts/${r}/add-to-radio`,{method:"POST"}),removeContactFromRadio:r=>Je(`/contacts/${r}/remove-from-radio`,{method:"POST"}),deleteContact:r=>Je(`/contacts/${r}`,{method:"DELETE"}),getChannels:()=>Je("/channels"),getChannel:r=>Je(`/channels/${r}`),createChannel:(r,a)=>Je("/channels",{method:"POST",body:JSON.stringify({name:r,key:a})}),syncChannels:()=>Je("/channels/sync",{method:"POST"}),deleteChannel:r=>Je(`/channels/${r}`,{method:"DELETE"}),getMessages:r=>{const a=new URLSearchParams;r!=null&&r.limit&&a.set("limit",r.limit.toString()),r!=null&&r.offset&&a.set("offset",r.offset.toString()),r!=null&&r.type&&a.set("type",r.type),r!=null&&r.conversation_key&&a.set("conversation_key",r.conversation_key);const o=a.toString();return Je(`/messages${o?`?${o}`:""}`)},getMessagesBulk:(r,a=100)=>Je(`/messages/bulk?limit_per_conversation=${a}`,{method:"POST",body:JSON.stringify(r)}),sendDirectMessage:(r,a)=>Je("/messages/direct",{method:"POST",body:JSON.stringify({destination:r,text:a})}),sendChannelMessage:(r,a)=>Je("/messages/channel",{method:"POST",body:JSON.stringify({channel_key:r,text:a})}),getUndecryptedPacketCount:()=>Je("/packets/undecrypted/count"),decryptHistoricalPackets:r=>Je("/packets/decrypt/historical",{method:"POST",body:JSON.stringify(r)}),getSettings:()=>Je("/settings"),updateSettings:r=>Je("/settings",{method:"PATCH",body:JSON.stringify(r)})};function iv(r){const a=F.useRef(null),o=F.useRef(null),[i,u]=F.useState(!1),l=F.useCallback(()=>{const A=window.location.protocol==="https:"?"wss:":"ws:",h=window.location.port==="5173"?"ws://localhost:8000/api/ws":`${A}//${window.location.host}/api/ws`,d=new WebSocket(h);d.onopen=()=>{console.log("WebSocket connected"),u(!0)},d.onclose=()=>{console.log("WebSocket disconnected"),u(!1),a.current=null,o.current=window.setTimeout(()=>{console.log("Attempting WebSocket reconnect..."),l()},3e3)},d.onerror=p=>{console.error("WebSocket error:",p)},d.onmessage=p=>{var x,g,w,b,k,v,S,E;try{const C=JSON.parse(p.data);switch(C.type){case"health":(x=r.onHealth)==null||x.call(r,C.data);break;case"contacts":(g=r.onContacts)==null||g.call(r,C.data);break;case"channels":(w=r.onChannels)==null||w.call(r,C.data);break;case"message":(b=r.onMessage)==null||b.call(r,C.data);break;case"contact":(k=r.onContact)==null||k.call(r,C.data);break;case"raw_packet":(v=r.onRawPacket)==null||v.call(r,C.data);break;case"message_acked":(S=r.onMessageAcked)==null||S.call(r,C.data.message_id);break;case"error":(E=r.onError)==null||E.call(r,C.data);break;case"pong":break;default:console.log("Unknown WebSocket message type:",C.type)}}catch(C){console.error("Failed to parse WebSocket message:",C)}},a.current=d},[r]);return F.useEffect(()=>{l();const A=setInterval(()=>{var c;((c=a.current)==null?void 0:c.readyState)===WebSocket.OPEN&&a.current.send("ping")},3e4);return()=>{clearInterval(A),o.current&&clearTimeout(o.current),a.current&&a.current.close()}},[l]),{connected:i}}/** +`+m.stack}return{value:e,source:t,stack:f,digest:null}}function yc(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Cc(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var bg=typeof WeakMap=="function"?WeakMap:Map;function Gd(e,t,n){n=$r(-1,n),n.tag=3,n.payload={element:null};var s=t.value;return n.callback=function(){Is||(Is=!0,Mc=s),Cc(e,t)},n}function $d(e,t,n){n=$r(-1,n),n.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var f=t.value;n.payload=function(){return s(f)},n.callback=function(){Cc(e,t)}}var m=e.stateNode;return m!==null&&typeof m.componentDidCatch=="function"&&(n.callback=function(){Cc(e,t),typeof s!="function"&&(mn===null?mn=new Set([this]):mn.add(this));var _=t.stack;this.componentDidCatch(t.value,{componentStack:_!==null?_:""})}),n}function Kd(e,t,n){var s=e.pingCache;if(s===null){s=e.pingCache=new bg;var f=new Set;s.set(t,f)}else f=s.get(t),f===void 0&&(f=new Set,s.set(t,f));f.has(n)||(f.add(n),e=Og.bind(null,e,t,n),t.then(e,e))}function Yd(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Zd(e,t,n,s,f){return(e.mode&1)===0?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=$r(-1,1),t.tag=2,pn(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=f,e)}var Eg=B.ReactCurrentOwner,Jt=!1;function Qt(e,t,n,s){t.child=e===null?md(t,null,n,s):ho(t,e.child,n,s)}function Xd(e,t,n,s,f){n=n.render;var m=t.ref;return xo(t,f),s=fc(e,t,n,s,m,f),n=Ac(),e!==null&&!Jt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~f,Kr(e,t,f)):(st&&n&&Kl(t),t.flags|=1,Qt(e,t,s,f),t.child)}function Jd(e,t,n,s,f){if(e===null){var m=n.type;return typeof m=="function"&&!Uc(m)&&m.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=m,ef(e,t,m,s,f)):(e=zs(n.type,null,s,t,t.mode,f),e.ref=t.ref,e.return=t,t.child=e)}if(m=e.child,(e.lanes&f)===0){var _=m.memoizedProps;if(n=n.compare,n=n!==null?n:Yo,n(_,s)&&e.ref===t.ref)return Kr(e,t,f)}return t.flags|=1,e=Cn(m,s),e.ref=t.ref,e.return=t,t.child=e}function ef(e,t,n,s,f){if(e!==null){var m=e.memoizedProps;if(Yo(m,s)&&e.ref===t.ref)if(Jt=!1,t.pendingProps=s=m,(e.lanes&f)!==0)(e.flags&131072)!==0&&(Jt=!0);else return t.lanes=e.lanes,Kr(e,t,f)}return wc(e,t,n,s,f)}function tf(e,t,n){var s=t.pendingProps,f=s.children,m=e!==null?e.memoizedState:null;if(s.mode==="hidden")if((t.mode&1)===0)t.memoizedState={baseLanes:0,cachePool:null,transitions:null},et(yo,lr),lr|=n;else{if((n&1073741824)===0)return e=m!==null?m.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,et(yo,lr),lr|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=m!==null?m.baseLanes:n,et(yo,lr),lr|=s}else m!==null?(s=m.baseLanes|n,t.memoizedState=null):s=n,et(yo,lr),lr|=s;return Qt(e,t,f,n),t.child}function rf(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function wc(e,t,n,s,f){var m=Xt(n)?Fn:Lt.current;return m=co(t,m),xo(t,f),n=fc(e,t,n,s,m,f),s=Ac(),e!==null&&!Jt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~f,Kr(e,t,f)):(st&&s&&Kl(t),t.flags|=1,Qt(e,t,n,f),t.child)}function nf(e,t,n,s,f){if(Xt(n)){var m=!0;fs(t)}else m=!1;if(xo(t,f),t.stateNode===null)Fs(e,t),qd(t,n,s),vc(t,n,s,f),s=!0;else if(e===null){var _=t.stateNode,O=t.memoizedProps;_.props=O;var L=_.context,Z=n.contextType;typeof Z=="object"&&Z!==null?Z=hr(Z):(Z=Xt(n)?Fn:Lt.current,Z=co(t,Z));var ce=n.getDerivedStateFromProps,ue=typeof ce=="function"||typeof _.getSnapshotBeforeUpdate=="function";ue||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(O!==s||L!==Z)&&Qd(t,_,s,Z),hn=!1;var ie=t.memoizedState;_.state=ie,Cs(t,s,_,f),L=t.memoizedState,O!==s||ie!==L||Zt.current||hn?(typeof ce=="function"&&(gc(t,n,ce,s),L=t.memoizedState),(O=hn||Wd(t,n,O,s,ie,L,Z))?(ue||typeof _.UNSAFE_componentWillMount!="function"&&typeof _.componentWillMount!="function"||(typeof _.componentWillMount=="function"&&_.componentWillMount(),typeof _.UNSAFE_componentWillMount=="function"&&_.UNSAFE_componentWillMount()),typeof _.componentDidMount=="function"&&(t.flags|=4194308)):(typeof _.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=s,t.memoizedState=L),_.props=s,_.state=L,_.context=Z,s=O):(typeof _.componentDidMount=="function"&&(t.flags|=4194308),s=!1)}else{_=t.stateNode,vd(e,t),O=t.memoizedProps,Z=t.type===t.elementType?O:kr(t.type,O),_.props=Z,ue=t.pendingProps,ie=_.context,L=n.contextType,typeof L=="object"&&L!==null?L=hr(L):(L=Xt(n)?Fn:Lt.current,L=co(t,L));var xe=n.getDerivedStateFromProps;(ce=typeof xe=="function"||typeof _.getSnapshotBeforeUpdate=="function")||typeof _.UNSAFE_componentWillReceiveProps!="function"&&typeof _.componentWillReceiveProps!="function"||(O!==ue||ie!==L)&&Qd(t,_,s,L),hn=!1,ie=t.memoizedState,_.state=ie,Cs(t,s,_,f);var ge=t.memoizedState;O!==ue||ie!==ge||Zt.current||hn?(typeof xe=="function"&&(gc(t,n,xe,s),ge=t.memoizedState),(Z=hn||Wd(t,n,Z,s,ie,ge,L)||!1)?(ce||typeof _.UNSAFE_componentWillUpdate!="function"&&typeof _.componentWillUpdate!="function"||(typeof _.componentWillUpdate=="function"&&_.componentWillUpdate(s,ge,L),typeof _.UNSAFE_componentWillUpdate=="function"&&_.UNSAFE_componentWillUpdate(s,ge,L)),typeof _.componentDidUpdate=="function"&&(t.flags|=4),typeof _.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof _.componentDidUpdate!="function"||O===e.memoizedProps&&ie===e.memoizedState||(t.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||O===e.memoizedProps&&ie===e.memoizedState||(t.flags|=1024),t.memoizedProps=s,t.memoizedState=ge),_.props=s,_.state=ge,_.context=L,s=Z):(typeof _.componentDidUpdate!="function"||O===e.memoizedProps&&ie===e.memoizedState||(t.flags|=4),typeof _.getSnapshotBeforeUpdate!="function"||O===e.memoizedProps&&ie===e.memoizedState||(t.flags|=1024),s=!1)}return bc(e,t,n,s,m,f)}function bc(e,t,n,s,f,m){rf(e,t);var _=(t.flags&128)!==0;if(!s&&!_)return f&&ld(t,n,!1),Kr(e,t,m);s=t.stateNode,Eg.current=t;var O=_&&typeof n.getDerivedStateFromError!="function"?null:s.render();return t.flags|=1,e!==null&&_?(t.child=ho(t,e.child,null,m),t.child=ho(t,null,O,m)):Qt(e,t,O,m),t.memoizedState=s.state,f&&ld(t,n,!0),t.child}function of(e){var t=e.stateNode;t.pendingContext?sd(e,t.pendingContext,t.pendingContext!==t.context):t.context&&sd(e,t.context,!1),sc(e,t.containerInfo)}function af(e,t,n,s,f){return Ao(),Jl(f),t.flags|=256,Qt(e,t,n,s),t.child}var Ec={dehydrated:null,treeContext:null,retryLane:0};function kc(e){return{baseLanes:e,cachePool:null,transitions:null}}function sf(e,t,n){var s=t.pendingProps,f=it.current,m=!1,_=(t.flags&128)!==0,O;if((O=_)||(O=e!==null&&e.memoizedState===null?!1:(f&2)!==0),O?(m=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(f|=1),et(it,f&1),e===null)return Xl(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?((t.mode&1)===0?t.lanes=1:e.data==="$!"?t.lanes=8:t.lanes=1073741824,null):(_=s.children,e=s.fallback,m?(s=t.mode,m=t.child,_={mode:"hidden",children:_},(s&1)===0&&m!==null?(m.childLanes=0,m.pendingProps=_):m=Vs(_,s,0,null),e=Ln(e,s,n,null),m.return=t,e.return=t,m.sibling=e,t.child=m,t.child.memoizedState=kc(n),t.memoizedState=Ec,e):Sc(t,_));if(f=e.memoizedState,f!==null&&(O=f.dehydrated,O!==null))return kg(e,t,_,s,O,f,n);if(m){m=s.fallback,_=t.mode,f=e.child,O=f.sibling;var L={mode:"hidden",children:s.children};return(_&1)===0&&t.child!==f?(s=t.child,s.childLanes=0,s.pendingProps=L,t.deletions=null):(s=Cn(f,L),s.subtreeFlags=f.subtreeFlags&14680064),O!==null?m=Cn(O,m):(m=Ln(m,_,n,null),m.flags|=2),m.return=t,s.return=t,s.sibling=m,t.child=s,s=m,m=t.child,_=e.child.memoizedState,_=_===null?kc(n):{baseLanes:_.baseLanes|n,cachePool:null,transitions:_.transitions},m.memoizedState=_,m.childLanes=e.childLanes&~n,t.memoizedState=Ec,s}return m=e.child,e=m.sibling,s=Cn(m,{mode:"visible",children:s.children}),(t.mode&1)===0&&(s.lanes=n),s.return=t,s.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=s,t.memoizedState=null,s}function Sc(e,t){return t=Vs({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Ds(e,t,n,s){return s!==null&&Jl(s),ho(t,e.child,null,n),e=Sc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function kg(e,t,n,s,f,m,_){if(n)return t.flags&256?(t.flags&=-257,s=yc(Error(o(422))),Ds(e,t,_,s)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(m=s.fallback,f=t.mode,s=Vs({mode:"visible",children:s.children},f,0,null),m=Ln(m,f,_,null),m.flags|=2,s.return=t,m.return=t,s.sibling=m,t.child=s,(t.mode&1)!==0&&ho(t,e.child,null,_),t.child.memoizedState=kc(_),t.memoizedState=Ec,m);if((t.mode&1)===0)return Ds(e,t,_,null);if(f.data==="$!"){if(s=f.nextSibling&&f.nextSibling.dataset,s)var O=s.dgst;return s=O,m=Error(o(419)),s=yc(m,s,void 0),Ds(e,t,_,s)}if(O=(_&e.childLanes)!==0,Jt||O){if(s=Ft,s!==null){switch(_&-_){case 4:f=2;break;case 16:f=8;break;case 64: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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:f=32;break;case 536870912:f=268435456;break;default:f=0}f=(f&(s.suspendedLanes|_))!==0?0:f,f!==0&&f!==m.retryLane&&(m.retryLane=f,Gr(e,f),_r(s,e,f,-1))}return Vc(),s=yc(Error(o(421))),Ds(e,t,_,s)}return f.data==="$?"?(t.flags|=128,t.child=e.child,t=jg.bind(null,e),f._reactRetry=t,null):(e=m.treeContext,ir=un(f.nextSibling),sr=t,st=!0,Er=null,e!==null&&(fr[Ar++]=qr,fr[Ar++]=Qr,fr[Ar++]=Rn,qr=e.id,Qr=e.overflow,Rn=t),t=Sc(t,s.children),t.flags|=4096,t)}function lf(e,t,n){e.lanes|=t;var s=e.alternate;s!==null&&(s.lanes|=t),nc(e.return,t,n)}function Bc(e,t,n,s,f){var m=e.memoizedState;m===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:f}:(m.isBackwards=t,m.rendering=null,m.renderingStartTime=0,m.last=s,m.tail=n,m.tailMode=f)}function cf(e,t,n){var s=t.pendingProps,f=s.revealOrder,m=s.tail;if(Qt(e,t,s.children,n),s=it.current,(s&2)!==0)s=s&1|2,t.flags|=128;else{if(e!==null&&(e.flags&128)!==0)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&lf(e,n,t);else if(e.tag===19)lf(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(et(it,s),(t.mode&1)===0)t.memoizedState=null;else switch(f){case"forwards":for(n=t.child,f=null;n!==null;)e=n.alternate,e!==null&&ws(e)===null&&(f=n),n=n.sibling;n=f,n===null?(f=t.child,t.child=null):(f=n.sibling,n.sibling=null),Bc(t,!1,f,n,m);break;case"backwards":for(n=null,f=t.child,t.child=null;f!==null;){if(e=f.alternate,e!==null&&ws(e)===null){t.child=f;break}e=f.sibling,f.sibling=n,n=f,f=e}Bc(t,!0,n,null,m);break;case"together":Bc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Fs(e,t){(t.mode&1)===0&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Kr(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Mn|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(o(153));if(t.child!==null){for(e=t.child,n=Cn(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Cn(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Sg(e,t,n){switch(t.tag){case 3:of(t),Ao();break;case 5:wd(t);break;case 1:Xt(t.type)&&fs(t);break;case 4:sc(t,t.stateNode.containerInfo);break;case 10:var s=t.type._context,f=t.memoizedProps.value;et(gs,s._currentValue),s._currentValue=f;break;case 13:if(s=t.memoizedState,s!==null)return s.dehydrated!==null?(et(it,it.current&1),t.flags|=128,null):(n&t.child.childLanes)!==0?sf(e,t,n):(et(it,it.current&1),e=Kr(e,t,n),e!==null?e.sibling:null);et(it,it.current&1);break;case 19:if(s=(n&t.childLanes)!==0,(e.flags&128)!==0){if(s)return cf(e,t,n);t.flags|=128}if(f=t.memoizedState,f!==null&&(f.rendering=null,f.tail=null,f.lastEffect=null),et(it,it.current),s)break;return null;case 22:case 23:return t.lanes=0,tf(e,t,n)}return Kr(e,t,n)}var uf,_c,df,ff;uf=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},_c=function(){},df=function(e,t,n,s){var f=e.memoizedProps;if(f!==s){e=t.stateNode,Nn(Nr.current);var m=null;switch(n){case"input":f=Re(e,f),s=Re(e,s),m=[];break;case"select":f=ee({},f,{value:void 0}),s=ee({},s,{value:void 0}),m=[];break;case"textarea":f=Qe(e,f),s=Qe(e,s),m=[];break;default:typeof f.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=cs)}oe(n,s);var _;n=null;for(Z in f)if(!s.hasOwnProperty(Z)&&f.hasOwnProperty(Z)&&f[Z]!=null)if(Z==="style"){var O=f[Z];for(_ in O)O.hasOwnProperty(_)&&(n||(n={}),n[_]="")}else Z!=="dangerouslySetInnerHTML"&&Z!=="children"&&Z!=="suppressContentEditableWarning"&&Z!=="suppressHydrationWarning"&&Z!=="autoFocus"&&(u.hasOwnProperty(Z)?m||(m=[]):(m=m||[]).push(Z,null));for(Z in s){var L=s[Z];if(O=f!=null?f[Z]:void 0,s.hasOwnProperty(Z)&&L!==O&&(L!=null||O!=null))if(Z==="style")if(O){for(_ in O)!O.hasOwnProperty(_)||L&&L.hasOwnProperty(_)||(n||(n={}),n[_]="");for(_ in L)L.hasOwnProperty(_)&&O[_]!==L[_]&&(n||(n={}),n[_]=L[_])}else n||(m||(m=[]),m.push(Z,n)),n=L;else Z==="dangerouslySetInnerHTML"?(L=L?L.__html:void 0,O=O?O.__html:void 0,L!=null&&O!==L&&(m=m||[]).push(Z,L)):Z==="children"?typeof L!="string"&&typeof L!="number"||(m=m||[]).push(Z,""+L):Z!=="suppressContentEditableWarning"&&Z!=="suppressHydrationWarning"&&(u.hasOwnProperty(Z)?(L!=null&&Z==="onScroll"&&nt("scroll",e),m||O===L||(m=[])):(m=m||[]).push(Z,L))}n&&(m=m||[]).push("style",n);var Z=m;(t.updateQueue=Z)&&(t.flags|=4)}},ff=function(e,t,n,s){n!==s&&(t.flags|=4)};function da(e,t){if(!st)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function Vt(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,s=0;if(t)for(var f=e.child;f!==null;)n|=f.lanes|f.childLanes,s|=f.subtreeFlags&14680064,s|=f.flags&14680064,f.return=e,f=f.sibling;else for(f=e.child;f!==null;)n|=f.lanes|f.childLanes,s|=f.subtreeFlags,s|=f.flags,f.return=e,f=f.sibling;return e.subtreeFlags|=s,e.childLanes=n,t}function Bg(e,t,n){var s=t.pendingProps;switch(Yl(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vt(t),null;case 1:return Xt(t.type)&&ds(),Vt(t),null;case 3:return s=t.stateNode,mo(),ot(Zt),ot(Lt),cc(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(xs(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Er!==null&&(Hc(Er),Er=null))),_c(e,t),Vt(t),null;case 5:ic(t);var f=Nn(sa.current);if(n=t.type,e!==null&&t.stateNode!=null)df(e,t,n,s,f),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!s){if(t.stateNode===null)throw Error(o(166));return Vt(t),null}if(e=Nn(Nr.current),xs(t)){s=t.stateNode,n=t.type;var m=t.memoizedProps;switch(s[Pr]=t,s[ta]=m,e=(t.mode&1)!==0,n){case"dialog":nt("cancel",s),nt("close",s);break;case"iframe":case"object":case"embed":nt("load",s);break;case"video":case"audio":for(f=0;f<\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=_.createElement(n,{is:s.is}):(e=_.createElement(n),n==="select"&&(_=e,s.multiple?_.multiple=!0:s.size&&(_.size=s.size))):e=_.createElementNS(e,n),e[Pr]=t,e[ta]=s,uf(e,t,!1,!1),t.stateNode=e;e:{switch(_=pe(n,s),n){case"dialog":nt("cancel",e),nt("close",e),f=s;break;case"iframe":case"object":case"embed":nt("load",e),f=s;break;case"video":case"audio":for(f=0;fCo&&(t.flags|=128,s=!0,da(m,!1),t.lanes=4194304)}else{if(!s)if(e=ws(_),e!==null){if(t.flags|=128,s=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),da(m,!0),m.tail===null&&m.tailMode==="hidden"&&!_.alternate&&!st)return Vt(t),null}else 2*ht()-m.renderingStartTime>Co&&n!==1073741824&&(t.flags|=128,s=!0,da(m,!1),t.lanes=4194304);m.isBackwards?(_.sibling=t.child,t.child=_):(n=m.last,n!==null?n.sibling=_:t.child=_,m.last=_)}return m.tail!==null?(t=m.tail,m.rendering=t,m.tail=t.sibling,m.renderingStartTime=ht(),t.sibling=null,n=it.current,et(it,s?n&1|2:n&1),t):(Vt(t),null);case 22:case 23:return zc(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&(t.mode&1)!==0?(lr&1073741824)!==0&&(Vt(t),t.subtreeFlags&6&&(t.flags|=8192)):Vt(t),null;case 24:return null;case 25:return null}throw Error(o(156,t.tag))}function _g(e,t){switch(Yl(t),t.tag){case 1:return Xt(t.type)&&ds(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return mo(),ot(Zt),ot(Lt),cc(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return ic(t),null;case 13:if(ot(it),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Ao()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ot(it),null;case 4:return mo(),null;case 10:return rc(t.type._context),null;case 22:case 23:return zc(),null;case 24:return null;default:return null}}var Rs=!1,Ut=!1,Dg=typeof WeakSet=="function"?WeakSet:Set,me=null;function vo(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){At(e,t,s)}else n.current=null}function Dc(e,t,n){try{n()}catch(s){At(e,t,s)}}var Af=!1;function Fg(e,t){if(zl=Za,e=W0(),Pl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var f=s.anchorOffset,m=s.focusNode;s=s.focusOffset;try{n.nodeType,m.nodeType}catch{n=null;break e}var _=0,O=-1,L=-1,Z=0,ce=0,ue=e,ie=null;t:for(;;){for(var xe;ue!==n||f!==0&&ue.nodeType!==3||(O=_+f),ue!==m||s!==0&&ue.nodeType!==3||(L=_+s),ue.nodeType===3&&(_+=ue.nodeValue.length),(xe=ue.firstChild)!==null;)ie=ue,ue=xe;for(;;){if(ue===e)break t;if(ie===n&&++Z===f&&(O=_),ie===m&&++ce===s&&(L=_),(xe=ue.nextSibling)!==null)break;ue=ie,ie=ue.parentNode}ue=xe}n=O===-1||L===-1?null:{start:O,end:L}}else n=null}n=n||{start:0,end:0}}else n=null;for(Vl={focusedElem:e,selectionRange:n},Za=!1,me=t;me!==null;)if(t=me,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,me=e;else for(;me!==null;){t=me;try{var ge=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(ge!==null){var be=ge.memoizedProps,pt=ge.memoizedState,G=t.stateNode,U=G.getSnapshotBeforeUpdate(t.elementType===t.type?be:kr(t.type,be),pt);G.__reactInternalSnapshotBeforeUpdate=U}break;case 3:var K=t.stateNode.containerInfo;K.nodeType===1?K.textContent="":K.nodeType===9&&K.documentElement&&K.removeChild(K.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(o(163))}}catch(Ae){At(t,t.return,Ae)}if(e=t.sibling,e!==null){e.return=t.return,me=e;break}me=t.return}return ge=Af,Af=!1,ge}function fa(e,t,n){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var f=s=s.next;do{if((f.tag&e)===e){var m=f.destroy;f.destroy=void 0,m!==void 0&&Dc(t,n,m)}f=f.next}while(f!==s)}}function Ts(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function Fc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function hf(e){var t=e.alternate;t!==null&&(e.alternate=null,hf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Pr],delete t[ta],delete t[Ql],delete t[fg],delete t[Ag])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function pf(e){return e.tag===5||e.tag===3||e.tag===4}function xf(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||pf(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Rc(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=cs));else if(s!==4&&(e=e.child,e!==null))for(Rc(e,t,n),e=e.sibling;e!==null;)Rc(e,t,n),e=e.sibling}function Tc(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(Tc(e,t,n),e=e.sibling;e!==null;)Tc(e,t,n),e=e.sibling}var It=null,Sr=!1;function xn(e,t,n){for(n=n.child;n!==null;)mf(e,t,n),n=n.sibling}function mf(e,t,n){if(Tr&&typeof Tr.onCommitFiberUnmount=="function")try{Tr.onCommitFiberUnmount(qa,n)}catch{}switch(n.tag){case 5:Ut||vo(n,t);case 6:var s=It,f=Sr;It=null,xn(e,t,n),It=s,Sr=f,It!==null&&(Sr?(e=It,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):It.removeChild(n.stateNode));break;case 18:It!==null&&(Sr?(e=It,n=n.stateNode,e.nodeType===8?ql(e.parentNode,n):e.nodeType===1&&ql(e,n),Wo(e)):ql(It,n.stateNode));break;case 4:s=It,f=Sr,It=n.stateNode.containerInfo,Sr=!0,xn(e,t,n),It=s,Sr=f;break;case 0:case 11:case 14:case 15:if(!Ut&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){f=s=s.next;do{var m=f,_=m.destroy;m=m.tag,_!==void 0&&((m&2)!==0||(m&4)!==0)&&Dc(n,t,_),f=f.next}while(f!==s)}xn(e,t,n);break;case 1:if(!Ut&&(vo(n,t),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(O){At(n,t,O)}xn(e,t,n);break;case 21:xn(e,t,n);break;case 22:n.mode&1?(Ut=(s=Ut)||n.memoizedState!==null,xn(e,t,n),Ut=s):xn(e,t,n);break;default:xn(e,t,n)}}function gf(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Dg),t.forEach(function(s){var f=Hg.bind(null,e,s);n.has(s)||(n.add(s),s.then(f,f))})}}function Br(e,t){var n=t.deletions;if(n!==null)for(var s=0;sf&&(f=_),s&=~m}if(s=f,s=ht()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*Tg(s/1960))-s,10e?16:e,gn===null)var s=!1;else{if(e=gn,gn=null,Os=0,(Ge&6)!==0)throw Error(o(331));var f=Ge;for(Ge|=4,me=e.current;me!==null;){var m=me,_=m.child;if((me.flags&16)!==0){var O=m.deletions;if(O!==null){for(var L=0;Lht()-Ic?jn(e,0):Nc|=n),tr(e,t)}function Rf(e,t){t===0&&((e.mode&1)===0?t=1:(t=Ga,Ga<<=1,(Ga&130023424)===0&&(Ga=4194304)));var n=Gt();e=Gr(e,t),e!==null&&(Ho(e,t,n),tr(e,n))}function jg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Rf(e,n)}function Hg(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,f=e.memoizedState;f!==null&&(n=f.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(o(314))}s!==null&&s.delete(t),Rf(e,n)}var Tf;Tf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Zt.current)Jt=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return Jt=!1,Sg(e,t,n);Jt=(e.flags&131072)!==0}else Jt=!1,st&&(t.flags&1048576)!==0&&ud(t,ps,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;Fs(e,t),e=t.pendingProps;var f=co(t,Lt.current);xo(t,n),f=fc(null,t,s,e,f,n);var m=Ac();return t.flags|=1,typeof f=="object"&&f!==null&&typeof f.render=="function"&&f.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Xt(s)?(m=!0,fs(t)):m=!1,t.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,ac(t),f.updater=_s,t.stateNode=f,f._reactInternals=t,vc(t,s,e,n),t=bc(null,t,s,!0,m,n)):(t.tag=0,st&&m&&Kl(t),Qt(null,t,f,n),t=t.child),t;case 16:s=t.elementType;e:{switch(Fs(e,t),e=t.pendingProps,f=s._init,s=f(s._payload),t.type=s,f=t.tag=zg(s),e=kr(s,e),f){case 0:t=wc(null,t,s,e,n);break e;case 1:t=nf(null,t,s,e,n);break e;case 11:t=Xd(null,t,s,e,n);break e;case 14:t=Jd(null,t,s,kr(s.type,e),n);break e}throw Error(o(306,s,""))}return t;case 0:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),wc(e,t,s,f,n);case 1:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),nf(e,t,s,f,n);case 3:e:{if(of(t),e===null)throw Error(o(387));s=t.pendingProps,m=t.memoizedState,f=m.element,vd(e,t),Cs(t,s,null,n);var _=t.memoizedState;if(s=_.element,m.isDehydrated)if(m={element:s,isDehydrated:!1,cache:_.cache,pendingSuspenseBoundaries:_.pendingSuspenseBoundaries,transitions:_.transitions},t.updateQueue.baseState=m,t.memoizedState=m,t.flags&256){f=go(Error(o(423)),t),t=af(e,t,s,n,f);break e}else if(s!==f){f=go(Error(o(424)),t),t=af(e,t,s,n,f);break e}else for(ir=un(t.stateNode.containerInfo.firstChild),sr=t,st=!0,Er=null,n=md(t,null,s,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Ao(),s===f){t=Kr(e,t,n);break e}Qt(e,t,s,n)}t=t.child}return t;case 5:return wd(t),e===null&&Xl(t),s=t.type,f=t.pendingProps,m=e!==null?e.memoizedProps:null,_=f.children,Ul(s,f)?_=null:m!==null&&Ul(s,m)&&(t.flags|=32),rf(e,t),Qt(e,t,_,n),t.child;case 6:return e===null&&Xl(t),null;case 13:return sf(e,t,n);case 4:return sc(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=ho(t,null,s,n):Qt(e,t,s,n),t.child;case 11:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),Xd(e,t,s,f,n);case 7:return Qt(e,t,t.pendingProps,n),t.child;case 8:return Qt(e,t,t.pendingProps.children,n),t.child;case 12:return Qt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,f=t.pendingProps,m=t.memoizedProps,_=f.value,et(gs,s._currentValue),s._currentValue=_,m!==null)if(br(m.value,_)){if(m.children===f.children&&!Zt.current){t=Kr(e,t,n);break e}}else for(m=t.child,m!==null&&(m.return=t);m!==null;){var O=m.dependencies;if(O!==null){_=m.child;for(var L=O.firstContext;L!==null;){if(L.context===s){if(m.tag===1){L=$r(-1,n&-n),L.tag=2;var Z=m.updateQueue;if(Z!==null){Z=Z.shared;var ce=Z.pending;ce===null?L.next=L:(L.next=ce.next,ce.next=L),Z.pending=L}}m.lanes|=n,L=m.alternate,L!==null&&(L.lanes|=n),nc(m.return,n,t),O.lanes|=n;break}L=L.next}}else if(m.tag===10)_=m.type===t.type?null:m.child;else if(m.tag===18){if(_=m.return,_===null)throw Error(o(341));_.lanes|=n,O=_.alternate,O!==null&&(O.lanes|=n),nc(_,n,t),_=m.sibling}else _=m.child;if(_!==null)_.return=m;else for(_=m;_!==null;){if(_===t){_=null;break}if(m=_.sibling,m!==null){m.return=_.return,_=m;break}_=_.return}m=_}Qt(e,t,f.children,n),t=t.child}return t;case 9:return f=t.type,s=t.pendingProps.children,xo(t,n),f=hr(f),s=s(f),t.flags|=1,Qt(e,t,s,n),t.child;case 14:return s=t.type,f=kr(s,t.pendingProps),f=kr(s.type,f),Jd(e,t,s,f,n);case 15:return ef(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,f=t.pendingProps,f=t.elementType===s?f:kr(s,f),Fs(e,t),t.tag=1,Xt(s)?(e=!0,fs(t)):e=!1,xo(t,n),qd(t,s,f),vc(t,s,f,n),bc(null,t,s,!0,e,n);case 19:return cf(e,t,n);case 22:return tf(e,t,n)}throw Error(o(156,t.tag))};function Pf(e,t){return d0(e,t)}function Lg(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mr(e,t,n,s){return new Lg(e,t,n,s)}function Uc(e){return e=e.prototype,!(!e||!e.isReactComponent)}function zg(e){if(typeof e=="function")return Uc(e)?1:0;if(e!=null){if(e=e.$$typeof,e===z)return 11;if(e===se)return 14}return 2}function Cn(e,t){var n=e.alternate;return n===null?(n=mr(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function zs(e,t,n,s,f,m){var _=2;if(s=e,typeof e=="function")Uc(e)&&(_=1);else if(typeof e=="string")_=5;else e:switch(e){case M:return Ln(n.children,f,m,t);case P:_=8,f|=8;break;case j:return e=mr(12,n,t,f|2),e.elementType=j,e.lanes=m,e;case Q:return e=mr(13,n,t,f),e.elementType=Q,e.lanes=m,e;case X:return e=mr(19,n,t,f),e.elementType=X,e.lanes=m,e;case ne:return Vs(n,f,m,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case I:_=10;break e;case N:_=9;break e;case z:_=11;break e;case se:_=14;break e;case J:_=16,s=null;break e}throw Error(o(130,e==null?e:typeof e,""))}return t=mr(_,n,t,f),t.elementType=e,t.type=s,t.lanes=m,t}function Ln(e,t,n,s){return e=mr(7,e,s,t),e.lanes=n,e}function Vs(e,t,n,s){return e=mr(22,e,s,t),e.elementType=ne,e.lanes=n,e.stateNode={isHidden:!1},e}function Wc(e,t,n){return e=mr(6,e,null,t),e.lanes=n,e}function qc(e,t,n){return t=mr(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Vg(e,t,n,s,f){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gl(0),this.expirationTimes=gl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gl(0),this.identifierPrefix=s,this.onRecoverableError=f,this.mutableSourceEagerHydrationData=null}function Qc(e,t,n,s,f,m,_,O,L){return e=new Vg(e,t,n,O,L),t===1?(t=1,m===!0&&(t|=8)):t=0,m=mr(3,null,null,t),e.current=m,m.stateNode=e,m.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ac(m),e}function Ug(e,t,n){var s=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(a){console.error(a)}}return r(),Jc.exports=nv(),Jc.exports}var Gf;function ov(){if(Gf)return Ks;Gf=1;var r=Wh();return Ks.createRoot=r.createRoot,Ks.hydrateRoot=r.hydrateRoot,Ks}var av=ov();const sv="/api";async function tt(r,a){const o=await fetch(`${sv}${r}`,{...a,headers:{"Content-Type":"application/json",...a==null?void 0:a.headers}});if(!o.ok){const i=await o.text();throw new Error(i||o.statusText)}return o.json()}const Xe={getHealth:()=>tt("/health"),getRadioConfig:()=>tt("/radio/config"),updateRadioConfig:r=>tt("/radio/config",{method:"PATCH",body:JSON.stringify(r)}),setPrivateKey:r=>tt("/radio/private-key",{method:"PUT",body:JSON.stringify({private_key:r})}),sendAdvertisement:(r=!0)=>tt(`/radio/advertise?flood=${r}`,{method:"POST"}),rebootRadio:()=>tt("/radio/reboot",{method:"POST"}),reconnectRadio:()=>tt("/radio/reconnect",{method:"POST"}),getContacts:(r=100,a=0)=>tt(`/contacts?limit=${r}&offset=${a}`),getContact:r=>tt(`/contacts/${r}`),syncContacts:()=>tt("/contacts/sync",{method:"POST"}),addContactToRadio:r=>tt(`/contacts/${r}/add-to-radio`,{method:"POST"}),removeContactFromRadio:r=>tt(`/contacts/${r}/remove-from-radio`,{method:"POST"}),deleteContact:r=>tt(`/contacts/${r}`,{method:"DELETE"}),getChannels:()=>tt("/channels"),getChannel:r=>tt(`/channels/${r}`),createChannel:(r,a)=>tt("/channels",{method:"POST",body:JSON.stringify({name:r,key:a})}),syncChannels:()=>tt("/channels/sync",{method:"POST"}),deleteChannel:r=>tt(`/channels/${r}`,{method:"DELETE"}),getMessages:r=>{const a=new URLSearchParams;r!=null&&r.limit&&a.set("limit",r.limit.toString()),r!=null&&r.offset&&a.set("offset",r.offset.toString()),r!=null&&r.type&&a.set("type",r.type),r!=null&&r.conversation_key&&a.set("conversation_key",r.conversation_key);const o=a.toString();return tt(`/messages${o?`?${o}`:""}`)},getMessagesBulk:(r,a=100)=>tt(`/messages/bulk?limit_per_conversation=${a}`,{method:"POST",body:JSON.stringify(r)}),sendDirectMessage:(r,a)=>tt("/messages/direct",{method:"POST",body:JSON.stringify({destination:r,text:a})}),sendChannelMessage:(r,a)=>tt("/messages/channel",{method:"POST",body:JSON.stringify({channel_key:r,text:a})}),getUndecryptedPacketCount:()=>tt("/packets/undecrypted/count"),decryptHistoricalPackets:r=>tt("/packets/decrypt/historical",{method:"POST",body:JSON.stringify(r)}),getSettings:()=>tt("/settings"),updateSettings:r=>tt("/settings",{method:"PATCH",body:JSON.stringify(r)})};function iv(r){const a=F.useRef(null),o=F.useRef(null),[i,u]=F.useState(!1),l=F.useCallback(()=>{const A=window.location.protocol==="https:"?"wss:":"ws:",h=window.location.port==="5173"?"ws://localhost:8000/api/ws":`${A}//${window.location.host}/api/ws`,d=new WebSocket(h);d.onopen=()=>{console.log("WebSocket connected"),u(!0)},d.onclose=()=>{console.log("WebSocket disconnected"),u(!1),a.current=null,o.current=window.setTimeout(()=>{console.log("Attempting WebSocket reconnect..."),l()},3e3)},d.onerror=x=>{console.error("WebSocket error:",x)},d.onmessage=x=>{var p,g,C,w,b,v,S,E;try{const y=JSON.parse(x.data);switch(y.type){case"health":(p=r.onHealth)==null||p.call(r,y.data);break;case"contacts":(g=r.onContacts)==null||g.call(r,y.data);break;case"channels":(C=r.onChannels)==null||C.call(r,y.data);break;case"message":(w=r.onMessage)==null||w.call(r,y.data);break;case"contact":(b=r.onContact)==null||b.call(r,y.data);break;case"raw_packet":(v=r.onRawPacket)==null||v.call(r,y.data);break;case"message_acked":(S=r.onMessageAcked)==null||S.call(r,y.data.message_id);break;case"error":(E=r.onError)==null||E.call(r,y.data);break;case"pong":break;default:console.log("Unknown WebSocket message type:",y.type)}}catch(y){console.error("Failed to parse WebSocket message:",y)}},a.current=d},[r]);return F.useEffect(()=>{l();const A=setInterval(()=>{var c;((c=a.current)==null?void 0:c.readyState)===WebSocket.OPEN&&a.current.send("ping")},3e4);return()=>{clearInterval(A),o.current&&clearTimeout(o.current),a.current&&a.current.close()}},[l]),{connected:i}}/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. @@ -52,7 +52,7 @@ Error generating stack: `+m.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const fv=F.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:u="",children:l,iconNode:A,...c},h)=>F.createElement("svg",{ref:h,...dv,width:a,height:a,stroke:r,strokeWidth:i?Number(o)*24/Number(a):o,className:qh("lucide",u),...!l&&!uv(c)&&{"aria-hidden":"true"},...c},[...A.map(([d,p])=>F.createElement(d,p)),...Array.isArray(l)?l:[l]]));/** + */const fv=F.forwardRef(({color:r="currentColor",size:a=24,strokeWidth:o=2,absoluteStrokeWidth:i,className:u="",children:l,iconNode:A,...c},h)=>F.createElement("svg",{ref:h,...dv,width:a,height:a,stroke:r,strokeWidth:i?Number(o)*24/Number(a):o,className:qh("lucide",u),...!l&&!uv(c)&&{"aria-hidden":"true"},...c},[...A.map(([d,x])=>F.createElement(d,x)),...Array.isArray(l)?l:[l]]));/** * @license lucide-react v0.562.0 - ISC * * This source code is licensed under the ISC license. @@ -72,8 +72,8 @@ Error generating stack: `+m.message+` * * This source code is licensed under the ISC license. * See the LICENSE file in the root directory of this source tree. - */const mv=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Qh=Mu("x",mv);var Gh=Wh();const $h=Po(Gh);function gv(r){if(typeof document>"u")return;let a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",a.appendChild(o),o.styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r))}const vv=r=>{switch(r){case"success":return wv;case"info":return Ev;case"warning":return bv;case"error":return kv;default:return null}},yv=Array(12).fill(0),Cv=({visible:r,className:a})=>he.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":r},he.createElement("div",{className:"sonner-spinner"},yv.map((o,i)=>he.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${i}`})))),wv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),bv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Ev=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),kv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Sv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},he.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),he.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Bv=()=>{const[r,a]=he.useState(document.hidden);return he.useEffect(()=>{const o=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),r};let vu=1;class _v{constructor(){this.subscribe=a=>(this.subscribers.push(a),()=>{const o=this.subscribers.indexOf(a);this.subscribers.splice(o,1)}),this.publish=a=>{this.subscribers.forEach(o=>o(a))},this.addToast=a=>{this.publish(a),this.toasts=[...this.toasts,a]},this.create=a=>{var o;const{message:i,...u}=a,l=typeof(a==null?void 0:a.id)=="number"||((o=a.id)==null?void 0:o.length)>0?a.id:vu++,A=this.toasts.find(h=>h.id===l),c=a.dismissible===void 0?!0:a.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),A?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...a,id:l,title:i}),{...h,...a,id:l,dismissible:c,title:i}):h):this.addToast({title:i,...u,dismissible:c,id:l}),l},this.dismiss=a=>(a?(this.dismissedToasts.add(a),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:a,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(i=>i({id:o.id,dismiss:!0}))}),a),this.message=(a,o)=>this.create({...o,message:a}),this.error=(a,o)=>this.create({...o,message:a,type:"error"}),this.success=(a,o)=>this.create({...o,type:"success",message:a}),this.info=(a,o)=>this.create({...o,type:"info",message:a}),this.warning=(a,o)=>this.create({...o,type:"warning",message:a}),this.loading=(a,o)=>this.create({...o,type:"loading",message:a}),this.promise=(a,o)=>{if(!o)return;let i;o.loading!==void 0&&(i=this.create({...o,promise:a,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const u=Promise.resolve(a instanceof Function?a():a);let l=i!==void 0,A;const c=u.then(async d=>{if(A=["resolve",d],he.isValidElement(d))l=!1,this.create({id:i,type:"default",message:d});else if(Fv(d)&&!d.ok){l=!1;const x=typeof o.error=="function"?await o.error(`HTTP error! status: ${d.status}`):o.error,g=typeof o.description=="function"?await o.description(`HTTP error! status: ${d.status}`):o.description,b=typeof x=="object"&&!he.isValidElement(x)?x:{message:x};this.create({id:i,type:"error",description:g,...b})}else if(d instanceof Error){l=!1;const x=typeof o.error=="function"?await o.error(d):o.error,g=typeof o.description=="function"?await o.description(d):o.description,b=typeof x=="object"&&!he.isValidElement(x)?x:{message:x};this.create({id:i,type:"error",description:g,...b})}else if(o.success!==void 0){l=!1;const x=typeof o.success=="function"?await o.success(d):o.success,g=typeof o.description=="function"?await o.description(d):o.description,b=typeof x=="object"&&!he.isValidElement(x)?x:{message:x};this.create({id:i,type:"success",description:g,...b})}}).catch(async d=>{if(A=["reject",d],o.error!==void 0){l=!1;const p=typeof o.error=="function"?await o.error(d):o.error,x=typeof o.description=="function"?await o.description(d):o.description,w=typeof p=="object"&&!he.isValidElement(p)?p:{message:p};this.create({id:i,type:"error",description:x,...w})}}).finally(()=>{l&&(this.dismiss(i),i=void 0),o.finally==null||o.finally.call(o)}),h=()=>new Promise((d,p)=>c.then(()=>A[0]==="reject"?p(A[1]):d(A[1])).catch(p));return typeof i!="string"&&typeof i!="number"?{unwrap:h}:Object.assign(i,{unwrap:h})},this.custom=(a,o)=>{const i=(o==null?void 0:o.id)||vu++;return this.create({jsx:a(i),id:i,...o}),i},this.getActiveToasts=()=>this.toasts.filter(a=>!this.dismissedToasts.has(a.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const nr=new _v,Dv=(r,a)=>{const o=(a==null?void 0:a.id)||vu++;return nr.addToast({title:r,...a,id:o}),o},Fv=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",Rv=Dv,Tv=()=>nr.toasts,Pv=()=>nr.getActiveToasts(),Ia=Object.assign(Rv,{success:nr.success,info:nr.info,warning:nr.warning,error:nr.error,custom:nr.custom,message:nr.message,promise:nr.promise,dismiss:nr.dismiss,loading:nr.loading},{getHistory:Tv,getToasts:Pv});gv("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ys(r){return r.label!==void 0}const Nv=3,Iv="24px",Mv="16px",Kf=4e3,Ov=356,jv=14,Hv=45,Lv=200;function Or(...r){return r.filter(Boolean).join(" ")}function zv(r){const[a,o]=r.split("-"),i=[];return a&&i.push(a),o&&i.push(o),i}const Vv=r=>{var a,o,i,u,l,A,c,h,d;const{invert:p,toast:x,unstyled:g,interacting:w,setHeights:b,visibleToasts:k,heights:v,index:S,toasts:E,expanded:C,removeToast:B,defaultRichColors:D,closeButton:T,style:I,cancelButtonStyle:P,actionButtonStyle:H,className:M="",descriptionClassName:N="",duration:V,position:Q,gap:X,expandByDefault:ae,classNames:J,icons:re,closeButtonAriaLabel:q="Close toast"}=r,[oe,ee]=he.useState(null),[y,j]=he.useState(null),[L,W]=he.useState(!1),[ue,le]=he.useState(!1),[ce,te]=he.useState(!1),[me,Ne]=he.useState(!1),[$e,nt]=he.useState(!1),[st,Ke]=he.useState(0),[Gt,Ot]=he.useState(0),St=he.useRef(x.duration||V||Kf),Wt=he.useRef(null),ct=he.useRef(null),Tt=S===0,et=S+1<=k,Ve=x.type,ut=x.dismissible!==!1,$t=x.className||"",vr=x.descriptionClassName||"",vt=he.useMemo(()=>v.findIndex(ke=>ke.toastId===x.id)||0,[v,x.id]),jt=he.useMemo(()=>{var ke;return(ke=x.closeButton)!=null?ke:T},[x.closeButton,T]),Kt=he.useMemo(()=>x.duration||V||Kf,[x.duration,V]),or=he.useRef(0),yt=he.useRef(0),ot=he.useRef(0),Y=he.useRef(null),[fe,be]=Q.split("-"),$=he.useMemo(()=>v.reduce((ke,je,ze)=>ze>=vt?ke:ke+je.height,0),[v,vt]),ne=Bv(),pe=x.invert||p,Re=Ve==="loading";yt.current=he.useMemo(()=>vt*X+$,[vt,$]),he.useEffect(()=>{St.current=Kt},[Kt]),he.useEffect(()=>{W(!0)},[]),he.useEffect(()=>{const ke=ct.current;if(ke){const je=ke.getBoundingClientRect().height;return Ot(je),b(ze=>[{toastId:x.id,height:je,position:x.position},...ze]),()=>b(ze=>ze.filter(dt=>dt.toastId!==x.id))}},[b,x.id]),he.useLayoutEffect(()=>{if(!L)return;const ke=ct.current,je=ke.style.height;ke.style.height="auto";const ze=ke.getBoundingClientRect().height;ke.style.height=je,Ot(ze),b(dt=>dt.find(He=>He.toastId===x.id)?dt.map(He=>He.toastId===x.id?{...He,height:ze}:He):[{toastId:x.id,height:ze,position:x.position},...dt])},[L,x.title,x.description,b,x.id,x.jsx,x.action,x.cancel]);const De=he.useCallback(()=>{le(!0),Ke(yt.current),b(ke=>ke.filter(je=>je.toastId!==x.id)),setTimeout(()=>{B(x)},Lv)},[x,B,b,yt]);he.useEffect(()=>{if(x.promise&&Ve==="loading"||x.duration===1/0||x.type==="loading")return;let ke;return C||w||ne?(()=>{if(ot.current{St.current!==1/0&&(or.current=new Date().getTime(),ke=setTimeout(()=>{x.onAutoClose==null||x.onAutoClose.call(x,x),De()},St.current))})(),()=>clearTimeout(ke)},[C,w,x,Ve,ne,De]),he.useEffect(()=>{x.delete&&(De(),x.onDismiss==null||x.onDismiss.call(x,x))},[De,x.delete]);function Ie(){var ke;if(re!=null&&re.loading){var je;return he.createElement("div",{className:Or(J==null?void 0:J.loader,x==null||(je=x.classNames)==null?void 0:je.loader,"sonner-loader"),"data-visible":Ve==="loading"},re.loading)}return he.createElement(Cv,{className:Or(J==null?void 0:J.loader,x==null||(ke=x.classNames)==null?void 0:ke.loader),visible:Ve==="loading"})}const Te=x.icon||(re==null?void 0:re[Ve])||vv(Ve);var Pe,Ct;return he.createElement("li",{tabIndex:0,ref:ct,className:Or(M,$t,J==null?void 0:J.toast,x==null||(a=x.classNames)==null?void 0:a.toast,J==null?void 0:J.default,J==null?void 0:J[Ve],x==null||(o=x.classNames)==null?void 0:o[Ve]),"data-sonner-toast":"","data-rich-colors":(Pe=x.richColors)!=null?Pe:D,"data-styled":!(x.jsx||x.unstyled||g),"data-mounted":L,"data-promise":!!x.promise,"data-swiped":$e,"data-removed":ue,"data-visible":et,"data-y-position":fe,"data-x-position":be,"data-index":S,"data-front":Tt,"data-swiping":ce,"data-dismissible":ut,"data-type":Ve,"data-invert":pe,"data-swipe-out":me,"data-swipe-direction":y,"data-expanded":!!(C||ae&&L),"data-testid":x.testId,style:{"--index":S,"--toasts-before":S,"--z-index":E.length-S,"--offset":`${ue?st:yt.current}px`,"--initial-height":ae?"auto":`${Gt}px`,...I,...x.style},onDragEnd:()=>{te(!1),ee(null),Y.current=null},onPointerDown:ke=>{ke.button!==2&&(Re||!ut||(Wt.current=new Date,Ke(yt.current),ke.target.setPointerCapture(ke.pointerId),ke.target.tagName!=="BUTTON"&&(te(!0),Y.current={x:ke.clientX,y:ke.clientY})))},onPointerUp:()=>{var ke,je,ze;if(me||!ut)return;Y.current=null;const dt=Number(((ke=ct.current)==null?void 0:ke.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),dr=Number(((je=ct.current)==null?void 0:je.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),He=new Date().getTime()-((ze=Wt.current)==null?void 0:ze.getTime()),Ze=oe==="x"?dt:dr,yr=Math.abs(Ze)/He;if(Math.abs(Ze)>=Hv||yr>.11){Ke(yt.current),x.onDismiss==null||x.onDismiss.call(x,x),j(oe==="x"?dt>0?"right":"left":dr>0?"down":"up"),De(),Ne(!0);return}else{var Qe,ft;(Qe=ct.current)==null||Qe.style.setProperty("--swipe-amount-x","0px"),(ft=ct.current)==null||ft.style.setProperty("--swipe-amount-y","0px")}nt(!1),te(!1),ee(null)},onPointerMove:ke=>{var je,ze,dt;if(!Y.current||!ut||((je=window.getSelection())==null?void 0:je.toString().length)>0)return;const He=ke.clientY-Y.current.y,Ze=ke.clientX-Y.current.x;var yr;const Qe=(yr=r.swipeDirections)!=null?yr:zv(Q);!oe&&(Math.abs(Ze)>1||Math.abs(He)>1)&&ee(Math.abs(Ze)>Math.abs(He)?"x":"y");let ft={x:0,y:0};const Cr=Yt=>1/(1.5+Math.abs(Yt)/20);if(oe==="y"){if(Qe.includes("top")||Qe.includes("bottom"))if(Qe.includes("top")&&He<0||Qe.includes("bottom")&&He>0)ft.y=He;else{const Yt=He*Cr(He);ft.y=Math.abs(Yt)0)ft.x=Ze;else{const Yt=Ze*Cr(Ze);ft.x=Math.abs(Yt)0||Math.abs(ft.y)>0)&&nt(!0),(ze=ct.current)==null||ze.style.setProperty("--swipe-amount-x",`${ft.x}px`),(dt=ct.current)==null||dt.style.setProperty("--swipe-amount-y",`${ft.y}px`)}},jt&&!x.jsx&&Ve!=="loading"?he.createElement("button",{"aria-label":q,"data-disabled":Re,"data-close-button":!0,onClick:Re||!ut?()=>{}:()=>{De(),x.onDismiss==null||x.onDismiss.call(x,x)},className:Or(J==null?void 0:J.closeButton,x==null||(i=x.classNames)==null?void 0:i.closeButton)},(Ct=re==null?void 0:re.close)!=null?Ct:Sv):null,(Ve||x.icon||x.promise)&&x.icon!==null&&((re==null?void 0:re[Ve])!==null||x.icon)?he.createElement("div",{"data-icon":"",className:Or(J==null?void 0:J.icon,x==null||(u=x.classNames)==null?void 0:u.icon)},x.promise||x.type==="loading"&&!x.icon?x.icon||Ie():null,x.type!=="loading"?Te:null):null,he.createElement("div",{"data-content":"",className:Or(J==null?void 0:J.content,x==null||(l=x.classNames)==null?void 0:l.content)},he.createElement("div",{"data-title":"",className:Or(J==null?void 0:J.title,x==null||(A=x.classNames)==null?void 0:A.title)},x.jsx?x.jsx:typeof x.title=="function"?x.title():x.title),x.description?he.createElement("div",{"data-description":"",className:Or(N,vr,J==null?void 0:J.description,x==null||(c=x.classNames)==null?void 0:c.description)},typeof x.description=="function"?x.description():x.description):null),he.isValidElement(x.cancel)?x.cancel:x.cancel&&Ys(x.cancel)?he.createElement("button",{"data-button":!0,"data-cancel":!0,style:x.cancelButtonStyle||P,onClick:ke=>{Ys(x.cancel)&&ut&&(x.cancel.onClick==null||x.cancel.onClick.call(x.cancel,ke),De())},className:Or(J==null?void 0:J.cancelButton,x==null||(h=x.classNames)==null?void 0:h.cancelButton)},x.cancel.label):null,he.isValidElement(x.action)?x.action:x.action&&Ys(x.action)?he.createElement("button",{"data-button":!0,"data-action":!0,style:x.actionButtonStyle||H,onClick:ke=>{Ys(x.action)&&(x.action.onClick==null||x.action.onClick.call(x.action,ke),!ke.defaultPrevented&&De())},className:Or(J==null?void 0:J.actionButton,x==null||(d=x.classNames)==null?void 0:d.actionButton)},x.action.label):null)};function Yf(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function Uv(r,a){const o={};return[r,a].forEach((i,u)=>{const l=u===1,A=l?"--mobile-offset":"--offset",c=l?Mv:Iv;function h(d){["top","right","bottom","left"].forEach(p=>{o[`${A}-${p}`]=typeof d=="number"?`${d}px`:d})}typeof i=="number"||typeof i=="string"?h(i):typeof i=="object"?["top","right","bottom","left"].forEach(d=>{i[d]===void 0?o[`${A}-${d}`]=c:o[`${A}-${d}`]=typeof i[d]=="number"?`${i[d]}px`:i[d]}):h(c)}),o}const Wv=he.forwardRef(function(a,o){const{id:i,invert:u,position:l="bottom-right",hotkey:A=["altKey","KeyT"],expand:c,closeButton:h,className:d,offset:p,mobileOffset:x,theme:g="light",richColors:w,duration:b,style:k,visibleToasts:v=Nv,toastOptions:S,dir:E=Yf(),gap:C=jv,icons:B,containerAriaLabel:D="Notifications"}=a,[T,I]=he.useState([]),P=he.useMemo(()=>i?T.filter(L=>L.toasterId===i):T.filter(L=>!L.toasterId),[T,i]),H=he.useMemo(()=>Array.from(new Set([l].concat(P.filter(L=>L.position).map(L=>L.position)))),[P,l]),[M,N]=he.useState([]),[V,Q]=he.useState(!1),[X,ae]=he.useState(!1),[J,re]=he.useState(g!=="system"?g:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=he.useRef(null),oe=A.join("+").replace(/Key/g,"").replace(/Digit/g,""),ee=he.useRef(null),y=he.useRef(!1),j=he.useCallback(L=>{I(W=>{var ue;return(ue=W.find(le=>le.id===L.id))!=null&&ue.delete||nr.dismiss(L.id),W.filter(({id:le})=>le!==L.id)})},[]);return he.useEffect(()=>nr.subscribe(L=>{if(L.dismiss){requestAnimationFrame(()=>{I(W=>W.map(ue=>ue.id===L.id?{...ue,delete:!0}:ue))});return}setTimeout(()=>{$h.flushSync(()=>{I(W=>{const ue=W.findIndex(le=>le.id===L.id);return ue!==-1?[...W.slice(0,ue),{...W[ue],...L},...W.slice(ue+1)]:[L,...W]})})})}),[T]),he.useEffect(()=>{if(g!=="system"){re(g);return}if(g==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?re("dark"):re("light")),typeof window>"u")return;const L=window.matchMedia("(prefers-color-scheme: dark)");try{L.addEventListener("change",({matches:W})=>{re(W?"dark":"light")})}catch{L.addListener(({matches:ue})=>{try{re(ue?"dark":"light")}catch(le){console.error(le)}})}},[g]),he.useEffect(()=>{T.length<=1&&Q(!1)},[T]),he.useEffect(()=>{const L=W=>{var ue;if(A.every(te=>W[te]||W.code===te)){var ce;Q(!0),(ce=q.current)==null||ce.focus()}W.code==="Escape"&&(document.activeElement===q.current||(ue=q.current)!=null&&ue.contains(document.activeElement))&&Q(!1)};return document.addEventListener("keydown",L),()=>document.removeEventListener("keydown",L)},[A]),he.useEffect(()=>{if(q.current)return()=>{ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null,y.current=!1)}},[q.current]),he.createElement("section",{ref:o,"aria-label":`${D} ${oe}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},H.map((L,W)=>{var ue;const[le,ce]=L.split("-");return P.length?he.createElement("ol",{key:L,dir:E==="auto"?Yf():E,tabIndex:-1,ref:q,className:d,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":le,"data-x-position":ce,style:{"--front-toast-height":`${((ue=M[0])==null?void 0:ue.height)||0}px`,"--width":`${Ov}px`,"--gap":`${C}px`,...k,...Uv(p,x)},onBlur:te=>{y.current&&!te.currentTarget.contains(te.relatedTarget)&&(y.current=!1,ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null))},onFocus:te=>{te.target instanceof HTMLElement&&te.target.dataset.dismissible==="false"||y.current||(y.current=!0,ee.current=te.relatedTarget)},onMouseEnter:()=>Q(!0),onMouseMove:()=>Q(!0),onMouseLeave:()=>{X||Q(!1)},onDragEnd:()=>Q(!1),onPointerDown:te=>{te.target instanceof HTMLElement&&te.target.dataset.dismissible==="false"||ae(!0)},onPointerUp:()=>ae(!1)},P.filter(te=>!te.position&&W===0||te.position===L).map((te,me)=>{var Ne,$e;return he.createElement(Vv,{key:te.id,icons:B,index:me,toast:te,defaultRichColors:w,duration:(Ne=S==null?void 0:S.duration)!=null?Ne:b,className:S==null?void 0:S.className,descriptionClassName:S==null?void 0:S.descriptionClassName,invert:u,visibleToasts:v,closeButton:($e=S==null?void 0:S.closeButton)!=null?$e:h,interacting:X,position:L,style:S==null?void 0:S.style,unstyled:S==null?void 0:S.unstyled,classNames:S==null?void 0:S.classNames,cancelButtonStyle:S==null?void 0:S.cancelButtonStyle,actionButtonStyle:S==null?void 0:S.actionButtonStyle,closeButtonAriaLabel:S==null?void 0:S.closeButtonAriaLabel,removeToast:j,toasts:P.filter(nt=>nt.position==te.position),heights:M.filter(nt=>nt.position==te.position),setHeights:N,expandByDefault:c,gap:C,expanded:V,swipeDirections:a.swipeDirections})})):null}))}),qv=({...r})=>R.jsx(Wv,{theme:"dark",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-[#2a1a1a] group-[.toaster]:text-[#e8a0a0] group-[.toaster]:border-[#4a2a2a] [&_[data-description]]:text-[#b08080]"}},...r});function Qv({health:r,config:a,onConfigClick:o,onAdvertise:i,onMenuClick:u}){const l=(r==null?void 0:r.radio_connected)??!1,[A,c]=F.useState(!1),h=async()=>{c(!0);try{const d=await Ye.reconnectRadio();d.connected&&Ia.success("Reconnected",{description:d.message})}catch(d){Ia.error("Reconnection failed",{description:d instanceof Error?d.message:"Check radio connection and power"})}finally{c(!1)}};return R.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[u&&R.jsx("button",{onClick:u,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:R.jsx(xv,{className:"h-5 w-5"})}),R.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),R.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[R.jsx("div",{className:`w-2 h-2 rounded-full ${l?"bg-[#4caf50]":"bg-[#666]"}`}),R.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:l?"Connected":"Disconnected"})]}),(r==null?void 0:r.serial_port)&&R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",R.jsx("span",{className:"text-[#e0e0e0]",children:r.serial_port})]}),a&&R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:["Name: ",R.jsx("span",{className:"text-[#e0e0e0]",children:a.name||"Unnamed"})]}),R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Freq: ",R.jsxs("span",{className:"text-[#e0e0e0]",children:[a.radio.freq," MHz"]})]}),R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["SF",a.radio.sf,"/CR",a.radio.cr]}),R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["TX: ",R.jsxs("span",{className:"text-[#e0e0e0]",children:[a.tx_power," dBm"]})]})]}),R.jsx("div",{className:"flex-1 lg:hidden"}),!l&&R.jsx("button",{onClick:h,disabled:A,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:A?"Reconnecting...":"Reconnect"}),R.jsx("button",{onClick:i,disabled:!l,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444] disabled:bg-[#333] disabled:text-[#666] disabled:cursor-not-allowed",children:"Advertise"}),R.jsx("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:"Config"})]})}const Gv=12;function Fo(r){return r.slice(0,Gv)}function Kh(r,a){return!r||!a?!1:Fo(r)===Fo(a)}function Kn(r,a){return r||Fo(a)}const yu="remoteterm-lastMessageTime",Cu="remoteterm-lastReadTime";function el(r){try{const a=localStorage.getItem(r);return a?JSON.parse(a):{}}catch{return{}}}function Yh(r,a){try{localStorage.setItem(r,JSON.stringify(a))}catch{}}function Zf(){return el(yu)}function $v(){return el(Cu)}function ru(r,a){const o=el(yu);return(!o[r]||a>o[r])&&(o[r]=a,Yh(yu,o)),o}function nu(r,a){const o=el(Cu);return o[r]=a,Yh(Cu,o),o}function tn(r,a){return r==="channel"?`channel-${a}`:`contact-${Fo(a)}`}const wu=2,Kv={text:"🛜",background:"#444444",textColor:"#ffffff"};function Yv(r){let a=0;for(let o=0;o>8)%30,u=35+(a>>16)%20,l=`hsl(${o}, ${i}%, ${u}%)`,A=u<45?"#ffffff":"#000000";return{background:l,text:A}}function ey(r,a,o){if(o===wu)return Kv;const i=Xv(r,a),u=Jv(a);return{text:i,background:u.background,textColor:u.text}}function Zh({name:r,publicKey:a,size:o=28,contactType:i}){const u=ey(r,a,i);return R.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:u.background,color:u.textColor,width:o,height:o,fontSize:o*.45},children:u.text})}function Xh(r){var a,o,i="";if(typeof r=="string"||typeof r=="number")i+=r;else if(typeof r=="object")if(Array.isArray(r)){var u=r.length;for(a=0;a{const o=new Array(r.length+a.length);for(let i=0;i({classGroupId:r,validator:a}),ep=(r=new Map,a=null,o)=>({nextPart:r,validators:a,classGroupId:o}),Gi="-",Xf=[],ny="arbitrary..",oy=r=>{const a=sy(r),{conflictingClassGroups:o,conflictingClassGroupModifiers:i}=r;return{getClassGroupId:A=>{if(A.startsWith("[")&&A.endsWith("]"))return ay(A);const c=A.split(Gi),h=c[0]===""&&c.length>1?1:0;return tp(c,h,a)},getConflictingClassGroupIds:(A,c)=>{if(c){const h=i[A],d=o[A];return h?d?ty(d,h):h:d||Xf}return o[A]||Xf}}},tp=(r,a,o)=>{if(r.length-a===0)return o.classGroupId;const u=r[a],l=o.nextPart.get(u);if(l){const d=tp(r,a+1,l);if(d)return d}const A=o.validators;if(A===null)return;const c=a===0?r.join(Gi):r.slice(a).join(Gi),h=A.length;for(let d=0;dr.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=r.slice(1,-1),o=a.indexOf(":"),i=a.slice(0,o);return i?ny+i:void 0})(),sy=r=>{const{theme:a,classGroups:o}=r;return iy(o,a)},iy=(r,a)=>{const o=ep();for(const i in r){const u=r[i];Ou(u,o,i,a)}return o},Ou=(r,a,o,i)=>{const u=r.length;for(let l=0;l{if(typeof r=="string"){cy(r,a,o);return}if(typeof r=="function"){uy(r,a,o,i);return}dy(r,a,o,i)},cy=(r,a,o)=>{const i=r===""?a:rp(a,r);i.classGroupId=o},uy=(r,a,o,i)=>{if(fy(r)){Ou(r(i),a,o,i);return}a.validators===null&&(a.validators=[]),a.validators.push(ry(o,r))},dy=(r,a,o,i)=>{const u=Object.entries(r),l=u.length;for(let A=0;A{let o=r;const i=a.split(Gi),u=i.length;for(let l=0;l"isThemeGetter"in r&&r.isThemeGetter===!0,Ay=r=>{if(r<1)return{get:()=>{},set:()=>{}};let a=0,o=Object.create(null),i=Object.create(null);const u=(l,A)=>{o[l]=A,a++,a>r&&(a=0,i=o,o=Object.create(null))};return{get(l){let A=o[l];if(A!==void 0)return A;if((A=i[l])!==void 0)return u(l,A),A},set(l,A){l in o?o[l]=A:u(l,A)}}},bu="!",Jf=":",hy=[],eA=(r,a,o,i,u)=>({modifiers:r,hasImportantModifier:a,baseClassName:o,maybePostfixModifierPosition:i,isExternal:u}),py=r=>{const{prefix:a,experimentalParseClassName:o}=r;let i=u=>{const l=[];let A=0,c=0,h=0,d;const p=u.length;for(let k=0;kh?d-h:void 0;return eA(l,w,g,b)};if(a){const u=a+Jf,l=i;i=A=>A.startsWith(u)?l(A.slice(u.length)):eA(hy,!1,A,void 0,!0)}if(o){const u=i;i=l=>o({className:l,parseClassName:u})}return i},xy=r=>{const a=new Map;return r.orderSensitiveModifiers.forEach((o,i)=>{a.set(o,1e6+i)}),o=>{const i=[];let u=[];for(let l=0;l0&&(u.sort(),i.push(...u),u=[]),i.push(A)):u.push(A)}return u.length>0&&(u.sort(),i.push(...u)),i}},my=r=>({cache:Ay(r.cacheSize),parseClassName:py(r),sortModifiers:xy(r),...oy(r)}),gy=/\s+/,vy=(r,a)=>{const{parseClassName:o,getClassGroupId:i,getConflictingClassGroupIds:u,sortModifiers:l}=a,A=[],c=r.trim().split(gy);let h="";for(let d=c.length-1;d>=0;d-=1){const p=c[d],{isExternal:x,modifiers:g,hasImportantModifier:w,baseClassName:b,maybePostfixModifierPosition:k}=o(p);if(x){h=p+(h.length>0?" "+h:h);continue}let v=!!k,S=i(v?b.substring(0,k):b);if(!S){if(!v){h=p+(h.length>0?" "+h:h);continue}if(S=i(b),!S){h=p+(h.length>0?" "+h:h);continue}v=!1}const E=g.length===0?"":g.length===1?g[0]:l(g).join(":"),C=w?E+bu:E,B=C+S;if(A.indexOf(B)>-1)continue;A.push(B);const D=u(S,v);for(let T=0;T0?" "+h:h)}return h},yy=(...r)=>{let a=0,o,i,u="";for(;a{if(typeof r=="string")return r;let a,o="";for(let i=0;i{let o,i,u,l;const A=h=>{const d=a.reduce((p,x)=>x(p),r());return o=my(d),i=o.cache.get,u=o.cache.set,l=c,c(h)},c=h=>{const d=i(h);if(d)return d;const p=vy(h,o);return u(h,p),p};return l=A,(...h)=>l(yy(...h))},wy=[],Et=r=>{const a=o=>o[r]||wy;return a.isThemeGetter=!0,a},op=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ap=/^\((?:(\w[\w-]*):)?(.+)\)$/i,by=/^\d+\/\d+$/,Ey=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ky=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Sy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,By=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,_y=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,bo=r=>by.test(r),Me=r=>!!r&&!Number.isNaN(Number(r)),bn=r=>!!r&&Number.isInteger(Number(r)),ou=r=>r.endsWith("%")&&Me(r.slice(0,-1)),Zr=r=>Ey.test(r),Dy=()=>!0,Fy=r=>ky.test(r)&&!Sy.test(r),sp=()=>!1,Ry=r=>By.test(r),Ty=r=>_y.test(r),Py=r=>!ye(r)&&!Ce(r),Ny=r=>No(r,cp,sp),ye=r=>op.test(r),Vn=r=>No(r,up,Fy),au=r=>No(r,Hy,Me),tA=r=>No(r,ip,sp),Iy=r=>No(r,lp,Ty),Zs=r=>No(r,dp,Ry),Ce=r=>ap.test(r),ga=r=>Io(r,up),My=r=>Io(r,Ly),rA=r=>Io(r,ip),Oy=r=>Io(r,cp),jy=r=>Io(r,lp),Xs=r=>Io(r,dp,!0),No=(r,a,o)=>{const i=op.exec(r);return i?i[1]?a(i[1]):o(i[2]):!1},Io=(r,a,o=!1)=>{const i=ap.exec(r);return i?i[1]?a(i[1]):o:!1},ip=r=>r==="position"||r==="percentage",lp=r=>r==="image"||r==="url",cp=r=>r==="length"||r==="size"||r==="bg-size",up=r=>r==="length",Hy=r=>r==="number",Ly=r=>r==="family-name",dp=r=>r==="shadow",zy=()=>{const r=Et("color"),a=Et("font"),o=Et("text"),i=Et("font-weight"),u=Et("tracking"),l=Et("leading"),A=Et("breakpoint"),c=Et("container"),h=Et("spacing"),d=Et("radius"),p=Et("shadow"),x=Et("inset-shadow"),g=Et("text-shadow"),w=Et("drop-shadow"),b=Et("blur"),k=Et("perspective"),v=Et("aspect"),S=Et("ease"),E=Et("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],D=()=>[...B(),Ce,ye],T=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto","contain","none"],P=()=>[Ce,ye,h],H=()=>[bo,"full","auto",...P()],M=()=>[bn,"none","subgrid",Ce,ye],N=()=>["auto",{span:["full",bn,Ce,ye]},bn,Ce,ye],V=()=>[bn,"auto",Ce,ye],Q=()=>["auto","min","max","fr",Ce,ye],X=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...P()],re=()=>[bo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...P()],q=()=>[r,Ce,ye],oe=()=>[...B(),rA,tA,{position:[Ce,ye]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],y=()=>["auto","cover","contain",Oy,Ny,{size:[Ce,ye]}],j=()=>[ou,ga,Vn],L=()=>["","none","full",d,Ce,ye],W=()=>["",Me,ga,Vn],ue=()=>["solid","dashed","dotted","double"],le=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ce=()=>[Me,ou,rA,tA],te=()=>["","none",b,Ce,ye],me=()=>["none",Me,Ce,ye],Ne=()=>["none",Me,Ce,ye],$e=()=>[Me,Ce,ye],nt=()=>[bo,"full",...P()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Zr],breakpoint:[Zr],color:[Dy],container:[Zr],"drop-shadow":[Zr],ease:["in","out","in-out"],font:[Py],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Zr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Zr],shadow:[Zr],spacing:["px",Me],text:[Zr],"text-shadow":[Zr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",bo,ye,Ce,v]}],container:["container"],columns:[{columns:[Me,ye,Ce,c]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:D()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:H()}],"inset-x":[{"inset-x":H()}],"inset-y":[{"inset-y":H()}],start:[{start:H()}],end:[{end:H()}],top:[{top:H()}],right:[{right:H()}],bottom:[{bottom:H()}],left:[{left:H()}],visibility:["visible","invisible","collapse"],z:[{z:[bn,"auto",Ce,ye]}],basis:[{basis:[bo,"full","auto",c,...P()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Me,bo,"auto","initial","none",ye]}],grow:[{grow:["",Me,Ce,ye]}],shrink:[{shrink:["",Me,Ce,ye]}],order:[{order:[bn,"first","last","none",Ce,ye]}],"grid-cols":[{"grid-cols":M()}],"col-start-end":[{col:N()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":M()}],"row-start-end":[{row:N()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Q()}],"auto-rows":[{"auto-rows":Q()}],gap:[{gap:P()}],"gap-x":[{"gap-x":P()}],"gap-y":[{"gap-y":P()}],"justify-content":[{justify:[...X(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...X()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":X()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:P()}],px:[{px:P()}],py:[{py:P()}],ps:[{ps:P()}],pe:[{pe:P()}],pt:[{pt:P()}],pr:[{pr:P()}],pb:[{pb:P()}],pl:[{pl:P()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":P()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":P()}],"space-y-reverse":["space-y-reverse"],size:[{size:re()}],w:[{w:[c,"screen",...re()]}],"min-w":[{"min-w":[c,"screen","none",...re()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[A]},...re()]}],h:[{h:["screen","lh",...re()]}],"min-h":[{"min-h":["screen","lh","none",...re()]}],"max-h":[{"max-h":["screen","lh",...re()]}],"font-size":[{text:["base",o,ga,Vn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,Ce,au]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ou,ye]}],"font-family":[{font:[My,ye,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[u,Ce,ye]}],"line-clamp":[{"line-clamp":[Me,"none",Ce,au]}],leading:[{leading:[l,...P()]}],"list-image":[{"list-image":["none",Ce,ye]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ce,ye]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ue(),"wavy"]}],"text-decoration-thickness":[{decoration:[Me,"from-font","auto",Ce,Vn]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[Me,"auto",Ce,ye]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ce,ye]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ce,ye]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:y()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},bn,Ce,ye],radial:["",Ce,ye],conic:[bn,Ce,ye]},jy,Iy]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:j()}],"gradient-via-pos":[{via:j()}],"gradient-to-pos":[{to:j()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:L()}],"rounded-s":[{"rounded-s":L()}],"rounded-e":[{"rounded-e":L()}],"rounded-t":[{"rounded-t":L()}],"rounded-r":[{"rounded-r":L()}],"rounded-b":[{"rounded-b":L()}],"rounded-l":[{"rounded-l":L()}],"rounded-ss":[{"rounded-ss":L()}],"rounded-se":[{"rounded-se":L()}],"rounded-ee":[{"rounded-ee":L()}],"rounded-es":[{"rounded-es":L()}],"rounded-tl":[{"rounded-tl":L()}],"rounded-tr":[{"rounded-tr":L()}],"rounded-br":[{"rounded-br":L()}],"rounded-bl":[{"rounded-bl":L()}],"border-w":[{border:W()}],"border-w-x":[{"border-x":W()}],"border-w-y":[{"border-y":W()}],"border-w-s":[{"border-s":W()}],"border-w-e":[{"border-e":W()}],"border-w-t":[{"border-t":W()}],"border-w-r":[{"border-r":W()}],"border-w-b":[{"border-b":W()}],"border-w-l":[{"border-l":W()}],"divide-x":[{"divide-x":W()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":W()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ue(),"hidden","none"]}],"divide-style":[{divide:[...ue(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...ue(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Me,Ce,ye]}],"outline-w":[{outline:["",Me,ga,Vn]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",p,Xs,Zs]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",x,Xs,Zs]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:W()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[Me,Vn]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":W()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",g,Xs,Zs]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[Me,Ce,ye]}],"mix-blend":[{"mix-blend":[...le(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":le()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Me]}],"mask-image-linear-from-pos":[{"mask-linear-from":ce()}],"mask-image-linear-to-pos":[{"mask-linear-to":ce()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":ce()}],"mask-image-t-to-pos":[{"mask-t-to":ce()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":ce()}],"mask-image-r-to-pos":[{"mask-r-to":ce()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":ce()}],"mask-image-b-to-pos":[{"mask-b-to":ce()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":ce()}],"mask-image-l-to-pos":[{"mask-l-to":ce()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":ce()}],"mask-image-x-to-pos":[{"mask-x-to":ce()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":ce()}],"mask-image-y-to-pos":[{"mask-y-to":ce()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[Ce,ye]}],"mask-image-radial-from-pos":[{"mask-radial-from":ce()}],"mask-image-radial-to-pos":[{"mask-radial-to":ce()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":B()}],"mask-image-conic-pos":[{"mask-conic":[Me]}],"mask-image-conic-from-pos":[{"mask-conic-from":ce()}],"mask-image-conic-to-pos":[{"mask-conic-to":ce()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:y()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ce,ye]}],filter:[{filter:["","none",Ce,ye]}],blur:[{blur:te()}],brightness:[{brightness:[Me,Ce,ye]}],contrast:[{contrast:[Me,Ce,ye]}],"drop-shadow":[{"drop-shadow":["","none",w,Xs,Zs]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",Me,Ce,ye]}],"hue-rotate":[{"hue-rotate":[Me,Ce,ye]}],invert:[{invert:["",Me,Ce,ye]}],saturate:[{saturate:[Me,Ce,ye]}],sepia:[{sepia:["",Me,Ce,ye]}],"backdrop-filter":[{"backdrop-filter":["","none",Ce,ye]}],"backdrop-blur":[{"backdrop-blur":te()}],"backdrop-brightness":[{"backdrop-brightness":[Me,Ce,ye]}],"backdrop-contrast":[{"backdrop-contrast":[Me,Ce,ye]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Me,Ce,ye]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Me,Ce,ye]}],"backdrop-invert":[{"backdrop-invert":["",Me,Ce,ye]}],"backdrop-opacity":[{"backdrop-opacity":[Me,Ce,ye]}],"backdrop-saturate":[{"backdrop-saturate":[Me,Ce,ye]}],"backdrop-sepia":[{"backdrop-sepia":["",Me,Ce,ye]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":P()}],"border-spacing-x":[{"border-spacing-x":P()}],"border-spacing-y":[{"border-spacing-y":P()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ce,ye]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Me,"initial",Ce,ye]}],ease:[{ease:["linear","initial",S,Ce,ye]}],delay:[{delay:[Me,Ce,ye]}],animate:[{animate:["none",E,Ce,ye]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,Ce,ye]}],"perspective-origin":[{"perspective-origin":D()}],rotate:[{rotate:me()}],"rotate-x":[{"rotate-x":me()}],"rotate-y":[{"rotate-y":me()}],"rotate-z":[{"rotate-z":me()}],scale:[{scale:Ne()}],"scale-x":[{"scale-x":Ne()}],"scale-y":[{"scale-y":Ne()}],"scale-z":[{"scale-z":Ne()}],"scale-3d":["scale-3d"],skew:[{skew:$e()}],"skew-x":[{"skew-x":$e()}],"skew-y":[{"skew-y":$e()}],transform:[{transform:[Ce,ye,"","none","gpu","cpu"]}],"transform-origin":[{origin:D()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:nt()}],"translate-x":[{"translate-x":nt()}],"translate-y":[{"translate-y":nt()}],"translate-z":[{"translate-z":nt()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ce,ye]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ce,ye]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[Me,ga,Vn,au]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Vy=Cy(zy);function qe(...r){return Vy(Jh(r))}const gt=F.forwardRef(({className:r,type:a,...o},i)=>R.jsx("input",{type:a,className:qe("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:i,...o}));gt.displayName="Input";function nA(r,a){if(typeof r=="function")return r(a);r!=null&&(r.current=a)}function La(...r){return a=>{let o=!1;const i=r.map(u=>{const l=nA(u,a);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let u=0;u{let{children:l,...A}=i;fp(l)&&typeof $i=="function"&&(l=$i(l._payload));const c=F.Children.toArray(l),h=c.find($y);if(h){const d=h.props.children,p=c.map(x=>x===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:x);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,p):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}var qy=ju("Slot");function Qy(r){const a=F.forwardRef((o,i)=>{let{children:u,...l}=o;if(fp(u)&&typeof $i=="function"&&(u=$i(u._payload)),F.isValidElement(u)){const A=Yy(u),c=Ky(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var Gy=Symbol("radix.slottable");function $y(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===Gy}function Ky(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function Yy(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}const oA=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,aA=Jh,tl=(r,a)=>o=>{var i;if((a==null?void 0:a.variants)==null)return aA(r,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:u,defaultVariants:l}=a,A=Object.keys(u).map(d=>{const p=o==null?void 0:o[d],x=l==null?void 0:l[d];if(p===null)return null;const g=oA(p)||oA(x);return u[d][g]}),c=o&&Object.entries(o).reduce((d,p)=>{let[x,g]=p;return g===void 0||(d[x]=g),d},{}),h=a==null||(i=a.compoundVariants)===null||i===void 0?void 0:i.reduce((d,p)=>{let{class:x,className:g,...w}=p;return Object.entries(w).every(b=>{let[k,v]=b;return Array.isArray(v)?v.includes({...l,...c}[k]):{...l,...c}[k]===v})?[...d,x,g]:d},[]);return aA(r,A,h,o==null?void 0:o.class,o==null?void 0:o.className)},Zy=tl("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),zr=F.forwardRef(({className:r,variant:a,size:o,asChild:i=!1,...u},l)=>{const A=i?qy:"button";return R.jsx(A,{className:qe(Zy({variant:a,size:o,className:r})),ref:l,...u})});zr.displayName="Button";function Xy(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function Jy(r){try{localStorage.setItem("remoteterm-sortOrder",r)}catch{}}function e1({contacts:r,channels:a,activeConversation:o,onSelectConversation:i,onNewMessage:u,lastMessageTimes:l,unreadCounts:A,showCracker:c,crackerRunning:h,onToggleCracker:d,onMarkAllRead:p}){const[x,g]=F.useState(Xy),[w,b]=F.useState(""),k=()=>{const N=x==="alpha"?"recent":"alpha";g(N),Jy(N)},v=N=>{b(""),i(N)},S=(N,V)=>(o==null?void 0:o.type)===N&&(o==null?void 0:o.id)===V,E=(N,V)=>{const Q=tn(N,V);return A[Q]||0},C=(N,V)=>{const Q=tn(N,V);return l[Q]||0},B=a.reduce((N,V)=>(N.some(Q=>Q.name===V.name)||N.push(V),N),[]),D=r.filter(N=>N.public_key&&N.public_key.length>0).sort((N,V)=>N.name&&!V.name?-1:!N.name&&V.name?1:(N.name||"").localeCompare(V.name||"")).reduce((N,V)=>{const Q=Fo(V.public_key);return N.some(X=>Fo(X.public_key)===Q)||N.push(V),N},[]),T=[...B].sort((N,V)=>{if(N.name==="Public")return-1;if(V.name==="Public")return 1;if(x==="recent"){const Q=C("channel",N.key),X=C("channel",V.key);if(Q&&X)return X-Q;if(Q&&!X)return-1;if(!Q&&X)return 1}return N.name.localeCompare(V.name)}),I=[...D].sort((N,V)=>{const Q=N.type===wu,X=V.type===wu;if(Q&&!X)return 1;if(!Q&&X)return-1;if(Q&&X)return(N.name||N.public_key).localeCompare(V.name||V.public_key);if(x==="recent"){const ae=C("contact",N.public_key),J=C("contact",V.public_key);if(ae&&J)return J-ae;if(ae&&!J)return-1;if(!ae&&J)return 1}return(N.name||N.public_key).localeCompare(V.name||V.public_key)}),P=w.toLowerCase().trim(),H=P?T.filter(N=>N.name.toLowerCase().includes(P)):T,M=P?I.filter(N=>{var V;return((V=N.name)==null?void 0:V.toLowerCase().includes(P))||N.public_key.toLowerCase().includes(P)}):I;return R.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[R.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[R.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),R.jsx(zr,{variant:"ghost",size:"sm",onClick:u,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),R.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[R.jsx(gt,{type:"text",placeholder:"Search...",value:w,onChange:N=>b(N.target.value),className:"h-8 text-sm pr-8"}),w&&R.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>b(""),title:"Clear search",children:"×"})]}),R.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!P&&R.jsxs("div",{className:qe("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",S("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>v({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),R.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!P&&R.jsxs("div",{className:qe("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",c&&"bg-accent border-l-primary"),onClick:d,children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),R.jsxs("span",{className:"flex-1 truncate",children:[c?"Hide":"Show"," Cracker",R.jsxs("span",{className:qe("ml-1 text-xs",h?"text-green-500":"text-muted-foreground"),children:["(",h?"running":"stopped",")"]})]})]}),!P&&Object.keys(A).length>0&&R.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:p,children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),R.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),H.length>0&&R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[R.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),R.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:k,title:x==="alpha"?"Sort by recent":"Sort alphabetically",children:x==="alpha"?"A-Z":"⏱"})]}),H.map(N=>{const V=E("channel",N.key);return R.jsxs("div",{className:qe("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",S("channel",N.key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"channel",id:N.key,name:N.name}),children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),R.jsx("span",{className:"name flex-1 truncate",children:N.name}),V>0&&R.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},`chan-${N.key}`)})]}),M.length>0&&R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[R.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),H.length===0&&R.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:k,title:x==="alpha"?"Sort by recent":"Sort alphabetically",children:x==="alpha"?"A-Z":"⏱"})]}),M.map(N=>{const V=E("contact",N.public_key);return R.jsxs("div",{className:qe("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",S("contact",N.public_key)&&"bg-accent border-l-primary",V>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"contact",id:N.public_key,name:Kn(N.name,N.public_key)}),children:[R.jsx(Zh,{name:N.name,publicKey:N.public_key,size:24,contactType:N.type}),R.jsx("span",{className:"name flex-1 truncate",children:Kn(N.name,N.public_key)}),V>0&&R.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:V})]},N.public_key)})]}),M.length===0&&H.length===0&&R.jsx("div",{className:"p-5 text-center text-muted-foreground",children:P?"No matches found":"No conversations yet"})]})]})}function sA(r){const a=r.indexOf(": ");if(a>0&&a<50){const o=r.substring(0,a);if(!/[:\[\]]/.test(o))return{sender:o,content:r.substring(a+2)}}return{sender:null,content:r}}function iA(r){const a=new Date(r*1e3),o=new Date,i=a.toDateString()===o.toDateString(),u=a.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return i?u:`${a.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`}function t1({messages:r,contacts:a,loading:o,loadingOlder:i=!1,hasOlderMessages:u=!1,onSenderClick:l,onLoadOlder:A}){const c=F.useRef(null),h=F.useRef(0),d=F.useRef(!0),[p,x]=F.useState(!1),g=F.useRef({scrollTop:0,scrollHeight:0,wasNearTop:!1});F.useLayoutEffect(()=>{if(!c.current)return;const B=c.current,D=r.length-h.current;if(d.current&&r.length>0)B.scrollTop=B.scrollHeight,d.current=!1;else if(D>0&&h.current>0){const T=B.scrollHeight-g.current.scrollHeight;g.current.wasNearTop&&T>0?B.scrollTop=g.current.scrollTop+T:g.current.wasNearTop||(B.scrollTop=B.scrollHeight)}h.current=r.length},[r]),F.useEffect(()=>{r.length===0&&(d.current=!0,h.current=0,g.current={scrollTop:0,scrollHeight:0,wasNearTop:!1})},[r.length]);const w=F.useCallback(()=>{if(!c.current)return;const{scrollTop:B,scrollHeight:D,clientHeight:T}=c.current;g.current={scrollTop:B,scrollHeight:D,wasNearTop:B<150};const I=D-B-T;x(I>100),!(!A||i||!u)&&B<100&&A()},[A,i,u]),b=F.useCallback(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[]),k=B=>B&&a.find(D=>Kh(D.public_key,B))||null,v=B=>a.find(D=>D.name===B)||null;if(o)return R.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(r.length===0)return R.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const E=[...r.reduce((B,D)=>{const T=`${D.type}-${D.conversation_key}-${D.text}-${D.sender_timestamp}`;return B.find(P=>`${P.type}-${P.conversation_key}-${P.text}-${P.sender_timestamp}`===T)||B.push(D),B},[])].sort((B,D)=>B.received_at-D.received_at),C=(B,D)=>B.outgoing?"__outgoing__":B.type==="PRIV"&&B.conversation_key?B.conversation_key:D||"__unknown__";return R.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[R.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:c,onScroll:w,children:[i&&R.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!i&&u&&R.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),E.map((B,D)=>{var q;const{sender:T,content:I}=sA(B.text),P=B.type==="PRIV"?k(B.conversation_key):null,H=B.outgoing?"You":(P==null?void 0:P.name)||T||((q=B.conversation_key)==null?void 0:q.slice(0,8))||"Unknown",M=!B.outgoing&&l&&H!=="Unknown",N=C(B,T),V=E[D-1],Q=V?C(V,sA(V.text).sender):null,X=!B.outgoing&&N!==Q,ae=D===0;let J=null,re="";if(!B.outgoing){if(B.type==="PRIV"&&B.conversation_key)J=(P==null?void 0:P.name)||null,re=B.conversation_key;else if(T){const oe=v(T);J=T,re=(oe==null?void 0:oe.public_key)||`name:${T}`}}return R.jsxs("div",{className:qe("flex items-start max-w-[85%]",B.outgoing&&"flex-row-reverse self-end",X&&!ae&&"mt-3"),children:[!B.outgoing&&R.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:X&&re&&R.jsx(Zh,{name:J,publicKey:re,size:32})}),R.jsxs("div",{className:qe("py-1.5 px-3 rounded-lg min-w-0",B.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[X&&R.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[M?R.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>l(H),title:`Mention ${H}`,children:H}):H,R.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:iA(B.sender_timestamp||B.received_at)})]}),R.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[I.split(` -`).map((oe,ee,y)=>R.jsxs("span",{children:[oe,ee({appendText:g=>{var w;A(b=>b+g),(w=d.current)==null||w.focus()}}));const p=F.useCallback(async g=>{g.preventDefault();const w=l.trim();if(!(!w||c||o)){h(!0);try{await a(w),A("")}catch(b){console.error("Failed to send message:",b)}finally{h(!1)}}},[l,c,o,a]),x=F.useCallback(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),p(g))},[p]);return R.jsxs("form",{className:"px-4 py-3 border-t border-border flex gap-2",onSubmit:p,children:[R.jsx(gt,{ref:d,type:"text",value:l,onChange:g=>A(g.target.value),onKeyDown:x,placeholder:i||"Type a message...",disabled:o||c,className:"flex-1"}),R.jsx(zr,{type:"submit",disabled:o||c||!l.trim(),children:c?"Sending...":"Send"})]})});function kt(r,a,{checkForDefaultPrevented:o=!0}={}){return function(u){if(r==null||r(u),o===!1||!u.defaultPrevented)return a==null?void 0:a(u)}}function n1(r,a){const o=F.createContext(a),i=l=>{const{children:A,...c}=l,h=F.useMemo(()=>c,Object.values(c));return R.jsx(o.Provider,{value:h,children:A})};i.displayName=r+"Provider";function u(l){const A=F.useContext(o);if(A)return A;if(a!==void 0)return a;throw new Error(`\`${l}\` must be used within \`${r}\``)}return[i,u]}function za(r,a=[]){let o=[];function i(l,A){const c=F.createContext(A),h=o.length;o=[...o,A];const d=x=>{var S;const{scope:g,children:w,...b}=x,k=((S=g==null?void 0:g[r])==null?void 0:S[h])||c,v=F.useMemo(()=>b,Object.values(b));return R.jsx(k.Provider,{value:v,children:w})};d.displayName=l+"Provider";function p(x,g){var k;const w=((k=g==null?void 0:g[r])==null?void 0:k[h])||c,b=F.useContext(w);if(b)return b;if(A!==void 0)return A;throw new Error(`\`${x}\` must be used within \`${l}\``)}return[d,p]}const u=()=>{const l=o.map(A=>F.createContext(A));return function(c){const h=(c==null?void 0:c[r])||l;return F.useMemo(()=>({[`__scope${r}`]:{...c,[r]:h}}),[c,h])}};return u.scopeName=r,[i,o1(u,...a)]}function o1(...r){const a=r[0];if(r.length===1)return a;const o=()=>{const i=r.map(u=>({useScope:u(),scopeName:u.scopeName}));return function(l){const A=i.reduce((c,{useScope:h,scopeName:d})=>{const x=h(l)[`__scope${d}`];return{...c,...x}},{});return F.useMemo(()=>({[`__scope${a.scopeName}`]:A}),[A])}};return o.scopeName=a.scopeName,o}var Ro=globalThis!=null&&globalThis.document?F.useLayoutEffect:()=>{},a1=Iu[" useId ".trim().toString()]||(()=>{}),s1=0;function Ma(r){const[a,o]=F.useState(a1());return Ro(()=>{o(i=>i??String(s1++))},[r]),a?`radix-${a}`:""}var i1=Iu[" useInsertionEffect ".trim().toString()]||Ro;function rl({prop:r,defaultProp:a,onChange:o=()=>{},caller:i}){const[u,l,A]=l1({defaultProp:a,onChange:o}),c=r!==void 0,h=c?r:u;{const p=F.useRef(r!==void 0);F.useEffect(()=>{const x=p.current;x!==c&&console.warn(`${i} is changing from ${x?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),p.current=c},[c,i])}const d=F.useCallback(p=>{var x;if(c){const g=c1(p)?p(r):p;g!==r&&((x=A.current)==null||x.call(A,g))}else l(p)},[c,r,l,A]);return[h,d]}function l1({defaultProp:r,onChange:a}){const[o,i]=F.useState(r),u=F.useRef(o),l=F.useRef(a);return i1(()=>{l.current=a},[a]),F.useEffect(()=>{var A;u.current!==o&&((A=l.current)==null||A.call(l,o),u.current=o)},[o,u]),[o,i,l]}function c1(r){return typeof r=="function"}function u1(r){const a=d1(r),o=F.forwardRef((i,u)=>{const{children:l,...A}=i,c=F.Children.toArray(l),h=c.find(A1);if(h){const d=h.props.children,p=c.map(x=>x===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:x);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,p):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}function d1(r){const a=F.forwardRef((o,i)=>{const{children:u,...l}=o;if(F.isValidElement(u)){const A=p1(u),c=h1(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var f1=Symbol("radix.slottable");function A1(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===f1}function h1(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function p1(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}var x1=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ft=x1.reduce((r,a)=>{const o=u1(`Primitive.${a}`),i=F.forwardRef((u,l)=>{const{asChild:A,...c}=u,h=A?o:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(h,{...c,ref:l})});return i.displayName=`Primitive.${a}`,{...r,[a]:i}},{});function m1(r,a){r&&Gh.flushSync(()=>r.dispatchEvent(a))}function To(r){const a=F.useRef(r);return F.useEffect(()=>{a.current=r}),F.useMemo(()=>(...o)=>{var i;return(i=a.current)==null?void 0:i.call(a,...o)},[])}function g1(r,a=globalThis==null?void 0:globalThis.document){const o=To(r);F.useEffect(()=>{const i=u=>{u.key==="Escape"&&o(u)};return a.addEventListener("keydown",i,{capture:!0}),()=>a.removeEventListener("keydown",i,{capture:!0})},[o,a])}var v1="DismissableLayer",Eu="dismissableLayer.update",y1="dismissableLayer.pointerDownOutside",C1="dismissableLayer.focusOutside",lA,Ap=F.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),hp=F.forwardRef((r,a)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:u,onFocusOutside:l,onInteractOutside:A,onDismiss:c,...h}=r,d=F.useContext(Ap),[p,x]=F.useState(null),g=(p==null?void 0:p.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,w]=F.useState({}),b=gr(a,I=>x(I)),k=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),S=k.indexOf(v),E=p?k.indexOf(p):-1,C=d.layersWithOutsidePointerEventsDisabled.size>0,B=E>=S,D=E1(I=>{const P=I.target,H=[...d.branches].some(M=>M.contains(P));!B||H||(u==null||u(I),A==null||A(I),I.defaultPrevented||c==null||c())},g),T=k1(I=>{const P=I.target;[...d.branches].some(M=>M.contains(P))||(l==null||l(I),A==null||A(I),I.defaultPrevented||c==null||c())},g);return g1(I=>{E===d.layers.size-1&&(i==null||i(I),!I.defaultPrevented&&c&&(I.preventDefault(),c()))},g),F.useEffect(()=>{if(p)return o&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(lA=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(p)),d.layers.add(p),cA(),()=>{o&&d.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=lA)}},[p,g,o,d]),F.useEffect(()=>()=>{p&&(d.layers.delete(p),d.layersWithOutsidePointerEventsDisabled.delete(p),cA())},[p,d]),F.useEffect(()=>{const I=()=>w({});return document.addEventListener(Eu,I),()=>document.removeEventListener(Eu,I)},[]),R.jsx(Ft.div,{...h,ref:b,style:{pointerEvents:C?B?"auto":"none":void 0,...r.style},onFocusCapture:kt(r.onFocusCapture,T.onFocusCapture),onBlurCapture:kt(r.onBlurCapture,T.onBlurCapture),onPointerDownCapture:kt(r.onPointerDownCapture,D.onPointerDownCapture)})});hp.displayName=v1;var w1="DismissableLayerBranch",b1=F.forwardRef((r,a)=>{const o=F.useContext(Ap),i=F.useRef(null),u=gr(a,i);return F.useEffect(()=>{const l=i.current;if(l)return o.branches.add(l),()=>{o.branches.delete(l)}},[o.branches]),R.jsx(Ft.div,{...r,ref:u})});b1.displayName=w1;function E1(r,a=globalThis==null?void 0:globalThis.document){const o=To(r),i=F.useRef(!1),u=F.useRef(()=>{});return F.useEffect(()=>{const l=c=>{if(c.target&&!i.current){let h=function(){pp(y1,o,d,{discrete:!0})};const d={originalEvent:c};c.pointerType==="touch"?(a.removeEventListener("click",u.current),u.current=h,a.addEventListener("click",u.current,{once:!0})):h()}else a.removeEventListener("click",u.current);i.current=!1},A=window.setTimeout(()=>{a.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(A),a.removeEventListener("pointerdown",l),a.removeEventListener("click",u.current)}},[a,o]),{onPointerDownCapture:()=>i.current=!0}}function k1(r,a=globalThis==null?void 0:globalThis.document){const o=To(r),i=F.useRef(!1);return F.useEffect(()=>{const u=l=>{l.target&&!i.current&&pp(C1,o,{originalEvent:l},{discrete:!1})};return a.addEventListener("focusin",u),()=>a.removeEventListener("focusin",u)},[a,o]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}function cA(){const r=new CustomEvent(Eu);document.dispatchEvent(r)}function pp(r,a,o,{discrete:i}){const u=o.originalEvent.target,l=new CustomEvent(r,{bubbles:!1,cancelable:!0,detail:o});a&&u.addEventListener(r,a,{once:!0}),i?m1(u,l):u.dispatchEvent(l)}var su="focusScope.autoFocusOnMount",iu="focusScope.autoFocusOnUnmount",uA={bubbles:!1,cancelable:!0},S1="FocusScope",xp=F.forwardRef((r,a)=>{const{loop:o=!1,trapped:i=!1,onMountAutoFocus:u,onUnmountAutoFocus:l,...A}=r,[c,h]=F.useState(null),d=To(u),p=To(l),x=F.useRef(null),g=gr(a,k=>h(k)),w=F.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;F.useEffect(()=>{if(i){let k=function(C){if(w.paused||!c)return;const B=C.target;c.contains(B)?x.current=B:En(x.current,{select:!0})},v=function(C){if(w.paused||!c)return;const B=C.relatedTarget;B!==null&&(c.contains(B)||En(x.current,{select:!0}))},S=function(C){if(document.activeElement===document.body)for(const D of C)D.removedNodes.length>0&&En(c)};document.addEventListener("focusin",k),document.addEventListener("focusout",v);const E=new MutationObserver(S);return c&&E.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",k),document.removeEventListener("focusout",v),E.disconnect()}}},[i,c,w.paused]),F.useEffect(()=>{if(c){fA.add(w);const k=document.activeElement;if(!c.contains(k)){const S=new CustomEvent(su,uA);c.addEventListener(su,d),c.dispatchEvent(S),S.defaultPrevented||(B1(T1(mp(c)),{select:!0}),document.activeElement===k&&En(c))}return()=>{c.removeEventListener(su,d),setTimeout(()=>{const S=new CustomEvent(iu,uA);c.addEventListener(iu,p),c.dispatchEvent(S),S.defaultPrevented||En(k??document.body,{select:!0}),c.removeEventListener(iu,p),fA.remove(w)},0)}}},[c,d,p,w]);const b=F.useCallback(k=>{if(!o&&!i||w.paused)return;const v=k.key==="Tab"&&!k.altKey&&!k.ctrlKey&&!k.metaKey,S=document.activeElement;if(v&&S){const E=k.currentTarget,[C,B]=_1(E);C&&B?!k.shiftKey&&S===B?(k.preventDefault(),o&&En(C,{select:!0})):k.shiftKey&&S===C&&(k.preventDefault(),o&&En(B,{select:!0})):S===E&&k.preventDefault()}},[o,i,w.paused]);return R.jsx(Ft.div,{tabIndex:-1,...A,ref:g,onKeyDown:b})});xp.displayName=S1;function B1(r,{select:a=!1}={}){const o=document.activeElement;for(const i of r)if(En(i,{select:a}),document.activeElement!==o)return}function _1(r){const a=mp(r),o=dA(a,r),i=dA(a.reverse(),r);return[o,i]}function mp(r){const a=[],o=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const u=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||u?NodeFilter.FILTER_SKIP:i.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)a.push(o.currentNode);return a}function dA(r,a){for(const o of r)if(!D1(o,{upTo:a}))return o}function D1(r,{upTo:a}){if(getComputedStyle(r).visibility==="hidden")return!0;for(;r;){if(a!==void 0&&r===a)return!1;if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}function F1(r){return r instanceof HTMLInputElement&&"select"in r}function En(r,{select:a=!1}={}){if(r&&r.focus){const o=document.activeElement;r.focus({preventScroll:!0}),r!==o&&F1(r)&&a&&r.select()}}var fA=R1();function R1(){let r=[];return{add(a){const o=r[0];a!==o&&(o==null||o.pause()),r=AA(r,a),r.unshift(a)},remove(a){var o;r=AA(r,a),(o=r[0])==null||o.resume()}}}function AA(r,a){const o=[...r],i=o.indexOf(a);return i!==-1&&o.splice(i,1),o}function T1(r){return r.filter(a=>a.tagName!=="A")}var P1="Portal",gp=F.forwardRef((r,a)=>{var c;const{container:o,...i}=r,[u,l]=F.useState(!1);Ro(()=>l(!0),[]);const A=o||u&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return A?$h.createPortal(R.jsx(Ft.div,{...i,ref:a}),A):null});gp.displayName=P1;function N1(r,a){return F.useReducer((o,i)=>a[o][i]??o,r)}var Mo=r=>{const{present:a,children:o}=r,i=I1(a),u=typeof o=="function"?o({present:i.isPresent}):F.Children.only(o),l=gr(i.ref,M1(u));return typeof o=="function"||i.isPresent?F.cloneElement(u,{ref:l}):null};Mo.displayName="Presence";function I1(r){const[a,o]=F.useState(),i=F.useRef(null),u=F.useRef(r),l=F.useRef("none"),A=r?"mounted":"unmounted",[c,h]=N1(A,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return F.useEffect(()=>{const d=Js(i.current);l.current=c==="mounted"?d:"none"},[c]),Ro(()=>{const d=i.current,p=u.current;if(p!==r){const g=l.current,w=Js(d);r?h("MOUNT"):w==="none"||(d==null?void 0:d.display)==="none"?h("UNMOUNT"):h(p&&g!==w?"ANIMATION_OUT":"UNMOUNT"),u.current=r}},[r,h]),Ro(()=>{if(a){let d;const p=a.ownerDocument.defaultView??window,x=w=>{const k=Js(i.current).includes(CSS.escape(w.animationName));if(w.target===a&&k&&(h("ANIMATION_END"),!u.current)){const v=a.style.animationFillMode;a.style.animationFillMode="forwards",d=p.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=v)})}},g=w=>{w.target===a&&(l.current=Js(i.current))};return a.addEventListener("animationstart",g),a.addEventListener("animationcancel",x),a.addEventListener("animationend",x),()=>{p.clearTimeout(d),a.removeEventListener("animationstart",g),a.removeEventListener("animationcancel",x),a.removeEventListener("animationend",x)}}else h("ANIMATION_END")},[a,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:F.useCallback(d=>{i.current=d?getComputedStyle(d):null,o(d)},[])}}function Js(r){return(r==null?void 0:r.animationName)||"none"}function M1(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}var lu=0;function O1(){F.useEffect(()=>{const r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",r[0]??hA()),document.body.insertAdjacentElement("beforeend",r[1]??hA()),lu++,()=>{lu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),lu--}},[])}function hA(){const r=document.createElement("span");return r.setAttribute("data-radix-focus-guard",""),r.tabIndex=0,r.style.outline="none",r.style.opacity="0",r.style.position="fixed",r.style.pointerEvents="none",r}var Lr=function(){return Lr=Object.assign||function(a){for(var o,i=1,u=arguments.length;i"u")return e2;var a=t2(r),o=document.documentElement.clientWidth,i=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,i-o+a[2]-a[0])}},n2=wp(),_o="data-scroll-locked",o2=function(r,a,o,i){var u=r.left,l=r.top,A=r.right,c=r.gap;return o===void 0&&(o="margin"),` + */const mv=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Qh=Mu("x",mv);var Gh=Wh();const $h=Po(Gh);function gv(r){if(typeof document>"u")return;let a=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",a.appendChild(o),o.styleSheet?o.styleSheet.cssText=r:o.appendChild(document.createTextNode(r))}const vv=r=>{switch(r){case"success":return wv;case"info":return Ev;case"warning":return bv;case"error":return kv;default:return null}},yv=Array(12).fill(0),Cv=({visible:r,className:a})=>he.createElement("div",{className:["sonner-loading-wrapper",a].filter(Boolean).join(" "),"data-visible":r},he.createElement("div",{className:"sonner-spinner"},yv.map((o,i)=>he.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${i}`})))),wv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),bv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),Ev=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),kv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},he.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),Sv=he.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},he.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),he.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),Bv=()=>{const[r,a]=he.useState(document.hidden);return he.useEffect(()=>{const o=()=>{a(document.hidden)};return document.addEventListener("visibilitychange",o),()=>window.removeEventListener("visibilitychange",o)},[]),r};let vu=1;class _v{constructor(){this.subscribe=a=>(this.subscribers.push(a),()=>{const o=this.subscribers.indexOf(a);this.subscribers.splice(o,1)}),this.publish=a=>{this.subscribers.forEach(o=>o(a))},this.addToast=a=>{this.publish(a),this.toasts=[...this.toasts,a]},this.create=a=>{var o;const{message:i,...u}=a,l=typeof(a==null?void 0:a.id)=="number"||((o=a.id)==null?void 0:o.length)>0?a.id:vu++,A=this.toasts.find(h=>h.id===l),c=a.dismissible===void 0?!0:a.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),A?this.toasts=this.toasts.map(h=>h.id===l?(this.publish({...h,...a,id:l,title:i}),{...h,...a,id:l,dismissible:c,title:i}):h):this.addToast({title:i,...u,dismissible:c,id:l}),l},this.dismiss=a=>(a?(this.dismissedToasts.add(a),requestAnimationFrame(()=>this.subscribers.forEach(o=>o({id:a,dismiss:!0})))):this.toasts.forEach(o=>{this.subscribers.forEach(i=>i({id:o.id,dismiss:!0}))}),a),this.message=(a,o)=>this.create({...o,message:a}),this.error=(a,o)=>this.create({...o,message:a,type:"error"}),this.success=(a,o)=>this.create({...o,type:"success",message:a}),this.info=(a,o)=>this.create({...o,type:"info",message:a}),this.warning=(a,o)=>this.create({...o,type:"warning",message:a}),this.loading=(a,o)=>this.create({...o,type:"loading",message:a}),this.promise=(a,o)=>{if(!o)return;let i;o.loading!==void 0&&(i=this.create({...o,promise:a,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));const u=Promise.resolve(a instanceof Function?a():a);let l=i!==void 0,A;const c=u.then(async d=>{if(A=["resolve",d],he.isValidElement(d))l=!1,this.create({id:i,type:"default",message:d});else if(Fv(d)&&!d.ok){l=!1;const p=typeof o.error=="function"?await o.error(`HTTP error! status: ${d.status}`):o.error,g=typeof o.description=="function"?await o.description(`HTTP error! status: ${d.status}`):o.description,w=typeof p=="object"&&!he.isValidElement(p)?p:{message:p};this.create({id:i,type:"error",description:g,...w})}else if(d instanceof Error){l=!1;const p=typeof o.error=="function"?await o.error(d):o.error,g=typeof o.description=="function"?await o.description(d):o.description,w=typeof p=="object"&&!he.isValidElement(p)?p:{message:p};this.create({id:i,type:"error",description:g,...w})}else if(o.success!==void 0){l=!1;const p=typeof o.success=="function"?await o.success(d):o.success,g=typeof o.description=="function"?await o.description(d):o.description,w=typeof p=="object"&&!he.isValidElement(p)?p:{message:p};this.create({id:i,type:"success",description:g,...w})}}).catch(async d=>{if(A=["reject",d],o.error!==void 0){l=!1;const x=typeof o.error=="function"?await o.error(d):o.error,p=typeof o.description=="function"?await o.description(d):o.description,C=typeof x=="object"&&!he.isValidElement(x)?x:{message:x};this.create({id:i,type:"error",description:p,...C})}}).finally(()=>{l&&(this.dismiss(i),i=void 0),o.finally==null||o.finally.call(o)}),h=()=>new Promise((d,x)=>c.then(()=>A[0]==="reject"?x(A[1]):d(A[1])).catch(x));return typeof i!="string"&&typeof i!="number"?{unwrap:h}:Object.assign(i,{unwrap:h})},this.custom=(a,o)=>{const i=(o==null?void 0:o.id)||vu++;return this.create({jsx:a(i),id:i,...o}),i},this.getActiveToasts=()=>this.toasts.filter(a=>!this.dismissedToasts.has(a.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const nr=new _v,Dv=(r,a)=>{const o=(a==null?void 0:a.id)||vu++;return nr.addToast({title:r,...a,id:o}),o},Fv=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",Rv=Dv,Tv=()=>nr.toasts,Pv=()=>nr.getActiveToasts(),Ia=Object.assign(Rv,{success:nr.success,info:nr.info,warning:nr.warning,error:nr.error,custom:nr.custom,message:nr.message,promise:nr.promise,dismiss:nr.dismiss,loading:nr.loading},{getHistory:Tv,getToasts:Pv});gv("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function Ys(r){return r.label!==void 0}const Nv=3,Iv="24px",Mv="16px",Kf=4e3,Ov=356,jv=14,Hv=45,Lv=200;function Or(...r){return r.filter(Boolean).join(" ")}function zv(r){const[a,o]=r.split("-"),i=[];return a&&i.push(a),o&&i.push(o),i}const Vv=r=>{var a,o,i,u,l,A,c,h,d;const{invert:x,toast:p,unstyled:g,interacting:C,setHeights:w,visibleToasts:b,heights:v,index:S,toasts:E,expanded:y,removeToast:B,defaultRichColors:D,closeButton:T,style:M,cancelButtonStyle:P,actionButtonStyle:j,className:I="",descriptionClassName:N="",duration:z,position:Q,gap:X,expandByDefault:se,classNames:J,icons:ne,closeButtonAriaLabel:q="Close toast"}=r,[ae,ee]=he.useState(null),[k,H]=he.useState(null),[V,W]=he.useState(!1),[de,re]=he.useState(!1),[le,te]=he.useState(!1),[Se,Me]=he.useState(!1),[Ne,Oe]=he.useState(!1),[We,Re]=he.useState(0),[Bt,xt]=he.useState(0),_t=he.useRef(p.duration||z||Kf),qt=he.useRef(null),ct=he.useRef(null),Nt=S===0,rt=S+1<=b,Qe=p.type,ut=p.dismissible!==!1,$t=p.className||"",vr=p.descriptionClassName||"",yt=he.useMemo(()=>v.findIndex(Ee=>Ee.toastId===p.id)||0,[v,p.id]),Ht=he.useMemo(()=>{var Ee;return(Ee=p.closeButton)!=null?Ee:T},[p.closeButton,T]),Kt=he.useMemo(()=>p.duration||z||Kf,[p.duration,z]),or=he.useRef(0),Ct=he.useRef(0),at=he.useRef(0),Y=he.useRef(null),[fe,we]=Q.split("-"),$=he.useMemo(()=>v.reduce((Ee,ze,qe)=>qe>=yt?Ee:Ee+ze.height,0),[v,yt]),oe=Bv(),pe=p.invert||x,Te=Qe==="loading";Ct.current=he.useMemo(()=>yt*X+$,[yt,$]),he.useEffect(()=>{_t.current=Kt},[Kt]),he.useEffect(()=>{W(!0)},[]),he.useEffect(()=>{const Ee=ct.current;if(Ee){const ze=Ee.getBoundingClientRect().height;return xt(ze),w(qe=>[{toastId:p.id,height:ze,position:p.position},...qe]),()=>w(qe=>qe.filter(dt=>dt.toastId!==p.id))}},[w,p.id]),he.useLayoutEffect(()=>{if(!V)return;const Ee=ct.current,ze=Ee.style.height;Ee.style.height="auto";const qe=Ee.getBoundingClientRect().height;Ee.style.height=ze,xt(qe),w(dt=>dt.find(Ve=>Ve.toastId===p.id)?dt.map(Ve=>Ve.toastId===p.id?{...Ve,height:qe}:Ve):[{toastId:p.id,height:qe,position:p.position},...dt])},[V,p.title,p.description,w,p.id,p.jsx,p.action,p.cancel]);const De=he.useCallback(()=>{re(!0),Re(Ct.current),w(Ee=>Ee.filter(ze=>ze.toastId!==p.id)),setTimeout(()=>{B(p)},Lv)},[p,B,w,Ct]);he.useEffect(()=>{if(p.promise&&Qe==="loading"||p.duration===1/0||p.type==="loading")return;let Ee;return y||C||oe?(()=>{if(at.current{_t.current!==1/0&&(or.current=new Date().getTime(),Ee=setTimeout(()=>{p.onAutoClose==null||p.onAutoClose.call(p,p),De()},_t.current))})(),()=>clearTimeout(Ee)},[y,C,p,Qe,oe,De]),he.useEffect(()=>{p.delete&&(De(),p.onDismiss==null||p.onDismiss.call(p,p))},[De,p.delete]);function je(){var Ee;if(ne!=null&&ne.loading){var ze;return he.createElement("div",{className:Or(J==null?void 0:J.loader,p==null||(ze=p.classNames)==null?void 0:ze.loader,"sonner-loader"),"data-visible":Qe==="loading"},ne.loading)}return he.createElement(Cv,{className:Or(J==null?void 0:J.loader,p==null||(Ee=p.classNames)==null?void 0:Ee.loader),visible:Qe==="loading"})}const Pe=p.icon||(ne==null?void 0:ne[Qe])||vv(Qe);var Ie,wt;return he.createElement("li",{tabIndex:0,ref:ct,className:Or(I,$t,J==null?void 0:J.toast,p==null||(a=p.classNames)==null?void 0:a.toast,J==null?void 0:J.default,J==null?void 0:J[Qe],p==null||(o=p.classNames)==null?void 0:o[Qe]),"data-sonner-toast":"","data-rich-colors":(Ie=p.richColors)!=null?Ie:D,"data-styled":!(p.jsx||p.unstyled||g),"data-mounted":V,"data-promise":!!p.promise,"data-swiped":Ne,"data-removed":de,"data-visible":rt,"data-y-position":fe,"data-x-position":we,"data-index":S,"data-front":Nt,"data-swiping":le,"data-dismissible":ut,"data-type":Qe,"data-invert":pe,"data-swipe-out":Se,"data-swipe-direction":k,"data-expanded":!!(y||se&&V),"data-testid":p.testId,style:{"--index":S,"--toasts-before":S,"--z-index":E.length-S,"--offset":`${de?We:Ct.current}px`,"--initial-height":se?"auto":`${Bt}px`,...M,...p.style},onDragEnd:()=>{te(!1),ee(null),Y.current=null},onPointerDown:Ee=>{Ee.button!==2&&(Te||!ut||(qt.current=new Date,Re(Ct.current),Ee.target.setPointerCapture(Ee.pointerId),Ee.target.tagName!=="BUTTON"&&(te(!0),Y.current={x:Ee.clientX,y:Ee.clientY})))},onPointerUp:()=>{var Ee,ze,qe;if(Se||!ut)return;Y.current=null;const dt=Number(((Ee=ct.current)==null?void 0:Ee.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),dr=Number(((ze=ct.current)==null?void 0:ze.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Ve=new Date().getTime()-((qe=qt.current)==null?void 0:qe.getTime()),Je=ae==="x"?dt:dr,yr=Math.abs(Je)/Ve;if(Math.abs(Je)>=Hv||yr>.11){Re(Ct.current),p.onDismiss==null||p.onDismiss.call(p,p),H(ae==="x"?dt>0?"right":"left":dr>0?"down":"up"),De(),Me(!0);return}else{var Ye,ft;(Ye=ct.current)==null||Ye.style.setProperty("--swipe-amount-x","0px"),(ft=ct.current)==null||ft.style.setProperty("--swipe-amount-y","0px")}Oe(!1),te(!1),ee(null)},onPointerMove:Ee=>{var ze,qe,dt;if(!Y.current||!ut||((ze=window.getSelection())==null?void 0:ze.toString().length)>0)return;const Ve=Ee.clientY-Y.current.y,Je=Ee.clientX-Y.current.x;var yr;const Ye=(yr=r.swipeDirections)!=null?yr:zv(Q);!ae&&(Math.abs(Je)>1||Math.abs(Ve)>1)&&ee(Math.abs(Je)>Math.abs(Ve)?"x":"y");let ft={x:0,y:0};const Cr=Yt=>1/(1.5+Math.abs(Yt)/20);if(ae==="y"){if(Ye.includes("top")||Ye.includes("bottom"))if(Ye.includes("top")&&Ve<0||Ye.includes("bottom")&&Ve>0)ft.y=Ve;else{const Yt=Ve*Cr(Ve);ft.y=Math.abs(Yt)0)ft.x=Je;else{const Yt=Je*Cr(Je);ft.x=Math.abs(Yt)0||Math.abs(ft.y)>0)&&Oe(!0),(qe=ct.current)==null||qe.style.setProperty("--swipe-amount-x",`${ft.x}px`),(dt=ct.current)==null||dt.style.setProperty("--swipe-amount-y",`${ft.y}px`)}},Ht&&!p.jsx&&Qe!=="loading"?he.createElement("button",{"aria-label":q,"data-disabled":Te,"data-close-button":!0,onClick:Te||!ut?()=>{}:()=>{De(),p.onDismiss==null||p.onDismiss.call(p,p)},className:Or(J==null?void 0:J.closeButton,p==null||(i=p.classNames)==null?void 0:i.closeButton)},(wt=ne==null?void 0:ne.close)!=null?wt:Sv):null,(Qe||p.icon||p.promise)&&p.icon!==null&&((ne==null?void 0:ne[Qe])!==null||p.icon)?he.createElement("div",{"data-icon":"",className:Or(J==null?void 0:J.icon,p==null||(u=p.classNames)==null?void 0:u.icon)},p.promise||p.type==="loading"&&!p.icon?p.icon||je():null,p.type!=="loading"?Pe:null):null,he.createElement("div",{"data-content":"",className:Or(J==null?void 0:J.content,p==null||(l=p.classNames)==null?void 0:l.content)},he.createElement("div",{"data-title":"",className:Or(J==null?void 0:J.title,p==null||(A=p.classNames)==null?void 0:A.title)},p.jsx?p.jsx:typeof p.title=="function"?p.title():p.title),p.description?he.createElement("div",{"data-description":"",className:Or(N,vr,J==null?void 0:J.description,p==null||(c=p.classNames)==null?void 0:c.description)},typeof p.description=="function"?p.description():p.description):null),he.isValidElement(p.cancel)?p.cancel:p.cancel&&Ys(p.cancel)?he.createElement("button",{"data-button":!0,"data-cancel":!0,style:p.cancelButtonStyle||P,onClick:Ee=>{Ys(p.cancel)&&ut&&(p.cancel.onClick==null||p.cancel.onClick.call(p.cancel,Ee),De())},className:Or(J==null?void 0:J.cancelButton,p==null||(h=p.classNames)==null?void 0:h.cancelButton)},p.cancel.label):null,he.isValidElement(p.action)?p.action:p.action&&Ys(p.action)?he.createElement("button",{"data-button":!0,"data-action":!0,style:p.actionButtonStyle||j,onClick:Ee=>{Ys(p.action)&&(p.action.onClick==null||p.action.onClick.call(p.action,Ee),!Ee.defaultPrevented&&De())},className:Or(J==null?void 0:J.actionButton,p==null||(d=p.classNames)==null?void 0:d.actionButton)},p.action.label):null)};function Yf(){if(typeof window>"u"||typeof document>"u")return"ltr";const r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function Uv(r,a){const o={};return[r,a].forEach((i,u)=>{const l=u===1,A=l?"--mobile-offset":"--offset",c=l?Mv:Iv;function h(d){["top","right","bottom","left"].forEach(x=>{o[`${A}-${x}`]=typeof d=="number"?`${d}px`:d})}typeof i=="number"||typeof i=="string"?h(i):typeof i=="object"?["top","right","bottom","left"].forEach(d=>{i[d]===void 0?o[`${A}-${d}`]=c:o[`${A}-${d}`]=typeof i[d]=="number"?`${i[d]}px`:i[d]}):h(c)}),o}const Wv=he.forwardRef(function(a,o){const{id:i,invert:u,position:l="bottom-right",hotkey:A=["altKey","KeyT"],expand:c,closeButton:h,className:d,offset:x,mobileOffset:p,theme:g="light",richColors:C,duration:w,style:b,visibleToasts:v=Nv,toastOptions:S,dir:E=Yf(),gap:y=jv,icons:B,containerAriaLabel:D="Notifications"}=a,[T,M]=he.useState([]),P=he.useMemo(()=>i?T.filter(V=>V.toasterId===i):T.filter(V=>!V.toasterId),[T,i]),j=he.useMemo(()=>Array.from(new Set([l].concat(P.filter(V=>V.position).map(V=>V.position)))),[P,l]),[I,N]=he.useState([]),[z,Q]=he.useState(!1),[X,se]=he.useState(!1),[J,ne]=he.useState(g!=="system"?g:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),q=he.useRef(null),ae=A.join("+").replace(/Key/g,"").replace(/Digit/g,""),ee=he.useRef(null),k=he.useRef(!1),H=he.useCallback(V=>{M(W=>{var de;return(de=W.find(re=>re.id===V.id))!=null&&de.delete||nr.dismiss(V.id),W.filter(({id:re})=>re!==V.id)})},[]);return he.useEffect(()=>nr.subscribe(V=>{if(V.dismiss){requestAnimationFrame(()=>{M(W=>W.map(de=>de.id===V.id?{...de,delete:!0}:de))});return}setTimeout(()=>{$h.flushSync(()=>{M(W=>{const de=W.findIndex(re=>re.id===V.id);return de!==-1?[...W.slice(0,de),{...W[de],...V},...W.slice(de+1)]:[V,...W]})})})}),[T]),he.useEffect(()=>{if(g!=="system"){ne(g);return}if(g==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?ne("dark"):ne("light")),typeof window>"u")return;const V=window.matchMedia("(prefers-color-scheme: dark)");try{V.addEventListener("change",({matches:W})=>{ne(W?"dark":"light")})}catch{V.addListener(({matches:de})=>{try{ne(de?"dark":"light")}catch(re){console.error(re)}})}},[g]),he.useEffect(()=>{T.length<=1&&Q(!1)},[T]),he.useEffect(()=>{const V=W=>{var de;if(A.every(te=>W[te]||W.code===te)){var le;Q(!0),(le=q.current)==null||le.focus()}W.code==="Escape"&&(document.activeElement===q.current||(de=q.current)!=null&&de.contains(document.activeElement))&&Q(!1)};return document.addEventListener("keydown",V),()=>document.removeEventListener("keydown",V)},[A]),he.useEffect(()=>{if(q.current)return()=>{ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null,k.current=!1)}},[q.current]),he.createElement("section",{ref:o,"aria-label":`${D} ${ae}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},j.map((V,W)=>{var de;const[re,le]=V.split("-");return P.length?he.createElement("ol",{key:V,dir:E==="auto"?Yf():E,tabIndex:-1,ref:q,className:d,"data-sonner-toaster":!0,"data-sonner-theme":J,"data-y-position":re,"data-x-position":le,style:{"--front-toast-height":`${((de=I[0])==null?void 0:de.height)||0}px`,"--width":`${Ov}px`,"--gap":`${y}px`,...b,...Uv(x,p)},onBlur:te=>{k.current&&!te.currentTarget.contains(te.relatedTarget)&&(k.current=!1,ee.current&&(ee.current.focus({preventScroll:!0}),ee.current=null))},onFocus:te=>{te.target instanceof HTMLElement&&te.target.dataset.dismissible==="false"||k.current||(k.current=!0,ee.current=te.relatedTarget)},onMouseEnter:()=>Q(!0),onMouseMove:()=>Q(!0),onMouseLeave:()=>{X||Q(!1)},onDragEnd:()=>Q(!1),onPointerDown:te=>{te.target instanceof HTMLElement&&te.target.dataset.dismissible==="false"||se(!0)},onPointerUp:()=>se(!1)},P.filter(te=>!te.position&&W===0||te.position===V).map((te,Se)=>{var Me,Ne;return he.createElement(Vv,{key:te.id,icons:B,index:Se,toast:te,defaultRichColors:C,duration:(Me=S==null?void 0:S.duration)!=null?Me:w,className:S==null?void 0:S.className,descriptionClassName:S==null?void 0:S.descriptionClassName,invert:u,visibleToasts:v,closeButton:(Ne=S==null?void 0:S.closeButton)!=null?Ne:h,interacting:X,position:V,style:S==null?void 0:S.style,unstyled:S==null?void 0:S.unstyled,classNames:S==null?void 0:S.classNames,cancelButtonStyle:S==null?void 0:S.cancelButtonStyle,actionButtonStyle:S==null?void 0:S.actionButtonStyle,closeButtonAriaLabel:S==null?void 0:S.closeButtonAriaLabel,removeToast:H,toasts:P.filter(Oe=>Oe.position==te.position),heights:I.filter(Oe=>Oe.position==te.position),setHeights:N,expandByDefault:c,gap:y,expanded:z,swipeDirections:a.swipeDirections})})):null}))}),qv=({...r})=>R.jsx(Wv,{theme:"dark",className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-card group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",error:"group-[.toaster]:bg-[#2a1a1a] group-[.toaster]:text-[#e8a0a0] group-[.toaster]:border-[#4a2a2a] [&_[data-description]]:text-[#b08080]"}},...r});function Qv({health:r,config:a,onConfigClick:o,onAdvertise:i,onMenuClick:u}){const l=(r==null?void 0:r.radio_connected)??!1,[A,c]=F.useState(!1),h=async()=>{c(!0);try{const d=await Xe.reconnectRadio();d.connected&&Ia.success("Reconnected",{description:d.message})}catch(d){Ia.error("Reconnection failed",{description:d instanceof Error?d.message:"Check radio connection and power"})}finally{c(!1)}};return R.jsxs("div",{className:"flex items-center gap-4 px-4 py-2 bg-[#252525] border-b border-[#333] text-xs",children:[u&&R.jsx("button",{onClick:u,className:"md:hidden p-1 bg-transparent border-none text-[#e0e0e0] cursor-pointer","aria-label":"Open menu",children:R.jsx(xv,{className:"h-5 w-5"})}),R.jsx("h1",{className:"hidden lg:block text-base font-semibold mr-auto",children:"RemoteTerm"}),R.jsxs("div",{className:"flex items-center gap-1 text-[#888]",children:[R.jsx("div",{className:`w-2 h-2 rounded-full ${l?"bg-[#4caf50]":"bg-[#666]"}`}),R.jsx("span",{className:"hidden lg:inline text-[#e0e0e0]",children:l?"Connected":"Disconnected"})]}),(r==null?void 0:r.serial_port)&&R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Port: ",R.jsx("span",{className:"text-[#e0e0e0]",children:r.serial_port})]}),a&&R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"hidden lg:flex items-center gap-1 text-[#888]",children:["Name: ",R.jsx("span",{className:"text-[#e0e0e0]",children:a.name||"Unnamed"})]}),R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["Freq: ",R.jsxs("span",{className:"text-[#e0e0e0]",children:[a.radio.freq," MHz"]})]}),R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["SF",a.radio.sf,"/CR",a.radio.cr]}),R.jsxs("div",{className:"hidden xl:flex items-center gap-1 text-[#888]",children:["TX: ",R.jsxs("span",{className:"text-[#e0e0e0]",children:[a.tx_power," dBm"]})]})]}),R.jsx("div",{className:"flex-1 lg:hidden"}),!l&&R.jsx("button",{onClick:h,disabled:A,className:"px-3 py-1 bg-[#4a3000] border border-[#6b4500] text-[#ffa500] rounded text-xs cursor-pointer hover:bg-[#5a3a00] disabled:opacity-50 disabled:cursor-not-allowed",children:A?"Reconnecting...":"Reconnect"}),R.jsx("button",{onClick:i,disabled:!l,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444] disabled:bg-[#333] disabled:text-[#666] disabled:cursor-not-allowed",children:"Advertise"}),R.jsx("button",{onClick:o,className:"px-3 py-1 bg-[#333] border border-[#444] text-[#e0e0e0] rounded text-xs cursor-pointer hover:bg-[#444]",children:"Config"})]})}const Gv=12;function Fo(r){return r.slice(0,Gv)}function Kh(r,a){return!r||!a?!1:Fo(r)===Fo(a)}function Kn(r,a){return r||Fo(a)}const yu="remoteterm-lastMessageTime",Cu="remoteterm-lastReadTime";function el(r){try{const a=localStorage.getItem(r);return a?JSON.parse(a):{}}catch{return{}}}function Yh(r,a){try{localStorage.setItem(r,JSON.stringify(a))}catch{}}function Zf(){return el(yu)}function $v(){return el(Cu)}function ru(r,a){const o=el(yu);return(!o[r]||a>o[r])&&(o[r]=a,Yh(yu,o)),o}function nu(r,a){const o=el(Cu);return o[r]=a,Yh(Cu,o),o}function tn(r,a){return r==="channel"?`channel-${a}`:`contact-${Fo(a)}`}const wu=2,Kv={text:"🛜",background:"#444444",textColor:"#ffffff"};function Yv(r){let a=0;for(let o=0;o>8)%30,u=35+(a>>16)%20,l=`hsl(${o}, ${i}%, ${u}%)`,A=u<45?"#ffffff":"#000000";return{background:l,text:A}}function ey(r,a,o){if(o===wu)return Kv;const i=Xv(r,a),u=Jv(a);return{text:i,background:u.background,textColor:u.text}}function Zh({name:r,publicKey:a,size:o=28,contactType:i}){const u=ey(r,a,i);return R.jsx("div",{className:"flex items-center justify-center rounded-full font-semibold flex-shrink-0 select-none",style:{backgroundColor:u.background,color:u.textColor,width:o,height:o,fontSize:o*.45},children:u.text})}function Xh(r){var a,o,i="";if(typeof r=="string"||typeof r=="number")i+=r;else if(typeof r=="object")if(Array.isArray(r)){var u=r.length;for(a=0;a{const o=new Array(r.length+a.length);for(let i=0;i({classGroupId:r,validator:a}),ep=(r=new Map,a=null,o)=>({nextPart:r,validators:a,classGroupId:o}),Gi="-",Xf=[],ny="arbitrary..",oy=r=>{const a=sy(r),{conflictingClassGroups:o,conflictingClassGroupModifiers:i}=r;return{getClassGroupId:A=>{if(A.startsWith("[")&&A.endsWith("]"))return ay(A);const c=A.split(Gi),h=c[0]===""&&c.length>1?1:0;return tp(c,h,a)},getConflictingClassGroupIds:(A,c)=>{if(c){const h=i[A],d=o[A];return h?d?ty(d,h):h:d||Xf}return o[A]||Xf}}},tp=(r,a,o)=>{if(r.length-a===0)return o.classGroupId;const u=r[a],l=o.nextPart.get(u);if(l){const d=tp(r,a+1,l);if(d)return d}const A=o.validators;if(A===null)return;const c=a===0?r.join(Gi):r.slice(a).join(Gi),h=A.length;for(let d=0;dr.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=r.slice(1,-1),o=a.indexOf(":"),i=a.slice(0,o);return i?ny+i:void 0})(),sy=r=>{const{theme:a,classGroups:o}=r;return iy(o,a)},iy=(r,a)=>{const o=ep();for(const i in r){const u=r[i];Ou(u,o,i,a)}return o},Ou=(r,a,o,i)=>{const u=r.length;for(let l=0;l{if(typeof r=="string"){cy(r,a,o);return}if(typeof r=="function"){uy(r,a,o,i);return}dy(r,a,o,i)},cy=(r,a,o)=>{const i=r===""?a:rp(a,r);i.classGroupId=o},uy=(r,a,o,i)=>{if(fy(r)){Ou(r(i),a,o,i);return}a.validators===null&&(a.validators=[]),a.validators.push(ry(o,r))},dy=(r,a,o,i)=>{const u=Object.entries(r),l=u.length;for(let A=0;A{let o=r;const i=a.split(Gi),u=i.length;for(let l=0;l"isThemeGetter"in r&&r.isThemeGetter===!0,Ay=r=>{if(r<1)return{get:()=>{},set:()=>{}};let a=0,o=Object.create(null),i=Object.create(null);const u=(l,A)=>{o[l]=A,a++,a>r&&(a=0,i=o,o=Object.create(null))};return{get(l){let A=o[l];if(A!==void 0)return A;if((A=i[l])!==void 0)return u(l,A),A},set(l,A){l in o?o[l]=A:u(l,A)}}},bu="!",Jf=":",hy=[],eA=(r,a,o,i,u)=>({modifiers:r,hasImportantModifier:a,baseClassName:o,maybePostfixModifierPosition:i,isExternal:u}),py=r=>{const{prefix:a,experimentalParseClassName:o}=r;let i=u=>{const l=[];let A=0,c=0,h=0,d;const x=u.length;for(let b=0;bh?d-h:void 0;return eA(l,C,g,w)};if(a){const u=a+Jf,l=i;i=A=>A.startsWith(u)?l(A.slice(u.length)):eA(hy,!1,A,void 0,!0)}if(o){const u=i;i=l=>o({className:l,parseClassName:u})}return i},xy=r=>{const a=new Map;return r.orderSensitiveModifiers.forEach((o,i)=>{a.set(o,1e6+i)}),o=>{const i=[];let u=[];for(let l=0;l0&&(u.sort(),i.push(...u),u=[]),i.push(A)):u.push(A)}return u.length>0&&(u.sort(),i.push(...u)),i}},my=r=>({cache:Ay(r.cacheSize),parseClassName:py(r),sortModifiers:xy(r),...oy(r)}),gy=/\s+/,vy=(r,a)=>{const{parseClassName:o,getClassGroupId:i,getConflictingClassGroupIds:u,sortModifiers:l}=a,A=[],c=r.trim().split(gy);let h="";for(let d=c.length-1;d>=0;d-=1){const x=c[d],{isExternal:p,modifiers:g,hasImportantModifier:C,baseClassName:w,maybePostfixModifierPosition:b}=o(x);if(p){h=x+(h.length>0?" "+h:h);continue}let v=!!b,S=i(v?w.substring(0,b):w);if(!S){if(!v){h=x+(h.length>0?" "+h:h);continue}if(S=i(w),!S){h=x+(h.length>0?" "+h:h);continue}v=!1}const E=g.length===0?"":g.length===1?g[0]:l(g).join(":"),y=C?E+bu:E,B=y+S;if(A.indexOf(B)>-1)continue;A.push(B);const D=u(S,v);for(let T=0;T0?" "+h:h)}return h},yy=(...r)=>{let a=0,o,i,u="";for(;a{if(typeof r=="string")return r;let a,o="";for(let i=0;i{let o,i,u,l;const A=h=>{const d=a.reduce((x,p)=>p(x),r());return o=my(d),i=o.cache.get,u=o.cache.set,l=c,c(h)},c=h=>{const d=i(h);if(d)return d;const x=vy(h,o);return u(h,x),x};return l=A,(...h)=>l(yy(...h))},wy=[],kt=r=>{const a=o=>o[r]||wy;return a.isThemeGetter=!0,a},op=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,ap=/^\((?:(\w[\w-]*):)?(.+)\)$/i,by=/^\d+\/\d+$/,Ey=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,ky=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Sy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,By=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,_y=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,bo=r=>by.test(r),He=r=>!!r&&!Number.isNaN(Number(r)),bn=r=>!!r&&Number.isInteger(Number(r)),ou=r=>r.endsWith("%")&&He(r.slice(0,-1)),Zr=r=>Ey.test(r),Dy=()=>!0,Fy=r=>ky.test(r)&&!Sy.test(r),sp=()=>!1,Ry=r=>By.test(r),Ty=r=>_y.test(r),Py=r=>!ve(r)&&!ye(r),Ny=r=>No(r,cp,sp),ve=r=>op.test(r),Vn=r=>No(r,up,Fy),au=r=>No(r,Hy,He),tA=r=>No(r,ip,sp),Iy=r=>No(r,lp,Ty),Zs=r=>No(r,dp,Ry),ye=r=>ap.test(r),ga=r=>Io(r,up),My=r=>Io(r,Ly),rA=r=>Io(r,ip),Oy=r=>Io(r,cp),jy=r=>Io(r,lp),Xs=r=>Io(r,dp,!0),No=(r,a,o)=>{const i=op.exec(r);return i?i[1]?a(i[1]):o(i[2]):!1},Io=(r,a,o=!1)=>{const i=ap.exec(r);return i?i[1]?a(i[1]):o:!1},ip=r=>r==="position"||r==="percentage",lp=r=>r==="image"||r==="url",cp=r=>r==="length"||r==="size"||r==="bg-size",up=r=>r==="length",Hy=r=>r==="number",Ly=r=>r==="family-name",dp=r=>r==="shadow",zy=()=>{const r=kt("color"),a=kt("font"),o=kt("text"),i=kt("font-weight"),u=kt("tracking"),l=kt("leading"),A=kt("breakpoint"),c=kt("container"),h=kt("spacing"),d=kt("radius"),x=kt("shadow"),p=kt("inset-shadow"),g=kt("text-shadow"),C=kt("drop-shadow"),w=kt("blur"),b=kt("perspective"),v=kt("aspect"),S=kt("ease"),E=kt("animate"),y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],D=()=>[...B(),ye,ve],T=()=>["auto","hidden","clip","visible","scroll"],M=()=>["auto","contain","none"],P=()=>[ye,ve,h],j=()=>[bo,"full","auto",...P()],I=()=>[bn,"none","subgrid",ye,ve],N=()=>["auto",{span:["full",bn,ye,ve]},bn,ye,ve],z=()=>[bn,"auto",ye,ve],Q=()=>["auto","min","max","fr",ye,ve],X=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],se=()=>["start","end","center","stretch","center-safe","end-safe"],J=()=>["auto",...P()],ne=()=>[bo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...P()],q=()=>[r,ye,ve],ae=()=>[...B(),rA,tA,{position:[ye,ve]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],k=()=>["auto","cover","contain",Oy,Ny,{size:[ye,ve]}],H=()=>[ou,ga,Vn],V=()=>["","none","full",d,ye,ve],W=()=>["",He,ga,Vn],de=()=>["solid","dashed","dotted","double"],re=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],le=()=>[He,ou,rA,tA],te=()=>["","none",w,ye,ve],Se=()=>["none",He,ye,ve],Me=()=>["none",He,ye,ve],Ne=()=>[He,ye,ve],Oe=()=>[bo,"full",...P()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Zr],breakpoint:[Zr],color:[Dy],container:[Zr],"drop-shadow":[Zr],ease:["in","out","in-out"],font:[Py],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Zr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Zr],shadow:[Zr],spacing:["px",He],text:[Zr],"text-shadow":[Zr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",bo,ve,ye,v]}],container:["container"],columns:[{columns:[He,ve,ye,c]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:D()}],overflow:[{overflow:T()}],"overflow-x":[{"overflow-x":T()}],"overflow-y":[{"overflow-y":T()}],overscroll:[{overscroll:M()}],"overscroll-x":[{"overscroll-x":M()}],"overscroll-y":[{"overscroll-y":M()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:j()}],"inset-x":[{"inset-x":j()}],"inset-y":[{"inset-y":j()}],start:[{start:j()}],end:[{end:j()}],top:[{top:j()}],right:[{right:j()}],bottom:[{bottom:j()}],left:[{left:j()}],visibility:["visible","invisible","collapse"],z:[{z:[bn,"auto",ye,ve]}],basis:[{basis:[bo,"full","auto",c,...P()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[He,bo,"auto","initial","none",ve]}],grow:[{grow:["",He,ye,ve]}],shrink:[{shrink:["",He,ye,ve]}],order:[{order:[bn,"first","last","none",ye,ve]}],"grid-cols":[{"grid-cols":I()}],"col-start-end":[{col:N()}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":I()}],"row-start-end":[{row:N()}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Q()}],"auto-rows":[{"auto-rows":Q()}],gap:[{gap:P()}],"gap-x":[{"gap-x":P()}],"gap-y":[{"gap-y":P()}],"justify-content":[{justify:[...X(),"normal"]}],"justify-items":[{"justify-items":[...se(),"normal"]}],"justify-self":[{"justify-self":["auto",...se()]}],"align-content":[{content:["normal",...X()]}],"align-items":[{items:[...se(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...se(),{baseline:["","last"]}]}],"place-content":[{"place-content":X()}],"place-items":[{"place-items":[...se(),"baseline"]}],"place-self":[{"place-self":["auto",...se()]}],p:[{p:P()}],px:[{px:P()}],py:[{py:P()}],ps:[{ps:P()}],pe:[{pe:P()}],pt:[{pt:P()}],pr:[{pr:P()}],pb:[{pb:P()}],pl:[{pl:P()}],m:[{m:J()}],mx:[{mx:J()}],my:[{my:J()}],ms:[{ms:J()}],me:[{me:J()}],mt:[{mt:J()}],mr:[{mr:J()}],mb:[{mb:J()}],ml:[{ml:J()}],"space-x":[{"space-x":P()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":P()}],"space-y-reverse":["space-y-reverse"],size:[{size:ne()}],w:[{w:[c,"screen",...ne()]}],"min-w":[{"min-w":[c,"screen","none",...ne()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[A]},...ne()]}],h:[{h:["screen","lh",...ne()]}],"min-h":[{"min-h":["screen","lh","none",...ne()]}],"max-h":[{"max-h":["screen","lh",...ne()]}],"font-size":[{text:["base",o,ga,Vn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,ye,au]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ou,ve]}],"font-family":[{font:[My,ve,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[u,ye,ve]}],"line-clamp":[{"line-clamp":[He,"none",ye,au]}],leading:[{leading:[l,...P()]}],"list-image":[{"list-image":["none",ye,ve]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ye,ve]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...de(),"wavy"]}],"text-decoration-thickness":[{decoration:[He,"from-font","auto",ye,Vn]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[He,"auto",ye,ve]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ye,ve]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ye,ve]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ae()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:k()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},bn,ye,ve],radial:["",ye,ve],conic:[bn,ye,ve]},jy,Iy]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:H()}],"gradient-via-pos":[{via:H()}],"gradient-to-pos":[{to:H()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:W()}],"border-w-x":[{"border-x":W()}],"border-w-y":[{"border-y":W()}],"border-w-s":[{"border-s":W()}],"border-w-e":[{"border-e":W()}],"border-w-t":[{"border-t":W()}],"border-w-r":[{"border-r":W()}],"border-w-b":[{"border-b":W()}],"border-w-l":[{"border-l":W()}],"divide-x":[{"divide-x":W()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":W()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...de(),"hidden","none"]}],"divide-style":[{divide:[...de(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...de(),"none","hidden"]}],"outline-offset":[{"outline-offset":[He,ye,ve]}],"outline-w":[{outline:["",He,ga,Vn]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",x,Xs,Zs]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",p,Xs,Zs]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:W()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[He,Vn]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":W()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",g,Xs,Zs]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[He,ye,ve]}],"mix-blend":[{"mix-blend":[...re(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":re()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[He]}],"mask-image-linear-from-pos":[{"mask-linear-from":le()}],"mask-image-linear-to-pos":[{"mask-linear-to":le()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":le()}],"mask-image-t-to-pos":[{"mask-t-to":le()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":le()}],"mask-image-r-to-pos":[{"mask-r-to":le()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":le()}],"mask-image-b-to-pos":[{"mask-b-to":le()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":le()}],"mask-image-l-to-pos":[{"mask-l-to":le()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":le()}],"mask-image-x-to-pos":[{"mask-x-to":le()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":le()}],"mask-image-y-to-pos":[{"mask-y-to":le()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[ye,ve]}],"mask-image-radial-from-pos":[{"mask-radial-from":le()}],"mask-image-radial-to-pos":[{"mask-radial-to":le()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":B()}],"mask-image-conic-pos":[{"mask-conic":[He]}],"mask-image-conic-from-pos":[{"mask-conic-from":le()}],"mask-image-conic-to-pos":[{"mask-conic-to":le()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ae()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:k()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ye,ve]}],filter:[{filter:["","none",ye,ve]}],blur:[{blur:te()}],brightness:[{brightness:[He,ye,ve]}],contrast:[{contrast:[He,ye,ve]}],"drop-shadow":[{"drop-shadow":["","none",C,Xs,Zs]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",He,ye,ve]}],"hue-rotate":[{"hue-rotate":[He,ye,ve]}],invert:[{invert:["",He,ye,ve]}],saturate:[{saturate:[He,ye,ve]}],sepia:[{sepia:["",He,ye,ve]}],"backdrop-filter":[{"backdrop-filter":["","none",ye,ve]}],"backdrop-blur":[{"backdrop-blur":te()}],"backdrop-brightness":[{"backdrop-brightness":[He,ye,ve]}],"backdrop-contrast":[{"backdrop-contrast":[He,ye,ve]}],"backdrop-grayscale":[{"backdrop-grayscale":["",He,ye,ve]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[He,ye,ve]}],"backdrop-invert":[{"backdrop-invert":["",He,ye,ve]}],"backdrop-opacity":[{"backdrop-opacity":[He,ye,ve]}],"backdrop-saturate":[{"backdrop-saturate":[He,ye,ve]}],"backdrop-sepia":[{"backdrop-sepia":["",He,ye,ve]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":P()}],"border-spacing-x":[{"border-spacing-x":P()}],"border-spacing-y":[{"border-spacing-y":P()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ye,ve]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[He,"initial",ye,ve]}],ease:[{ease:["linear","initial",S,ye,ve]}],delay:[{delay:[He,ye,ve]}],animate:[{animate:["none",E,ye,ve]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,ye,ve]}],"perspective-origin":[{"perspective-origin":D()}],rotate:[{rotate:Se()}],"rotate-x":[{"rotate-x":Se()}],"rotate-y":[{"rotate-y":Se()}],"rotate-z":[{"rotate-z":Se()}],scale:[{scale:Me()}],"scale-x":[{"scale-x":Me()}],"scale-y":[{"scale-y":Me()}],"scale-z":[{"scale-z":Me()}],"scale-3d":["scale-3d"],skew:[{skew:Ne()}],"skew-x":[{"skew-x":Ne()}],"skew-y":[{"skew-y":Ne()}],transform:[{transform:[ye,ve,"","none","gpu","cpu"]}],"transform-origin":[{origin:D()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Oe()}],"translate-x":[{"translate-x":Oe()}],"translate-y":[{"translate-y":Oe()}],"translate-z":[{"translate-z":Oe()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ye,ve]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ye,ve]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[He,ga,Vn,au]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Vy=Cy(zy);function Ke(...r){return Vy(Jh(r))}const vt=F.forwardRef(({className:r,type:a,...o},i)=>R.jsx("input",{type:a,className:Ke("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",r),ref:i,...o}));vt.displayName="Input";function nA(r,a){if(typeof r=="function")return r(a);r!=null&&(r.current=a)}function La(...r){return a=>{let o=!1;const i=r.map(u=>{const l=nA(u,a);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let u=0;u{let{children:l,...A}=i;fp(l)&&typeof $i=="function"&&(l=$i(l._payload));const c=F.Children.toArray(l),h=c.find($y);if(h){const d=h.props.children,x=c.map(p=>p===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:p);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,x):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}var qy=ju("Slot");function Qy(r){const a=F.forwardRef((o,i)=>{let{children:u,...l}=o;if(fp(u)&&typeof $i=="function"&&(u=$i(u._payload)),F.isValidElement(u)){const A=Yy(u),c=Ky(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var Gy=Symbol("radix.slottable");function $y(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===Gy}function Ky(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function Yy(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}const oA=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,aA=Jh,tl=(r,a)=>o=>{var i;if((a==null?void 0:a.variants)==null)return aA(r,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:u,defaultVariants:l}=a,A=Object.keys(u).map(d=>{const x=o==null?void 0:o[d],p=l==null?void 0:l[d];if(x===null)return null;const g=oA(x)||oA(p);return u[d][g]}),c=o&&Object.entries(o).reduce((d,x)=>{let[p,g]=x;return g===void 0||(d[p]=g),d},{}),h=a==null||(i=a.compoundVariants)===null||i===void 0?void 0:i.reduce((d,x)=>{let{class:p,className:g,...C}=x;return Object.entries(C).every(w=>{let[b,v]=w;return Array.isArray(v)?v.includes({...l,...c}[b]):{...l,...c}[b]===v})?[...d,p,g]:d},[]);return aA(r,A,h,o==null?void 0:o.class,o==null?void 0:o.className)},Zy=tl("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),zr=F.forwardRef(({className:r,variant:a,size:o,asChild:i=!1,...u},l)=>{const A=i?qy:"button";return R.jsx(A,{className:Ke(Zy({variant:a,size:o,className:r})),ref:l,...u})});zr.displayName="Button";function Xy(){try{return localStorage.getItem("remoteterm-sortOrder")==="alpha"?"alpha":"recent"}catch{return"recent"}}function Jy(r){try{localStorage.setItem("remoteterm-sortOrder",r)}catch{}}function e1({contacts:r,channels:a,activeConversation:o,onSelectConversation:i,onNewMessage:u,lastMessageTimes:l,unreadCounts:A,showCracker:c,crackerRunning:h,onToggleCracker:d,onMarkAllRead:x}){const[p,g]=F.useState(Xy),[C,w]=F.useState(""),b=()=>{const N=p==="alpha"?"recent":"alpha";g(N),Jy(N)},v=N=>{w(""),i(N)},S=(N,z)=>(o==null?void 0:o.type)===N&&(o==null?void 0:o.id)===z,E=(N,z)=>{const Q=tn(N,z);return A[Q]||0},y=(N,z)=>{const Q=tn(N,z);return l[Q]||0},B=a.reduce((N,z)=>(N.some(Q=>Q.name===z.name)||N.push(z),N),[]),D=r.filter(N=>N.public_key&&N.public_key.length>0).sort((N,z)=>N.name&&!z.name?-1:!N.name&&z.name?1:(N.name||"").localeCompare(z.name||"")).reduce((N,z)=>{const Q=Fo(z.public_key);return N.some(X=>Fo(X.public_key)===Q)||N.push(z),N},[]),T=[...B].sort((N,z)=>{if(N.name==="Public")return-1;if(z.name==="Public")return 1;if(p==="recent"){const Q=y("channel",N.key),X=y("channel",z.key);if(Q&&X)return X-Q;if(Q&&!X)return-1;if(!Q&&X)return 1}return N.name.localeCompare(z.name)}),M=[...D].sort((N,z)=>{const Q=N.type===wu,X=z.type===wu;if(Q&&!X)return 1;if(!Q&&X)return-1;if(Q&&X)return(N.name||N.public_key).localeCompare(z.name||z.public_key);if(p==="recent"){const se=y("contact",N.public_key),J=y("contact",z.public_key);if(se&&J)return J-se;if(se&&!J)return-1;if(!se&&J)return 1}return(N.name||N.public_key).localeCompare(z.name||z.public_key)}),P=C.toLowerCase().trim(),j=P?T.filter(N=>N.name.toLowerCase().includes(P)):T,I=P?M.filter(N=>{var z;return((z=N.name)==null?void 0:z.toLowerCase().includes(P))||N.public_key.toLowerCase().includes(P)}):M;return R.jsxs("div",{className:"sidebar w-60 h-full min-h-0 bg-card border-r border-border flex flex-col",children:[R.jsxs("div",{className:"flex justify-between items-center px-3 py-3 border-b border-border",children:[R.jsx("h2",{className:"text-xs uppercase text-muted-foreground font-medium",children:"Conversations"}),R.jsx(zr,{variant:"ghost",size:"sm",onClick:u,title:"New Message",className:"h-6 w-6 p-0 text-muted-foreground hover:text-foreground",children:"+"})]}),R.jsxs("div",{className:"relative px-3 py-2 border-b border-border",children:[R.jsx(vt,{type:"text",placeholder:"Search...",value:C,onChange:N=>w(N.target.value),className:"h-8 text-sm pr-8"}),C&&R.jsx("button",{className:"absolute right-4 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground text-lg leading-none",onClick:()=>w(""),title:"Clear search",children:"×"})]}),R.jsxs("div",{className:"flex-1 overflow-y-auto",children:[!P&&R.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",S("raw","raw")&&"bg-accent border-l-primary"),onClick:()=>v({type:"raw",id:"raw",name:"Raw Packet Feed"}),children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"📡"}),R.jsx("span",{className:"flex-1 truncate",children:"Packet Feed"})]}),!P&&R.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",c&&"bg-accent border-l-primary"),onClick:d,children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"🔓"}),R.jsxs("span",{className:"flex-1 truncate",children:[c?"Hide":"Show"," Cracker",R.jsxs("span",{className:Ke("ml-1 text-xs",h?"text-green-500":"text-muted-foreground"),children:["(",h?"running":"stopped",")"]})]})]}),!P&&Object.keys(A).length>0&&R.jsxs("div",{className:"px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",onClick:x,children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"✓"}),R.jsx("span",{className:"flex-1 truncate text-muted-foreground",children:"Mark all as read"})]}),j.length>0&&R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[R.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Channels"}),R.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:b,title:p==="alpha"?"Sort by recent":"Sort alphabetically",children:p==="alpha"?"A-Z":"⏱"})]}),j.map(N=>{const z=E("channel",N.key);return R.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",S("channel",N.key)&&"bg-accent border-l-primary",z>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"channel",id:N.key,name:N.name}),children:[R.jsx("span",{className:"text-muted-foreground text-xs",children:"#"}),R.jsx("span",{className:"name flex-1 truncate",children:N.name}),z>0&&R.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:z})]},`chan-${N.key}`)})]}),I.length>0&&R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"flex justify-between items-center px-3 py-2 pt-3",children:[R.jsx("span",{className:"text-[11px] uppercase text-muted-foreground",children:"Contacts"}),j.length===0&&R.jsx("button",{className:"bg-transparent border border-border text-muted-foreground px-1.5 py-0.5 text-[10px] rounded hover:bg-accent hover:text-foreground",onClick:b,title:p==="alpha"?"Sort by recent":"Sort alphabetically",children:p==="alpha"?"A-Z":"⏱"})]}),I.map(N=>{const z=E("contact",N.public_key);return R.jsxs("div",{className:Ke("px-3 py-2.5 cursor-pointer flex items-center gap-2 border-l-2 border-transparent hover:bg-accent",S("contact",N.public_key)&&"bg-accent border-l-primary",z>0&&"[&_.name]:font-bold [&_.name]:text-foreground"),onClick:()=>v({type:"contact",id:N.public_key,name:Kn(N.name,N.public_key)}),children:[R.jsx(Zh,{name:N.name,publicKey:N.public_key,size:24,contactType:N.type}),R.jsx("span",{className:"name flex-1 truncate",children:Kn(N.name,N.public_key)}),z>0&&R.jsx("span",{className:"bg-primary text-primary-foreground text-[10px] font-semibold px-1.5 py-0.5 rounded-full min-w-[18px] text-center",children:z})]},N.public_key)})]}),I.length===0&&j.length===0&&R.jsx("div",{className:"p-5 text-center text-muted-foreground",children:P?"No matches found":"No conversations yet"})]})]})}function sA(r){const a=r.indexOf(": ");if(a>0&&a<50){const o=r.substring(0,a);if(!/[:\[\]]/.test(o))return{sender:o,content:r.substring(a+2)}}return{sender:null,content:r}}function iA(r){const a=new Date(r*1e3),o=new Date,i=a.toDateString()===o.toDateString(),u=a.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return i?u:`${a.toLocaleDateString([],{month:"short",day:"numeric"})} ${u}`}function t1({messages:r,contacts:a,loading:o,loadingOlder:i=!1,hasOlderMessages:u=!1,onSenderClick:l,onLoadOlder:A}){const c=F.useRef(null),h=F.useRef(0),d=F.useRef(!0),[x,p]=F.useState(!1),g=F.useRef({scrollTop:0,scrollHeight:0,wasNearTop:!1});F.useLayoutEffect(()=>{if(!c.current)return;const B=c.current,D=r.length-h.current;if(d.current&&r.length>0)B.scrollTop=B.scrollHeight,d.current=!1;else if(D>0&&h.current>0){const T=B.scrollHeight-g.current.scrollHeight;g.current.wasNearTop&&T>0?B.scrollTop=g.current.scrollTop+T:g.current.wasNearTop||(B.scrollTop=B.scrollHeight)}h.current=r.length},[r]),F.useEffect(()=>{r.length===0&&(d.current=!0,h.current=0,g.current={scrollTop:0,scrollHeight:0,wasNearTop:!1})},[r.length]);const C=F.useCallback(()=>{if(!c.current)return;const{scrollTop:B,scrollHeight:D,clientHeight:T}=c.current;g.current={scrollTop:B,scrollHeight:D,wasNearTop:B<150};const M=D-B-T;p(M>100),!(!A||i||!u)&&B<100&&A()},[A,i,u]),w=F.useCallback(()=>{c.current&&(c.current.scrollTop=c.current.scrollHeight)},[]),b=B=>B&&a.find(D=>Kh(D.public_key,B))||null,v=B=>a.find(D=>D.name===B)||null;if(o)return R.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"Loading messages..."});if(r.length===0)return R.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-center text-muted-foreground",children:"No messages yet"});const E=[...r.reduce((B,D)=>{const T=`${D.type}-${D.conversation_key}-${D.text}-${D.sender_timestamp}`;return B.find(P=>`${P.type}-${P.conversation_key}-${P.text}-${P.sender_timestamp}`===T)||B.push(D),B},[])].sort((B,D)=>B.received_at-D.received_at),y=(B,D)=>B.outgoing?"__outgoing__":B.type==="PRIV"&&B.conversation_key?B.conversation_key:D||"__unknown__";return R.jsxs("div",{className:"flex-1 overflow-hidden relative",children:[R.jsxs("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-0.5",ref:c,onScroll:C,children:[i&&R.jsx("div",{className:"text-center py-2 text-muted-foreground text-sm",children:"Loading older messages..."}),!i&&u&&R.jsx("div",{className:"text-center py-2 text-muted-foreground text-xs",children:"Scroll up for older messages"}),E.map((B,D)=>{var q;const{sender:T,content:M}=sA(B.text),P=B.type==="PRIV"?b(B.conversation_key):null,j=B.outgoing?"You":(P==null?void 0:P.name)||T||((q=B.conversation_key)==null?void 0:q.slice(0,8))||"Unknown",I=!B.outgoing&&l&&j!=="Unknown",N=y(B,T),z=E[D-1],Q=z?y(z,sA(z.text).sender):null,X=!B.outgoing&&N!==Q,se=D===0;let J=null,ne="";if(!B.outgoing){if(B.type==="PRIV"&&B.conversation_key)J=(P==null?void 0:P.name)||null,ne=B.conversation_key;else if(T){const ae=v(T);J=T,ne=(ae==null?void 0:ae.public_key)||`name:${T}`}}return R.jsxs("div",{className:Ke("flex items-start max-w-[85%]",B.outgoing&&"flex-row-reverse self-end",X&&!se&&"mt-3"),children:[!B.outgoing&&R.jsx("div",{className:"w-10 flex-shrink-0 flex items-start pt-0.5",children:X&&ne&&R.jsx(Zh,{name:J,publicKey:ne,size:32})}),R.jsxs("div",{className:Ke("py-1.5 px-3 rounded-lg min-w-0",B.outgoing?"bg-[#1e3a29]":"bg-muted"),children:[X&&R.jsxs("div",{className:"text-[13px] font-semibold text-muted-foreground mb-0.5",children:[I?R.jsx("span",{className:"cursor-pointer hover:text-primary hover:underline",onClick:()=>l(j),title:`Mention ${j}`,children:j}):j,R.jsx("span",{className:"font-normal text-muted-foreground/70 ml-2 text-[11px]",children:iA(B.sender_timestamp||B.received_at)})]}),R.jsxs("div",{className:"break-words whitespace-pre-wrap",children:[M.split(` +`).map((ae,ee,k)=>R.jsxs("span",{children:[ae,ee({appendText:g=>{var C;A(w=>w+g),(C=d.current)==null||C.focus()}}));const x=F.useCallback(async g=>{g.preventDefault();const C=l.trim();if(!(!C||c||o)){h(!0);try{await a(C),A("")}catch(w){console.error("Failed to send message:",w)}finally{h(!1)}}},[l,c,o,a]),p=F.useCallback(g=>{g.key==="Enter"&&!g.shiftKey&&(g.preventDefault(),x(g))},[x]);return R.jsxs("form",{className:"px-4 py-3 border-t border-border flex gap-2",onSubmit:x,children:[R.jsx(vt,{ref:d,type:"text",value:l,onChange:g=>A(g.target.value),onKeyDown:p,placeholder:i||"Type a message...",disabled:o||c,className:"flex-1"}),R.jsx(zr,{type:"submit",disabled:o||c||!l.trim(),children:c?"Sending...":"Send"})]})});function St(r,a,{checkForDefaultPrevented:o=!0}={}){return function(u){if(r==null||r(u),o===!1||!u.defaultPrevented)return a==null?void 0:a(u)}}function n1(r,a){const o=F.createContext(a),i=l=>{const{children:A,...c}=l,h=F.useMemo(()=>c,Object.values(c));return R.jsx(o.Provider,{value:h,children:A})};i.displayName=r+"Provider";function u(l){const A=F.useContext(o);if(A)return A;if(a!==void 0)return a;throw new Error(`\`${l}\` must be used within \`${r}\``)}return[i,u]}function za(r,a=[]){let o=[];function i(l,A){const c=F.createContext(A),h=o.length;o=[...o,A];const d=p=>{var S;const{scope:g,children:C,...w}=p,b=((S=g==null?void 0:g[r])==null?void 0:S[h])||c,v=F.useMemo(()=>w,Object.values(w));return R.jsx(b.Provider,{value:v,children:C})};d.displayName=l+"Provider";function x(p,g){var b;const C=((b=g==null?void 0:g[r])==null?void 0:b[h])||c,w=F.useContext(C);if(w)return w;if(A!==void 0)return A;throw new Error(`\`${p}\` must be used within \`${l}\``)}return[d,x]}const u=()=>{const l=o.map(A=>F.createContext(A));return function(c){const h=(c==null?void 0:c[r])||l;return F.useMemo(()=>({[`__scope${r}`]:{...c,[r]:h}}),[c,h])}};return u.scopeName=r,[i,o1(u,...a)]}function o1(...r){const a=r[0];if(r.length===1)return a;const o=()=>{const i=r.map(u=>({useScope:u(),scopeName:u.scopeName}));return function(l){const A=i.reduce((c,{useScope:h,scopeName:d})=>{const p=h(l)[`__scope${d}`];return{...c,...p}},{});return F.useMemo(()=>({[`__scope${a.scopeName}`]:A}),[A])}};return o.scopeName=a.scopeName,o}var Ro=globalThis!=null&&globalThis.document?F.useLayoutEffect:()=>{},a1=Iu[" useId ".trim().toString()]||(()=>{}),s1=0;function Ma(r){const[a,o]=F.useState(a1());return Ro(()=>{o(i=>i??String(s1++))},[r]),a?`radix-${a}`:""}var i1=Iu[" useInsertionEffect ".trim().toString()]||Ro;function rl({prop:r,defaultProp:a,onChange:o=()=>{},caller:i}){const[u,l,A]=l1({defaultProp:a,onChange:o}),c=r!==void 0,h=c?r:u;{const x=F.useRef(r!==void 0);F.useEffect(()=>{const p=x.current;p!==c&&console.warn(`${i} is changing from ${p?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),x.current=c},[c,i])}const d=F.useCallback(x=>{var p;if(c){const g=c1(x)?x(r):x;g!==r&&((p=A.current)==null||p.call(A,g))}else l(x)},[c,r,l,A]);return[h,d]}function l1({defaultProp:r,onChange:a}){const[o,i]=F.useState(r),u=F.useRef(o),l=F.useRef(a);return i1(()=>{l.current=a},[a]),F.useEffect(()=>{var A;u.current!==o&&((A=l.current)==null||A.call(l,o),u.current=o)},[o,u]),[o,i,l]}function c1(r){return typeof r=="function"}function u1(r){const a=d1(r),o=F.forwardRef((i,u)=>{const{children:l,...A}=i,c=F.Children.toArray(l),h=c.find(A1);if(h){const d=h.props.children,x=c.map(p=>p===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:p);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,x):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}function d1(r){const a=F.forwardRef((o,i)=>{const{children:u,...l}=o;if(F.isValidElement(u)){const A=p1(u),c=h1(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var f1=Symbol("radix.slottable");function A1(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===f1}function h1(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function p1(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}var x1=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Tt=x1.reduce((r,a)=>{const o=u1(`Primitive.${a}`),i=F.forwardRef((u,l)=>{const{asChild:A,...c}=u,h=A?o:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(h,{...c,ref:l})});return i.displayName=`Primitive.${a}`,{...r,[a]:i}},{});function m1(r,a){r&&Gh.flushSync(()=>r.dispatchEvent(a))}function To(r){const a=F.useRef(r);return F.useEffect(()=>{a.current=r}),F.useMemo(()=>(...o)=>{var i;return(i=a.current)==null?void 0:i.call(a,...o)},[])}function g1(r,a=globalThis==null?void 0:globalThis.document){const o=To(r);F.useEffect(()=>{const i=u=>{u.key==="Escape"&&o(u)};return a.addEventListener("keydown",i,{capture:!0}),()=>a.removeEventListener("keydown",i,{capture:!0})},[o,a])}var v1="DismissableLayer",Eu="dismissableLayer.update",y1="dismissableLayer.pointerDownOutside",C1="dismissableLayer.focusOutside",lA,Ap=F.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),hp=F.forwardRef((r,a)=>{const{disableOutsidePointerEvents:o=!1,onEscapeKeyDown:i,onPointerDownOutside:u,onFocusOutside:l,onInteractOutside:A,onDismiss:c,...h}=r,d=F.useContext(Ap),[x,p]=F.useState(null),g=(x==null?void 0:x.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,C]=F.useState({}),w=gr(a,M=>p(M)),b=Array.from(d.layers),[v]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),S=b.indexOf(v),E=x?b.indexOf(x):-1,y=d.layersWithOutsidePointerEventsDisabled.size>0,B=E>=S,D=E1(M=>{const P=M.target,j=[...d.branches].some(I=>I.contains(P));!B||j||(u==null||u(M),A==null||A(M),M.defaultPrevented||c==null||c())},g),T=k1(M=>{const P=M.target;[...d.branches].some(I=>I.contains(P))||(l==null||l(M),A==null||A(M),M.defaultPrevented||c==null||c())},g);return g1(M=>{E===d.layers.size-1&&(i==null||i(M),!M.defaultPrevented&&c&&(M.preventDefault(),c()))},g),F.useEffect(()=>{if(x)return o&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(lA=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(x)),d.layers.add(x),cA(),()=>{o&&d.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=lA)}},[x,g,o,d]),F.useEffect(()=>()=>{x&&(d.layers.delete(x),d.layersWithOutsidePointerEventsDisabled.delete(x),cA())},[x,d]),F.useEffect(()=>{const M=()=>C({});return document.addEventListener(Eu,M),()=>document.removeEventListener(Eu,M)},[]),R.jsx(Tt.div,{...h,ref:w,style:{pointerEvents:y?B?"auto":"none":void 0,...r.style},onFocusCapture:St(r.onFocusCapture,T.onFocusCapture),onBlurCapture:St(r.onBlurCapture,T.onBlurCapture),onPointerDownCapture:St(r.onPointerDownCapture,D.onPointerDownCapture)})});hp.displayName=v1;var w1="DismissableLayerBranch",b1=F.forwardRef((r,a)=>{const o=F.useContext(Ap),i=F.useRef(null),u=gr(a,i);return F.useEffect(()=>{const l=i.current;if(l)return o.branches.add(l),()=>{o.branches.delete(l)}},[o.branches]),R.jsx(Tt.div,{...r,ref:u})});b1.displayName=w1;function E1(r,a=globalThis==null?void 0:globalThis.document){const o=To(r),i=F.useRef(!1),u=F.useRef(()=>{});return F.useEffect(()=>{const l=c=>{if(c.target&&!i.current){let h=function(){pp(y1,o,d,{discrete:!0})};const d={originalEvent:c};c.pointerType==="touch"?(a.removeEventListener("click",u.current),u.current=h,a.addEventListener("click",u.current,{once:!0})):h()}else a.removeEventListener("click",u.current);i.current=!1},A=window.setTimeout(()=>{a.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(A),a.removeEventListener("pointerdown",l),a.removeEventListener("click",u.current)}},[a,o]),{onPointerDownCapture:()=>i.current=!0}}function k1(r,a=globalThis==null?void 0:globalThis.document){const o=To(r),i=F.useRef(!1);return F.useEffect(()=>{const u=l=>{l.target&&!i.current&&pp(C1,o,{originalEvent:l},{discrete:!1})};return a.addEventListener("focusin",u),()=>a.removeEventListener("focusin",u)},[a,o]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}function cA(){const r=new CustomEvent(Eu);document.dispatchEvent(r)}function pp(r,a,o,{discrete:i}){const u=o.originalEvent.target,l=new CustomEvent(r,{bubbles:!1,cancelable:!0,detail:o});a&&u.addEventListener(r,a,{once:!0}),i?m1(u,l):u.dispatchEvent(l)}var su="focusScope.autoFocusOnMount",iu="focusScope.autoFocusOnUnmount",uA={bubbles:!1,cancelable:!0},S1="FocusScope",xp=F.forwardRef((r,a)=>{const{loop:o=!1,trapped:i=!1,onMountAutoFocus:u,onUnmountAutoFocus:l,...A}=r,[c,h]=F.useState(null),d=To(u),x=To(l),p=F.useRef(null),g=gr(a,b=>h(b)),C=F.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;F.useEffect(()=>{if(i){let b=function(y){if(C.paused||!c)return;const B=y.target;c.contains(B)?p.current=B:En(p.current,{select:!0})},v=function(y){if(C.paused||!c)return;const B=y.relatedTarget;B!==null&&(c.contains(B)||En(p.current,{select:!0}))},S=function(y){if(document.activeElement===document.body)for(const D of y)D.removedNodes.length>0&&En(c)};document.addEventListener("focusin",b),document.addEventListener("focusout",v);const E=new MutationObserver(S);return c&&E.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",v),E.disconnect()}}},[i,c,C.paused]),F.useEffect(()=>{if(c){fA.add(C);const b=document.activeElement;if(!c.contains(b)){const S=new CustomEvent(su,uA);c.addEventListener(su,d),c.dispatchEvent(S),S.defaultPrevented||(B1(T1(mp(c)),{select:!0}),document.activeElement===b&&En(c))}return()=>{c.removeEventListener(su,d),setTimeout(()=>{const S=new CustomEvent(iu,uA);c.addEventListener(iu,x),c.dispatchEvent(S),S.defaultPrevented||En(b??document.body,{select:!0}),c.removeEventListener(iu,x),fA.remove(C)},0)}}},[c,d,x,C]);const w=F.useCallback(b=>{if(!o&&!i||C.paused)return;const v=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,S=document.activeElement;if(v&&S){const E=b.currentTarget,[y,B]=_1(E);y&&B?!b.shiftKey&&S===B?(b.preventDefault(),o&&En(y,{select:!0})):b.shiftKey&&S===y&&(b.preventDefault(),o&&En(B,{select:!0})):S===E&&b.preventDefault()}},[o,i,C.paused]);return R.jsx(Tt.div,{tabIndex:-1,...A,ref:g,onKeyDown:w})});xp.displayName=S1;function B1(r,{select:a=!1}={}){const o=document.activeElement;for(const i of r)if(En(i,{select:a}),document.activeElement!==o)return}function _1(r){const a=mp(r),o=dA(a,r),i=dA(a.reverse(),r);return[o,i]}function mp(r){const a=[],o=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const u=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||u?NodeFilter.FILTER_SKIP:i.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)a.push(o.currentNode);return a}function dA(r,a){for(const o of r)if(!D1(o,{upTo:a}))return o}function D1(r,{upTo:a}){if(getComputedStyle(r).visibility==="hidden")return!0;for(;r;){if(a!==void 0&&r===a)return!1;if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}function F1(r){return r instanceof HTMLInputElement&&"select"in r}function En(r,{select:a=!1}={}){if(r&&r.focus){const o=document.activeElement;r.focus({preventScroll:!0}),r!==o&&F1(r)&&a&&r.select()}}var fA=R1();function R1(){let r=[];return{add(a){const o=r[0];a!==o&&(o==null||o.pause()),r=AA(r,a),r.unshift(a)},remove(a){var o;r=AA(r,a),(o=r[0])==null||o.resume()}}}function AA(r,a){const o=[...r],i=o.indexOf(a);return i!==-1&&o.splice(i,1),o}function T1(r){return r.filter(a=>a.tagName!=="A")}var P1="Portal",gp=F.forwardRef((r,a)=>{var c;const{container:o,...i}=r,[u,l]=F.useState(!1);Ro(()=>l(!0),[]);const A=o||u&&((c=globalThis==null?void 0:globalThis.document)==null?void 0:c.body);return A?$h.createPortal(R.jsx(Tt.div,{...i,ref:a}),A):null});gp.displayName=P1;function N1(r,a){return F.useReducer((o,i)=>a[o][i]??o,r)}var Mo=r=>{const{present:a,children:o}=r,i=I1(a),u=typeof o=="function"?o({present:i.isPresent}):F.Children.only(o),l=gr(i.ref,M1(u));return typeof o=="function"||i.isPresent?F.cloneElement(u,{ref:l}):null};Mo.displayName="Presence";function I1(r){const[a,o]=F.useState(),i=F.useRef(null),u=F.useRef(r),l=F.useRef("none"),A=r?"mounted":"unmounted",[c,h]=N1(A,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return F.useEffect(()=>{const d=Js(i.current);l.current=c==="mounted"?d:"none"},[c]),Ro(()=>{const d=i.current,x=u.current;if(x!==r){const g=l.current,C=Js(d);r?h("MOUNT"):C==="none"||(d==null?void 0:d.display)==="none"?h("UNMOUNT"):h(x&&g!==C?"ANIMATION_OUT":"UNMOUNT"),u.current=r}},[r,h]),Ro(()=>{if(a){let d;const x=a.ownerDocument.defaultView??window,p=C=>{const b=Js(i.current).includes(CSS.escape(C.animationName));if(C.target===a&&b&&(h("ANIMATION_END"),!u.current)){const v=a.style.animationFillMode;a.style.animationFillMode="forwards",d=x.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=v)})}},g=C=>{C.target===a&&(l.current=Js(i.current))};return a.addEventListener("animationstart",g),a.addEventListener("animationcancel",p),a.addEventListener("animationend",p),()=>{x.clearTimeout(d),a.removeEventListener("animationstart",g),a.removeEventListener("animationcancel",p),a.removeEventListener("animationend",p)}}else h("ANIMATION_END")},[a,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:F.useCallback(d=>{i.current=d?getComputedStyle(d):null,o(d)},[])}}function Js(r){return(r==null?void 0:r.animationName)||"none"}function M1(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}var lu=0;function O1(){F.useEffect(()=>{const r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",r[0]??hA()),document.body.insertAdjacentElement("beforeend",r[1]??hA()),lu++,()=>{lu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(a=>a.remove()),lu--}},[])}function hA(){const r=document.createElement("span");return r.setAttribute("data-radix-focus-guard",""),r.tabIndex=0,r.style.outline="none",r.style.opacity="0",r.style.position="fixed",r.style.pointerEvents="none",r}var Lr=function(){return Lr=Object.assign||function(a){for(var o,i=1,u=arguments.length;i"u")return e2;var a=t2(r),o=document.documentElement.clientWidth,i=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,i-o+a[2]-a[0])}},n2=wp(),_o="data-scroll-locked",o2=function(r,a,o,i){var u=r.left,l=r.top,A=r.right,c=r.gap;return o===void 0&&(o="margin"),` .`.concat(H1,` { overflow: hidden `).concat(i,`; padding-right: `).concat(c,"px ").concat(i,`; @@ -110,14 +110,14 @@ Error generating stack: `+m.message+` body[`).concat(_o,`] { `).concat(L1,": ").concat(c,`px; } -`)},xA=function(){var r=parseInt(document.body.getAttribute(_o)||"0",10);return isFinite(r)?r:0},a2=function(){F.useEffect(function(){return document.body.setAttribute(_o,(xA()+1).toString()),function(){var r=xA()-1;r<=0?document.body.removeAttribute(_o):document.body.setAttribute(_o,r.toString())}},[])},s2=function(r){var a=r.noRelative,o=r.noImportant,i=r.gapMode,u=i===void 0?"margin":i;a2();var l=F.useMemo(function(){return r2(u)},[u]);return F.createElement(n2,{styles:o2(l,!a,u,o?"":"!important")})},ku=!1;if(typeof window<"u")try{var ei=Object.defineProperty({},"passive",{get:function(){return ku=!0,!0}});window.addEventListener("test",ei,ei),window.removeEventListener("test",ei,ei)}catch{ku=!1}var Eo=ku?{passive:!1}:!1,i2=function(r){return r.tagName==="TEXTAREA"},bp=function(r,a){if(!(r instanceof Element))return!1;var o=window.getComputedStyle(r);return o[a]!=="hidden"&&!(o.overflowY===o.overflowX&&!i2(r)&&o[a]==="visible")},l2=function(r){return bp(r,"overflowY")},c2=function(r){return bp(r,"overflowX")},mA=function(r,a){var o=a.ownerDocument,i=a;do{typeof ShadowRoot<"u"&&i instanceof ShadowRoot&&(i=i.host);var u=Ep(r,i);if(u){var l=kp(r,i),A=l[1],c=l[2];if(A>c)return!0}i=i.parentNode}while(i&&i!==o.body);return!1},u2=function(r){var a=r.scrollTop,o=r.scrollHeight,i=r.clientHeight;return[a,o,i]},d2=function(r){var a=r.scrollLeft,o=r.scrollWidth,i=r.clientWidth;return[a,o,i]},Ep=function(r,a){return r==="v"?l2(a):c2(a)},kp=function(r,a){return r==="v"?u2(a):d2(a)},f2=function(r,a){return r==="h"&&a==="rtl"?-1:1},A2=function(r,a,o,i,u){var l=f2(r,window.getComputedStyle(a).direction),A=l*i,c=o.target,h=a.contains(c),d=!1,p=A>0,x=0,g=0;do{if(!c)break;var w=kp(r,c),b=w[0],k=w[1],v=w[2],S=k-v-l*b;(b||S)&&Ep(r,c)&&(x+=S,g+=b);var E=c.parentNode;c=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!h&&c!==document.body||h&&(a.contains(c)||a===c));return(p&&Math.abs(x)<1||!p&&Math.abs(g)<1)&&(d=!0),d},ti=function(r){return"changedTouches"in r?[r.changedTouches[0].clientX,r.changedTouches[0].clientY]:[0,0]},gA=function(r){return[r.deltaX,r.deltaY]},vA=function(r){return r&&"current"in r?r.current:r},h2=function(r,a){return r[0]===a[0]&&r[1]===a[1]},p2=function(r){return` +`)},xA=function(){var r=parseInt(document.body.getAttribute(_o)||"0",10);return isFinite(r)?r:0},a2=function(){F.useEffect(function(){return document.body.setAttribute(_o,(xA()+1).toString()),function(){var r=xA()-1;r<=0?document.body.removeAttribute(_o):document.body.setAttribute(_o,r.toString())}},[])},s2=function(r){var a=r.noRelative,o=r.noImportant,i=r.gapMode,u=i===void 0?"margin":i;a2();var l=F.useMemo(function(){return r2(u)},[u]);return F.createElement(n2,{styles:o2(l,!a,u,o?"":"!important")})},ku=!1;if(typeof window<"u")try{var ei=Object.defineProperty({},"passive",{get:function(){return ku=!0,!0}});window.addEventListener("test",ei,ei),window.removeEventListener("test",ei,ei)}catch{ku=!1}var Eo=ku?{passive:!1}:!1,i2=function(r){return r.tagName==="TEXTAREA"},bp=function(r,a){if(!(r instanceof Element))return!1;var o=window.getComputedStyle(r);return o[a]!=="hidden"&&!(o.overflowY===o.overflowX&&!i2(r)&&o[a]==="visible")},l2=function(r){return bp(r,"overflowY")},c2=function(r){return bp(r,"overflowX")},mA=function(r,a){var o=a.ownerDocument,i=a;do{typeof ShadowRoot<"u"&&i instanceof ShadowRoot&&(i=i.host);var u=Ep(r,i);if(u){var l=kp(r,i),A=l[1],c=l[2];if(A>c)return!0}i=i.parentNode}while(i&&i!==o.body);return!1},u2=function(r){var a=r.scrollTop,o=r.scrollHeight,i=r.clientHeight;return[a,o,i]},d2=function(r){var a=r.scrollLeft,o=r.scrollWidth,i=r.clientWidth;return[a,o,i]},Ep=function(r,a){return r==="v"?l2(a):c2(a)},kp=function(r,a){return r==="v"?u2(a):d2(a)},f2=function(r,a){return r==="h"&&a==="rtl"?-1:1},A2=function(r,a,o,i,u){var l=f2(r,window.getComputedStyle(a).direction),A=l*i,c=o.target,h=a.contains(c),d=!1,x=A>0,p=0,g=0;do{if(!c)break;var C=kp(r,c),w=C[0],b=C[1],v=C[2],S=b-v-l*w;(w||S)&&Ep(r,c)&&(p+=S,g+=w);var E=c.parentNode;c=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!h&&c!==document.body||h&&(a.contains(c)||a===c));return(x&&Math.abs(p)<1||!x&&Math.abs(g)<1)&&(d=!0),d},ti=function(r){return"changedTouches"in r?[r.changedTouches[0].clientX,r.changedTouches[0].clientY]:[0,0]},gA=function(r){return[r.deltaX,r.deltaY]},vA=function(r){return r&&"current"in r?r.current:r},h2=function(r,a){return r[0]===a[0]&&r[1]===a[1]},p2=function(r){return` .block-interactivity-`.concat(r,` {pointer-events: none;} .allow-interactivity-`).concat(r,` {pointer-events: all;} -`)},x2=0,ko=[];function m2(r){var a=F.useRef([]),o=F.useRef([0,0]),i=F.useRef(),u=F.useState(x2++)[0],l=F.useState(wp)[0],A=F.useRef(r);F.useEffect(function(){A.current=r},[r]),F.useEffect(function(){if(r.inert){document.body.classList.add("block-interactivity-".concat(u));var k=j1([r.lockRef.current],(r.shards||[]).map(vA),!0).filter(Boolean);return k.forEach(function(v){return v.classList.add("allow-interactivity-".concat(u))}),function(){document.body.classList.remove("block-interactivity-".concat(u)),k.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(u))})}}},[r.inert,r.lockRef.current,r.shards]);var c=F.useCallback(function(k,v){if("touches"in k&&k.touches.length===2||k.type==="wheel"&&k.ctrlKey)return!A.current.allowPinchZoom;var S=ti(k),E=o.current,C="deltaX"in k?k.deltaX:E[0]-S[0],B="deltaY"in k?k.deltaY:E[1]-S[1],D,T=k.target,I=Math.abs(C)>Math.abs(B)?"h":"v";if("touches"in k&&I==="h"&&T.type==="range")return!1;var P=window.getSelection(),H=P&&P.anchorNode,M=H?H===T||H.contains(T):!1;if(M)return!1;var N=mA(I,T);if(!N)return!0;if(N?D=I:(D=I==="v"?"h":"v",N=mA(I,T)),!N)return!1;if(!i.current&&"changedTouches"in k&&(C||B)&&(i.current=D),!D)return!0;var V=i.current||D;return A2(V,v,k,V==="h"?C:B)},[]),h=F.useCallback(function(k){var v=k;if(!(!ko.length||ko[ko.length-1]!==l)){var S="deltaY"in v?gA(v):ti(v),E=a.current.filter(function(D){return D.name===v.type&&(D.target===v.target||v.target===D.shadowParent)&&h2(D.delta,S)})[0];if(E&&E.should){v.cancelable&&v.preventDefault();return}if(!E){var C=(A.current.shards||[]).map(vA).filter(Boolean).filter(function(D){return D.contains(v.target)}),B=C.length>0?c(v,C[0]):!A.current.noIsolation;B&&v.cancelable&&v.preventDefault()}}},[]),d=F.useCallback(function(k,v,S,E){var C={name:k,delta:v,target:S,should:E,shadowParent:g2(S)};a.current.push(C),setTimeout(function(){a.current=a.current.filter(function(B){return B!==C})},1)},[]),p=F.useCallback(function(k){o.current=ti(k),i.current=void 0},[]),x=F.useCallback(function(k){d(k.type,gA(k),k.target,c(k,r.lockRef.current))},[]),g=F.useCallback(function(k){d(k.type,ti(k),k.target,c(k,r.lockRef.current))},[]);F.useEffect(function(){return ko.push(l),r.setCallbacks({onScrollCapture:x,onWheelCapture:x,onTouchMoveCapture:g}),document.addEventListener("wheel",h,Eo),document.addEventListener("touchmove",h,Eo),document.addEventListener("touchstart",p,Eo),function(){ko=ko.filter(function(k){return k!==l}),document.removeEventListener("wheel",h,Eo),document.removeEventListener("touchmove",h,Eo),document.removeEventListener("touchstart",p,Eo)}},[]);var w=r.removeScrollBar,b=r.inert;return F.createElement(F.Fragment,null,b?F.createElement(l,{styles:p2(u)}):null,w?F.createElement(s2,{noRelative:r.noRelative,gapMode:r.gapMode}):null)}function g2(r){for(var a=null;r!==null;)r instanceof ShadowRoot&&(a=r.host,r=r.host),r=r.parentNode;return a}const v2=G1(Cp,m2);var Sp=F.forwardRef(function(r,a){return F.createElement(nl,Lr({},r,{ref:a,sideCar:v2}))});Sp.classNames=nl.classNames;var y2=function(r){if(typeof document>"u")return null;var a=Array.isArray(r)?r[0]:r;return a.ownerDocument.body},So=new WeakMap,ri=new WeakMap,ni={},fu=0,Bp=function(r){return r&&(r.host||Bp(r.parentNode))},C2=function(r,a){return a.map(function(o){if(r.contains(o))return o;var i=Bp(o);return i&&r.contains(i)?i:(console.error("aria-hidden",o,"in not contained inside",r,". Doing nothing"),null)}).filter(function(o){return!!o})},w2=function(r,a,o,i){var u=C2(a,Array.isArray(r)?r:[r]);ni[o]||(ni[o]=new WeakMap);var l=ni[o],A=[],c=new Set,h=new Set(u),d=function(x){!x||c.has(x)||(c.add(x),d(x.parentNode))};u.forEach(d);var p=function(x){!x||h.has(x)||Array.prototype.forEach.call(x.children,function(g){if(c.has(g))p(g);else try{var w=g.getAttribute(i),b=w!==null&&w!=="false",k=(So.get(g)||0)+1,v=(l.get(g)||0)+1;So.set(g,k),l.set(g,v),A.push(g),k===1&&b&&ri.set(g,!0),v===1&&g.setAttribute(o,"true"),b||g.setAttribute(i,"true")}catch(S){console.error("aria-hidden: cannot operate on ",g,S)}})};return p(a),c.clear(),fu++,function(){A.forEach(function(x){var g=So.get(x)-1,w=l.get(x)-1;So.set(x,g),l.set(x,w),g||(ri.has(x)||x.removeAttribute(i),ri.delete(x)),w||x.removeAttribute(o)}),fu--,fu||(So=new WeakMap,So=new WeakMap,ri=new WeakMap,ni={})}},b2=function(r,a,o){o===void 0&&(o="data-aria-hidden");var i=Array.from(Array.isArray(r)?r:[r]),u=y2(r);return u?(i.push.apply(i,Array.from(u.querySelectorAll("[aria-live], script"))),w2(i,u,o,"aria-hidden")):function(){return null}};function E2(r){const a=k2(r),o=F.forwardRef((i,u)=>{const{children:l,...A}=i,c=F.Children.toArray(l),h=c.find(B2);if(h){const d=h.props.children,p=c.map(x=>x===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:x);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,p):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}function k2(r){const a=F.forwardRef((o,i)=>{const{children:u,...l}=o;if(F.isValidElement(u)){const A=D2(u),c=_2(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var S2=Symbol("radix.slottable");function B2(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===S2}function _2(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function D2(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}var ol="Dialog",[_p]=za(ol),[F2,Rr]=_p(ol),Dp=r=>{const{__scopeDialog:a,children:o,open:i,defaultOpen:u,onOpenChange:l,modal:A=!0}=r,c=F.useRef(null),h=F.useRef(null),[d,p]=rl({prop:i,defaultProp:u??!1,onChange:l,caller:ol});return R.jsx(F2,{scope:a,triggerRef:c,contentRef:h,contentId:Ma(),titleId:Ma(),descriptionId:Ma(),open:d,onOpenChange:p,onOpenToggle:F.useCallback(()=>p(x=>!x),[p]),modal:A,children:o})};Dp.displayName=ol;var Fp="DialogTrigger",R2=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Fp,o),l=gr(a,u.triggerRef);return R.jsx(Ft.button,{type:"button","aria-haspopup":"dialog","aria-expanded":u.open,"aria-controls":u.contentId,"data-state":zu(u.open),...i,ref:l,onClick:kt(r.onClick,u.onOpenToggle)})});R2.displayName=Fp;var Hu="DialogPortal",[T2,Rp]=_p(Hu,{forceMount:void 0}),Tp=r=>{const{__scopeDialog:a,forceMount:o,children:i,container:u}=r,l=Rr(Hu,a);return R.jsx(T2,{scope:a,forceMount:o,children:F.Children.map(i,A=>R.jsx(Mo,{present:o||l.open,children:R.jsx(gp,{asChild:!0,container:u,children:A})}))})};Tp.displayName=Hu;var Ki="DialogOverlay",Pp=F.forwardRef((r,a)=>{const o=Rp(Ki,r.__scopeDialog),{forceMount:i=o.forceMount,...u}=r,l=Rr(Ki,r.__scopeDialog);return l.modal?R.jsx(Mo,{present:i||l.open,children:R.jsx(N2,{...u,ref:a})}):null});Pp.displayName=Ki;var P2=E2("DialogOverlay.RemoveScroll"),N2=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Ki,o);return R.jsx(Sp,{as:P2,allowPinchZoom:!0,shards:[u.contentRef],children:R.jsx(Ft.div,{"data-state":zu(u.open),...i,ref:a,style:{pointerEvents:"auto",...i.style}})})}),Yn="DialogContent",Np=F.forwardRef((r,a)=>{const o=Rp(Yn,r.__scopeDialog),{forceMount:i=o.forceMount,...u}=r,l=Rr(Yn,r.__scopeDialog);return R.jsx(Mo,{present:i||l.open,children:l.modal?R.jsx(I2,{...u,ref:a}):R.jsx(M2,{...u,ref:a})})});Np.displayName=Yn;var I2=F.forwardRef((r,a)=>{const o=Rr(Yn,r.__scopeDialog),i=F.useRef(null),u=gr(a,o.contentRef,i);return F.useEffect(()=>{const l=i.current;if(l)return b2(l)},[]),R.jsx(Ip,{...r,ref:u,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:kt(r.onCloseAutoFocus,l=>{var A;l.preventDefault(),(A=o.triggerRef.current)==null||A.focus()}),onPointerDownOutside:kt(r.onPointerDownOutside,l=>{const A=l.detail.originalEvent,c=A.button===0&&A.ctrlKey===!0;(A.button===2||c)&&l.preventDefault()}),onFocusOutside:kt(r.onFocusOutside,l=>l.preventDefault())})}),M2=F.forwardRef((r,a)=>{const o=Rr(Yn,r.__scopeDialog),i=F.useRef(!1),u=F.useRef(!1);return R.jsx(Ip,{...r,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:l=>{var A,c;(A=r.onCloseAutoFocus)==null||A.call(r,l),l.defaultPrevented||(i.current||(c=o.triggerRef.current)==null||c.focus(),l.preventDefault()),i.current=!1,u.current=!1},onInteractOutside:l=>{var h,d;(h=r.onInteractOutside)==null||h.call(r,l),l.defaultPrevented||(i.current=!0,l.detail.originalEvent.type==="pointerdown"&&(u.current=!0));const A=l.target;((d=o.triggerRef.current)==null?void 0:d.contains(A))&&l.preventDefault(),l.detail.originalEvent.type==="focusin"&&u.current&&l.preventDefault()}})}),Ip=F.forwardRef((r,a)=>{const{__scopeDialog:o,trapFocus:i,onOpenAutoFocus:u,onCloseAutoFocus:l,...A}=r,c=Rr(Yn,o),h=F.useRef(null),d=gr(a,h);return O1(),R.jsxs(R.Fragment,{children:[R.jsx(xp,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:u,onUnmountAutoFocus:l,children:R.jsx(hp,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":zu(c.open),...A,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),R.jsxs(R.Fragment,{children:[R.jsx(O2,{titleId:c.titleId}),R.jsx(H2,{contentRef:h,descriptionId:c.descriptionId})]})]})}),Lu="DialogTitle",Mp=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Lu,o);return R.jsx(Ft.h2,{id:u.titleId,...i,ref:a})});Mp.displayName=Lu;var Op="DialogDescription",jp=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Op,o);return R.jsx(Ft.p,{id:u.descriptionId,...i,ref:a})});jp.displayName=Op;var Hp="DialogClose",Lp=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Hp,o);return R.jsx(Ft.button,{type:"button",...i,ref:a,onClick:kt(r.onClick,()=>u.onOpenChange(!1))})});Lp.displayName=Hp;function zu(r){return r?"open":"closed"}var zp="DialogTitleWarning",[Yw,Vp]=n1(zp,{contentName:Yn,titleName:Lu,docsSlug:"dialog"}),O2=({titleId:r})=>{const a=Vp(zp),o=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users. +`)},x2=0,ko=[];function m2(r){var a=F.useRef([]),o=F.useRef([0,0]),i=F.useRef(),u=F.useState(x2++)[0],l=F.useState(wp)[0],A=F.useRef(r);F.useEffect(function(){A.current=r},[r]),F.useEffect(function(){if(r.inert){document.body.classList.add("block-interactivity-".concat(u));var b=j1([r.lockRef.current],(r.shards||[]).map(vA),!0).filter(Boolean);return b.forEach(function(v){return v.classList.add("allow-interactivity-".concat(u))}),function(){document.body.classList.remove("block-interactivity-".concat(u)),b.forEach(function(v){return v.classList.remove("allow-interactivity-".concat(u))})}}},[r.inert,r.lockRef.current,r.shards]);var c=F.useCallback(function(b,v){if("touches"in b&&b.touches.length===2||b.type==="wheel"&&b.ctrlKey)return!A.current.allowPinchZoom;var S=ti(b),E=o.current,y="deltaX"in b?b.deltaX:E[0]-S[0],B="deltaY"in b?b.deltaY:E[1]-S[1],D,T=b.target,M=Math.abs(y)>Math.abs(B)?"h":"v";if("touches"in b&&M==="h"&&T.type==="range")return!1;var P=window.getSelection(),j=P&&P.anchorNode,I=j?j===T||j.contains(T):!1;if(I)return!1;var N=mA(M,T);if(!N)return!0;if(N?D=M:(D=M==="v"?"h":"v",N=mA(M,T)),!N)return!1;if(!i.current&&"changedTouches"in b&&(y||B)&&(i.current=D),!D)return!0;var z=i.current||D;return A2(z,v,b,z==="h"?y:B)},[]),h=F.useCallback(function(b){var v=b;if(!(!ko.length||ko[ko.length-1]!==l)){var S="deltaY"in v?gA(v):ti(v),E=a.current.filter(function(D){return D.name===v.type&&(D.target===v.target||v.target===D.shadowParent)&&h2(D.delta,S)})[0];if(E&&E.should){v.cancelable&&v.preventDefault();return}if(!E){var y=(A.current.shards||[]).map(vA).filter(Boolean).filter(function(D){return D.contains(v.target)}),B=y.length>0?c(v,y[0]):!A.current.noIsolation;B&&v.cancelable&&v.preventDefault()}}},[]),d=F.useCallback(function(b,v,S,E){var y={name:b,delta:v,target:S,should:E,shadowParent:g2(S)};a.current.push(y),setTimeout(function(){a.current=a.current.filter(function(B){return B!==y})},1)},[]),x=F.useCallback(function(b){o.current=ti(b),i.current=void 0},[]),p=F.useCallback(function(b){d(b.type,gA(b),b.target,c(b,r.lockRef.current))},[]),g=F.useCallback(function(b){d(b.type,ti(b),b.target,c(b,r.lockRef.current))},[]);F.useEffect(function(){return ko.push(l),r.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",h,Eo),document.addEventListener("touchmove",h,Eo),document.addEventListener("touchstart",x,Eo),function(){ko=ko.filter(function(b){return b!==l}),document.removeEventListener("wheel",h,Eo),document.removeEventListener("touchmove",h,Eo),document.removeEventListener("touchstart",x,Eo)}},[]);var C=r.removeScrollBar,w=r.inert;return F.createElement(F.Fragment,null,w?F.createElement(l,{styles:p2(u)}):null,C?F.createElement(s2,{noRelative:r.noRelative,gapMode:r.gapMode}):null)}function g2(r){for(var a=null;r!==null;)r instanceof ShadowRoot&&(a=r.host,r=r.host),r=r.parentNode;return a}const v2=G1(Cp,m2);var Sp=F.forwardRef(function(r,a){return F.createElement(nl,Lr({},r,{ref:a,sideCar:v2}))});Sp.classNames=nl.classNames;var y2=function(r){if(typeof document>"u")return null;var a=Array.isArray(r)?r[0]:r;return a.ownerDocument.body},So=new WeakMap,ri=new WeakMap,ni={},fu=0,Bp=function(r){return r&&(r.host||Bp(r.parentNode))},C2=function(r,a){return a.map(function(o){if(r.contains(o))return o;var i=Bp(o);return i&&r.contains(i)?i:(console.error("aria-hidden",o,"in not contained inside",r,". Doing nothing"),null)}).filter(function(o){return!!o})},w2=function(r,a,o,i){var u=C2(a,Array.isArray(r)?r:[r]);ni[o]||(ni[o]=new WeakMap);var l=ni[o],A=[],c=new Set,h=new Set(u),d=function(p){!p||c.has(p)||(c.add(p),d(p.parentNode))};u.forEach(d);var x=function(p){!p||h.has(p)||Array.prototype.forEach.call(p.children,function(g){if(c.has(g))x(g);else try{var C=g.getAttribute(i),w=C!==null&&C!=="false",b=(So.get(g)||0)+1,v=(l.get(g)||0)+1;So.set(g,b),l.set(g,v),A.push(g),b===1&&w&&ri.set(g,!0),v===1&&g.setAttribute(o,"true"),w||g.setAttribute(i,"true")}catch(S){console.error("aria-hidden: cannot operate on ",g,S)}})};return x(a),c.clear(),fu++,function(){A.forEach(function(p){var g=So.get(p)-1,C=l.get(p)-1;So.set(p,g),l.set(p,C),g||(ri.has(p)||p.removeAttribute(i),ri.delete(p)),C||p.removeAttribute(o)}),fu--,fu||(So=new WeakMap,So=new WeakMap,ri=new WeakMap,ni={})}},b2=function(r,a,o){o===void 0&&(o="data-aria-hidden");var i=Array.from(Array.isArray(r)?r:[r]),u=y2(r);return u?(i.push.apply(i,Array.from(u.querySelectorAll("[aria-live], script"))),w2(i,u,o,"aria-hidden")):function(){return null}};function E2(r){const a=k2(r),o=F.forwardRef((i,u)=>{const{children:l,...A}=i,c=F.Children.toArray(l),h=c.find(B2);if(h){const d=h.props.children,x=c.map(p=>p===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:p);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,x):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}function k2(r){const a=F.forwardRef((o,i)=>{const{children:u,...l}=o;if(F.isValidElement(u)){const A=D2(u),c=_2(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var S2=Symbol("radix.slottable");function B2(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===S2}function _2(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function D2(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}var ol="Dialog",[_p]=za(ol),[F2,Rr]=_p(ol),Dp=r=>{const{__scopeDialog:a,children:o,open:i,defaultOpen:u,onOpenChange:l,modal:A=!0}=r,c=F.useRef(null),h=F.useRef(null),[d,x]=rl({prop:i,defaultProp:u??!1,onChange:l,caller:ol});return R.jsx(F2,{scope:a,triggerRef:c,contentRef:h,contentId:Ma(),titleId:Ma(),descriptionId:Ma(),open:d,onOpenChange:x,onOpenToggle:F.useCallback(()=>x(p=>!p),[x]),modal:A,children:o})};Dp.displayName=ol;var Fp="DialogTrigger",R2=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Fp,o),l=gr(a,u.triggerRef);return R.jsx(Tt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":u.open,"aria-controls":u.contentId,"data-state":zu(u.open),...i,ref:l,onClick:St(r.onClick,u.onOpenToggle)})});R2.displayName=Fp;var Hu="DialogPortal",[T2,Rp]=_p(Hu,{forceMount:void 0}),Tp=r=>{const{__scopeDialog:a,forceMount:o,children:i,container:u}=r,l=Rr(Hu,a);return R.jsx(T2,{scope:a,forceMount:o,children:F.Children.map(i,A=>R.jsx(Mo,{present:o||l.open,children:R.jsx(gp,{asChild:!0,container:u,children:A})}))})};Tp.displayName=Hu;var Ki="DialogOverlay",Pp=F.forwardRef((r,a)=>{const o=Rp(Ki,r.__scopeDialog),{forceMount:i=o.forceMount,...u}=r,l=Rr(Ki,r.__scopeDialog);return l.modal?R.jsx(Mo,{present:i||l.open,children:R.jsx(N2,{...u,ref:a})}):null});Pp.displayName=Ki;var P2=E2("DialogOverlay.RemoveScroll"),N2=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Ki,o);return R.jsx(Sp,{as:P2,allowPinchZoom:!0,shards:[u.contentRef],children:R.jsx(Tt.div,{"data-state":zu(u.open),...i,ref:a,style:{pointerEvents:"auto",...i.style}})})}),Yn="DialogContent",Np=F.forwardRef((r,a)=>{const o=Rp(Yn,r.__scopeDialog),{forceMount:i=o.forceMount,...u}=r,l=Rr(Yn,r.__scopeDialog);return R.jsx(Mo,{present:i||l.open,children:l.modal?R.jsx(I2,{...u,ref:a}):R.jsx(M2,{...u,ref:a})})});Np.displayName=Yn;var I2=F.forwardRef((r,a)=>{const o=Rr(Yn,r.__scopeDialog),i=F.useRef(null),u=gr(a,o.contentRef,i);return F.useEffect(()=>{const l=i.current;if(l)return b2(l)},[]),R.jsx(Ip,{...r,ref:u,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:St(r.onCloseAutoFocus,l=>{var A;l.preventDefault(),(A=o.triggerRef.current)==null||A.focus()}),onPointerDownOutside:St(r.onPointerDownOutside,l=>{const A=l.detail.originalEvent,c=A.button===0&&A.ctrlKey===!0;(A.button===2||c)&&l.preventDefault()}),onFocusOutside:St(r.onFocusOutside,l=>l.preventDefault())})}),M2=F.forwardRef((r,a)=>{const o=Rr(Yn,r.__scopeDialog),i=F.useRef(!1),u=F.useRef(!1);return R.jsx(Ip,{...r,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:l=>{var A,c;(A=r.onCloseAutoFocus)==null||A.call(r,l),l.defaultPrevented||(i.current||(c=o.triggerRef.current)==null||c.focus(),l.preventDefault()),i.current=!1,u.current=!1},onInteractOutside:l=>{var h,d;(h=r.onInteractOutside)==null||h.call(r,l),l.defaultPrevented||(i.current=!0,l.detail.originalEvent.type==="pointerdown"&&(u.current=!0));const A=l.target;((d=o.triggerRef.current)==null?void 0:d.contains(A))&&l.preventDefault(),l.detail.originalEvent.type==="focusin"&&u.current&&l.preventDefault()}})}),Ip=F.forwardRef((r,a)=>{const{__scopeDialog:o,trapFocus:i,onOpenAutoFocus:u,onCloseAutoFocus:l,...A}=r,c=Rr(Yn,o),h=F.useRef(null),d=gr(a,h);return O1(),R.jsxs(R.Fragment,{children:[R.jsx(xp,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:u,onUnmountAutoFocus:l,children:R.jsx(hp,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":zu(c.open),...A,ref:d,onDismiss:()=>c.onOpenChange(!1)})}),R.jsxs(R.Fragment,{children:[R.jsx(O2,{titleId:c.titleId}),R.jsx(H2,{contentRef:h,descriptionId:c.descriptionId})]})]})}),Lu="DialogTitle",Mp=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Lu,o);return R.jsx(Tt.h2,{id:u.titleId,...i,ref:a})});Mp.displayName=Lu;var Op="DialogDescription",jp=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Op,o);return R.jsx(Tt.p,{id:u.descriptionId,...i,ref:a})});jp.displayName=Op;var Hp="DialogClose",Lp=F.forwardRef((r,a)=>{const{__scopeDialog:o,...i}=r,u=Rr(Hp,o);return R.jsx(Tt.button,{type:"button",...i,ref:a,onClick:St(r.onClick,()=>u.onOpenChange(!1))})});Lp.displayName=Hp;function zu(r){return r?"open":"closed"}var zp="DialogTitleWarning",[Yw,Vp]=n1(zp,{contentName:Yn,titleName:Lu,docsSlug:"dialog"}),O2=({titleId:r})=>{const a=Vp(zp),o=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${a.titleName}\`, you can wrap it with our VisuallyHidden component. -For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return F.useEffect(()=>{r&&(document.getElementById(r)||console.error(o))},[o,r]),null},j2="DialogDescriptionWarning",H2=({contentRef:r,descriptionId:a})=>{const i=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Vp(j2).contentName}}.`;return F.useEffect(()=>{var l;const u=(l=r.current)==null?void 0:l.getAttribute("aria-describedby");a&&u&&(document.getElementById(a)||console.warn(i))},[i,r,a]),null},Up=Dp,Wp=Tp,al=Pp,sl=Np,il=Mp,ll=jp,qp=Lp;const Qp=Up,L2=Wp,Gp=F.forwardRef(({className:r,...a},o)=>R.jsx(al,{ref:o,className:qe("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a}));Gp.displayName=al.displayName;const Vu=F.forwardRef(({className:r,children:a,...o},i)=>R.jsxs(L2,{children:[R.jsx(Gp,{}),R.jsxs(sl,{ref:i,className:qe("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...o,children:[a,R.jsxs(qp,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[R.jsx(Qh,{className:"h-4 w-4"}),R.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Vu.displayName=sl.displayName;const Uu=({className:r,...a})=>R.jsx("div",{className:qe("flex flex-col space-y-1.5 text-center sm:text-left",r),...a});Uu.displayName="DialogHeader";const Wu=({className:r,...a})=>R.jsx("div",{className:qe("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",r),...a});Wu.displayName="DialogFooter";const qu=F.forwardRef(({className:r,...a},o)=>R.jsx(il,{ref:o,className:qe("text-lg font-semibold leading-none tracking-tight",r),...a}));qu.displayName=il.displayName;const z2=F.forwardRef(({className:r,...a},o)=>R.jsx(ll,{ref:o,className:qe("text-sm text-muted-foreground",r),...a}));z2.displayName=ll.displayName;function yA(r){const a=V2(r),o=F.forwardRef((i,u)=>{const{children:l,...A}=i,c=F.Children.toArray(l),h=c.find(W2);if(h){const d=h.props.children,p=c.map(x=>x===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:x);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,p):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}function V2(r){const a=F.forwardRef((o,i)=>{const{children:u,...l}=o;if(F.isValidElement(u)){const A=Q2(u),c=q2(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var U2=Symbol("radix.slottable");function W2(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===U2}function q2(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function Q2(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}function G2(r){const a=r+"CollectionProvider",[o,i]=za(a),[u,l]=o(a,{collectionRef:{current:null},itemMap:new Map}),A=k=>{const{scope:v,children:S}=k,E=he.useRef(null),C=he.useRef(new Map).current;return R.jsx(u,{scope:v,itemMap:C,collectionRef:E,children:S})};A.displayName=a;const c=r+"CollectionSlot",h=yA(c),d=he.forwardRef((k,v)=>{const{scope:S,children:E}=k,C=l(c,S),B=gr(v,C.collectionRef);return R.jsx(h,{ref:B,children:E})});d.displayName=c;const p=r+"CollectionItemSlot",x="data-radix-collection-item",g=yA(p),w=he.forwardRef((k,v)=>{const{scope:S,children:E,...C}=k,B=he.useRef(null),D=gr(v,B),T=l(p,S);return he.useEffect(()=>(T.itemMap.set(B,{ref:B,...C}),()=>void T.itemMap.delete(B))),R.jsx(g,{[x]:"",ref:D,children:E})});w.displayName=p;function b(k){const v=l(r+"CollectionConsumer",k);return he.useCallback(()=>{const E=v.collectionRef.current;if(!E)return[];const C=Array.from(E.querySelectorAll(`[${x}]`));return Array.from(v.itemMap.values()).sort((T,I)=>C.indexOf(T.ref.current)-C.indexOf(I.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:A,Slot:d,ItemSlot:w},b,i]}var $2=F.createContext(void 0);function $p(r){const a=F.useContext($2);return r||a||"ltr"}var Au="rovingFocusGroup.onEntryFocus",K2={bubbles:!1,cancelable:!0},Va="RovingFocusGroup",[Su,Kp,Y2]=G2(Va),[Z2,Yp]=za(Va,[Y2]),[X2,J2]=Z2(Va),Zp=F.forwardRef((r,a)=>R.jsx(Su.Provider,{scope:r.__scopeRovingFocusGroup,children:R.jsx(Su.Slot,{scope:r.__scopeRovingFocusGroup,children:R.jsx(eC,{...r,ref:a})})}));Zp.displayName=Va;var eC=F.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:o,orientation:i,loop:u=!1,dir:l,currentTabStopId:A,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:h,onEntryFocus:d,preventScrollOnEntryFocus:p=!1,...x}=r,g=F.useRef(null),w=gr(a,g),b=$p(l),[k,v]=rl({prop:A,defaultProp:c??null,onChange:h,caller:Va}),[S,E]=F.useState(!1),C=To(d),B=Kp(o),D=F.useRef(!1),[T,I]=F.useState(0);return F.useEffect(()=>{const P=g.current;if(P)return P.addEventListener(Au,C),()=>P.removeEventListener(Au,C)},[C]),R.jsx(X2,{scope:o,orientation:i,dir:b,loop:u,currentTabStopId:k,onItemFocus:F.useCallback(P=>v(P),[v]),onItemShiftTab:F.useCallback(()=>E(!0),[]),onFocusableItemAdd:F.useCallback(()=>I(P=>P+1),[]),onFocusableItemRemove:F.useCallback(()=>I(P=>P-1),[]),children:R.jsx(Ft.div,{tabIndex:S||T===0?-1:0,"data-orientation":i,...x,ref:w,style:{outline:"none",...r.style},onMouseDown:kt(r.onMouseDown,()=>{D.current=!0}),onFocus:kt(r.onFocus,P=>{const H=!D.current;if(P.target===P.currentTarget&&H&&!S){const M=new CustomEvent(Au,K2);if(P.currentTarget.dispatchEvent(M),!M.defaultPrevented){const N=B().filter(J=>J.focusable),V=N.find(J=>J.active),Q=N.find(J=>J.id===k),ae=[V,Q,...N].filter(Boolean).map(J=>J.ref.current);ex(ae,p)}}D.current=!1}),onBlur:kt(r.onBlur,()=>E(!1))})})}),Xp="RovingFocusGroupItem",Jp=F.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:o,focusable:i=!0,active:u=!1,tabStopId:l,children:A,...c}=r,h=Ma(),d=l||h,p=J2(Xp,o),x=p.currentTabStopId===d,g=Kp(o),{onFocusableItemAdd:w,onFocusableItemRemove:b,currentTabStopId:k}=p;return F.useEffect(()=>{if(i)return w(),()=>b()},[i,w,b]),R.jsx(Su.ItemSlot,{scope:o,id:d,focusable:i,active:u,children:R.jsx(Ft.span,{tabIndex:x?0:-1,"data-orientation":p.orientation,...c,ref:a,onMouseDown:kt(r.onMouseDown,v=>{i?p.onItemFocus(d):v.preventDefault()}),onFocus:kt(r.onFocus,()=>p.onItemFocus(d)),onKeyDown:kt(r.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){p.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const S=nC(v,p.orientation,p.dir);if(S!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let C=g().filter(B=>B.focusable).map(B=>B.ref.current);if(S==="last")C.reverse();else if(S==="prev"||S==="next"){S==="prev"&&C.reverse();const B=C.indexOf(v.currentTarget);C=p.loop?oC(C,B+1):C.slice(B+1)}setTimeout(()=>ex(C))}}),children:typeof A=="function"?A({isCurrentTabStop:x,hasTabStop:k!=null}):A})})});Jp.displayName=Xp;var tC={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rC(r,a){return a!=="rtl"?r:r==="ArrowLeft"?"ArrowRight":r==="ArrowRight"?"ArrowLeft":r}function nC(r,a,o){const i=rC(r.key,o);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(i))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(i)))return tC[i]}function ex(r,a=!1){const o=document.activeElement;for(const i of r)if(i===o||(i.focus({preventScroll:a}),document.activeElement!==o))return}function oC(r,a){return r.map((o,i)=>r[(a+i)%r.length])}var aC=Zp,sC=Jp,cl="Tabs",[iC]=za(cl,[Yp]),tx=Yp(),[lC,Qu]=iC(cl),rx=F.forwardRef((r,a)=>{const{__scopeTabs:o,value:i,onValueChange:u,defaultValue:l,orientation:A="horizontal",dir:c,activationMode:h="automatic",...d}=r,p=$p(c),[x,g]=rl({prop:i,onChange:u,defaultProp:l??"",caller:cl});return R.jsx(lC,{scope:o,baseId:Ma(),value:x,onValueChange:g,orientation:A,dir:p,activationMode:h,children:R.jsx(Ft.div,{dir:p,"data-orientation":A,...d,ref:a})})});rx.displayName=cl;var nx="TabsList",ox=F.forwardRef((r,a)=>{const{__scopeTabs:o,loop:i=!0,...u}=r,l=Qu(nx,o),A=tx(o);return R.jsx(aC,{asChild:!0,...A,orientation:l.orientation,dir:l.dir,loop:i,children:R.jsx(Ft.div,{role:"tablist","aria-orientation":l.orientation,...u,ref:a})})});ox.displayName=nx;var ax="TabsTrigger",sx=F.forwardRef((r,a)=>{const{__scopeTabs:o,value:i,disabled:u=!1,...l}=r,A=Qu(ax,o),c=tx(o),h=cx(A.baseId,i),d=ux(A.baseId,i),p=i===A.value;return R.jsx(sC,{asChild:!0,...c,focusable:!u,active:p,children:R.jsx(Ft.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":d,"data-state":p?"active":"inactive","data-disabled":u?"":void 0,disabled:u,id:h,...l,ref:a,onMouseDown:kt(r.onMouseDown,x=>{!u&&x.button===0&&x.ctrlKey===!1?A.onValueChange(i):x.preventDefault()}),onKeyDown:kt(r.onKeyDown,x=>{[" ","Enter"].includes(x.key)&&A.onValueChange(i)}),onFocus:kt(r.onFocus,()=>{const x=A.activationMode!=="manual";!p&&!u&&x&&A.onValueChange(i)})})})});sx.displayName=ax;var ix="TabsContent",lx=F.forwardRef((r,a)=>{const{__scopeTabs:o,value:i,forceMount:u,children:l,...A}=r,c=Qu(ix,o),h=cx(c.baseId,i),d=ux(c.baseId,i),p=i===c.value,x=F.useRef(p);return F.useEffect(()=>{const g=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(g)},[]),R.jsx(Mo,{present:u||p,children:({present:g})=>R.jsx(Ft.div,{"data-state":p?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":h,hidden:!g,id:d,tabIndex:0,...A,ref:a,style:{...r.style,animationDuration:x.current?"0s":void 0},children:g&&l})})});lx.displayName=ix;function cx(r,a){return`${r}-trigger-${a}`}function ux(r,a){return`${r}-content-${a}`}var cC=rx,dx=ox,fx=sx,Ax=lx;const uC=cC,hx=F.forwardRef(({className:r,...a},o)=>R.jsx(dx,{ref:o,className:qe("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",r),...a}));hx.displayName=dx.displayName;const Ta=F.forwardRef(({className:r,...a},o)=>R.jsx(fx,{ref:o,className:qe("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",r),...a}));Ta.displayName=fx.displayName;const Pa=F.forwardRef(({className:r,...a},o)=>R.jsx(Ax,{ref:o,className:qe("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...a}));Pa.displayName=Ax.displayName;var dC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],fC=dC.reduce((r,a)=>{const o=ju(`Primitive.${a}`),i=F.forwardRef((u,l)=>{const{asChild:A,...c}=u,h=A?o:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(h,{...c,ref:l})});return i.displayName=`Primitive.${a}`,{...r,[a]:i}},{}),AC="Label",px=F.forwardRef((r,a)=>R.jsx(fC.label,{...r,ref:a,onMouseDown:o=>{var u;o.target.closest("button, input, select, textarea")||((u=r.onMouseDown)==null||u.call(r,o),!o.defaultPrevented&&o.detail>1&&o.preventDefault())}}));px.displayName=AC;var xx=px;const hC=tl("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),mt=F.forwardRef(({className:r,...a},o)=>R.jsx(xx,{ref:o,className:qe(hC(),r),...a}));mt.displayName=xx.displayName;function pC(r){const a=F.useRef({value:r,previous:r});return F.useMemo(()=>(a.current.value!==r&&(a.current.previous=a.current.value,a.current.value=r),a.current.previous),[r])}function xC(r){const[a,o]=F.useState(void 0);return Ro(()=>{if(r){o({width:r.offsetWidth,height:r.offsetHeight});const i=new ResizeObserver(u=>{if(!Array.isArray(u)||!u.length)return;const l=u[0];let A,c;if("borderBoxSize"in l){const h=l.borderBoxSize,d=Array.isArray(h)?h[0]:h;A=d.inlineSize,c=d.blockSize}else A=r.offsetWidth,c=r.offsetHeight;o({width:A,height:c})});return i.observe(r,{box:"border-box"}),()=>i.unobserve(r)}else o(void 0)},[r]),a}var ul="Checkbox",[mC]=za(ul),[gC,Gu]=mC(ul);function vC(r){const{__scopeCheckbox:a,checked:o,children:i,defaultChecked:u,disabled:l,form:A,name:c,onCheckedChange:h,required:d,value:p="on",internal_do_not_use_render:x}=r,[g,w]=rl({prop:o,defaultProp:u??!1,onChange:h,caller:ul}),[b,k]=F.useState(null),[v,S]=F.useState(null),E=F.useRef(!1),C=b?!!A||!!b.closest("form"):!0,B={checked:g,disabled:l,setChecked:w,control:b,setControl:k,name:c,form:A,value:p,hasConsumerStoppedPropagationRef:E,required:d,defaultChecked:kn(u)?!1:u,isFormControl:C,bubbleInput:v,setBubbleInput:S};return R.jsx(gC,{scope:a,...B,children:yC(x)?x(B):i})}var mx="CheckboxTrigger",gx=F.forwardRef(({__scopeCheckbox:r,onKeyDown:a,onClick:o,...i},u)=>{const{control:l,value:A,disabled:c,checked:h,required:d,setControl:p,setChecked:x,hasConsumerStoppedPropagationRef:g,isFormControl:w,bubbleInput:b}=Gu(mx,r),k=gr(u,p),v=F.useRef(h);return F.useEffect(()=>{const S=l==null?void 0:l.form;if(S){const E=()=>x(v.current);return S.addEventListener("reset",E),()=>S.removeEventListener("reset",E)}},[l,x]),R.jsx(Ft.button,{type:"button",role:"checkbox","aria-checked":kn(h)?"mixed":h,"aria-required":d,"data-state":bx(h),"data-disabled":c?"":void 0,disabled:c,value:A,...i,ref:k,onKeyDown:kt(a,S=>{S.key==="Enter"&&S.preventDefault()}),onClick:kt(o,S=>{x(E=>kn(E)?!0:!E),b&&w&&(g.current=S.isPropagationStopped(),g.current||S.stopPropagation())})})});gx.displayName=mx;var $u=F.forwardRef((r,a)=>{const{__scopeCheckbox:o,name:i,checked:u,defaultChecked:l,required:A,disabled:c,value:h,onCheckedChange:d,form:p,...x}=r;return R.jsx(vC,{__scopeCheckbox:o,checked:u,defaultChecked:l,disabled:c,required:A,onCheckedChange:d,name:i,form:p,value:h,internal_do_not_use_render:({isFormControl:g})=>R.jsxs(R.Fragment,{children:[R.jsx(gx,{...x,ref:a,__scopeCheckbox:o}),g&&R.jsx(wx,{__scopeCheckbox:o})]})})});$u.displayName=ul;var vx="CheckboxIndicator",yx=F.forwardRef((r,a)=>{const{__scopeCheckbox:o,forceMount:i,...u}=r,l=Gu(vx,o);return R.jsx(Mo,{present:i||kn(l.checked)||l.checked===!0,children:R.jsx(Ft.span,{"data-state":bx(l.checked),"data-disabled":l.disabled?"":void 0,...u,ref:a,style:{pointerEvents:"none",...r.style}})})});yx.displayName=vx;var Cx="CheckboxBubbleInput",wx=F.forwardRef(({__scopeCheckbox:r,...a},o)=>{const{control:i,hasConsumerStoppedPropagationRef:u,checked:l,defaultChecked:A,required:c,disabled:h,name:d,value:p,form:x,bubbleInput:g,setBubbleInput:w}=Gu(Cx,r),b=gr(o,w),k=pC(l),v=xC(i);F.useEffect(()=>{const E=g;if(!E)return;const C=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(C,"checked").set,T=!u.current;if(k!==l&&D){const I=new Event("click",{bubbles:T});E.indeterminate=kn(l),D.call(E,kn(l)?!1:l),E.dispatchEvent(I)}},[g,k,l,u]);const S=F.useRef(kn(l)?!1:l);return R.jsx(Ft.input,{type:"checkbox","aria-hidden":!0,defaultChecked:A??S.current,required:c,disabled:h,name:d,value:p,form:x,...a,tabIndex:-1,ref:b,style:{...a.style,...v,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});wx.displayName=Cx;function yC(r){return typeof r=="function"}function kn(r){return r==="indeterminate"}function bx(r){return kn(r)?"indeterminate":r?"checked":"unchecked"}const Ex=F.forwardRef(({className:r,...a},o)=>R.jsx($u,{ref:o,className:qe("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:R.jsx(yx,{className:qe("flex items-center justify-center text-current"),children:R.jsx(hv,{className:"h-4 w-4"})})}));Ex.displayName=$u.displayName;function CC({open:r,contacts:a,undecryptedCount:o,onClose:i,onSelectConversation:u,onCreateContact:l,onCreateChannel:A,onCreateHashtagChannel:c}){const[h,d]=F.useState("existing"),[p,x]=F.useState(""),[g,w]=F.useState(""),[b,k]=F.useState(!1),[v,S]=F.useState(""),[E,C]=F.useState(!1),B=F.useRef(null),D=async()=>{S(""),C(!0);try{if(h==="new-contact"){if(!p.trim()||!g.trim()){S("Name and public key are required");return}await l(p.trim(),g.trim(),b),u({type:"contact",id:g.trim(),name:p.trim()})}else if(h==="new-room"){if(!p.trim()||!g.trim()){S("Room name and key are required");return}await A(p.trim(),g.trim(),b)}else if(h==="hashtag"){const H=p.trim(),M=T(H);if(M){S(M);return}await c(`#${H}`,b)}i()}catch(H){S(H instanceof Error?H.message:"Failed to create")}finally{C(!1)}},T=H=>H?/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(H)?null:"Use letters, numbers, and single dashes (no leading/trailing dashes)":"Channel name is required",I=async()=>{var N;S("");const H=p.trim(),M=T(H);if(M){S(M);return}C(!0);try{await c(`#${H}`,b),x(""),(N=B.current)==null||N.focus()}catch(V){S(V instanceof Error?V.message:"Failed to create")}finally{C(!1)}},P=h!=="existing"&&o>0;return R.jsx(Qp,{open:r,onOpenChange:H=>!H&&i(),children:R.jsxs(Vu,{className:"sm:max-w-[500px]",children:[R.jsx(Uu,{children:R.jsx(qu,{children:"New Conversation"})}),R.jsxs(uC,{value:h,onValueChange:H=>d(H),className:"w-full",children:[R.jsxs(hx,{className:"grid w-full grid-cols-4",children:[R.jsx(Ta,{value:"existing",children:"Existing"}),R.jsx(Ta,{value:"new-contact",children:"Contact"}),R.jsx(Ta,{value:"new-room",children:"Room"}),R.jsx(Ta,{value:"hashtag",children:"Hashtag"})]}),R.jsx(Pa,{value:"existing",className:"mt-4",children:R.jsx("div",{className:"max-h-[300px] overflow-y-auto rounded-md border",children:a.length===0?R.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No contacts available"}):a.map(H=>R.jsx("div",{className:"cursor-pointer px-4 py-2 hover:bg-accent",onClick:()=>{u({type:"contact",id:H.public_key,name:Kn(H.name,H.public_key)}),i()},children:Kn(H.name,H.public_key)},H.public_key))})}),R.jsxs(Pa,{value:"new-contact",className:"mt-4 space-y-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"contact-name",children:"Name"}),R.jsx(gt,{id:"contact-name",value:p,onChange:H=>x(H.target.value),placeholder:"Contact name"})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"contact-key",children:"Public Key"}),R.jsx(gt,{id:"contact-key",value:g,onChange:H=>w(H.target.value),placeholder:"64-character hex public key"})]})]}),R.jsxs(Pa,{value:"new-room",className:"mt-4 space-y-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"room-name",children:"Room Name"}),R.jsx(gt,{id:"room-name",value:p,onChange:H=>x(H.target.value),placeholder:"Room name"})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"room-key",children:"Room Key"}),R.jsx(gt,{id:"room-key",value:g,onChange:H=>w(H.target.value),placeholder:"Pre-shared key (hex)"})]})]}),R.jsx(Pa,{value:"hashtag",className:"mt-4",children:R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"hashtag-name",children:"Hashtag Channel"}),R.jsxs("div",{className:"flex items-center gap-1",children:[R.jsx("span",{className:"text-sm text-muted-foreground",children:"#"}),R.jsx(gt,{ref:B,id:"hashtag-name",value:p,onChange:H=>x(H.target.value),placeholder:"channel-name",className:"flex-1"})]})]})})]}),P&&R.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[R.jsxs(mt,{htmlFor:"try-historical",className:"text-sm text-muted-foreground cursor-pointer",children:["Try decrypting ",o.toLocaleString()," stored packet",o!==1?"s":""]}),R.jsx(Ex,{id:"try-historical",checked:b,onCheckedChange:H=>k(H===!0)})]}),v&&R.jsx("div",{className:"text-sm text-destructive",children:v}),R.jsxs(Wu,{children:[R.jsx(zr,{variant:"outline",onClick:i,children:"Cancel"}),h==="hashtag"&&R.jsx(zr,{variant:"secondary",onClick:I,disabled:E,children:E?"Creating...":"Create & Add Another"}),h!=="existing"&&R.jsx(zr,{onClick:D,disabled:E,children:E?"Creating...":"Create"})]})]})})}var wC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],bC=wC.reduce((r,a)=>{const o=ju(`Primitive.${a}`),i=F.forwardRef((u,l)=>{const{asChild:A,...c}=u,h=A?o:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(h,{...c,ref:l})});return i.displayName=`Primitive.${a}`,{...r,[a]:i}},{}),EC="Separator",CA="horizontal",kC=["horizontal","vertical"],kx=F.forwardRef((r,a)=>{const{decorative:o,orientation:i=CA,...u}=r,l=SC(i)?i:CA,c=o?{role:"none"}:{"aria-orientation":l==="vertical"?l:void 0,role:"separator"};return R.jsx(bC.div,{"data-orientation":l,...c,...u,ref:a})});kx.displayName=EC;function SC(r){return kC.includes(r)}var Sx=kx;const si=F.forwardRef(({className:r,orientation:a="horizontal",decorative:o=!0,...i},u)=>R.jsx(Sx,{ref:u,decorative:o,orientation:a,className:qe("shrink-0 bg-border",a==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",r),...i}));si.displayName=Sx.displayName;const BC=tl("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500"}},defaultVariants:{variant:"default"}}),Bx=F.forwardRef(({className:r,variant:a,...o},i)=>R.jsx("div",{ref:i,role:"alert",className:qe(BC({variant:a}),r),...o}));Bx.displayName="Alert";const _C=F.forwardRef(({className:r,...a},o)=>R.jsx("h5",{ref:o,className:qe("mb-1 font-medium leading-none tracking-tight",r),...a}));_C.displayName="AlertTitle";const _x=F.forwardRef(({className:r,...a},o)=>R.jsx("div",{ref:o,className:qe("text-sm [&_p]:leading-relaxed",r),...a}));_x.displayName="AlertDescription";function DC({open:r,config:a,appSettings:o,onClose:i,onSave:u,onSaveAppSettings:l,onSetPrivateKey:A,onReboot:c}){const[h,d]=F.useState(""),[p,x]=F.useState(""),[g,w]=F.useState(""),[b,k]=F.useState(""),[v,S]=F.useState(""),[E,C]=F.useState(""),[B,D]=F.useState(""),[T,I]=F.useState(""),[P,H]=F.useState(""),[M,N]=F.useState(""),[V,Q]=F.useState(!1),[X,ae]=F.useState(!1),[J,re]=F.useState("");F.useEffect(()=>{a&&(d(a.name),x(String(a.lat)),w(String(a.lon)),k(String(a.tx_power)),S(String(a.radio.freq)),C(String(a.radio.bw)),D(String(a.radio.sf)),I(String(a.radio.cr)))},[a]),F.useEffect(()=>{o&&N(String(o.max_radio_contacts))},[o]);const q=async()=>{re(""),Q(!0);try{const y={name:h,lat:parseFloat(p),lon:parseFloat(g),tx_power:parseInt(b,10),radio:{freq:parseFloat(v),bw:parseFloat(E),sf:parseInt(B,10),cr:parseInt(T,10)}};await u(y);const j=parseInt(M,10);!isNaN(j)&&j!==(o==null?void 0:o.max_radio_contacts)&&await l({max_radio_contacts:j}),i()}catch(y){re(y instanceof Error?y.message:"Failed to save")}finally{Q(!1)}},oe=async()=>{if(!P.trim()){re("Private key is required");return}re(""),Q(!0);try{await A(P.trim()),H(""),i()}catch(y){re(y instanceof Error?y.message:"Failed to set private key")}finally{Q(!1)}},ee=async()=>{if(confirm("Are you sure you want to reboot the radio? The connection will drop temporarily.")){re(""),ae(!0);try{await c(),i()}catch(y){re(y instanceof Error?y.message:"Failed to reboot radio")}finally{ae(!1)}}};return R.jsx(Qp,{open:r,onOpenChange:y=>!y&&i(),children:R.jsxs(Vu,{className:"sm:max-w-[500px] max-h-[90vh] overflow-y-auto",children:[R.jsx(Uu,{children:R.jsx(qu,{children:"Radio Configuration"})}),a?R.jsxs("div",{className:"space-y-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"public-key",children:"Public Key"}),R.jsx(gt,{id:"public-key",value:a.public_key,disabled:!0})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"name",children:"Name"}),R.jsx(gt,{id:"name",value:h,onChange:y=>d(y.target.value)})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"lat",children:"Latitude"}),R.jsx(gt,{id:"lat",type:"number",step:"any",value:p,onChange:y=>x(y.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"lon",children:"Longitude"}),R.jsx(gt,{id:"lon",type:"number",step:"any",value:g,onChange:y=>w(y.target.value)})]})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"freq",children:"Frequency (MHz)"}),R.jsx(gt,{id:"freq",type:"number",step:"any",value:v,onChange:y=>S(y.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"bw",children:"Bandwidth (kHz)"}),R.jsx(gt,{id:"bw",type:"number",step:"any",value:E,onChange:y=>C(y.target.value)})]})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"sf",children:"Spreading Factor"}),R.jsx(gt,{id:"sf",type:"number",min:"7",max:"12",value:B,onChange:y=>D(y.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"cr",children:"Coding Rate"}),R.jsx(gt,{id:"cr",type:"number",min:"1",max:"4",value:T,onChange:y=>I(y.target.value)})]})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"tx-power",children:"TX Power (dBm)"}),R.jsx(gt,{id:"tx-power",type:"number",value:b,onChange:y=>k(y.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"max-tx",children:"Max TX Power"}),R.jsx(gt,{id:"max-tx",type:"number",value:a.max_tx_power,disabled:!0})]})]}),R.jsx(si,{className:"my-4"}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"max-contacts",children:"Max Contacts on Radio"}),R.jsx(gt,{id:"max-contacts",type:"number",min:"1",max:"1000",value:M,onChange:y=>N(y.target.value)}),R.jsx("p",{className:"text-xs text-muted-foreground",children:"Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)"})]}),R.jsx(si,{className:"my-4"}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(mt,{htmlFor:"private-key",children:"Set Private Key (write-only)"}),R.jsxs("div",{className:"flex gap-2",children:[R.jsx(gt,{id:"private-key",type:"password",value:P,onChange:y=>H(y.target.value),placeholder:"64-character hex private key",className:"flex-1"}),R.jsx(zr,{onClick:oe,disabled:V||!P.trim(),children:"Set"})]})]}),R.jsx(si,{className:"my-4"}),R.jsxs("div",{className:"space-y-3",children:[R.jsx(mt,{children:"Reboot Radio"}),R.jsx(Bx,{variant:"warning",children:R.jsx(_x,{children:"Some configuration changes (like name) require a radio reboot to take effect. The connection will temporarily drop and automatically reconnect."})}),R.jsx(zr,{variant:"outline",onClick:ee,disabled:X||V,className:"border-yellow-500/50 text-yellow-200 hover:bg-yellow-500/10",children:X?"Rebooting...":"Reboot Radio"})]}),J&&R.jsx("div",{className:"text-sm text-destructive",children:J})]}):R.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"Loading configuration..."}),R.jsxs(Wu,{children:[R.jsx(zr,{variant:"outline",onClick:i,children:"Cancel"}),R.jsx(zr,{onClick:q,disabled:V||!a,children:V?"Saving...":"Save Config"})]})]})})}function FC(r){return new Date(r*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function wA(r){return r.split("_").map(a=>a.charAt(0)+a.slice(1).toLowerCase()).join(" ")}function RC(r){if(!r.decrypted||!r.decrypted_info)return wA(r.payload_type);const a=r.decrypted_info;return r.payload_type==="GROUP_TEXT"&&a.channel_name?`GroupText to ${a.channel_name}`:r.payload_type==="TEXT_MESSAGE"&&a.sender?`TextMessage from ${a.sender}`:wA(r.payload_type)}function TC(r){const a=[];return r.snr!==null&&r.snr!==void 0&&a.push(`SNR: ${r.snr.toFixed(1)} dB`),r.rssi!==null&&r.rssi!==void 0&&a.push(`RSSI: ${r.rssi} dBm`),a.join(" | ")}function PC({packets:r}){const a=F.useRef(null);if(F.useEffect(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[r]),r.length===0)return R.jsx("div",{className:"h-full overflow-y-auto p-5 text-center text-muted-foreground",children:"No packets received yet. Packets will appear here in real-time."});const o=[...r].sort((i,u)=>i.timestamp-u.timestamp);return R.jsx("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-3",ref:a,children:o.map(i=>R.jsxs("div",{className:"py-2 px-3 bg-muted rounded",children:[R.jsxs("div",{className:i.decrypted?"text-primary":"text-destructive",children:[!i.decrypted&&R.jsx("span",{className:"mr-1",children:"🔒"}),RC(i)," • ",FC(i.timestamp)]}),(i.snr!==null||i.rssi!==null)&&R.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:TC(i)}),R.jsx("div",{className:"font-mono text-[11px] break-all text-muted-foreground/70 mt-1",children:i.data.toUpperCase()})]},i.id))})}var Xr={},va={},It={},bA;function ur(){if(bA)return It;bA=1,Object.defineProperty(It,"__esModule",{value:!0}),It.RequestType=It.AdvertFlags=It.DeviceRole=It.PayloadVersion=It.ControlSubType=It.PayloadType=It.RouteType=void 0;var r;(function(c){c[c.TransportFlood=0]="TransportFlood",c[c.Flood=1]="Flood",c[c.Direct=2]="Direct",c[c.TransportDirect=3]="TransportDirect"})(r||(It.RouteType=r={}));var a;(function(c){c[c.Request=0]="Request",c[c.Response=1]="Response",c[c.TextMessage=2]="TextMessage",c[c.Ack=3]="Ack",c[c.Advert=4]="Advert",c[c.GroupText=5]="GroupText",c[c.GroupData=6]="GroupData",c[c.AnonRequest=7]="AnonRequest",c[c.Path=8]="Path",c[c.Trace=9]="Trace",c[c.Multipart=10]="Multipart",c[c.Control=11]="Control",c[c.RawCustom=15]="RawCustom"})(a||(It.PayloadType=a={}));var o;(function(c){c[c.NodeDiscoverReq=128]="NodeDiscoverReq",c[c.NodeDiscoverResp=144]="NodeDiscoverResp"})(o||(It.ControlSubType=o={}));var i;(function(c){c[c.Version1=0]="Version1",c[c.Version2=1]="Version2",c[c.Version3=2]="Version3",c[c.Version4=3]="Version4"})(i||(It.PayloadVersion=i={}));var u;(function(c){c[c.Unknown=0]="Unknown",c[c.ChatNode=1]="ChatNode",c[c.Repeater=2]="Repeater",c[c.RoomServer=3]="RoomServer",c[c.Sensor=4]="Sensor"})(u||(It.DeviceRole=u={}));var l;(function(c){c[c.HasLocation=16]="HasLocation",c[c.HasFeature1=32]="HasFeature1",c[c.HasFeature2=64]="HasFeature2",c[c.HasName=128]="HasName"})(l||(It.AdvertFlags=l={}));var A;return(function(c){c[c.GetStats=1]="GetStats",c[c.Keepalive=2]="Keepalive",c[c.GetTelemetryData=3]="GetTelemetryData",c[c.GetMinMaxAvgData=4]="GetMinMaxAvgData",c[c.GetAccessList=5]="GetAccessList"})(A||(It.RequestType=A={})),It}var Un={},EA;function Mt(){if(EA)return Un;EA=1,Object.defineProperty(Un,"__esModule",{value:!0}),Un.byteToHex=r,Un.bytesToHex=a,Un.numberToHex=o,Un.hexToBytes=i;function r(u){return u.toString(16).padStart(2,"0").toUpperCase()}function a(u){return Array.from(u).map(r).join("")}function o(u,l=8){return(u>>>0).toString(16).padStart(l,"0").toUpperCase()}function i(u){const l=u.replace(/\s/g,"").toUpperCase();if(!/^[0-9A-F]*$/.test(l))throw new Error("Invalid hex string: invalid characters at position 0");if(l.length%2!==0)throw new Error("Invalid hex string: odd length");const A=new Uint8Array(l.length/2);for(let c=0;c>>2]>>>24-I%4*8&255;C[D+I>>>2]|=P<<24-(D+I)%4*8}else for(var H=0;H>>2]=B[H>>>2];return this.sigBytes+=T,this},clamp:function(){var E=this.words,C=this.sigBytes;E[C>>>2]&=4294967295<<32-C%4*8,E.length=i.ceil(C/4)},clone:function(){var E=p.clone.call(this);return E.words=this.words.slice(0),E},random:function(E){for(var C=[],B=0;B>>2]>>>24-T%4*8&255;D.push((I>>>4).toString(16)),D.push((I&15).toString(16))}return D.join("")},parse:function(E){for(var C=E.length,B=[],D=0;D>>3]|=parseInt(E.substr(D,2),16)<<24-D%8*4;return new x.init(B,C/2)}},b=g.Latin1={stringify:function(E){for(var C=E.words,B=E.sigBytes,D=[],T=0;T>>2]>>>24-T%4*8&255;D.push(String.fromCharCode(I))}return D.join("")},parse:function(E){for(var C=E.length,B=[],D=0;D>>2]|=(E.charCodeAt(D)&255)<<24-D%4*8;return new x.init(B,C)}},k=g.Utf8={stringify:function(E){try{return decodeURIComponent(escape(b.stringify(E)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(E){return b.parse(unescape(encodeURIComponent(E)))}},v=d.BufferedBlockAlgorithm=p.extend({reset:function(){this._data=new x.init,this._nDataBytes=0},_append:function(E){typeof E=="string"&&(E=k.parse(E)),this._data.concat(E),this._nDataBytes+=E.sigBytes},_process:function(E){var C,B=this._data,D=B.words,T=B.sigBytes,I=this.blockSize,P=I*4,H=T/P;E?H=i.ceil(H):H=i.max((H|0)-this._minBufferSize,0);var M=H*I,N=i.min(M*4,T);if(M){for(var V=0;V>>2]|=h[x]<<24-x%4*8;A.call(this,p,d)}else A.apply(this,arguments)};c.prototype=l}})(),o.lib.WordArray})})(ui)),ui.exports}var di={exports:{}},LC=di.exports,DA;function zC(){return DA||(DA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(LC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.enc;A.Utf16=A.Utf16BE={stringify:function(h){for(var d=h.words,p=h.sigBytes,x=[],g=0;g>>2]>>>16-g%4*8&65535;x.push(String.fromCharCode(w))}return x.join("")},parse:function(h){for(var d=h.length,p=[],x=0;x>>1]|=h.charCodeAt(x)<<16-x%2*16;return l.create(p,d*2)}},A.Utf16LE={stringify:function(h){for(var d=h.words,p=h.sigBytes,x=[],g=0;g>>2]>>>16-g%4*8&65535);x.push(String.fromCharCode(w))}return x.join("")},parse:function(h){for(var d=h.length,p=[],x=0;x>>1]|=c(h.charCodeAt(x)<<16-x%2*16);return l.create(p,d*2)}};function c(h){return h<<8&4278255360|h>>>8&16711935}})(),o.enc.Utf16})})(di)),di.exports}var fi={exports:{}},VC=fi.exports,FA;function Xn(){return FA||(FA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(VC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.enc;A.Base64={stringify:function(h){var d=h.words,p=h.sigBytes,x=this._map;h.clamp();for(var g=[],w=0;w>>2]>>>24-w%4*8&255,k=d[w+1>>>2]>>>24-(w+1)%4*8&255,v=d[w+2>>>2]>>>24-(w+2)%4*8&255,S=b<<16|k<<8|v,E=0;E<4&&w+E*.75>>6*(3-E)&63));var C=x.charAt(64);if(C)for(;g.length%4;)g.push(C);return g.join("")},parse:function(h){var d=h.length,p=this._map,x=this._reverseMap;if(!x){x=this._reverseMap=[];for(var g=0;g>>6-w%4*2,v=b|k;x[g>>>2]|=v<<24-g%4*8,g++}return l.create(x,g)}})(),o.enc.Base64})})(fi)),fi.exports}var Ai={exports:{}},UC=Ai.exports,RA;function WC(){return RA||(RA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(UC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.enc;A.Base64url={stringify:function(h,d){d===void 0&&(d=!0);var p=h.words,x=h.sigBytes,g=d?this._safe_map:this._map;h.clamp();for(var w=[],b=0;b>>2]>>>24-b%4*8&255,v=p[b+1>>>2]>>>24-(b+1)%4*8&255,S=p[b+2>>>2]>>>24-(b+2)%4*8&255,E=k<<16|v<<8|S,C=0;C<4&&b+C*.75>>6*(3-C)&63));var B=g.charAt(64);if(B)for(;w.length%4;)w.push(B);return w.join("")},parse:function(h,d){d===void 0&&(d=!0);var p=h.length,x=d?this._safe_map:this._map,g=this._reverseMap;if(!g){g=this._reverseMap=[];for(var w=0;w>>6-w%4*2,v=b|k;x[g>>>2]|=v<<24-g%4*8,g++}return l.create(x,g)}})(),o.enc.Base64url})})(Ai)),Ai.exports}var hi={exports:{}},qC=hi.exports,TA;function Jn(){return TA||(TA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(qC,function(o){return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.algo,d=[];(function(){for(var k=0;k<64;k++)d[k]=i.abs(i.sin(k+1))*4294967296|0})();var p=h.MD5=c.extend({_doReset:function(){this._hash=new A.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(k,v){for(var S=0;S<16;S++){var E=v+S,C=k[E];k[E]=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360}var B=this._hash.words,D=k[v+0],T=k[v+1],I=k[v+2],P=k[v+3],H=k[v+4],M=k[v+5],N=k[v+6],V=k[v+7],Q=k[v+8],X=k[v+9],ae=k[v+10],J=k[v+11],re=k[v+12],q=k[v+13],oe=k[v+14],ee=k[v+15],y=B[0],j=B[1],L=B[2],W=B[3];y=x(y,j,L,W,D,7,d[0]),W=x(W,y,j,L,T,12,d[1]),L=x(L,W,y,j,I,17,d[2]),j=x(j,L,W,y,P,22,d[3]),y=x(y,j,L,W,H,7,d[4]),W=x(W,y,j,L,M,12,d[5]),L=x(L,W,y,j,N,17,d[6]),j=x(j,L,W,y,V,22,d[7]),y=x(y,j,L,W,Q,7,d[8]),W=x(W,y,j,L,X,12,d[9]),L=x(L,W,y,j,ae,17,d[10]),j=x(j,L,W,y,J,22,d[11]),y=x(y,j,L,W,re,7,d[12]),W=x(W,y,j,L,q,12,d[13]),L=x(L,W,y,j,oe,17,d[14]),j=x(j,L,W,y,ee,22,d[15]),y=g(y,j,L,W,T,5,d[16]),W=g(W,y,j,L,N,9,d[17]),L=g(L,W,y,j,J,14,d[18]),j=g(j,L,W,y,D,20,d[19]),y=g(y,j,L,W,M,5,d[20]),W=g(W,y,j,L,ae,9,d[21]),L=g(L,W,y,j,ee,14,d[22]),j=g(j,L,W,y,H,20,d[23]),y=g(y,j,L,W,X,5,d[24]),W=g(W,y,j,L,oe,9,d[25]),L=g(L,W,y,j,P,14,d[26]),j=g(j,L,W,y,Q,20,d[27]),y=g(y,j,L,W,q,5,d[28]),W=g(W,y,j,L,I,9,d[29]),L=g(L,W,y,j,V,14,d[30]),j=g(j,L,W,y,re,20,d[31]),y=w(y,j,L,W,M,4,d[32]),W=w(W,y,j,L,Q,11,d[33]),L=w(L,W,y,j,J,16,d[34]),j=w(j,L,W,y,oe,23,d[35]),y=w(y,j,L,W,T,4,d[36]),W=w(W,y,j,L,H,11,d[37]),L=w(L,W,y,j,V,16,d[38]),j=w(j,L,W,y,ae,23,d[39]),y=w(y,j,L,W,q,4,d[40]),W=w(W,y,j,L,D,11,d[41]),L=w(L,W,y,j,P,16,d[42]),j=w(j,L,W,y,N,23,d[43]),y=w(y,j,L,W,X,4,d[44]),W=w(W,y,j,L,re,11,d[45]),L=w(L,W,y,j,ee,16,d[46]),j=w(j,L,W,y,I,23,d[47]),y=b(y,j,L,W,D,6,d[48]),W=b(W,y,j,L,V,10,d[49]),L=b(L,W,y,j,oe,15,d[50]),j=b(j,L,W,y,M,21,d[51]),y=b(y,j,L,W,re,6,d[52]),W=b(W,y,j,L,P,10,d[53]),L=b(L,W,y,j,ae,15,d[54]),j=b(j,L,W,y,T,21,d[55]),y=b(y,j,L,W,Q,6,d[56]),W=b(W,y,j,L,ee,10,d[57]),L=b(L,W,y,j,N,15,d[58]),j=b(j,L,W,y,q,21,d[59]),y=b(y,j,L,W,H,6,d[60]),W=b(W,y,j,L,J,10,d[61]),L=b(L,W,y,j,I,15,d[62]),j=b(j,L,W,y,X,21,d[63]),B[0]=B[0]+y|0,B[1]=B[1]+j|0,B[2]=B[2]+L|0,B[3]=B[3]+W|0},_doFinalize:function(){var k=this._data,v=k.words,S=this._nDataBytes*8,E=k.sigBytes*8;v[E>>>5]|=128<<24-E%32;var C=i.floor(S/4294967296),B=S;v[(E+64>>>9<<4)+15]=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,v[(E+64>>>9<<4)+14]=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,k.sigBytes=(v.length+1)*4,this._process();for(var D=this._hash,T=D.words,I=0;I<4;I++){var P=T[I];T[I]=(P<<8|P>>>24)&16711935|(P<<24|P>>>8)&4278255360}return D},clone:function(){var k=c.clone.call(this);return k._hash=this._hash.clone(),k}});function x(k,v,S,E,C,B,D){var T=k+(v&S|~v&E)+C+D;return(T<>>32-B)+v}function g(k,v,S,E,C,B,D){var T=k+(v&E|S&~E)+C+D;return(T<>>32-B)+v}function w(k,v,S,E,C,B,D){var T=k+(v^S^E)+C+D;return(T<>>32-B)+v}function b(k,v,S,E,C,B,D){var T=k+(S^(v|~E))+C+D;return(T<>>32-B)+v}u.MD5=c._createHelper(p),u.HmacMD5=c._createHmacHelper(p)})(Math),o.MD5})})(hi)),hi.exports}var pi={exports:{}},QC=pi.exports,PA;function Dx(){return PA||(PA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(QC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=u.Hasher,c=i.algo,h=[],d=c.SHA1=A.extend({_doReset:function(){this._hash=new l.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(p,x){for(var g=this._hash.words,w=g[0],b=g[1],k=g[2],v=g[3],S=g[4],E=0;E<80;E++){if(E<16)h[E]=p[x+E]|0;else{var C=h[E-3]^h[E-8]^h[E-14]^h[E-16];h[E]=C<<1|C>>>31}var B=(w<<5|w>>>27)+S+h[E];E<20?B+=(b&k|~b&v)+1518500249:E<40?B+=(b^k^v)+1859775393:E<60?B+=(b&k|b&v|k&v)-1894007588:B+=(b^k^v)-899497514,S=v,v=k,k=b<<30|b>>>2,b=w,w=B}g[0]=g[0]+w|0,g[1]=g[1]+b|0,g[2]=g[2]+k|0,g[3]=g[3]+v|0,g[4]=g[4]+S|0},_doFinalize:function(){var p=this._data,x=p.words,g=this._nDataBytes*8,w=p.sigBytes*8;return x[w>>>5]|=128<<24-w%32,x[(w+64>>>9<<4)+14]=Math.floor(g/4294967296),x[(w+64>>>9<<4)+15]=g,p.sigBytes=x.length*4,this._process(),this._hash},clone:function(){var p=A.clone.call(this);return p._hash=this._hash.clone(),p}});i.SHA1=A._createHelper(d),i.HmacSHA1=A._createHmacHelper(d)})(),o.SHA1})})(pi)),pi.exports}var xi={exports:{}},GC=xi.exports,NA;function Ua(){return NA||(NA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(GC,function(o){return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.algo,d=[],p=[];(function(){function w(S){for(var E=i.sqrt(S),C=2;C<=E;C++)if(!(S%C))return!1;return!0}function b(S){return(S-(S|0))*4294967296|0}for(var k=2,v=0;v<64;)w(k)&&(v<8&&(d[v]=b(i.pow(k,1/2))),p[v]=b(i.pow(k,1/3)),v++),k++})();var x=[],g=h.SHA256=c.extend({_doReset:function(){this._hash=new A.init(d.slice(0))},_doProcessBlock:function(w,b){for(var k=this._hash.words,v=k[0],S=k[1],E=k[2],C=k[3],B=k[4],D=k[5],T=k[6],I=k[7],P=0;P<64;P++){if(P<16)x[P]=w[b+P]|0;else{var H=x[P-15],M=(H<<25|H>>>7)^(H<<14|H>>>18)^H>>>3,N=x[P-2],V=(N<<15|N>>>17)^(N<<13|N>>>19)^N>>>10;x[P]=M+x[P-7]+V+x[P-16]}var Q=B&D^~B&T,X=v&S^v&E^S&E,ae=(v<<30|v>>>2)^(v<<19|v>>>13)^(v<<10|v>>>22),J=(B<<26|B>>>6)^(B<<21|B>>>11)^(B<<7|B>>>25),re=I+J+Q+p[P]+x[P],q=ae+X;I=T,T=D,D=B,B=C+re|0,C=E,E=S,S=v,v=re+q|0}k[0]=k[0]+v|0,k[1]=k[1]+S|0,k[2]=k[2]+E|0,k[3]=k[3]+C|0,k[4]=k[4]+B|0,k[5]=k[5]+D|0,k[6]=k[6]+T|0,k[7]=k[7]+I|0},_doFinalize:function(){var w=this._data,b=w.words,k=this._nDataBytes*8,v=w.sigBytes*8;return b[v>>>5]|=128<<24-v%32,b[(v+64>>>9<<4)+14]=i.floor(k/4294967296),b[(v+64>>>9<<4)+15]=k,w.sigBytes=b.length*4,this._process(),this._hash},clone:function(){var w=c.clone.call(this);return w._hash=this._hash.clone(),w}});u.SHA256=c._createHelper(g),u.HmacSHA256=c._createHmacHelper(g)})(Math),o.SHA256})})(xi)),xi.exports}var mi={exports:{}},$C=mi.exports,IA;function KC(){return IA||(IA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Ua())})($C,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.algo,c=A.SHA256,h=A.SHA224=c.extend({_doReset:function(){this._hash=new l.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var d=c._doFinalize.call(this);return d.sigBytes-=4,d}});i.SHA224=c._createHelper(h),i.HmacSHA224=c._createHmacHelper(h)})(),o.SHA224})})(mi)),mi.exports}var gi={exports:{}},YC=gi.exports,MA;function Fx(){return MA||(MA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),dl())})(YC,function(o){return(function(){var i=o,u=i.lib,l=u.Hasher,A=i.x64,c=A.Word,h=A.WordArray,d=i.algo;function p(){return c.create.apply(c,arguments)}var x=[p(1116352408,3609767458),p(1899447441,602891725),p(3049323471,3964484399),p(3921009573,2173295548),p(961987163,4081628472),p(1508970993,3053834265),p(2453635748,2937671579),p(2870763221,3664609560),p(3624381080,2734883394),p(310598401,1164996542),p(607225278,1323610764),p(1426881987,3590304994),p(1925078388,4068182383),p(2162078206,991336113),p(2614888103,633803317),p(3248222580,3479774868),p(3835390401,2666613458),p(4022224774,944711139),p(264347078,2341262773),p(604807628,2007800933),p(770255983,1495990901),p(1249150122,1856431235),p(1555081692,3175218132),p(1996064986,2198950837),p(2554220882,3999719339),p(2821834349,766784016),p(2952996808,2566594879),p(3210313671,3203337956),p(3336571891,1034457026),p(3584528711,2466948901),p(113926993,3758326383),p(338241895,168717936),p(666307205,1188179964),p(773529912,1546045734),p(1294757372,1522805485),p(1396182291,2643833823),p(1695183700,2343527390),p(1986661051,1014477480),p(2177026350,1206759142),p(2456956037,344077627),p(2730485921,1290863460),p(2820302411,3158454273),p(3259730800,3505952657),p(3345764771,106217008),p(3516065817,3606008344),p(3600352804,1432725776),p(4094571909,1467031594),p(275423344,851169720),p(430227734,3100823752),p(506948616,1363258195),p(659060556,3750685593),p(883997877,3785050280),p(958139571,3318307427),p(1322822218,3812723403),p(1537002063,2003034995),p(1747873779,3602036899),p(1955562222,1575990012),p(2024104815,1125592928),p(2227730452,2716904306),p(2361852424,442776044),p(2428436474,593698344),p(2756734187,3733110249),p(3204031479,2999351573),p(3329325298,3815920427),p(3391569614,3928383900),p(3515267271,566280711),p(3940187606,3454069534),p(4118630271,4000239992),p(116418474,1914138554),p(174292421,2731055270),p(289380356,3203993006),p(460393269,320620315),p(685471733,587496836),p(852142971,1086792851),p(1017036298,365543100),p(1126000580,2618297676),p(1288033470,3409855158),p(1501505948,4234509866),p(1607167915,987167468),p(1816402316,1246189591)],g=[];(function(){for(var b=0;b<80;b++)g[b]=p()})();var w=d.SHA512=l.extend({_doReset:function(){this._hash=new h.init([new c.init(1779033703,4089235720),new c.init(3144134277,2227873595),new c.init(1013904242,4271175723),new c.init(2773480762,1595750129),new c.init(1359893119,2917565137),new c.init(2600822924,725511199),new c.init(528734635,4215389547),new c.init(1541459225,327033209)])},_doProcessBlock:function(b,k){for(var v=this._hash.words,S=v[0],E=v[1],C=v[2],B=v[3],D=v[4],T=v[5],I=v[6],P=v[7],H=S.high,M=S.low,N=E.high,V=E.low,Q=C.high,X=C.low,ae=B.high,J=B.low,re=D.high,q=D.low,oe=T.high,ee=T.low,y=I.high,j=I.low,L=P.high,W=P.low,ue=H,le=M,ce=N,te=V,me=Q,Ne=X,$e=ae,nt=J,st=re,Ke=q,Gt=oe,Ot=ee,St=y,Wt=j,ct=L,Tt=W,et=0;et<80;et++){var Ve,ut,$t=g[et];if(et<16)ut=$t.high=b[k+et*2]|0,Ve=$t.low=b[k+et*2+1]|0;else{var vr=g[et-15],vt=vr.high,jt=vr.low,Kt=(vt>>>1|jt<<31)^(vt>>>8|jt<<24)^vt>>>7,or=(jt>>>1|vt<<31)^(jt>>>8|vt<<24)^(jt>>>7|vt<<25),yt=g[et-2],ot=yt.high,Y=yt.low,fe=(ot>>>19|Y<<13)^(ot<<3|Y>>>29)^ot>>>6,be=(Y>>>19|ot<<13)^(Y<<3|ot>>>29)^(Y>>>6|ot<<26),$=g[et-7],ne=$.high,pe=$.low,Re=g[et-16],De=Re.high,Ie=Re.low;Ve=or+pe,ut=Kt+ne+(Ve>>>0>>0?1:0),Ve=Ve+be,ut=ut+fe+(Ve>>>0>>0?1:0),Ve=Ve+Ie,ut=ut+De+(Ve>>>0>>0?1:0),$t.high=ut,$t.low=Ve}var Te=st&Gt^~st&St,Pe=Ke&Ot^~Ke&Wt,Ct=ue&ce^ue&me^ce&me,ke=le&te^le&Ne^te&Ne,je=(ue>>>28|le<<4)^(ue<<30|le>>>2)^(ue<<25|le>>>7),ze=(le>>>28|ue<<4)^(le<<30|ue>>>2)^(le<<25|ue>>>7),dt=(st>>>14|Ke<<18)^(st>>>18|Ke<<14)^(st<<23|Ke>>>9),dr=(Ke>>>14|st<<18)^(Ke>>>18|st<<14)^(Ke<<23|st>>>9),He=x[et],Ze=He.high,yr=He.low,Qe=Tt+dr,ft=ct+dt+(Qe>>>0>>0?1:0),Qe=Qe+Pe,ft=ft+Te+(Qe>>>0>>0?1:0),Qe=Qe+yr,ft=ft+Ze+(Qe>>>0>>0?1:0),Qe=Qe+Ve,ft=ft+ut+(Qe>>>0>>0?1:0),Cr=ze+ke,Yt=je+Ct+(Cr>>>0>>0?1:0);ct=St,Tt=Wt,St=Gt,Wt=Ot,Gt=st,Ot=Ke,Ke=nt+Qe|0,st=$e+ft+(Ke>>>0>>0?1:0)|0,$e=me,nt=Ne,me=ce,Ne=te,ce=ue,te=le,le=Qe+Cr|0,ue=ft+Yt+(le>>>0>>0?1:0)|0}M=S.low=M+le,S.high=H+ue+(M>>>0>>0?1:0),V=E.low=V+te,E.high=N+ce+(V>>>0>>0?1:0),X=C.low=X+Ne,C.high=Q+me+(X>>>0>>0?1:0),J=B.low=J+nt,B.high=ae+$e+(J>>>0>>0?1:0),q=D.low=q+Ke,D.high=re+st+(q>>>0>>0?1:0),ee=T.low=ee+Ot,T.high=oe+Gt+(ee>>>0>>0?1:0),j=I.low=j+Wt,I.high=y+St+(j>>>0>>0?1:0),W=P.low=W+Tt,P.high=L+ct+(W>>>0>>0?1:0)},_doFinalize:function(){var b=this._data,k=b.words,v=this._nDataBytes*8,S=b.sigBytes*8;k[S>>>5]|=128<<24-S%32,k[(S+128>>>10<<5)+30]=Math.floor(v/4294967296),k[(S+128>>>10<<5)+31]=v,b.sigBytes=k.length*4,this._process();var E=this._hash.toX32();return E},clone:function(){var b=l.clone.call(this);return b._hash=this._hash.clone(),b},blockSize:1024/32});i.SHA512=l._createHelper(w),i.HmacSHA512=l._createHmacHelper(w)})(),o.SHA512})})(gi)),gi.exports}var vi={exports:{}},ZC=vi.exports,OA;function XC(){return OA||(OA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),dl(),Fx())})(ZC,function(o){return(function(){var i=o,u=i.x64,l=u.Word,A=u.WordArray,c=i.algo,h=c.SHA512,d=c.SHA384=h.extend({_doReset:function(){this._hash=new A.init([new l.init(3418070365,3238371032),new l.init(1654270250,914150663),new l.init(2438529370,812702999),new l.init(355462360,4144912697),new l.init(1731405415,4290775857),new l.init(2394180231,1750603025),new l.init(3675008525,1694076839),new l.init(1203062813,3204075428)])},_doFinalize:function(){var p=h._doFinalize.call(this);return p.sigBytes-=16,p}});i.SHA384=h._createHelper(d),i.HmacSHA384=h._createHmacHelper(d)})(),o.SHA384})})(vi)),vi.exports}var yi={exports:{}},JC=yi.exports,jA;function e4(){return jA||(jA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),dl())})(JC,function(o){return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.x64,d=h.Word,p=u.algo,x=[],g=[],w=[];(function(){for(var v=1,S=0,E=0;E<24;E++){x[v+5*S]=(E+1)*(E+2)/2%64;var C=S%5,B=(2*v+3*S)%5;v=C,S=B}for(var v=0;v<5;v++)for(var S=0;S<5;S++)g[v+5*S]=S+(2*v+3*S)%5*5;for(var D=1,T=0;T<24;T++){for(var I=0,P=0,H=0;H<7;H++){if(D&1){var M=(1<>>24)&16711935|(D<<24|D>>>8)&4278255360,T=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360;var I=E[B];I.high^=T,I.low^=D}for(var P=0;P<24;P++){for(var H=0;H<5;H++){for(var M=0,N=0,V=0;V<5;V++){var I=E[H+5*V];M^=I.high,N^=I.low}var Q=b[H];Q.high=M,Q.low=N}for(var H=0;H<5;H++)for(var X=b[(H+4)%5],ae=b[(H+1)%5],J=ae.high,re=ae.low,M=X.high^(J<<1|re>>>31),N=X.low^(re<<1|J>>>31),V=0;V<5;V++){var I=E[H+5*V];I.high^=M,I.low^=N}for(var q=1;q<25;q++){var M,N,I=E[q],oe=I.high,ee=I.low,y=x[q];y<32?(M=oe<>>32-y,N=ee<>>32-y):(M=ee<>>64-y,N=oe<>>64-y);var j=b[g[q]];j.high=M,j.low=N}var L=b[0],W=E[0];L.high=W.high,L.low=W.low;for(var H=0;H<5;H++)for(var V=0;V<5;V++){var q=H+5*V,I=E[q],ue=b[q],le=b[(H+1)%5+5*V],ce=b[(H+2)%5+5*V];I.high=ue.high^~le.high&ce.high,I.low=ue.low^~le.low&ce.low}var I=E[0],te=w[P];I.high^=te.high,I.low^=te.low}},_doFinalize:function(){var v=this._data,S=v.words;this._nDataBytes*8;var E=v.sigBytes*8,C=this.blockSize*32;S[E>>>5]|=1<<24-E%32,S[(i.ceil((E+1)/C)*C>>>5)-1]|=128,v.sigBytes=S.length*4,this._process();for(var B=this._state,D=this.cfg.outputLength/8,T=D/8,I=[],P=0;P>>24)&16711935|(M<<24|M>>>8)&4278255360,N=(N<<8|N>>>24)&16711935|(N<<24|N>>>8)&4278255360,I.push(N),I.push(M)}return new A.init(I,D)},clone:function(){for(var v=c.clone.call(this),S=v._state=this._state.slice(0),E=0;E<25;E++)S[E]=S[E].clone();return v}});u.SHA3=c._createHelper(k),u.HmacSHA3=c._createHmacHelper(k)})(Math),o.SHA3})})(yi)),yi.exports}var Ci={exports:{}},t4=Ci.exports,HA;function r4(){return HA||(HA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(t4,function(o){/** @preserve +For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return F.useEffect(()=>{r&&(document.getElementById(r)||console.error(o))},[o,r]),null},j2="DialogDescriptionWarning",H2=({contentRef:r,descriptionId:a})=>{const i=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Vp(j2).contentName}}.`;return F.useEffect(()=>{var l;const u=(l=r.current)==null?void 0:l.getAttribute("aria-describedby");a&&u&&(document.getElementById(a)||console.warn(i))},[i,r,a]),null},Up=Dp,Wp=Tp,al=Pp,sl=Np,il=Mp,ll=jp,qp=Lp;const Qp=Up,L2=Wp,Gp=F.forwardRef(({className:r,...a},o)=>R.jsx(al,{ref:o,className:Ke("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a}));Gp.displayName=al.displayName;const Vu=F.forwardRef(({className:r,children:a,...o},i)=>R.jsxs(L2,{children:[R.jsx(Gp,{}),R.jsxs(sl,{ref:i,className:Ke("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",r),...o,children:[a,R.jsxs(qp,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[R.jsx(Qh,{className:"h-4 w-4"}),R.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Vu.displayName=sl.displayName;const Uu=({className:r,...a})=>R.jsx("div",{className:Ke("flex flex-col space-y-1.5 text-center sm:text-left",r),...a});Uu.displayName="DialogHeader";const Wu=({className:r,...a})=>R.jsx("div",{className:Ke("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",r),...a});Wu.displayName="DialogFooter";const qu=F.forwardRef(({className:r,...a},o)=>R.jsx(il,{ref:o,className:Ke("text-lg font-semibold leading-none tracking-tight",r),...a}));qu.displayName=il.displayName;const z2=F.forwardRef(({className:r,...a},o)=>R.jsx(ll,{ref:o,className:Ke("text-sm text-muted-foreground",r),...a}));z2.displayName=ll.displayName;function yA(r){const a=V2(r),o=F.forwardRef((i,u)=>{const{children:l,...A}=i,c=F.Children.toArray(l),h=c.find(W2);if(h){const d=h.props.children,x=c.map(p=>p===h?F.Children.count(d)>1?F.Children.only(null):F.isValidElement(d)?d.props.children:null:p);return R.jsx(a,{...A,ref:u,children:F.isValidElement(d)?F.cloneElement(d,void 0,x):null})}return R.jsx(a,{...A,ref:u,children:l})});return o.displayName=`${r}.Slot`,o}function V2(r){const a=F.forwardRef((o,i)=>{const{children:u,...l}=o;if(F.isValidElement(u)){const A=Q2(u),c=q2(l,u.props);return u.type!==F.Fragment&&(c.ref=i?La(i,A):A),F.cloneElement(u,c)}return F.Children.count(u)>1?F.Children.only(null):null});return a.displayName=`${r}.SlotClone`,a}var U2=Symbol("radix.slottable");function W2(r){return F.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===U2}function q2(r,a){const o={...a};for(const i in a){const u=r[i],l=a[i];/^on[A-Z]/.test(i)?u&&l?o[i]=(...c)=>{const h=l(...c);return u(...c),h}:u&&(o[i]=u):i==="style"?o[i]={...u,...l}:i==="className"&&(o[i]=[u,l].filter(Boolean).join(" "))}return{...r,...o}}function Q2(r){var i,u;let a=(i=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:i.get,o=a&&"isReactWarning"in a&&a.isReactWarning;return o?r.ref:(a=(u=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:u.get,o=a&&"isReactWarning"in a&&a.isReactWarning,o?r.props.ref:r.props.ref||r.ref)}function G2(r){const a=r+"CollectionProvider",[o,i]=za(a),[u,l]=o(a,{collectionRef:{current:null},itemMap:new Map}),A=b=>{const{scope:v,children:S}=b,E=he.useRef(null),y=he.useRef(new Map).current;return R.jsx(u,{scope:v,itemMap:y,collectionRef:E,children:S})};A.displayName=a;const c=r+"CollectionSlot",h=yA(c),d=he.forwardRef((b,v)=>{const{scope:S,children:E}=b,y=l(c,S),B=gr(v,y.collectionRef);return R.jsx(h,{ref:B,children:E})});d.displayName=c;const x=r+"CollectionItemSlot",p="data-radix-collection-item",g=yA(x),C=he.forwardRef((b,v)=>{const{scope:S,children:E,...y}=b,B=he.useRef(null),D=gr(v,B),T=l(x,S);return he.useEffect(()=>(T.itemMap.set(B,{ref:B,...y}),()=>void T.itemMap.delete(B))),R.jsx(g,{[p]:"",ref:D,children:E})});C.displayName=x;function w(b){const v=l(r+"CollectionConsumer",b);return he.useCallback(()=>{const E=v.collectionRef.current;if(!E)return[];const y=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(v.itemMap.values()).sort((T,M)=>y.indexOf(T.ref.current)-y.indexOf(M.ref.current))},[v.collectionRef,v.itemMap])}return[{Provider:A,Slot:d,ItemSlot:C},w,i]}var $2=F.createContext(void 0);function $p(r){const a=F.useContext($2);return r||a||"ltr"}var Au="rovingFocusGroup.onEntryFocus",K2={bubbles:!1,cancelable:!0},Va="RovingFocusGroup",[Su,Kp,Y2]=G2(Va),[Z2,Yp]=za(Va,[Y2]),[X2,J2]=Z2(Va),Zp=F.forwardRef((r,a)=>R.jsx(Su.Provider,{scope:r.__scopeRovingFocusGroup,children:R.jsx(Su.Slot,{scope:r.__scopeRovingFocusGroup,children:R.jsx(eC,{...r,ref:a})})}));Zp.displayName=Va;var eC=F.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:o,orientation:i,loop:u=!1,dir:l,currentTabStopId:A,defaultCurrentTabStopId:c,onCurrentTabStopIdChange:h,onEntryFocus:d,preventScrollOnEntryFocus:x=!1,...p}=r,g=F.useRef(null),C=gr(a,g),w=$p(l),[b,v]=rl({prop:A,defaultProp:c??null,onChange:h,caller:Va}),[S,E]=F.useState(!1),y=To(d),B=Kp(o),D=F.useRef(!1),[T,M]=F.useState(0);return F.useEffect(()=>{const P=g.current;if(P)return P.addEventListener(Au,y),()=>P.removeEventListener(Au,y)},[y]),R.jsx(X2,{scope:o,orientation:i,dir:w,loop:u,currentTabStopId:b,onItemFocus:F.useCallback(P=>v(P),[v]),onItemShiftTab:F.useCallback(()=>E(!0),[]),onFocusableItemAdd:F.useCallback(()=>M(P=>P+1),[]),onFocusableItemRemove:F.useCallback(()=>M(P=>P-1),[]),children:R.jsx(Tt.div,{tabIndex:S||T===0?-1:0,"data-orientation":i,...p,ref:C,style:{outline:"none",...r.style},onMouseDown:St(r.onMouseDown,()=>{D.current=!0}),onFocus:St(r.onFocus,P=>{const j=!D.current;if(P.target===P.currentTarget&&j&&!S){const I=new CustomEvent(Au,K2);if(P.currentTarget.dispatchEvent(I),!I.defaultPrevented){const N=B().filter(J=>J.focusable),z=N.find(J=>J.active),Q=N.find(J=>J.id===b),se=[z,Q,...N].filter(Boolean).map(J=>J.ref.current);ex(se,x)}}D.current=!1}),onBlur:St(r.onBlur,()=>E(!1))})})}),Xp="RovingFocusGroupItem",Jp=F.forwardRef((r,a)=>{const{__scopeRovingFocusGroup:o,focusable:i=!0,active:u=!1,tabStopId:l,children:A,...c}=r,h=Ma(),d=l||h,x=J2(Xp,o),p=x.currentTabStopId===d,g=Kp(o),{onFocusableItemAdd:C,onFocusableItemRemove:w,currentTabStopId:b}=x;return F.useEffect(()=>{if(i)return C(),()=>w()},[i,C,w]),R.jsx(Su.ItemSlot,{scope:o,id:d,focusable:i,active:u,children:R.jsx(Tt.span,{tabIndex:p?0:-1,"data-orientation":x.orientation,...c,ref:a,onMouseDown:St(r.onMouseDown,v=>{i?x.onItemFocus(d):v.preventDefault()}),onFocus:St(r.onFocus,()=>x.onItemFocus(d)),onKeyDown:St(r.onKeyDown,v=>{if(v.key==="Tab"&&v.shiftKey){x.onItemShiftTab();return}if(v.target!==v.currentTarget)return;const S=nC(v,x.orientation,x.dir);if(S!==void 0){if(v.metaKey||v.ctrlKey||v.altKey||v.shiftKey)return;v.preventDefault();let y=g().filter(B=>B.focusable).map(B=>B.ref.current);if(S==="last")y.reverse();else if(S==="prev"||S==="next"){S==="prev"&&y.reverse();const B=y.indexOf(v.currentTarget);y=x.loop?oC(y,B+1):y.slice(B+1)}setTimeout(()=>ex(y))}}),children:typeof A=="function"?A({isCurrentTabStop:p,hasTabStop:b!=null}):A})})});Jp.displayName=Xp;var tC={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rC(r,a){return a!=="rtl"?r:r==="ArrowLeft"?"ArrowRight":r==="ArrowRight"?"ArrowLeft":r}function nC(r,a,o){const i=rC(r.key,o);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(i))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(i)))return tC[i]}function ex(r,a=!1){const o=document.activeElement;for(const i of r)if(i===o||(i.focus({preventScroll:a}),document.activeElement!==o))return}function oC(r,a){return r.map((o,i)=>r[(a+i)%r.length])}var aC=Zp,sC=Jp,cl="Tabs",[iC]=za(cl,[Yp]),tx=Yp(),[lC,Qu]=iC(cl),rx=F.forwardRef((r,a)=>{const{__scopeTabs:o,value:i,onValueChange:u,defaultValue:l,orientation:A="horizontal",dir:c,activationMode:h="automatic",...d}=r,x=$p(c),[p,g]=rl({prop:i,onChange:u,defaultProp:l??"",caller:cl});return R.jsx(lC,{scope:o,baseId:Ma(),value:p,onValueChange:g,orientation:A,dir:x,activationMode:h,children:R.jsx(Tt.div,{dir:x,"data-orientation":A,...d,ref:a})})});rx.displayName=cl;var nx="TabsList",ox=F.forwardRef((r,a)=>{const{__scopeTabs:o,loop:i=!0,...u}=r,l=Qu(nx,o),A=tx(o);return R.jsx(aC,{asChild:!0,...A,orientation:l.orientation,dir:l.dir,loop:i,children:R.jsx(Tt.div,{role:"tablist","aria-orientation":l.orientation,...u,ref:a})})});ox.displayName=nx;var ax="TabsTrigger",sx=F.forwardRef((r,a)=>{const{__scopeTabs:o,value:i,disabled:u=!1,...l}=r,A=Qu(ax,o),c=tx(o),h=cx(A.baseId,i),d=ux(A.baseId,i),x=i===A.value;return R.jsx(sC,{asChild:!0,...c,focusable:!u,active:x,children:R.jsx(Tt.button,{type:"button",role:"tab","aria-selected":x,"aria-controls":d,"data-state":x?"active":"inactive","data-disabled":u?"":void 0,disabled:u,id:h,...l,ref:a,onMouseDown:St(r.onMouseDown,p=>{!u&&p.button===0&&p.ctrlKey===!1?A.onValueChange(i):p.preventDefault()}),onKeyDown:St(r.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&A.onValueChange(i)}),onFocus:St(r.onFocus,()=>{const p=A.activationMode!=="manual";!x&&!u&&p&&A.onValueChange(i)})})})});sx.displayName=ax;var ix="TabsContent",lx=F.forwardRef((r,a)=>{const{__scopeTabs:o,value:i,forceMount:u,children:l,...A}=r,c=Qu(ix,o),h=cx(c.baseId,i),d=ux(c.baseId,i),x=i===c.value,p=F.useRef(x);return F.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),R.jsx(Mo,{present:u||x,children:({present:g})=>R.jsx(Tt.div,{"data-state":x?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":h,hidden:!g,id:d,tabIndex:0,...A,ref:a,style:{...r.style,animationDuration:p.current?"0s":void 0},children:g&&l})})});lx.displayName=ix;function cx(r,a){return`${r}-trigger-${a}`}function ux(r,a){return`${r}-content-${a}`}var cC=rx,dx=ox,fx=sx,Ax=lx;const uC=cC,hx=F.forwardRef(({className:r,...a},o)=>R.jsx(dx,{ref:o,className:Ke("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",r),...a}));hx.displayName=dx.displayName;const Ta=F.forwardRef(({className:r,...a},o)=>R.jsx(fx,{ref:o,className:Ke("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",r),...a}));Ta.displayName=fx.displayName;const Pa=F.forwardRef(({className:r,...a},o)=>R.jsx(Ax,{ref:o,className:Ke("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",r),...a}));Pa.displayName=Ax.displayName;var dC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],fC=dC.reduce((r,a)=>{const o=ju(`Primitive.${a}`),i=F.forwardRef((u,l)=>{const{asChild:A,...c}=u,h=A?o:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(h,{...c,ref:l})});return i.displayName=`Primitive.${a}`,{...r,[a]:i}},{}),AC="Label",px=F.forwardRef((r,a)=>R.jsx(fC.label,{...r,ref:a,onMouseDown:o=>{var u;o.target.closest("button, input, select, textarea")||((u=r.onMouseDown)==null||u.call(r,o),!o.defaultPrevented&&o.detail>1&&o.preventDefault())}}));px.displayName=AC;var xx=px;const hC=tl("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),gt=F.forwardRef(({className:r,...a},o)=>R.jsx(xx,{ref:o,className:Ke(hC(),r),...a}));gt.displayName=xx.displayName;function pC(r){const a=F.useRef({value:r,previous:r});return F.useMemo(()=>(a.current.value!==r&&(a.current.previous=a.current.value,a.current.value=r),a.current.previous),[r])}function xC(r){const[a,o]=F.useState(void 0);return Ro(()=>{if(r){o({width:r.offsetWidth,height:r.offsetHeight});const i=new ResizeObserver(u=>{if(!Array.isArray(u)||!u.length)return;const l=u[0];let A,c;if("borderBoxSize"in l){const h=l.borderBoxSize,d=Array.isArray(h)?h[0]:h;A=d.inlineSize,c=d.blockSize}else A=r.offsetWidth,c=r.offsetHeight;o({width:A,height:c})});return i.observe(r,{box:"border-box"}),()=>i.unobserve(r)}else o(void 0)},[r]),a}var ul="Checkbox",[mC]=za(ul),[gC,Gu]=mC(ul);function vC(r){const{__scopeCheckbox:a,checked:o,children:i,defaultChecked:u,disabled:l,form:A,name:c,onCheckedChange:h,required:d,value:x="on",internal_do_not_use_render:p}=r,[g,C]=rl({prop:o,defaultProp:u??!1,onChange:h,caller:ul}),[w,b]=F.useState(null),[v,S]=F.useState(null),E=F.useRef(!1),y=w?!!A||!!w.closest("form"):!0,B={checked:g,disabled:l,setChecked:C,control:w,setControl:b,name:c,form:A,value:x,hasConsumerStoppedPropagationRef:E,required:d,defaultChecked:kn(u)?!1:u,isFormControl:y,bubbleInput:v,setBubbleInput:S};return R.jsx(gC,{scope:a,...B,children:yC(p)?p(B):i})}var mx="CheckboxTrigger",gx=F.forwardRef(({__scopeCheckbox:r,onKeyDown:a,onClick:o,...i},u)=>{const{control:l,value:A,disabled:c,checked:h,required:d,setControl:x,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:C,bubbleInput:w}=Gu(mx,r),b=gr(u,x),v=F.useRef(h);return F.useEffect(()=>{const S=l==null?void 0:l.form;if(S){const E=()=>p(v.current);return S.addEventListener("reset",E),()=>S.removeEventListener("reset",E)}},[l,p]),R.jsx(Tt.button,{type:"button",role:"checkbox","aria-checked":kn(h)?"mixed":h,"aria-required":d,"data-state":bx(h),"data-disabled":c?"":void 0,disabled:c,value:A,...i,ref:b,onKeyDown:St(a,S=>{S.key==="Enter"&&S.preventDefault()}),onClick:St(o,S=>{p(E=>kn(E)?!0:!E),w&&C&&(g.current=S.isPropagationStopped(),g.current||S.stopPropagation())})})});gx.displayName=mx;var $u=F.forwardRef((r,a)=>{const{__scopeCheckbox:o,name:i,checked:u,defaultChecked:l,required:A,disabled:c,value:h,onCheckedChange:d,form:x,...p}=r;return R.jsx(vC,{__scopeCheckbox:o,checked:u,defaultChecked:l,disabled:c,required:A,onCheckedChange:d,name:i,form:x,value:h,internal_do_not_use_render:({isFormControl:g})=>R.jsxs(R.Fragment,{children:[R.jsx(gx,{...p,ref:a,__scopeCheckbox:o}),g&&R.jsx(wx,{__scopeCheckbox:o})]})})});$u.displayName=ul;var vx="CheckboxIndicator",yx=F.forwardRef((r,a)=>{const{__scopeCheckbox:o,forceMount:i,...u}=r,l=Gu(vx,o);return R.jsx(Mo,{present:i||kn(l.checked)||l.checked===!0,children:R.jsx(Tt.span,{"data-state":bx(l.checked),"data-disabled":l.disabled?"":void 0,...u,ref:a,style:{pointerEvents:"none",...r.style}})})});yx.displayName=vx;var Cx="CheckboxBubbleInput",wx=F.forwardRef(({__scopeCheckbox:r,...a},o)=>{const{control:i,hasConsumerStoppedPropagationRef:u,checked:l,defaultChecked:A,required:c,disabled:h,name:d,value:x,form:p,bubbleInput:g,setBubbleInput:C}=Gu(Cx,r),w=gr(o,C),b=pC(l),v=xC(i);F.useEffect(()=>{const E=g;if(!E)return;const y=window.HTMLInputElement.prototype,D=Object.getOwnPropertyDescriptor(y,"checked").set,T=!u.current;if(b!==l&&D){const M=new Event("click",{bubbles:T});E.indeterminate=kn(l),D.call(E,kn(l)?!1:l),E.dispatchEvent(M)}},[g,b,l,u]);const S=F.useRef(kn(l)?!1:l);return R.jsx(Tt.input,{type:"checkbox","aria-hidden":!0,defaultChecked:A??S.current,required:c,disabled:h,name:d,value:x,form:p,...a,tabIndex:-1,ref:w,style:{...a.style,...v,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});wx.displayName=Cx;function yC(r){return typeof r=="function"}function kn(r){return r==="indeterminate"}function bx(r){return kn(r)?"indeterminate":r?"checked":"unchecked"}const Ex=F.forwardRef(({className:r,...a},o)=>R.jsx($u,{ref:o,className:Ke("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",r),...a,children:R.jsx(yx,{className:Ke("flex items-center justify-center text-current"),children:R.jsx(hv,{className:"h-4 w-4"})})}));Ex.displayName=$u.displayName;function CC({open:r,contacts:a,undecryptedCount:o,onClose:i,onSelectConversation:u,onCreateContact:l,onCreateChannel:A,onCreateHashtagChannel:c}){const[h,d]=F.useState("existing"),[x,p]=F.useState(""),[g,C]=F.useState(""),[w,b]=F.useState(!1),[v,S]=F.useState(""),[E,y]=F.useState(!1),B=F.useRef(null),D=async()=>{S(""),y(!0);try{if(h==="new-contact"){if(!x.trim()||!g.trim()){S("Name and public key are required");return}await l(x.trim(),g.trim(),w),u({type:"contact",id:g.trim(),name:x.trim()})}else if(h==="new-room"){if(!x.trim()||!g.trim()){S("Room name and key are required");return}await A(x.trim(),g.trim(),w)}else if(h==="hashtag"){const j=x.trim(),I=T(j);if(I){S(I);return}await c(`#${j}`,w)}i()}catch(j){S(j instanceof Error?j.message:"Failed to create")}finally{y(!1)}},T=j=>j?/^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(j)?null:"Use letters, numbers, and single dashes (no leading/trailing dashes)":"Channel name is required",M=async()=>{var N;S("");const j=x.trim(),I=T(j);if(I){S(I);return}y(!0);try{await c(`#${j}`,w),p(""),(N=B.current)==null||N.focus()}catch(z){S(z instanceof Error?z.message:"Failed to create")}finally{y(!1)}},P=h!=="existing"&&o>0;return R.jsx(Qp,{open:r,onOpenChange:j=>!j&&i(),children:R.jsxs(Vu,{className:"sm:max-w-[500px]",children:[R.jsx(Uu,{children:R.jsx(qu,{children:"New Conversation"})}),R.jsxs(uC,{value:h,onValueChange:j=>d(j),className:"w-full",children:[R.jsxs(hx,{className:"grid w-full grid-cols-4",children:[R.jsx(Ta,{value:"existing",children:"Existing"}),R.jsx(Ta,{value:"new-contact",children:"Contact"}),R.jsx(Ta,{value:"new-room",children:"Room"}),R.jsx(Ta,{value:"hashtag",children:"Hashtag"})]}),R.jsx(Pa,{value:"existing",className:"mt-4",children:R.jsx("div",{className:"max-h-[300px] overflow-y-auto rounded-md border",children:a.length===0?R.jsx("div",{className:"p-4 text-center text-muted-foreground",children:"No contacts available"}):a.map(j=>R.jsx("div",{className:"cursor-pointer px-4 py-2 hover:bg-accent",onClick:()=>{u({type:"contact",id:j.public_key,name:Kn(j.name,j.public_key)}),i()},children:Kn(j.name,j.public_key)},j.public_key))})}),R.jsxs(Pa,{value:"new-contact",className:"mt-4 space-y-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"contact-name",children:"Name"}),R.jsx(vt,{id:"contact-name",value:x,onChange:j=>p(j.target.value),placeholder:"Contact name"})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"contact-key",children:"Public Key"}),R.jsx(vt,{id:"contact-key",value:g,onChange:j=>C(j.target.value),placeholder:"64-character hex public key"})]})]}),R.jsxs(Pa,{value:"new-room",className:"mt-4 space-y-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"room-name",children:"Room Name"}),R.jsx(vt,{id:"room-name",value:x,onChange:j=>p(j.target.value),placeholder:"Room name"})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"room-key",children:"Room Key"}),R.jsx(vt,{id:"room-key",value:g,onChange:j=>C(j.target.value),placeholder:"Pre-shared key (hex)"})]})]}),R.jsx(Pa,{value:"hashtag",className:"mt-4",children:R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"hashtag-name",children:"Hashtag Channel"}),R.jsxs("div",{className:"flex items-center gap-1",children:[R.jsx("span",{className:"text-sm text-muted-foreground",children:"#"}),R.jsx(vt,{ref:B,id:"hashtag-name",value:x,onChange:j=>p(j.target.value),placeholder:"channel-name",className:"flex-1"})]})]})})]}),P&&R.jsxs("div",{className:"flex items-center justify-end space-x-2",children:[R.jsxs(gt,{htmlFor:"try-historical",className:"text-sm text-muted-foreground cursor-pointer",children:["Try decrypting ",o.toLocaleString()," stored packet",o!==1?"s":""]}),R.jsx(Ex,{id:"try-historical",checked:w,onCheckedChange:j=>b(j===!0)})]}),v&&R.jsx("div",{className:"text-sm text-destructive",children:v}),R.jsxs(Wu,{children:[R.jsx(zr,{variant:"outline",onClick:i,children:"Cancel"}),h==="hashtag"&&R.jsx(zr,{variant:"secondary",onClick:M,disabled:E,children:E?"Creating...":"Create & Add Another"}),h!=="existing"&&R.jsx(zr,{onClick:D,disabled:E,children:E?"Creating...":"Create"})]})]})})}var wC=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],bC=wC.reduce((r,a)=>{const o=ju(`Primitive.${a}`),i=F.forwardRef((u,l)=>{const{asChild:A,...c}=u,h=A?o:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),R.jsx(h,{...c,ref:l})});return i.displayName=`Primitive.${a}`,{...r,[a]:i}},{}),EC="Separator",CA="horizontal",kC=["horizontal","vertical"],kx=F.forwardRef((r,a)=>{const{decorative:o,orientation:i=CA,...u}=r,l=SC(i)?i:CA,c=o?{role:"none"}:{"aria-orientation":l==="vertical"?l:void 0,role:"separator"};return R.jsx(bC.div,{"data-orientation":l,...c,...u,ref:a})});kx.displayName=EC;function SC(r){return kC.includes(r)}var Sx=kx;const si=F.forwardRef(({className:r,orientation:a="horizontal",decorative:o=!0,...i},u)=>R.jsx(Sx,{ref:u,decorative:o,orientation:a,className:Ke("shrink-0 bg-border",a==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",r),...i}));si.displayName=Sx.displayName;const BC=tl("relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",warning:"border-yellow-500/50 bg-yellow-500/10 text-yellow-200 [&>svg]:text-yellow-500"}},defaultVariants:{variant:"default"}}),Bx=F.forwardRef(({className:r,variant:a,...o},i)=>R.jsx("div",{ref:i,role:"alert",className:Ke(BC({variant:a}),r),...o}));Bx.displayName="Alert";const _C=F.forwardRef(({className:r,...a},o)=>R.jsx("h5",{ref:o,className:Ke("mb-1 font-medium leading-none tracking-tight",r),...a}));_C.displayName="AlertTitle";const _x=F.forwardRef(({className:r,...a},o)=>R.jsx("div",{ref:o,className:Ke("text-sm [&_p]:leading-relaxed",r),...a}));_x.displayName="AlertDescription";function DC({open:r,config:a,appSettings:o,onClose:i,onSave:u,onSaveAppSettings:l,onSetPrivateKey:A,onReboot:c}){const[h,d]=F.useState(""),[x,p]=F.useState(""),[g,C]=F.useState(""),[w,b]=F.useState(""),[v,S]=F.useState(""),[E,y]=F.useState(""),[B,D]=F.useState(""),[T,M]=F.useState(""),[P,j]=F.useState(""),[I,N]=F.useState(""),[z,Q]=F.useState(!1),[X,se]=F.useState(!1),[J,ne]=F.useState("");F.useEffect(()=>{a&&(d(a.name),p(String(a.lat)),C(String(a.lon)),b(String(a.tx_power)),S(String(a.radio.freq)),y(String(a.radio.bw)),D(String(a.radio.sf)),M(String(a.radio.cr)))},[a]),F.useEffect(()=>{o&&N(String(o.max_radio_contacts))},[o]);const q=async()=>{ne(""),Q(!0);try{const k={name:h,lat:parseFloat(x),lon:parseFloat(g),tx_power:parseInt(w,10),radio:{freq:parseFloat(v),bw:parseFloat(E),sf:parseInt(B,10),cr:parseInt(T,10)}};await u(k);const H=parseInt(I,10);!isNaN(H)&&H!==(o==null?void 0:o.max_radio_contacts)&&await l({max_radio_contacts:H}),i()}catch(k){ne(k instanceof Error?k.message:"Failed to save")}finally{Q(!1)}},ae=async()=>{if(!P.trim()){ne("Private key is required");return}ne(""),Q(!0);try{await A(P.trim()),j(""),i()}catch(k){ne(k instanceof Error?k.message:"Failed to set private key")}finally{Q(!1)}},ee=async()=>{if(confirm("Are you sure you want to reboot the radio? The connection will drop temporarily.")){ne(""),se(!0);try{await c(),i()}catch(k){ne(k instanceof Error?k.message:"Failed to reboot radio")}finally{se(!1)}}};return R.jsx(Qp,{open:r,onOpenChange:k=>!k&&i(),children:R.jsxs(Vu,{className:"sm:max-w-[500px] max-h-[90vh] overflow-y-auto",children:[R.jsx(Uu,{children:R.jsx(qu,{children:"Radio Configuration"})}),a?R.jsxs("div",{className:"space-y-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"public-key",children:"Public Key"}),R.jsx(vt,{id:"public-key",value:a.public_key,disabled:!0})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"name",children:"Name"}),R.jsx(vt,{id:"name",value:h,onChange:k=>d(k.target.value)})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"lat",children:"Latitude"}),R.jsx(vt,{id:"lat",type:"number",step:"any",value:x,onChange:k=>p(k.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"lon",children:"Longitude"}),R.jsx(vt,{id:"lon",type:"number",step:"any",value:g,onChange:k=>C(k.target.value)})]})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"freq",children:"Frequency (MHz)"}),R.jsx(vt,{id:"freq",type:"number",step:"any",value:v,onChange:k=>S(k.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"bw",children:"Bandwidth (kHz)"}),R.jsx(vt,{id:"bw",type:"number",step:"any",value:E,onChange:k=>y(k.target.value)})]})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"sf",children:"Spreading Factor"}),R.jsx(vt,{id:"sf",type:"number",min:"7",max:"12",value:B,onChange:k=>D(k.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"cr",children:"Coding Rate"}),R.jsx(vt,{id:"cr",type:"number",min:"1",max:"4",value:T,onChange:k=>M(k.target.value)})]})]}),R.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"tx-power",children:"TX Power (dBm)"}),R.jsx(vt,{id:"tx-power",type:"number",value:w,onChange:k=>b(k.target.value)})]}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"max-tx",children:"Max TX Power"}),R.jsx(vt,{id:"max-tx",type:"number",value:a.max_tx_power,disabled:!0})]})]}),R.jsx(si,{className:"my-4"}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"max-contacts",children:"Max Contacts on Radio"}),R.jsx(vt,{id:"max-contacts",type:"number",min:"1",max:"1000",value:I,onChange:k=>N(k.target.value)}),R.jsx("p",{className:"text-xs text-muted-foreground",children:"Recent non-repeater contacts loaded to radio for DM auto-ACK (1-1000)"})]}),R.jsx(si,{className:"my-4"}),R.jsxs("div",{className:"space-y-2",children:[R.jsx(gt,{htmlFor:"private-key",children:"Set Private Key (write-only)"}),R.jsxs("div",{className:"flex gap-2",children:[R.jsx(vt,{id:"private-key",type:"password",value:P,onChange:k=>j(k.target.value),placeholder:"64-character hex private key",className:"flex-1"}),R.jsx(zr,{onClick:ae,disabled:z||!P.trim(),children:"Set"})]})]}),R.jsx(si,{className:"my-4"}),R.jsxs("div",{className:"space-y-3",children:[R.jsx(gt,{children:"Reboot Radio"}),R.jsx(Bx,{variant:"warning",children:R.jsx(_x,{children:"Some configuration changes (like name) require a radio reboot to take effect. The connection will temporarily drop and automatically reconnect."})}),R.jsx(zr,{variant:"outline",onClick:ee,disabled:X||z,className:"border-yellow-500/50 text-yellow-200 hover:bg-yellow-500/10",children:X?"Rebooting...":"Reboot Radio"})]}),J&&R.jsx("div",{className:"text-sm text-destructive",children:J})]}):R.jsx("div",{className:"py-8 text-center text-muted-foreground",children:"Loading configuration..."}),R.jsxs(Wu,{children:[R.jsx(zr,{variant:"outline",onClick:i,children:"Cancel"}),R.jsx(zr,{onClick:q,disabled:z||!a,children:z?"Saving...":"Save Config"})]})]})})}function FC(r){return new Date(r*1e3).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}function wA(r){return r.split("_").map(a=>a.charAt(0)+a.slice(1).toLowerCase()).join(" ")}function RC(r){if(!r.decrypted||!r.decrypted_info)return wA(r.payload_type);const a=r.decrypted_info;return r.payload_type==="GROUP_TEXT"&&a.channel_name?`GroupText to ${a.channel_name}`:r.payload_type==="TEXT_MESSAGE"&&a.sender?`TextMessage from ${a.sender}`:wA(r.payload_type)}function TC(r){const a=[];return r.snr!==null&&r.snr!==void 0&&a.push(`SNR: ${r.snr.toFixed(1)} dB`),r.rssi!==null&&r.rssi!==void 0&&a.push(`RSSI: ${r.rssi} dBm`),a.join(" | ")}function PC({packets:r}){const a=F.useRef(null);if(F.useEffect(()=>{a.current&&(a.current.scrollTop=a.current.scrollHeight)},[r]),r.length===0)return R.jsx("div",{className:"h-full overflow-y-auto p-5 text-center text-muted-foreground",children:"No packets received yet. Packets will appear here in real-time."});const o=[...r].sort((i,u)=>i.timestamp-u.timestamp);return R.jsx("div",{className:"h-full overflow-y-auto p-4 flex flex-col gap-3",ref:a,children:o.map(i=>R.jsxs("div",{className:"py-2 px-3 bg-muted rounded",children:[R.jsxs("div",{className:i.decrypted?"text-primary":"text-destructive",children:[!i.decrypted&&R.jsx("span",{className:"mr-1",children:"🔒"}),RC(i)," • ",FC(i.timestamp)]}),(i.snr!==null||i.rssi!==null)&&R.jsx("div",{className:"text-[11px] text-muted-foreground mt-0.5",children:TC(i)}),R.jsx("div",{className:"font-mono text-[11px] break-all text-muted-foreground/70 mt-1",children:i.data.toUpperCase()})]},i.id))})}var Xr={},va={},Ot={},bA;function ur(){if(bA)return Ot;bA=1,Object.defineProperty(Ot,"__esModule",{value:!0}),Ot.RequestType=Ot.AdvertFlags=Ot.DeviceRole=Ot.PayloadVersion=Ot.ControlSubType=Ot.PayloadType=Ot.RouteType=void 0;var r;(function(c){c[c.TransportFlood=0]="TransportFlood",c[c.Flood=1]="Flood",c[c.Direct=2]="Direct",c[c.TransportDirect=3]="TransportDirect"})(r||(Ot.RouteType=r={}));var a;(function(c){c[c.Request=0]="Request",c[c.Response=1]="Response",c[c.TextMessage=2]="TextMessage",c[c.Ack=3]="Ack",c[c.Advert=4]="Advert",c[c.GroupText=5]="GroupText",c[c.GroupData=6]="GroupData",c[c.AnonRequest=7]="AnonRequest",c[c.Path=8]="Path",c[c.Trace=9]="Trace",c[c.Multipart=10]="Multipart",c[c.Control=11]="Control",c[c.RawCustom=15]="RawCustom"})(a||(Ot.PayloadType=a={}));var o;(function(c){c[c.NodeDiscoverReq=128]="NodeDiscoverReq",c[c.NodeDiscoverResp=144]="NodeDiscoverResp"})(o||(Ot.ControlSubType=o={}));var i;(function(c){c[c.Version1=0]="Version1",c[c.Version2=1]="Version2",c[c.Version3=2]="Version3",c[c.Version4=3]="Version4"})(i||(Ot.PayloadVersion=i={}));var u;(function(c){c[c.Unknown=0]="Unknown",c[c.ChatNode=1]="ChatNode",c[c.Repeater=2]="Repeater",c[c.RoomServer=3]="RoomServer",c[c.Sensor=4]="Sensor"})(u||(Ot.DeviceRole=u={}));var l;(function(c){c[c.HasLocation=16]="HasLocation",c[c.HasFeature1=32]="HasFeature1",c[c.HasFeature2=64]="HasFeature2",c[c.HasName=128]="HasName"})(l||(Ot.AdvertFlags=l={}));var A;return(function(c){c[c.GetStats=1]="GetStats",c[c.Keepalive=2]="Keepalive",c[c.GetTelemetryData=3]="GetTelemetryData",c[c.GetMinMaxAvgData=4]="GetMinMaxAvgData",c[c.GetAccessList=5]="GetAccessList"})(A||(Ot.RequestType=A={})),Ot}var Un={},EA;function jt(){if(EA)return Un;EA=1,Object.defineProperty(Un,"__esModule",{value:!0}),Un.byteToHex=r,Un.bytesToHex=a,Un.numberToHex=o,Un.hexToBytes=i;function r(u){return u.toString(16).padStart(2,"0").toUpperCase()}function a(u){return Array.from(u).map(r).join("")}function o(u,l=8){return(u>>>0).toString(16).padStart(l,"0").toUpperCase()}function i(u){const l=u.replace(/\s/g,"").toUpperCase();if(!/^[0-9A-F]*$/.test(l))throw new Error("Invalid hex string: invalid characters at position 0");if(l.length%2!==0)throw new Error("Invalid hex string: odd length");const A=new Uint8Array(l.length/2);for(let c=0;c>>2]>>>24-M%4*8&255;y[D+M>>>2]|=P<<24-(D+M)%4*8}else for(var j=0;j>>2]=B[j>>>2];return this.sigBytes+=T,this},clamp:function(){var E=this.words,y=this.sigBytes;E[y>>>2]&=4294967295<<32-y%4*8,E.length=i.ceil(y/4)},clone:function(){var E=x.clone.call(this);return E.words=this.words.slice(0),E},random:function(E){for(var y=[],B=0;B>>2]>>>24-T%4*8&255;D.push((M>>>4).toString(16)),D.push((M&15).toString(16))}return D.join("")},parse:function(E){for(var y=E.length,B=[],D=0;D>>3]|=parseInt(E.substr(D,2),16)<<24-D%8*4;return new p.init(B,y/2)}},w=g.Latin1={stringify:function(E){for(var y=E.words,B=E.sigBytes,D=[],T=0;T>>2]>>>24-T%4*8&255;D.push(String.fromCharCode(M))}return D.join("")},parse:function(E){for(var y=E.length,B=[],D=0;D>>2]|=(E.charCodeAt(D)&255)<<24-D%4*8;return new p.init(B,y)}},b=g.Utf8={stringify:function(E){try{return decodeURIComponent(escape(w.stringify(E)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(E){return w.parse(unescape(encodeURIComponent(E)))}},v=d.BufferedBlockAlgorithm=x.extend({reset:function(){this._data=new p.init,this._nDataBytes=0},_append:function(E){typeof E=="string"&&(E=b.parse(E)),this._data.concat(E),this._nDataBytes+=E.sigBytes},_process:function(E){var y,B=this._data,D=B.words,T=B.sigBytes,M=this.blockSize,P=M*4,j=T/P;E?j=i.ceil(j):j=i.max((j|0)-this._minBufferSize,0);var I=j*M,N=i.min(I*4,T);if(I){for(var z=0;z>>2]|=h[p]<<24-p%4*8;A.call(this,x,d)}else A.apply(this,arguments)};c.prototype=l}})(),o.lib.WordArray})})(ui)),ui.exports}var di={exports:{}},LC=di.exports,DA;function zC(){return DA||(DA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(LC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.enc;A.Utf16=A.Utf16BE={stringify:function(h){for(var d=h.words,x=h.sigBytes,p=[],g=0;g>>2]>>>16-g%4*8&65535;p.push(String.fromCharCode(C))}return p.join("")},parse:function(h){for(var d=h.length,x=[],p=0;p>>1]|=h.charCodeAt(p)<<16-p%2*16;return l.create(x,d*2)}},A.Utf16LE={stringify:function(h){for(var d=h.words,x=h.sigBytes,p=[],g=0;g>>2]>>>16-g%4*8&65535);p.push(String.fromCharCode(C))}return p.join("")},parse:function(h){for(var d=h.length,x=[],p=0;p>>1]|=c(h.charCodeAt(p)<<16-p%2*16);return l.create(x,d*2)}};function c(h){return h<<8&4278255360|h>>>8&16711935}})(),o.enc.Utf16})})(di)),di.exports}var fi={exports:{}},VC=fi.exports,FA;function Xn(){return FA||(FA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(VC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.enc;A.Base64={stringify:function(h){var d=h.words,x=h.sigBytes,p=this._map;h.clamp();for(var g=[],C=0;C>>2]>>>24-C%4*8&255,b=d[C+1>>>2]>>>24-(C+1)%4*8&255,v=d[C+2>>>2]>>>24-(C+2)%4*8&255,S=w<<16|b<<8|v,E=0;E<4&&C+E*.75>>6*(3-E)&63));var y=p.charAt(64);if(y)for(;g.length%4;)g.push(y);return g.join("")},parse:function(h){var d=h.length,x=this._map,p=this._reverseMap;if(!p){p=this._reverseMap=[];for(var g=0;g>>6-C%4*2,v=w|b;p[g>>>2]|=v<<24-g%4*8,g++}return l.create(p,g)}})(),o.enc.Base64})})(fi)),fi.exports}var Ai={exports:{}},UC=Ai.exports,RA;function WC(){return RA||(RA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(UC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.enc;A.Base64url={stringify:function(h,d){d===void 0&&(d=!0);var x=h.words,p=h.sigBytes,g=d?this._safe_map:this._map;h.clamp();for(var C=[],w=0;w>>2]>>>24-w%4*8&255,v=x[w+1>>>2]>>>24-(w+1)%4*8&255,S=x[w+2>>>2]>>>24-(w+2)%4*8&255,E=b<<16|v<<8|S,y=0;y<4&&w+y*.75>>6*(3-y)&63));var B=g.charAt(64);if(B)for(;C.length%4;)C.push(B);return C.join("")},parse:function(h,d){d===void 0&&(d=!0);var x=h.length,p=d?this._safe_map:this._map,g=this._reverseMap;if(!g){g=this._reverseMap=[];for(var C=0;C>>6-C%4*2,v=w|b;p[g>>>2]|=v<<24-g%4*8,g++}return l.create(p,g)}})(),o.enc.Base64url})})(Ai)),Ai.exports}var hi={exports:{}},qC=hi.exports,TA;function Jn(){return TA||(TA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(qC,function(o){return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.algo,d=[];(function(){for(var b=0;b<64;b++)d[b]=i.abs(i.sin(b+1))*4294967296|0})();var x=h.MD5=c.extend({_doReset:function(){this._hash=new A.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(b,v){for(var S=0;S<16;S++){var E=v+S,y=b[E];b[E]=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360}var B=this._hash.words,D=b[v+0],T=b[v+1],M=b[v+2],P=b[v+3],j=b[v+4],I=b[v+5],N=b[v+6],z=b[v+7],Q=b[v+8],X=b[v+9],se=b[v+10],J=b[v+11],ne=b[v+12],q=b[v+13],ae=b[v+14],ee=b[v+15],k=B[0],H=B[1],V=B[2],W=B[3];k=p(k,H,V,W,D,7,d[0]),W=p(W,k,H,V,T,12,d[1]),V=p(V,W,k,H,M,17,d[2]),H=p(H,V,W,k,P,22,d[3]),k=p(k,H,V,W,j,7,d[4]),W=p(W,k,H,V,I,12,d[5]),V=p(V,W,k,H,N,17,d[6]),H=p(H,V,W,k,z,22,d[7]),k=p(k,H,V,W,Q,7,d[8]),W=p(W,k,H,V,X,12,d[9]),V=p(V,W,k,H,se,17,d[10]),H=p(H,V,W,k,J,22,d[11]),k=p(k,H,V,W,ne,7,d[12]),W=p(W,k,H,V,q,12,d[13]),V=p(V,W,k,H,ae,17,d[14]),H=p(H,V,W,k,ee,22,d[15]),k=g(k,H,V,W,T,5,d[16]),W=g(W,k,H,V,N,9,d[17]),V=g(V,W,k,H,J,14,d[18]),H=g(H,V,W,k,D,20,d[19]),k=g(k,H,V,W,I,5,d[20]),W=g(W,k,H,V,se,9,d[21]),V=g(V,W,k,H,ee,14,d[22]),H=g(H,V,W,k,j,20,d[23]),k=g(k,H,V,W,X,5,d[24]),W=g(W,k,H,V,ae,9,d[25]),V=g(V,W,k,H,P,14,d[26]),H=g(H,V,W,k,Q,20,d[27]),k=g(k,H,V,W,q,5,d[28]),W=g(W,k,H,V,M,9,d[29]),V=g(V,W,k,H,z,14,d[30]),H=g(H,V,W,k,ne,20,d[31]),k=C(k,H,V,W,I,4,d[32]),W=C(W,k,H,V,Q,11,d[33]),V=C(V,W,k,H,J,16,d[34]),H=C(H,V,W,k,ae,23,d[35]),k=C(k,H,V,W,T,4,d[36]),W=C(W,k,H,V,j,11,d[37]),V=C(V,W,k,H,z,16,d[38]),H=C(H,V,W,k,se,23,d[39]),k=C(k,H,V,W,q,4,d[40]),W=C(W,k,H,V,D,11,d[41]),V=C(V,W,k,H,P,16,d[42]),H=C(H,V,W,k,N,23,d[43]),k=C(k,H,V,W,X,4,d[44]),W=C(W,k,H,V,ne,11,d[45]),V=C(V,W,k,H,ee,16,d[46]),H=C(H,V,W,k,M,23,d[47]),k=w(k,H,V,W,D,6,d[48]),W=w(W,k,H,V,z,10,d[49]),V=w(V,W,k,H,ae,15,d[50]),H=w(H,V,W,k,I,21,d[51]),k=w(k,H,V,W,ne,6,d[52]),W=w(W,k,H,V,P,10,d[53]),V=w(V,W,k,H,se,15,d[54]),H=w(H,V,W,k,T,21,d[55]),k=w(k,H,V,W,Q,6,d[56]),W=w(W,k,H,V,ee,10,d[57]),V=w(V,W,k,H,N,15,d[58]),H=w(H,V,W,k,q,21,d[59]),k=w(k,H,V,W,j,6,d[60]),W=w(W,k,H,V,J,10,d[61]),V=w(V,W,k,H,M,15,d[62]),H=w(H,V,W,k,X,21,d[63]),B[0]=B[0]+k|0,B[1]=B[1]+H|0,B[2]=B[2]+V|0,B[3]=B[3]+W|0},_doFinalize:function(){var b=this._data,v=b.words,S=this._nDataBytes*8,E=b.sigBytes*8;v[E>>>5]|=128<<24-E%32;var y=i.floor(S/4294967296),B=S;v[(E+64>>>9<<4)+15]=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,v[(E+64>>>9<<4)+14]=(B<<8|B>>>24)&16711935|(B<<24|B>>>8)&4278255360,b.sigBytes=(v.length+1)*4,this._process();for(var D=this._hash,T=D.words,M=0;M<4;M++){var P=T[M];T[M]=(P<<8|P>>>24)&16711935|(P<<24|P>>>8)&4278255360}return D},clone:function(){var b=c.clone.call(this);return b._hash=this._hash.clone(),b}});function p(b,v,S,E,y,B,D){var T=b+(v&S|~v&E)+y+D;return(T<>>32-B)+v}function g(b,v,S,E,y,B,D){var T=b+(v&E|S&~E)+y+D;return(T<>>32-B)+v}function C(b,v,S,E,y,B,D){var T=b+(v^S^E)+y+D;return(T<>>32-B)+v}function w(b,v,S,E,y,B,D){var T=b+(S^(v|~E))+y+D;return(T<>>32-B)+v}u.MD5=c._createHelper(x),u.HmacMD5=c._createHmacHelper(x)})(Math),o.MD5})})(hi)),hi.exports}var pi={exports:{}},QC=pi.exports,PA;function Dx(){return PA||(PA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(QC,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=u.Hasher,c=i.algo,h=[],d=c.SHA1=A.extend({_doReset:function(){this._hash=new l.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(x,p){for(var g=this._hash.words,C=g[0],w=g[1],b=g[2],v=g[3],S=g[4],E=0;E<80;E++){if(E<16)h[E]=x[p+E]|0;else{var y=h[E-3]^h[E-8]^h[E-14]^h[E-16];h[E]=y<<1|y>>>31}var B=(C<<5|C>>>27)+S+h[E];E<20?B+=(w&b|~w&v)+1518500249:E<40?B+=(w^b^v)+1859775393:E<60?B+=(w&b|w&v|b&v)-1894007588:B+=(w^b^v)-899497514,S=v,v=b,b=w<<30|w>>>2,w=C,C=B}g[0]=g[0]+C|0,g[1]=g[1]+w|0,g[2]=g[2]+b|0,g[3]=g[3]+v|0,g[4]=g[4]+S|0},_doFinalize:function(){var x=this._data,p=x.words,g=this._nDataBytes*8,C=x.sigBytes*8;return p[C>>>5]|=128<<24-C%32,p[(C+64>>>9<<4)+14]=Math.floor(g/4294967296),p[(C+64>>>9<<4)+15]=g,x.sigBytes=p.length*4,this._process(),this._hash},clone:function(){var x=A.clone.call(this);return x._hash=this._hash.clone(),x}});i.SHA1=A._createHelper(d),i.HmacSHA1=A._createHmacHelper(d)})(),o.SHA1})})(pi)),pi.exports}var xi={exports:{}},GC=xi.exports,NA;function Ua(){return NA||(NA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(GC,function(o){return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.algo,d=[],x=[];(function(){function C(S){for(var E=i.sqrt(S),y=2;y<=E;y++)if(!(S%y))return!1;return!0}function w(S){return(S-(S|0))*4294967296|0}for(var b=2,v=0;v<64;)C(b)&&(v<8&&(d[v]=w(i.pow(b,1/2))),x[v]=w(i.pow(b,1/3)),v++),b++})();var p=[],g=h.SHA256=c.extend({_doReset:function(){this._hash=new A.init(d.slice(0))},_doProcessBlock:function(C,w){for(var b=this._hash.words,v=b[0],S=b[1],E=b[2],y=b[3],B=b[4],D=b[5],T=b[6],M=b[7],P=0;P<64;P++){if(P<16)p[P]=C[w+P]|0;else{var j=p[P-15],I=(j<<25|j>>>7)^(j<<14|j>>>18)^j>>>3,N=p[P-2],z=(N<<15|N>>>17)^(N<<13|N>>>19)^N>>>10;p[P]=I+p[P-7]+z+p[P-16]}var Q=B&D^~B&T,X=v&S^v&E^S&E,se=(v<<30|v>>>2)^(v<<19|v>>>13)^(v<<10|v>>>22),J=(B<<26|B>>>6)^(B<<21|B>>>11)^(B<<7|B>>>25),ne=M+J+Q+x[P]+p[P],q=se+X;M=T,T=D,D=B,B=y+ne|0,y=E,E=S,S=v,v=ne+q|0}b[0]=b[0]+v|0,b[1]=b[1]+S|0,b[2]=b[2]+E|0,b[3]=b[3]+y|0,b[4]=b[4]+B|0,b[5]=b[5]+D|0,b[6]=b[6]+T|0,b[7]=b[7]+M|0},_doFinalize:function(){var C=this._data,w=C.words,b=this._nDataBytes*8,v=C.sigBytes*8;return w[v>>>5]|=128<<24-v%32,w[(v+64>>>9<<4)+14]=i.floor(b/4294967296),w[(v+64>>>9<<4)+15]=b,C.sigBytes=w.length*4,this._process(),this._hash},clone:function(){var C=c.clone.call(this);return C._hash=this._hash.clone(),C}});u.SHA256=c._createHelper(g),u.HmacSHA256=c._createHmacHelper(g)})(Math),o.SHA256})})(xi)),xi.exports}var mi={exports:{}},$C=mi.exports,IA;function KC(){return IA||(IA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Ua())})($C,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=i.algo,c=A.SHA256,h=A.SHA224=c.extend({_doReset:function(){this._hash=new l.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var d=c._doFinalize.call(this);return d.sigBytes-=4,d}});i.SHA224=c._createHelper(h),i.HmacSHA224=c._createHmacHelper(h)})(),o.SHA224})})(mi)),mi.exports}var gi={exports:{}},YC=gi.exports,MA;function Fx(){return MA||(MA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),dl())})(YC,function(o){return(function(){var i=o,u=i.lib,l=u.Hasher,A=i.x64,c=A.Word,h=A.WordArray,d=i.algo;function x(){return c.create.apply(c,arguments)}var p=[x(1116352408,3609767458),x(1899447441,602891725),x(3049323471,3964484399),x(3921009573,2173295548),x(961987163,4081628472),x(1508970993,3053834265),x(2453635748,2937671579),x(2870763221,3664609560),x(3624381080,2734883394),x(310598401,1164996542),x(607225278,1323610764),x(1426881987,3590304994),x(1925078388,4068182383),x(2162078206,991336113),x(2614888103,633803317),x(3248222580,3479774868),x(3835390401,2666613458),x(4022224774,944711139),x(264347078,2341262773),x(604807628,2007800933),x(770255983,1495990901),x(1249150122,1856431235),x(1555081692,3175218132),x(1996064986,2198950837),x(2554220882,3999719339),x(2821834349,766784016),x(2952996808,2566594879),x(3210313671,3203337956),x(3336571891,1034457026),x(3584528711,2466948901),x(113926993,3758326383),x(338241895,168717936),x(666307205,1188179964),x(773529912,1546045734),x(1294757372,1522805485),x(1396182291,2643833823),x(1695183700,2343527390),x(1986661051,1014477480),x(2177026350,1206759142),x(2456956037,344077627),x(2730485921,1290863460),x(2820302411,3158454273),x(3259730800,3505952657),x(3345764771,106217008),x(3516065817,3606008344),x(3600352804,1432725776),x(4094571909,1467031594),x(275423344,851169720),x(430227734,3100823752),x(506948616,1363258195),x(659060556,3750685593),x(883997877,3785050280),x(958139571,3318307427),x(1322822218,3812723403),x(1537002063,2003034995),x(1747873779,3602036899),x(1955562222,1575990012),x(2024104815,1125592928),x(2227730452,2716904306),x(2361852424,442776044),x(2428436474,593698344),x(2756734187,3733110249),x(3204031479,2999351573),x(3329325298,3815920427),x(3391569614,3928383900),x(3515267271,566280711),x(3940187606,3454069534),x(4118630271,4000239992),x(116418474,1914138554),x(174292421,2731055270),x(289380356,3203993006),x(460393269,320620315),x(685471733,587496836),x(852142971,1086792851),x(1017036298,365543100),x(1126000580,2618297676),x(1288033470,3409855158),x(1501505948,4234509866),x(1607167915,987167468),x(1816402316,1246189591)],g=[];(function(){for(var w=0;w<80;w++)g[w]=x()})();var C=d.SHA512=l.extend({_doReset:function(){this._hash=new h.init([new c.init(1779033703,4089235720),new c.init(3144134277,2227873595),new c.init(1013904242,4271175723),new c.init(2773480762,1595750129),new c.init(1359893119,2917565137),new c.init(2600822924,725511199),new c.init(528734635,4215389547),new c.init(1541459225,327033209)])},_doProcessBlock:function(w,b){for(var v=this._hash.words,S=v[0],E=v[1],y=v[2],B=v[3],D=v[4],T=v[5],M=v[6],P=v[7],j=S.high,I=S.low,N=E.high,z=E.low,Q=y.high,X=y.low,se=B.high,J=B.low,ne=D.high,q=D.low,ae=T.high,ee=T.low,k=M.high,H=M.low,V=P.high,W=P.low,de=j,re=I,le=N,te=z,Se=Q,Me=X,Ne=se,Oe=J,We=ne,Re=q,Bt=ae,xt=ee,_t=k,qt=H,ct=V,Nt=W,rt=0;rt<80;rt++){var Qe,ut,$t=g[rt];if(rt<16)ut=$t.high=w[b+rt*2]|0,Qe=$t.low=w[b+rt*2+1]|0;else{var vr=g[rt-15],yt=vr.high,Ht=vr.low,Kt=(yt>>>1|Ht<<31)^(yt>>>8|Ht<<24)^yt>>>7,or=(Ht>>>1|yt<<31)^(Ht>>>8|yt<<24)^(Ht>>>7|yt<<25),Ct=g[rt-2],at=Ct.high,Y=Ct.low,fe=(at>>>19|Y<<13)^(at<<3|Y>>>29)^at>>>6,we=(Y>>>19|at<<13)^(Y<<3|at>>>29)^(Y>>>6|at<<26),$=g[rt-7],oe=$.high,pe=$.low,Te=g[rt-16],De=Te.high,je=Te.low;Qe=or+pe,ut=Kt+oe+(Qe>>>0>>0?1:0),Qe=Qe+we,ut=ut+fe+(Qe>>>0>>0?1:0),Qe=Qe+je,ut=ut+De+(Qe>>>0>>0?1:0),$t.high=ut,$t.low=Qe}var Pe=We&Bt^~We&_t,Ie=Re&xt^~Re&qt,wt=de&le^de&Se^le&Se,Ee=re&te^re&Me^te&Me,ze=(de>>>28|re<<4)^(de<<30|re>>>2)^(de<<25|re>>>7),qe=(re>>>28|de<<4)^(re<<30|de>>>2)^(re<<25|de>>>7),dt=(We>>>14|Re<<18)^(We>>>18|Re<<14)^(We<<23|Re>>>9),dr=(Re>>>14|We<<18)^(Re>>>18|We<<14)^(Re<<23|We>>>9),Ve=p[rt],Je=Ve.high,yr=Ve.low,Ye=Nt+dr,ft=ct+dt+(Ye>>>0>>0?1:0),Ye=Ye+Ie,ft=ft+Pe+(Ye>>>0>>0?1:0),Ye=Ye+yr,ft=ft+Je+(Ye>>>0>>0?1:0),Ye=Ye+Qe,ft=ft+ut+(Ye>>>0>>0?1:0),Cr=qe+Ee,Yt=ze+wt+(Cr>>>0>>0?1:0);ct=_t,Nt=qt,_t=Bt,qt=xt,Bt=We,xt=Re,Re=Oe+Ye|0,We=Ne+ft+(Re>>>0>>0?1:0)|0,Ne=Se,Oe=Me,Se=le,Me=te,le=de,te=re,re=Ye+Cr|0,de=ft+Yt+(re>>>0>>0?1:0)|0}I=S.low=I+re,S.high=j+de+(I>>>0>>0?1:0),z=E.low=z+te,E.high=N+le+(z>>>0>>0?1:0),X=y.low=X+Me,y.high=Q+Se+(X>>>0>>0?1:0),J=B.low=J+Oe,B.high=se+Ne+(J>>>0>>0?1:0),q=D.low=q+Re,D.high=ne+We+(q>>>0>>0?1:0),ee=T.low=ee+xt,T.high=ae+Bt+(ee>>>0>>0?1:0),H=M.low=H+qt,M.high=k+_t+(H>>>0>>0?1:0),W=P.low=W+Nt,P.high=V+ct+(W>>>0>>0?1:0)},_doFinalize:function(){var w=this._data,b=w.words,v=this._nDataBytes*8,S=w.sigBytes*8;b[S>>>5]|=128<<24-S%32,b[(S+128>>>10<<5)+30]=Math.floor(v/4294967296),b[(S+128>>>10<<5)+31]=v,w.sigBytes=b.length*4,this._process();var E=this._hash.toX32();return E},clone:function(){var w=l.clone.call(this);return w._hash=this._hash.clone(),w},blockSize:1024/32});i.SHA512=l._createHelper(C),i.HmacSHA512=l._createHmacHelper(C)})(),o.SHA512})})(gi)),gi.exports}var vi={exports:{}},ZC=vi.exports,OA;function XC(){return OA||(OA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),dl(),Fx())})(ZC,function(o){return(function(){var i=o,u=i.x64,l=u.Word,A=u.WordArray,c=i.algo,h=c.SHA512,d=c.SHA384=h.extend({_doReset:function(){this._hash=new A.init([new l.init(3418070365,3238371032),new l.init(1654270250,914150663),new l.init(2438529370,812702999),new l.init(355462360,4144912697),new l.init(1731405415,4290775857),new l.init(2394180231,1750603025),new l.init(3675008525,1694076839),new l.init(1203062813,3204075428)])},_doFinalize:function(){var x=h._doFinalize.call(this);return x.sigBytes-=16,x}});i.SHA384=h._createHelper(d),i.HmacSHA384=h._createHmacHelper(d)})(),o.SHA384})})(vi)),vi.exports}var yi={exports:{}},JC=yi.exports,jA;function e4(){return jA||(jA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),dl())})(JC,function(o){return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.x64,d=h.Word,x=u.algo,p=[],g=[],C=[];(function(){for(var v=1,S=0,E=0;E<24;E++){p[v+5*S]=(E+1)*(E+2)/2%64;var y=S%5,B=(2*v+3*S)%5;v=y,S=B}for(var v=0;v<5;v++)for(var S=0;S<5;S++)g[v+5*S]=S+(2*v+3*S)%5*5;for(var D=1,T=0;T<24;T++){for(var M=0,P=0,j=0;j<7;j++){if(D&1){var I=(1<>>24)&16711935|(D<<24|D>>>8)&4278255360,T=(T<<8|T>>>24)&16711935|(T<<24|T>>>8)&4278255360;var M=E[B];M.high^=T,M.low^=D}for(var P=0;P<24;P++){for(var j=0;j<5;j++){for(var I=0,N=0,z=0;z<5;z++){var M=E[j+5*z];I^=M.high,N^=M.low}var Q=w[j];Q.high=I,Q.low=N}for(var j=0;j<5;j++)for(var X=w[(j+4)%5],se=w[(j+1)%5],J=se.high,ne=se.low,I=X.high^(J<<1|ne>>>31),N=X.low^(ne<<1|J>>>31),z=0;z<5;z++){var M=E[j+5*z];M.high^=I,M.low^=N}for(var q=1;q<25;q++){var I,N,M=E[q],ae=M.high,ee=M.low,k=p[q];k<32?(I=ae<>>32-k,N=ee<>>32-k):(I=ee<>>64-k,N=ae<>>64-k);var H=w[g[q]];H.high=I,H.low=N}var V=w[0],W=E[0];V.high=W.high,V.low=W.low;for(var j=0;j<5;j++)for(var z=0;z<5;z++){var q=j+5*z,M=E[q],de=w[q],re=w[(j+1)%5+5*z],le=w[(j+2)%5+5*z];M.high=de.high^~re.high&le.high,M.low=de.low^~re.low&le.low}var M=E[0],te=C[P];M.high^=te.high,M.low^=te.low}},_doFinalize:function(){var v=this._data,S=v.words;this._nDataBytes*8;var E=v.sigBytes*8,y=this.blockSize*32;S[E>>>5]|=1<<24-E%32,S[(i.ceil((E+1)/y)*y>>>5)-1]|=128,v.sigBytes=S.length*4,this._process();for(var B=this._state,D=this.cfg.outputLength/8,T=D/8,M=[],P=0;P>>24)&16711935|(I<<24|I>>>8)&4278255360,N=(N<<8|N>>>24)&16711935|(N<<24|N>>>8)&4278255360,M.push(N),M.push(I)}return new A.init(M,D)},clone:function(){for(var v=c.clone.call(this),S=v._state=this._state.slice(0),E=0;E<25;E++)S[E]=S[E].clone();return v}});u.SHA3=c._createHelper(b),u.HmacSHA3=c._createHmacHelper(b)})(Math),o.SHA3})})(yi)),yi.exports}var Ci={exports:{}},t4=Ci.exports,HA;function r4(){return HA||(HA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(t4,function(o){/** @preserve (c) 2012 by Cédric Mesnil. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -126,17 +126,17 @@ For more information, see https://radix-ui.com/primitives/docs/components/${a.do - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */return(function(i){var u=o,l=u.lib,A=l.WordArray,c=l.Hasher,h=u.algo,d=A.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),p=A.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),x=A.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),g=A.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),w=A.create([0,1518500249,1859775393,2400959708,2840853838]),b=A.create([1352829926,1548603684,1836072691,2053994217,0]),k=h.RIPEMD160=c.extend({_doReset:function(){this._hash=A.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(T,I){for(var P=0;P<16;P++){var H=I+P,M=T[H];T[H]=(M<<8|M>>>24)&16711935|(M<<24|M>>>8)&4278255360}var N=this._hash.words,V=w.words,Q=b.words,X=d.words,ae=p.words,J=x.words,re=g.words,q,oe,ee,y,j,L,W,ue,le,ce;L=q=N[0],W=oe=N[1],ue=ee=N[2],le=y=N[3],ce=j=N[4];for(var te,P=0;P<80;P+=1)te=q+T[I+X[P]]|0,P<16?te+=v(oe,ee,y)+V[0]:P<32?te+=S(oe,ee,y)+V[1]:P<48?te+=E(oe,ee,y)+V[2]:P<64?te+=C(oe,ee,y)+V[3]:te+=B(oe,ee,y)+V[4],te=te|0,te=D(te,J[P]),te=te+j|0,q=j,j=y,y=D(ee,10),ee=oe,oe=te,te=L+T[I+ae[P]]|0,P<16?te+=B(W,ue,le)+Q[0]:P<32?te+=C(W,ue,le)+Q[1]:P<48?te+=E(W,ue,le)+Q[2]:P<64?te+=S(W,ue,le)+Q[3]:te+=v(W,ue,le)+Q[4],te=te|0,te=D(te,re[P]),te=te+ce|0,L=ce,ce=le,le=D(ue,10),ue=W,W=te;te=N[1]+ee+le|0,N[1]=N[2]+y+ce|0,N[2]=N[3]+j+L|0,N[3]=N[4]+q+W|0,N[4]=N[0]+oe+ue|0,N[0]=te},_doFinalize:function(){var T=this._data,I=T.words,P=this._nDataBytes*8,H=T.sigBytes*8;I[H>>>5]|=128<<24-H%32,I[(H+64>>>9<<4)+14]=(P<<8|P>>>24)&16711935|(P<<24|P>>>8)&4278255360,T.sigBytes=(I.length+1)*4,this._process();for(var M=this._hash,N=M.words,V=0;V<5;V++){var Q=N[V];N[V]=(Q<<8|Q>>>24)&16711935|(Q<<24|Q>>>8)&4278255360}return M},clone:function(){var T=c.clone.call(this);return T._hash=this._hash.clone(),T}});function v(T,I,P){return T^I^P}function S(T,I,P){return T&I|~T&P}function E(T,I,P){return(T|~I)^P}function C(T,I,P){return T&P|I&~P}function B(T,I,P){return T^(I|~P)}function D(T,I){return T<>>32-I}u.RIPEMD160=c._createHelper(k),u.HmacRIPEMD160=c._createHmacHelper(k)})(),o.RIPEMD160})})(Ci)),Ci.exports}var wi={exports:{}},n4=wi.exports,LA;function fl(){return LA||(LA=1,(function(r,a){(function(o,i){r.exports=i(Le())})(n4,function(o){(function(){var i=o,u=i.lib,l=u.Base,A=i.enc,c=A.Utf8,h=i.algo;h.HMAC=l.extend({init:function(d,p){d=this._hasher=new d.init,typeof p=="string"&&(p=c.parse(p));var x=d.blockSize,g=x*4;p.sigBytes>g&&(p=d.finalize(p)),p.clamp();for(var w=this._oKey=p.clone(),b=this._iKey=p.clone(),k=w.words,v=b.words,S=0;S>>2]&255;M.sigBytes-=N}};l.BlockCipher=w.extend({cfg:w.cfg.extend({mode:v,padding:E}),reset:function(){var M;w.reset.call(this);var N=this.cfg,V=N.iv,Q=N.mode;this._xformMode==this._ENC_XFORM_MODE?M=Q.createEncryptor:(M=Q.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==M?this._mode.init(this,V&&V.words):(this._mode=M.call(Q,this,V&&V.words),this._mode.__creator=M)},_doProcessBlock:function(M,N){this._mode.processBlock(M,N)},_doFinalize:function(){var M,N=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(N.pad(this._data,this.blockSize),M=this._process(!0)):(M=this._process(!0),N.unpad(M)),M},blockSize:128/32});var C=l.CipherParams=A.extend({init:function(M){this.mixIn(M)},toString:function(M){return(M||this.formatter).stringify(this)}}),B=u.format={},D=B.OpenSSL={stringify:function(M){var N,V=M.ciphertext,Q=M.salt;return Q?N=c.create([1398893684,1701076831]).concat(Q).concat(V):N=V,N.toString(p)},parse:function(M){var N,V=p.parse(M),Q=V.words;return Q[0]==1398893684&&Q[1]==1701076831&&(N=c.create(Q.slice(2,4)),Q.splice(0,4),V.sigBytes-=16),C.create({ciphertext:V,salt:N})}},T=l.SerializableCipher=A.extend({cfg:A.extend({format:D}),encrypt:function(M,N,V,Q){Q=this.cfg.extend(Q);var X=M.createEncryptor(V,Q),ae=X.finalize(N),J=X.cfg;return C.create({ciphertext:ae,key:V,iv:J.iv,algorithm:M,mode:J.mode,padding:J.padding,blockSize:M.blockSize,formatter:Q.format})},decrypt:function(M,N,V,Q){Q=this.cfg.extend(Q),N=this._parse(N,Q.format);var X=M.createDecryptor(V,Q).finalize(N.ciphertext);return X},_parse:function(M,N){return typeof M=="string"?N.parse(M,this):M}}),I=u.kdf={},P=I.OpenSSL={execute:function(M,N,V,Q,X){if(Q||(Q=c.random(64/8)),X)var ae=g.create({keySize:N+V,hasher:X}).compute(M,Q);else var ae=g.create({keySize:N+V}).compute(M,Q);var J=c.create(ae.words.slice(N),V*4);return ae.sigBytes=N*4,C.create({key:ae,iv:J,salt:Q})}},H=l.PasswordBasedCipher=T.extend({cfg:T.cfg.extend({kdf:P}),encrypt:function(M,N,V,Q){Q=this.cfg.extend(Q);var X=Q.kdf.execute(V,M.keySize,M.ivSize,Q.salt,Q.hasher);Q.iv=X.iv;var ae=T.encrypt.call(this,M,N,X.key,Q);return ae.mixIn(X),ae},decrypt:function(M,N,V,Q){Q=this.cfg.extend(Q),N=this._parse(N,Q.format);var X=Q.kdf.execute(V,M.keySize,M.ivSize,N.salt,Q.hasher);Q.iv=X.iv;var ae=T.decrypt.call(this,M,N,X.key,Q);return ae}})})()})})(ki)),ki.exports}var Si={exports:{}},l4=Si.exports,WA;function c4(){return WA||(WA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Rt())})(l4,function(o){return o.mode.CFB=(function(){var i=o.lib.BlockCipherMode.extend();i.Encryptor=i.extend({processBlock:function(l,A){var c=this._cipher,h=c.blockSize;u.call(this,l,A,h,c),this._prevBlock=l.slice(A,A+h)}}),i.Decryptor=i.extend({processBlock:function(l,A){var c=this._cipher,h=c.blockSize,d=l.slice(A,A+h);u.call(this,l,A,h,c),this._prevBlock=d}});function u(l,A,c,h){var d,p=this._iv;p?(d=p.slice(0),this._iv=void 0):d=this._prevBlock,h.encryptBlock(d,0);for(var x=0;x>>24)&16711935|(I<<24|I>>>8)&4278255360}var N=this._hash.words,z=C.words,Q=w.words,X=d.words,se=x.words,J=p.words,ne=g.words,q,ae,ee,k,H,V,W,de,re,le;V=q=N[0],W=ae=N[1],de=ee=N[2],re=k=N[3],le=H=N[4];for(var te,P=0;P<80;P+=1)te=q+T[M+X[P]]|0,P<16?te+=v(ae,ee,k)+z[0]:P<32?te+=S(ae,ee,k)+z[1]:P<48?te+=E(ae,ee,k)+z[2]:P<64?te+=y(ae,ee,k)+z[3]:te+=B(ae,ee,k)+z[4],te=te|0,te=D(te,J[P]),te=te+H|0,q=H,H=k,k=D(ee,10),ee=ae,ae=te,te=V+T[M+se[P]]|0,P<16?te+=B(W,de,re)+Q[0]:P<32?te+=y(W,de,re)+Q[1]:P<48?te+=E(W,de,re)+Q[2]:P<64?te+=S(W,de,re)+Q[3]:te+=v(W,de,re)+Q[4],te=te|0,te=D(te,ne[P]),te=te+le|0,V=le,le=re,re=D(de,10),de=W,W=te;te=N[1]+ee+re|0,N[1]=N[2]+k+le|0,N[2]=N[3]+H+V|0,N[3]=N[4]+q+W|0,N[4]=N[0]+ae+de|0,N[0]=te},_doFinalize:function(){var T=this._data,M=T.words,P=this._nDataBytes*8,j=T.sigBytes*8;M[j>>>5]|=128<<24-j%32,M[(j+64>>>9<<4)+14]=(P<<8|P>>>24)&16711935|(P<<24|P>>>8)&4278255360,T.sigBytes=(M.length+1)*4,this._process();for(var I=this._hash,N=I.words,z=0;z<5;z++){var Q=N[z];N[z]=(Q<<8|Q>>>24)&16711935|(Q<<24|Q>>>8)&4278255360}return I},clone:function(){var T=c.clone.call(this);return T._hash=this._hash.clone(),T}});function v(T,M,P){return T^M^P}function S(T,M,P){return T&M|~T&P}function E(T,M,P){return(T|~M)^P}function y(T,M,P){return T&P|M&~P}function B(T,M,P){return T^(M|~P)}function D(T,M){return T<>>32-M}u.RIPEMD160=c._createHelper(b),u.HmacRIPEMD160=c._createHmacHelper(b)})(),o.RIPEMD160})})(Ci)),Ci.exports}var wi={exports:{}},n4=wi.exports,LA;function fl(){return LA||(LA=1,(function(r,a){(function(o,i){r.exports=i(Ue())})(n4,function(o){(function(){var i=o,u=i.lib,l=u.Base,A=i.enc,c=A.Utf8,h=i.algo;h.HMAC=l.extend({init:function(d,x){d=this._hasher=new d.init,typeof x=="string"&&(x=c.parse(x));var p=d.blockSize,g=p*4;x.sigBytes>g&&(x=d.finalize(x)),x.clamp();for(var C=this._oKey=x.clone(),w=this._iKey=x.clone(),b=C.words,v=w.words,S=0;S>>2]&255;I.sigBytes-=N}};l.BlockCipher=C.extend({cfg:C.cfg.extend({mode:v,padding:E}),reset:function(){var I;C.reset.call(this);var N=this.cfg,z=N.iv,Q=N.mode;this._xformMode==this._ENC_XFORM_MODE?I=Q.createEncryptor:(I=Q.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==I?this._mode.init(this,z&&z.words):(this._mode=I.call(Q,this,z&&z.words),this._mode.__creator=I)},_doProcessBlock:function(I,N){this._mode.processBlock(I,N)},_doFinalize:function(){var I,N=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(N.pad(this._data,this.blockSize),I=this._process(!0)):(I=this._process(!0),N.unpad(I)),I},blockSize:128/32});var y=l.CipherParams=A.extend({init:function(I){this.mixIn(I)},toString:function(I){return(I||this.formatter).stringify(this)}}),B=u.format={},D=B.OpenSSL={stringify:function(I){var N,z=I.ciphertext,Q=I.salt;return Q?N=c.create([1398893684,1701076831]).concat(Q).concat(z):N=z,N.toString(x)},parse:function(I){var N,z=x.parse(I),Q=z.words;return Q[0]==1398893684&&Q[1]==1701076831&&(N=c.create(Q.slice(2,4)),Q.splice(0,4),z.sigBytes-=16),y.create({ciphertext:z,salt:N})}},T=l.SerializableCipher=A.extend({cfg:A.extend({format:D}),encrypt:function(I,N,z,Q){Q=this.cfg.extend(Q);var X=I.createEncryptor(z,Q),se=X.finalize(N),J=X.cfg;return y.create({ciphertext:se,key:z,iv:J.iv,algorithm:I,mode:J.mode,padding:J.padding,blockSize:I.blockSize,formatter:Q.format})},decrypt:function(I,N,z,Q){Q=this.cfg.extend(Q),N=this._parse(N,Q.format);var X=I.createDecryptor(z,Q).finalize(N.ciphertext);return X},_parse:function(I,N){return typeof I=="string"?N.parse(I,this):I}}),M=u.kdf={},P=M.OpenSSL={execute:function(I,N,z,Q,X){if(Q||(Q=c.random(64/8)),X)var se=g.create({keySize:N+z,hasher:X}).compute(I,Q);else var se=g.create({keySize:N+z}).compute(I,Q);var J=c.create(se.words.slice(N),z*4);return se.sigBytes=N*4,y.create({key:se,iv:J,salt:Q})}},j=l.PasswordBasedCipher=T.extend({cfg:T.cfg.extend({kdf:P}),encrypt:function(I,N,z,Q){Q=this.cfg.extend(Q);var X=Q.kdf.execute(z,I.keySize,I.ivSize,Q.salt,Q.hasher);Q.iv=X.iv;var se=T.encrypt.call(this,I,N,X.key,Q);return se.mixIn(X),se},decrypt:function(I,N,z,Q){Q=this.cfg.extend(Q),N=this._parse(N,Q.format);var X=Q.kdf.execute(z,I.keySize,I.ivSize,N.salt,Q.hasher);Q.iv=X.iv;var se=T.decrypt.call(this,I,N,X.key,Q);return se}})})()})})(ki)),ki.exports}var Si={exports:{}},l4=Si.exports,WA;function c4(){return WA||(WA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Pt())})(l4,function(o){return o.mode.CFB=(function(){var i=o.lib.BlockCipherMode.extend();i.Encryptor=i.extend({processBlock:function(l,A){var c=this._cipher,h=c.blockSize;u.call(this,l,A,h,c),this._prevBlock=l.slice(A,A+h)}}),i.Decryptor=i.extend({processBlock:function(l,A){var c=this._cipher,h=c.blockSize,d=l.slice(A,A+h);u.call(this,l,A,h,c),this._prevBlock=d}});function u(l,A,c,h){var d,x=this._iv;x?(d=x.slice(0),this._iv=void 0):d=this._prevBlock,h.encryptBlock(d,0);for(var p=0;p>24&255)===255){var h=c>>16&255,d=c>>8&255,p=c&255;h===255?(h=0,d===255?(d=0,p===255?p=0:++p):++d):++h,c=0,c+=h<<16,c+=d<<8,c+=p}else c+=1<<24;return c}function l(c){return(c[0]=u(c[0]))===0&&(c[1]=u(c[1])),c}var A=i.Encryptor=i.extend({processBlock:function(c,h){var d=this._cipher,p=d.blockSize,x=this._iv,g=this._counter;x&&(g=this._counter=x.slice(0),this._iv=void 0),l(g);var w=g.slice(0);d.encryptBlock(w,0);for(var b=0;b>>2]|=c<<24-h%4*8,i.sigBytes+=c},unpad:function(i){var u=i.words[i.sigBytes-1>>>2]&255;i.sigBytes-=u}},o.pad.Ansix923})})(Ri)),Ri.exports}var Ti={exports:{}},y4=Ti.exports,YA;function C4(){return YA||(YA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Rt())})(y4,function(o){return o.pad.Iso10126={pad:function(i,u){var l=u*4,A=l-i.sigBytes%l;i.concat(o.lib.WordArray.random(A-1)).concat(o.lib.WordArray.create([A<<24],1))},unpad:function(i){var u=i.words[i.sigBytes-1>>>2]&255;i.sigBytes-=u}},o.pad.Iso10126})})(Ti)),Ti.exports}var Pi={exports:{}},w4=Pi.exports,ZA;function b4(){return ZA||(ZA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Rt())})(w4,function(o){return o.pad.Iso97971={pad:function(i,u){i.concat(o.lib.WordArray.create([2147483648],1)),o.pad.ZeroPadding.pad(i,u)},unpad:function(i){o.pad.ZeroPadding.unpad(i),i.sigBytes--}},o.pad.Iso97971})})(Pi)),Pi.exports}var Ni={exports:{}},E4=Ni.exports,XA;function k4(){return XA||(XA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Rt())})(E4,function(o){return o.pad.ZeroPadding={pad:function(i,u){var l=u*4;i.clamp(),i.sigBytes+=l-(i.sigBytes%l||l)},unpad:function(i){for(var u=i.words,l=i.sigBytes-1,l=i.sigBytes-1;l>=0;l--)if(u[l>>>2]>>>24-l%4*8&255){i.sigBytes=l+1;break}}},o.pad.ZeroPadding})})(Ni)),Ni.exports}var Ii={exports:{}},S4=Ii.exports,JA;function B4(){return JA||(JA=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Rt())})(S4,function(o){return o.pad.NoPadding={pad:function(){},unpad:function(){}},o.pad.NoPadding})})(Ii)),Ii.exports}var Mi={exports:{}},_4=Mi.exports,eh;function D4(){return eh||(eh=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Rt())})(_4,function(o){return(function(i){var u=o,l=u.lib,A=l.CipherParams,c=u.enc,h=c.Hex,d=u.format;d.Hex={stringify:function(p){return p.ciphertext.toString(h)},parse:function(p){var x=h.parse(p);return A.create({ciphertext:x})}}})(),o.format.Hex})})(Mi)),Mi.exports}var Oi={exports:{}},F4=Oi.exports,th;function R4(){return th||(th=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Xn(),Jn(),Bn(),Rt())})(F4,function(o){return(function(){var i=o,u=i.lib,l=u.BlockCipher,A=i.algo,c=[],h=[],d=[],p=[],x=[],g=[],w=[],b=[],k=[],v=[];(function(){for(var C=[],B=0;B<256;B++)B<128?C[B]=B<<1:C[B]=B<<1^283;for(var D=0,T=0,B=0;B<256;B++){var I=T^T<<1^T<<2^T<<3^T<<4;I=I>>>8^I&255^99,c[D]=I,h[I]=D;var P=C[D],H=C[P],M=C[H],N=C[I]*257^I*16843008;d[D]=N<<24|N>>>8,p[D]=N<<16|N>>>16,x[D]=N<<8|N>>>24,g[D]=N;var N=M*16843009^H*65537^P*257^D*16843008;w[I]=N<<24|N>>>8,b[I]=N<<16|N>>>16,k[I]=N<<8|N>>>24,v[I]=N,D?(D=P^C[C[C[M^P]]],T^=C[C[T]]):D=T=1}})();var S=[0,1,2,4,8,16,32,64,128,27,54],E=A.AES=l.extend({_doReset:function(){var C;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var B=this._keyPriorReset=this._key,D=B.words,T=B.sigBytes/4,I=this._nRounds=T+6,P=(I+1)*4,H=this._keySchedule=[],M=0;M6&&M%T==4&&(C=c[C>>>24]<<24|c[C>>>16&255]<<16|c[C>>>8&255]<<8|c[C&255]):(C=C<<8|C>>>24,C=c[C>>>24]<<24|c[C>>>16&255]<<16|c[C>>>8&255]<<8|c[C&255],C^=S[M/T|0]<<24),H[M]=H[M-T]^C);for(var N=this._invKeySchedule=[],V=0;V>>24]]^b[c[C>>>16&255]]^k[c[C>>>8&255]]^v[c[C&255]]}}},encryptBlock:function(C,B){this._doCryptBlock(C,B,this._keySchedule,d,p,x,g,c)},decryptBlock:function(C,B){var D=C[B+1];C[B+1]=C[B+3],C[B+3]=D,this._doCryptBlock(C,B,this._invKeySchedule,w,b,k,v,h);var D=C[B+1];C[B+1]=C[B+3],C[B+3]=D},_doCryptBlock:function(C,B,D,T,I,P,H,M){for(var N=this._nRounds,V=C[B]^D[0],Q=C[B+1]^D[1],X=C[B+2]^D[2],ae=C[B+3]^D[3],J=4,re=1;re>>24]^I[Q>>>16&255]^P[X>>>8&255]^H[ae&255]^D[J++],oe=T[Q>>>24]^I[X>>>16&255]^P[ae>>>8&255]^H[V&255]^D[J++],ee=T[X>>>24]^I[ae>>>16&255]^P[V>>>8&255]^H[Q&255]^D[J++],y=T[ae>>>24]^I[V>>>16&255]^P[Q>>>8&255]^H[X&255]^D[J++];V=q,Q=oe,X=ee,ae=y}var q=(M[V>>>24]<<24|M[Q>>>16&255]<<16|M[X>>>8&255]<<8|M[ae&255])^D[J++],oe=(M[Q>>>24]<<24|M[X>>>16&255]<<16|M[ae>>>8&255]<<8|M[V&255])^D[J++],ee=(M[X>>>24]<<24|M[ae>>>16&255]<<16|M[V>>>8&255]<<8|M[Q&255])^D[J++],y=(M[ae>>>24]<<24|M[V>>>16&255]<<16|M[Q>>>8&255]<<8|M[X&255])^D[J++];C[B]=q,C[B+1]=oe,C[B+2]=ee,C[B+3]=y},keySize:256/32});i.AES=l._createHelper(E)})(),o.AES})})(Oi)),Oi.exports}var ji={exports:{}},T4=ji.exports,rh;function P4(){return rh||(rh=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Xn(),Jn(),Bn(),Rt())})(T4,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=u.BlockCipher,c=i.algo,h=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],d=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],p=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],x=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],g=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],w=c.DES=A.extend({_doReset:function(){for(var S=this._key,E=S.words,C=[],B=0;B<56;B++){var D=h[B]-1;C[B]=E[D>>>5]>>>31-D%32&1}for(var T=this._subKeys=[],I=0;I<16;I++){for(var P=T[I]=[],H=p[I],B=0;B<24;B++)P[B/6|0]|=C[(d[B]-1+H)%28]<<31-B%6,P[4+(B/6|0)]|=C[28+(d[B+24]-1+H)%28]<<31-B%6;P[0]=P[0]<<1|P[0]>>>31;for(var B=1;B<7;B++)P[B]=P[B]>>>(B-1)*4+3;P[7]=P[7]<<5|P[7]>>>27}for(var M=this._invSubKeys=[],B=0;B<16;B++)M[B]=T[15-B]},encryptBlock:function(S,E){this._doCryptBlock(S,E,this._subKeys)},decryptBlock:function(S,E){this._doCryptBlock(S,E,this._invSubKeys)},_doCryptBlock:function(S,E,C){this._lBlock=S[E],this._rBlock=S[E+1],b.call(this,4,252645135),b.call(this,16,65535),k.call(this,2,858993459),k.call(this,8,16711935),b.call(this,1,1431655765);for(var B=0;B<16;B++){for(var D=C[B],T=this._lBlock,I=this._rBlock,P=0,H=0;H<8;H++)P|=x[H][((I^D[H])&g[H])>>>0];this._lBlock=I,this._rBlock=T^P}var M=this._lBlock;this._lBlock=this._rBlock,this._rBlock=M,b.call(this,1,1431655765),k.call(this,8,16711935),k.call(this,2,858993459),b.call(this,16,65535),b.call(this,4,252645135),S[E]=this._lBlock,S[E+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function b(S,E){var C=(this._lBlock>>>S^this._rBlock)&E;this._rBlock^=C,this._lBlock^=C<>>S^this._lBlock)&E;this._lBlock^=C,this._rBlock^=C<192.");var C=E.slice(0,2),B=E.length<4?E.slice(0,2):E.slice(2,4),D=E.length<6?E.slice(0,2):E.slice(4,6);this._des1=w.createEncryptor(l.create(C)),this._des2=w.createEncryptor(l.create(B)),this._des3=w.createEncryptor(l.create(D))},encryptBlock:function(S,E){this._des1.encryptBlock(S,E),this._des2.decryptBlock(S,E),this._des3.encryptBlock(S,E)},decryptBlock:function(S,E){this._des3.decryptBlock(S,E),this._des2.encryptBlock(S,E),this._des1.decryptBlock(S,E)},keySize:192/32,ivSize:64/32,blockSize:64/32});i.TripleDES=A._createHelper(v)})(),o.TripleDES})})(ji)),ji.exports}var Hi={exports:{}},N4=Hi.exports,nh;function I4(){return nh||(nh=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Xn(),Jn(),Bn(),Rt())})(N4,function(o){return(function(){var i=o,u=i.lib,l=u.StreamCipher,A=i.algo,c=A.RC4=l.extend({_doReset:function(){for(var p=this._key,x=p.words,g=p.sigBytes,w=this._S=[],b=0;b<256;b++)w[b]=b;for(var b=0,k=0;b<256;b++){var v=b%g,S=x[v>>>2]>>>24-v%4*8&255;k=(k+w[b]+S)%256;var E=w[b];w[b]=w[k],w[k]=E}this._i=this._j=0},_doProcessBlock:function(p,x){p[x]^=h.call(this)},keySize:256/32,ivSize:0});function h(){for(var p=this._S,x=this._i,g=this._j,w=0,b=0;b<4;b++){x=(x+1)%256,g=(g+p[x])%256;var k=p[x];p[x]=p[g],p[g]=k,w|=p[(p[x]+p[g])%256]<<24-b*8}return this._i=x,this._j=g,w}i.RC4=l._createHelper(c);var d=A.RC4Drop=c.extend({cfg:c.cfg.extend({drop:192}),_doReset:function(){c._doReset.call(this);for(var p=this.cfg.drop;p>0;p--)h.call(this)}});i.RC4Drop=l._createHelper(d)})(),o.RC4})})(Hi)),Hi.exports}var Li={exports:{}},M4=Li.exports,oh;function O4(){return oh||(oh=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Xn(),Jn(),Bn(),Rt())})(M4,function(o){return(function(){var i=o,u=i.lib,l=u.StreamCipher,A=i.algo,c=[],h=[],d=[],p=A.Rabbit=l.extend({_doReset:function(){for(var g=this._key.words,w=this.cfg.iv,b=0;b<4;b++)g[b]=(g[b]<<8|g[b]>>>24)&16711935|(g[b]<<24|g[b]>>>8)&4278255360;var k=this._X=[g[0],g[3]<<16|g[2]>>>16,g[1],g[0]<<16|g[3]>>>16,g[2],g[1]<<16|g[0]>>>16,g[3],g[2]<<16|g[1]>>>16],v=this._C=[g[2]<<16|g[2]>>>16,g[0]&4294901760|g[1]&65535,g[3]<<16|g[3]>>>16,g[1]&4294901760|g[2]&65535,g[0]<<16|g[0]>>>16,g[2]&4294901760|g[3]&65535,g[1]<<16|g[1]>>>16,g[3]&4294901760|g[0]&65535];this._b=0;for(var b=0;b<4;b++)x.call(this);for(var b=0;b<8;b++)v[b]^=k[b+4&7];if(w){var S=w.words,E=S[0],C=S[1],B=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,D=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,T=B>>>16|D&4294901760,I=D<<16|B&65535;v[0]^=B,v[1]^=T,v[2]^=D,v[3]^=I,v[4]^=B,v[5]^=T,v[6]^=D,v[7]^=I;for(var b=0;b<4;b++)x.call(this)}},_doProcessBlock:function(g,w){var b=this._X;x.call(this),c[0]=b[0]^b[5]>>>16^b[3]<<16,c[1]=b[2]^b[7]>>>16^b[5]<<16,c[2]=b[4]^b[1]>>>16^b[7]<<16,c[3]=b[6]^b[3]>>>16^b[1]<<16;for(var k=0;k<4;k++)c[k]=(c[k]<<8|c[k]>>>24)&16711935|(c[k]<<24|c[k]>>>8)&4278255360,g[w+k]^=c[k]},blockSize:128/32,ivSize:64/32});function x(){for(var g=this._X,w=this._C,b=0;b<8;b++)h[b]=w[b];w[0]=w[0]+1295307597+this._b|0,w[1]=w[1]+3545052371+(w[0]>>>0>>0?1:0)|0,w[2]=w[2]+886263092+(w[1]>>>0>>0?1:0)|0,w[3]=w[3]+1295307597+(w[2]>>>0>>0?1:0)|0,w[4]=w[4]+3545052371+(w[3]>>>0>>0?1:0)|0,w[5]=w[5]+886263092+(w[4]>>>0>>0?1:0)|0,w[6]=w[6]+1295307597+(w[5]>>>0>>0?1:0)|0,w[7]=w[7]+3545052371+(w[6]>>>0>>0?1:0)|0,this._b=w[7]>>>0>>0?1:0;for(var b=0;b<8;b++){var k=g[b]+w[b],v=k&65535,S=k>>>16,E=((v*v>>>17)+v*S>>>15)+S*S,C=((k&4294901760)*k|0)+((k&65535)*k|0);d[b]=E^C}g[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,g[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,g[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,g[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,g[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,g[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,g[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,g[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}i.Rabbit=l._createHelper(p)})(),o.Rabbit})})(Li)),Li.exports}var zi={exports:{}},j4=zi.exports,ah;function H4(){return ah||(ah=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Xn(),Jn(),Bn(),Rt())})(j4,function(o){return(function(){var i=o,u=i.lib,l=u.StreamCipher,A=i.algo,c=[],h=[],d=[],p=A.RabbitLegacy=l.extend({_doReset:function(){var g=this._key.words,w=this.cfg.iv,b=this._X=[g[0],g[3]<<16|g[2]>>>16,g[1],g[0]<<16|g[3]>>>16,g[2],g[1]<<16|g[0]>>>16,g[3],g[2]<<16|g[1]>>>16],k=this._C=[g[2]<<16|g[2]>>>16,g[0]&4294901760|g[1]&65535,g[3]<<16|g[3]>>>16,g[1]&4294901760|g[2]&65535,g[0]<<16|g[0]>>>16,g[2]&4294901760|g[3]&65535,g[1]<<16|g[1]>>>16,g[3]&4294901760|g[0]&65535];this._b=0;for(var v=0;v<4;v++)x.call(this);for(var v=0;v<8;v++)k[v]^=b[v+4&7];if(w){var S=w.words,E=S[0],C=S[1],B=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,D=(C<<8|C>>>24)&16711935|(C<<24|C>>>8)&4278255360,T=B>>>16|D&4294901760,I=D<<16|B&65535;k[0]^=B,k[1]^=T,k[2]^=D,k[3]^=I,k[4]^=B,k[5]^=T,k[6]^=D,k[7]^=I;for(var v=0;v<4;v++)x.call(this)}},_doProcessBlock:function(g,w){var b=this._X;x.call(this),c[0]=b[0]^b[5]>>>16^b[3]<<16,c[1]=b[2]^b[7]>>>16^b[5]<<16,c[2]=b[4]^b[1]>>>16^b[7]<<16,c[3]=b[6]^b[3]>>>16^b[1]<<16;for(var k=0;k<4;k++)c[k]=(c[k]<<8|c[k]>>>24)&16711935|(c[k]<<24|c[k]>>>8)&4278255360,g[w+k]^=c[k]},blockSize:128/32,ivSize:64/32});function x(){for(var g=this._X,w=this._C,b=0;b<8;b++)h[b]=w[b];w[0]=w[0]+1295307597+this._b|0,w[1]=w[1]+3545052371+(w[0]>>>0>>0?1:0)|0,w[2]=w[2]+886263092+(w[1]>>>0>>0?1:0)|0,w[3]=w[3]+1295307597+(w[2]>>>0>>0?1:0)|0,w[4]=w[4]+3545052371+(w[3]>>>0>>0?1:0)|0,w[5]=w[5]+886263092+(w[4]>>>0>>0?1:0)|0,w[6]=w[6]+1295307597+(w[5]>>>0>>0?1:0)|0,w[7]=w[7]+3545052371+(w[6]>>>0>>0?1:0)|0,this._b=w[7]>>>0>>0?1:0;for(var b=0;b<8;b++){var k=g[b]+w[b],v=k&65535,S=k>>>16,E=((v*v>>>17)+v*S>>>15)+S*S,C=((k&4294901760)*k|0)+((k&65535)*k|0);d[b]=E^C}g[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,g[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,g[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,g[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,g[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,g[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,g[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,g[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}i.RabbitLegacy=l._createHelper(p)})(),o.RabbitLegacy})})(zi)),zi.exports}var Vi={exports:{}},L4=Vi.exports,sh;function z4(){return sh||(sh=1,(function(r,a){(function(o,i,u){r.exports=i(Le(),Xn(),Jn(),Bn(),Rt())})(L4,function(o){return(function(){var i=o,u=i.lib,l=u.BlockCipher,A=i.algo;const c=16,h=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],d=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var p={pbox:[],sbox:[]};function x(v,S){let E=S>>24&255,C=S>>16&255,B=S>>8&255,D=S&255,T=v.sbox[0][E]+v.sbox[1][C];return T=T^v.sbox[2][B],T=T+v.sbox[3][D],T}function g(v,S,E){let C=S,B=E,D;for(let T=0;T1;--T)C=C^v.pbox[T],B=x(v,C)^B,D=C,C=B,B=D;return D=C,C=B,B=D,B=B^v.pbox[1],C=C^v.pbox[0],{left:C,right:B}}function b(v,S,E){for(let I=0;I<4;I++){v.sbox[I]=[];for(let P=0;P<256;P++)v.sbox[I][P]=d[I][P]}let C=0;for(let I=0;I=E&&(C=0);let B=0,D=0,T=0;for(let I=0;I=0&&(D=D.substring(0,T));const I=D.indexOf(": ");let P,H;if(I>0&&I<50){const M=D.substring(0,I);/[:\[\]]/.test(M)?H=D:(P=M,H=D.substring(I+2))}else H=D;return{success:!0,data:{timestamp:S,flags:E,sender:P,message:H}}}catch(c){return{success:!1,error:c instanceof Error?c.message:"Decryption failed"}}}static calculateChannelHash(u){const l=(0,r.SHA256)(r.enc.Hex.parse(u));return(0,a.hexToBytes)(l.toString(r.enc.Hex))[0].toString(16).padStart(2,"0")}}return Ca.ChannelCrypto=o,Ca}var ch;function Tx(){if(ch)return ya;ch=1,Object.defineProperty(ya,"__esModule",{value:!0}),ya.MeshCoreKeyStore=void 0;const r=Ku();class a{constructor(i){this.nodeKeys=new Map,this.channelHashToKeys=new Map,i!=null&&i.channelSecrets&&this.addChannelSecrets(i.channelSecrets),i!=null&&i.nodeKeys&&Object.entries(i.nodeKeys).forEach(([u,l])=>{this.addNodeKey(u,l)})}addNodeKey(i,u){const l=i.toUpperCase();this.nodeKeys.set(l,u)}hasChannelKey(i){const u=i.toLowerCase();return this.channelHashToKeys.has(u)}hasNodeKey(i){const u=i.toUpperCase();return this.nodeKeys.has(u)}getChannelKeys(i){const u=i.toLowerCase();return this.channelHashToKeys.get(u)||[]}getNodeKey(i){const u=i.toUpperCase();return this.nodeKeys.get(u)}addChannelSecrets(i){for(const u of i){const l=r.ChannelCrypto.calculateChannelHash(u).toLowerCase();this.channelHashToKeys.has(l)||this.channelHashToKeys.set(l,[]),this.channelHashToKeys.get(l).push(u)}}}return ya.MeshCoreKeyStore=a,ya}var wa={},Dr={};/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Px={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:Ut,n:Ui,Gx:uh,Gy:dh,a:hu,d:pu}=Px,U4=8n,Vr=32,ja=64,cr=(r="")=>{throw new Error(r)},W4=r=>typeof r=="bigint",Nx=r=>typeof r=="string",q4=r=>r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array",Zn=(r,a)=>!q4(r)||typeof a=="number"&&a>0&&r.length!==a?cr("Uint8Array expected"):r,Al=r=>new Uint8Array(r),Yu=r=>Uint8Array.from(r),Ix=(r,a)=>r.toString(16).padStart(a,"0"),Zu=r=>Array.from(Zn(r)).map(a=>Ix(a,2)).join(""),en={_0:48,_9:57,A:65,F:70,a:97,f:102},fh=r=>{if(r>=en._0&&r<=en._9)return r-en._0;if(r>=en.A&&r<=en.F)return r-(en.A-10);if(r>=en.a&&r<=en.f)return r-(en.a-10)},Xu=r=>{const a="hex invalid";if(!Nx(r))return cr(a);const o=r.length,i=o/2;if(o%2)return cr(a);const u=Al(i);for(let l=0,A=0;lZn(Nx(r)?Xu(r):Yu(Zn(r)),a),Mx=()=>globalThis==null?void 0:globalThis.crypto,Q4=()=>{var r;return((r=Mx())==null?void 0:r.subtle)??cr("crypto.subtle must be defined")},Ha=(...r)=>{const a=Al(r.reduce((i,u)=>i+Zn(u).length,0));let o=0;return r.forEach(i=>{a.set(i,o),o+=i.length}),a},Ox=(r=Vr)=>Mx().getRandomValues(Al(r)),Zi=BigInt,Gn=(r,a,o,i="bad number: out of range")=>W4(r)&&a<=r&&r{const o=r%a;return o>=0n?o:a+o},jx=r=>we(r,Ui),Hx=(r,a)=>{(r===0n||a<=0n)&&cr("no inverse n="+r+" mod="+a);let o=we(r,a),i=a,u=0n,l=1n;for(;o!==0n;){const A=i/o,c=i%o,h=u-l*A;i=o,o=c,u=l,l=h}return i===1n?we(u,a):cr("no inverse")},G4=r=>{const a=a0[r];return typeof a!="function"&&cr("hashes."+r+" not set"),a},Ah=r=>r instanceof Fr?r:cr("Point expected"),_u=2n**256n,Hr=class Hr{constructor(a,o,i,u){zn(this,"ex");zn(this,"ey");zn(this,"ez");zn(this,"et");const l=_u;this.ex=Gn(a,0n,l),this.ey=Gn(o,0n,l),this.ez=Gn(i,1n,l),this.et=Gn(u,0n,l),Object.freeze(this)}static fromAffine(a){return new Hr(a.x,a.y,1n,we(a.x*a.y))}static fromBytes(a,o=!1){const i=pu,u=Yu(Zn(a,Vr)),l=a[31];u[31]=l&-129;const A=Ju(u);Gn(A,0n,o?_u:Ut);const h=we(A*A),d=we(h-1n),p=we(i*h+1n);let{isValid:x,value:g}=K4(d,p);x||cr("bad point: y not sqrt");const w=(g&1n)===1n,b=(l&128)!==0;return!o&&g===0n&&b&&cr("bad point: x==0, isLastByteOdd"),b!==w&&(g=we(-g)),new Hr(g,A,1n,we(g*A))}assertValidity(){const a=hu,o=pu,i=this;if(i.is0())throw new Error("bad point: ZERO");const{ex:u,ey:l,ez:A,et:c}=i,h=we(u*u),d=we(l*l),p=we(A*A),x=we(p*p),g=we(h*a),w=we(p*we(g+d)),b=we(x+we(o*we(h*d)));if(w!==b)throw new Error("bad point: equation left != right (1)");const k=we(u*l),v=we(A*c);if(k!==v)throw new Error("bad point: equation left != right (2)");return this}equals(a){const{ex:o,ey:i,ez:u}=this,{ex:l,ey:A,ez:c}=Ah(a),h=we(o*c),d=we(l*u),p=we(i*c),x=we(A*u);return h===d&&p===x}is0(){return this.equals(Bo)}negate(){return new Hr(we(-this.ex),this.ey,this.ez,we(-this.et))}double(){const{ex:a,ey:o,ez:i}=this,u=hu,l=we(a*a),A=we(o*o),c=we(2n*we(i*i)),h=we(u*l),d=a+o,p=we(we(d*d)-l-A),x=h+A,g=x-c,w=h-A,b=we(p*g),k=we(x*w),v=we(p*w),S=we(g*x);return new Hr(b,k,S,v)}add(a){const{ex:o,ey:i,ez:u,et:l}=this,{ex:A,ey:c,ez:h,et:d}=Ah(a),p=hu,x=pu,g=we(o*A),w=we(i*c),b=we(l*x*d),k=we(u*h),v=we((o+i)*(A+c)-g-w),S=we(k-b),E=we(k+b),C=we(w-p*g),B=we(v*S),D=we(E*C),T=we(v*C),I=we(S*E);return new Hr(B,D,I,T)}multiply(a,o=!0){if(!o&&(a===0n||this.is0()))return Bo;if(Gn(a,1n,Ui),a===1n)return this;if(this.equals(rn))return aw(a).p;let i=Bo,u=rn;for(let l=this;a>0n;l=l.double(),a>>=1n)a&1n?i=i.add(l):o&&(u=u.add(l));return i}toAffine(){const{ex:a,ey:o,ez:i}=this;if(this.equals(Bo))return{x:0n,y:1n};const u=Hx(i,Ut);return we(i*u)!==1n&&cr("invalid inverse"),{x:we(a*u),y:we(o*u)}}toBytes(){const{x:a,y:o}=this.assertValidity().toAffine(),i=Lx(o);return i[31]|=a&1n?128:0,i}toHex(){return Zu(this.toBytes())}clearCofactor(){return this.multiply(Zi(U4),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let a=this.multiply(Ui/2n,!1).double();return Ui%2n&&(a=a.add(this)),a.is0()}static fromHex(a,o){return Hr.fromBytes(Sn(a),o)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(){return this.toBytes()}};zn(Hr,"BASE"),zn(Hr,"ZERO");let Fr=Hr;const rn=new Fr(uh,dh,1n,we(uh*dh)),Bo=new Fr(0n,1n,1n,0n);Fr.BASE=rn;Fr.ZERO=Bo;const Lx=r=>Xu(Ix(Gn(r,0n,_u),ja)).reverse(),Ju=r=>Zi("0x"+Zu(Yu(Zn(r)).reverse())),jr=(r,a)=>{let o=r;for(;a-- >0n;)o*=o,o%=Ut;return o},$4=r=>{const o=r*r%Ut*r%Ut,i=jr(o,2n)*o%Ut,u=jr(i,1n)*r%Ut,l=jr(u,5n)*u%Ut,A=jr(l,10n)*l%Ut,c=jr(A,20n)*A%Ut,h=jr(c,40n)*c%Ut,d=jr(h,80n)*h%Ut,p=jr(d,80n)*h%Ut,x=jr(p,10n)*l%Ut;return{pow_p_5_8:jr(x,2n)*r%Ut,b2:o}},hh=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,K4=(r,a)=>{const o=we(a*a*a),i=we(o*o*a),u=$4(r*i).pow_p_5_8;let l=we(r*o*u);const A=we(a*l*l),c=l,h=we(l*hh),d=A===r,p=A===we(-r),x=A===we(-r*hh);return d&&(l=c),(p||x)&&(l=h),(we(l)&1n)===1n&&(l=we(-l)),{isValid:d||p,value:l}},Xi=r=>jx(Ju(r)),e0=(...r)=>a0.sha512Async(...r),t0=(...r)=>G4("sha512Sync")(...r),zx=r=>{const a=r.slice(0,Vr);a[0]&=248,a[31]&=127,a[31]|=64;const o=r.slice(Vr,ja),i=Xi(a),u=rn.multiply(i),l=u.toBytes();return{head:a,prefix:o,scalar:i,point:u,pointBytes:l}},r0=r=>e0(Sn(r,Vr)).then(zx),n0=r=>zx(t0(Sn(r,Vr))),Y4=r=>r0(r).then(a=>a.pointBytes),Z4=r=>n0(r).pointBytes,Vx=r=>e0(r.hashable).then(r.finish),Ux=r=>r.finish(t0(r.hashable)),Wx=(r,a,o)=>{const{pointBytes:i,scalar:u}=r,l=Xi(a),A=rn.multiply(l).toBytes();return{hashable:Ha(A,i,o),finish:d=>{const p=jx(l+Xi(d)*u);return Zn(Ha(A,Lx(p)),ja)}}},X4=async(r,a)=>{const o=Sn(r),i=await r0(a),u=await e0(i.prefix,o);return Vx(Wx(i,u,o))},J4=(r,a)=>{const o=Sn(r),i=n0(a),u=t0(i.prefix,o);return Ux(Wx(i,u,o))},o0={zip215:!0},qx=(r,a,o,i=o0)=>{r=Sn(r,ja),a=Sn(a),o=Sn(o,Vr);const{zip215:u}=i;let l,A,c,h,d=Uint8Array.of();try{l=Fr.fromHex(o,u),A=Fr.fromHex(r.slice(0,Vr),u),c=Ju(r.slice(Vr,ja)),h=rn.multiply(c,!1),d=Ha(A.toBytes(),l.toBytes(),a)}catch{}return{hashable:d,finish:x=>{if(h==null||!u&&l.isSmallOrder())return!1;const g=Xi(x);return A.add(l.multiply(g,!1)).add(h.negate()).clearCofactor().is0()}}},ew=async(r,a,o,i=o0)=>Vx(qx(r,a,o,i)),tw=(r,a,o,i=o0)=>Ux(qx(r,a,o,i)),a0={sha512Async:async(...r)=>{const a=Q4(),o=Ha(...r);return Al(await a.digest("SHA-512",o.buffer))},sha512Sync:void 0,bytesToHex:Zu,hexToBytes:Xu,concatBytes:Ha,mod:we,invert:Hx,randomBytes:Ox},rw={getExtendedPublicKeyAsync:r0,getExtendedPublicKey:n0,randomPrivateKey:()=>Ox(Vr),precompute:(r=8,a=rn)=>(a.multiply(3n),a)},Ji=8,nw=256,Qx=Math.ceil(nw/Ji)+1,Du=2**(Ji-1),ow=()=>{const r=[];let a=rn,o=a;for(let i=0;i{const o=a.negate();return r?o:a},aw=r=>{const a=ph||(ph=ow());let o=Bo,i=rn;const u=2**Ji,l=u,A=Zi(u-1),c=Zi(Ji);for(let h=0;h>=c,d>Du&&(d-=l,r+=1n);const p=h*Du,x=p,g=p+Math.abs(d)-1,w=h%2!==0,b=d<0;d===0?i=i.add(xh(w,a[x])):o=o.add(xh(b,a[g]))}return{p:o,f:i}},sw=Object.freeze(Object.defineProperty({__proto__:null,CURVE:Px,ExtendedPoint:Fr,Point:Fr,etc:a0,getPublicKey:Z4,getPublicKeyAsync:Y4,sign:J4,signAsync:X4,utils:rw,verify:tw,verifyAsync:ew},Symbol.toStringTag,{value:"Module"})),iw=Uh(sw);var Wn={},xu={exports:{}},mh;function lw(){return mh||(mh=1,(function(r,a){var o=(()=>{var u;var i=typeof document<"u"?(u=document.currentScript)==null?void 0:u.src:void 0;return(async function(l={}){var be;var A,c=l,h=typeof window=="object",d=typeof WorkerGlobalScope<"u",p=typeof process=="object"&&((be=process.versions)==null?void 0:be.node)&&process.type!="renderer";typeof __filename<"u"?i=__filename:d&&(i=self.location.href);var x="";function g($){return c.locateFile?c.locateFile($,x):x+$}var w,b;if(p){var k=Yi;x=__dirname+"/",b=$=>{$=C($)?new URL($):$;var ne=k.readFileSync($);return ne},w=async($,ne=!0)=>{$=C($)?new URL($):$;var pe=k.readFileSync($,ne?void 0:"utf8");return pe},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2)}else if(h||d){try{x=new URL(".",i).href}catch{}d&&(b=$=>{var ne=new XMLHttpRequest;return ne.open("GET",$,!1),ne.responseType="arraybuffer",ne.send(null),new Uint8Array(ne.response)}),w=async $=>{if(C($))return new Promise((pe,Re)=>{var De=new XMLHttpRequest;De.open("GET",$,!0),De.responseType="arraybuffer",De.onload=()=>{if(De.status==200||De.status==0&&De.response){pe(De.response);return}Re(De.status)},De.onerror=Re,De.send(null)});var ne=await fetch($,{credentials:"same-origin"});if(ne.ok)return ne.arrayBuffer();throw new Error(ne.status+" : "+ne.url)}}console.log.bind(console);var v=console.error.bind(console),S,E=!1,C=$=>$.startsWith("file://"),B,D,T,I,P,H=!1;function M(){var $=T.buffer;c.HEAP8=I=new Int8Array($),c.HEAPU8=P=new Uint8Array($),c.HEAP32=new Int32Array($),c.HEAPU32=new Uint32Array($),new BigInt64Array($),new BigUint64Array($)}function N(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)$e(c.preRun.shift());ce(Ne)}function V(){H=!0,ot.b()}function Q(){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)me(c.postRun.shift());ce(te)}var X=0,ae=null;function J($){var ne;X++,(ne=c.monitorRunDependencies)==null||ne.call(c,X)}function re($){var pe;if(X--,(pe=c.monitorRunDependencies)==null||pe.call(c,X),X==0&&ae){var ne=ae;ae=null,ne()}}function q($){var pe;(pe=c.onAbort)==null||pe.call(c,$),$="Aborted("+$+")",v($),E=!0,$+=". Build with -sASSERTIONS for more info.";var ne=new WebAssembly.RuntimeError($);throw D==null||D(ne),ne}var oe;function ee(){return g("orlp-ed25519.wasm")}function y($){if($==oe&&S)return new Uint8Array(S);if(b)return b($);throw"both async and sync fetching of the wasm failed"}async function j($){if(!S)try{var ne=await w($);return new Uint8Array(ne)}catch{}return y($)}async function L($,ne){try{var pe=await j($),Re=await WebAssembly.instantiate(pe,ne);return Re}catch(De){v(`failed to asynchronously prepare wasm: ${De}`),q(De)}}async function W($,ne,pe){if(!$&&typeof WebAssembly.instantiateStreaming=="function"&&!C(ne)&&!p)try{var Re=fetch(ne,{credentials:"same-origin"}),De=await WebAssembly.instantiateStreaming(Re,pe);return De}catch(Ie){v(`wasm streaming compile failed: ${Ie}`),v("falling back to ArrayBuffer instantiation")}return L(ne,pe)}function ue(){return{a:yt}}async function le(){function $(Ie,Te){return ot=Ie.exports,T=ot.a,M(),or(ot),re(),ot}J();function ne(Ie){return $(Ie.instance)}var pe=ue();if(c.instantiateWasm)return new Promise((Ie,Te)=>{c.instantiateWasm(pe,(Pe,Ct)=>{Ie($(Pe))})});oe??(oe=ee());var Re=await W(S,oe,pe),De=ne(Re);return De}var ce=$=>{for(;$.length>0;)$.shift()(c)},te=[],me=$=>te.push($),Ne=[],$e=$=>Ne.push($),nt=$=>vt($),st=()=>Kt(),Ke=$=>{var ne=c["_"+$];return ne},Gt=($,ne)=>{I.set($,ne)},Ot=$=>{for(var ne=0,pe=0;pe<$.length;++pe){var Re=$.charCodeAt(pe);Re<=127?ne++:Re<=2047?ne+=2:Re>=55296&&Re<=57343?(ne+=4,++pe):ne+=3}return ne},St=($,ne,pe,Re)=>{if(!(Re>0))return 0;for(var De=pe,Ie=pe+Re-1,Te=0;Te<$.length;++Te){var Pe=$.codePointAt(Te);if(Pe<=127){if(pe>=Ie)break;ne[pe++]=Pe}else if(Pe<=2047){if(pe+1>=Ie)break;ne[pe++]=192|Pe>>6,ne[pe++]=128|Pe&63}else if(Pe<=65535){if(pe+2>=Ie)break;ne[pe++]=224|Pe>>12,ne[pe++]=128|Pe>>6&63,ne[pe++]=128|Pe&63}else{if(pe+3>=Ie)break;ne[pe++]=240|Pe>>18,ne[pe++]=128|Pe>>12&63,ne[pe++]=128|Pe>>6&63,ne[pe++]=128|Pe&63,Te++}}return ne[pe]=0,pe-De},Wt=($,ne,pe)=>St($,P,ne,pe),ct=$=>jt($),Tt=$=>{var ne=Ot($)+1,pe=ct(ne);return Wt($,pe,ne),pe},et=typeof TextDecoder<"u"?new TextDecoder:void 0,Ve=($,ne=0,pe=NaN)=>{for(var Re=ne+pe,De=ne;$[De]&&!(De>=Re);)++De;if(De-ne>16&&$.buffer&&et)return et.decode($.subarray(ne,De));for(var Ie="";ne>10,56320|ke&1023)}}return Ie},ut=($,ne)=>$?Ve(P,$,ne):"",$t=($,ne,pe,Re,De)=>{var Ie={string:He=>{var Ze=0;return He!=null&&He!==0&&(Ze=Tt(He)),Ze},array:He=>{var Ze=ct(He.length);return Gt(He,Ze),Ze}};function Te(He){return ne==="string"?ut(He):ne==="boolean"?!!He:He}var Pe=Ke($),Ct=[],ke=0;if(Re)for(var je=0;je{var De=!pe||pe.every(Te=>Te==="number"||Te==="boolean"),Ie=ne!=="string";return Ie&&De&&!Re?Ke($):(...Te)=>$t($,ne,pe,Te)};c.noExitRuntime&&c.noExitRuntime,c.print&&c.print,c.printErr&&(v=c.printErr),c.wasmBinary&&(S=c.wasmBinary),c.arguments&&c.arguments,c.thisProgram&&c.thisProgram,c.ccall=$t,c.cwrap=vr;var vt,jt,Kt;function or($){c._orlp_derive_public_key=$.c,c._orlp_validate_keypair=$.d,c._orlp_sign=$.e,c._orlp_verify=$.f,vt=$.g,jt=$.h,Kt=$.i}var yt={},ot=await le();function Y(){if(X>0){ae=Y;return}if(N(),X>0){ae=Y;return}function $(){var ne;c.calledRun=!0,!E&&(V(),B==null||B(c),(ne=c.onRuntimeInitialized)==null||ne.call(c),Q())}c.setStatus?(c.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>c.setStatus(""),1),$()},1)):$()}function fe(){if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.shift()()}return fe(),Y(),H?A=c:A=new Promise(($,ne)=>{B=$,D=ne}),A})})();r.exports=o,r.exports.default=o})(xu)),xu.exports}var gh;function s0(){if(gh)return Wn;gh=1,Object.defineProperty(Wn,"__esModule",{value:!0}),Wn.derivePublicKey=i,Wn.validateKeyPair=u,Wn.sign=l,Wn.verify=A;const r=Mt(),a=lw();async function o(){return await a()}async function i(c){const h=await o(),d=(0,r.hexToBytes)(c);if(d.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${d.length}`);const p=1024,x=1088;if(h.HEAPU8.set(d,p),h.ccall("orlp_derive_public_key","number",["number","number"],[x,p])!==0)throw new Error("orlp key derivation failed: invalid private key");const w=new Uint8Array(32);return w.set(h.HEAPU8.subarray(x,x+32)),(0,r.bytesToHex)(w)}async function u(c,h){try{const d=await o(),p=(0,r.hexToBytes)(c),x=(0,r.hexToBytes)(h);if(p.length!==64||x.length!==32)return!1;const g=2048,w=2112;return d.HEAPU8.set(p,g),d.HEAPU8.set(x,w),d.ccall("orlp_validate_keypair","number",["number","number"],[w,g])===1}catch{return!1}}async function l(c,h,d){const p=await o(),x=(0,r.hexToBytes)(c),g=(0,r.hexToBytes)(h),w=(0,r.hexToBytes)(d);if(g.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${g.length}`);if(w.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${w.length}`);const b=1e5,k=2e5,v=3e5,S=4e5;p.HEAPU8.set(x,b),p.HEAPU8.set(g,k),p.HEAPU8.set(w,v),p.ccall("orlp_sign","void",["number","number","number","number","number"],[S,b,x.length,v,k]);const E=new Uint8Array(64);return E.set(p.HEAPU8.subarray(S,S+64)),(0,r.bytesToHex)(E)}async function A(c,h,d){try{const p=await o(),x=(0,r.hexToBytes)(c),g=(0,r.hexToBytes)(h),w=(0,r.hexToBytes)(d);if(x.length!==64||w.length!==32)return!1;const b=5e5,k=6e5,v=7e5;return p.HEAPU8.set(x,k),p.HEAPU8.set(g,b),p.HEAPU8.set(w,v),p.ccall("orlp_verify","number",["number","number","number","number"],[k,b,g.length,v])===1}catch{return!1}}return Wn}var vh;function Gx(){if(vh)return Dr;vh=1;var r=Dr&&Dr.__createBinding||(Object.create?(function(d,p,x,g){g===void 0&&(g=x);var w=Object.getOwnPropertyDescriptor(p,x);(!w||("get"in w?!p.__esModule:w.writable||w.configurable))&&(w={enumerable:!0,get:function(){return p[x]}}),Object.defineProperty(d,g,w)}):(function(d,p,x,g){g===void 0&&(g=x),d[g]=p[x]})),a=Dr&&Dr.__setModuleDefault||(Object.create?(function(d,p){Object.defineProperty(d,"default",{enumerable:!0,value:p})}):function(d,p){d.default=p}),o=Dr&&Dr.__importStar||(function(){var d=function(p){return d=Object.getOwnPropertyNames||function(x){var g=[];for(var w in x)Object.prototype.hasOwnProperty.call(x,w)&&(g[g.length]=w);return g},d(p)};return function(p){if(p&&p.__esModule)return p;var x={};if(p!=null)for(var g=d(p),w=0;w>>24&255,w[b*4+1]=k>>>16&255,w[b*4+2]=k>>>8&255,w[b*4+3]=k&255}return w}catch{throw new Error("No SHA-512 implementation available for synchronous operation")}}i.etc.sha512Async=A;try{i.etc.sha512Sync=c}catch(d){console.debug("Could not set up synchronous SHA-512:",d)}class h{static async verifyAdvertisementSignature(p,x,g,w){try{const b=(0,u.hexToBytes)(p),k=(0,u.hexToBytes)(x),v=(0,u.hexToBytes)(w),S=this.constructAdvertSignedMessage(p,g,v);return await i.verify(k,S,b)}catch(b){return console.error("Ed25519 signature verification failed:",b),!1}}static constructAdvertSignedMessage(p,x,g){const w=(0,u.hexToBytes)(p),b=new Uint8Array(4);b[0]=x&255,b[1]=x>>8&255,b[2]=x>>16&255,b[3]=x>>24&255;const k=new Uint8Array(36+g.length);return k.set(w,0),k.set(b,32),k.set(g,36),k}static getSignedMessageDescription(p,x,g){return`Public Key: ${p} + Timestamp: ${x} (${new Date(x*1e3).toISOString()}) + App Data: ${g}`}static getSignedMessageHex(p,x,g){const w=(0,u.hexToBytes)(g),b=this.constructAdvertSignedMessage(p,x,w);return(0,u.bytesToHex)(b)}static async derivePublicKey(p){try{const x=(0,u.hexToBytes)(p);if(x.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${x.length}`);return await(0,l.derivePublicKey)(p)}catch(x){throw new Error(`Failed to derive public key: ${x instanceof Error?x.message:"Unknown error"}`)}}static derivePublicKeySync(p){try{const x=(0,u.hexToBytes)(p);throw x.length!==64?new Error(`Invalid private key length: expected 64 bytes, got ${x.length}`):new Error("Synchronous key derivation not supported with WASM. Use derivePublicKey() instead.")}catch(x){throw new Error(`Failed to derive public key: ${x instanceof Error?x.message:"Unknown error"}`)}}static async validateKeyPair(p,x){try{return await(0,l.validateKeyPair)(p,x)}catch{return!1}}}return Dr.Ed25519SignatureVerifier=h,Dr}var yh;function cw(){if(yh)return wa;yh=1,Object.defineProperty(wa,"__esModule",{value:!0}),wa.AdvertPayloadDecoder=void 0;const r=ur(),a=Mt(),o=Oa(),i=Gx();class u{static decode(A,c){try{if(A.length<101){const S={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:["Advertisement payload too short"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}};return c!=null&&c.includeSegments&&(S.segments=[{name:"Invalid Advert Data",description:"Advert payload too short (minimum 101 bytes required)",startByte:c.segmentOffset||0,endByte:(c.segmentOffset||0)+A.length-1,value:(0,a.bytesToHex)(A)}]),S}const h=[],d=(c==null?void 0:c.segmentOffset)||0;let p=0;const x=(0,a.bytesToHex)(A.subarray(p,p+32));c!=null&&c.includeSegments&&h.push({name:"Public Key",description:"Ed25519 public key",startByte:d+p,endByte:d+p+31,value:x}),p+=32;const g=this.readUint32LE(A,p);if(c!=null&&c.includeSegments){const S=new Date(g*1e3);h.push({name:"Timestamp",description:`${g} (${S.toISOString().slice(0,19)}Z)`,startByte:d+p,endByte:d+p+3,value:(0,a.bytesToHex)(A.subarray(p,p+4))})}p+=4;const w=(0,a.bytesToHex)(A.subarray(p,p+64));c!=null&&c.includeSegments&&h.push({name:"Signature",description:"Ed25519 signature",startByte:d+p,endByte:d+p+63,value:w}),p+=64;const b=A[p];if(c!=null&&c.includeSegments){const S=b.toString(2).padStart(8,"0"),E=this.parseDeviceRole(b),B=` | Bits 0-3 (Role): ${(0,o.getDeviceRoleName)(E)} | Bit 4 (Location): ${b&r.AdvertFlags.HasLocation?"Yes":"No"} | Bit 7 (Name): ${b&r.AdvertFlags.HasName?"Yes":"No"}`;h.push({name:"App Flags",description:`Binary: ${S}${B}`,startByte:d+p,endByte:d+p,value:b.toString(16).padStart(2,"0").toUpperCase()})}p+=1;const k={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!0,publicKey:x,timestamp:g,signature:w,appData:{flags:b,deviceRole:this.parseDeviceRole(b),hasLocation:!!(b&r.AdvertFlags.HasLocation),hasName:!!(b&r.AdvertFlags.HasName)}};let v=p;if(b&r.AdvertFlags.HasLocation&&A.length>=v+8){const S=this.readInt32LE(A,v)/1e6,E=this.readInt32LE(A,v+4)/1e6;k.appData.location={latitude:Math.round(S*1e6)/1e6,longitude:Math.round(E*1e6)/1e6},c!=null&&c.includeSegments&&(h.push({name:"Latitude",description:`${S}° (${S})`,startByte:d+v,endByte:d+v+3,value:(0,a.bytesToHex)(A.subarray(v,v+4))}),h.push({name:"Longitude",description:`${E}° (${E})`,startByte:d+v+4,endByte:d+v+7,value:(0,a.bytesToHex)(A.subarray(v+4,v+8))})),v+=8}if(b&r.AdvertFlags.HasFeature1&&(v+=2),b&r.AdvertFlags.HasFeature2&&(v+=2),b&r.AdvertFlags.HasName&&A.length>v){const S=A.subarray(v),E=new TextDecoder("utf-8").decode(S).replace(/\0.*$/,"");k.appData.name=this.sanitizeControlCharacters(E)||E,c!=null&&c.includeSegments&&h.push({name:"Node Name",description:`Node name: "${k.appData.name}"`,startByte:d+v,endByte:d+A.length-1,value:(0,a.bytesToHex)(S)})}return c!=null&&c.includeSegments&&(k.segments=h),k}catch(h){return{type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode advertisement payload"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}}}}static async decodeWithVerification(A,c){const h=this.decode(A,c);if(!h||!h.isValid)return h;try{const p=A.subarray(100),x=(0,a.bytesToHex)(p),g=await i.Ed25519SignatureVerifier.verifyAdvertisementSignature(h.publicKey,h.signature,h.timestamp,x);h.signatureValid=g,g||(h.signatureError="Ed25519 signature verification failed",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Invalid Ed25519 signature"))}catch(d){h.signatureValid=!1,h.signatureError=d instanceof Error?d.message:"Signature verification error",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Signature verification failed: "+(d instanceof Error?d.message:"Unknown error"))}return h}static parseDeviceRole(A){switch(A&15){case 1:return r.DeviceRole.ChatNode;case 2:return r.DeviceRole.Repeater;case 3:return r.DeviceRole.RoomServer;case 4:return r.DeviceRole.Sensor;default:return r.DeviceRole.ChatNode}}static readUint32LE(A,c){return A[c]|A[c+1]<<8|A[c+2]<<16|A[c+3]<<24}static readInt32LE(A,c){const h=this.readUint32LE(A,c);return h>2147483647?h-4294967296:h}static sanitizeControlCharacters(A){return A&&A.trim().replace(/[\x00-\x1F\x7F]/g,"")||null}}return wa.AdvertPayloadDecoder=u,wa}var ba={},Ch;function uw(){if(Ch)return ba;Ch=1,Object.defineProperty(ba,"__esModule",{value:!0}),ba.TracePayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u,l,A){try{if(u.length<9){const E={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:["Trace payload too short (need at least tag(4) + auth(4) + flags(1))"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]};return A!=null&&A.includeSegments&&(E.segments=[{name:"Invalid Trace Data",description:"Trace payload too short (minimum 9 bytes required)",startByte:A.segmentOffset||0,endByte:(A.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),E}let c=0;const h=[],d=(A==null?void 0:A.segmentOffset)||0,p=this.readUint32LE(u,c),x=(0,a.numberToHex)(p,8);A!=null&&A.includeSegments&&h.push({name:"Trace Tag",description:`Unique identifier for this trace: 0x${p.toString(16).padStart(8,"0")}`,startByte:d+c,endByte:d+c+3,value:(0,a.bytesToHex)(u.slice(c,c+4))}),c+=4;const g=this.readUint32LE(u,c);A!=null&&A.includeSegments&&h.push({name:"Auth Code",description:`Authentication/verification code: ${g}`,startByte:d+c,endByte:d+c+3,value:(0,a.bytesToHex)(u.slice(c,c+4))}),c+=4;const w=u[c];A!=null&&A.includeSegments&&h.push({name:"Flags",description:`Application-defined control flags: 0x${w.toString(16).padStart(2,"0")} (${w.toString(2).padStart(8,"0")}b)`,startByte:d+c,endByte:d+c,value:w.toString(16).padStart(2,"0").toUpperCase()}),c+=1;const b=[],k=c;for(;c0){const E=b.join(" ");h.push({name:"Path Hashes",description:`Node hashes in trace path: ${E}`,startByte:d+k,endByte:d+u.length-1,value:(0,a.bytesToHex)(u.slice(k))})}let v;l&&l.length>0&&(v=l.map(E=>{const C=parseInt(E,16);return(C>127?C-256:C)/4}));const S={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!0,traceTag:x,authCode:g,flags:w,pathHashes:b,snrValues:v};return A!=null&&A.includeSegments&&(S.segments=h),S}catch(c){return{type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode trace payload"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]}}}static readUint32LE(u,l){return u[l]|u[l+1]<<8|u[l+2]<<16|u[l+3]<<24}}return ba.TracePayloadDecoder=o,ba}var Ea={},wh;function dw(){if(wh)return Ea;wh=1,Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.GroupTextPayloadDecoder=void 0;const r=ur(),a=Ku(),o=Mt();class i{static decode(l,A){try{if(l.length<3){const b={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:["GroupText payload too short (need at least channel_hash(1) + MAC(2))"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return A!=null&&A.includeSegments&&(b.segments=[{name:"Invalid GroupText Data",description:"GroupText payload too short (minimum 3 bytes required)",startByte:A.segmentOffset||0,endByte:(A.segmentOffset||0)+l.length-1,value:(0,o.bytesToHex)(l)}]),b}const c=[],h=(A==null?void 0:A.segmentOffset)||0;let d=0;const p=(0,o.byteToHex)(l[d]);A!=null&&A.includeSegments&&c.push({name:"Channel Hash",description:"First byte of SHA256 of channel's shared key",startByte:h+d,endByte:h+d,value:p}),d+=1;const x=(0,o.bytesToHex)(l.subarray(d,d+2));A!=null&&A.includeSegments&&c.push({name:"Cipher MAC",description:"MAC for encrypted data",startByte:h+d,endByte:h+d+1,value:x}),d+=2;const g=(0,o.bytesToHex)(l.subarray(d));A!=null&&A.includeSegments&&l.length>d&&c.push({name:"Ciphertext",description:"Encrypted message content (timestamp + flags + message)",startByte:h+d,endByte:h+l.length-1,value:g});const w={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!0,channelHash:p,cipherMac:x,ciphertext:g,ciphertextLength:l.length-3};if(A!=null&&A.keyStore&&A.keyStore.hasChannelKey(p)){const b=A.keyStore.getChannelKeys(p);for(const k of b){const v=a.ChannelCrypto.decryptGroupTextMessage(g,x,k);if(v.success&&v.data){w.decrypted={timestamp:v.data.timestamp,flags:v.data.flags,sender:v.data.sender,message:v.data.message};break}}}return A!=null&&A.includeSegments&&(w.segments=c),w}catch(c){return{type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode GroupText payload"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ea.GroupTextPayloadDecoder=i,Ea}var ka={},bh;function fw(){if(bh)return ka;bh=1,Object.defineProperty(ka,"__esModule",{value:!0}),ka.RequestPayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u,l){try{if(u.length<4){const b={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:["Request payload too short (minimum 4 bytes: dest hash + source hash + MAC)"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""};return l!=null&&l.includeSegments&&(b.segments=[{name:"Invalid Request Data",description:"Request payload too short (minimum 4 bytes required: 1 for dest hash + 1 for source hash + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),b}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const p=(0,a.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&A.push({name:"Source Hash",description:`First byte of source node public key: 0x${p}`,startByte:c+h,endByte:c+h,value:p}),h+=1;const x=(0,a.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:x}),h+=2;const g=(0,a.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&A.push({name:"Ciphertext",description:`Encrypted message data (${u.length-h} bytes). Contains encrypted plaintext with this structure: + */return o.mode.CTRGladman=(function(){var i=o.lib.BlockCipherMode.extend();function u(c){if((c>>24&255)===255){var h=c>>16&255,d=c>>8&255,x=c&255;h===255?(h=0,d===255?(d=0,x===255?x=0:++x):++d):++h,c=0,c+=h<<16,c+=d<<8,c+=x}else c+=1<<24;return c}function l(c){return(c[0]=u(c[0]))===0&&(c[1]=u(c[1])),c}var A=i.Encryptor=i.extend({processBlock:function(c,h){var d=this._cipher,x=d.blockSize,p=this._iv,g=this._counter;p&&(g=this._counter=p.slice(0),this._iv=void 0),l(g);var C=g.slice(0);d.encryptBlock(C,0);for(var w=0;w>>2]|=c<<24-h%4*8,i.sigBytes+=c},unpad:function(i){var u=i.words[i.sigBytes-1>>>2]&255;i.sigBytes-=u}},o.pad.Ansix923})})(Ri)),Ri.exports}var Ti={exports:{}},y4=Ti.exports,YA;function C4(){return YA||(YA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Pt())})(y4,function(o){return o.pad.Iso10126={pad:function(i,u){var l=u*4,A=l-i.sigBytes%l;i.concat(o.lib.WordArray.random(A-1)).concat(o.lib.WordArray.create([A<<24],1))},unpad:function(i){var u=i.words[i.sigBytes-1>>>2]&255;i.sigBytes-=u}},o.pad.Iso10126})})(Ti)),Ti.exports}var Pi={exports:{}},w4=Pi.exports,ZA;function b4(){return ZA||(ZA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Pt())})(w4,function(o){return o.pad.Iso97971={pad:function(i,u){i.concat(o.lib.WordArray.create([2147483648],1)),o.pad.ZeroPadding.pad(i,u)},unpad:function(i){o.pad.ZeroPadding.unpad(i),i.sigBytes--}},o.pad.Iso97971})})(Pi)),Pi.exports}var Ni={exports:{}},E4=Ni.exports,XA;function k4(){return XA||(XA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Pt())})(E4,function(o){return o.pad.ZeroPadding={pad:function(i,u){var l=u*4;i.clamp(),i.sigBytes+=l-(i.sigBytes%l||l)},unpad:function(i){for(var u=i.words,l=i.sigBytes-1,l=i.sigBytes-1;l>=0;l--)if(u[l>>>2]>>>24-l%4*8&255){i.sigBytes=l+1;break}}},o.pad.ZeroPadding})})(Ni)),Ni.exports}var Ii={exports:{}},S4=Ii.exports,JA;function B4(){return JA||(JA=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Pt())})(S4,function(o){return o.pad.NoPadding={pad:function(){},unpad:function(){}},o.pad.NoPadding})})(Ii)),Ii.exports}var Mi={exports:{}},_4=Mi.exports,eh;function D4(){return eh||(eh=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Pt())})(_4,function(o){return(function(i){var u=o,l=u.lib,A=l.CipherParams,c=u.enc,h=c.Hex,d=u.format;d.Hex={stringify:function(x){return x.ciphertext.toString(h)},parse:function(x){var p=h.parse(x);return A.create({ciphertext:p})}}})(),o.format.Hex})})(Mi)),Mi.exports}var Oi={exports:{}},F4=Oi.exports,th;function R4(){return th||(th=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Xn(),Jn(),Bn(),Pt())})(F4,function(o){return(function(){var i=o,u=i.lib,l=u.BlockCipher,A=i.algo,c=[],h=[],d=[],x=[],p=[],g=[],C=[],w=[],b=[],v=[];(function(){for(var y=[],B=0;B<256;B++)B<128?y[B]=B<<1:y[B]=B<<1^283;for(var D=0,T=0,B=0;B<256;B++){var M=T^T<<1^T<<2^T<<3^T<<4;M=M>>>8^M&255^99,c[D]=M,h[M]=D;var P=y[D],j=y[P],I=y[j],N=y[M]*257^M*16843008;d[D]=N<<24|N>>>8,x[D]=N<<16|N>>>16,p[D]=N<<8|N>>>24,g[D]=N;var N=I*16843009^j*65537^P*257^D*16843008;C[M]=N<<24|N>>>8,w[M]=N<<16|N>>>16,b[M]=N<<8|N>>>24,v[M]=N,D?(D=P^y[y[y[I^P]]],T^=y[y[T]]):D=T=1}})();var S=[0,1,2,4,8,16,32,64,128,27,54],E=A.AES=l.extend({_doReset:function(){var y;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var B=this._keyPriorReset=this._key,D=B.words,T=B.sigBytes/4,M=this._nRounds=T+6,P=(M+1)*4,j=this._keySchedule=[],I=0;I6&&I%T==4&&(y=c[y>>>24]<<24|c[y>>>16&255]<<16|c[y>>>8&255]<<8|c[y&255]):(y=y<<8|y>>>24,y=c[y>>>24]<<24|c[y>>>16&255]<<16|c[y>>>8&255]<<8|c[y&255],y^=S[I/T|0]<<24),j[I]=j[I-T]^y);for(var N=this._invKeySchedule=[],z=0;z>>24]]^w[c[y>>>16&255]]^b[c[y>>>8&255]]^v[c[y&255]]}}},encryptBlock:function(y,B){this._doCryptBlock(y,B,this._keySchedule,d,x,p,g,c)},decryptBlock:function(y,B){var D=y[B+1];y[B+1]=y[B+3],y[B+3]=D,this._doCryptBlock(y,B,this._invKeySchedule,C,w,b,v,h);var D=y[B+1];y[B+1]=y[B+3],y[B+3]=D},_doCryptBlock:function(y,B,D,T,M,P,j,I){for(var N=this._nRounds,z=y[B]^D[0],Q=y[B+1]^D[1],X=y[B+2]^D[2],se=y[B+3]^D[3],J=4,ne=1;ne>>24]^M[Q>>>16&255]^P[X>>>8&255]^j[se&255]^D[J++],ae=T[Q>>>24]^M[X>>>16&255]^P[se>>>8&255]^j[z&255]^D[J++],ee=T[X>>>24]^M[se>>>16&255]^P[z>>>8&255]^j[Q&255]^D[J++],k=T[se>>>24]^M[z>>>16&255]^P[Q>>>8&255]^j[X&255]^D[J++];z=q,Q=ae,X=ee,se=k}var q=(I[z>>>24]<<24|I[Q>>>16&255]<<16|I[X>>>8&255]<<8|I[se&255])^D[J++],ae=(I[Q>>>24]<<24|I[X>>>16&255]<<16|I[se>>>8&255]<<8|I[z&255])^D[J++],ee=(I[X>>>24]<<24|I[se>>>16&255]<<16|I[z>>>8&255]<<8|I[Q&255])^D[J++],k=(I[se>>>24]<<24|I[z>>>16&255]<<16|I[Q>>>8&255]<<8|I[X&255])^D[J++];y[B]=q,y[B+1]=ae,y[B+2]=ee,y[B+3]=k},keySize:256/32});i.AES=l._createHelper(E)})(),o.AES})})(Oi)),Oi.exports}var ji={exports:{}},T4=ji.exports,rh;function P4(){return rh||(rh=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Xn(),Jn(),Bn(),Pt())})(T4,function(o){return(function(){var i=o,u=i.lib,l=u.WordArray,A=u.BlockCipher,c=i.algo,h=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],d=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],x=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],p=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],g=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],C=c.DES=A.extend({_doReset:function(){for(var S=this._key,E=S.words,y=[],B=0;B<56;B++){var D=h[B]-1;y[B]=E[D>>>5]>>>31-D%32&1}for(var T=this._subKeys=[],M=0;M<16;M++){for(var P=T[M]=[],j=x[M],B=0;B<24;B++)P[B/6|0]|=y[(d[B]-1+j)%28]<<31-B%6,P[4+(B/6|0)]|=y[28+(d[B+24]-1+j)%28]<<31-B%6;P[0]=P[0]<<1|P[0]>>>31;for(var B=1;B<7;B++)P[B]=P[B]>>>(B-1)*4+3;P[7]=P[7]<<5|P[7]>>>27}for(var I=this._invSubKeys=[],B=0;B<16;B++)I[B]=T[15-B]},encryptBlock:function(S,E){this._doCryptBlock(S,E,this._subKeys)},decryptBlock:function(S,E){this._doCryptBlock(S,E,this._invSubKeys)},_doCryptBlock:function(S,E,y){this._lBlock=S[E],this._rBlock=S[E+1],w.call(this,4,252645135),w.call(this,16,65535),b.call(this,2,858993459),b.call(this,8,16711935),w.call(this,1,1431655765);for(var B=0;B<16;B++){for(var D=y[B],T=this._lBlock,M=this._rBlock,P=0,j=0;j<8;j++)P|=p[j][((M^D[j])&g[j])>>>0];this._lBlock=M,this._rBlock=T^P}var I=this._lBlock;this._lBlock=this._rBlock,this._rBlock=I,w.call(this,1,1431655765),b.call(this,8,16711935),b.call(this,2,858993459),w.call(this,16,65535),w.call(this,4,252645135),S[E]=this._lBlock,S[E+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function w(S,E){var y=(this._lBlock>>>S^this._rBlock)&E;this._rBlock^=y,this._lBlock^=y<>>S^this._lBlock)&E;this._lBlock^=y,this._rBlock^=y<192.");var y=E.slice(0,2),B=E.length<4?E.slice(0,2):E.slice(2,4),D=E.length<6?E.slice(0,2):E.slice(4,6);this._des1=C.createEncryptor(l.create(y)),this._des2=C.createEncryptor(l.create(B)),this._des3=C.createEncryptor(l.create(D))},encryptBlock:function(S,E){this._des1.encryptBlock(S,E),this._des2.decryptBlock(S,E),this._des3.encryptBlock(S,E)},decryptBlock:function(S,E){this._des3.decryptBlock(S,E),this._des2.encryptBlock(S,E),this._des1.decryptBlock(S,E)},keySize:192/32,ivSize:64/32,blockSize:64/32});i.TripleDES=A._createHelper(v)})(),o.TripleDES})})(ji)),ji.exports}var Hi={exports:{}},N4=Hi.exports,nh;function I4(){return nh||(nh=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Xn(),Jn(),Bn(),Pt())})(N4,function(o){return(function(){var i=o,u=i.lib,l=u.StreamCipher,A=i.algo,c=A.RC4=l.extend({_doReset:function(){for(var x=this._key,p=x.words,g=x.sigBytes,C=this._S=[],w=0;w<256;w++)C[w]=w;for(var w=0,b=0;w<256;w++){var v=w%g,S=p[v>>>2]>>>24-v%4*8&255;b=(b+C[w]+S)%256;var E=C[w];C[w]=C[b],C[b]=E}this._i=this._j=0},_doProcessBlock:function(x,p){x[p]^=h.call(this)},keySize:256/32,ivSize:0});function h(){for(var x=this._S,p=this._i,g=this._j,C=0,w=0;w<4;w++){p=(p+1)%256,g=(g+x[p])%256;var b=x[p];x[p]=x[g],x[g]=b,C|=x[(x[p]+x[g])%256]<<24-w*8}return this._i=p,this._j=g,C}i.RC4=l._createHelper(c);var d=A.RC4Drop=c.extend({cfg:c.cfg.extend({drop:192}),_doReset:function(){c._doReset.call(this);for(var x=this.cfg.drop;x>0;x--)h.call(this)}});i.RC4Drop=l._createHelper(d)})(),o.RC4})})(Hi)),Hi.exports}var Li={exports:{}},M4=Li.exports,oh;function O4(){return oh||(oh=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Xn(),Jn(),Bn(),Pt())})(M4,function(o){return(function(){var i=o,u=i.lib,l=u.StreamCipher,A=i.algo,c=[],h=[],d=[],x=A.Rabbit=l.extend({_doReset:function(){for(var g=this._key.words,C=this.cfg.iv,w=0;w<4;w++)g[w]=(g[w]<<8|g[w]>>>24)&16711935|(g[w]<<24|g[w]>>>8)&4278255360;var b=this._X=[g[0],g[3]<<16|g[2]>>>16,g[1],g[0]<<16|g[3]>>>16,g[2],g[1]<<16|g[0]>>>16,g[3],g[2]<<16|g[1]>>>16],v=this._C=[g[2]<<16|g[2]>>>16,g[0]&4294901760|g[1]&65535,g[3]<<16|g[3]>>>16,g[1]&4294901760|g[2]&65535,g[0]<<16|g[0]>>>16,g[2]&4294901760|g[3]&65535,g[1]<<16|g[1]>>>16,g[3]&4294901760|g[0]&65535];this._b=0;for(var w=0;w<4;w++)p.call(this);for(var w=0;w<8;w++)v[w]^=b[w+4&7];if(C){var S=C.words,E=S[0],y=S[1],B=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,D=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,T=B>>>16|D&4294901760,M=D<<16|B&65535;v[0]^=B,v[1]^=T,v[2]^=D,v[3]^=M,v[4]^=B,v[5]^=T,v[6]^=D,v[7]^=M;for(var w=0;w<4;w++)p.call(this)}},_doProcessBlock:function(g,C){var w=this._X;p.call(this),c[0]=w[0]^w[5]>>>16^w[3]<<16,c[1]=w[2]^w[7]>>>16^w[5]<<16,c[2]=w[4]^w[1]>>>16^w[7]<<16,c[3]=w[6]^w[3]>>>16^w[1]<<16;for(var b=0;b<4;b++)c[b]=(c[b]<<8|c[b]>>>24)&16711935|(c[b]<<24|c[b]>>>8)&4278255360,g[C+b]^=c[b]},blockSize:128/32,ivSize:64/32});function p(){for(var g=this._X,C=this._C,w=0;w<8;w++)h[w]=C[w];C[0]=C[0]+1295307597+this._b|0,C[1]=C[1]+3545052371+(C[0]>>>0>>0?1:0)|0,C[2]=C[2]+886263092+(C[1]>>>0>>0?1:0)|0,C[3]=C[3]+1295307597+(C[2]>>>0>>0?1:0)|0,C[4]=C[4]+3545052371+(C[3]>>>0>>0?1:0)|0,C[5]=C[5]+886263092+(C[4]>>>0>>0?1:0)|0,C[6]=C[6]+1295307597+(C[5]>>>0>>0?1:0)|0,C[7]=C[7]+3545052371+(C[6]>>>0>>0?1:0)|0,this._b=C[7]>>>0>>0?1:0;for(var w=0;w<8;w++){var b=g[w]+C[w],v=b&65535,S=b>>>16,E=((v*v>>>17)+v*S>>>15)+S*S,y=((b&4294901760)*b|0)+((b&65535)*b|0);d[w]=E^y}g[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,g[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,g[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,g[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,g[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,g[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,g[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,g[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}i.Rabbit=l._createHelper(x)})(),o.Rabbit})})(Li)),Li.exports}var zi={exports:{}},j4=zi.exports,ah;function H4(){return ah||(ah=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Xn(),Jn(),Bn(),Pt())})(j4,function(o){return(function(){var i=o,u=i.lib,l=u.StreamCipher,A=i.algo,c=[],h=[],d=[],x=A.RabbitLegacy=l.extend({_doReset:function(){var g=this._key.words,C=this.cfg.iv,w=this._X=[g[0],g[3]<<16|g[2]>>>16,g[1],g[0]<<16|g[3]>>>16,g[2],g[1]<<16|g[0]>>>16,g[3],g[2]<<16|g[1]>>>16],b=this._C=[g[2]<<16|g[2]>>>16,g[0]&4294901760|g[1]&65535,g[3]<<16|g[3]>>>16,g[1]&4294901760|g[2]&65535,g[0]<<16|g[0]>>>16,g[2]&4294901760|g[3]&65535,g[1]<<16|g[1]>>>16,g[3]&4294901760|g[0]&65535];this._b=0;for(var v=0;v<4;v++)p.call(this);for(var v=0;v<8;v++)b[v]^=w[v+4&7];if(C){var S=C.words,E=S[0],y=S[1],B=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,D=(y<<8|y>>>24)&16711935|(y<<24|y>>>8)&4278255360,T=B>>>16|D&4294901760,M=D<<16|B&65535;b[0]^=B,b[1]^=T,b[2]^=D,b[3]^=M,b[4]^=B,b[5]^=T,b[6]^=D,b[7]^=M;for(var v=0;v<4;v++)p.call(this)}},_doProcessBlock:function(g,C){var w=this._X;p.call(this),c[0]=w[0]^w[5]>>>16^w[3]<<16,c[1]=w[2]^w[7]>>>16^w[5]<<16,c[2]=w[4]^w[1]>>>16^w[7]<<16,c[3]=w[6]^w[3]>>>16^w[1]<<16;for(var b=0;b<4;b++)c[b]=(c[b]<<8|c[b]>>>24)&16711935|(c[b]<<24|c[b]>>>8)&4278255360,g[C+b]^=c[b]},blockSize:128/32,ivSize:64/32});function p(){for(var g=this._X,C=this._C,w=0;w<8;w++)h[w]=C[w];C[0]=C[0]+1295307597+this._b|0,C[1]=C[1]+3545052371+(C[0]>>>0>>0?1:0)|0,C[2]=C[2]+886263092+(C[1]>>>0>>0?1:0)|0,C[3]=C[3]+1295307597+(C[2]>>>0>>0?1:0)|0,C[4]=C[4]+3545052371+(C[3]>>>0>>0?1:0)|0,C[5]=C[5]+886263092+(C[4]>>>0>>0?1:0)|0,C[6]=C[6]+1295307597+(C[5]>>>0>>0?1:0)|0,C[7]=C[7]+3545052371+(C[6]>>>0>>0?1:0)|0,this._b=C[7]>>>0>>0?1:0;for(var w=0;w<8;w++){var b=g[w]+C[w],v=b&65535,S=b>>>16,E=((v*v>>>17)+v*S>>>15)+S*S,y=((b&4294901760)*b|0)+((b&65535)*b|0);d[w]=E^y}g[0]=d[0]+(d[7]<<16|d[7]>>>16)+(d[6]<<16|d[6]>>>16)|0,g[1]=d[1]+(d[0]<<8|d[0]>>>24)+d[7]|0,g[2]=d[2]+(d[1]<<16|d[1]>>>16)+(d[0]<<16|d[0]>>>16)|0,g[3]=d[3]+(d[2]<<8|d[2]>>>24)+d[1]|0,g[4]=d[4]+(d[3]<<16|d[3]>>>16)+(d[2]<<16|d[2]>>>16)|0,g[5]=d[5]+(d[4]<<8|d[4]>>>24)+d[3]|0,g[6]=d[6]+(d[5]<<16|d[5]>>>16)+(d[4]<<16|d[4]>>>16)|0,g[7]=d[7]+(d[6]<<8|d[6]>>>24)+d[5]|0}i.RabbitLegacy=l._createHelper(x)})(),o.RabbitLegacy})})(zi)),zi.exports}var Vi={exports:{}},L4=Vi.exports,sh;function z4(){return sh||(sh=1,(function(r,a){(function(o,i,u){r.exports=i(Ue(),Xn(),Jn(),Bn(),Pt())})(L4,function(o){return(function(){var i=o,u=i.lib,l=u.BlockCipher,A=i.algo;const c=16,h=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],d=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var x={pbox:[],sbox:[]};function p(v,S){let E=S>>24&255,y=S>>16&255,B=S>>8&255,D=S&255,T=v.sbox[0][E]+v.sbox[1][y];return T=T^v.sbox[2][B],T=T+v.sbox[3][D],T}function g(v,S,E){let y=S,B=E,D;for(let T=0;T1;--T)y=y^v.pbox[T],B=p(v,y)^B,D=y,y=B,B=D;return D=y,y=B,B=D,B=B^v.pbox[1],y=y^v.pbox[0],{left:y,right:B}}function w(v,S,E){for(let M=0;M<4;M++){v.sbox[M]=[];for(let P=0;P<256;P++)v.sbox[M][P]=d[M][P]}let y=0;for(let M=0;M=E&&(y=0);let B=0,D=0,T=0;for(let M=0;M=0&&(D=D.substring(0,T));const M=D.indexOf(": ");let P,j;if(M>0&&M<50){const I=D.substring(0,M);/[:\[\]]/.test(I)?j=D:(P=I,j=D.substring(M+2))}else j=D;return{success:!0,data:{timestamp:S,flags:E,sender:P,message:j}}}catch(c){return{success:!1,error:c instanceof Error?c.message:"Decryption failed"}}}static calculateChannelHash(u){const l=(0,r.SHA256)(r.enc.Hex.parse(u));return(0,a.hexToBytes)(l.toString(r.enc.Hex))[0].toString(16).padStart(2,"0")}}return Ca.ChannelCrypto=o,Ca}var ch;function Tx(){if(ch)return ya;ch=1,Object.defineProperty(ya,"__esModule",{value:!0}),ya.MeshCoreKeyStore=void 0;const r=Ku();class a{constructor(i){this.nodeKeys=new Map,this.channelHashToKeys=new Map,i!=null&&i.channelSecrets&&this.addChannelSecrets(i.channelSecrets),i!=null&&i.nodeKeys&&Object.entries(i.nodeKeys).forEach(([u,l])=>{this.addNodeKey(u,l)})}addNodeKey(i,u){const l=i.toUpperCase();this.nodeKeys.set(l,u)}hasChannelKey(i){const u=i.toLowerCase();return this.channelHashToKeys.has(u)}hasNodeKey(i){const u=i.toUpperCase();return this.nodeKeys.has(u)}getChannelKeys(i){const u=i.toLowerCase();return this.channelHashToKeys.get(u)||[]}getNodeKey(i){const u=i.toUpperCase();return this.nodeKeys.get(u)}addChannelSecrets(i){for(const u of i){const l=r.ChannelCrypto.calculateChannelHash(u).toLowerCase();this.channelHashToKeys.has(l)||this.channelHashToKeys.set(l,[]),this.channelHashToKeys.get(l).push(u)}}}return ya.MeshCoreKeyStore=a,ya}var wa={},Dr={};/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */const Px={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:Wt,n:Ui,Gx:uh,Gy:dh,a:hu,d:pu}=Px,U4=8n,Vr=32,ja=64,cr=(r="")=>{throw new Error(r)},W4=r=>typeof r=="bigint",Nx=r=>typeof r=="string",q4=r=>r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array",Zn=(r,a)=>!q4(r)||typeof a=="number"&&a>0&&r.length!==a?cr("Uint8Array expected"):r,Al=r=>new Uint8Array(r),Yu=r=>Uint8Array.from(r),Ix=(r,a)=>r.toString(16).padStart(a,"0"),Zu=r=>Array.from(Zn(r)).map(a=>Ix(a,2)).join(""),en={_0:48,_9:57,A:65,F:70,a:97,f:102},fh=r=>{if(r>=en._0&&r<=en._9)return r-en._0;if(r>=en.A&&r<=en.F)return r-(en.A-10);if(r>=en.a&&r<=en.f)return r-(en.a-10)},Xu=r=>{const a="hex invalid";if(!Nx(r))return cr(a);const o=r.length,i=o/2;if(o%2)return cr(a);const u=Al(i);for(let l=0,A=0;lZn(Nx(r)?Xu(r):Yu(Zn(r)),a),Mx=()=>globalThis==null?void 0:globalThis.crypto,Q4=()=>{var r;return((r=Mx())==null?void 0:r.subtle)??cr("crypto.subtle must be defined")},Ha=(...r)=>{const a=Al(r.reduce((i,u)=>i+Zn(u).length,0));let o=0;return r.forEach(i=>{a.set(i,o),o+=i.length}),a},Ox=(r=Vr)=>Mx().getRandomValues(Al(r)),Zi=BigInt,Gn=(r,a,o,i="bad number: out of range")=>W4(r)&&a<=r&&r{const o=r%a;return o>=0n?o:a+o},jx=r=>Ce(r,Ui),Hx=(r,a)=>{(r===0n||a<=0n)&&cr("no inverse n="+r+" mod="+a);let o=Ce(r,a),i=a,u=0n,l=1n;for(;o!==0n;){const A=i/o,c=i%o,h=u-l*A;i=o,o=c,u=l,l=h}return i===1n?Ce(u,a):cr("no inverse")},G4=r=>{const a=a0[r];return typeof a!="function"&&cr("hashes."+r+" not set"),a},Ah=r=>r instanceof Fr?r:cr("Point expected"),_u=2n**256n,Hr=class Hr{constructor(a,o,i,u){zn(this,"ex");zn(this,"ey");zn(this,"ez");zn(this,"et");const l=_u;this.ex=Gn(a,0n,l),this.ey=Gn(o,0n,l),this.ez=Gn(i,1n,l),this.et=Gn(u,0n,l),Object.freeze(this)}static fromAffine(a){return new Hr(a.x,a.y,1n,Ce(a.x*a.y))}static fromBytes(a,o=!1){const i=pu,u=Yu(Zn(a,Vr)),l=a[31];u[31]=l&-129;const A=Ju(u);Gn(A,0n,o?_u:Wt);const h=Ce(A*A),d=Ce(h-1n),x=Ce(i*h+1n);let{isValid:p,value:g}=K4(d,x);p||cr("bad point: y not sqrt");const C=(g&1n)===1n,w=(l&128)!==0;return!o&&g===0n&&w&&cr("bad point: x==0, isLastByteOdd"),w!==C&&(g=Ce(-g)),new Hr(g,A,1n,Ce(g*A))}assertValidity(){const a=hu,o=pu,i=this;if(i.is0())throw new Error("bad point: ZERO");const{ex:u,ey:l,ez:A,et:c}=i,h=Ce(u*u),d=Ce(l*l),x=Ce(A*A),p=Ce(x*x),g=Ce(h*a),C=Ce(x*Ce(g+d)),w=Ce(p+Ce(o*Ce(h*d)));if(C!==w)throw new Error("bad point: equation left != right (1)");const b=Ce(u*l),v=Ce(A*c);if(b!==v)throw new Error("bad point: equation left != right (2)");return this}equals(a){const{ex:o,ey:i,ez:u}=this,{ex:l,ey:A,ez:c}=Ah(a),h=Ce(o*c),d=Ce(l*u),x=Ce(i*c),p=Ce(A*u);return h===d&&x===p}is0(){return this.equals(Bo)}negate(){return new Hr(Ce(-this.ex),this.ey,this.ez,Ce(-this.et))}double(){const{ex:a,ey:o,ez:i}=this,u=hu,l=Ce(a*a),A=Ce(o*o),c=Ce(2n*Ce(i*i)),h=Ce(u*l),d=a+o,x=Ce(Ce(d*d)-l-A),p=h+A,g=p-c,C=h-A,w=Ce(x*g),b=Ce(p*C),v=Ce(x*C),S=Ce(g*p);return new Hr(w,b,S,v)}add(a){const{ex:o,ey:i,ez:u,et:l}=this,{ex:A,ey:c,ez:h,et:d}=Ah(a),x=hu,p=pu,g=Ce(o*A),C=Ce(i*c),w=Ce(l*p*d),b=Ce(u*h),v=Ce((o+i)*(A+c)-g-C),S=Ce(b-w),E=Ce(b+w),y=Ce(C-x*g),B=Ce(v*S),D=Ce(E*y),T=Ce(v*y),M=Ce(S*E);return new Hr(B,D,M,T)}multiply(a,o=!0){if(!o&&(a===0n||this.is0()))return Bo;if(Gn(a,1n,Ui),a===1n)return this;if(this.equals(rn))return aw(a).p;let i=Bo,u=rn;for(let l=this;a>0n;l=l.double(),a>>=1n)a&1n?i=i.add(l):o&&(u=u.add(l));return i}toAffine(){const{ex:a,ey:o,ez:i}=this;if(this.equals(Bo))return{x:0n,y:1n};const u=Hx(i,Wt);return Ce(i*u)!==1n&&cr("invalid inverse"),{x:Ce(a*u),y:Ce(o*u)}}toBytes(){const{x:a,y:o}=this.assertValidity().toAffine(),i=Lx(o);return i[31]|=a&1n?128:0,i}toHex(){return Zu(this.toBytes())}clearCofactor(){return this.multiply(Zi(U4),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let a=this.multiply(Ui/2n,!1).double();return Ui%2n&&(a=a.add(this)),a.is0()}static fromHex(a,o){return Hr.fromBytes(Sn(a),o)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}toRawBytes(){return this.toBytes()}};zn(Hr,"BASE"),zn(Hr,"ZERO");let Fr=Hr;const rn=new Fr(uh,dh,1n,Ce(uh*dh)),Bo=new Fr(0n,1n,1n,0n);Fr.BASE=rn;Fr.ZERO=Bo;const Lx=r=>Xu(Ix(Gn(r,0n,_u),ja)).reverse(),Ju=r=>Zi("0x"+Zu(Yu(Zn(r)).reverse())),jr=(r,a)=>{let o=r;for(;a-- >0n;)o*=o,o%=Wt;return o},$4=r=>{const o=r*r%Wt*r%Wt,i=jr(o,2n)*o%Wt,u=jr(i,1n)*r%Wt,l=jr(u,5n)*u%Wt,A=jr(l,10n)*l%Wt,c=jr(A,20n)*A%Wt,h=jr(c,40n)*c%Wt,d=jr(h,80n)*h%Wt,x=jr(d,80n)*h%Wt,p=jr(x,10n)*l%Wt;return{pow_p_5_8:jr(p,2n)*r%Wt,b2:o}},hh=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,K4=(r,a)=>{const o=Ce(a*a*a),i=Ce(o*o*a),u=$4(r*i).pow_p_5_8;let l=Ce(r*o*u);const A=Ce(a*l*l),c=l,h=Ce(l*hh),d=A===r,x=A===Ce(-r),p=A===Ce(-r*hh);return d&&(l=c),(x||p)&&(l=h),(Ce(l)&1n)===1n&&(l=Ce(-l)),{isValid:d||x,value:l}},Xi=r=>jx(Ju(r)),e0=(...r)=>a0.sha512Async(...r),t0=(...r)=>G4("sha512Sync")(...r),zx=r=>{const a=r.slice(0,Vr);a[0]&=248,a[31]&=127,a[31]|=64;const o=r.slice(Vr,ja),i=Xi(a),u=rn.multiply(i),l=u.toBytes();return{head:a,prefix:o,scalar:i,point:u,pointBytes:l}},r0=r=>e0(Sn(r,Vr)).then(zx),n0=r=>zx(t0(Sn(r,Vr))),Y4=r=>r0(r).then(a=>a.pointBytes),Z4=r=>n0(r).pointBytes,Vx=r=>e0(r.hashable).then(r.finish),Ux=r=>r.finish(t0(r.hashable)),Wx=(r,a,o)=>{const{pointBytes:i,scalar:u}=r,l=Xi(a),A=rn.multiply(l).toBytes();return{hashable:Ha(A,i,o),finish:d=>{const x=jx(l+Xi(d)*u);return Zn(Ha(A,Lx(x)),ja)}}},X4=async(r,a)=>{const o=Sn(r),i=await r0(a),u=await e0(i.prefix,o);return Vx(Wx(i,u,o))},J4=(r,a)=>{const o=Sn(r),i=n0(a),u=t0(i.prefix,o);return Ux(Wx(i,u,o))},o0={zip215:!0},qx=(r,a,o,i=o0)=>{r=Sn(r,ja),a=Sn(a),o=Sn(o,Vr);const{zip215:u}=i;let l,A,c,h,d=Uint8Array.of();try{l=Fr.fromHex(o,u),A=Fr.fromHex(r.slice(0,Vr),u),c=Ju(r.slice(Vr,ja)),h=rn.multiply(c,!1),d=Ha(A.toBytes(),l.toBytes(),a)}catch{}return{hashable:d,finish:p=>{if(h==null||!u&&l.isSmallOrder())return!1;const g=Xi(p);return A.add(l.multiply(g,!1)).add(h.negate()).clearCofactor().is0()}}},ew=async(r,a,o,i=o0)=>Vx(qx(r,a,o,i)),tw=(r,a,o,i=o0)=>Ux(qx(r,a,o,i)),a0={sha512Async:async(...r)=>{const a=Q4(),o=Ha(...r);return Al(await a.digest("SHA-512",o.buffer))},sha512Sync:void 0,bytesToHex:Zu,hexToBytes:Xu,concatBytes:Ha,mod:Ce,invert:Hx,randomBytes:Ox},rw={getExtendedPublicKeyAsync:r0,getExtendedPublicKey:n0,randomPrivateKey:()=>Ox(Vr),precompute:(r=8,a=rn)=>(a.multiply(3n),a)},Ji=8,nw=256,Qx=Math.ceil(nw/Ji)+1,Du=2**(Ji-1),ow=()=>{const r=[];let a=rn,o=a;for(let i=0;i{const o=a.negate();return r?o:a},aw=r=>{const a=ph||(ph=ow());let o=Bo,i=rn;const u=2**Ji,l=u,A=Zi(u-1),c=Zi(Ji);for(let h=0;h>=c,d>Du&&(d-=l,r+=1n);const x=h*Du,p=x,g=x+Math.abs(d)-1,C=h%2!==0,w=d<0;d===0?i=i.add(xh(C,a[p])):o=o.add(xh(w,a[g]))}return{p:o,f:i}},sw=Object.freeze(Object.defineProperty({__proto__:null,CURVE:Px,ExtendedPoint:Fr,Point:Fr,etc:a0,getPublicKey:Z4,getPublicKeyAsync:Y4,sign:J4,signAsync:X4,utils:rw,verify:tw,verifyAsync:ew},Symbol.toStringTag,{value:"Module"})),iw=Uh(sw);var Wn={},xu={exports:{}},mh;function lw(){return mh||(mh=1,(function(r,a){var o=(()=>{var u;var i=typeof document<"u"?(u=document.currentScript)==null?void 0:u.src:void 0;return(async function(l={}){var we;var A,c=l,h=typeof window=="object",d=typeof WorkerGlobalScope<"u",x=typeof process=="object"&&((we=process.versions)==null?void 0:we.node)&&process.type!="renderer";typeof __filename<"u"?i=__filename:d&&(i=self.location.href);var p="";function g($){return c.locateFile?c.locateFile($,p):p+$}var C,w;if(x){var b=Yi;p=__dirname+"/",w=$=>{$=y($)?new URL($):$;var oe=b.readFileSync($);return oe},C=async($,oe=!0)=>{$=y($)?new URL($):$;var pe=b.readFileSync($,oe?void 0:"utf8");return pe},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2)}else if(h||d){try{p=new URL(".",i).href}catch{}d&&(w=$=>{var oe=new XMLHttpRequest;return oe.open("GET",$,!1),oe.responseType="arraybuffer",oe.send(null),new Uint8Array(oe.response)}),C=async $=>{if(y($))return new Promise((pe,Te)=>{var De=new XMLHttpRequest;De.open("GET",$,!0),De.responseType="arraybuffer",De.onload=()=>{if(De.status==200||De.status==0&&De.response){pe(De.response);return}Te(De.status)},De.onerror=Te,De.send(null)});var oe=await fetch($,{credentials:"same-origin"});if(oe.ok)return oe.arrayBuffer();throw new Error(oe.status+" : "+oe.url)}}console.log.bind(console);var v=console.error.bind(console),S,E=!1,y=$=>$.startsWith("file://"),B,D,T,M,P,j=!1;function I(){var $=T.buffer;c.HEAP8=M=new Int8Array($),c.HEAPU8=P=new Uint8Array($),c.HEAP32=new Int32Array($),c.HEAPU32=new Uint32Array($),new BigInt64Array($),new BigUint64Array($)}function N(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ne(c.preRun.shift());le(Me)}function z(){j=!0,at.b()}function Q(){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)Se(c.postRun.shift());le(te)}var X=0,se=null;function J($){var oe;X++,(oe=c.monitorRunDependencies)==null||oe.call(c,X)}function ne($){var pe;if(X--,(pe=c.monitorRunDependencies)==null||pe.call(c,X),X==0&&se){var oe=se;se=null,oe()}}function q($){var pe;(pe=c.onAbort)==null||pe.call(c,$),$="Aborted("+$+")",v($),E=!0,$+=". Build with -sASSERTIONS for more info.";var oe=new WebAssembly.RuntimeError($);throw D==null||D(oe),oe}var ae;function ee(){return g("orlp-ed25519.wasm")}function k($){if($==ae&&S)return new Uint8Array(S);if(w)return w($);throw"both async and sync fetching of the wasm failed"}async function H($){if(!S)try{var oe=await C($);return new Uint8Array(oe)}catch{}return k($)}async function V($,oe){try{var pe=await H($),Te=await WebAssembly.instantiate(pe,oe);return Te}catch(De){v(`failed to asynchronously prepare wasm: ${De}`),q(De)}}async function W($,oe,pe){if(!$&&typeof WebAssembly.instantiateStreaming=="function"&&!y(oe)&&!x)try{var Te=fetch(oe,{credentials:"same-origin"}),De=await WebAssembly.instantiateStreaming(Te,pe);return De}catch(je){v(`wasm streaming compile failed: ${je}`),v("falling back to ArrayBuffer instantiation")}return V(oe,pe)}function de(){return{a:Ct}}async function re(){function $(je,Pe){return at=je.exports,T=at.a,I(),or(at),ne(),at}J();function oe(je){return $(je.instance)}var pe=de();if(c.instantiateWasm)return new Promise((je,Pe)=>{c.instantiateWasm(pe,(Ie,wt)=>{je($(Ie))})});ae??(ae=ee());var Te=await W(S,ae,pe),De=oe(Te);return De}var le=$=>{for(;$.length>0;)$.shift()(c)},te=[],Se=$=>te.push($),Me=[],Ne=$=>Me.push($),Oe=$=>yt($),We=()=>Kt(),Re=$=>{var oe=c["_"+$];return oe},Bt=($,oe)=>{M.set($,oe)},xt=$=>{for(var oe=0,pe=0;pe<$.length;++pe){var Te=$.charCodeAt(pe);Te<=127?oe++:Te<=2047?oe+=2:Te>=55296&&Te<=57343?(oe+=4,++pe):oe+=3}return oe},_t=($,oe,pe,Te)=>{if(!(Te>0))return 0;for(var De=pe,je=pe+Te-1,Pe=0;Pe<$.length;++Pe){var Ie=$.codePointAt(Pe);if(Ie<=127){if(pe>=je)break;oe[pe++]=Ie}else if(Ie<=2047){if(pe+1>=je)break;oe[pe++]=192|Ie>>6,oe[pe++]=128|Ie&63}else if(Ie<=65535){if(pe+2>=je)break;oe[pe++]=224|Ie>>12,oe[pe++]=128|Ie>>6&63,oe[pe++]=128|Ie&63}else{if(pe+3>=je)break;oe[pe++]=240|Ie>>18,oe[pe++]=128|Ie>>12&63,oe[pe++]=128|Ie>>6&63,oe[pe++]=128|Ie&63,Pe++}}return oe[pe]=0,pe-De},qt=($,oe,pe)=>_t($,P,oe,pe),ct=$=>Ht($),Nt=$=>{var oe=xt($)+1,pe=ct(oe);return qt($,pe,oe),pe},rt=typeof TextDecoder<"u"?new TextDecoder:void 0,Qe=($,oe=0,pe=NaN)=>{for(var Te=oe+pe,De=oe;$[De]&&!(De>=Te);)++De;if(De-oe>16&&$.buffer&&rt)return rt.decode($.subarray(oe,De));for(var je="";oe>10,56320|Ee&1023)}}return je},ut=($,oe)=>$?Qe(P,$,oe):"",$t=($,oe,pe,Te,De)=>{var je={string:Ve=>{var Je=0;return Ve!=null&&Ve!==0&&(Je=Nt(Ve)),Je},array:Ve=>{var Je=ct(Ve.length);return Bt(Ve,Je),Je}};function Pe(Ve){return oe==="string"?ut(Ve):oe==="boolean"?!!Ve:Ve}var Ie=Re($),wt=[],Ee=0;if(Te)for(var ze=0;ze{var De=!pe||pe.every(Pe=>Pe==="number"||Pe==="boolean"),je=oe!=="string";return je&&De&&!Te?Re($):(...Pe)=>$t($,oe,pe,Pe)};c.noExitRuntime&&c.noExitRuntime,c.print&&c.print,c.printErr&&(v=c.printErr),c.wasmBinary&&(S=c.wasmBinary),c.arguments&&c.arguments,c.thisProgram&&c.thisProgram,c.ccall=$t,c.cwrap=vr;var yt,Ht,Kt;function or($){c._orlp_derive_public_key=$.c,c._orlp_validate_keypair=$.d,c._orlp_sign=$.e,c._orlp_verify=$.f,yt=$.g,Ht=$.h,Kt=$.i}var Ct={},at=await re();function Y(){if(X>0){se=Y;return}if(N(),X>0){se=Y;return}function $(){var oe;c.calledRun=!0,!E&&(z(),B==null||B(c),(oe=c.onRuntimeInitialized)==null||oe.call(c),Q())}c.setStatus?(c.setStatus("Running..."),setTimeout(()=>{setTimeout(()=>c.setStatus(""),1),$()},1)):$()}function fe(){if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.shift()()}return fe(),Y(),j?A=c:A=new Promise(($,oe)=>{B=$,D=oe}),A})})();r.exports=o,r.exports.default=o})(xu)),xu.exports}var gh;function s0(){if(gh)return Wn;gh=1,Object.defineProperty(Wn,"__esModule",{value:!0}),Wn.derivePublicKey=i,Wn.validateKeyPair=u,Wn.sign=l,Wn.verify=A;const r=jt(),a=lw();async function o(){return await a()}async function i(c){const h=await o(),d=(0,r.hexToBytes)(c);if(d.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${d.length}`);const x=1024,p=1088;if(h.HEAPU8.set(d,x),h.ccall("orlp_derive_public_key","number",["number","number"],[p,x])!==0)throw new Error("orlp key derivation failed: invalid private key");const C=new Uint8Array(32);return C.set(h.HEAPU8.subarray(p,p+32)),(0,r.bytesToHex)(C)}async function u(c,h){try{const d=await o(),x=(0,r.hexToBytes)(c),p=(0,r.hexToBytes)(h);if(x.length!==64||p.length!==32)return!1;const g=2048,C=2112;return d.HEAPU8.set(x,g),d.HEAPU8.set(p,C),d.ccall("orlp_validate_keypair","number",["number","number"],[C,g])===1}catch{return!1}}async function l(c,h,d){const x=await o(),p=(0,r.hexToBytes)(c),g=(0,r.hexToBytes)(h),C=(0,r.hexToBytes)(d);if(g.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${g.length}`);if(C.length!==32)throw new Error(`Invalid public key length: expected 32 bytes, got ${C.length}`);const w=1e5,b=2e5,v=3e5,S=4e5;x.HEAPU8.set(p,w),x.HEAPU8.set(g,b),x.HEAPU8.set(C,v),x.ccall("orlp_sign","void",["number","number","number","number","number"],[S,w,p.length,v,b]);const E=new Uint8Array(64);return E.set(x.HEAPU8.subarray(S,S+64)),(0,r.bytesToHex)(E)}async function A(c,h,d){try{const x=await o(),p=(0,r.hexToBytes)(c),g=(0,r.hexToBytes)(h),C=(0,r.hexToBytes)(d);if(p.length!==64||C.length!==32)return!1;const w=5e5,b=6e5,v=7e5;return x.HEAPU8.set(p,b),x.HEAPU8.set(g,w),x.HEAPU8.set(C,v),x.ccall("orlp_verify","number",["number","number","number","number"],[b,w,g.length,v])===1}catch{return!1}}return Wn}var vh;function Gx(){if(vh)return Dr;vh=1;var r=Dr&&Dr.__createBinding||(Object.create?(function(d,x,p,g){g===void 0&&(g=p);var C=Object.getOwnPropertyDescriptor(x,p);(!C||("get"in C?!x.__esModule:C.writable||C.configurable))&&(C={enumerable:!0,get:function(){return x[p]}}),Object.defineProperty(d,g,C)}):(function(d,x,p,g){g===void 0&&(g=p),d[g]=x[p]})),a=Dr&&Dr.__setModuleDefault||(Object.create?(function(d,x){Object.defineProperty(d,"default",{enumerable:!0,value:x})}):function(d,x){d.default=x}),o=Dr&&Dr.__importStar||(function(){var d=function(x){return d=Object.getOwnPropertyNames||function(p){var g=[];for(var C in p)Object.prototype.hasOwnProperty.call(p,C)&&(g[g.length]=C);return g},d(x)};return function(x){if(x&&x.__esModule)return x;var p={};if(x!=null)for(var g=d(x),C=0;C>>24&255,C[w*4+1]=b>>>16&255,C[w*4+2]=b>>>8&255,C[w*4+3]=b&255}return C}catch{throw new Error("No SHA-512 implementation available for synchronous operation")}}i.etc.sha512Async=A;try{i.etc.sha512Sync=c}catch(d){console.debug("Could not set up synchronous SHA-512:",d)}class h{static async verifyAdvertisementSignature(x,p,g,C){try{const w=(0,u.hexToBytes)(x),b=(0,u.hexToBytes)(p),v=(0,u.hexToBytes)(C),S=this.constructAdvertSignedMessage(x,g,v);return await i.verify(b,S,w)}catch(w){return console.error("Ed25519 signature verification failed:",w),!1}}static constructAdvertSignedMessage(x,p,g){const C=(0,u.hexToBytes)(x),w=new Uint8Array(4);w[0]=p&255,w[1]=p>>8&255,w[2]=p>>16&255,w[3]=p>>24&255;const b=new Uint8Array(36+g.length);return b.set(C,0),b.set(w,32),b.set(g,36),b}static getSignedMessageDescription(x,p,g){return`Public Key: ${x} + Timestamp: ${p} (${new Date(p*1e3).toISOString()}) + App Data: ${g}`}static getSignedMessageHex(x,p,g){const C=(0,u.hexToBytes)(g),w=this.constructAdvertSignedMessage(x,p,C);return(0,u.bytesToHex)(w)}static async derivePublicKey(x){try{const p=(0,u.hexToBytes)(x);if(p.length!==64)throw new Error(`Invalid private key length: expected 64 bytes, got ${p.length}`);return await(0,l.derivePublicKey)(x)}catch(p){throw new Error(`Failed to derive public key: ${p instanceof Error?p.message:"Unknown error"}`)}}static derivePublicKeySync(x){try{const p=(0,u.hexToBytes)(x);throw p.length!==64?new Error(`Invalid private key length: expected 64 bytes, got ${p.length}`):new Error("Synchronous key derivation not supported with WASM. Use derivePublicKey() instead.")}catch(p){throw new Error(`Failed to derive public key: ${p instanceof Error?p.message:"Unknown error"}`)}}static async validateKeyPair(x,p){try{return await(0,l.validateKeyPair)(x,p)}catch{return!1}}}return Dr.Ed25519SignatureVerifier=h,Dr}var yh;function cw(){if(yh)return wa;yh=1,Object.defineProperty(wa,"__esModule",{value:!0}),wa.AdvertPayloadDecoder=void 0;const r=ur(),a=jt(),o=Oa(),i=Gx();class u{static decode(A,c){try{if(A.length<101){const S={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:["Advertisement payload too short"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}};return c!=null&&c.includeSegments&&(S.segments=[{name:"Invalid Advert Data",description:"Advert payload too short (minimum 101 bytes required)",startByte:c.segmentOffset||0,endByte:(c.segmentOffset||0)+A.length-1,value:(0,a.bytesToHex)(A)}]),S}const h=[],d=(c==null?void 0:c.segmentOffset)||0;let x=0;const p=(0,a.bytesToHex)(A.subarray(x,x+32));c!=null&&c.includeSegments&&h.push({name:"Public Key",description:"Ed25519 public key",startByte:d+x,endByte:d+x+31,value:p}),x+=32;const g=this.readUint32LE(A,x);if(c!=null&&c.includeSegments){const S=new Date(g*1e3);h.push({name:"Timestamp",description:`${g} (${S.toISOString().slice(0,19)}Z)`,startByte:d+x,endByte:d+x+3,value:(0,a.bytesToHex)(A.subarray(x,x+4))})}x+=4;const C=(0,a.bytesToHex)(A.subarray(x,x+64));c!=null&&c.includeSegments&&h.push({name:"Signature",description:"Ed25519 signature",startByte:d+x,endByte:d+x+63,value:C}),x+=64;const w=A[x];if(c!=null&&c.includeSegments){const S=w.toString(2).padStart(8,"0"),E=this.parseDeviceRole(w),B=` | Bits 0-3 (Role): ${(0,o.getDeviceRoleName)(E)} | Bit 4 (Location): ${w&r.AdvertFlags.HasLocation?"Yes":"No"} | Bit 7 (Name): ${w&r.AdvertFlags.HasName?"Yes":"No"}`;h.push({name:"App Flags",description:`Binary: ${S}${B}`,startByte:d+x,endByte:d+x,value:w.toString(16).padStart(2,"0").toUpperCase()})}x+=1;const b={type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!0,publicKey:p,timestamp:g,signature:C,appData:{flags:w,deviceRole:this.parseDeviceRole(w),hasLocation:!!(w&r.AdvertFlags.HasLocation),hasName:!!(w&r.AdvertFlags.HasName)}};let v=x;if(w&r.AdvertFlags.HasLocation&&A.length>=v+8){const S=this.readInt32LE(A,v)/1e6,E=this.readInt32LE(A,v+4)/1e6;b.appData.location={latitude:Math.round(S*1e6)/1e6,longitude:Math.round(E*1e6)/1e6},c!=null&&c.includeSegments&&(h.push({name:"Latitude",description:`${S}° (${S})`,startByte:d+v,endByte:d+v+3,value:(0,a.bytesToHex)(A.subarray(v,v+4))}),h.push({name:"Longitude",description:`${E}° (${E})`,startByte:d+v+4,endByte:d+v+7,value:(0,a.bytesToHex)(A.subarray(v+4,v+8))})),v+=8}if(w&r.AdvertFlags.HasFeature1&&(v+=2),w&r.AdvertFlags.HasFeature2&&(v+=2),w&r.AdvertFlags.HasName&&A.length>v){const S=A.subarray(v),E=new TextDecoder("utf-8").decode(S).replace(/\0.*$/,"");b.appData.name=this.sanitizeControlCharacters(E)||E,c!=null&&c.includeSegments&&h.push({name:"Node Name",description:`Node name: "${b.appData.name}"`,startByte:d+v,endByte:d+A.length-1,value:(0,a.bytesToHex)(S)})}return c!=null&&c.includeSegments&&(b.segments=h),b}catch(h){return{type:r.PayloadType.Advert,version:r.PayloadVersion.Version1,isValid:!1,errors:[h instanceof Error?h.message:"Failed to decode advertisement payload"],publicKey:"",timestamp:0,signature:"",appData:{flags:0,deviceRole:r.DeviceRole.ChatNode,hasLocation:!1,hasName:!1}}}}static async decodeWithVerification(A,c){const h=this.decode(A,c);if(!h||!h.isValid)return h;try{const x=A.subarray(100),p=(0,a.bytesToHex)(x),g=await i.Ed25519SignatureVerifier.verifyAdvertisementSignature(h.publicKey,h.signature,h.timestamp,p);h.signatureValid=g,g||(h.signatureError="Ed25519 signature verification failed",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Invalid Ed25519 signature"))}catch(d){h.signatureValid=!1,h.signatureError=d instanceof Error?d.message:"Signature verification error",h.isValid=!1,h.errors||(h.errors=[]),h.errors.push("Signature verification failed: "+(d instanceof Error?d.message:"Unknown error"))}return h}static parseDeviceRole(A){switch(A&15){case 1:return r.DeviceRole.ChatNode;case 2:return r.DeviceRole.Repeater;case 3:return r.DeviceRole.RoomServer;case 4:return r.DeviceRole.Sensor;default:return r.DeviceRole.ChatNode}}static readUint32LE(A,c){return A[c]|A[c+1]<<8|A[c+2]<<16|A[c+3]<<24}static readInt32LE(A,c){const h=this.readUint32LE(A,c);return h>2147483647?h-4294967296:h}static sanitizeControlCharacters(A){return A&&A.trim().replace(/[\x00-\x1F\x7F]/g,"")||null}}return wa.AdvertPayloadDecoder=u,wa}var ba={},Ch;function uw(){if(Ch)return ba;Ch=1,Object.defineProperty(ba,"__esModule",{value:!0}),ba.TracePayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u,l,A){try{if(u.length<9){const E={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:["Trace payload too short (need at least tag(4) + auth(4) + flags(1))"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]};return A!=null&&A.includeSegments&&(E.segments=[{name:"Invalid Trace Data",description:"Trace payload too short (minimum 9 bytes required)",startByte:A.segmentOffset||0,endByte:(A.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),E}let c=0;const h=[],d=(A==null?void 0:A.segmentOffset)||0,x=this.readUint32LE(u,c),p=(0,a.numberToHex)(x,8);A!=null&&A.includeSegments&&h.push({name:"Trace Tag",description:`Unique identifier for this trace: 0x${x.toString(16).padStart(8,"0")}`,startByte:d+c,endByte:d+c+3,value:(0,a.bytesToHex)(u.slice(c,c+4))}),c+=4;const g=this.readUint32LE(u,c);A!=null&&A.includeSegments&&h.push({name:"Auth Code",description:`Authentication/verification code: ${g}`,startByte:d+c,endByte:d+c+3,value:(0,a.bytesToHex)(u.slice(c,c+4))}),c+=4;const C=u[c];A!=null&&A.includeSegments&&h.push({name:"Flags",description:`Application-defined control flags: 0x${C.toString(16).padStart(2,"0")} (${C.toString(2).padStart(8,"0")}b)`,startByte:d+c,endByte:d+c,value:C.toString(16).padStart(2,"0").toUpperCase()}),c+=1;const w=[],b=c;for(;c0){const E=w.join(" ");h.push({name:"Path Hashes",description:`Node hashes in trace path: ${E}`,startByte:d+b,endByte:d+u.length-1,value:(0,a.bytesToHex)(u.slice(b))})}let v;l&&l.length>0&&(v=l.map(E=>{const y=parseInt(E,16);return(y>127?y-256:y)/4}));const S={type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!0,traceTag:p,authCode:g,flags:C,pathHashes:w,snrValues:v};return A!=null&&A.includeSegments&&(S.segments=h),S}catch(c){return{type:r.PayloadType.Trace,version:r.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode trace payload"],traceTag:"00000000",authCode:0,flags:0,pathHashes:[]}}}static readUint32LE(u,l){return u[l]|u[l+1]<<8|u[l+2]<<16|u[l+3]<<24}}return ba.TracePayloadDecoder=o,ba}var Ea={},wh;function dw(){if(wh)return Ea;wh=1,Object.defineProperty(Ea,"__esModule",{value:!0}),Ea.GroupTextPayloadDecoder=void 0;const r=ur(),a=Ku(),o=jt();class i{static decode(l,A){try{if(l.length<3){const w={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:["GroupText payload too short (need at least channel_hash(1) + MAC(2))"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return A!=null&&A.includeSegments&&(w.segments=[{name:"Invalid GroupText Data",description:"GroupText payload too short (minimum 3 bytes required)",startByte:A.segmentOffset||0,endByte:(A.segmentOffset||0)+l.length-1,value:(0,o.bytesToHex)(l)}]),w}const c=[],h=(A==null?void 0:A.segmentOffset)||0;let d=0;const x=(0,o.byteToHex)(l[d]);A!=null&&A.includeSegments&&c.push({name:"Channel Hash",description:"First byte of SHA256 of channel's shared key",startByte:h+d,endByte:h+d,value:x}),d+=1;const p=(0,o.bytesToHex)(l.subarray(d,d+2));A!=null&&A.includeSegments&&c.push({name:"Cipher MAC",description:"MAC for encrypted data",startByte:h+d,endByte:h+d+1,value:p}),d+=2;const g=(0,o.bytesToHex)(l.subarray(d));A!=null&&A.includeSegments&&l.length>d&&c.push({name:"Ciphertext",description:"Encrypted message content (timestamp + flags + message)",startByte:h+d,endByte:h+l.length-1,value:g});const C={type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!0,channelHash:x,cipherMac:p,ciphertext:g,ciphertextLength:l.length-3};if(A!=null&&A.keyStore&&A.keyStore.hasChannelKey(x)){const w=A.keyStore.getChannelKeys(x);for(const b of w){const v=a.ChannelCrypto.decryptGroupTextMessage(g,p,b);if(v.success&&v.data){C.decrypted={timestamp:v.data.timestamp,flags:v.data.flags,sender:v.data.sender,message:v.data.message};break}}}return A!=null&&A.includeSegments&&(C.segments=c),C}catch(c){return{type:r.PayloadType.GroupText,version:r.PayloadVersion.Version1,isValid:!1,errors:[c instanceof Error?c.message:"Failed to decode GroupText payload"],channelHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ea.GroupTextPayloadDecoder=i,Ea}var ka={},bh;function fw(){if(bh)return ka;bh=1,Object.defineProperty(ka,"__esModule",{value:!0}),ka.RequestPayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u,l){try{if(u.length<4){const w={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:["Request payload too short (minimum 4 bytes: dest hash + source hash + MAC)"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid Request Data",description:"Request payload too short (minimum 4 bytes required: 1 for dest hash + 1 for source hash + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),w}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const x=(0,a.bytesToHex)(u.subarray(h,h+1));l!=null&&l.includeSegments&&A.push({name:"Source Hash",description:`First byte of source node public key: 0x${x}`,startByte:c+h,endByte:c+h,value:x}),h+=1;const p=(0,a.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:p}),h+=2;const g=(0,a.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&A.push({name:"Ciphertext",description:`Encrypted message data (${u.length-h} bytes). Contains encrypted plaintext with this structure: • Timestamp (4 bytes) - send time as unix timestamp • Request Type (1 byte) - type of request (GetStats, GetTelemetryData, etc.) -• Request Data (remaining bytes) - additional request-specific data`,startByte:c+h,endByte:c+u.length-1,value:g});const w={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!0,timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:d,sourceHash:p,cipherMac:x,ciphertext:g};return l!=null&&l.includeSegments&&(w.segments=A),w}catch(A){return{type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode request payload"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""}}}}return ka.RequestPayloadDecoder=o,ka}var Sa={},Eh;function Aw(){if(Eh)return Sa;Eh=1,Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.ResponsePayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u,l){try{if(u.length<4){const b={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:["Response payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(b.segments=[{name:"Invalid Response Data",description:"Response payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),b}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const p=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:p}),h+=1;const x=(0,a.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:x}),h+=2;const g=(0,a.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&A.push({name:"Ciphertext",description:"Encrypted response data (tag + content)",startByte:c+h,endByte:c+u.length-1,value:g});const w={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:p,cipherMac:x,ciphertext:g,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(w.segments=A),w}catch(A){return{type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode response payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Sa.ResponsePayloadDecoder=o,Sa}var Ba={},kh;function hw(){if(kh)return Ba;kh=1,Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.AnonRequestPayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u,l){try{if(u.length<35){const b={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:["AnonRequest payload too short (minimum 35 bytes: dest + public key + MAC)"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(b.segments=[{name:"Invalid AnonRequest Data",description:"AnonRequest payload too short (minimum 35 bytes required: 1 for dest hash + 32 for public key + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),b}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.byteToHex)(u[0]);l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const p=(0,a.bytesToHex)(u.subarray(1,33));l!=null&&l.includeSegments&&A.push({name:"Sender Public Key",description:"Ed25519 public key of the sender (32 bytes)",startByte:c+h,endByte:c+h+31,value:p}),h+=32;const x=(0,a.bytesToHex)(u.subarray(33,35));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:x}),h+=2;const g=(0,a.bytesToHex)(u.subarray(35));l!=null&&l.includeSegments&&u.length>35&&A.push({name:"Ciphertext",description:`Encrypted message data (${u.length-35} bytes). Contains encrypted plaintext with this structure: +• Request Data (remaining bytes) - additional request-specific data`,startByte:c+h,endByte:c+u.length-1,value:g});const C={type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!0,timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:d,sourceHash:x,cipherMac:p,ciphertext:g};return l!=null&&l.includeSegments&&(C.segments=A),C}catch(A){return{type:r.PayloadType.Request,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode request payload"],timestamp:0,requestType:r.RequestType.GetStats,requestData:"",destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:""}}}}return ka.RequestPayloadDecoder=o,ka}var Sa={},Eh;function Aw(){if(Eh)return Sa;Eh=1,Object.defineProperty(Sa,"__esModule",{value:!0}),Sa.ResponsePayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u,l){try{if(u.length<4){const w={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:["Response payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid Response Data",description:"Response payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),w}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const x=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:x}),h+=1;const p=(0,a.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:p}),h+=2;const g=(0,a.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&A.push({name:"Ciphertext",description:"Encrypted response data (tag + content)",startByte:c+h,endByte:c+u.length-1,value:g});const C={type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:x,cipherMac:p,ciphertext:g,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(C.segments=A),C}catch(A){return{type:r.PayloadType.Response,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode response payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Sa.ResponsePayloadDecoder=o,Sa}var Ba={},kh;function hw(){if(kh)return Ba;kh=1,Object.defineProperty(Ba,"__esModule",{value:!0}),Ba.AnonRequestPayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u,l){try{if(u.length<35){const w={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:["AnonRequest payload too short (minimum 35 bytes: dest + public key + MAC)"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid AnonRequest Data",description:"AnonRequest payload too short (minimum 35 bytes required: 1 for dest hash + 32 for public key + 2 for MAC)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),w}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.byteToHex)(u[0]);l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:`First byte of destination node public key: 0x${d}`,startByte:c+h,endByte:c+h,value:d}),h+=1;const x=(0,a.bytesToHex)(u.subarray(1,33));l!=null&&l.includeSegments&&A.push({name:"Sender Public Key",description:"Ed25519 public key of the sender (32 bytes)",startByte:c+h,endByte:c+h+31,value:x}),h+=32;const p=(0,a.bytesToHex)(u.subarray(33,35));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data verification (2 bytes)",startByte:c+h,endByte:c+h+1,value:p}),h+=2;const g=(0,a.bytesToHex)(u.subarray(35));l!=null&&l.includeSegments&&u.length>35&&A.push({name:"Ciphertext",description:`Encrypted message data (${u.length-35} bytes). Contains encrypted plaintext with this structure: • Timestamp (4 bytes) - send time as unix timestamp • Sync Timestamp (4 bytes) - room server only, sender's "sync messages SINCE x" timestamp -• Password (remaining bytes) - password for repeater/room`,startByte:c+h,endByte:c+u.length-1,value:g});const w={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:d,senderPublicKey:p,cipherMac:x,ciphertext:g,ciphertextLength:u.length-35};return l!=null&&l.includeSegments&&(w.segments=A),w}catch(A){return{type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode AnonRequest payload"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ba.AnonRequestPayloadDecoder=o,Ba}var _a={},Sh;function pw(){if(Sh)return _a;Sh=1,Object.defineProperty(_a,"__esModule",{value:!0}),_a.AckPayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u,l){try{if(u.length<4){const p={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:["Ack payload too short (minimum 4 bytes for checksum)"],checksum:""};return l!=null&&l.includeSegments&&(p.segments=[{name:"Invalid Ack Data",description:"Ack payload too short (minimum 4 bytes required for checksum)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),p}const A=[],c=(l==null?void 0:l.segmentOffset)||0,h=(0,a.bytesToHex)(u.subarray(0,4));l!=null&&l.includeSegments&&A.push({name:"Checksum",description:`CRC checksum of message timestamp, text, and sender pubkey: 0x${h}`,startByte:c,endByte:c+3,value:h}),l!=null&&l.includeSegments&&u.length>4&&A.push({name:"Additional Data",description:"Extra data in Ack payload",startByte:c+4,endByte:c+u.length-1,value:(0,a.bytesToHex)(u.subarray(4))});const d={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!0,checksum:h};return l!=null&&l.includeSegments&&(d.segments=A),d}catch(A){return{type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode Ack payload"],checksum:""}}}}return _a.AckPayloadDecoder=o,_a}var Da={},Bh;function xw(){if(Bh)return Da;Bh=1,Object.defineProperty(Da,"__esModule",{value:!0}),Da.PathPayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u){try{if(u.length<2)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:["Path payload too short (minimum 2 bytes: path length + extra type)"],pathLength:0,pathHashes:[],extraType:0,extraData:""};const l=u[0];if(u.length<1+l+1)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[`Path payload too short (need ${1+l+1} bytes for path length + path + extra type)`],pathLength:l,pathHashes:[],extraType:0,extraData:""};const A=[];for(let d=0;d1+l+1&&(h=(0,a.bytesToHex)(u.subarray(1+l+1))),{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!0,pathLength:l,pathHashes:A,extraType:c,extraData:h}}catch(l){return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[l instanceof Error?l.message:"Failed to decode Path payload"],pathLength:0,pathHashes:[],extraType:0,extraData:""}}}}return Da.PathPayloadDecoder=o,Da}var Fa={},_h;function mw(){if(_h)return Fa;_h=1,Object.defineProperty(Fa,"__esModule",{value:!0}),Fa.TextMessagePayloadDecoder=void 0;const r=ur(),a=Mt();class o{static decode(u,l){try{if(u.length<4){const b={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:["TextMessage payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(b.segments=[{name:"Invalid TextMessage Data",description:"TextMessage payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),b}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const p=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:p}),h+=1;const x=(0,a.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:x}),h+=2;const g=(0,a.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&A.push({name:"Ciphertext",description:"Encrypted message data (timestamp + message text)",startByte:c+h,endByte:c+u.length-1,value:g});const w={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:p,cipherMac:x,ciphertext:g,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(w.segments=A),w}catch(A){return{type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode TextMessage payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Fa.TextMessagePayloadDecoder=o,Fa}var Ra={},Dh;function gw(){if(Dh)return Ra;Dh=1,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.ControlPayloadDecoder=void 0;const r=ur(),a=Mt(),o=Oa();class i{static decode(l,A){try{if(l.length<1)return this.createErrorPayload("Control payload too short (minimum 1 byte required)",l,A);const h=l[0]&240;switch(h){case r.ControlSubType.NodeDiscoverReq:return this.decodeDiscoverReq(l,A);case r.ControlSubType.NodeDiscoverResp:return this.decodeDiscoverResp(l,A);default:return this.createErrorPayload(`Unknown control sub-type: 0x${h.toString(16).padStart(2,"0")}`,l,A)}}catch(c){return this.createErrorPayload(c instanceof Error?c.message:"Failed to decode control payload",l,A)}}static decodeDiscoverReq(l,A){const c=[],h=(A==null?void 0:A.segmentOffset)??0;if(l.length<6){const S={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_REQ payload too short (minimum 6 bytes required)"],subType:r.ControlSubType.NodeDiscoverReq,rawFlags:l[0],prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return A!=null&&A.includeSegments&&(S.segments=[{name:"Invalid DISCOVER_REQ Data",description:"DISCOVER_REQ payload too short (minimum 6 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,a.bytesToHex)(l)}]),S}let d=0;const p=l[d],x=(p&1)!==0;A!=null&&A.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_REQ (0x8) | Prefix Only: ${x}`,startByte:h+d,endByte:h+d,value:p.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const g=l[d],w=this.parseTypeFilter(g);A!=null&&A.includeSegments&&c.push({name:"Type Filter",description:`Filter mask: 0b${g.toString(2).padStart(8,"0")} | Types: ${w.length>0?w.join(", "):"None"}`,startByte:h+d,endByte:h+d,value:g.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const b=this.readUint32LE(l,d);A!=null&&A.includeSegments&&c.push({name:"Tag",description:`Random tag for response matching: 0x${b.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,a.bytesToHex)(l.slice(d,d+4))}),d+=4;let k=0;if(l.length>=d+4&&(k=this.readUint32LE(l,d),A!=null&&A.includeSegments)){const S=k>0?new Date(k*1e3).toISOString().slice(0,19)+"Z":"N/A";c.push({name:"Since",description:`Filter timestamp: ${k} (${S})`,startByte:h+d,endByte:h+d+3,value:(0,a.bytesToHex)(l.slice(d,d+4))})}const v={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverReq,rawFlags:p,prefixOnly:x,typeFilter:g,typeFilterNames:w,tag:b,since:k};return A!=null&&A.includeSegments&&(v.segments=c),v}static decodeDiscoverResp(l,A){const c=[],h=(A==null?void 0:A.segmentOffset)??0;if(l.length<14){const T={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_RESP payload too short (minimum 14 bytes required)"],subType:r.ControlSubType.NodeDiscoverResp,rawFlags:l.length>0?l[0]:0,nodeType:r.DeviceRole.Unknown,nodeTypeName:"Unknown",snr:0,tag:0,publicKey:"",publicKeyLength:0};return A!=null&&A.includeSegments&&(T.segments=[{name:"Invalid DISCOVER_RESP Data",description:"DISCOVER_RESP payload too short (minimum 14 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,a.bytesToHex)(l)}]),T}let d=0;const p=l[d],x=p&15,g=(0,o.getDeviceRoleName)(x);A!=null&&A.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_RESP (0x9) | Node Type: ${g}`,startByte:h+d,endByte:h+d,value:p.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const w=l[d],b=w>127?w-256:w,k=b/4;A!=null&&A.includeSegments&&c.push({name:"SNR",description:`Inbound SNR: ${k.toFixed(2)} dB (raw: ${w}, signed: ${b})`,startByte:h+d,endByte:h+d,value:w.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const v=this.readUint32LE(l,d);A!=null&&A.includeSegments&&c.push({name:"Tag",description:`Reflected tag from request: 0x${v.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,a.bytesToHex)(l.slice(d,d+4))}),d+=4;const E=l.length-d,C=l.slice(d,d+E),B=(0,a.bytesToHex)(C);if(A!=null&&A.includeSegments){const T=E===32?"Full Public Key":"Public Key Prefix";c.push({name:T,description:`${T} (${E} bytes)`,startByte:h+d,endByte:h+d+E-1,value:B})}const D={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverResp,rawFlags:p,nodeType:x,nodeTypeName:g,snr:k,tag:v,publicKey:B,publicKeyLength:E};return A!=null&&A.includeSegments&&(D.segments=c),D}static parseTypeFilter(l){const A=[];return l&1<0?A[0]:0,prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return c!=null&&c.includeSegments&&(h.segments=[{name:"Invalid Control Data",description:l,startByte:c.segmentOffset??0,endByte:(c.segmentOffset??0)+A.length-1,value:(0,a.bytesToHex)(A)}]),h}static readUint32LE(l,A){return(l[A]|l[A+1]<<8|l[A+2]<<16|l[A+3]<<24)>>>0}}return Ra.ControlPayloadDecoder=i,Ra}var Fh;function Rh(){if(Fh)return va;Fh=1,Object.defineProperty(va,"__esModule",{value:!0}),va.MeshCorePacketDecoder=void 0;const r=ur(),a=Mt(),o=Oa(),i=Tx(),u=cw(),l=uw(),A=dw(),c=fw(),h=Aw(),d=hw(),p=pw(),x=xw(),g=mw(),w=gw();class b{static decode(v,S){return this.parseInternal(v,!1,S).packet}static async decodeWithVerification(v,S){return(await this.parseInternalAsync(v,!1,S)).packet}static analyzeStructure(v,S){return this.parseInternal(v,!0,S).structure}static async analyzeStructureWithVerification(v,S){return(await this.parseInternalAsync(v,!0,S)).structure}static parseInternal(v,S,E){const C=(0,a.hexToBytes)(v),B=[];if(C.length<2){const D={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:C.length,isValid:!1,errors:["Packet too short (minimum 2 bytes required)"]},T={segments:[],totalBytes:C.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:D,structure:T}}try{let D=0;const T=C[0],I=T&3,P=T>>2&15,H=T>>6&3;S&&B.push({name:"Header",description:"Header byte breakdown",startByte:0,endByte:0,value:`0x${T.toString(16).padStart(2,"0")}`,headerBreakdown:{fullBinary:T.toString(2).padStart(8,"0"),fields:[{bits:"0-1",field:"Route Type",value:(0,o.getRouteTypeName)(I),binary:(T&3).toString(2).padStart(2,"0")},{bits:"2-5",field:"Payload Type",value:(0,o.getPayloadTypeName)(P),binary:(T>>2&15).toString(2).padStart(4,"0")},{bits:"6-7",field:"Version",value:H.toString(),binary:(T>>6&3).toString(2).padStart(2,"0")}]}}),D=1;let M;if(I===r.RouteType.TransportFlood||I===r.RouteType.TransportDirect){if(C.length0?Array.from(V).map(a.byteToHex):null;if(S&&N>0)if(P===r.PayloadType.Trace){const y=[];for(let j=0;j127?L-256:L)/4;y.push(`${ue.toFixed(2)}dB (0x${L.toString(16).padStart(2,"0")})`)}B.push({name:"Path SNR Data",description:`SNR values collected during trace: ${y.join(", ")}`,startByte:D,endByte:D+N-1,value:(0,a.bytesToHex)(C.slice(D,D+N))})}else{let y="Routing path information";I===r.RouteType.Direct||I===r.RouteType.TransportDirect?y="Routing instructions (bytes are stripped at each hop as packet travels to destination)":(I===r.RouteType.Flood||I===r.RouteType.TransportFlood)&&(y="Historical route taken (bytes are added as packet floods through network)"),B.push({name:"Path Data",description:y,startByte:D,endByte:D+N-1,value:(0,a.bytesToHex)(C.slice(D,D+N))})}D+=N;const X=C.subarray(D),ae=(0,a.bytesToHex)(X);S&&C.length>D&&B.push({name:"Payload",description:`${(0,o.getPayloadTypeName)(P)} payload data`,startByte:D,endByte:C.length-1,value:(0,a.bytesToHex)(C.slice(D))});let J=null;const re=[];if(P===r.PayloadType.Advert){const y=u.AdvertPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.Trace){const y=l.TracePayloadDecoder.decode(X,Q,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.GroupText){const y=A.GroupTextPayloadDecoder.decode(X,{...E,includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.Request){const y=c.RequestPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.Response){const y=h.ResponsePayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.AnonRequest){const y=d.AnonRequestPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.Ack){const y=p.AckPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.Path)J=x.PathPayloadDecoder.decode(X);else if(P===r.PayloadType.TextMessage){const y=g.TextMessagePayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}else if(P===r.PayloadType.Control){const y=w.ControlPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=y,y!=null&&y.segments&&(re.push(...y.segments),delete y.segments)}S&&re.length===0&&C.length>D&&re.push({name:`${(0,o.getPayloadTypeName)(P)} Payload`,description:`Raw ${(0,o.getPayloadTypeName)(P)} payload data (${X.length} bytes)`,startByte:0,endByte:X.length-1,value:(0,a.bytesToHex)(X)});const q=this.calculateMessageHash(C,I,P,H),oe={messageHash:q,routeType:I,payloadType:P,payloadVersion:H,transportCodes:M,pathLength:N,path:Q,payload:{raw:ae,decoded:J},totalBytes:C.length,isValid:!0},ee={segments:B,totalBytes:C.length,rawHex:v.toUpperCase(),messageHash:q,payload:{segments:re,hex:ae,startByte:D,type:(0,o.getPayloadTypeName)(P)}};return{packet:oe,structure:ee}}catch(D){const T={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:C.length,isValid:!1,errors:[D instanceof Error?D.message:"Unknown decoding error"]},I={segments:[],totalBytes:C.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:T,structure:I}}}static async parseInternalAsync(v,S,E){const C=this.parseInternal(v,S,E);if(C.packet.payloadType===r.PayloadType.Advert&&C.packet.payload.decoded)try{const B=C.packet.payload.decoded,D=await u.AdvertPayloadDecoder.decodeWithVerification((0,a.hexToBytes)(C.packet.payload.raw),{includeSegments:S,segmentOffset:0});D&&(C.packet.payload.decoded=D,D.isValid||(C.packet.isValid=!1,C.packet.errors=D.errors||["Invalid advertisement signature"]),S&&D.segments&&(C.structure.payload.segments=D.segments,delete D.segments))}catch(B){console.error("Signature verification failed:",B)}return C}static validate(v){const S=(0,a.hexToBytes)(v),E=[];if(S.length<2)return E.push("Packet too short (minimum 2 bytes required)"),{isValid:!1,errors:E};try{let C=1;const D=S[0]&3;if((D===r.RouteType.TransportFlood||D===r.RouteType.TransportDirect)&&(S.length=S.length&&E.push("No payload data found")}catch(C){E.push(C instanceof Error?C.message:"Validation error")}return{isValid:E.length===0,errors:E.length>0?E:void 0}}static calculateMessageHash(v,S,E,C){if(E===r.PayloadType.Trace&&v.length>=13){let H=1;if((S===r.RouteType.TransportFlood||S===r.RouteType.TransportDirect)&&(H+=4),v.length>H){const M=v[H];H+=1+M}if(v.length>=H+4){const M=v[H]|v[H+1]<<8|v[H+2]<<16|v[H+3]<<24;return(0,a.numberToHex)(M,8)}}const B=E<<2|C<<6;let D=1;if((S===r.RouteType.TransportFlood||S===r.RouteType.TransportDirect)&&(D+=4),v.length>D){const H=v[D];D+=1+H}const T=v.slice(D),I=[B,...Array.from(T)];let P=0;for(let H=0;HC.exp)return null;const B=`${x}.${g}`,D=new TextEncoder().encode(B),T=(0,a.bytesToHex)(D);return await(0,r.verify)(w,T,C.publicKey)?C:null}catch{return null}}function A(h){try{const d=h.split(".");return d.length!==3?null:{header:d[0],payload:d[1],signature:d[2]}}catch{return null}}function c(h){try{const d=h.split(".");if(d.length!==3)return null;const p=i(d[1]),x=new TextDecoder().decode(p);return JSON.parse(x)}catch{return null}}return qn}var Nh;function vw(){return Nh||(Nh=1,(function(r){var a=Xr&&Xr.__createBinding||(Object.create?(function(S,E,C,B){B===void 0&&(B=C);var D=Object.getOwnPropertyDescriptor(E,C);(!D||("get"in D?!E.__esModule:D.writable||D.configurable))&&(D={enumerable:!0,get:function(){return E[C]}}),Object.defineProperty(S,B,D)}):(function(S,E,C,B){B===void 0&&(B=C),S[B]=E[C]})),o=Xr&&Xr.__setModuleDefault||(Object.create?(function(S,E){Object.defineProperty(S,"default",{enumerable:!0,value:E})}):function(S,E){S.default=E}),i=Xr&&Xr.__importStar||(function(){var S=function(E){return S=Object.getOwnPropertyNames||function(C){var B=[];for(var D in C)Object.prototype.hasOwnProperty.call(C,D)&&(B[B.length]=D);return B},S(E)};return function(E){if(E&&E.__esModule)return E;var C={};if(E!=null)for(var B=S(E),D=0;D2?a+o:1;return Qn*i*Qn}function Dw(r,a=Ru,o){const i=Math.floor(Date.now()/1e3);return r<=i&&r>=i-a}function Fw(r){return!r.includes("�")}class hl{constructor(){this.device=null,this.pipeline=null,this.bindGroupLayout=null,this.paramsBuffer=null,this.matchCountBuffer=null,this.matchIndicesBuffer=null,this.ciphertextBuffer=null,this.ciphertextBufferSize=0,this.matchCountReadBuffers=[null,null],this.matchIndicesReadBuffers=[null,null],this.currentReadBufferIndex=0,this.bindGroup=null,this.bindGroupDirty=!0,this.shaderCode=` +• Password (remaining bytes) - password for repeater/room`,startByte:c+h,endByte:c+u.length-1,value:g});const C={type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:d,senderPublicKey:x,cipherMac:p,ciphertext:g,ciphertextLength:u.length-35};return l!=null&&l.includeSegments&&(C.segments=A),C}catch(A){return{type:r.PayloadType.AnonRequest,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode AnonRequest payload"],destinationHash:"",senderPublicKey:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Ba.AnonRequestPayloadDecoder=o,Ba}var _a={},Sh;function pw(){if(Sh)return _a;Sh=1,Object.defineProperty(_a,"__esModule",{value:!0}),_a.AckPayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u,l){try{if(u.length<4){const x={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:["Ack payload too short (minimum 4 bytes for checksum)"],checksum:""};return l!=null&&l.includeSegments&&(x.segments=[{name:"Invalid Ack Data",description:"Ack payload too short (minimum 4 bytes required for checksum)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),x}const A=[],c=(l==null?void 0:l.segmentOffset)||0,h=(0,a.bytesToHex)(u.subarray(0,4));l!=null&&l.includeSegments&&A.push({name:"Checksum",description:`CRC checksum of message timestamp, text, and sender pubkey: 0x${h}`,startByte:c,endByte:c+3,value:h}),l!=null&&l.includeSegments&&u.length>4&&A.push({name:"Additional Data",description:"Extra data in Ack payload",startByte:c+4,endByte:c+u.length-1,value:(0,a.bytesToHex)(u.subarray(4))});const d={type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!0,checksum:h};return l!=null&&l.includeSegments&&(d.segments=A),d}catch(A){return{type:r.PayloadType.Ack,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode Ack payload"],checksum:""}}}}return _a.AckPayloadDecoder=o,_a}var Da={},Bh;function xw(){if(Bh)return Da;Bh=1,Object.defineProperty(Da,"__esModule",{value:!0}),Da.PathPayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u){try{if(u.length<2)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:["Path payload too short (minimum 2 bytes: path length + extra type)"],pathLength:0,pathHashes:[],extraType:0,extraData:""};const l=u[0];if(u.length<1+l+1)return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[`Path payload too short (need ${1+l+1} bytes for path length + path + extra type)`],pathLength:l,pathHashes:[],extraType:0,extraData:""};const A=[];for(let d=0;d1+l+1&&(h=(0,a.bytesToHex)(u.subarray(1+l+1))),{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!0,pathLength:l,pathHashes:A,extraType:c,extraData:h}}catch(l){return{type:r.PayloadType.Path,version:r.PayloadVersion.Version1,isValid:!1,errors:[l instanceof Error?l.message:"Failed to decode Path payload"],pathLength:0,pathHashes:[],extraType:0,extraData:""}}}}return Da.PathPayloadDecoder=o,Da}var Fa={},_h;function mw(){if(_h)return Fa;_h=1,Object.defineProperty(Fa,"__esModule",{value:!0}),Fa.TextMessagePayloadDecoder=void 0;const r=ur(),a=jt();class o{static decode(u,l){try{if(u.length<4){const w={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:["TextMessage payload too short (minimum 4 bytes: dest + source + MAC)"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0};return l!=null&&l.includeSegments&&(w.segments=[{name:"Invalid TextMessage Data",description:"TextMessage payload too short (minimum 4 bytes required)",startByte:l.segmentOffset||0,endByte:(l.segmentOffset||0)+u.length-1,value:(0,a.bytesToHex)(u)}]),w}const A=[],c=(l==null?void 0:l.segmentOffset)||0;let h=0;const d=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Destination Hash",description:"First byte of destination node public key",startByte:c+h,endByte:c+h,value:d}),h+=1;const x=(0,a.byteToHex)(u[h]);l!=null&&l.includeSegments&&A.push({name:"Source Hash",description:"First byte of source node public key",startByte:c+h,endByte:c+h,value:x}),h+=1;const p=(0,a.bytesToHex)(u.subarray(h,h+2));l!=null&&l.includeSegments&&A.push({name:"Cipher MAC",description:"MAC for encrypted data in next field",startByte:c+h,endByte:c+h+1,value:p}),h+=2;const g=(0,a.bytesToHex)(u.subarray(h));l!=null&&l.includeSegments&&u.length>h&&A.push({name:"Ciphertext",description:"Encrypted message data (timestamp + message text)",startByte:c+h,endByte:c+u.length-1,value:g});const C={type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!0,destinationHash:d,sourceHash:x,cipherMac:p,ciphertext:g,ciphertextLength:u.length-4};return l!=null&&l.includeSegments&&(C.segments=A),C}catch(A){return{type:r.PayloadType.TextMessage,version:r.PayloadVersion.Version1,isValid:!1,errors:[A instanceof Error?A.message:"Failed to decode TextMessage payload"],destinationHash:"",sourceHash:"",cipherMac:"",ciphertext:"",ciphertextLength:0}}}}return Fa.TextMessagePayloadDecoder=o,Fa}var Ra={},Dh;function gw(){if(Dh)return Ra;Dh=1,Object.defineProperty(Ra,"__esModule",{value:!0}),Ra.ControlPayloadDecoder=void 0;const r=ur(),a=jt(),o=Oa();class i{static decode(l,A){try{if(l.length<1)return this.createErrorPayload("Control payload too short (minimum 1 byte required)",l,A);const h=l[0]&240;switch(h){case r.ControlSubType.NodeDiscoverReq:return this.decodeDiscoverReq(l,A);case r.ControlSubType.NodeDiscoverResp:return this.decodeDiscoverResp(l,A);default:return this.createErrorPayload(`Unknown control sub-type: 0x${h.toString(16).padStart(2,"0")}`,l,A)}}catch(c){return this.createErrorPayload(c instanceof Error?c.message:"Failed to decode control payload",l,A)}}static decodeDiscoverReq(l,A){const c=[],h=(A==null?void 0:A.segmentOffset)??0;if(l.length<6){const S={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_REQ payload too short (minimum 6 bytes required)"],subType:r.ControlSubType.NodeDiscoverReq,rawFlags:l[0],prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return A!=null&&A.includeSegments&&(S.segments=[{name:"Invalid DISCOVER_REQ Data",description:"DISCOVER_REQ payload too short (minimum 6 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,a.bytesToHex)(l)}]),S}let d=0;const x=l[d],p=(x&1)!==0;A!=null&&A.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_REQ (0x8) | Prefix Only: ${p}`,startByte:h+d,endByte:h+d,value:x.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const g=l[d],C=this.parseTypeFilter(g);A!=null&&A.includeSegments&&c.push({name:"Type Filter",description:`Filter mask: 0b${g.toString(2).padStart(8,"0")} | Types: ${C.length>0?C.join(", "):"None"}`,startByte:h+d,endByte:h+d,value:g.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const w=this.readUint32LE(l,d);A!=null&&A.includeSegments&&c.push({name:"Tag",description:`Random tag for response matching: 0x${w.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,a.bytesToHex)(l.slice(d,d+4))}),d+=4;let b=0;if(l.length>=d+4&&(b=this.readUint32LE(l,d),A!=null&&A.includeSegments)){const S=b>0?new Date(b*1e3).toISOString().slice(0,19)+"Z":"N/A";c.push({name:"Since",description:`Filter timestamp: ${b} (${S})`,startByte:h+d,endByte:h+d+3,value:(0,a.bytesToHex)(l.slice(d,d+4))})}const v={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverReq,rawFlags:x,prefixOnly:p,typeFilter:g,typeFilterNames:C,tag:w,since:b};return A!=null&&A.includeSegments&&(v.segments=c),v}static decodeDiscoverResp(l,A){const c=[],h=(A==null?void 0:A.segmentOffset)??0;if(l.length<14){const T={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!1,errors:["DISCOVER_RESP payload too short (minimum 14 bytes required)"],subType:r.ControlSubType.NodeDiscoverResp,rawFlags:l.length>0?l[0]:0,nodeType:r.DeviceRole.Unknown,nodeTypeName:"Unknown",snr:0,tag:0,publicKey:"",publicKeyLength:0};return A!=null&&A.includeSegments&&(T.segments=[{name:"Invalid DISCOVER_RESP Data",description:"DISCOVER_RESP payload too short (minimum 14 bytes required)",startByte:h,endByte:h+l.length-1,value:(0,a.bytesToHex)(l)}]),T}let d=0;const x=l[d],p=x&15,g=(0,o.getDeviceRoleName)(p);A!=null&&A.includeSegments&&c.push({name:"Flags",description:`Sub-type: DISCOVER_RESP (0x9) | Node Type: ${g}`,startByte:h+d,endByte:h+d,value:x.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const C=l[d],w=C>127?C-256:C,b=w/4;A!=null&&A.includeSegments&&c.push({name:"SNR",description:`Inbound SNR: ${b.toFixed(2)} dB (raw: ${C}, signed: ${w})`,startByte:h+d,endByte:h+d,value:C.toString(16).padStart(2,"0").toUpperCase()}),d+=1;const v=this.readUint32LE(l,d);A!=null&&A.includeSegments&&c.push({name:"Tag",description:`Reflected tag from request: 0x${v.toString(16).padStart(8,"0")}`,startByte:h+d,endByte:h+d+3,value:(0,a.bytesToHex)(l.slice(d,d+4))}),d+=4;const E=l.length-d,y=l.slice(d,d+E),B=(0,a.bytesToHex)(y);if(A!=null&&A.includeSegments){const T=E===32?"Full Public Key":"Public Key Prefix";c.push({name:T,description:`${T} (${E} bytes)`,startByte:h+d,endByte:h+d+E-1,value:B})}const D={type:r.PayloadType.Control,version:r.PayloadVersion.Version1,isValid:!0,subType:r.ControlSubType.NodeDiscoverResp,rawFlags:x,nodeType:p,nodeTypeName:g,snr:b,tag:v,publicKey:B,publicKeyLength:E};return A!=null&&A.includeSegments&&(D.segments=c),D}static parseTypeFilter(l){const A=[];return l&1<0?A[0]:0,prefixOnly:!1,typeFilter:0,typeFilterNames:[],tag:0,since:0};return c!=null&&c.includeSegments&&(h.segments=[{name:"Invalid Control Data",description:l,startByte:c.segmentOffset??0,endByte:(c.segmentOffset??0)+A.length-1,value:(0,a.bytesToHex)(A)}]),h}static readUint32LE(l,A){return(l[A]|l[A+1]<<8|l[A+2]<<16|l[A+3]<<24)>>>0}}return Ra.ControlPayloadDecoder=i,Ra}var Fh;function Rh(){if(Fh)return va;Fh=1,Object.defineProperty(va,"__esModule",{value:!0}),va.MeshCorePacketDecoder=void 0;const r=ur(),a=jt(),o=Oa(),i=Tx(),u=cw(),l=uw(),A=dw(),c=fw(),h=Aw(),d=hw(),x=pw(),p=xw(),g=mw(),C=gw();class w{static decode(v,S){return this.parseInternal(v,!1,S).packet}static async decodeWithVerification(v,S){return(await this.parseInternalAsync(v,!1,S)).packet}static analyzeStructure(v,S){return this.parseInternal(v,!0,S).structure}static async analyzeStructureWithVerification(v,S){return(await this.parseInternalAsync(v,!0,S)).structure}static parseInternal(v,S,E){const y=(0,a.hexToBytes)(v),B=[];if(y.length<2){const D={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:y.length,isValid:!1,errors:["Packet too short (minimum 2 bytes required)"]},T={segments:[],totalBytes:y.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:D,structure:T}}try{let D=0;const T=y[0],M=T&3,P=T>>2&15,j=T>>6&3;S&&B.push({name:"Header",description:"Header byte breakdown",startByte:0,endByte:0,value:`0x${T.toString(16).padStart(2,"0")}`,headerBreakdown:{fullBinary:T.toString(2).padStart(8,"0"),fields:[{bits:"0-1",field:"Route Type",value:(0,o.getRouteTypeName)(M),binary:(T&3).toString(2).padStart(2,"0")},{bits:"2-5",field:"Payload Type",value:(0,o.getPayloadTypeName)(P),binary:(T>>2&15).toString(2).padStart(4,"0")},{bits:"6-7",field:"Version",value:j.toString(),binary:(T>>6&3).toString(2).padStart(2,"0")}]}}),D=1;let I;if(M===r.RouteType.TransportFlood||M===r.RouteType.TransportDirect){if(y.length0?Array.from(z).map(a.byteToHex):null;if(S&&N>0)if(P===r.PayloadType.Trace){const k=[];for(let H=0;H127?V-256:V)/4;k.push(`${de.toFixed(2)}dB (0x${V.toString(16).padStart(2,"0")})`)}B.push({name:"Path SNR Data",description:`SNR values collected during trace: ${k.join(", ")}`,startByte:D,endByte:D+N-1,value:(0,a.bytesToHex)(y.slice(D,D+N))})}else{let k="Routing path information";M===r.RouteType.Direct||M===r.RouteType.TransportDirect?k="Routing instructions (bytes are stripped at each hop as packet travels to destination)":(M===r.RouteType.Flood||M===r.RouteType.TransportFlood)&&(k="Historical route taken (bytes are added as packet floods through network)"),B.push({name:"Path Data",description:k,startByte:D,endByte:D+N-1,value:(0,a.bytesToHex)(y.slice(D,D+N))})}D+=N;const X=y.subarray(D),se=(0,a.bytesToHex)(X);S&&y.length>D&&B.push({name:"Payload",description:`${(0,o.getPayloadTypeName)(P)} payload data`,startByte:D,endByte:y.length-1,value:(0,a.bytesToHex)(y.slice(D))});let J=null;const ne=[];if(P===r.PayloadType.Advert){const k=u.AdvertPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.Trace){const k=l.TracePayloadDecoder.decode(X,Q,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.GroupText){const k=A.GroupTextPayloadDecoder.decode(X,{...E,includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.Request){const k=c.RequestPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.Response){const k=h.ResponsePayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.AnonRequest){const k=d.AnonRequestPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.Ack){const k=x.AckPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.Path)J=p.PathPayloadDecoder.decode(X);else if(P===r.PayloadType.TextMessage){const k=g.TextMessagePayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}else if(P===r.PayloadType.Control){const k=C.ControlPayloadDecoder.decode(X,{includeSegments:S,segmentOffset:0});J=k,k!=null&&k.segments&&(ne.push(...k.segments),delete k.segments)}S&&ne.length===0&&y.length>D&&ne.push({name:`${(0,o.getPayloadTypeName)(P)} Payload`,description:`Raw ${(0,o.getPayloadTypeName)(P)} payload data (${X.length} bytes)`,startByte:0,endByte:X.length-1,value:(0,a.bytesToHex)(X)});const q=this.calculateMessageHash(y,M,P,j),ae={messageHash:q,routeType:M,payloadType:P,payloadVersion:j,transportCodes:I,pathLength:N,path:Q,payload:{raw:se,decoded:J},totalBytes:y.length,isValid:!0},ee={segments:B,totalBytes:y.length,rawHex:v.toUpperCase(),messageHash:q,payload:{segments:ne,hex:se,startByte:D,type:(0,o.getPayloadTypeName)(P)}};return{packet:ae,structure:ee}}catch(D){const T={messageHash:"",routeType:r.RouteType.Flood,payloadType:r.PayloadType.RawCustom,payloadVersion:r.PayloadVersion.Version1,pathLength:0,path:null,payload:{raw:"",decoded:null},totalBytes:y.length,isValid:!1,errors:[D instanceof Error?D.message:"Unknown decoding error"]},M={segments:[],totalBytes:y.length,rawHex:v.toUpperCase(),messageHash:"",payload:{segments:[],hex:"",startByte:0,type:"Unknown"}};return{packet:T,structure:M}}}static async parseInternalAsync(v,S,E){const y=this.parseInternal(v,S,E);if(y.packet.payloadType===r.PayloadType.Advert&&y.packet.payload.decoded)try{const B=y.packet.payload.decoded,D=await u.AdvertPayloadDecoder.decodeWithVerification((0,a.hexToBytes)(y.packet.payload.raw),{includeSegments:S,segmentOffset:0});D&&(y.packet.payload.decoded=D,D.isValid||(y.packet.isValid=!1,y.packet.errors=D.errors||["Invalid advertisement signature"]),S&&D.segments&&(y.structure.payload.segments=D.segments,delete D.segments))}catch(B){console.error("Signature verification failed:",B)}return y}static validate(v){const S=(0,a.hexToBytes)(v),E=[];if(S.length<2)return E.push("Packet too short (minimum 2 bytes required)"),{isValid:!1,errors:E};try{let y=1;const D=S[0]&3;if((D===r.RouteType.TransportFlood||D===r.RouteType.TransportDirect)&&(S.length=S.length&&E.push("No payload data found")}catch(y){E.push(y instanceof Error?y.message:"Validation error")}return{isValid:E.length===0,errors:E.length>0?E:void 0}}static calculateMessageHash(v,S,E,y){if(E===r.PayloadType.Trace&&v.length>=13){let j=1;if((S===r.RouteType.TransportFlood||S===r.RouteType.TransportDirect)&&(j+=4),v.length>j){const I=v[j];j+=1+I}if(v.length>=j+4){const I=v[j]|v[j+1]<<8|v[j+2]<<16|v[j+3]<<24;return(0,a.numberToHex)(I,8)}}const B=E<<2|y<<6;let D=1;if((S===r.RouteType.TransportFlood||S===r.RouteType.TransportDirect)&&(D+=4),v.length>D){const j=v[D];D+=1+j}const T=v.slice(D),M=[B,...Array.from(T)];let P=0;for(let j=0;jy.exp)return null;const B=`${p}.${g}`,D=new TextEncoder().encode(B),T=(0,a.bytesToHex)(D);return await(0,r.verify)(C,T,y.publicKey)?y:null}catch{return null}}function A(h){try{const d=h.split(".");return d.length!==3?null:{header:d[0],payload:d[1],signature:d[2]}}catch{return null}}function c(h){try{const d=h.split(".");if(d.length!==3)return null;const x=i(d[1]),p=new TextDecoder().decode(x);return JSON.parse(p)}catch{return null}}return qn}var Nh;function vw(){return Nh||(Nh=1,(function(r){var a=Xr&&Xr.__createBinding||(Object.create?(function(S,E,y,B){B===void 0&&(B=y);var D=Object.getOwnPropertyDescriptor(E,y);(!D||("get"in D?!E.__esModule:D.writable||D.configurable))&&(D={enumerable:!0,get:function(){return E[y]}}),Object.defineProperty(S,B,D)}):(function(S,E,y,B){B===void 0&&(B=y),S[B]=E[y]})),o=Xr&&Xr.__setModuleDefault||(Object.create?(function(S,E){Object.defineProperty(S,"default",{enumerable:!0,value:E})}):function(S,E){S.default=E}),i=Xr&&Xr.__importStar||(function(){var S=function(E){return S=Object.getOwnPropertyNames||function(y){var B=[];for(var D in y)Object.prototype.hasOwnProperty.call(y,D)&&(B[B.length]=D);return B},S(E)};return function(E){if(E&&E.__esModule)return E;var y={};if(E!=null)for(var B=S(E),D=0;D2?a+o:1;return Qn*i*Qn}function Dw(r,a=Ru,o){const i=Math.floor(Date.now()/1e3);return r<=i&&r>=i-a}function Fw(r){return!r.includes("�")}class hl{constructor(){this.device=null,this.pipeline=null,this.bindGroupLayout=null,this.paramsBuffer=null,this.matchCountBuffer=null,this.matchIndicesBuffer=null,this.ciphertextBuffer=null,this.ciphertextBufferSize=0,this.matchCountReadBuffers=[null,null],this.matchIndicesReadBuffers=[null,null],this.currentReadBufferIndex=0,this.bindGroup=null,this.bindGroupDirty=!0,this.shaderCode=` // SHA256 round constants const K: array = array( 0x428a2f98u, 0x71374491u, 0xb5c0fbcfu, 0xe9b5dba5u, 0x3956c25bu, 0x59f111f1u, 0x923f82a4u, 0xab1c5ed5u, @@ -522,11 +522,11 @@ fn main(@builtin(global_invocation_id) global_id: vec3) { process_candidate(name_idx); } } -`}async init(){if(!navigator.gpu)return console.warn("WebGPU not supported"),!1;try{const a=await navigator.gpu.requestAdapter();if(!a)return console.warn("No GPU adapter found"),!1;this.device=await a.requestDevice(),this.bindGroupLayout=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:2,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:3,visibility:GPUShaderStage.COMPUTE,buffer:{type:"read-only-storage"}}]}),this.paramsBuffer=this.device.createBuffer({size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.matchCountBuffer=this.device.createBuffer({size:4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST}),this.matchIndicesBuffer=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC});for(let u=0;u<2;u++)this.matchCountReadBuffers[u]=this.device.createBuffer({size:4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.matchIndicesReadBuffers[u]=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST});const o=this.device.createShaderModule({code:this.shaderCode}),i=this.device.createPipelineLayout({bindGroupLayouts:[this.bindGroupLayout]});return this.pipeline=this.device.createComputePipeline({layout:i,compute:{module:o,entryPoint:"main"}}),!0}catch(a){return console.error("WebGPU initialization failed:",a),!1}}isAvailable(){return this.device!==null&&this.pipeline!==null}indexToRoomName(a,o){return $n(o,a)}countNamesForLength(a){return Na(a)}async runBatch(a,o,i,u,l,A){if(!this.device||!this.pipeline||!this.bindGroupLayout||!this.paramsBuffer||!this.matchCountBuffer||!this.matchIndicesBuffer||!this.matchCountReadBuffers[0]||!this.matchCountReadBuffers[1]||!this.matchIndicesReadBuffers[0]||!this.matchIndicesReadBuffers[1])throw new Error("GPU not initialized");const c=this.currentReadBufferIndex;this.currentReadBufferIndex=1-this.currentReadBufferIndex;const h=this.matchCountReadBuffers[c],d=this.matchIndicesReadBuffers[c],p=l&&A?1:0;let x,g=0,w=0;if(p){const D=new Uint8Array(l.length/2);for(let M=0;M0){await d.mapAsync(GPUMapMode.READ);const D=new Uint32Array(d.getMappedRange());for(let T=0;T1&&!Pw.test(r)||Nw.test(r))}class Iw{constructor(){this.gpuInstance=null,this.cpuInstance=null,this.wordlist=[],this.abortFlag=!1,this.useTimestampFilter=!0,this.useUtf8Filter=!0,this.validSeconds=Ru,this.useCpu=!1}async loadWordlist(a){const o=await fetch(a);if(!o.ok)throw new Error(`Failed to load wordlist: ${o.status} ${o.statusText}`);const u=(await o.text()).split(` -`).map(l=>l.trim().toLowerCase()).filter(l=>l.length>0);this.wordlist=u.filter(Hh)}setWordlist(a){this.wordlist=a.map(o=>o.trim().toLowerCase()).filter(Hh)}abort(){this.abortFlag=!0}isGpuAvailable(){return Rw()}async decodePacket(a){var i;const o=a.trim().replace(/\s+/g,"").replace(/^0x/i,"");if(!o||!/^[0-9a-fA-F]+$/.test(o))return null;try{const l=(i=(await Ih.MeshCorePacketDecoder.decodeWithVerification(o,{})).payload)==null?void 0:i.decoded;return!(l!=null&&l.channelHash)||!(l!=null&&l.ciphertext)||!(l!=null&&l.cipherMac)?null:{channelHash:l.channelHash,ciphertext:l.ciphertext,cipherMac:l.cipherMac,isGroupText:!0}}catch{return null}}async crack(a,o,i){this.abortFlag=!1,this.useTimestampFilter=(o==null?void 0:o.useTimestampFilter)??!0,this.useUtf8Filter=(o==null?void 0:o.useUtf8Filter)??!0,this.validSeconds=(o==null?void 0:o.validSeconds)??Ru,this.useCpu=(o==null?void 0:o.forceCpu)??!1;const u=(o==null?void 0:o.maxLength)??8,l=(o==null?void 0:o.startingLength)??1,A=(o==null?void 0:o.useDictionary)??!0,c=await this.decodePacket(a);if(!c)return{found:!1,error:"Invalid packet or not a GroupText packet"};const{channelHash:h,ciphertext:d,cipherMac:p}=c,x=parseInt(h,16);this.useCpu?this.cpuInstance||(this.cpuInstance=new jh):this.gpuInstance||(this.gpuInstance=new hl,await this.gpuInstance.init()||(this.useCpu=!0,this.cpuInstance=new jh));const g=performance.now();let w=0,b=performance.now(),k=l,v=0;if(o!=null&&o.startFrom){const H=_w(o.startFrom);H&&(k=Math.max(l,H.length),v=H.index+1,v>=Na(k)&&(k++,v=0))}let S=0;for(let H=k;H<=u;H++)S+=Na(H);S-=v;const E=(H,M,N)=>{if(!i)return;const Q=(performance.now()-g)/1e3,X=Q>0?Math.round(w/Q):0,ae=S-w,J=X>0?ae/X:0;i({checked:w,total:S,percent:S>0?Math.min(100,w/S*100):0,rateKeysPerSec:X,etaSeconds:J,elapsedSeconds:Q,currentLength:M,currentPosition:N,phase:H})},C=H=>{if(!Zx(d,p,H))return{valid:!1};const M=Ih.ChannelCrypto.decryptGroupTextMessage(d,p,H);return!M.success||!M.data?{valid:!1}:this.useTimestampFilter&&!Dw(M.data.timestamp,this.validSeconds)?{valid:!1}:this.useUtf8Filter&&!Fw(M.data.message)?{valid:!1}:{valid:!0,message:M.data.message}};if(k===1&&v===0){E("public-key",0,Fu);const H=Pu(Qi);if(h===H){const M=C(Qi);if(M.valid)return{found:!0,roomName:Fu,key:Qi,decryptedMessage:M.message}}}if(A&&this.wordlist.length>0&&k===1&&v===0)for(let H=0;H=200&&(E("wordlist",M.length,M),b=Q,await new Promise(X=>setTimeout(X,0)))}const B=this.useCpu?1024:32768,D=1e3;let T=B,I=!1;for(let H=k;H<=u;H++){if(this.abortFlag)return{found:!1,aborted:!0,resumeFrom:$n(H,0)||void 0};const M=Na(H);let N=H===k?v:0;for(;N=B&&ae>0){const re=D/ae,q=Math.round(V*re),oe=Math.pow(2,Math.round(Math.log2(Math.max(B,q))));T=Math.max(B,oe),I=!0}for(const re of X){const q=$n(H,re);if(!q)continue;const oe=Tu("#"+q),ee=C(oe);if(ee.valid)return{found:!0,roomName:q,key:oe,decryptedMessage:ee.message}}N+=V;const J=performance.now();if(J-b>=200){const re=$n(H,Math.min(N,M-1))||"";E("bruteforce",H,re),b=J,await new Promise(q=>setTimeout(q,0))}}}return{found:!1,resumeFrom:$n(u,Na(u)-1)||void 0}}destroy(){this.gpuInstance&&(this.gpuInstance.destroy(),this.gpuInstance=null),this.cpuInstance&&(this.cpuInstance.destroy(),this.cpuInstance=null)}}var mu,Lh;function Mw(){return Lh||(Lh=1,mu={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}),mu}var gu,zh;function Ow(){if(zh)return gu;zh=1;const{webm:r,mp4:a}=Mw(),o=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,i=()=>"wakeLock"in navigator;class u{constructor(){if(this.enabled=!1,i()){this._wakeLock=null;const A=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",A),document.addEventListener("fullscreenchange",A)}else o()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",a),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(A,c,h){var d=document.createElement("source");d.src=h,d.type=`video/${c}`,A.appendChild(d)}get isEnabled(){return this.enabled}enable(){return i()?navigator.wakeLock.request("screen").then(A=>{this._wakeLock=A,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(A=>{throw this.enabled=!1,console.error(`${A.name}, ${A.message}`),A}):o()?(this.disable(),console.warn(` +`}async init(){if(!navigator.gpu)return console.warn("WebGPU not supported"),!1;try{const a=await navigator.gpu.requestAdapter();if(!a)return console.warn("No GPU adapter found"),!1;this.device=await a.requestDevice(),this.bindGroupLayout=this.device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.COMPUTE,buffer:{type:"uniform"}},{binding:1,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:2,visibility:GPUShaderStage.COMPUTE,buffer:{type:"storage"}},{binding:3,visibility:GPUShaderStage.COMPUTE,buffer:{type:"read-only-storage"}}]}),this.paramsBuffer=this.device.createBuffer({size:32,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),this.matchCountBuffer=this.device.createBuffer({size:4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC|GPUBufferUsage.COPY_DST}),this.matchIndicesBuffer=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_SRC});for(let u=0;u<2;u++)this.matchCountReadBuffers[u]=this.device.createBuffer({size:4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST}),this.matchIndicesReadBuffers[u]=this.device.createBuffer({size:1024*4,usage:GPUBufferUsage.MAP_READ|GPUBufferUsage.COPY_DST});const o=this.device.createShaderModule({code:this.shaderCode}),i=this.device.createPipelineLayout({bindGroupLayouts:[this.bindGroupLayout]});return this.pipeline=this.device.createComputePipeline({layout:i,compute:{module:o,entryPoint:"main"}}),!0}catch(a){return console.error("WebGPU initialization failed:",a),!1}}isAvailable(){return this.device!==null&&this.pipeline!==null}indexToRoomName(a,o){return $n(o,a)}countNamesForLength(a){return Na(a)}async runBatch(a,o,i,u,l,A){if(!this.device||!this.pipeline||!this.bindGroupLayout||!this.paramsBuffer||!this.matchCountBuffer||!this.matchIndicesBuffer||!this.matchCountReadBuffers[0]||!this.matchCountReadBuffers[1]||!this.matchIndicesReadBuffers[0]||!this.matchIndicesReadBuffers[1])throw new Error("GPU not initialized");const c=this.currentReadBufferIndex;this.currentReadBufferIndex=1-this.currentReadBufferIndex;const h=this.matchCountReadBuffers[c],d=this.matchIndicesReadBuffers[c],x=l&&A?1:0;let p,g=0,C=0;if(x){const D=new Uint8Array(l.length/2);for(let I=0;I0){await d.mapAsync(GPUMapMode.READ);const D=new Uint32Array(d.getMappedRange());for(let T=0;T1&&!Pw.test(r)||Nw.test(r))}class Iw{constructor(){this.gpuInstance=null,this.cpuInstance=null,this.wordlist=[],this.abortFlag=!1,this.useTimestampFilter=!0,this.useUtf8Filter=!0,this.validSeconds=Ru,this.useCpu=!1}async loadWordlist(a){const o=await fetch(a);if(!o.ok)throw new Error(`Failed to load wordlist: ${o.status} ${o.statusText}`);const u=(await o.text()).split(` +`).map(l=>l.trim().toLowerCase()).filter(l=>l.length>0);this.wordlist=u.filter(Hh)}setWordlist(a){this.wordlist=a.map(o=>o.trim().toLowerCase()).filter(Hh)}abort(){this.abortFlag=!0}isGpuAvailable(){return Rw()}async decodePacket(a){var i;const o=a.trim().replace(/\s+/g,"").replace(/^0x/i,"");if(!o||!/^[0-9a-fA-F]+$/.test(o))return null;try{const l=(i=(await Ih.MeshCorePacketDecoder.decodeWithVerification(o,{})).payload)==null?void 0:i.decoded;return!(l!=null&&l.channelHash)||!(l!=null&&l.ciphertext)||!(l!=null&&l.cipherMac)?null:{channelHash:l.channelHash,ciphertext:l.ciphertext,cipherMac:l.cipherMac,isGroupText:!0}}catch{return null}}async crack(a,o,i){this.abortFlag=!1,this.useTimestampFilter=(o==null?void 0:o.useTimestampFilter)??!0,this.useUtf8Filter=(o==null?void 0:o.useUtf8Filter)??!0,this.validSeconds=(o==null?void 0:o.validSeconds)??Ru,this.useCpu=(o==null?void 0:o.forceCpu)??!1;const u=(o==null?void 0:o.maxLength)??8,l=(o==null?void 0:o.startingLength)??1,A=(o==null?void 0:o.useDictionary)??!0,c=await this.decodePacket(a);if(!c)return{found:!1,error:"Invalid packet or not a GroupText packet"};const{channelHash:h,ciphertext:d,cipherMac:x}=c,p=parseInt(h,16);this.useCpu?this.cpuInstance||(this.cpuInstance=new jh):this.gpuInstance||(this.gpuInstance=new hl,await this.gpuInstance.init()||(this.useCpu=!0,this.cpuInstance=new jh));const g=performance.now();let C=0,w=performance.now(),b=l,v=0;if(o!=null&&o.startFrom){const j=_w(o.startFrom);j&&(b=Math.max(l,j.length),v=j.index+1,v>=Na(b)&&(b++,v=0))}let S=0;for(let j=b;j<=u;j++)S+=Na(j);S-=v;const E=(j,I,N)=>{if(!i)return;const Q=(performance.now()-g)/1e3,X=Q>0?Math.round(C/Q):0,se=S-C,J=X>0?se/X:0;i({checked:C,total:S,percent:S>0?Math.min(100,C/S*100):0,rateKeysPerSec:X,etaSeconds:J,elapsedSeconds:Q,currentLength:I,currentPosition:N,phase:j})},y=j=>{if(!Zx(d,x,j))return{valid:!1};const I=Ih.ChannelCrypto.decryptGroupTextMessage(d,x,j);return!I.success||!I.data?{valid:!1}:this.useTimestampFilter&&!Dw(I.data.timestamp,this.validSeconds)?{valid:!1}:this.useUtf8Filter&&!Fw(I.data.message)?{valid:!1}:{valid:!0,message:I.data.message}};if(b===1&&v===0){E("public-key",0,Fu);const j=Pu(Qi);if(h===j){const I=y(Qi);if(I.valid)return{found:!0,roomName:Fu,key:Qi,decryptedMessage:I.message}}}if(A&&this.wordlist.length>0&&b===1&&v===0)for(let j=0;j=200&&(E("wordlist",I.length,I),w=Q,await new Promise(X=>setTimeout(X,0)))}const B=this.useCpu?1024:32768,D=1e3;let T=B,M=!1;for(let j=b;j<=u;j++){if(this.abortFlag)return{found:!1,aborted:!0,resumeFrom:$n(j,0)||void 0};const I=Na(j);let N=j===b?v:0;for(;N=B&&se>0){const ne=D/se,q=Math.round(z*ne),ae=Math.pow(2,Math.round(Math.log2(Math.max(B,q))));T=Math.max(B,ae),M=!0}for(const ne of X){const q=$n(j,ne);if(!q)continue;const ae=Tu("#"+q),ee=y(ae);if(ee.valid)return{found:!0,roomName:q,key:ae,decryptedMessage:ee.message}}N+=z;const J=performance.now();if(J-w>=200){const ne=$n(j,Math.min(N,I-1))||"";E("bruteforce",j,ne),w=J,await new Promise(q=>setTimeout(q,0))}}}return{found:!1,resumeFrom:$n(u,Na(u)-1)||void 0}}destroy(){this.gpuInstance&&(this.gpuInstance.destroy(),this.gpuInstance=null),this.cpuInstance&&(this.cpuInstance.destroy(),this.cpuInstance=null)}}var mu,Lh;function Mw(){return Lh||(Lh=1,mu={webm:"data:video/webm;base64,GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4EEQoWBAhhTgGcBAAAAAAAVkhFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsghV17AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU1LjMzLjEwMFdBjUxhdmY1NS4zMy4xMDBzpJBlrrXf3DCDVB8KcgbMpcr+RImIQJBgAAAAAAAWVK5rAQAAAAAAD++uAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDiDgQEj44OEAmJaAOABAAAAAAAABrCBsLqBkK4BAAAAAAAPq9eBAnPFgQKcgQAitZyDdW5khohBX1ZPUkJJU4OBAuEBAAAAAAAAEZ+BArWIQOdwAAAAAABiZIEgY6JPbwIeVgF2b3JiaXMAAAAAAoC7AAAAAAAAgLUBAAAAAAC4AQN2b3JiaXMtAAAAWGlwaC5PcmcgbGliVm9yYmlzIEkgMjAxMDExMDEgKFNjaGF1ZmVudWdnZXQpAQAAABUAAABlbmNvZGVyPUxhdmM1NS41Mi4xMDIBBXZvcmJpcyVCQ1YBAEAAACRzGCpGpXMWhBAaQlAZ4xxCzmvsGUJMEYIcMkxbyyVzkCGkoEKIWyiB0JBVAABAAACHQXgUhIpBCCGEJT1YkoMnPQghhIg5eBSEaUEIIYQQQgghhBBCCCGERTlokoMnQQgdhOMwOAyD5Tj4HIRFOVgQgydB6CCED0K4moOsOQghhCQ1SFCDBjnoHITCLCiKgsQwuBaEBDUojILkMMjUgwtCiJqDSTX4GoRnQXgWhGlBCCGEJEFIkIMGQcgYhEZBWJKDBjm4FITLQagahCo5CB+EIDRkFQCQAACgoiiKoigKEBqyCgDIAAAQQFEUx3EcyZEcybEcCwgNWQUAAAEACAAAoEiKpEiO5EiSJFmSJVmSJVmS5omqLMuyLMuyLMsyEBqyCgBIAABQUQxFcRQHCA1ZBQBkAAAIoDiKpViKpWiK54iOCISGrAIAgAAABAAAEDRDUzxHlETPVFXXtm3btm3btm3btm3btm1blmUZCA1ZBQBAAAAQ0mlmqQaIMAMZBkJDVgEACAAAgBGKMMSA0JBVAABAAACAGEoOogmtOd+c46BZDppKsTkdnEi1eZKbirk555xzzsnmnDHOOeecopxZDJoJrTnnnMSgWQqaCa0555wnsXnQmiqtOeeccc7pYJwRxjnnnCateZCajbU555wFrWmOmkuxOeecSLl5UptLtTnnnHPOOeecc84555zqxekcnBPOOeecqL25lpvQxTnnnE/G6d6cEM4555xzzjnnnHPOOeecIDRkFQAABABAEIaNYdwpCNLnaCBGEWIaMulB9+gwCRqDnELq0ehopJQ6CCWVcVJKJwgNWQUAAAIAQAghhRRSSCGFFFJIIYUUYoghhhhyyimnoIJKKqmooowyyyyzzDLLLLPMOuyssw47DDHEEEMrrcRSU2011lhr7jnnmoO0VlprrbVSSimllFIKQkNWAQAgAAAEQgYZZJBRSCGFFGKIKaeccgoqqIDQkFUAACAAgAAAAABP8hzRER3RER3RER3RER3R8RzPESVREiVREi3TMjXTU0VVdWXXlnVZt31b2IVd933d933d+HVhWJZlWZZlWZZlWZZlWZZlWZYgNGQVAAACAAAghBBCSCGFFFJIKcYYc8w56CSUEAgNWQUAAAIACAAAAHAUR3EcyZEcSbIkS9IkzdIsT/M0TxM9URRF0zRV0RVdUTdtUTZl0zVdUzZdVVZtV5ZtW7Z125dl2/d93/d93/d93/d93/d9XQdCQ1YBABIAADqSIymSIimS4ziOJElAaMgqAEAGAEAAAIriKI7jOJIkSZIlaZJneZaomZrpmZ4qqkBoyCoAABAAQAAAAAAAAIqmeIqpeIqoeI7oiJJomZaoqZoryqbsuq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq7ruq4LhIasAgAkAAB0JEdyJEdSJEVSJEdygNCQVQCADACAAAAcwzEkRXIsy9I0T/M0TxM90RM901NFV3SB0JBVAAAgAIAAAAAAAAAMybAUy9EcTRIl1VItVVMt1VJF1VNVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVN0zRNEwgNWQkAkAEAkBBTLS3GmgmLJGLSaqugYwxS7KWxSCpntbfKMYUYtV4ah5RREHupJGOKQcwtpNApJq3WVEKFFKSYYyoVUg5SIDRkhQAQmgHgcBxAsixAsiwAAAAAAAAAkDQN0DwPsDQPAAAAAAAAACRNAyxPAzTPAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAA0DwP8DwR8EQRAAAAAAAAACzPAzTRAzxRBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA0jRA8zxA8zwAAAAAAAAAsDwP8EQR0DwRAAAAAAAAACzPAzxRBDzRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEOAAABBgIRQasiIAiBMAcEgSJAmSBM0DSJYFTYOmwTQBkmVB06BpME0AAAAAAAAAAAAAJE2DpkHTIIoASdOgadA0iCIAAAAAAAAAAAAAkqZB06BpEEWApGnQNGgaRBEAAAAAAAAAAAAAzzQhihBFmCbAM02IIkQRpgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAGHAAAAgwoQwUGrIiAIgTAHA4imUBAIDjOJYFAACO41gWAABYliWKAABgWZooAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAYcAAACDChDBQashIAiAIAcCiKZQHHsSzgOJYFJMmyAJYF0DyApgFEEQAIAAAocAAACLBBU2JxgEJDVgIAUQAABsWxLE0TRZKkaZoniiRJ0zxPFGma53meacLzPM80IYqiaJoQRVE0TZimaaoqME1VFQAAUOAAABBgg6bE4gCFhqwEAEICAByKYlma5nmeJ4qmqZokSdM8TxRF0TRNU1VJkqZ5niiKommapqqyLE3zPFEURdNUVVWFpnmeKIqiaaqq6sLzPE8URdE0VdV14XmeJ4qiaJqq6roQRVE0TdNUTVV1XSCKpmmaqqqqrgtETxRNU1Vd13WB54miaaqqq7ouEE3TVFVVdV1ZBpimaaqq68oyQFVV1XVdV5YBqqqqruu6sgxQVdd1XVmWZQCu67qyLMsCAAAOHAAAAoygk4wqi7DRhAsPQKEhKwKAKAAAwBimFFPKMCYhpBAaxiSEFEImJaXSUqogpFJSKRWEVEoqJaOUUmopVRBSKamUCkIqJZVSAADYgQMA2IGFUGjISgAgDwCAMEYpxhhzTiKkFGPOOScRUoox55yTSjHmnHPOSSkZc8w556SUzjnnnHNSSuacc845KaVzzjnnnJRSSuecc05KKSWEzkEnpZTSOeecEwAAVOAAABBgo8jmBCNBhYasBABSAQAMjmNZmuZ5omialiRpmud5niiapiZJmuZ5nieKqsnzPE8URdE0VZXneZ4oiqJpqirXFUXTNE1VVV2yLIqmaZqq6rowTdNUVdd1XZimaaqq67oubFtVVdV1ZRm2raqq6rqyDFzXdWXZloEsu67s2rIAAPAEBwCgAhtWRzgpGgssNGQlAJABAEAYg5BCCCFlEEIKIYSUUggJAAAYcAAACDChDBQashIASAUAAIyx1lprrbXWQGettdZaa62AzFprrbXWWmuttdZaa6211lJrrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmuttdZaa6211lprrbXWWmstpZRSSimllFJKKaWUUkoppZRSSgUA+lU4APg/2LA6wknRWGChISsBgHAAAMAYpRhzDEIppVQIMeacdFRai7FCiDHnJKTUWmzFc85BKCGV1mIsnnMOQikpxVZjUSmEUlJKLbZYi0qho5JSSq3VWIwxqaTWWoutxmKMSSm01FqLMRYjbE2ptdhqq7EYY2sqLbQYY4zFCF9kbC2m2moNxggjWywt1VprMMYY3VuLpbaaizE++NpSLDHWXAAAd4MDAESCjTOsJJ0VjgYXGrISAAgJACAQUooxxhhzzjnnpFKMOeaccw5CCKFUijHGnHMOQgghlIwx5pxzEEIIIYRSSsaccxBCCCGEkFLqnHMQQgghhBBKKZ1zDkIIIYQQQimlgxBCCCGEEEoopaQUQgghhBBCCKmklEIIIYRSQighlZRSCCGEEEIpJaSUUgohhFJCCKGElFJKKYUQQgillJJSSimlEkoJJYQSUikppRRKCCGUUkpKKaVUSgmhhBJKKSWllFJKIYQQSikFAAAcOAAABBhBJxlVFmGjCRcegEJDVgIAZAAAkKKUUiktRYIipRikGEtGFXNQWoqocgxSzalSziDmJJaIMYSUk1Qy5hRCDELqHHVMKQYtlRhCxhik2HJLoXMOAAAAQQCAgJAAAAMEBTMAwOAA4XMQdAIERxsAgCBEZohEw0JweFAJEBFTAUBigkIuAFRYXKRdXECXAS7o4q4DIQQhCEEsDqCABByccMMTb3jCDU7QKSp1IAAAAAAADADwAACQXAAREdHMYWRobHB0eHyAhIiMkAgAAAAAABcAfAAAJCVAREQ0cxgZGhscHR4fICEiIyQBAIAAAgAAAAAggAAEBAQAAAAAAAIAAAAEBB9DtnUBAAAAAAAEPueBAKOFggAAgACjzoEAA4BwBwCdASqwAJAAAEcIhYWIhYSIAgIABhwJ7kPfbJyHvtk5D32ych77ZOQ99snIe+2TkPfbJyHvtk5D32ych77ZOQ99YAD+/6tQgKOFggADgAqjhYIAD4AOo4WCACSADqOZgQArADECAAEQEAAYABhYL/QACIBDmAYAAKOFggA6gA6jhYIAT4AOo5mBAFMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAGSADqOFggB6gA6jmYEAewAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAj4AOo5mBAKMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAKSADqOFggC6gA6jmYEAywAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIAz4AOo4WCAOSADqOZgQDzADECAAEQEAAYABhYL/QACIBDmAYAAKOFggD6gA6jhYIBD4AOo5iBARsAEQIAARAQFGAAYWC/0AAiAQ5gGACjhYIBJIAOo4WCATqADqOZgQFDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggFPgA6jhYIBZIAOo5mBAWsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAXqADqOFggGPgA6jmYEBkwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIBpIAOo4WCAbqADqOZgQG7ADECAAEQEAAYABhYL/QACIBDmAYAAKOFggHPgA6jmYEB4wAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIB5IAOo4WCAfqADqOZgQILADECAAEQEAAYABhYL/QACIBDmAYAAKOFggIPgA6jhYICJIAOo5mBAjMAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAjqADqOFggJPgA6jmYECWwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYICZIAOo4WCAnqADqOZgQKDADECAAEQEAAYABhYL/QACIBDmAYAAKOFggKPgA6jhYICpIAOo5mBAqsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCArqADqOFggLPgA6jmIEC0wARAgABEBAUYABhYL/QACIBDmAYAKOFggLkgA6jhYIC+oAOo5mBAvsAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCAw+ADqOZgQMjADECAAEQEAAYABhYL/QACIBDmAYAAKOFggMkgA6jhYIDOoAOo5mBA0sAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA0+ADqOFggNkgA6jmYEDcwAxAgABEBAAGAAYWC/0AAiAQ5gGAACjhYIDeoAOo4WCA4+ADqOZgQObADECAAEQEAAYABhYL/QACIBDmAYAAKOFggOkgA6jhYIDuoAOo5mBA8MAMQIAARAQABgAGFgv9AAIgEOYBgAAo4WCA8+ADqOFggPkgA6jhYID+oAOo4WCBA+ADhxTu2sBAAAAAAAAEbuPs4EDt4r3gQHxghEr8IEK",mp4:"data:video/mp4;base64,AAAAHGZ0eXBNNFYgAAACAGlzb21pc28yYXZjMQAAAAhmcmVlAAAGF21kYXTeBAAAbGliZmFhYyAxLjI4AABCAJMgBDIARwAAArEGBf//rdxF6b3m2Ui3lizYINkj7u94MjY0IC0gY29yZSAxNDIgcjIgOTU2YzhkOCAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMTQgLSBodHRwOi8vd3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0zIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4IHN1Ym1lPTcgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MSBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTEgOHg4ZGN0PTAgY3FtPTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9LTIgdGhyZWFkcz02IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MCB3ZWlnaHRwPTAga2V5aW50PTI1MCBrZXlpbnRfbWluPTI1IHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCB2YnZfbWF4cmF0ZT03NjggdmJ2X2J1ZnNpemU9MzAwMCBjcmZfbWF4PTAuMCBuYWxfaHJkPW5vbmUgZmlsbGVyPTAgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAAAFZliIQL8mKAAKvMnJycnJycnJycnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXiEASZACGQAjgCEASZACGQAjgAAAAAdBmjgX4GSAIQBJkAIZACOAAAAAB0GaVAX4GSAhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGagC/AySEASZACGQAjgAAAAAZBmqAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZrAL8DJIQBJkAIZACOAAAAABkGa4C/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmwAvwMkhAEmQAhkAI4AAAAAGQZsgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGbQC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm2AvwMkhAEmQAhkAI4AAAAAGQZuAL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGboC/AySEASZACGQAjgAAAAAZBm8AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZvgL8DJIQBJkAIZACOAAAAABkGaAC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmiAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZpAL8DJIQBJkAIZACOAAAAABkGaYC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBmoAvwMkhAEmQAhkAI4AAAAAGQZqgL8DJIQBJkAIZACOAIQBJkAIZACOAAAAABkGawC/AySEASZACGQAjgAAAAAZBmuAvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZsAL8DJIQBJkAIZACOAAAAABkGbIC/AySEASZACGQAjgCEASZACGQAjgAAAAAZBm0AvwMkhAEmQAhkAI4AhAEmQAhkAI4AAAAAGQZtgL8DJIQBJkAIZACOAAAAABkGbgCvAySEASZACGQAjgCEASZACGQAjgAAAAAZBm6AnwMkhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AhAEmQAhkAI4AAAAhubW9vdgAAAGxtdmhkAAAAAAAAAAAAAAAAAAAD6AAABDcAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAzB0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAABAAAAAAAAA+kAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAALAAAACQAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAPpAAAAAAABAAAAAAKobWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAB1MAAAdU5VxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAAAAAAAAAAAABWaWRlb0hhbmRsZXIAAAACU21pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAAhNzdGJsAAAAr3N0c2QAAAAAAAAAAQAAAJ9hdmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAALAAkABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAALWF2Y0MBQsAN/+EAFWdCwA3ZAsTsBEAAAPpAADqYA8UKkgEABWjLg8sgAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRzAAAAAAAAAAEAAAAeAAAD6QAAABRzdHNzAAAAAAAAAAEAAAABAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAAIxzdHN6AAAAAAAAAAAAAAAeAAADDwAAAAsAAAALAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAAiHN0Y28AAAAAAAAAHgAAAEYAAANnAAADewAAA5gAAAO0AAADxwAAA+MAAAP2AAAEEgAABCUAAARBAAAEXQAABHAAAASMAAAEnwAABLsAAATOAAAE6gAABQYAAAUZAAAFNQAABUgAAAVkAAAFdwAABZMAAAWmAAAFwgAABd4AAAXxAAAGDQAABGh0cmFrAAAAXHRraGQAAAADAAAAAAAAAAAAAAACAAAAAAAABDcAAAAAAAAAAAAAAAEBAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAAQkAAADcAABAAAAAAPgbWRpYQAAACBtZGhkAAAAAAAAAAAAAAAAAAC7gAAAykBVxAAAAAAALWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABTb3VuZEhhbmRsZXIAAAADi21pbmYAAAAQc21oZAAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAADT3N0YmwAAABnc3RzZAAAAAAAAAABAAAAV21wNGEAAAAAAAAAAQAAAAAAAAAAAAIAEAAAAAC7gAAAAAAAM2VzZHMAAAAAA4CAgCIAAgAEgICAFEAVBbjYAAu4AAAADcoFgICAAhGQBoCAgAECAAAAIHN0dHMAAAAAAAAAAgAAADIAAAQAAAAAAQAAAkAAAAFUc3RzYwAAAAAAAAAbAAAAAQAAAAEAAAABAAAAAgAAAAIAAAABAAAAAwAAAAEAAAABAAAABAAAAAIAAAABAAAABgAAAAEAAAABAAAABwAAAAIAAAABAAAACAAAAAEAAAABAAAACQAAAAIAAAABAAAACgAAAAEAAAABAAAACwAAAAIAAAABAAAADQAAAAEAAAABAAAADgAAAAIAAAABAAAADwAAAAEAAAABAAAAEAAAAAIAAAABAAAAEQAAAAEAAAABAAAAEgAAAAIAAAABAAAAFAAAAAEAAAABAAAAFQAAAAIAAAABAAAAFgAAAAEAAAABAAAAFwAAAAIAAAABAAAAGAAAAAEAAAABAAAAGQAAAAIAAAABAAAAGgAAAAEAAAABAAAAGwAAAAIAAAABAAAAHQAAAAEAAAABAAAAHgAAAAIAAAABAAAAHwAAAAQAAAABAAAA4HN0c3oAAAAAAAAAAAAAADMAAAAaAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAACMc3RjbwAAAAAAAAAfAAAALAAAA1UAAANyAAADhgAAA6IAAAO+AAAD0QAAA+0AAAQAAAAEHAAABC8AAARLAAAEZwAABHoAAASWAAAEqQAABMUAAATYAAAE9AAABRAAAAUjAAAFPwAABVIAAAVuAAAFgQAABZ0AAAWwAAAFzAAABegAAAX7AAAGFwAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTUuMzMuMTAw"}),mu}var gu,zh;function Ow(){if(zh)return gu;zh=1;const{webm:r,mp4:a}=Mw(),o=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,i=()=>"wakeLock"in navigator;class u{constructor(){if(this.enabled=!1,i()){this._wakeLock=null;const A=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",A),document.addEventListener("fullscreenchange",A)}else o()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",a),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(A,c,h){var d=document.createElement("source");d.src=h,d.type=`video/${c}`,A.appendChild(d)}get isEnabled(){return this.enabled}enable(){return i()?navigator.wakeLock.request("screen").then(A=>{this._wakeLock=A,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(A=>{throw this.enabled=!1,console.error(`${A.name}, ${A.message}`),A}):o()?(this.disable(),console.warn(` NoSleep enabled for older iOS devices. This can interrupt active or long-running network requests from completing successfully. See https://github.com/richtr/NoSleep.js/issues/15 for more details. `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(c=>(this.enabled=!0,c)).catch(c=>{throw this.enabled=!1,c})}disable(){i()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):o()?this.noSleepTimer&&(console.warn(` NoSleep now disabled for older iOS devices. - `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return gu=u,gu}var jw=Ow();const Hw=Po(jw);function Lw({packets:r,channels:a,onChannelCreate:o,onRunningChange:i}){const[u,l]=F.useState(!1),[A,c]=F.useState(6),[h,d]=F.useState(!1),[p,x]=F.useState(null),[g,w]=F.useState(new Map),[b,k]=F.useState([]),[v,S]=F.useState(!1),[E,C]=F.useState(null),B=F.useRef(null),D=F.useRef(null),T=F.useRef(!1),I=F.useRef(!1),P=F.useRef(!1),H=F.useRef(new Map),M=F.useRef(!1),N=F.useRef(6),V=F.useRef(new Set);F.useEffect(()=>{const y=new Iw;B.current=y,C(y.isGpuAvailable());const j=new Hw;return D.current=j,y.loadWordlist("/words_alpha.txt").then(()=>S(!0)).catch(L=>console.error("Failed to load wordlist:",L)),()=>{y.destroy(),B.current=null,j.disable(),D.current=null}},[]);const Q=new Set(a.map(y=>y.key.toUpperCase())),X=r.filter(y=>y.payload_type==="GROUP_TEXT"&&!y.decrypted);F.useEffect(()=>{w(y=>{const j=new Map(y);let L=!1;for(const W of X)j.has(W.id)||(j.set(W.id,{packet:W,attempts:0,lastAttemptLength:0,status:"pending"}),L=!0);return L?(H.current=j,j):y})},[X.length]),F.useEffect(()=>{H.current=g},[g]),F.useEffect(()=>{M.current=h},[h]),F.useEffect(()=>{N.current=A},[A]),F.useEffect(()=>{V.current=new Set(X.map(y=>y.id))},[X]),F.useEffect(()=>{i==null||i(u)},[u,i]);const ae=Array.from(g.values()).filter(y=>y.status==="pending").length,J=Array.from(g.values()).filter(y=>y.status==="cracked").length,re=Array.from(g.values()).filter(y=>y.status==="failed").length,q=F.useCallback(async()=>{if(P.current||!B.current||!T.current)return;const y=H.current;let j=null,L=null;for(const[le,ce]of y.entries())if(ce.status==="pending"){j=ce,L=le;break}if(!j&&M.current){const le=Array.from(y.entries()).filter(([,ce])=>ce.status==="failed"&&ce.lastAttemptLength<10);le.length>0&&(le.sort((ce,te)=>ce[1].lastAttemptLength-te[1].lastAttemptLength),[L,j]=le[0])}if(!j||L===null){T.current&&setTimeout(()=>q(),1e3);return}if(!V.current.has(L)){w(le=>{const ce=new Map(le);return ce.delete(L),ce}),T.current&&setTimeout(()=>q(),10);return}P.current=!0;const W=N.current,ue=j.lastAttemptLength>0?j.lastAttemptLength+1:W;try{const le=await B.current.crack(j.packet.data,{maxLength:ue,useTimestampFilter:!0,useUtf8Filter:!0},ce=>{x(ce)});if(I.current){I.current=!1,P.current=!1,x(null);return}if(le.found&&le.roomName&&le.key){w(me=>{const Ne=new Map(me),$e=Ne.get(L);return $e&&Ne.set(L,{...$e,status:"cracked",attempts:$e.attempts+1,lastAttemptLength:ue}),Ne});const ce={roomName:le.roomName,key:le.key,packetId:L,message:le.decryptedMessage||"",crackedAt:Date.now()};k(me=>[...me,ce]);const te=le.key.toUpperCase();if(!Q.has(te))try{const me="#"+le.roomName;await o(me,le.key),await Ye.decryptHistoricalPackets({key_type:"channel",channel_name:me})}catch(me){console.error("Failed to create channel or decrypt historical:",me)}}else w(ce=>{const te=new Map(ce),me=te.get(L);return me&&te.set(L,{...me,status:"failed",attempts:me.attempts+1,lastAttemptLength:ue}),te})}catch(le){console.error("Cracking error:",le),w(ce=>{const te=new Map(ce),me=te.get(L);return me&&te.set(L,{...me,status:"failed",attempts:me.attempts+1,lastAttemptLength:ue}),te})}P.current=!1,x(null),T.current&&setTimeout(()=>q(),100)},[Q,o]),oe=()=>{var y;if(!E){alert("WebGPU is not available in your browser. Please use Chrome 113+ or Edge 113+.");return}l(!0),T.current=!0,I.current=!1,(y=D.current)==null||y.enable(),q()},ee=()=>{var y,j;l(!1),T.current=!1,I.current=!0,(y=B.current)==null||y.abort(),(j=D.current)==null||j.disable()};return R.jsxs("div",{className:"flex flex-col h-full p-3 gap-3 bg-background border-t border-border",children:[R.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[R.jsx("button",{onClick:u?ee:oe,disabled:!v||E===!1,className:qe("px-4 py-1.5 rounded text-sm font-medium",u?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90","disabled:opacity-50 disabled:cursor-not-allowed"),children:u?"Stop":"Start Cracking"}),R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx("label",{className:"text-sm text-muted-foreground",children:"Max Length:"}),R.jsx("input",{type:"number",min:1,max:10,value:A,onChange:y=>c(Math.min(10,Math.max(1,parseInt(y.target.value)||6))),className:"w-14 px-2 py-1 text-sm bg-muted border border-border rounded"})]}),R.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[R.jsx("input",{type:"checkbox",checked:h,onChange:y=>d(y.target.checked),className:"rounded"}),"Retry failed at n+1"]})]}),R.jsxs("div",{className:"flex gap-4 text-sm",children:[R.jsxs("span",{className:"text-muted-foreground",children:["Pending: ",R.jsx("span",{className:"text-foreground font-medium",children:ae})]}),R.jsxs("span",{className:"text-muted-foreground",children:["Cracked: ",R.jsx("span",{className:"text-green-500 font-medium",children:J})]}),R.jsxs("span",{className:"text-muted-foreground",children:["Failed: ",R.jsx("span",{className:"text-destructive font-medium",children:re})]})]}),p&&R.jsxs("div",{className:"space-y-1",children:[R.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[R.jsxs("span",{children:[p.phase==="wordlist"?"Dictionary":p.phase==="bruteforce"?"Bruteforce":"Public Key",p.phase==="bruteforce"&&` - Length ${p.currentLength}`,": ",p.currentPosition]}),R.jsxs("span",{children:[p.rateKeysPerSec>=1e9?`${(p.rateKeysPerSec/1e9).toFixed(2)} Gkeys/s`:`${(p.rateKeysPerSec/1e6).toFixed(1)} Mkeys/s`," ","• ETA: ",p.etaSeconds<60?`${Math.round(p.etaSeconds)}s`:`${Math.round(p.etaSeconds/60)}m`]})]}),R.jsx("div",{className:"h-2 bg-muted rounded overflow-hidden",children:R.jsx("div",{className:"h-full bg-primary transition-all duration-200",style:{width:`${p.percent}%`}})})]}),E===!1&&R.jsx("div",{className:"text-sm text-destructive",children:"WebGPU not available. Cracking requires Chrome 113+ or Edge 113+."}),!v&&E!==!1&&R.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading wordlist..."}),b.length>0&&R.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[R.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cracked Rooms:"}),R.jsx("div",{className:"space-y-1",children:b.map((y,j)=>R.jsxs("div",{className:"text-sm bg-green-950/30 border border-green-900/50 rounded px-2 py-1",children:[R.jsxs("span",{className:"text-green-400 font-medium",children:["#",y.roomName]}),R.jsxs("span",{className:"text-muted-foreground ml-2 text-xs",children:['"',y.message.slice(0,50),y.message.length>50?"...":"",'"']})]},j))})]})]})}const zw=Up,Vw=Wp,Xx=F.forwardRef(({className:r,...a},o)=>R.jsx(al,{className:qe("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a,ref:o}));Xx.displayName=al.displayName;const Uw=tl("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Jx=F.forwardRef(({side:r="right",className:a,children:o,hideCloseButton:i=!1,...u},l)=>R.jsxs(Vw,{children:[R.jsx(Xx,{}),R.jsxs(sl,{ref:l,className:qe(Uw({side:r}),a),...u,children:[!i&&R.jsxs(qp,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[R.jsx(Qh,{className:"h-4 w-4"}),R.jsx("span",{className:"sr-only",children:"Close"})]}),o]})]}));Jx.displayName=sl.displayName;const em=({className:r,...a})=>R.jsx("div",{className:qe("flex flex-col space-y-2 text-center sm:text-left",r),...a});em.displayName="SheetHeader";const tm=F.forwardRef(({className:r,...a},o)=>R.jsx(il,{ref:o,className:qe("text-lg font-semibold text-foreground",r),...a}));tm.displayName=il.displayName;const Ww=F.forwardRef(({className:r,...a},o)=>R.jsx(ll,{ref:o,className:qe("text-sm text-muted-foreground",r),...a}));Ww.displayName=ll.displayName;const Vh=500;function qw(r){return`${r.type}-${r.conversation_key}-${r.text}-${r.sender_timestamp}`}function Qw(){const r=window.location.hash.slice(1);if(!r)return null;if(r==="raw")return{type:"raw",name:"raw"};const a=r.indexOf("/");if(a===-1)return null;const o=r.slice(0,a),i=decodeURIComponent(r.slice(a+1));return(o==="channel"||o==="contact")&&i?{type:o,name:i}:null}function Gw(r){if(!r)return"";if(r.type==="raw")return"#raw";const a=r.type==="channel"&&r.name.startsWith("#")?r.name.slice(1):r.name;return`#${r.type}/${encodeURIComponent(a)}`}function $w(){const r=F.useRef(null),a=F.useRef(null),o=F.useRef(new Set),[i,u]=F.useState(null),[l,A]=F.useState(null),[c,h]=F.useState(null),[d,p]=F.useState([]),[x,g]=F.useState([]),[w,b]=F.useState([]),[k,v]=F.useState(!1),[S,E]=F.useState(!1),[C,B]=F.useState([]),[D,T]=F.useState(null),[I,P]=F.useState(!1),[H,M]=F.useState(!1),[N,V]=F.useState(!1),[Q,X]=F.useState(!1),[ae,J]=F.useState(0),[re,q]=F.useState(!1),[oe,ee]=F.useState(!1),[y,j]=F.useState(Zf),[L,W]=F.useState({}),ue=F.useRef(null),le=F.useMemo(()=>({onHealth:Y=>{const fe=ue.current;ue.current=Y,u(Y),fe!==null&&fe.radio_connected!==Y.radio_connected&&(Y.radio_connected?Ia.success("Radio connected",{description:Y.serial_port?`Connected to ${Y.serial_port}`:void 0}):Ia.error("Radio disconnected",{description:"Check radio connection and power"}))},onError:Y=>{Ia.error(Y.message,{description:Y.details})},onContacts:Y=>p(Y),onChannels:Y=>g(Y),onMessage:Y=>{const fe=a.current,be=qw(Y);if(o.current.has(be)){console.debug("Duplicate message content ignored:",be.slice(0,50));return}if(o.current.add(be),o.current.size>1e3){const pe=Array.from(o.current);o.current=new Set(pe.slice(-500))}let $=null;Y.type==="CHAN"&&Y.conversation_key?$=tn("channel",Y.conversation_key):Y.type==="PRIV"&&Y.conversation_key&&($=tn("contact",Y.conversation_key));const ne=fe?Y.type==="CHAN"&&fe.type==="channel"?Y.conversation_key===fe.id:Y.type==="PRIV"&&fe.type==="contact"?Y.conversation_key&&Kh(fe.id,Y.conversation_key):!1:!1;if(ne&&b(pe=>pe.some(Re=>Re.id===Y.id)?pe:[...pe,Y]),$){const pe=Y.received_at||Math.floor(Date.now()/1e3),Re=ru($,pe);j(Re),!Y.outgoing&&!ne&&W(De=>({...De,[$]:(De[$]||0)+1}))}},onContact:Y=>{p(fe=>{const be=fe.findIndex($=>$.public_key===Y.public_key);if(be>=0){const $=[...fe],ne=fe[be];return $[be]={...ne,...Y,name:Y.name??ne.name,last_path:Y.last_path??ne.last_path,lat:Y.lat??ne.lat,lon:Y.lon??ne.lon},$}return[...fe,Y]})},onRawPacket:Y=>{B(fe=>{if(fe.some($=>$.id===Y.id))return fe;const be=[...fe,Y];return be.length>Vh?be.slice(-Vh):be})},onMessageAcked:Y=>{b(fe=>{const be=fe.findIndex($=>$.id===Y);if(be>=0){const $=[...fe];return $[be]={...fe[be],acked:!0},$}return fe})}}),[]);iv(le);const ce=F.useCallback(async()=>{try{const Y=await Ye.getRadioConfig();A(Y)}catch(Y){console.error("Failed to fetch config:",Y)}},[]),te=F.useCallback(async()=>{try{const Y=await Ye.getSettings();h(Y)}catch(Y){console.error("Failed to fetch app settings:",Y)}},[]),me=F.useCallback(async()=>{try{const Y=await Ye.getUndecryptedPacketCount();J(Y.count)}catch(Y){console.error("Failed to fetch undecrypted count:",Y)}},[]),Ne=200,$e=F.useCallback(async(Y=!1)=>{if(!D){b([]),v(!1);return}Y&&P(!0);try{const fe=await Ye.getMessages({type:D.type==="channel"?"CHAN":"PRIV",conversation_key:D.id,limit:Ne});b(fe),v(fe.length>=Ne)}catch(fe){console.error("Failed to fetch messages:",fe)}finally{Y&&P(!1)}},[D]),nt=F.useCallback(async()=>{if(!(!D||S||!k)){E(!0);try{const Y=await Ye.getMessages({type:D.type==="channel"?"CHAN":"PRIV",conversation_key:D.id,limit:Ne,offset:w.length});Y.length>0&&b(fe=>[...fe,...Y]),v(Y.length>=Ne)}catch(Y){console.error("Failed to fetch older messages:",Y)}finally{E(!1)}}},[D,S,k,w.length]);F.useEffect(()=>{ce(),te(),me()},[ce,te,me]);const st=F.useCallback(()=>{const Y=Qw();if(!Y)return null;if(Y.type==="raw")return{type:"raw",id:"raw",name:"Raw Packet Feed"};if(Y.type==="channel"){const fe=x.find(be=>be.name===Y.name||be.name===`#${Y.name}`);if(fe)return{type:"channel",id:fe.key,name:fe.name}}if(Y.type==="contact"){const fe=d.find(be=>Kn(be.name,be.public_key)===Y.name);if(fe)return{type:"contact",id:fe.public_key,name:Kn(fe.name,fe.public_key)}}return null},[x,d]),Ke=F.useRef(!1);F.useEffect(()=>{if(Ke.current||D||x.length===0&&d.length===0)return;const Y=st();if(Y){T(Y),Ke.current=!0;return}const fe=x.find(be=>be.name==="Public");fe&&(T({type:"channel",id:fe.key,name:fe.name}),Ke.current=!0)},[x,d,D,st]);const Gt=F.useRef(new Set),Ot=F.useRef(new Set);F.useEffect(()=>{const Y=x.filter($=>!Gt.current.has($.key)),fe=d.filter($=>$.public_key&&!Ot.current.has($.public_key));if(Y.length===0&&fe.length===0)return;Y.forEach($=>Gt.current.add($.key)),fe.forEach($=>Ot.current.add($.public_key)),(async()=>{const $=[...Y.map(ne=>({type:"CHAN",conversation_key:ne.key})),...fe.map(ne=>({type:"PRIV",conversation_key:ne.public_key}))];if($.length!==0)try{const ne=await Ye.getMessagesBulk($,100),pe=$v(),Re={},De={};for(const Ie of Y){const Te=ne[`CHAN:${Ie.key}`]||[];if(Te.length>0){const Pe=tn("channel",Ie.key),Ct=pe[Pe]||0,ke=Te.filter(ze=>!ze.outgoing&&ze.received_at>Ct).length;ke>0&&(Re[Pe]=ke);const je=Math.max(...Te.map(ze=>ze.received_at));De[Pe]=je,ru(Pe,je)}}for(const Ie of fe){const Te=ne[`PRIV:${Ie.public_key}`]||[];if(Te.length>0){const Pe=tn("contact",Ie.public_key),Ct=pe[Pe]||0,ke=Te.filter(ze=>!ze.outgoing&&ze.received_at>Ct).length;ke>0&&(Re[Pe]=ke);const je=Math.max(...Te.map(ze=>ze.received_at));De[Pe]=je,ru(Pe,je)}}Object.keys(Re).length>0&&W(Ie=>({...Ie,...Re})),j(Zf())}catch(ne){console.error("Failed to fetch messages bulk:",ne)}})()},[x,d]),F.useEffect(()=>{if(a.current=D,D&&D.type!=="raw"){const Y=tn(D.type,D.id),fe=Math.floor(Date.now()/1e3);nu(Y,fe),W(be=>{if(be[Y]){const $={...be};return delete $[Y],$}return be})}if(D){const Y=Gw(D);Y!==window.location.hash&&window.history.replaceState(null,"",Y)}},[D]),F.useEffect(()=>{$e(!0)},[$e]);const St=F.useCallback(async Y=>{D&&(D.type==="channel"?await Ye.sendChannelMessage(D.id,Y):await Ye.sendDirectMessage(D.id,Y),await $e())},[D,$e]),Wt=F.useCallback(async Y=>{await Ye.updateRadioConfig(Y),await ce()},[ce]),ct=F.useCallback(async Y=>{await Ye.updateSettings(Y),await te()},[te]),Tt=F.useCallback(async Y=>{await Ye.setPrivateKey(Y),await ce()},[ce]),et=F.useCallback(async()=>{await Ye.rebootRadio(),u(fe=>fe&&{...fe,radio_connected:!1}),(async()=>{for(let fe=0;fe<30;fe++){await new Promise(be=>setTimeout(be,1e3));try{const be=await Ye.getHealth();if(u(be),be.radio_connected){ce();return}}catch{}}})()},[ce]),Ve=F.useCallback(async()=>{try{await Ye.sendAdvertisement(!0)}catch(Y){console.error("Failed to send advertisement:",Y)}},[]),ut=F.useCallback(Y=>{var fe;(fe=r.current)==null||fe.appendText(`@[${Y}] `)},[]),$t=F.useCallback(Y=>{T(Y),X(!1)},[]),vr=F.useCallback(()=>{const Y=Math.floor(Date.now()/1e3);for(const fe of x){const be=tn("channel",fe.key);nu(be,Y)}for(const fe of d)if(fe.public_key){const be=tn("contact",fe.public_key);nu(be,Y)}W({})},[x,d]),vt=F.useCallback(async Y=>{if(confirm("Delete this channel? Message history will be preserved."))try{await Ye.deleteChannel(Y),g(fe=>fe.filter(be=>be.key!==Y)),T(null)}catch(fe){console.error("Failed to delete channel:",fe)}},[]),jt=F.useCallback(async Y=>{if(confirm("Delete this contact? Message history will be preserved."))try{await Ye.deleteContact(Y),p(fe=>fe.filter(be=>be.public_key!==Y)),T(null)}catch(fe){console.error("Failed to delete contact:",fe)}},[]),Kt=F.useCallback(async(Y,fe,be)=>{const $={public_key:fe,name:Y,type:0,flags:0,last_path:null,last_path_len:-1,last_advert:null,lat:null,lon:null,last_seen:null,on_radio:!1};p(ne=>[...ne,$]),T({type:"contact",id:fe,name:Kn(Y,fe)}),be&&console.log("Contact historical decryption not yet supported")},[]),or=F.useCallback(async(Y,fe,be)=>{const $=await Ye.createChannel(Y,fe),ne=await Ye.getChannels();g(ne),T({type:"channel",id:$.key,name:Y}),be&&(await Ye.decryptHistoricalPackets({key_type:"channel",channel_key:$.key}),me())},[me]),yt=F.useCallback(async(Y,fe)=>{const be=Y.startsWith("#")?Y:`#${Y}`,$=await Ye.createChannel(be),ne=await Ye.getChannels();g(ne),T({type:"channel",id:$.key,name:be}),fe&&(await Ye.decryptHistoricalPackets({key_type:"channel",channel_name:be}),me())},[me]),ot=R.jsx(e1,{contacts:d,channels:x,activeConversation:D,onSelectConversation:$t,onNewMessage:()=>{M(!0),X(!1)},lastMessageTimes:y,unreadCounts:L,showCracker:re,crackerRunning:oe,onToggleCracker:()=>q(Y=>!Y),onMarkAllRead:vr});return R.jsxs("div",{className:"flex flex-col h-screen",children:[R.jsx(Qv,{health:i,config:l,onConfigClick:()=>V(!0),onAdvertise:Ve,onMenuClick:()=>X(!0)}),R.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[R.jsx("div",{className:"hidden md:block",children:ot}),R.jsx(zw,{open:Q,onOpenChange:X,children:R.jsxs(Jx,{side:"left",className:"w-[280px] p-0 flex flex-col",hideCloseButton:!0,children:[R.jsx(em,{className:"sr-only",children:R.jsx(tm,{children:"Navigation"})}),R.jsx("div",{className:"flex-1 overflow-hidden",children:ot})]})}),R.jsx("div",{className:"flex-1 flex flex-col bg-background",children:D?D.type==="raw"?R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Raw Packet Feed"}),R.jsx("div",{className:"flex-1 overflow-hidden",children:R.jsx(PC,{packets:C})})]}):R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:[R.jsxs("span",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2",children:[R.jsxs("span",{children:[D.type==="channel"&&!D.name.startsWith("#")?"#":"",D.name]}),R.jsx("span",{className:"font-normal text-xs text-muted-foreground font-mono",children:D.id})]}),!(D.type==="channel"&&D.name==="Public")&&R.jsx("button",{className:"py-1 px-3 bg-destructive/20 border border-destructive/30 text-destructive rounded text-xs cursor-pointer hover:bg-destructive/30",onClick:()=>{D.type==="channel"?vt(D.id):jt(D.id)},children:"Delete"})]}),R.jsx(t1,{messages:w,contacts:d,loading:I,loadingOlder:S,hasOlderMessages:k,onSenderClick:D.type==="channel"?ut:void 0,onLoadOlder:nt}),R.jsx(r1,{ref:r,onSend:St,disabled:!(i!=null&&i.radio_connected),placeholder:i!=null&&i.radio_connected?`Message ${D.name}...`:"Radio not connected"})]}):R.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Select a conversation or start a new one"})})]}),R.jsx("div",{className:qe("border-t border-border bg-background transition-all duration-200 overflow-hidden",re?"h-[275px]":"h-0"),children:R.jsx(Lw,{packets:C,channels:x,onChannelCreate:async(Y,fe)=>{const be=await Ye.createChannel(Y,fe),$=await Ye.getChannels();g($),await Ye.decryptHistoricalPackets({key_type:"channel",channel_key:be.key}),me()},onRunningChange:ee})}),R.jsx(CC,{open:H,contacts:d,undecryptedCount:ae,onClose:()=>M(!1),onSelectConversation:Y=>{T(Y),M(!1)},onCreateContact:Kt,onCreateChannel:or,onCreateHashtagChannel:yt}),R.jsx(DC,{open:N,config:l,appSettings:c,onClose:()=>V(!1),onSave:Wt,onSaveAppSettings:ct,onSetPrivateKey:Tt,onReboot:et}),R.jsx(qv,{position:"top-right"})]})}av.createRoot(document.getElementById("root")).render(R.jsx(F.StrictMode,{children:R.jsx($w,{})})); + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}return gu=u,gu}var jw=Ow();const Hw=Po(jw);function Lw({packets:r,channels:a,onChannelCreate:o,onRunningChange:i}){const[u,l]=F.useState(!1),[A,c]=F.useState(6),[h,d]=F.useState(!1),[x,p]=F.useState(!0),[g,C]=F.useState(null),[w,b]=F.useState(new Map),[v,S]=F.useState([]),[E,y]=F.useState(!1),[B,D]=F.useState(null),[T,M]=F.useState(null),P=F.useRef(null),j=F.useRef(null),I=F.useRef(!1),N=F.useRef(!1),z=F.useRef(!1),Q=F.useRef(new Map),X=F.useRef(!1),se=F.useRef(6),J=F.useRef(!0),ne=F.useRef(new Set);F.useEffect(()=>{const re=new Iw;P.current=re,D(re.isGpuAvailable());const le=new Hw;return j.current=le,re.loadWordlist("/words_alpha.txt").then(()=>y(!0)).catch(te=>console.error("Failed to load wordlist:",te)),()=>{re.destroy(),P.current=null,le.disable(),j.current=null}},[]),F.useEffect(()=>{const re=()=>{Xe.getUndecryptedPacketCount().then(({count:te})=>M(te)).catch(()=>M(null))};re();const le=setInterval(re,3e4);return()=>clearInterval(le)},[]);const q=new Set(a.map(re=>re.key.toUpperCase())),ae=r.filter(re=>re.payload_type==="GROUP_TEXT"&&!re.decrypted);F.useEffect(()=>{b(re=>{const le=new Map(re);let te=!1;for(const Se of ae)le.has(Se.id)||(le.set(Se.id,{packet:Se,attempts:0,lastAttemptLength:0,status:"pending"}),te=!0);return te?(Q.current=le,le):re})},[ae.length]),F.useEffect(()=>{Q.current=w},[w]),F.useEffect(()=>{X.current=h},[h]),F.useEffect(()=>{se.current=A},[A]),F.useEffect(()=>{J.current=x},[x]),F.useEffect(()=>{ne.current=new Set(ae.map(re=>re.id))},[ae]),F.useEffect(()=>{i==null||i(u)},[u,i]);const ee=Array.from(w.values()).filter(re=>re.status==="pending").length,k=Array.from(w.values()).filter(re=>re.status==="cracked").length,H=Array.from(w.values()).filter(re=>re.status==="failed").length,V=F.useCallback(async()=>{if(z.current||!P.current||!I.current)return;const re=Q.current;let le=null,te=null;for(const[Ne,Oe]of re.entries())if(Oe.status==="pending"){le=Oe,te=Ne;break}if(!le&&X.current){const Ne=Array.from(re.entries()).filter(([,Oe])=>Oe.status==="failed"&&Oe.lastAttemptLength<10);Ne.length>0&&(Ne.sort((Oe,We)=>Oe[1].lastAttemptLength-We[1].lastAttemptLength),[te,le]=Ne[0])}if(!le||te===null){I.current&&setTimeout(()=>V(),1e3);return}if(!ne.current.has(te)){b(Ne=>{const Oe=new Map(Ne);return Oe.delete(te),Oe}),I.current&&setTimeout(()=>V(),10);return}z.current=!0;const Se=se.current,Me=le.lastAttemptLength>0?le.lastAttemptLength+1:Se;try{const Ne=await P.current.crack(le.packet.data,{maxLength:Me,useTimestampFilter:!0,useUtf8Filter:!0},Oe=>{C(Oe)});if(N.current){N.current=!1,z.current=!1,C(null);return}if(Ne.found&&Ne.roomName&&Ne.key){b(Re=>{const Bt=new Map(Re),xt=Bt.get(te);return xt&&Bt.set(te,{...xt,status:"cracked",attempts:xt.attempts+1,lastAttemptLength:Me}),Bt});const Oe={roomName:Ne.roomName,key:Ne.key,packetId:te,message:Ne.decryptedMessage||"",crackedAt:Date.now()};S(Re=>[...Re,Oe]);const We=Ne.key.toUpperCase();if(!q.has(We))try{const Re="#"+Ne.roomName;await o(Re,Ne.key),J.current&&await Xe.decryptHistoricalPackets({key_type:"channel",channel_name:Re})}catch(Re){console.error("Failed to create channel or decrypt historical:",Re)}}else b(Oe=>{const We=new Map(Oe),Re=We.get(te);return Re&&We.set(te,{...Re,status:"failed",attempts:Re.attempts+1,lastAttemptLength:Me}),We})}catch(Ne){console.error("Cracking error:",Ne),b(Oe=>{const We=new Map(Oe),Re=We.get(te);return Re&&We.set(te,{...Re,status:"failed",attempts:Re.attempts+1,lastAttemptLength:Me}),We})}z.current=!1,C(null),I.current&&setTimeout(()=>V(),100)},[q,o]),W=()=>{var re;if(!B){alert("WebGPU is not available in your browser. Please use Chrome 113+ or Edge 113+.");return}l(!0),I.current=!0,N.current=!1,(re=j.current)==null||re.enable(),V()},de=()=>{var re,le;l(!1),I.current=!1,N.current=!0,(re=P.current)==null||re.abort(),(le=j.current)==null||le.disable()};return R.jsxs("div",{className:"flex flex-col h-full p-3 gap-3 bg-background border-t border-border",children:[R.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[R.jsx("button",{onClick:u?de:W,disabled:!E||B===!1,className:Ke("px-4 py-1.5 rounded text-sm font-medium",u?"bg-destructive text-destructive-foreground hover:bg-destructive/90":"bg-primary text-primary-foreground hover:bg-primary/90","disabled:opacity-50 disabled:cursor-not-allowed"),children:u?"Stop":"Start Cracking"}),R.jsxs("div",{className:"flex items-center gap-2",children:[R.jsx("label",{className:"text-sm text-muted-foreground",children:"Max Length:"}),R.jsx("input",{type:"number",min:1,max:10,value:A,onChange:re=>c(Math.min(10,Math.max(1,parseInt(re.target.value)||6))),className:"w-14 px-2 py-1 text-sm bg-muted border border-border rounded"})]}),R.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[R.jsx("input",{type:"checkbox",checked:h,onChange:re=>d(re.target.checked),className:"rounded"}),"Retry failed at n+1"]}),R.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground cursor-pointer",children:[R.jsx("input",{type:"checkbox",checked:x,onChange:re=>p(re.target.checked),className:"rounded"}),"Decrypt historical"]}),x&&T!==null&&T>0&&R.jsxs("span",{className:"text-xs text-muted-foreground",children:["(may take a while for ",T.toLocaleString()," packets)"]})]}),R.jsxs("div",{className:"flex gap-4 text-sm",children:[R.jsxs("span",{className:"text-muted-foreground",children:["Pending: ",R.jsx("span",{className:"text-foreground font-medium",children:ee})]}),R.jsxs("span",{className:"text-muted-foreground",children:["Cracked: ",R.jsx("span",{className:"text-green-500 font-medium",children:k})]}),R.jsxs("span",{className:"text-muted-foreground",children:["Failed: ",R.jsx("span",{className:"text-destructive font-medium",children:H})]})]}),g&&R.jsxs("div",{className:"space-y-1",children:[R.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[R.jsxs("span",{children:[g.phase==="wordlist"?"Dictionary":g.phase==="bruteforce"?"Bruteforce":"Public Key",g.phase==="bruteforce"&&` - Length ${g.currentLength}`,": ",g.currentPosition]}),R.jsxs("span",{children:[g.rateKeysPerSec>=1e9?`${(g.rateKeysPerSec/1e9).toFixed(2)} Gkeys/s`:`${(g.rateKeysPerSec/1e6).toFixed(1)} Mkeys/s`," ","• ETA: ",g.etaSeconds<60?`${Math.round(g.etaSeconds)}s`:`${Math.round(g.etaSeconds/60)}m`]})]}),R.jsx("div",{className:"h-2 bg-muted rounded overflow-hidden",children:R.jsx("div",{className:"h-full bg-primary transition-all duration-200",style:{width:`${g.percent}%`}})})]}),B===!1&&R.jsx("div",{className:"text-sm text-destructive",children:"WebGPU not available. Cracking requires Chrome 113+ or Edge 113+."}),!E&&B!==!1&&R.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading wordlist..."}),v.length>0&&R.jsxs("div",{className:"flex-1 overflow-y-auto min-h-0",children:[R.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Cracked Rooms:"}),R.jsx("div",{className:"space-y-1",children:v.map((re,le)=>R.jsxs("div",{className:"text-sm bg-green-950/30 border border-green-900/50 rounded px-2 py-1",children:[R.jsxs("span",{className:"text-green-400 font-medium",children:["#",re.roomName]}),R.jsxs("span",{className:"text-muted-foreground ml-2 text-xs",children:['"',re.message.slice(0,50),re.message.length>50?"...":"",'"']})]},le))})]})]})}const zw=Up,Vw=Wp,Xx=F.forwardRef(({className:r,...a},o)=>R.jsx(al,{className:Ke("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",r),...a,ref:o}));Xx.displayName=al.displayName;const Uw=tl("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),Jx=F.forwardRef(({side:r="right",className:a,children:o,hideCloseButton:i=!1,...u},l)=>R.jsxs(Vw,{children:[R.jsx(Xx,{}),R.jsxs(sl,{ref:l,className:Ke(Uw({side:r}),a),...u,children:[!i&&R.jsxs(qp,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[R.jsx(Qh,{className:"h-4 w-4"}),R.jsx("span",{className:"sr-only",children:"Close"})]}),o]})]}));Jx.displayName=sl.displayName;const em=({className:r,...a})=>R.jsx("div",{className:Ke("flex flex-col space-y-2 text-center sm:text-left",r),...a});em.displayName="SheetHeader";const tm=F.forwardRef(({className:r,...a},o)=>R.jsx(il,{ref:o,className:Ke("text-lg font-semibold text-foreground",r),...a}));tm.displayName=il.displayName;const Ww=F.forwardRef(({className:r,...a},o)=>R.jsx(ll,{ref:o,className:Ke("text-sm text-muted-foreground",r),...a}));Ww.displayName=ll.displayName;const Vh=500;function qw(r){return`${r.type}-${r.conversation_key}-${r.text}-${r.sender_timestamp}`}function Qw(){const r=window.location.hash.slice(1);if(!r)return null;if(r==="raw")return{type:"raw",name:"raw"};const a=r.indexOf("/");if(a===-1)return null;const o=r.slice(0,a),i=decodeURIComponent(r.slice(a+1));return(o==="channel"||o==="contact")&&i?{type:o,name:i}:null}function Gw(r){if(!r)return"";if(r.type==="raw")return"#raw";const a=r.type==="channel"&&r.name.startsWith("#")?r.name.slice(1):r.name;return`#${r.type}/${encodeURIComponent(a)}`}function $w(){const r=F.useRef(null),a=F.useRef(null),o=F.useRef(new Set),[i,u]=F.useState(null),[l,A]=F.useState(null),[c,h]=F.useState(null),[d,x]=F.useState([]),[p,g]=F.useState([]),[C,w]=F.useState([]),[b,v]=F.useState(!1),[S,E]=F.useState(!1),[y,B]=F.useState([]),[D,T]=F.useState(null),[M,P]=F.useState(!1),[j,I]=F.useState(!1),[N,z]=F.useState(!1),[Q,X]=F.useState(!1),[se,J]=F.useState(0),[ne,q]=F.useState(!1),[ae,ee]=F.useState(!1),[k,H]=F.useState(Zf),[V,W]=F.useState({}),de=F.useRef(null),re=F.useMemo(()=>({onHealth:Y=>{const fe=de.current;de.current=Y,u(Y),fe!==null&&fe.radio_connected!==Y.radio_connected&&(Y.radio_connected?Ia.success("Radio connected",{description:Y.serial_port?`Connected to ${Y.serial_port}`:void 0}):Ia.error("Radio disconnected",{description:"Check radio connection and power"}))},onError:Y=>{Ia.error(Y.message,{description:Y.details})},onContacts:Y=>x(Y),onChannels:Y=>g(Y),onMessage:Y=>{const fe=a.current,we=qw(Y);if(o.current.has(we)){console.debug("Duplicate message content ignored:",we.slice(0,50));return}if(o.current.add(we),o.current.size>1e3){const pe=Array.from(o.current);o.current=new Set(pe.slice(-500))}let $=null;Y.type==="CHAN"&&Y.conversation_key?$=tn("channel",Y.conversation_key):Y.type==="PRIV"&&Y.conversation_key&&($=tn("contact",Y.conversation_key));const oe=fe?Y.type==="CHAN"&&fe.type==="channel"?Y.conversation_key===fe.id:Y.type==="PRIV"&&fe.type==="contact"?Y.conversation_key&&Kh(fe.id,Y.conversation_key):!1:!1;if(oe&&w(pe=>pe.some(Te=>Te.id===Y.id)?pe:[...pe,Y]),$){const pe=Y.received_at||Math.floor(Date.now()/1e3),Te=ru($,pe);H(Te),!Y.outgoing&&!oe&&W(De=>({...De,[$]:(De[$]||0)+1}))}},onContact:Y=>{x(fe=>{const we=fe.findIndex($=>$.public_key===Y.public_key);if(we>=0){const $=[...fe],oe=fe[we];return $[we]={...oe,...Y,name:Y.name??oe.name,last_path:Y.last_path??oe.last_path,lat:Y.lat??oe.lat,lon:Y.lon??oe.lon},$}return[...fe,Y]})},onRawPacket:Y=>{B(fe=>{if(fe.some($=>$.id===Y.id))return fe;const we=[...fe,Y];return we.length>Vh?we.slice(-Vh):we})},onMessageAcked:Y=>{w(fe=>{const we=fe.findIndex($=>$.id===Y);if(we>=0){const $=[...fe];return $[we]={...fe[we],acked:!0},$}return fe})}}),[]);iv(re);const le=F.useCallback(async()=>{try{const Y=await Xe.getRadioConfig();A(Y)}catch(Y){console.error("Failed to fetch config:",Y)}},[]),te=F.useCallback(async()=>{try{const Y=await Xe.getSettings();h(Y)}catch(Y){console.error("Failed to fetch app settings:",Y)}},[]),Se=F.useCallback(async()=>{try{const Y=await Xe.getUndecryptedPacketCount();J(Y.count)}catch(Y){console.error("Failed to fetch undecrypted count:",Y)}},[]),Me=200,Ne=F.useCallback(async(Y=!1)=>{if(!D){w([]),v(!1);return}Y&&P(!0);try{const fe=await Xe.getMessages({type:D.type==="channel"?"CHAN":"PRIV",conversation_key:D.id,limit:Me});w(fe),v(fe.length>=Me)}catch(fe){console.error("Failed to fetch messages:",fe)}finally{Y&&P(!1)}},[D]),Oe=F.useCallback(async()=>{if(!(!D||S||!b)){E(!0);try{const Y=await Xe.getMessages({type:D.type==="channel"?"CHAN":"PRIV",conversation_key:D.id,limit:Me,offset:C.length});Y.length>0&&w(fe=>[...fe,...Y]),v(Y.length>=Me)}catch(Y){console.error("Failed to fetch older messages:",Y)}finally{E(!1)}}},[D,S,b,C.length]);F.useEffect(()=>{le(),te(),Se()},[le,te,Se]);const We=F.useCallback(()=>{const Y=Qw();if(!Y)return null;if(Y.type==="raw")return{type:"raw",id:"raw",name:"Raw Packet Feed"};if(Y.type==="channel"){const fe=p.find(we=>we.name===Y.name||we.name===`#${Y.name}`);if(fe)return{type:"channel",id:fe.key,name:fe.name}}if(Y.type==="contact"){const fe=d.find(we=>Kn(we.name,we.public_key)===Y.name);if(fe)return{type:"contact",id:fe.public_key,name:Kn(fe.name,fe.public_key)}}return null},[p,d]),Re=F.useRef(!1);F.useEffect(()=>{if(Re.current||D||p.length===0&&d.length===0)return;const Y=We();if(Y){T(Y),Re.current=!0;return}const fe=p.find(we=>we.name==="Public");fe&&(T({type:"channel",id:fe.key,name:fe.name}),Re.current=!0)},[p,d,D,We]);const Bt=F.useRef(new Set),xt=F.useRef(new Set);F.useEffect(()=>{const Y=p.filter($=>!Bt.current.has($.key)),fe=d.filter($=>$.public_key&&!xt.current.has($.public_key));if(Y.length===0&&fe.length===0)return;Y.forEach($=>Bt.current.add($.key)),fe.forEach($=>xt.current.add($.public_key)),(async()=>{const $=[...Y.map(oe=>({type:"CHAN",conversation_key:oe.key})),...fe.map(oe=>({type:"PRIV",conversation_key:oe.public_key}))];if($.length!==0)try{const oe=await Xe.getMessagesBulk($,100),pe=$v(),Te={},De={};for(const je of Y){const Pe=oe[`CHAN:${je.key}`]||[];if(Pe.length>0){const Ie=tn("channel",je.key),wt=pe[Ie]||0,Ee=Pe.filter(qe=>!qe.outgoing&&qe.received_at>wt).length;Ee>0&&(Te[Ie]=Ee);const ze=Math.max(...Pe.map(qe=>qe.received_at));De[Ie]=ze,ru(Ie,ze)}}for(const je of fe){const Pe=oe[`PRIV:${je.public_key}`]||[];if(Pe.length>0){const Ie=tn("contact",je.public_key),wt=pe[Ie]||0,Ee=Pe.filter(qe=>!qe.outgoing&&qe.received_at>wt).length;Ee>0&&(Te[Ie]=Ee);const ze=Math.max(...Pe.map(qe=>qe.received_at));De[Ie]=ze,ru(Ie,ze)}}Object.keys(Te).length>0&&W(je=>({...je,...Te})),H(Zf())}catch(oe){console.error("Failed to fetch messages bulk:",oe)}})()},[p,d]),F.useEffect(()=>{if(a.current=D,D&&D.type!=="raw"){const Y=tn(D.type,D.id),fe=Math.floor(Date.now()/1e3);nu(Y,fe),W(we=>{if(we[Y]){const $={...we};return delete $[Y],$}return we})}if(D){const Y=Gw(D);Y!==window.location.hash&&window.history.replaceState(null,"",Y)}},[D]),F.useEffect(()=>{Ne(!0)},[Ne]);const _t=F.useCallback(async Y=>{D&&(D.type==="channel"?await Xe.sendChannelMessage(D.id,Y):await Xe.sendDirectMessage(D.id,Y),await Ne())},[D,Ne]),qt=F.useCallback(async Y=>{await Xe.updateRadioConfig(Y),await le()},[le]),ct=F.useCallback(async Y=>{await Xe.updateSettings(Y),await te()},[te]),Nt=F.useCallback(async Y=>{await Xe.setPrivateKey(Y),await le()},[le]),rt=F.useCallback(async()=>{await Xe.rebootRadio(),u(fe=>fe&&{...fe,radio_connected:!1}),(async()=>{for(let fe=0;fe<30;fe++){await new Promise(we=>setTimeout(we,1e3));try{const we=await Xe.getHealth();if(u(we),we.radio_connected){le();return}}catch{}}})()},[le]),Qe=F.useCallback(async()=>{try{await Xe.sendAdvertisement(!0)}catch(Y){console.error("Failed to send advertisement:",Y)}},[]),ut=F.useCallback(Y=>{var fe;(fe=r.current)==null||fe.appendText(`@[${Y}] `)},[]),$t=F.useCallback(Y=>{T(Y),X(!1)},[]),vr=F.useCallback(()=>{const Y=Math.floor(Date.now()/1e3);for(const fe of p){const we=tn("channel",fe.key);nu(we,Y)}for(const fe of d)if(fe.public_key){const we=tn("contact",fe.public_key);nu(we,Y)}W({})},[p,d]),yt=F.useCallback(async Y=>{if(confirm("Delete this channel? Message history will be preserved."))try{await Xe.deleteChannel(Y),g(fe=>fe.filter(we=>we.key!==Y)),T(null)}catch(fe){console.error("Failed to delete channel:",fe)}},[]),Ht=F.useCallback(async Y=>{if(confirm("Delete this contact? Message history will be preserved."))try{await Xe.deleteContact(Y),x(fe=>fe.filter(we=>we.public_key!==Y)),T(null)}catch(fe){console.error("Failed to delete contact:",fe)}},[]),Kt=F.useCallback(async(Y,fe,we)=>{const $={public_key:fe,name:Y,type:0,flags:0,last_path:null,last_path_len:-1,last_advert:null,lat:null,lon:null,last_seen:null,on_radio:!1};x(oe=>[...oe,$]),T({type:"contact",id:fe,name:Kn(Y,fe)}),we&&console.log("Contact historical decryption not yet supported")},[]),or=F.useCallback(async(Y,fe,we)=>{const $=await Xe.createChannel(Y,fe),oe=await Xe.getChannels();g(oe),T({type:"channel",id:$.key,name:Y}),we&&(await Xe.decryptHistoricalPackets({key_type:"channel",channel_key:$.key}),Se())},[Se]),Ct=F.useCallback(async(Y,fe)=>{const we=Y.startsWith("#")?Y:`#${Y}`,$=await Xe.createChannel(we),oe=await Xe.getChannels();g(oe),T({type:"channel",id:$.key,name:we}),fe&&(await Xe.decryptHistoricalPackets({key_type:"channel",channel_name:we}),Se())},[Se]),at=R.jsx(e1,{contacts:d,channels:p,activeConversation:D,onSelectConversation:$t,onNewMessage:()=>{I(!0),X(!1)},lastMessageTimes:k,unreadCounts:V,showCracker:ne,crackerRunning:ae,onToggleCracker:()=>q(Y=>!Y),onMarkAllRead:vr});return R.jsxs("div",{className:"flex flex-col h-screen",children:[R.jsx(Qv,{health:i,config:l,onConfigClick:()=>z(!0),onAdvertise:Qe,onMenuClick:()=>X(!0)}),R.jsxs("div",{className:"flex flex-1 overflow-hidden",children:[R.jsx("div",{className:"hidden md:block",children:at}),R.jsx(zw,{open:Q,onOpenChange:X,children:R.jsxs(Jx,{side:"left",className:"w-[280px] p-0 flex flex-col",hideCloseButton:!0,children:[R.jsx(em,{className:"sr-only",children:R.jsx(tm,{children:"Navigation"})}),R.jsx("div",{className:"flex-1 overflow-hidden",children:at})]})}),R.jsx("div",{className:"flex-1 flex flex-col bg-background",children:D?D.type==="raw"?R.jsxs(R.Fragment,{children:[R.jsx("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:"Raw Packet Feed"}),R.jsx("div",{className:"flex-1 overflow-hidden",children:R.jsx(PC,{packets:y})})]}):R.jsxs(R.Fragment,{children:[R.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-border font-medium",children:[R.jsxs("span",{className:"flex flex-col sm:flex-row sm:items-center sm:gap-2",children:[R.jsxs("span",{children:[D.type==="channel"&&!D.name.startsWith("#")?"#":"",D.name]}),R.jsx("span",{className:"font-normal text-xs text-muted-foreground font-mono",children:D.id})]}),!(D.type==="channel"&&D.name==="Public")&&R.jsx("button",{className:"py-1 px-3 bg-destructive/20 border border-destructive/30 text-destructive rounded text-xs cursor-pointer hover:bg-destructive/30",onClick:()=>{D.type==="channel"?yt(D.id):Ht(D.id)},children:"Delete"})]}),R.jsx(t1,{messages:C,contacts:d,loading:M,loadingOlder:S,hasOlderMessages:b,onSenderClick:D.type==="channel"?ut:void 0,onLoadOlder:Oe}),R.jsx(r1,{ref:r,onSend:_t,disabled:!(i!=null&&i.radio_connected),placeholder:i!=null&&i.radio_connected?`Message ${D.name}...`:"Radio not connected"})]}):R.jsx("div",{className:"flex-1 flex items-center justify-center text-muted-foreground",children:"Select a conversation or start a new one"})})]}),R.jsx("div",{className:Ke("border-t border-border bg-background transition-all duration-200 overflow-hidden",ne?"h-[275px]":"h-0"),children:R.jsx(Lw,{packets:y,channels:p,onChannelCreate:async(Y,fe)=>{const we=await Xe.createChannel(Y,fe),$=await Xe.getChannels();g($),await Xe.decryptHistoricalPackets({key_type:"channel",channel_key:we.key}),Se()},onRunningChange:ee})}),R.jsx(CC,{open:j,contacts:d,undecryptedCount:se,onClose:()=>I(!1),onSelectConversation:Y=>{T(Y),I(!1)},onCreateContact:Kt,onCreateChannel:or,onCreateHashtagChannel:Ct}),R.jsx(DC,{open:N,config:l,appSettings:c,onClose:()=>z(!1),onSave:qt,onSaveAppSettings:ct,onSetPrivateKey:Nt,onReboot:rt}),R.jsx(qv,{position:"top-right"})]})}av.createRoot(document.getElementById("root")).render(R.jsx(F.StrictMode,{children:R.jsx($w,{})})); diff --git a/frontend/dist/index.html b/frontend/dist/index.html index 3100573..fa79e5f 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,7 +4,7 @@ RemoteTerm for MeshCore - + diff --git a/frontend/src/components/CrackerPanel.tsx b/frontend/src/components/CrackerPanel.tsx index 1020c1c..fdc5666 100644 --- a/frontend/src/components/CrackerPanel.tsx +++ b/frontend/src/components/CrackerPanel.tsx @@ -31,11 +31,13 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan const [isRunning, setIsRunning] = useState(false); const [maxLength, setMaxLength] = useState(6); const [retryFailedAtNextLength, setRetryFailedAtNextLength] = useState(false); + const [decryptHistorical, setDecryptHistorical] = useState(true); const [progress, setProgress] = useState(null); const [queue, setQueue] = useState>(new Map()); const [crackedRooms, setCrackedRooms] = useState([]); const [wordlistLoaded, setWordlistLoaded] = useState(false); const [gpuAvailable, setGpuAvailable] = useState(null); + const [undecryptedPacketCount, setUndecryptedPacketCount] = useState(null); const crackerRef = useRef(null); const noSleepRef = useRef(null); @@ -45,6 +47,7 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan const queueRef = useRef>(new Map()); const retryFailedRef = useRef(false); const maxLengthRef = useRef(6); + const decryptHistoricalRef = useRef(true); const undecryptedIdsRef = useRef>(new Set()); // Initialize cracker and NoSleep @@ -69,6 +72,19 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan }; }, []); + // Fetch undecrypted packet count + useEffect(() => { + const fetchCount = () => { + api.getUndecryptedPacketCount() + .then(({ count }) => setUndecryptedPacketCount(count)) + .catch(() => setUndecryptedPacketCount(null)); + }; + fetchCount(); + // Refresh periodically + const interval = setInterval(fetchCount, 30000); + return () => clearInterval(interval); + }, []); + // Get existing channel keys for filtering const existingChannelKeys = new Set(channels.map(c => c.key.toUpperCase())); @@ -116,6 +132,10 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan maxLengthRef.current = maxLength; }, [maxLength]); + useEffect(() => { + decryptHistoricalRef.current = decryptHistorical; + }, [decryptHistorical]); + // Keep undecrypted IDs ref in sync - used to skip packets already decrypted by other means useEffect(() => { undecryptedIdsRef.current = new Set(undecryptedGroupText.map(p => p.id)); @@ -245,9 +265,11 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan try { const channelName = '#' + result.roomName; await onChannelCreate(channelName, result.key); - // Decrypt any other historical packets with this newly discovered key + // Optionally decrypt any other historical packets with this newly discovered key // This prevents wasting cracking cycles on packets from the same channel - await api.decryptHistoricalPackets({ key_type: 'channel', channel_name: channelName }); + if (decryptHistoricalRef.current) { + await api.decryptHistoricalPackets({ key_type: 'channel', channel_name: channelName }); + } } catch (err) { console.error('Failed to create channel or decrypt historical:', err); } @@ -355,6 +377,21 @@ export function CrackerPanel({ packets, channels, onChannelCreate, onRunningChan /> Retry failed at n+1 + + + {decryptHistorical && undecryptedPacketCount !== null && undecryptedPacketCount > 0 && ( + + (may take a while for {undecryptedPacketCount.toLocaleString()} packets) + + )} {/* Status */}