9remote 2.3.5 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.cjs +79 -79
- package/dist/server.cjs +186 -182
- package/dist/ui/assets/index-DcU9pHM0.js +58 -0
- package/dist/ui/index.html +1 -1
- package/package.json +2 -1
- package/dist/ui/assets/index-Da6-1umQ.js +0 -8
package/dist/ui/index.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
const savedTheme = localStorage.getItem("9remote-theme") || "dark";
|
|
15
15
|
document.documentElement.setAttribute("data-theme", savedTheme);
|
|
16
16
|
</script>
|
|
17
|
-
<script type="module" crossorigin src="/assets/index-
|
|
17
|
+
<script type="module" crossorigin src="/assets/index-DcU9pHM0.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/index-CLABbREo.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "9remote",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Remote terminal access from anywhere",
|
|
6
6
|
"main": "dist/server.cjs",
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
"sharp": "0.33.5",
|
|
50
50
|
"socket.io": "^4.8.3",
|
|
51
51
|
"utf-8-validate": "6.0.6",
|
|
52
|
+
"https-proxy-agent": "^7.0.0",
|
|
52
53
|
"web-push": "^3.6.7"
|
|
53
54
|
},
|
|
54
55
|
"optionalDependencies": {
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))x(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&x(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function x(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();var Fn,se,N0,Ae,Bt,R0,A0,Jn,ln,nn,E0,Nt,yt,_t,pn={},mn=[],kx=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Hn=Array.isArray;function we(e,t){for(var n in t)e[n]=t[n];return e}function Rt(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function wx(e,t,n){var x,r,a,o={};for(a in t)a=="key"?x=t[a]:a=="ref"?r=t[a]:o[a]=t[a];if(arguments.length>2&&(o.children=arguments.length>3?Fn.call(arguments,2):n),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)o[a]===void 0&&(o[a]=e.defaultProps[a]);return cn(e,o,x,r,null)}function cn(e,t,n,x,r){var a={type:e,props:t,key:n,ref:x,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:r??++N0,__i:-1,__u:0};return r==null&&se.vnode!=null&&se.vnode(a),a}function Ue(e){return e.children}function un(e,t){this.props=e,this.context=t}function Fe(e,t){if(t==null)return e.__?Fe(e.__,e.__i+1):null;for(var n;t<e.__k.length;t++)if((n=e.__k[t])!=null&&n.__e!=null)return n.__e;return typeof e.type=="function"?Fe(e):null}function Sx(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,x=[],r=[],a=we({},t);a.__v=t.__v+1,se.vnode&&se.vnode(a),At(e.__P,a,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,x,n??Fe(t),!!(32&t.__u),r),a.__v=t.__v,a.__.__k[a.__i]=a,U0(x,a,r),t.__e=t.__=null,a.__e!=n&&M0(a)}}function M0(e){if((e=e.__)!=null&&e.__c!=null)return e.__e=e.__c.base=null,e.__k.some(function(t){if(t!=null&&t.__e!=null)return e.__e=e.__c.base=t.__e}),M0(e)}function Ut(e){(!e.__d&&(e.__d=!0)&&Ae.push(e)&&!fn.__r++||Bt!=se.debounceRendering)&&((Bt=se.debounceRendering)||R0)(fn)}function fn(){try{for(var e,t=1;Ae.length;)Ae.length>t&&Ae.sort(A0),e=Ae.shift(),t=Ae.length,Sx(e)}finally{Ae.length=fn.__r=0}}function P0(e,t,n,x,r,a,o,i,l,u,p){var f,c,m,h,v,M,b,_=x&&x.__k||mn,y=t.length;for(l=Ix(n,t,_,l,y),f=0;f<y;f++)(m=n.__k[f])!=null&&(c=m.__i!=-1&&_[m.__i]||pn,m.__i=f,M=At(e,m,c,r,a,o,i,l,u,p),h=m.__e,m.ref&&c.ref!=m.ref&&(c.ref&&Et(c.ref,null,m),p.push(m.ref,m.__c||h,m)),v==null&&h!=null&&(v=h),(b=!!(4&m.__u))||c.__k===m.__k?(l=G0(m,l,e,b),b&&c.__e&&(c.__e=null)):typeof m.type=="function"&&M!==void 0?l=M:h&&(l=h.nextSibling),m.__u&=-7);return n.__e=v,l}function Ix(e,t,n,x,r){var a,o,i,l,u,p=n.length,f=p,c=0;for(e.__k=new Array(r),a=0;a<r;a++)(o=t[a])!=null&&typeof o!="boolean"&&typeof o!="function"?(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?o=e.__k[a]=cn(null,o,null,null,null):Hn(o)?o=e.__k[a]=cn(Ue,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?o=e.__k[a]=cn(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):e.__k[a]=o,l=a+c,o.__=e,o.__b=e.__b+1,i=null,(u=o.__i=Cx(o,n,l,f))!=-1&&(f--,(i=n[u])&&(i.__u|=2)),i==null||i.__v==null?(u==-1&&(r>p?c--:r<p&&c++),typeof o.type!="function"&&(o.__u|=4)):u!=l&&(u==l-1?c--:u==l+1?c++:(u>l?c--:c++,o.__u|=4))):e.__k[a]=null;if(f)for(a=0;a<p;a++)(i=n[a])!=null&&(2&i.__u)==0&&(i.__e==x&&(x=Fe(i)),L0(i,i));return x}function G0(e,t,n,x){var r,a;if(typeof e.type=="function"){for(r=e.__k,a=0;r&&a<r.length;a++)r[a]&&(r[a].__=e,t=G0(r[a],t,n,x));return t}e.__e!=t&&(x&&(t&&e.type&&!t.parentNode&&(t=Fe(e)),n.insertBefore(e.__e,t||null)),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function Cx(e,t,n,x){var r,a,o,i=e.key,l=e.type,u=t[n],p=u!=null&&(2&u.__u)==0;if(u===null&&i==null||p&&i==u.key&&l==u.type)return n;if(x>(p?1:0)){for(r=n-1,a=n+1;r>=0||a<t.length;)if((u=t[o=r>=0?r--:a++])!=null&&(2&u.__u)==0&&i==u.key&&l==u.type)return o}return-1}function zt(e,t,n){t[0]=="-"?e.setProperty(t,n??""):e[t]=n==null?"":typeof n!="number"||kx.test(t)?n:n+"px"}function xn(e,t,n,x,r){var a,o;e:if(t=="style")if(typeof n=="string")e.style.cssText=n;else{if(typeof x=="string"&&(e.style.cssText=x=""),x)for(t in x)n&&t in n||zt(e.style,t,"");if(n)for(t in n)x&&n[t]==x[t]||zt(e.style,t,n[t])}else if(t[0]=="o"&&t[1]=="n")a=t!=(t=t.replace(E0,"$1")),o=t.toLowerCase(),t=o in e||t=="onFocusOut"||t=="onFocusIn"?o.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+a]=n,n?x?n[nn]=x[nn]:(n[nn]=Nt,e.addEventListener(t,a?_t:yt,a)):e.removeEventListener(t,a?_t:yt,a);else{if(r=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=n??"";break e}catch{}typeof n=="function"||(n==null||n===!1&&t[4]!="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&n==1?"":n))}}function Lt(e){return function(t){if(this.l){var n=this.l[t.type+e];if(t[ln]==null)t[ln]=Nt++;else if(t[ln]<n[nn])return;return n(se.event?se.event(t):t)}}}function At(e,t,n,x,r,a,o,i,l,u){var p,f,c,m,h,v,M,b,_,y,R,oe,S,D,N,w,I=t.type;if(t.constructor!==void 0)return null;128&n.__u&&(l=!!(32&n.__u),a=[i=t.__e=n.__e]),(p=se.__b)&&p(t);e:if(typeof I=="function"){f=o.length;try{if(_=t.props,y=I.prototype&&I.prototype.render,R=(p=I.contextType)&&x[p.__c],oe=p?R?R.props.value:p.__:x,n.__c?b=(c=t.__c=n.__c).__=c.__E:(y?t.__c=c=new I(_,oe):(t.__c=c=new un(_,oe),c.constructor=I,c.render=Dx),R&&R.sub(c),c.state||(c.state={}),c.__n=x,m=c.__d=!0,c.__h=[],c._sb=[]),y&&c.__s==null&&(c.__s=c.state),y&&I.getDerivedStateFromProps!=null&&(c.__s==c.state&&(c.__s=we({},c.__s)),we(c.__s,I.getDerivedStateFromProps(_,c.__s))),h=c.props,v=c.state,c.__v=t,m)y&&I.getDerivedStateFromProps==null&&c.componentWillMount!=null&&c.componentWillMount(),y&&c.componentDidMount!=null&&c.__h.push(c.componentDidMount);else{if(y&&I.getDerivedStateFromProps==null&&_!==h&&c.componentWillReceiveProps!=null&&c.componentWillReceiveProps(_,oe),t.__v==n.__v||!c.__e&&c.shouldComponentUpdate!=null&&c.shouldComponentUpdate(_,c.__s,oe)===!1){t.__v!=n.__v&&(c.props=_,c.state=c.__s,c.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(C){C&&(C.__=t)}),mn.push.apply(c.__h,c._sb),c._sb=[],c.__h.length&&o.push(c);break e}c.componentWillUpdate!=null&&c.componentWillUpdate(_,c.__s,oe),y&&c.componentDidUpdate!=null&&c.__h.push(function(){c.componentDidUpdate(h,v,M)})}if(c.context=oe,c.props=_,c.__P=e,c.__e=!1,S=se.__r,D=0,y)c.state=c.__s,c.__d=!1,S&&S(t),p=c.render(c.props,c.state,c.context),mn.push.apply(c.__h,c._sb),c._sb=[];else do c.__d=!1,S&&S(t),p=c.render(c.props,c.state,c.context),c.state=c.__s;while(c.__d&&++D<25);c.state=c.__s,c.getChildContext!=null&&(x=we(we({},x),c.getChildContext())),y&&!m&&c.getSnapshotBeforeUpdate!=null&&(M=c.getSnapshotBeforeUpdate(h,v)),N=p!=null&&p.type===Ue&&p.key==null?z0(p.props.children):p,i=P0(e,Hn(N)?N:[N],t,n,x,r,a,o,i,l,u),c.base=t.__e,t.__u&=-161,c.__h.length&&o.push(c),b&&(c.__E=c.__=null)}catch(C){if(o.length=f,t.__v=null,l||a!=null){if(C.then){for(t.__u|=l?160:128;i&&i.nodeType==8&&i.nextSibling;)i=i.nextSibling;a!=null&&(a[a.indexOf(i)]=null),t.__e=i}else if(a!=null)for(w=a.length;w--;)Rt(a[w])}else t.__e=n.__e;t.__k==null&&(t.__k=n.__k||[]),C.then||B0(t),se.__e(C,t,n)}}else a==null&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):i=t.__e=Tx(n.__e,t,n,x,r,a,o,l,u);return(p=se.diffed)&&p(t),128&t.__u?void 0:i}function B0(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(B0))}function U0(e,t,n){for(var x=0;x<n.length;x++)Et(n[x],n[++x],n[++x]);se.__c&&se.__c(t,e),e.some(function(r){try{e=r.__h,r.__h=[],e.some(function(a){a.call(r)})}catch(a){se.__e(a,r.__v)}})}function z0(e){return typeof e!="object"||e==null||e.__b>0?e:Hn(e)?e.map(z0):e.constructor!==void 0?null:we({},e)}function Tx(e,t,n,x,r,a,o,i,l){var u,p,f,c,m,h,v,M=n.props||pn,b=t.props,_=t.type;if(_=="svg"?r="http://www.w3.org/2000/svg":_=="math"?r="http://www.w3.org/1998/Math/MathML":r||(r="http://www.w3.org/1999/xhtml"),a!=null){for(u=0;u<a.length;u++)if((m=a[u])&&"setAttribute"in m==!!_&&(_?m.localName==_:m.nodeType==3)){e=m,a[u]=null;break}}if(e==null){if(_==null)return document.createTextNode(b);e=document.createElementNS(r,_,b.is&&b),i&&(se.__m&&se.__m(t,a),i=!1),a=null}if(_==null)M===b||i&&e.data==b||(e.data=b);else{if(a=_=="textarea"&&b.defaultValue!=null?null:a&&Fn.call(e.childNodes),!i&&a!=null)for(M={},u=0;u<e.attributes.length;u++)M[(m=e.attributes[u]).name]=m.value;for(u in M)m=M[u],u=="dangerouslySetInnerHTML"?f=m:u=="children"||u in b||u=="value"&&"defaultValue"in b||u=="checked"&&"defaultChecked"in b||xn(e,u,null,m,r);for(u in b)m=b[u],u=="children"?c=m:u=="dangerouslySetInnerHTML"?p=m:u=="value"?h=m:u=="checked"?v=m:i&&typeof m!="function"||M[u]===m||xn(e,u,m,M[u],r);if(p)i||f&&(p.__html==f.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(f&&(e.innerHTML=""),P0(t.type=="template"?e.content:e,Hn(c)?c:[c],t,n,x,_=="foreignObject"?"http://www.w3.org/1999/xhtml":r,a,o,a?a[0]:n.__k&&Fe(n,0),i,l),a!=null)for(u=a.length;u--;)Rt(a[u]);i&&_!="textarea"||(u="value",_=="progress"&&h==null?e.removeAttribute("value"):h!=null&&(h!==e[u]||_=="progress"&&!h||_=="option"&&h!=M[u])&&xn(e,u,h,M[u],r),u="checked",v!=null&&v!=e[u]&&xn(e,u,v,M[u],r))}return e}function Et(e,t,n){try{if(typeof e=="function"){var x=typeof e.__u=="function";x&&e.__u(),x&&t==null||(e.__u=e(t))}else e.current=t}catch(r){se.__e(r,n)}}function L0(e,t,n){var x,r;if(se.unmount&&se.unmount(e),(x=e.ref)&&(x.current&&x.current!=e.__e||Et(x,null,t)),(x=e.__c)!=null){if(x.componentWillUnmount)try{x.componentWillUnmount()}catch(a){se.__e(a,t)}x.base=x.__P=x.__n=null}if(x=e.__k)for(r=0;r<x.length;r++)x[r]&&L0(x[r],t,n||typeof e.type!="function");n||Rt(e.__e),e.__c=e.__=e.__e=void 0}function Dx(e,t,n){return this.constructor(e,n)}function Nx(e,t,n){var x,r,a,o;t==document&&(t=document.documentElement),se.__&&se.__(e,t),r=(x=!1)?null:t.__k,a=[],o=[],At(t,e=t.__k=wx(Ue,null,[e]),r||pn,pn,t.namespaceURI,r?null:t.firstChild?Fn.call(t.childNodes):null,a,r?r.__e:t.firstChild,x,o),U0(a,e,o),e.props.children=null}Fn=mn.slice,se={__e:function(e,t,n,x){for(var r,a,o;t=t.__;)if((r=t.__c)&&!r.__)try{if((a=r.constructor)&&a.getDerivedStateFromError!=null&&(r.setState(a.getDerivedStateFromError(e)),o=r.__d),r.componentDidCatch!=null&&(r.componentDidCatch(e,x||{}),o=r.__d),o)return r.__E=r}catch(i){e=i}throw e}},N0=0,un.prototype.setState=function(e,t){var n;n=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=we({},this.state),typeof e=="function"&&(e=e(we({},n),this.props)),e&&we(n,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ut(this))},un.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ut(this))},un.prototype.render=Ue,Ae=[],R0=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,A0=function(e,t){return e.__v.__b-t.__v.__b},fn.__r=0,Jn=Math.random().toString(8),ln="__d"+Jn,nn="__a"+Jn,E0=/(PointerCapture)$|Capture$/i,Nt=0,yt=Lt(!1),_t=Lt(!0);var Rx=0;function s(e,t,n,x,r,a){t||(t={});var o,i,l=t;if("ref"in l)for(i in l={},t)i=="ref"?o=t[i]:l[i]=t[i];var u={type:e,props:l,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--Rx,__i:-1,__u:0,__source:r,__self:a};if(typeof e=="function"&&(o=e.defaultProps))for(i in o)l[i]===void 0&&(l[i]=o[i]);return se.vnode&&se.vnode(u),u}var tn,ce,Qn,Kt,hn=0,K0=[],ue=se,jt=ue.__b,Ot=ue.__r,qt=ue.diffed,Ft=ue.__c,Ht=ue.unmount,Wt=ue.__;function Mt(e,t){ue.__h&&ue.__h(ce,e,hn||t),hn=0;var n=ce.__H||(ce.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function ie(e){return hn=1,Ax(q0,e)}function Ax(e,t,n){var x=Mt(tn++,2);if(x.t=e,!x.__c&&(x.__=[q0(void 0,t),function(i){var l=x.__N?x.__N[0]:x.__[0],u=x.t(l,i);l!==u&&(x.__N=[u,x.__[1]],x.__c.setState({}))}],x.__c=ce,!ce.__f)){var r=function(i,l,u){if(!x.__c.__H)return!0;var p=!1,f=x.__c.props!==i;if(x.__c.__H.__.some(function(m){if(m.__N){p=!0;var h=m.__[0];m.__=m.__N,m.__N=void 0,h!==m.__[0]&&(f=!0)}}),a){var c=a.call(this,i,l,u);return p?c||f:c}return!p||f};ce.__f=!0;var a=ce.shouldComponentUpdate,o=ce.componentWillUpdate;ce.componentWillUpdate=function(i,l,u){if(this.__e){var p=a;a=void 0,r(i,l,u),a=p}o&&o.call(this,i,l,u)},ce.shouldComponentUpdate=r}return x.__N||x.__}function ge(e,t){var n=Mt(tn++,3);!ue.__s&&O0(n.__H,t)&&(n.__=e,n.u=t,ce.__H.__h.push(n))}function He(e){return hn=5,Ex(function(){return{current:e}},[])}function Ex(e,t){var n=Mt(tn++,7);return O0(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function Vt(){for(var e;e=K0.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(kt),t.__h.some(j0),t.__h=[]}catch(n){t.__h=[],ue.__e(n,e.__v)}}}ue.__b=function(e){ce=null,jt&&jt(e)},ue.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Wt&&Wt(e,t)},ue.__r=function(e){Ot&&Ot(e),tn=0;var t=(ce=e.__c).__H;t&&(Qn===ce?(t.__h=[],ce.__h=[],t.__.some(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(t.__h.length&&Vt(),tn=0)),Qn=ce},ue.diffed=function(e){qt&&qt(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(K0.push(t)!==1&&Kt===ue.requestAnimationFrame||((Kt=ue.requestAnimationFrame)||Mx)(Vt)),t.__H.__.some(function(n){n.u&&(n.__H=n.u,n.u=void 0)})),Qn=ce=null},ue.__c=function(e,t){t.some(function(n){try{n.__h.some(kt),n.__h=n.__h.filter(function(x){return!x.__||j0(x)})}catch(x){t.some(function(r){r.__h&&(r.__h=[])}),t=[],ue.__e(x,n.__v)}}),Ft&&Ft(e,t)},ue.unmount=function(e){Ht&&Ht(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(x){try{kt(x)}catch(r){t=r}}),n.__H=void 0,t&&ue.__e(t,n.__v))};var Jt=typeof requestAnimationFrame=="function";function Mx(e){var t,n=function(){clearTimeout(x),Jt&&cancelAnimationFrame(t),setTimeout(e)},x=setTimeout(n,35);Jt&&(t=requestAnimationFrame(n))}function kt(e){var t=ce,n=e.__c;typeof n=="function"&&(e.__c=void 0,n()),ce=t}function j0(e){var t=ce;e.__c=e.__(),ce=t}function O0(e,t){return!e||e.length!==t.length||t.some(function(n,x){return n!==e[x]})}function q0(e,t){return typeof t=="function"?t(e):t}const Px=e=>[{icon:"download",label:e("steps.preparing"),desc:e("steps.checkingTunnel")},{icon:"cloud_sync",label:e("steps.connecting"),desc:e("steps.creatingSession")},{icon:"lan",label:e("steps.tunneling"),desc:e("steps.startingTunnel")},{icon:"verified",label:e("steps.verifying"),desc:e("steps.healthCheck")},{icon:"check_circle",label:e("steps.ready"),desc:e("steps.connected")}],Gx=3;function Bx({currentStep:e,activeDesc:t="",healthCheck:n,t:x}){var i;const r=e-1,a=(i=n==null?void 0:n.logs)!=null&&i.length?n.logs[n.logs.length-1]:null,o=Px(x);return s("div",{className:"glass-card p-5 flex flex-col gap-4",children:[s("span",{className:"text-xs font-medium uppercase tracking-wider",style:{color:"var(--text-muted)"},children:x("steps.setupConnection")}),s("div",{className:"flex flex-col gap-3",children:o.map((l,u)=>{const p=u<r,f=u===r,c=f&&u===Gx;let m=f&&t?t:l.desc,h="var(--text-muted)";if(c&&a){const v=/^\d{3}$/.test(String(a.status));m=`#${a.attempt} → ${a.status}`,h=a.ok||a.waiting?"#22c55e":v?"#eab308":"#ef4444"}return s("div",{className:"flex items-center gap-3",children:[s("div",{className:"w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0",style:{background:p?"var(--brand-500)":f?"rgba(255,87,10,0.15)":"var(--glass-bg)",border:f?"1.5px solid var(--brand-500)":"1.5px solid transparent"},children:p?s("span",{className:"material-symbols-outlined text-white",style:{fontSize:16},children:"check"}):f?s("span",{className:"flex gap-0.5 items-center",children:[0,1,2].map(v=>s("span",{className:"w-1 h-1 rounded-full bg-orange-400 dot-bounce",style:{animationDelay:`${v*.18}s`}},v))}):s("span",{className:"material-symbols-outlined",style:{fontSize:16,color:"var(--text-muted)",opacity:.3},children:l.icon})}),s("div",{className:"flex-1 min-w-0",children:[s("p",{className:"text-sm font-medium",style:{color:p?"var(--text-muted)":f?"var(--text-main)":"var(--text-muted)",opacity:p||f?1:.4},children:l.label}),s("p",{className:"text-xs mt-0.5 truncate",style:{color:h,opacity:f?c&&a?.95:.7:.4,fontFamily:c&&a?"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace":void 0},children:m})]}),p&&s("span",{className:"text-xs flex-shrink-0",style:{color:"var(--text-muted)"},children:x("steps.done")}),f&&s("span",{className:"text-xs flex-shrink-0 px-2 py-0.5 rounded-full",style:{background:"rgba(255,87,10,0.15)",color:"var(--brand-400)"},children:x("steps.running")})]},u)})})]})}function Ux(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Oe={},Yn,Qt;function zx(){return Qt||(Qt=1,Yn=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),Yn}var Zn={},Re={},Yt;function ze(){if(Yt)return Re;Yt=1;let e;const t=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return Re.getSymbolSize=function(x){if(!x)throw new Error('"version" cannot be null or undefined');if(x<1||x>40)throw new Error('"version" should be in range from 1 to 40');return x*4+17},Re.getSymbolTotalCodewords=function(x){return t[x]},Re.getBCHDigit=function(n){let x=0;for(;n!==0;)x++,n>>>=1;return x},Re.setToSJISFunction=function(x){if(typeof x!="function")throw new Error('"toSJISFunc" is not a valid function.');e=x},Re.isKanjiModeEnabled=function(){return typeof e<"u"},Re.toSJIS=function(x){return e(x)},Re}var Xn={},Zt;function Pt(){return Zt||(Zt=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+n)}}e.isValid=function(x){return x&&typeof x.bit<"u"&&x.bit>=0&&x.bit<4},e.from=function(x,r){if(e.isValid(x))return x;try{return t(x)}catch{return r}}})(Xn)),Xn}var $n,Xt;function Lx(){if(Xt)return $n;Xt=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(t){const n=Math.floor(t/8);return(this.buffer[n]>>>7-t%8&1)===1},put:function(t,n){for(let x=0;x<n;x++)this.putBit((t>>>n-x-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(t){const n=Math.floor(this.length/8);this.buffer.length<=n&&this.buffer.push(0),t&&(this.buffer[n]|=128>>>this.length%8),this.length++}},$n=e,$n}var et,$t;function Kx(){if($t)return et;$t=1;function e(t){if(!t||t<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=t,this.data=new Uint8Array(t*t),this.reservedBit=new Uint8Array(t*t)}return e.prototype.set=function(t,n,x,r){const a=t*this.size+n;this.data[a]=x,r&&(this.reservedBit[a]=!0)},e.prototype.get=function(t,n){return this.data[t*this.size+n]},e.prototype.xor=function(t,n,x){this.data[t*this.size+n]^=x},e.prototype.isReserved=function(t,n){return this.reservedBit[t*this.size+n]},et=e,et}var nt={},e0;function jx(){return e0||(e0=1,(function(e){const t=ze().getSymbolSize;e.getRowColCoords=function(x){if(x===1)return[];const r=Math.floor(x/7)+2,a=t(x),o=a===145?26:Math.ceil((a-13)/(2*r-2))*2,i=[a-7];for(let l=1;l<r-1;l++)i[l]=i[l-1]-o;return i.push(6),i.reverse()},e.getPositions=function(x){const r=[],a=e.getRowColCoords(x),o=a.length;for(let i=0;i<o;i++)for(let l=0;l<o;l++)i===0&&l===0||i===0&&l===o-1||i===o-1&&l===0||r.push([a[i],a[l]]);return r}})(nt)),nt}var tt={},n0;function Ox(){if(n0)return tt;n0=1;const e=ze().getSymbolSize,t=7;return tt.getPositions=function(x){const r=e(x);return[[0,0],[r-t,0],[0,r-t]]},tt}var xt={},t0;function qx(){return t0||(t0=1,(function(e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(r){return r!=null&&r!==""&&!isNaN(r)&&r>=0&&r<=7},e.from=function(r){return e.isValid(r)?parseInt(r,10):void 0},e.getPenaltyN1=function(r){const a=r.size;let o=0,i=0,l=0,u=null,p=null;for(let f=0;f<a;f++){i=l=0,u=p=null;for(let c=0;c<a;c++){let m=r.get(f,c);m===u?i++:(i>=5&&(o+=t.N1+(i-5)),u=m,i=1),m=r.get(c,f),m===p?l++:(l>=5&&(o+=t.N1+(l-5)),p=m,l=1)}i>=5&&(o+=t.N1+(i-5)),l>=5&&(o+=t.N1+(l-5))}return o},e.getPenaltyN2=function(r){const a=r.size;let o=0;for(let i=0;i<a-1;i++)for(let l=0;l<a-1;l++){const u=r.get(i,l)+r.get(i,l+1)+r.get(i+1,l)+r.get(i+1,l+1);(u===4||u===0)&&o++}return o*t.N2},e.getPenaltyN3=function(r){const a=r.size;let o=0,i=0,l=0;for(let u=0;u<a;u++){i=l=0;for(let p=0;p<a;p++)i=i<<1&2047|r.get(u,p),p>=10&&(i===1488||i===93)&&o++,l=l<<1&2047|r.get(p,u),p>=10&&(l===1488||l===93)&&o++}return o*t.N3},e.getPenaltyN4=function(r){let a=0;const o=r.data.length;for(let l=0;l<o;l++)a+=r.data[l];return Math.abs(Math.ceil(a*100/o/5)-10)*t.N4};function n(x,r,a){switch(x){case e.Patterns.PATTERN000:return(r+a)%2===0;case e.Patterns.PATTERN001:return r%2===0;case e.Patterns.PATTERN010:return a%3===0;case e.Patterns.PATTERN011:return(r+a)%3===0;case e.Patterns.PATTERN100:return(Math.floor(r/2)+Math.floor(a/3))%2===0;case e.Patterns.PATTERN101:return r*a%2+r*a%3===0;case e.Patterns.PATTERN110:return(r*a%2+r*a%3)%2===0;case e.Patterns.PATTERN111:return(r*a%3+(r+a)%2)%2===0;default:throw new Error("bad maskPattern:"+x)}}e.applyMask=function(r,a){const o=a.size;for(let i=0;i<o;i++)for(let l=0;l<o;l++)a.isReserved(l,i)||a.xor(l,i,n(r,l,i))},e.getBestMask=function(r,a){const o=Object.keys(e.Patterns).length;let i=0,l=1/0;for(let u=0;u<o;u++){a(u),e.applyMask(u,r);const p=e.getPenaltyN1(r)+e.getPenaltyN2(r)+e.getPenaltyN3(r)+e.getPenaltyN4(r);e.applyMask(u,r),p<l&&(l=p,i=u)}return i}})(xt)),xt}var rn={},x0;function F0(){if(x0)return rn;x0=1;const e=Pt(),t=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],n=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return rn.getBlocksCount=function(r,a){switch(a){case e.L:return t[(r-1)*4+0];case e.M:return t[(r-1)*4+1];case e.Q:return t[(r-1)*4+2];case e.H:return t[(r-1)*4+3];default:return}},rn.getTotalCodewordsCount=function(r,a){switch(a){case e.L:return n[(r-1)*4+0];case e.M:return n[(r-1)*4+1];case e.Q:return n[(r-1)*4+2];case e.H:return n[(r-1)*4+3];default:return}},rn}var rt={},en={},r0;function Fx(){if(r0)return en;r0=1;const e=new Uint8Array(512),t=new Uint8Array(256);return(function(){let x=1;for(let r=0;r<255;r++)e[r]=x,t[x]=r,x<<=1,x&256&&(x^=285);for(let r=255;r<512;r++)e[r]=e[r-255]})(),en.log=function(x){if(x<1)throw new Error("log("+x+")");return t[x]},en.exp=function(x){return e[x]},en.mul=function(x,r){return x===0||r===0?0:e[t[x]+t[r]]},en}var a0;function Hx(){return a0||(a0=1,(function(e){const t=Fx();e.mul=function(x,r){const a=new Uint8Array(x.length+r.length-1);for(let o=0;o<x.length;o++)for(let i=0;i<r.length;i++)a[o+i]^=t.mul(x[o],r[i]);return a},e.mod=function(x,r){let a=new Uint8Array(x);for(;a.length-r.length>=0;){const o=a[0];for(let l=0;l<r.length;l++)a[l]^=t.mul(r[l],o);let i=0;for(;i<a.length&&a[i]===0;)i++;a=a.slice(i)}return a},e.generateECPolynomial=function(x){let r=new Uint8Array([1]);for(let a=0;a<x;a++)r=e.mul(r,new Uint8Array([1,t.exp(a)]));return r}})(rt)),rt}var at,o0;function Wx(){if(o0)return at;o0=1;const e=Hx();function t(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}return t.prototype.initialize=function(x){this.degree=x,this.genPoly=e.generateECPolynomial(this.degree)},t.prototype.encode=function(x){if(!this.genPoly)throw new Error("Encoder not initialized");const r=new Uint8Array(x.length+this.degree);r.set(x);const a=e.mod(r,this.genPoly),o=this.degree-a.length;if(o>0){const i=new Uint8Array(this.degree);return i.set(a,o),i}return a},at=t,at}var ot={},it={},st={},i0;function H0(){return i0||(i0=1,st.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}),st}var ke={},s0;function W0(){if(s0)return ke;s0=1;const e="[0-9]+",t="[A-Z $%*+\\-./:]+";let n="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";n=n.replace(/u/g,"\\u");const x="(?:(?![A-Z0-9 $%*+\\-./:]|"+n+`)(?:.|[\r
|
|
2
|
-
]))+`;ke.KANJI=new RegExp(n,"g"),ke.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),ke.BYTE=new RegExp(x,"g"),ke.NUMERIC=new RegExp(e,"g"),ke.ALPHANUMERIC=new RegExp(t,"g");const r=new RegExp("^"+n+"$"),a=new RegExp("^"+e+"$"),o=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return ke.testKanji=function(l){return r.test(l)},ke.testNumeric=function(l){return a.test(l)},ke.testAlphanumeric=function(l){return o.test(l)},ke}var l0;function Le(){return l0||(l0=1,(function(e){const t=H0(),n=W0();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(a,o){if(!a.ccBits)throw new Error("Invalid mode: "+a);if(!t.isValid(o))throw new Error("Invalid version: "+o);return o>=1&&o<10?a.ccBits[0]:o<27?a.ccBits[1]:a.ccBits[2]},e.getBestModeForData=function(a){return n.testNumeric(a)?e.NUMERIC:n.testAlphanumeric(a)?e.ALPHANUMERIC:n.testKanji(a)?e.KANJI:e.BYTE},e.toString=function(a){if(a&&a.id)return a.id;throw new Error("Invalid mode")},e.isValid=function(a){return a&&a.bit&&a.ccBits};function x(r){if(typeof r!="string")throw new Error("Param is not a string");switch(r.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+r)}}e.from=function(a,o){if(e.isValid(a))return a;try{return x(a)}catch{return o}}})(it)),it}var c0;function Vx(){return c0||(c0=1,(function(e){const t=ze(),n=F0(),x=Pt(),r=Le(),a=H0(),o=7973,i=t.getBCHDigit(o);function l(c,m,h){for(let v=1;v<=40;v++)if(m<=e.getCapacity(v,h,c))return v}function u(c,m){return r.getCharCountIndicator(c,m)+4}function p(c,m){let h=0;return c.forEach(function(v){const M=u(v.mode,m);h+=M+v.getBitsLength()}),h}function f(c,m){for(let h=1;h<=40;h++)if(p(c,h)<=e.getCapacity(h,m,r.MIXED))return h}e.from=function(m,h){return a.isValid(m)?parseInt(m,10):h},e.getCapacity=function(m,h,v){if(!a.isValid(m))throw new Error("Invalid QR Code version");typeof v>"u"&&(v=r.BYTE);const M=t.getSymbolTotalCodewords(m),b=n.getTotalCodewordsCount(m,h),_=(M-b)*8;if(v===r.MIXED)return _;const y=_-u(v,m);switch(v){case r.NUMERIC:return Math.floor(y/10*3);case r.ALPHANUMERIC:return Math.floor(y/11*2);case r.KANJI:return Math.floor(y/13);case r.BYTE:default:return Math.floor(y/8)}},e.getBestVersionForData=function(m,h){let v;const M=x.from(h,x.M);if(Array.isArray(m)){if(m.length>1)return f(m,M);if(m.length===0)return 1;v=m[0]}else v=m;return l(v.mode,v.getLength(),M)},e.getEncodedBits=function(m){if(!a.isValid(m)||m<7)throw new Error("Invalid QR Code version");let h=m<<12;for(;t.getBCHDigit(h)-i>=0;)h^=o<<t.getBCHDigit(h)-i;return m<<12|h}})(ot)),ot}var lt={},u0;function Jx(){if(u0)return lt;u0=1;const e=ze(),t=1335,n=21522,x=e.getBCHDigit(t);return lt.getEncodedBits=function(a,o){const i=a.bit<<3|o;let l=i<<10;for(;e.getBCHDigit(l)-x>=0;)l^=t<<e.getBCHDigit(l)-x;return(i<<10|l)^n},lt}var ct={},ut,d0;function Qx(){if(d0)return ut;d0=1;const e=Le();function t(n){this.mode=e.NUMERIC,this.data=n.toString()}return t.getBitsLength=function(x){return 10*Math.floor(x/3)+(x%3?x%3*3+1:0)},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(x){let r,a,o;for(r=0;r+3<=this.data.length;r+=3)a=this.data.substr(r,3),o=parseInt(a,10),x.put(o,10);const i=this.data.length-r;i>0&&(a=this.data.substr(r),o=parseInt(a,10),x.put(o,i*3+1))},ut=t,ut}var dt,p0;function Yx(){if(p0)return dt;p0=1;const e=Le(),t=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function n(x){this.mode=e.ALPHANUMERIC,this.data=x}return n.getBitsLength=function(r){return 11*Math.floor(r/2)+6*(r%2)},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(r){let a;for(a=0;a+2<=this.data.length;a+=2){let o=t.indexOf(this.data[a])*45;o+=t.indexOf(this.data[a+1]),r.put(o,11)}this.data.length%2&&r.put(t.indexOf(this.data[a]),6)},dt=n,dt}var pt,m0;function Zx(){if(m0)return pt;m0=1;const e=Le();function t(n){this.mode=e.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}return t.getBitsLength=function(x){return x*8},t.prototype.getLength=function(){return this.data.length},t.prototype.getBitsLength=function(){return t.getBitsLength(this.data.length)},t.prototype.write=function(n){for(let x=0,r=this.data.length;x<r;x++)n.put(this.data[x],8)},pt=t,pt}var mt,f0;function Xx(){if(f0)return mt;f0=1;const e=Le(),t=ze();function n(x){this.mode=e.KANJI,this.data=x}return n.getBitsLength=function(r){return r*13},n.prototype.getLength=function(){return this.data.length},n.prototype.getBitsLength=function(){return n.getBitsLength(this.data.length)},n.prototype.write=function(x){let r;for(r=0;r<this.data.length;r++){let a=t.toSJIS(this.data[r]);if(a>=33088&&a<=40956)a-=33088;else if(a>=57408&&a<=60351)a-=49472;else throw new Error("Invalid SJIS character: "+this.data[r]+`
|
|
3
|
-
Make sure your charset is UTF-8`);a=(a>>>8&255)*192+(a&255),x.put(a,13)}},mt=n,mt}var ft={exports:{}},h0;function $x(){return h0||(h0=1,(function(e){var t={single_source_shortest_paths:function(n,x,r){var a={},o={};o[x]=0;var i=t.PriorityQueue.make();i.push(x,0);for(var l,u,p,f,c,m,h,v,M;!i.empty();){l=i.pop(),u=l.value,f=l.cost,c=n[u]||{};for(p in c)c.hasOwnProperty(p)&&(m=c[p],h=f+m,v=o[p],M=typeof o[p]>"u",(M||v>h)&&(o[p]=h,i.push(p,h),a[p]=u))}if(typeof r<"u"&&typeof o[r]>"u"){var b=["Could not find a path from ",x," to ",r,"."].join("");throw new Error(b)}return a},extract_shortest_path_from_predecessor_list:function(n,x){for(var r=[],a=x;a;)r.push(a),n[a],a=n[a];return r.reverse(),r},find_path:function(n,x,r){var a=t.single_source_shortest_paths(n,x,r);return t.extract_shortest_path_from_predecessor_list(a,r)},PriorityQueue:{make:function(n){var x=t.PriorityQueue,r={},a;n=n||{};for(a in x)x.hasOwnProperty(a)&&(r[a]=x[a]);return r.queue=[],r.sorter=n.sorter||x.default_sorter,r},default_sorter:function(n,x){return n.cost-x.cost},push:function(n,x){var r={value:n,cost:x};this.queue.push(r),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=t})(ft)),ft.exports}var g0;function er(){return g0||(g0=1,(function(e){const t=Le(),n=Qx(),x=Yx(),r=Zx(),a=Xx(),o=W0(),i=ze(),l=$x();function u(b){return unescape(encodeURIComponent(b)).length}function p(b,_,y){const R=[];let oe;for(;(oe=b.exec(y))!==null;)R.push({data:oe[0],index:oe.index,mode:_,length:oe[0].length});return R}function f(b){const _=p(o.NUMERIC,t.NUMERIC,b),y=p(o.ALPHANUMERIC,t.ALPHANUMERIC,b);let R,oe;return i.isKanjiModeEnabled()?(R=p(o.BYTE,t.BYTE,b),oe=p(o.KANJI,t.KANJI,b)):(R=p(o.BYTE_KANJI,t.BYTE,b),oe=[]),_.concat(y,R,oe).sort(function(D,N){return D.index-N.index}).map(function(D){return{data:D.data,mode:D.mode,length:D.length}})}function c(b,_){switch(_){case t.NUMERIC:return n.getBitsLength(b);case t.ALPHANUMERIC:return x.getBitsLength(b);case t.KANJI:return a.getBitsLength(b);case t.BYTE:return r.getBitsLength(b)}}function m(b){return b.reduce(function(_,y){const R=_.length-1>=0?_[_.length-1]:null;return R&&R.mode===y.mode?(_[_.length-1].data+=y.data,_):(_.push(y),_)},[])}function h(b){const _=[];for(let y=0;y<b.length;y++){const R=b[y];switch(R.mode){case t.NUMERIC:_.push([R,{data:R.data,mode:t.ALPHANUMERIC,length:R.length},{data:R.data,mode:t.BYTE,length:R.length}]);break;case t.ALPHANUMERIC:_.push([R,{data:R.data,mode:t.BYTE,length:R.length}]);break;case t.KANJI:_.push([R,{data:R.data,mode:t.BYTE,length:u(R.data)}]);break;case t.BYTE:_.push([{data:R.data,mode:t.BYTE,length:u(R.data)}])}}return _}function v(b,_){const y={},R={start:{}};let oe=["start"];for(let S=0;S<b.length;S++){const D=b[S],N=[];for(let w=0;w<D.length;w++){const I=D[w],C=""+S+w;N.push(C),y[C]={node:I,lastCount:0},R[C]={};for(let K=0;K<oe.length;K++){const T=oe[K];y[T]&&y[T].node.mode===I.mode?(R[T][C]=c(y[T].lastCount+I.length,I.mode)-c(y[T].lastCount,I.mode),y[T].lastCount+=I.length):(y[T]&&(y[T].lastCount=I.length),R[T][C]=c(I.length,I.mode)+4+t.getCharCountIndicator(I.mode,_))}}oe=N}for(let S=0;S<oe.length;S++)R[oe[S]].end=0;return{map:R,table:y}}function M(b,_){let y;const R=t.getBestModeForData(b);if(y=t.from(_,R),y!==t.BYTE&&y.bit<R.bit)throw new Error('"'+b+'" cannot be encoded with mode '+t.toString(y)+`.
|
|
4
|
-
Suggested mode is: `+t.toString(R));switch(y===t.KANJI&&!i.isKanjiModeEnabled()&&(y=t.BYTE),y){case t.NUMERIC:return new n(b);case t.ALPHANUMERIC:return new x(b);case t.KANJI:return new a(b);case t.BYTE:return new r(b)}}e.fromArray=function(_){return _.reduce(function(y,R){return typeof R=="string"?y.push(M(R,null)):R.data&&y.push(M(R.data,R.mode)),y},[])},e.fromString=function(_,y){const R=f(_,i.isKanjiModeEnabled()),oe=h(R),S=v(oe,y),D=l.find_path(S.map,"start","end"),N=[];for(let w=1;w<D.length-1;w++)N.push(S.table[D[w]].node);return e.fromArray(m(N))},e.rawSplit=function(_){return e.fromArray(f(_,i.isKanjiModeEnabled()))}})(ct)),ct}var b0;function nr(){if(b0)return Zn;b0=1;const e=ze(),t=Pt(),n=Lx(),x=Kx(),r=jx(),a=Ox(),o=qx(),i=F0(),l=Wx(),u=Vx(),p=Jx(),f=Le(),c=er();function m(S,D){const N=S.size,w=a.getPositions(D);for(let I=0;I<w.length;I++){const C=w[I][0],K=w[I][1];for(let T=-1;T<=7;T++)if(!(C+T<=-1||N<=C+T))for(let $=-1;$<=7;$++)K+$<=-1||N<=K+$||(T>=0&&T<=6&&($===0||$===6)||$>=0&&$<=6&&(T===0||T===6)||T>=2&&T<=4&&$>=2&&$<=4?S.set(C+T,K+$,!0,!0):S.set(C+T,K+$,!1,!0))}}function h(S){const D=S.size;for(let N=8;N<D-8;N++){const w=N%2===0;S.set(N,6,w,!0),S.set(6,N,w,!0)}}function v(S,D){const N=r.getPositions(D);for(let w=0;w<N.length;w++){const I=N[w][0],C=N[w][1];for(let K=-2;K<=2;K++)for(let T=-2;T<=2;T++)K===-2||K===2||T===-2||T===2||K===0&&T===0?S.set(I+K,C+T,!0,!0):S.set(I+K,C+T,!1,!0)}}function M(S,D){const N=S.size,w=u.getEncodedBits(D);let I,C,K;for(let T=0;T<18;T++)I=Math.floor(T/3),C=T%3+N-8-3,K=(w>>T&1)===1,S.set(I,C,K,!0),S.set(C,I,K,!0)}function b(S,D,N){const w=S.size,I=p.getEncodedBits(D,N);let C,K;for(C=0;C<15;C++)K=(I>>C&1)===1,C<6?S.set(C,8,K,!0):C<8?S.set(C+1,8,K,!0):S.set(w-15+C,8,K,!0),C<8?S.set(8,w-C-1,K,!0):C<9?S.set(8,15-C-1+1,K,!0):S.set(8,15-C-1,K,!0);S.set(w-8,8,1,!0)}function _(S,D){const N=S.size;let w=-1,I=N-1,C=7,K=0;for(let T=N-1;T>0;T-=2)for(T===6&&T--;;){for(let $=0;$<2;$++)if(!S.isReserved(I,T-$)){let pe=!1;K<D.length&&(pe=(D[K]>>>C&1)===1),S.set(I,T-$,pe),C--,C===-1&&(K++,C=7)}if(I+=w,I<0||N<=I){I-=w,w=-w;break}}}function y(S,D,N){const w=new n;N.forEach(function($){w.put($.mode.bit,4),w.put($.getLength(),f.getCharCountIndicator($.mode,S)),$.write(w)});const I=e.getSymbolTotalCodewords(S),C=i.getTotalCodewordsCount(S,D),K=(I-C)*8;for(w.getLengthInBits()+4<=K&&w.put(0,4);w.getLengthInBits()%8!==0;)w.putBit(0);const T=(K-w.getLengthInBits())/8;for(let $=0;$<T;$++)w.put($%2?17:236,8);return R(w,S,D)}function R(S,D,N){const w=e.getSymbolTotalCodewords(D),I=i.getTotalCodewordsCount(D,N),C=w-I,K=i.getBlocksCount(D,N),T=w%K,$=K-T,pe=Math.floor(w/K),me=Math.floor(C/K),Se=me+1,Ie=pe-me,be=new l(Ie);let Ee=0;const Ce=new Array(K),Ke=new Array(K);let Me=0;const Je=new Uint8Array(S.buffer);for(let ve=0;ve<K;ve++){const ye=ve<$?me:Se;Ce[ve]=Je.slice(Ee,Ee+ye),Ke[ve]=be.encode(Ce[ve]),Ee+=ye,Me=Math.max(Me,ye)}const Pe=new Uint8Array(w);let je=0,de,he;for(de=0;de<Me;de++)for(he=0;he<K;he++)de<Ce[he].length&&(Pe[je++]=Ce[he][de]);for(de=0;de<Ie;de++)for(he=0;he<K;he++)Pe[je++]=Ke[he][de];return Pe}function oe(S,D,N,w){let I;if(Array.isArray(S))I=c.fromArray(S);else if(typeof S=="string"){let pe=D;if(!pe){const me=c.rawSplit(S);pe=u.getBestVersionForData(me,N)}I=c.fromString(S,pe||40)}else throw new Error("Invalid data");const C=u.getBestVersionForData(I,N);if(!C)throw new Error("The amount of data is too big to be stored in a QR Code");if(!D)D=C;else if(D<C)throw new Error(`
|
|
5
|
-
The chosen QR Code version cannot contain this amount of data.
|
|
6
|
-
Minimum version required to store current data is: `+C+`.
|
|
7
|
-
`);const K=y(D,N,I),T=e.getSymbolSize(D),$=new x(T);return m($,D),h($),v($,D),b($,N,0),D>=7&&M($,D),_($,K),isNaN(w)&&(w=o.getBestMask($,b.bind(null,$,N))),o.applyMask(w,$),b($,N,w),{modules:$,version:D,errorCorrectionLevel:N,maskPattern:w,segments:I}}return Zn.create=function(D,N){if(typeof D>"u"||D==="")throw new Error("No input text");let w=t.M,I,C;return typeof N<"u"&&(w=t.from(N.errorCorrectionLevel,t.M),I=u.from(N.version),C=o.from(N.maskPattern),N.toSJISFunc&&e.setToSJISFunction(N.toSJISFunc)),oe(D,I,w,C)},Zn}var ht={},gt={},v0;function V0(){return v0||(v0=1,(function(e){function t(n){if(typeof n=="number"&&(n=n.toString()),typeof n!="string")throw new Error("Color should be defined as hex string");let x=n.slice().replace("#","").split("");if(x.length<3||x.length===5||x.length>8)throw new Error("Invalid hex color: "+n);(x.length===3||x.length===4)&&(x=Array.prototype.concat.apply([],x.map(function(a){return[a,a]}))),x.length===6&&x.push("F","F");const r=parseInt(x.join(""),16);return{r:r>>24&255,g:r>>16&255,b:r>>8&255,a:r&255,hex:"#"+x.slice(0,6).join("")}}e.getOptions=function(x){x||(x={}),x.color||(x.color={});const r=typeof x.margin>"u"||x.margin===null||x.margin<0?4:x.margin,a=x.width&&x.width>=21?x.width:void 0,o=x.scale||4;return{width:a,scale:a?4:o,margin:r,color:{dark:t(x.color.dark||"#000000ff"),light:t(x.color.light||"#ffffffff")},type:x.type,rendererOpts:x.rendererOpts||{}}},e.getScale=function(x,r){return r.width&&r.width>=x+r.margin*2?r.width/(x+r.margin*2):r.scale},e.getImageWidth=function(x,r){const a=e.getScale(x,r);return Math.floor((x+r.margin*2)*a)},e.qrToImageData=function(x,r,a){const o=r.modules.size,i=r.modules.data,l=e.getScale(o,a),u=Math.floor((o+a.margin*2)*l),p=a.margin*l,f=[a.color.light,a.color.dark];for(let c=0;c<u;c++)for(let m=0;m<u;m++){let h=(c*u+m)*4,v=a.color.light;if(c>=p&&m>=p&&c<u-p&&m<u-p){const M=Math.floor((c-p)/l),b=Math.floor((m-p)/l);v=f[i[M*o+b]?1:0]}x[h++]=v.r,x[h++]=v.g,x[h++]=v.b,x[h]=v.a}}})(gt)),gt}var y0;function tr(){return y0||(y0=1,(function(e){const t=V0();function n(r,a,o){r.clearRect(0,0,a.width,a.height),a.style||(a.style={}),a.height=o,a.width=o,a.style.height=o+"px",a.style.width=o+"px"}function x(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}e.render=function(a,o,i){let l=i,u=o;typeof l>"u"&&(!o||!o.getContext)&&(l=o,o=void 0),o||(u=x()),l=t.getOptions(l);const p=t.getImageWidth(a.modules.size,l),f=u.getContext("2d"),c=f.createImageData(p,p);return t.qrToImageData(c.data,a,l),n(f,u,p),f.putImageData(c,0,0),u},e.renderToDataURL=function(a,o,i){let l=i;typeof l>"u"&&(!o||!o.getContext)&&(l=o,o=void 0),l||(l={});const u=e.render(a,o,l),p=l.type||"image/png",f=l.rendererOpts||{};return u.toDataURL(p,f.quality)}})(ht)),ht}var bt={},_0;function xr(){if(_0)return bt;_0=1;const e=V0();function t(r,a){const o=r.a/255,i=a+'="'+r.hex+'"';return o<1?i+" "+a+'-opacity="'+o.toFixed(2).slice(1)+'"':i}function n(r,a,o){let i=r+a;return typeof o<"u"&&(i+=" "+o),i}function x(r,a,o){let i="",l=0,u=!1,p=0;for(let f=0;f<r.length;f++){const c=Math.floor(f%a),m=Math.floor(f/a);!c&&!u&&(u=!0),r[f]?(p++,f>0&&c>0&&r[f-1]||(i+=u?n("M",c+o,.5+m+o):n("m",l,0),l=0,u=!1),c+1<a&&r[f+1]||(i+=n("h",p),p=0)):l++}return i}return bt.render=function(a,o,i){const l=e.getOptions(o),u=a.modules.size,p=a.modules.data,f=u+l.margin*2,c=l.color.light.a?"<path "+t(l.color.light,"fill")+' d="M0 0h'+f+"v"+f+'H0z"/>':"",m="<path "+t(l.color.dark,"stroke")+' d="'+x(p,u,l.margin)+'"/>',h='viewBox="0 0 '+f+" "+f+'"',M='<svg xmlns="http://www.w3.org/2000/svg" '+(l.width?'width="'+l.width+'" height="'+l.width+'" ':"")+h+' shape-rendering="crispEdges">'+c+m+`</svg>
|
|
8
|
-
`;return typeof i=="function"&&i(null,M),M},bt}var k0;function rr(){if(k0)return Oe;k0=1;const e=zx(),t=nr(),n=tr(),x=xr();function r(a,o,i,l,u){const p=[].slice.call(arguments,1),f=p.length,c=typeof p[f-1]=="function";if(!c&&!e())throw new Error("Callback required as last argument");if(c){if(f<2)throw new Error("Too few arguments provided");f===2?(u=i,i=o,o=l=void 0):f===3&&(o.getContext&&typeof u>"u"?(u=l,l=void 0):(u=l,l=i,i=o,o=void 0))}else{if(f<1)throw new Error("Too few arguments provided");return f===1?(i=o,o=l=void 0):f===2&&!o.getContext&&(l=i,i=o,o=void 0),new Promise(function(m,h){try{const v=t.create(i,l);m(a(v,o,l))}catch(v){h(v)}})}try{const m=t.create(i,l);u(null,a(m,o,l))}catch(m){u(m)}}return Oe.create=t.create,Oe.toCanvas=r.bind(null,n.render),Oe.toDataURL=r.bind(null,n.renderToDataURL),Oe.toString=r.bind(null,function(a,o,i){return x.render(a,i)}),Oe}var ar=rr();const or=Ux(ar);function Be({message:e,confirmLabel:t="Confirm",confirmDanger:n=!1,inputValue:x,onInput:r,inputPlaceholder:a="",onConfirm:o,onCancel:i}){const l=r!==void 0,u=He(null);return ge(()=>{var p;(p=u.current)==null||p.focus()},[]),s("div",{className:"fixed inset-0 z-[100] flex items-center justify-center",style:{background:"rgba(0,0,0,0.6)"},onClick:i,children:s("div",{className:"glass-card p-5 flex flex-col gap-4 w-72",onClick:p=>p.stopPropagation(),children:[s("p",{className:"text-sm text-center",style:{color:"var(--text-main)"},children:e}),l&&s("input",{ref:u,value:x,placeholder:a,onInput:p=>r(p.target.value),onKeyDown:p=>p.key==="Enter"&&o(),className:"w-full px-3 py-2 text-sm rounded-xl",style:{background:"var(--glass-bg)",color:"var(--text-main)",border:"1px solid var(--border)"}}),s("div",{className:"flex gap-2",children:[s("button",{onClick:i,className:"glass-btn flex-1 py-2 text-sm",style:{color:"var(--text-muted)"},children:"Cancel"}),s("button",{onClick:o,className:"flex-1 py-2 text-sm font-semibold rounded-xl",style:{background:n?"rgba(220,53,69,0.8)":"var(--brand-500)",color:"#fff"},children:t})]})]})})}var d=J0;function J0(e,t){e=e-353;var n=gn(),x=n[e];return x}(function(e,t){for(var n=J0,x=e();;)try{var r=parseInt(n(358))/1+-parseInt(n(426))/2+-parseInt(n(487))/3+parseInt(n(411))/4+parseInt(n(391))/5+-parseInt(n(441))/6+-parseInt(n(484))/7;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(gn,689076);function gn(){var e=["Cancel","RAM warning","Agent","3670928uwatOj","Reload session","Start the tunnel to get a QR code and connect your devices from anywhere.","Copy path","Any new device connects without approval","Starting secure tunnel","Update","Switch to dark mode","Open the web terminal in a new tab","Send","Open file","Documentation","Show Folder Button","Delete","Stages all {count} changed file(s) before commit","146640JLERKn","Show Git Button","Desktop","Add Group","Require manual approval for new devices","Diff","Health check","Copy","Load average","No clients yet","Preparing","Done","Status","Needs your input","Save","602928mpEffd","Auto-approve new devices","Terminal Settings","folder name","Back to sessions","Tunneling","Approve this device","of OS total","Set as workspace","Delete group {name}? All terminals inside will be closed.","GPU acceleration for smoother scrolling","Pair a device","Creating session","Remove","Close","Pending approval","Ungrouped","Capture screen content","Language","Server activity and diagnostics","Git","Replied","idle","Active","Connect","Delete untracked file {name}?","Clients ({online}/{total} online)","Deleted","Delete {name}?","Tunnel offline","9Remote","Delete session {name}? This will kill the terminal.","Remove device {id}...? It will need approval again next time.","New terminal","Single use · expires","Session Note","Stop after 1 hr idle","Discard changes in {name}?","Create","Searching…","Up to date","Cannot open binary file","No commands yet","12126961qLrIyk","Working","Approve","1649874qbOIny","Unable to load system stats","No recent activity","Active — unlock from remote works","Disconnect and remove device {id}...? The client will be disconnected and need approval again next time.","Delete file","Pair devices and manage your secure tunnel","Connecting","No changes","Free memory","Needs input","Push","e.g. My MacBook","OS uptime","Clear","Name for device {id}...","External","Reusable · no expiry","Remote screen control","Idle","Control screen, mouse & keyboard","New Device Connection","Accessibility","Shutdown","Loading…","Launch on system startup","Shutdown 9Remote completely? This will stop the server, close the tunnel and quit the app.","Offline · approved {date}","Pending · waiting for approval","Available","Shift+Enter for new line • Ctrl+Num to switch tab","File","Switch to light mode","Rename group","Update ready — applies after you restart this PC","Ready","Disconnect","Set current folder as workspace","1326720jEbgUB","Refresh","Clients","Group name","Added","Reset the tunnel and reconnect clients","Open file explorer","Switch workspace","Discard changes?","Reset","Commit & Push","No files found","Folder is empty","Command history","Grant all permissions below to enable","Dismiss","Shutdown 9Remote (stop server, close tunnel and quit)","Connected","Show Note Button","Connection","Stop after 24 hrs idle","Clear all","Stop after 30 min idle","Commit message","Offline","1m / 5m / 15m","Reject","Let this PC be unlocked from your phone or browser when locked","Running","Files","Notifications","Stop after 2 hrs idle","Remote Desktop","4504065QjPTDJ","Switch group","Scroll to bottom","Allow","Prevent sleep","threshold exceeded","Unlock PC remotely","Changed files","Git actions","Folder","Commit","Rename","Screen Recording","Search files","Confirm","filename.ext","Note"];return gn=function(){return e},gn()}const ir={common:{statusIdle:d(506),statusWorking:d(485),statusBlocked:d(497),statusDone:d(437),create:d(479),cancel:d(408),delete:"Delete",rename:d(402),confirm:d(405),close:d(455),refresh:d(359),loading:d(511),language:d(459)},files:{cannotOpenBinary:d(482),copyPath:d(414),createNew:"Create new",delete:d(424),deleteConfirmMessage:d(469),deleteConfirmTitle:d(492),emptyFolder:d(370),file:d(518),folder:d(400),noFilesFound:d(369),noGitRepo:"Not a git repository",placeholderFile:d(406),placeholderFolder:d(444),rename:d(402),searching:d(480),searchFiles:d(404),searchPlaceholder:"Search files…",setWorkspace:d(449),setAsWorkspaceTitle:d(357),switchWorkspace:d(365),toggleHidden:"Toggle hidden files"},git:{title:d(461),status:d(438),diffTab:d(431),modified:"Modified",added:d(362),deleted:d(468),untrackedTitle:"Untracked",noChanges:d(495),openFile:d(421),discardChangesTitle:"Discard changes",discardConfirmTitle:d(366),discardConfirmDelete:d(466),discardConfirmDiscard:d(478),gitActions:d(399),commit:d(401),push:d(498),commitAndPush:d(368),commitPlaceholder:d(381),stageAllNote:d(425),upToDate:d(481)},terminalPane:{openFolder:d(364),changedFiles:d(398),note:d(407),refresh:d(412),scrollToBottom:d(393)},note:{title:d(476),copy:d(433),clear:"Clear"},system:{agent:d(471),machine:"Machine",remoteDesktop:d(390),uptime:"Uptime",osUptime:d(500),heapUsed:"Heap used",heapTotal:"Heap total",external:d(503),ofOsTotal:d(448),loadAvg:d(434),loadDesc:d(383),freeMem:d(496),status:d(438),available:d(516),offline:d(382),clients:d(360),streaming:"streaming",idle:d(463),ramThreshold:d(409),thresholdExceeded:d(396),thresholdOk:"within limit",unavailable:d(488)},terminal:{backToSessions:d(445),switchGroup:d(392),newTerminal:d(474),send:d(420),typeCommand:d(517),deleteConfirm:"Delete terminal {name}?",clearInput:d(501)},history:{title:d(371),empty:d(483),remove:d(454),clearAll:d(379)},sessions:{newTerminal:"New Terminal",addGroup:d(429),newGroup:"New Group",groupName:d(361),renameGroup:d(353),deleteGroup:"Delete group",ungrouped:d(457),deleteSessionConfirm:d(472),deleteGroupConfirm:d(450)},menu:{connection:d(377),connectionDesc:d(493),terminals:"Terminal",terminalsDesc:d(419),logs:"Logs",logsDesc:d(460),terminalSettings:d(443),fontSize:"Font Size",terminalTheme:"Terminal Theme",webgl:"WebGL Renderer",webglHint:d(451),showFolder:d(423),showGit:d(427),showNote:d(376)},recent:{title:"Recent",replied:"Agent replied",needsInput:d(439),dismiss:d(373),empty:d(489)},notifications:{title:d(388),empty:"No new notifications",needsInput:d(439),replied:d(462),agent:d(410)},groups:{ungrouped:d(457)},header:{settings:"Settings",language:d(459),documentation:d(422),reset:d(363),resetShort:d(367),shutdown:d(374),shutdownShort:d(510),lightMode:d(519),darkMode:d(418)},remote:{remoteDesktop:"Remote Desktop",controlScreen:d(507),screenRecording:d(403),captureScreen:d(458),accessibility:d(509),controlMouseKeyboard:"Control mouse & keyboard",startup:"Startup",launchOnStartup:d(512),launchDesc:"Runs in background when you log in",disabledStart:"Disabled — start manually",preventSleep:d(395),blockSleep:"Block system sleep so the network stays alive",remoteUnlock:d(397),remoteUnlockDesc:d(385),remoteUnlockReady:d(490),remoteUnlockStale:d(354),grant:d(394),granted:d(464),sleepModes:{"30m":d(380),"1h":d(477),"2h":d(389),"4h":"Stop after 4 hrs idle","24h":d(378),never:"Always block sleep"}},clients:{clients:d(360),clientCount:d(467),noClients:d(435),autoApprove:d(442),anyDevice:d(415),requireManual:d(430),online:"Online",offline:"Offline",pending:d(456),connected:d(375),connectedAt:"Connected · {time}",pendingApproval:d(515),offlineAt:d(514),disconnect:d(356),disconnectRemove:"Disconnect & Remove",remove:d(454),renameDevice:"Rename this device",approveDevice:d(447),approveBtn:d(486),rejectBtn:d(384),newDevice:d(508),deviceId:"Device",deviceIp:"IP"},logs:{logs:"Logs",noLogs:"No logs yet",clear:d(501)},connection:{tunnelOffline:d(470),startTunnel:d(413),connect:d(465),connecting:"Connecting…",pairDevice:d(452),scanToSignIn:"Scan QR or open link to sign in",oneTimeKey:"One-Time Key",oneTimeDesc:d(475),permanentKey:"Permanent Key",permanentDesc:d(504),features:{terminal:"Terminal",fullShell:"Full shell access",desktop:d(428),remoteScreen:d(505),files:d(387),browseEdit:"Browse & edit files"}},dialogs:{resetConfirm:"Reset and stop the tunnel? Remote clients will be disconnected.",shutdownConfirm:d(513),deviceDisconnect:d(491),deviceRemovePending:"Remove pending device {id}...? It will need a fresh approval request to connect again.",deviceRemoveOffline:d(473),grantPermissions:d(372),deviceName:d(502),nameExample:d(499)},buttons:{update:d(417),approve:d(486),reject:"Reject",save:d(440)},steps:{setupConnection:"Setting up connection",preparing:d(436),checkingTunnel:"Checking tunnel binary",connecting:d(494),creatingSession:d(453),tunneling:d(446),startingTunnel:d(416),verifying:"Verifying",healthCheck:d(432),ready:d(355),connected:d(375),done:d(437),running:d(386)}};function bn(){var e=["إزالة الجهاز المعلق {id}...؟ سيحتاج إلى طلب موافقة جديد للاتصال مرة أخرى.","إيقاف بعد 4 ساعات من عدم النشاط","سطح المكتب","8INVGag","إيقاف بعد 30 دقيقة من عدم النشاط","بدء نفق آمن","غير متصل","الملفات","جاري التشغيل","المحطات الطرفية","مثال: MacBook الخاص بي","جاري الاتصال","Working","48KrPwTB","امسح رمز QR أو افتح الرابط للدخول","حفظ","أي جهاز جديد يتصل بدون موافقة","إمكانية الوصول","إعادة تعيين النفق والعملاء المتصلين","تحديث","الإطلاق عند بدء النظام","فحص ملف النفق","العودة إلى الجلسات","غير متصل · موافق {date}","في الانتظار · ينتظر الموافقة","4294695yIDybc","إيقاف 9Remote (إيقاف الخادم وإغلاق النفق والخروج)","رد الوكيل","الموافقة التلقائية على الأجهزة الجديدة","العملاء ({online}/{total} متصل)","قطع الاتصال وإزالة الجهاز {id}...؟ سيتم قطع اتصال العميل وسيحتاج إلى موافقة جديدة في المرة القادمة.","إيقاف 9Remote تماماً؟ سيؤدي هذا إلى إيقاف الخادم وإغلاق النفق والخروج من التطبيق.","إنشاء","تسجيل الشاشة","في انتظار الموافقة","إزالة","6257052SviRda","اللغة","إنشاء جلسة","99oYsKCp","استعراض وتعديل الملفات","قم بمزامنة الأجهزة وإدارة نفق الأمان الخاص بك","امنح جميع الأذونات أدناه لتفعيل","جلسات محطة طرفية حية تعمل على هذا الجهاز","حذف المجموعة {name}؟ ستغلق جميع المحطات الطرفية بداخلها.","استخدام واحد · ينتهي","الاتصال","نفق النقل","إعادة تعيين","إيقاف بعد 24 ساعة من عدم النشاط","التوثيق","إضافة مجموعة","متصل","حذف الجلسة {name}؟ سيغلق المحطة الطرفية.","جاري التحقق","العملاء","7442568owOSDd","6625764cebrGr","الأخيرة","التحكم في الماوس ولوحة المفاتيح","لا تطفئ أبداً","النفق غير متصل","التبديل إلى الوضع الداكن","لا توجد أنشطة حديثة","لا توجد عملاء حتى الآن","السجلات","منع النظام من السكون لإبقاء الشبكة نشطة","السماح","إيقاف","2507570Vjglpd","تجاهل","الجهاز","قابل لإعادة الاستخدام · بدون انتهاء","جاري التحضير","12406LAcLQz","37mXHnrP","إلغاء قفل الكمبيوتر عن بعد","جاري الاتصال…","الرفض","53598WsFXmI","إيقاف بعد ساعتين من عدم النشاط","Done","اسم الجهاز {id}...","مفتاح دائم","منع السكون","ابدأ النفق للحصول على رمز QR وقم بتوصيل أجهزتك من أي مكان.","إعادة تسمية هذا الجهاز","جاهز","حذف","إرسال","حذف المجموعة","نشط — إلغاء القفل عن بعد يعمل","اتصال جهاز جديد","نشط"];return bn=function(){return e},bn()}var g=Q0;function Q0(e,t){e=e-102;var n=bn(),x=n[e];return x}(function(e,t){for(var n=Q0,x=e();;)try{var r=-parseInt(n(166))/1*(parseInt(n(165))/2)+-parseInt(n(170))/3*(-parseInt(n(104))/4)+-parseInt(n(116))/5+parseInt(n(127))/6+-parseInt(n(147))/7+-parseInt(n(188))/8*(parseInt(n(148))/9)+-parseInt(n(160))/10*(-parseInt(n(130))/11);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(bn,626177);const sr={common:{statusIdle:"Idle",statusWorking:g(103),statusBlocked:"Needs input",statusDone:g(172),create:g(123),cancel:"إلغاء",delete:g(179),rename:"إعادة تسمية",language:g(128)},terminal:{backToSessions:g(113),switchGroup:"تبديل المجموعة",newTerminal:"محطة طرفية جديدة",send:g(180),typeCommand:"Shift+Enter لسطر جديد • Ctrl+رقم للتبديل بين الألسنة",deleteConfirm:"حذف المحطة الطرفية {name}؟"},sessions:{newTerminal:"محطة طرفية جديدة",addGroup:g(142),newGroup:"مجموعة جديدة",groupName:"اسم المجموعة",renameGroup:"إعادة تسمية المجموعة",deleteGroup:g(181),ungrouped:"غير مصنفة",deleteSessionConfirm:g(144),deleteGroupConfirm:g(135)},menu:{connection:g(137),connectionDesc:g(132),terminals:g(194),terminalsDesc:g(134),logs:g(156),logsDesc:"نشاط الخادم والتشخيص"},recent:{title:g(149),replied:g(118),needsInput:"يحتاج إلى إدخالك",dismiss:g(161),empty:g(154)},header:{settings:"الإعدادات",language:g(128),documentation:g(141),reset:g(109),resetShort:g(139),shutdown:g(117),shutdownShort:g(159),lightMode:"التبديل إلى الوضع الفاتح",darkMode:g(153)},remote:{remoteDesktop:"سطح المكتب البعيد",controlScreen:"التحكم في الشاشة والماوس ولوحة المفاتيح",screenRecording:g(124),captureScreen:"السماح بعرض الشاشة",accessibility:g(108),controlMouseKeyboard:g(150),startup:"البدء",launchOnStartup:g(111),launchDesc:"يعمل في الخلفية عند تسجيل الدخول",disabledStart:"معطل — بدء يدوي",preventSleep:g(175),blockSleep:g(157),remoteUnlock:g(167),remoteUnlockDesc:"السماح بإلغاء قفل هذا الكمبيوتر من هاتفك أو متصفحك عند قفله",remoteUnlockReady:g(182),grant:g(158),granted:g(184),sleepModes:{"30m":g(189),"1h":"إيقاف بعد ساعة واحدة من عدم النشاط","2h":g(171),"4h":g(186),"24h":g(140),never:g(151)}},clients:{clients:g(146),clientCount:g(120),noClients:g(155),autoApprove:g(119),anyDevice:g(107),requireManual:"يتطلب الموافقة اليدوية للأجهزة الجديدة",online:g(143),offline:g(191),pending:g(125),connected:g(143),connectedAt:"متصل · {time}",pendingApproval:g(115),offlineAt:g(114),disconnect:"قطع الاتصال",disconnectRemove:"قطع الاتصال والإزالة",remove:g(126),renameDevice:g(177),approveDevice:"الموافقة على هذا الجهاز",approveBtn:"الموافقة",rejectBtn:"الرفض",newDevice:g(183),deviceId:g(162),deviceIp:"عنوان IP"},logs:{logs:g(156),noLogs:"لا توجد سجلات حتى الآن",clear:"مسح"},connection:{tunnelOffline:g(152),startTunnel:g(176),connect:g(137),connecting:g(168),scanToSignIn:g(105),oneTimeKey:"مفتاح لمرة واحدة",oneTimeDesc:g(136),permanentKey:g(174),permanentDesc:g(163),features:{terminal:"محطة طرفية",fullShell:"وصول Shell كامل",desktop:g(187),remoteScreen:"التحكم في سطح المكتب البعيد",files:g(192),browseEdit:g(131)}},dialogs:{resetConfirm:"إعادة تعيين وإيقاف النفق؟ سيتم قطع اتصال العملاء البعيدين.",shutdownConfirm:g(122),deviceDisconnect:g(121),deviceRemovePending:g(185),deviceRemoveOffline:"إزالة الجهاز {id}...؟ سيحتاج إلى موافقة جديدة في المرة القادمة.",grantPermissions:g(133),deviceName:g(173),nameExample:g(195)},buttons:{update:g(110),approve:"الموافقة",reject:g(169),save:g(106)},steps:{setupConnection:"إعداد الاتصال",preparing:g(164),checkingTunnel:g(112),connecting:g(102),creatingSession:g(129),tunneling:g(138),startingTunnel:g(190),verifying:g(145),healthCheck:"فحص الصحة",ready:g(178),connected:g(143),done:"تم",running:g(193)}};function vn(){var e=["Barrierefreiheit","Erlauben","Tunnel zurücksetzen und Clients erneut verbinden","Benötigt Ihre Eingabe","3362619FDlqvr","960292Xchalp","Deaktiviert — Manueller Start","Gruppe hinzufügen","Neue Geräte verbinden sich ohne Genehmigung","Nicht gruppiert","Terminals","Neue Geräte automatisch genehmigen","Aktiv — Fernentsperrung funktioniert","Sitzung {name} löschen? Dadurch wird das Terminal beendet.","Abbrechen","Computer wach halten","Idle","Remote Desktop","Keine aktuellen Aktivitäten","Wiederverwendbar · kein Ablauf","Agent hat geantwortet","Live-Terminalsitzungen auf diesem Host","626400yyNfJO","Needs input","Dokumentation","Gruppe wechseln","Maus und Tastatur steuern","Verwerfen","Neues Terminal","Einstellungen","1055512lTjRgu","Sprache","4307237nuysad","System-Standby verhindern, um Verbindung aktiv zu halten","9Remote beenden (Server stoppen, Tunnel schließen, beenden)","26aHkWfI","Zurücksetzen","Shift+Enter für neue Zeile • Ctrl+Num zum Wechsel der Registerkarte","QR-Code scannen oder Link öffnen zum Anmelden","Zum Dunkel-Modus wechseln","Protokolle","2022180aZxFVF","Gruppe löschen","Serveraktivität und Diagnose","10cZLCgz","Zuletzt verwendet","Bildschirm, Maus und Tastatur steuern","5tJGwpw","18uffcKV","Geräte koppeln und Ihren sicheren Tunnel verwalten","Umbenennen","Einmalschlüssel","7dXhRTB","Aktiv","Erstellen","Gruppe umbenennen","5313UPMBZL","Zurück zu Sitzungen","Bildschirmanzeige zulassen","276LzKadU"];return vn=function(){return e},vn()}var V=Y0;function Y0(e,t){e=e-262;var n=vn(),x=n[e];return x}(function(e,t){for(var n=Y0,x=e();;)try{var r=-parseInt(n(306))/1*(parseInt(n(309))/2)+parseInt(n(314))/3+parseInt(n(315))/4*(-parseInt(n(297))/5)+parseInt(n(291))/6*(-parseInt(n(302))/7)+parseInt(n(280))/8*(parseInt(n(298))/9)+-parseInt(n(294))/10*(-parseInt(n(282))/11)+parseInt(n(272))/12*(parseInt(n(285))/13);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(vn,570421);const lr={common:{statusIdle:V(266),statusWorking:"Working",statusBlocked:V(273),statusDone:"Done",create:V(304),cancel:V(264),delete:"Löschen",rename:V(300),language:V(281)},terminal:{backToSessions:V(307),switchGroup:V(275),newTerminal:V(278),send:"Senden",typeCommand:V(287),deleteConfirm:"Terminal {name} löschen?"},sessions:{newTerminal:V(278),addGroup:V(317),newGroup:"Neue Gruppe",groupName:"Gruppenname",renameGroup:V(305),deleteGroup:V(292),ungrouped:V(319),deleteSessionConfirm:V(263),deleteGroupConfirm:"Gruppe {name} löschen? Alle Terminals werden geschlossen."},menu:{connection:"Verbindung",connectionDesc:V(299),terminals:V(320),terminalsDesc:V(271),logs:V(290),logsDesc:V(293)},recent:{title:V(295),replied:V(270),needsInput:V(313),dismiss:V(277),empty:V(268)},header:{settings:V(279),language:"Sprache",documentation:V(274),reset:V(312),resetShort:V(286),shutdown:V(284),shutdownShort:"Beenden",lightMode:"Zum Hell-Modus wechseln",darkMode:V(289)},remote:{remoteDesktop:V(267),controlScreen:V(296),screenRecording:"Bildschirmaufzeichnung",captureScreen:V(308),accessibility:V(310),controlMouseKeyboard:V(276),launchOnStartup:"Beim Start ausführen",launchDesc:"Im Hintergrund ausgeführt, wenn Sie sich anmelden",disabledStart:V(316),preventSleep:V(265),blockSleep:V(283),remoteUnlock:"PC fernentriegeln",remoteUnlockDesc:"Erlaube das Entsperren dieses PCs vom Telefon oder Browser, wenn er gesperrt ist",remoteUnlockReady:V(262),grant:V(311),granted:V(303)},clients:{autoApprove:V(321),anyDevice:V(318),requireManual:"Manuelle Genehmigung für neue Geräte erforderlich"},connection:{scanToSignIn:V(288),oneTimeKey:V(301),oneTimeDesc:"Einmalnutzung · läuft ab",permanentKey:"Permanenter Schlüssel",permanentDesc:V(269)}};function Z0(e,t){e=e-475;var n=yn(),x=n[e];return x}var A=Z0;(function(e,t){for(var n=Z0,x=e();;)try{var r=-parseInt(n(536))/1*(-parseInt(n(541))/2)+-parseInt(n(533))/3*(-parseInt(n(505))/4)+-parseInt(n(522))/5*(parseInt(n(510))/6)+-parseInt(n(516))/7*(-parseInt(n(542))/8)+parseInt(n(487))/9*(-parseInt(n(519))/10)+-parseInt(n(534))/11+-parseInt(n(521))/12*(-parseInt(n(503))/13);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(yn,686086);function yn(){var e=["Escritorio Remoto","Renombrar","Impedir que el sistema duerma para mantener conexión activa","Accesibilidad","Restablecer","Crear","Nuevo terminal","15120404qbRsgH","Eliminar grupo","1208784BDCkjx","Reciente","Enviar","Idioma","Renombrar grupo","42yzkdlo","Done","Mantener ordenador despierto","Cambiar grupo","Terminales","Emparejar dispositivos y administrar su túnel seguro","42WvEqcz","Permitir vista de pantalla","Desbloquear PC remotamente","3870tFIgYo","Ejecutar al iniciar","12nsvnIT","472590lFdkya","Necesita su entrada","Aprobar automáticamente dispositivos nuevos","Grabación de pantalla","Conexión","Registros","¿Eliminar terminal {name}?","Permite desbloquear esta PC desde tu teléfono o navegador cuando está bloqueada","Cerrar 9Remote (detener servidor, cerrar túnel, salir)","Cerrar","Volver a sesiones","6HRfRfu","8927380HoIDua","¿Eliminar sesión {name}? Se cerrará el terminal.","5IxTSRF","Cancelar","Nuevo Terminal","Controlar pantalla, ratón y teclado","Configuración","106930hcExFq","852752lpupMM","Requiere aprobación manual para dispositivos nuevos","Cualquier dispositivo nuevo se conecta sin aprobación","Controlar ratón y teclado","Uso único · expira","El agente respondió","Clave de una sola vez","Documentación","Restablecer túnel y reconectar clientes","Cambiar a modo claro","Cambiar a modo oscuro","Escanear código QR o abrir enlace para iniciar sesión","Permitir","Activo","Eliminar","11979NPbAuI","Idle","Nuevo Grupo","Deshabilitado — inicio manual","¿Eliminar grupo {name}? Se cerrarán todos los terminales dentro.","Sin agrupar","Diagnóstico de actividad del servidor","Sesiones de terminal en vivo en este host","Shift+Enter para nueva línea • Ctrl+Número para cambiar pestaña"];return yn=function(){return e},yn()}const cr={common:{statusIdle:A(488),statusWorking:"Working",statusBlocked:"Needs input",statusDone:A(511),create:A(501),cancel:A(537),delete:A(486),rename:A(497),language:A(508)},terminal:{backToSessions:A(532),switchGroup:A(513),newTerminal:A(502),send:A(507),typeCommand:A(495),deleteConfirm:A(528)},sessions:{newTerminal:A(538),addGroup:"Agregar Grupo",newGroup:A(489),groupName:"Nombre del grupo",renameGroup:A(509),deleteGroup:A(504),ungrouped:A(492),deleteSessionConfirm:A(535),deleteGroupConfirm:A(491)},menu:{connection:A(526),connectionDesc:A(515),terminals:A(514),terminalsDesc:A(494),logs:A(527),logsDesc:A(493)},recent:{title:A(506),replied:A(477),needsInput:A(523),dismiss:"Descartar",empty:"Sin actividad reciente"},header:{settings:A(540),language:"Idioma",documentation:A(479),reset:A(480),resetShort:A(500),shutdown:A(530),shutdownShort:A(531),lightMode:A(481),darkMode:A(482)},remote:{remoteDesktop:A(496),controlScreen:A(539),screenRecording:A(525),captureScreen:A(517),accessibility:A(499),controlMouseKeyboard:A(475),launchOnStartup:A(520),launchDesc:"Ejecutar en segundo plano cuando inicie sesión",disabledStart:A(490),preventSleep:A(512),blockSleep:A(498),remoteUnlock:A(518),remoteUnlockDesc:A(529),remoteUnlockReady:"Activo — el desbloqueo remoto funciona",grant:A(484),granted:A(485)},clients:{autoApprove:A(524),anyDevice:A(544),requireManual:A(543)},connection:{scanToSignIn:A(483),oneTimeKey:A(478),oneTimeDesc:A(476),permanentKey:"Clave Permanente",permanentDesc:"Reutilizable · sin expiración"}};var F=X0;function X0(e,t){e=e-405;var n=_n(),x=n[e];return x}(function(e,t){for(var n=X0,x=e();;)try{var r=-parseInt(n(426))/1*(parseInt(n(414))/2)+-parseInt(n(439))/3*(parseInt(n(422))/4)+-parseInt(n(410))/5*(-parseInt(n(447))/6)+parseInt(n(413))/7+parseInt(n(441))/8+parseInt(n(449))/9*(parseInt(n(428))/10)+parseInt(n(433))/11*(parseInt(n(443))/12);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(_n,328136);function _n(){var e=["سابقه","تغییر نام","ارسال","تنظیمات","افزودن گروه","جفت کردن دستگاهها و مدیریت تونل امن شما","خاموش کردن 9Remote (توقف سرور، بستن تونل، خروج)","مستندات","ترمینال جدید","لغو","اخیر","تغییر به حالت تاریک","Done","1347175TaKALQ","میزکار دور","حذف گروه","882217RYfvvF","10NIzgHZ","بازنشانی تونل و بازاتصال کلاینتها","گروه جدید","کلید یکبار مصرف","اجازه","جلسات ترمینال زنده در این میزبان","تغییر به حالت روشن","نگه داشتن کامپیوتر بیدار","501532OgdARD","Shift+Enter برای خط جدید • Ctrl+عدد برای تغییر برگه","اتصال","بازنشانی","54347CwPsqW","قابل استفاده مجدد · بدون انقضا","393220OolzHM","هیچ فعالیت اخیری وجود ندارد","ایجاد","دسترسیپذیری","حذف گروه {name}؟ تمام ترمینال های درون آن بسته می شوند.","11429kNITin","فعال — باز کردن قفل از راه دور کار میکند","ترمینالها","فعال","تغییر نام گروه","کنترل ماوس و صفحه کلید","3zMtESw","Working","509800PhLfzg","بدون گروه","348CACAHM","بازگشت به جلسات","ضبط صفحه","کد QR را اسکن کنید یا لینک را باز کنید تا وارد شوید","6kdmMWj","هر دستگاه جدید بدون تأیید متصل میشود","54fIZOPP","تغییر گروه","راه اندازی در هنگام شروع","عامل پاسخ داد","زبان","حذف جلسه {name}؟ این کار ترمینال را بسته خواهد کرد.","نام گروه","اجازه دادن برای مشاهده صفحه"];return _n=function(){return e},_n()}const ur={common:{statusIdle:"Idle",statusWorking:F(440),statusBlocked:"Needs input",statusDone:F(409),create:F(430),cancel:F(406),delete:"حذف",rename:F(458),language:"زبان"},terminal:{backToSessions:F(444),switchGroup:F(450),newTerminal:F(405),send:F(459),typeCommand:F(423),deleteConfirm:"حذف ترمینال {name}؟"},sessions:{newTerminal:F(405),addGroup:F(461),newGroup:F(416),groupName:F(455),renameGroup:F(437),deleteGroup:F(412),ungrouped:F(442),deleteSessionConfirm:F(454),deleteGroupConfirm:F(432)},menu:{connection:F(424),connectionDesc:F(462),terminals:F(435),terminalsDesc:F(419),logs:F(457),logsDesc:"تشخیص فعالیت سرور"},recent:{title:F(407),replied:F(452),needsInput:"نیاز به ورودی شما",dismiss:"رد کردن",empty:F(429)},header:{settings:F(460),language:F(453),documentation:F(464),reset:F(415),resetShort:F(425),shutdown:F(463),shutdownShort:"خاموش",lightMode:F(420),darkMode:F(408)},remote:{remoteDesktop:F(411),controlScreen:"کنترل صفحه، ماوس و صفحه کلید",screenRecording:F(445),captureScreen:F(456),accessibility:F(431),controlMouseKeyboard:F(438),launchOnStartup:F(451),launchDesc:"اجرا در پسزمینه هنگام ورود",disabledStart:"غیرفعال — راه اندازی دستی",preventSleep:F(421),blockSleep:"جلوگیری از خواب سیستم برای نگه داشتن اتصال فعال",remoteUnlock:"باز کردن قفل کامپیوتر از راه دور",remoteUnlockDesc:"اجازه باز شدن قفل این کامپیوتر از تلفن یا مرورگر هنگام قفل بودن",remoteUnlockReady:F(434),grant:F(418),granted:F(436)},clients:{autoApprove:"تأیید خودکار دستگاههای جدید",anyDevice:F(448),requireManual:"نیاز به تأیید دستی برای دستگاههای جدید"},connection:{scanToSignIn:F(446),oneTimeKey:F(417),oneTimeDesc:"استفاده یکبار · منقضی میشود",permanentKey:"کلید دائمی",permanentDesc:F(427)}};var H=$0;function kn(){var e=["Renommer le groupe","Enregistrement d'écran","Arrêter","Autoriser le déverrouillage de ce PC depuis votre téléphone ou navigateur lorsqu'il est verrouillé","Scannez le code QR ou ouvrez le lien pour vous connecter","840454jtfeIo","Créer","Rejeter","Annuler","Autoriser","Récent","Clé Permanente","1582WLRhsc","Bureau à Distance","Nécessite votre saisie","Arrêter 9Remote (arrêter le serveur, fermer le tunnel, quitter)","Envoyer","Supprimer","1030200EjTvkA","Réutilisable · sans expiration","Langue","350FGLTth","Déverrouiller le PC à distance","Sessions de terminal en direct sur cet hôte","Supprimer la session {name} ? Cela fermera le terminal.","Supprimer le terminal {name} ?","Nouveau Terminal","Accessibilité","3648100yFTBGE","Actif","Documentation","Supprimer le groupe {name} ? Tous les terminaux dedans seront fermés.","Autoriser l'affichage de l'écran","Maj+Entrée pour nouvelle ligne • Ctrl+Num pour changer d'onglet","Désactivé — lancement manuel","Appairer des appareils et gérer votre tunnel sécurisé","Nouveau Groupe","9FPKUcL","Ajouter un Groupe","Approuver automatiquement les nouveaux appareils","Nom du groupe","Usage unique · expire","Maintenir l'ordinateur actif","Réinitialiser le tunnel et reconnecter les clients","90603TWWEnU","Terminaux","Passer au mode clair","525952gZaRIl","Actif — le déverrouillage à distance fonctionne","71755fjcYfN","Tout nouvel appareil se connecte sans approbation","Paramètres","Journaux","36726OqttmK","Exécuter en arrière-plan lors de votre connexion","Non groupé","Changer de groupe","Renommer"];return kn=function(){return e},kn()}function $0(e,t){e=e-205;var n=kn(),x=n[e];return x}(function(e,t){for(var n=$0,x=e();;)try{var r=parseInt(n(238))/1+-parseInt(n(252))/2*(parseInt(n(226))/3)+parseInt(n(236))/4+parseInt(n(217))/5+-parseInt(n(242))/6*(-parseInt(n(259))/7)+parseInt(n(207))/8+parseInt(n(233))/9*(-parseInt(n(210))/10);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(kn,831958);const dr={common:{statusIdle:"Idle",statusWorking:"Working",statusBlocked:"Needs input",statusDone:"Done",create:H(253),cancel:H(255),delete:H(206),rename:H(246),language:H(209)},terminal:{backToSessions:"Retour aux sessions",switchGroup:H(245),newTerminal:"Nouveau terminal",send:H(205),typeCommand:H(222),deleteConfirm:H(214)},sessions:{newTerminal:H(215),addGroup:H(227),newGroup:H(225),groupName:H(229),renameGroup:H(247),deleteGroup:"Supprimer le groupe",ungrouped:H(244),deleteSessionConfirm:H(213),deleteGroupConfirm:H(220)},menu:{connection:"Connexion",connectionDesc:H(224),terminals:H(234),terminalsDesc:H(212),logs:H(241),logsDesc:"Diagnostic d'activité du serveur"},recent:{title:H(257),replied:"L'agent a répondu",needsInput:H(261),dismiss:H(254),empty:"Aucune activité récente"},header:{settings:H(240),language:H(209),documentation:H(219),reset:H(232),resetShort:"Réinitialiser",shutdown:H(262),shutdownShort:H(249),lightMode:H(235),darkMode:"Passer au mode sombre"},remote:{remoteDesktop:H(260),controlScreen:"Contrôler l'écran, la souris et le clavier",screenRecording:H(248),captureScreen:H(221),accessibility:H(216),controlMouseKeyboard:"Contrôler la souris et le clavier",launchOnStartup:"Lancer au démarrage",launchDesc:H(243),disabledStart:H(223),preventSleep:H(231),blockSleep:"Empêcher la mise en veille du système pour maintenir la connexion active",remoteUnlock:H(211),remoteUnlockDesc:H(250),remoteUnlockReady:H(237),grant:H(256),granted:H(218)},clients:{autoApprove:H(228),anyDevice:H(239),requireManual:"Nécessite l'approbation manuelle pour les nouveaux appareils"},connection:{scanToSignIn:H(251),oneTimeKey:"Clé à Usage Unique",oneTimeDesc:H(230),permanentKey:H(258),permanentDesc:H(208)}};function wn(){var e=["שינוי שם קבוצה","טרמינל חדש","Done","43666azxtuH","דורש אישור ידני להתקנים חדשים","קבוצה חדשה","הגדרות","אבחון פעילות השרת","6MyMpES","כיבוי","הסוכן הגיב","כל התקן חדש מתחבר ללא אישור","סרוק קוד QR או פתח קישור כדי להתחבר","860RFjcTH","דורש את הקלטך","שליחה","עבור למצב אפל","מחוק את הטרמינל {name}?","שפה","מבוטל — הפעלה ידנית","חזרה להפעלות","תיעוד","בטל נעילת מחשב מרחוק","לאחרונה","Idle","צמד התקנים וניהול התעלה המאובטחת שלך","מפתח חד פעמי","אפשר הצגת מסך","מחוק הפעלה {name}? זה יסגור את הטרמינל.","מנע שינת מערכת כדי לשמור על חיבור פעיל","שימוש אחד · פג","דחה","Shift+Enter לשורה חדשה • Ctrl+מספר לעבור בין כרטיסיות","שם הקבוצה","נגישות","הפעל בהפעלת המערכת","הוסף קבוצה","שינוי שם","שולחן עבודה מרחוק","הפעל ברקע כשאתה מתחבר","1345490rMsZbs","3553336kJgxXo","2307aMNaUh","שלוט על העכבר והמקלדת","63312inBXSP","Working","אין פעילות אחרונה","7LEMWqS","9YyDrzK","הפעלות טרמינל חיות על השרת הזה","עבור למצב בהיר","איפוס","ביטול","כיבוי 9Remote (עצור שרת, סגור תעלה, יציאה)","איפוס התעלה והחבר מחדש ללקוחות","טרמינלים","222089UnQwyD","אפשר","ניתן לשימוש חוזר · ללא תוקף","1364xyqkFy","555580cbvFtU","ללא קבוצה"];return wn=function(){return e},wn()}var B=ex;function ex(e,t){e=e-372;var n=wn(),x=n[e];return x}(function(e,t){for(var n=ex,x=e();;)try{var r=parseInt(n(389))/1*(parseInt(n(407))/2)+parseInt(n(384))/3*(-parseInt(n(417))/4)+parseInt(n(402))/5*(-parseInt(n(412))/6)+parseInt(n(398))/7+-parseInt(n(383))/8*(parseInt(n(390))/9)+parseInt(n(382))/10+-parseInt(n(401))/11*(-parseInt(n(386))/12);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(wn,252713);const pr={common:{statusIdle:B(428),statusWorking:B(387),statusBlocked:"Needs input",statusDone:B(406),create:"יצירה",cancel:B(394),delete:"מחיקה",rename:B(379),language:B(422)},terminal:{backToSessions:B(424),switchGroup:"החלפת קבוצה",newTerminal:B(405),send:B(419),typeCommand:B(374),deleteConfirm:B(421)},sessions:{newTerminal:B(405),addGroup:B(378),newGroup:B(409),groupName:B(375),renameGroup:B(404),deleteGroup:"מחוק קבוצה",ungrouped:B(403),deleteSessionConfirm:B(432),deleteGroupConfirm:"מחוק קבוצה {name}? כל הטרמינלים בפנים יסגרו."},menu:{connection:"חיבור",connectionDesc:B(429),terminals:B(397),terminalsDesc:B(391),logs:"יומנים",logsDesc:B(411)},recent:{title:B(427),replied:B(414),needsInput:B(418),dismiss:B(373),empty:B(388)},header:{settings:B(410),language:B(422),documentation:B(425),reset:B(396),resetShort:B(393),shutdown:B(395),shutdownShort:B(413),lightMode:B(392),darkMode:B(420)},remote:{remoteDesktop:B(380),controlScreen:"שלוט על המסך, העכבר והמקלדת",screenRecording:"הקלטת מסך",captureScreen:B(431),accessibility:B(376),controlMouseKeyboard:B(385),launchOnStartup:B(377),launchDesc:B(381),disabledStart:B(423),preventSleep:"הוודא שהמחשב ער",blockSleep:B(433),remoteUnlock:B(426),remoteUnlockDesc:"אפשר ביטול נעילה של המחשב הזה מהטלפון או הדפדפן כשנעול",remoteUnlockReady:"פעיל — נעילה מרחוק עובדת",grant:B(399),granted:"פעיל"},clients:{autoApprove:"אישור אוטומטי של התקנים חדשים",anyDevice:B(415),requireManual:B(408)},connection:{scanToSignIn:B(416),oneTimeKey:B(430),oneTimeDesc:B(372),permanentKey:"מפתח קבוע",permanentDesc:B(400)}};function Sn(){var e=["रद्द करें","कोई भी नया डिवाइस अनुमोदन के बिना कनेक्ट करता है","अंधेरे मोड पर स्विच करें","पुनः नाम दें","समूह हटाएं","सुरंग रीसेट करें और क्लाइंट को फिर से कनेक्ट करें","भेजें","सेटिंग्स","PC दूरस्थ रूप से अनलॉक करें","स्थायी कुंजी","Idle","पहुंच योग्यता","डिवाइस को जोड़ी करें और अपनी सुरक्षित सुरंग का प्रबंधन करें","कनेक्शन को सक्रिय रखने के लिए सिस्टम स्लीप को रोकें","स्क्रीन, माउस और कीबोर्ड को नियंत्रित करें","7CdBqQG","2020OIyqJX","2021892zBvGJL","समूह {name} को हटाएं? इसके अंदर सभी टर्मिनल बंद हो जाएंगे।","लॉग्स","सत्र {name} को हटाएं? यह टर्मिनल को बंद कर देगा।","5868171YNWCwi","एजेंट ने जवाब दिया","सत्रों पर वापस जाएं","नया टर्मिनल","अक्षम — मैनुअल लॉन्च","Needs input","33fyLtau","नए डिवाइस के लिए मैनुअल अनुमोदन की आवश्यकता है","हटाएं","6584790gBMJba","2724980pbvwvz","8ZdRtQu","9Remote को बंद करें (सर्वर बंद करें, सुरंग बंद करें, बाहर निकलें)","अनुमति दें","सक्रिय","इस होस्ट पर लाइव टर्मिनल सत्र","बंद करें","2SIgsYy","1374QNJHMp","सक्रिय — दूरस्थ अनलॉक काम कर रहा है","7428228tiSrUp","796211mIuvUW","एकबारगी कुंजी","कोई हाल ही की गतिविधि नहीं","भाषा","दस्तावेज़","हाल ही में","कंप्यूटर को जागृत रखें","स्क्रीन दृश्य की अनुमति दें","Working","रिमोट डेस्कटॉप","पुन: उपयोग योग्य · कोई समाप्ति नहीं","नई लाइन के लिए Shift+Enter • टैब बदलने के लिए Ctrl+संख्या","साइन इन करने के लिए QR कोड स्कैन करें या लिंक खोलें","बनाएं","एकल उपयोग · समाप्त होता है","लॉक होने पर इस PC को फ़ोन या ब्राउज़र से अनलॉक होने की अनुमति दें"];return Sn=function(){return e},Sn()}function nx(e,t){e=e-222;var n=Sn(),x=n[e];return x}var J=nx;(function(e,t){for(var n=nx,x=e();;)try{var r=-parseInt(n(254))/1*(parseInt(n(250))/2)+parseInt(n(251))/3*(parseInt(n(228))/4)+-parseInt(n(243))/5+parseInt(n(229))/6*(-parseInt(n(227))/7)+-parseInt(n(244))/8*(parseInt(n(233))/9)+parseInt(n(242))/10+-parseInt(n(239))/11*(-parseInt(n(253))/12);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Sn,416618);const mr={common:{statusIdle:J(222),statusWorking:J(262),statusBlocked:J(238),statusDone:"Done",create:J(267),cancel:"रद्द करें",delete:J(241),rename:J(273),language:J(257)},terminal:{backToSessions:J(235),switchGroup:"समूह बदलें",newTerminal:J(236),send:J(276),typeCommand:J(265),deleteConfirm:"टर्मिनल {name} को हटाएं?"},sessions:{newTerminal:J(236),addGroup:"समूह जोड़ें",newGroup:"नया समूह",groupName:"समूह का नाम",renameGroup:"समूह का नाम बदलें",deleteGroup:J(274),ungrouped:"असमूहित",deleteSessionConfirm:J(232),deleteGroupConfirm:J(230)},menu:{connection:"संयोजन",connectionDesc:J(224),terminals:"टर्मिनल",terminalsDesc:J(248),logs:J(231),logsDesc:"सर्वर गतिविधि निदान"},recent:{title:J(259),replied:J(234),needsInput:"आपके इनपुट की जरूरत है",dismiss:J(270),empty:J(256)},header:{settings:J(277),language:J(257),documentation:J(258),reset:J(275),resetShort:"रीसेट करें",shutdown:J(245),shutdownShort:J(249),lightMode:"हल्के मोड पर स्विच करें",darkMode:J(272)},remote:{remoteDesktop:J(263),controlScreen:J(226),screenRecording:"स्क्रीन रिकॉर्डिंग",captureScreen:J(261),accessibility:J(223),controlMouseKeyboard:"माउस और कीबोर्ड को नियंत्रित करें",launchOnStartup:"स्टार्टअप पर लॉन्च करें",launchDesc:"जब आप लॉगिन करते हैं तो पृष्ठभूमि में चलाएं",disabledStart:J(237),preventSleep:J(260),blockSleep:J(225),remoteUnlock:J(278),remoteUnlockDesc:J(269),remoteUnlockReady:J(252),grant:J(246),granted:J(247)},clients:{autoApprove:"नए डिवाइस को स्वचालित रूप से मंजूरी दें",anyDevice:J(271),requireManual:J(240)},connection:{scanToSignIn:J(266),oneTimeKey:J(255),oneTimeDesc:J(268),permanentKey:J(279),permanentDesc:J(264)}};var ee=tx;function In(){var e=["Kunci Permanen","2672AKLJkM","Ubah nama grup","Perangkat baru apa pun terhubung tanpa persetujuan","Idle","Done","Kontrol mouse & keyboard","Nama grup","Batalkan","Izinkan PC ini dibuka kuncinya dari ponsel atau browser saat terkunci","240fLYwUU","Luncurkan saat startup","Terminal","Sesi terminal langsung berjalan di host ini","Hapus sesi {name}? Ini akan menutup terminal.","Tambah Grup","Working","Log","Pindai kode QR atau buka tautan untuk masuk","948IEJasi","Hapus grup {name}? Semua terminal di dalamnya akan ditutup.","Hapus","137905rWRyEr","Needs input","Tidak Dikelompokkan","Pengaturan","Ganti grup","Kunci Sekali Pakai","2oleoEY","Penggunaan tunggal · kedaluwarsa","Shift+Enter untuk baris baru • Ctrl+Num untuk ganti tab","Diagnostik aktivitas server","Hapus grup","Setujui perangkat baru secara otomatis","Aktif","Koneksi","Abaikan","20ZXFbvu","Bahasa","Tidak ada aktivitas terbaru","Buat","814662DGrpGk","1997704GdykUs","Agen merespon","Kirim","Aktif — buka kunci jarak jauh berfungsi","Dapat digunakan kembali · tidak ada kadaluarsa","Grup Baru","Setel ulang terowongan dan sambungkan kembali klien","45290GQJstC","Perekaman Layar","Aksesibilitas","Pasangkan perangkat dan kelola terowongan aman Anda","247811fuWPJt","778866YyzaAl"];return In=function(){return e},In()}function tx(e,t){e=e-447;var n=In(),x=n[e];return x}(function(e,t){for(var n=tx,x=e();;)try{var r=-parseInt(n(461))/1*(-parseInt(n(491))/2)+-parseInt(n(482))/3*(-parseInt(n(464))/4)+parseInt(n(485))/5+parseInt(n(473))/6*(-parseInt(n(457))/7)+parseInt(n(450))/8+parseInt(n(449))/9*(-parseInt(n(500))/10)+-parseInt(n(462))/11;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(In,225551);const fr={common:{statusIdle:ee(467),statusWorking:ee(479),statusBlocked:ee(486),statusDone:ee(468),create:ee(448),cancel:ee(471),delete:ee(484),rename:"Ubah Nama",language:"Bahasa"},terminal:{backToSessions:"Kembali ke sesi",switchGroup:ee(489),newTerminal:"Terminal baru",send:ee(452),typeCommand:ee(493),deleteConfirm:"Hapus terminal {name}?"},sessions:{newTerminal:"Terminal Baru",addGroup:ee(478),newGroup:ee(455),groupName:ee(470),renameGroup:ee(465),deleteGroup:ee(495),ungrouped:ee(487),deleteSessionConfirm:ee(477),deleteGroupConfirm:ee(483)},menu:{connection:ee(498),connectionDesc:ee(460),terminals:ee(475),terminalsDesc:ee(476),logs:ee(480),logsDesc:ee(494)},recent:{title:"Terbaru",replied:ee(451),needsInput:"Membutuhkan masukan Anda",dismiss:ee(499),empty:ee(447)},header:{settings:ee(488),language:ee(501),documentation:"Dokumentasi",reset:ee(456),resetShort:"Setel Ulang",shutdown:"Matikan 9Remote (hentikan server, tutup terowongan, keluar)",shutdownShort:"Matikan",lightMode:"Beralih ke mode terang",darkMode:"Beralih ke mode gelap"},remote:{remoteDesktop:"Dekstop Jarak Jauh",controlScreen:"Kontrol layar, mouse & keyboard",screenRecording:ee(458),captureScreen:"Izinkan tampilan layar",accessibility:ee(459),controlMouseKeyboard:ee(469),launchOnStartup:ee(474),launchDesc:"Jalankan di latar belakang saat Anda masuk",disabledStart:"Dinonaktifkan — peluncuran manual",preventSleep:"Jaga komputer tetap aktif",blockSleep:"Cegah sistem tidur untuk menjaga koneksi tetap aktif",remoteUnlock:"Buka kunci PC dari jarak jauh",remoteUnlockDesc:ee(472),remoteUnlockReady:ee(453),grant:"Izinkan",granted:ee(497)},clients:{autoApprove:ee(496),anyDevice:ee(466),requireManual:"Memerlukan persetujuan manual untuk perangkat baru"},connection:{scanToSignIn:ee(481),oneTimeKey:ee(490),oneTimeDesc:ee(492),permanentKey:ee(463),permanentDesc:ee(454)}};function xx(e,t){e=e-476;var n=Cn(),x=n[e];return x}function Cn(){var e=["Registrazione schermo","Invia","Avvia all'avvio","Done","2559522TZIoqJ","759061kTDqIY","Aggiungi Gruppo","Esegui in background quando accedi","Documentazione","Mantieni il computer sveglio","5433252GgPBOI","Rinomina gruppo","Passa alla modalità chiara","Idle","Controlla mouse e tastiera","Lingua","Attivo — lo sblocco da remoto funziona","19159020iCQbQh","10854280VupdmT","Attivo","Working","Maiusc+Invio per nuova riga • Ctrl+Num per cambiare scheda","Uso singolo · scade","Recente","Consenti","7pLWejW","Controlla schermo, mouse e tastiera","Torna alle sessioni","Rinomina","Sblocca PC da remoto","Ripristina","Spegni","Scansiona il codice QR o apri il collegamento per accedere","Accessibilità","Eliminare il gruppo {name}? Tutti i terminali all'interno verranno chiusi.","Non raggruppato","Consenti di sbloccare questo PC dal telefono o dal browser quando è bloccato","Needs input","2awibIc","Eliminare la sessione {name}? Questo chiuderà il terminale.","Log","Cambia gruppo","Nuovo Gruppo","Richiede l'approvazione manuale per i nuovi dispositivi","Impedisci la sospensione del sistema per mantenere attiva la connessione","Ripristina tunnel e riconnetti i client","Qualsiasi nuovo dispositivo si connette senza approvazione","Desktop Remoto","Abbina dispositivi e gestisci il tuo tunnel sicuro","Disabilitato — avvio manuale","Diagnostica attività server","Necessita il tuo input","3370160kKWRnf","Chiave Usa e Getta","Terminali","1148127aotSsp","Consenti visualizzazione schermo","Chiudi","Approva automaticamente i nuovi dispositivi"];return Cn=function(){return e},Cn()}var j=xx;(function(e,t){for(var n=xx,x=e();;)try{var r=-parseInt(n(492))/1*(parseInt(n(525))/2)+-parseInt(n(483))/3+-parseInt(n(497))/4+-parseInt(n(480))/5+parseInt(n(491))/6+parseInt(n(512))/7*(parseInt(n(505))/8)+parseInt(n(504))/9;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Cn,738037);const hr={common:{statusIdle:j(500),statusWorking:j(507),statusBlocked:j(524),statusDone:j(490),create:"Crea",cancel:"Annulla",delete:"Elimina",rename:j(515),language:j(502)},terminal:{backToSessions:j(514),switchGroup:j(528),newTerminal:"Nuovo terminale",send:j(488),typeCommand:j(508),deleteConfirm:"Eliminare il terminale {name}?"},sessions:{newTerminal:"Nuovo Terminale",addGroup:j(493),newGroup:j(529),groupName:"Nome del gruppo",renameGroup:j(498),deleteGroup:"Elimina gruppo",ungrouped:j(522),deleteSessionConfirm:j(526),deleteGroupConfirm:j(521)},menu:{connection:"Connessione",connectionDesc:j(476),terminals:j(482),terminalsDesc:"Sessioni di terminale live in esecuzione su questo host",logs:j(527),logsDesc:j(478)},recent:{title:j(510),replied:"L'agente ha risposto",needsInput:j(479),dismiss:j(485),empty:"Nessuna attività recente"},header:{settings:"Impostazioni",language:j(502),documentation:j(495),reset:j(532),resetShort:j(517),shutdown:"Spegni 9Remote (arresta server, chiudi tunnel, esci)",shutdownShort:j(518),lightMode:j(499),darkMode:"Passa alla modalità scura"},remote:{remoteDesktop:j(534),controlScreen:j(513),screenRecording:j(487),captureScreen:j(484),accessibility:j(520),controlMouseKeyboard:j(501),launchOnStartup:j(489),launchDesc:j(494),disabledStart:j(477),preventSleep:j(496),blockSleep:j(531),remoteUnlock:j(516),remoteUnlockDesc:j(523),remoteUnlockReady:j(503),grant:j(511),granted:j(506)},clients:{autoApprove:j(486),anyDevice:j(533),requireManual:j(530)},connection:{scanToSignIn:j(519),oneTimeKey:j(481),oneTimeDesc:j(509),permanentKey:"Chiave Permanente",permanentDesc:"Riutilizzabile · nessuna scadenza"}};function Tn(){var e=["Done","新しいターミナル","リモートデスクトップ","12tPSFAw","セッション {name} を削除しますか? ターミナルが終了します。","新しいデバイスを自動的に承認","最近のアクティビティはありません","永続キー","28843150TIfVyi","Needs input","再利用可能 · 有効期限なし","8LhUsWX","1032849dNoyLb","接続を有効にするために、システムスリープを防ぐ","グループを追加","ライトモードに切り替え","Shift+Enterで改行 • Ctrl+数字でタブを切り替え","無効 — 手動起動","グループ名","2100034IiNexf","862533Pnanlf","9Remoteをシャットダウン(サーバー停止、トンネル閉鎖、終了)","画面、マウス、キーボードを操作","Idle","グループを切り替える","グループの名前を変更","起動時に実行","エージェントが返信","セッション一覧に戻る","新規グループ","コンピュータを起動状態に保つ","サーバーアクティビティ診断","このホストで実行中のライブターミナルセッション","ターミナル {name} を削除しますか?","1710wMlwlo","アクセシビリティ","ドキュメンテーション","トンネルをリセットしてクライアントを再接続","画面録画","1863065hJOeXa","グループ {name} を削除しますか? 内部のすべてのターミナルが閉じます。","リセット","889562gtpGtM","1回限りの使用 · 有効期限あり","462IBUaWC","新しいデバイスには手動承認が必要"];return Tn=function(){return e},Tn()}function rx(e,t){e=e-226;var n=Tn(),x=n[e];return x}var te=rx;(function(e,t){for(var n=rx,x=e();;)try{var r=parseInt(n(229))/1+parseInt(n(252))/2+parseInt(n(253))/3+-parseInt(n(236))/4*(-parseInt(n(226))/5)+parseInt(n(267))/6*(parseInt(n(231))/7)+parseInt(n(244))/8*(parseInt(n(245))/9)+-parseInt(n(241))/10;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Tn,594185);const gr={common:{statusIdle:te(256),statusWorking:"Working",statusBlocked:te(242),statusDone:te(233),create:"作成",cancel:"キャンセル",delete:"削除",rename:"名前変更",language:"言語"},terminal:{backToSessions:te(261),switchGroup:te(257),newTerminal:"新しいターミナル",send:"送信",typeCommand:te(249),deleteConfirm:te(266)},sessions:{newTerminal:te(234),addGroup:te(247),newGroup:te(262),groupName:te(251),renameGroup:te(258),deleteGroup:"グループを削除",ungrouped:"グループ化されていません",deleteSessionConfirm:te(237),deleteGroupConfirm:te(227)},menu:{connection:"接続",connectionDesc:"デバイスをペアリングし、セキュアトンネルを管理します",terminals:"ターミナル",terminalsDesc:te(265),logs:"ログ",logsDesc:te(264)},recent:{title:"最近",replied:te(260),needsInput:"あなたの入力が必要です",dismiss:"閉じる",empty:te(239)},header:{settings:"設定",language:"言語",documentation:te(269),reset:te(270),resetShort:te(228),shutdown:te(254),shutdownShort:"シャットダウン",lightMode:te(248),darkMode:"ダークモードに切り替え"},remote:{remoteDesktop:te(235),controlScreen:te(255),screenRecording:te(271),captureScreen:"画面表示を許可",accessibility:te(268),controlMouseKeyboard:"マウスとキーボードを操作",launchOnStartup:te(259),launchDesc:"ログイン時にバックグラウンドで実行",disabledStart:te(250),preventSleep:te(263),blockSleep:te(246),remoteUnlock:"リモートでPCをロック解除",remoteUnlockDesc:"ロック時にスマホやブラウザからこのPCをロック解除できるようにする",remoteUnlockReady:"有効 — リモートロック解除が機能しています",grant:"許可",granted:"有効"},clients:{autoApprove:te(238),anyDevice:"新しいデバイスは承認なしで接続",requireManual:te(232)},connection:{scanToSignIn:"QRコードをスキャンするか、リンクを開いてサインイン",oneTimeKey:"ワンタイムキー",oneTimeDesc:te(230),permanentKey:te(240),permanentDesc:te(243)}};var Q=ax;(function(e,t){for(var n=ax,x=e();;)try{var r=parseInt(n(318))/1*(-parseInt(n(327))/2)+-parseInt(n(336))/3+parseInt(n(349))/4+parseInt(n(341))/5*(parseInt(n(355))/6)+-parseInt(n(334))/7*(-parseInt(n(298))/8)+parseInt(n(303))/9*(parseInt(n(324))/10)+-parseInt(n(343))/11*(parseInt(n(322))/12);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Dn,873419);const br={common:{statusIdle:Q(337),statusWorking:Q(328),statusBlocked:"Needs input",statusDone:Q(310),create:Q(308),cancel:"취소",delete:"삭제",rename:Q(347),language:"언어"},terminal:{backToSessions:Q(346),switchGroup:"그룹 전환",newTerminal:Q(306),send:Q(307),typeCommand:Q(335),deleteConfirm:"터미널 {name}을(를) 삭제하시겠습니까?"},sessions:{newTerminal:Q(306),addGroup:Q(319),newGroup:Q(314),groupName:"그룹 이름",renameGroup:Q(316),deleteGroup:"그룹 삭제",ungrouped:Q(332),deleteSessionConfirm:Q(356),deleteGroupConfirm:Q(299)},menu:{connection:"연결",connectionDesc:Q(339),terminals:Q(302),terminalsDesc:"이 호스트에서 실행 중인 라이브 터미널 세션",logs:"로그",logsDesc:Q(344)},recent:{title:"최근",replied:Q(325),needsInput:Q(354),dismiss:"닫기",empty:Q(315)},header:{settings:"설정",language:"언어",documentation:Q(331),reset:Q(340),resetShort:Q(311),shutdown:Q(338),shutdownShort:"종료",lightMode:Q(352),darkMode:Q(313)},remote:{remoteDesktop:Q(348),controlScreen:Q(320),screenRecording:Q(305),captureScreen:Q(323),accessibility:Q(321),controlMouseKeyboard:Q(351),launchOnStartup:Q(312),launchDesc:Q(333),disabledStart:"비활성화 — 수동 시작",preventSleep:Q(309),blockSleep:Q(330),remoteUnlock:Q(345),remoteUnlockDesc:"잠금 시 휴대폰이나 브라우저에서 이 PC를 잠금 해제하도록 허용",remoteUnlockReady:Q(301),grant:"허용",granted:"활성"},clients:{autoApprove:Q(329),anyDevice:Q(342),requireManual:Q(300)},connection:{scanToSignIn:Q(326),oneTimeKey:Q(353),oneTimeDesc:Q(317),permanentKey:Q(304),permanentDesc:Q(350)}};function ax(e,t){e=e-298;var n=Dn(),x=n[e];return x}function Dn(){var e=["화면, 마우스 및 키보드 제어","접근성","156924mzArdZ","화면 보기 허용","5260qIbqvl","에이전트가 응답함","QR 코드를 스캔하거나 링크를 열어 로그인","28EDzhLF","Working","새 기기 자동 승인","연결을 유지하기 위해 시스템 절전 방지","설명서","그룹 없음","로그인할 때 백그라운드에서 실행","70NMOxAl","새 줄은 Shift+Enter • 탭 전환은 Ctrl+번호","1548693wyeJVL","Idle","9Remote 종료(서버 중지, 터널 닫기, 종료)","기기를 연결하고 보안 터널 관리","터널 재설정 및 클라이언트 재연결","117415yuIVuk","새 기기가 승인 없이 연결됨","286prnqWd","서버 활동 진단","원격으로 PC 잠금 해제","세션으로 돌아가기","이름 바꾸기","원격 데스크톱","3020488jVtmqf","재사용 가능 · 만료 없음","마우스 및 키보드 제어","라이트 모드로 전환","일회용 키","사용자 입력 필요","96BFmriz","세션 {name}을(를) 삭제하시겠습니까? 터미널이 종료됩니다.","1223912OIRkgL","그룹 {name}을(를) 삭제하시겠습니까? 내부의 모든 터미널이 종료됩니다.","새 기기에 수동 승인 필요","활성 — 원격 잠금 해제 작동 중","터미널","8721FWZcZz","영구 키","화면 녹화","새 터미널","보내기","만들기","컴퓨터 깨어있게 유지","Done","재설정","시작 시 시작","다크 모드로 전환","새 그룹","최근 활동 없음","그룹 이름 바꾸기","일회 사용 · 만료됨","102913aIrdJz","그룹 추가"];return Dn=function(){return e},Dn()}var Y=ox;function ox(e,t){e=e-322;var n=Nn(),x=n[e];return x}(function(e,t){for(var n=ox,x=e();;)try{var r=parseInt(n(372))/1*(parseInt(n(352))/2)+-parseInt(n(357))/3*(parseInt(n(339))/4)+parseInt(n(330))/5*(-parseInt(n(334))/6)+parseInt(n(369))/7+-parseInt(n(363))/8+-parseInt(n(378))/9+-parseInt(n(341))/10*(-parseInt(n(331))/11);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Nn,318326);const vr={common:{statusIdle:Y(332),statusWorking:Y(353),statusBlocked:Y(355),statusDone:"Done",create:"Buat",cancel:"Batal",delete:"Padam",rename:"Tukar nama",language:Y(366)},terminal:{backToSessions:Y(348),switchGroup:Y(374),newTerminal:"Terminal baharu",send:Y(350),typeCommand:Y(329),deleteConfirm:"Padam terminal {name}?"},sessions:{newTerminal:Y(359),addGroup:Y(371),newGroup:Y(336),groupName:"Nama kumpulan",renameGroup:Y(335),deleteGroup:"Padam kumpulan",ungrouped:Y(328),deleteSessionConfirm:Y(354),deleteGroupConfirm:Y(370)},menu:{connection:"Sambungan",connectionDesc:"Pasangkan peranti dan uruskan terowong selamat anda",terminals:"Terminal",terminalsDesc:Y(364),logs:Y(338),logsDesc:Y(323)},recent:{title:Y(362),replied:"Ejen telah membalas",needsInput:Y(337),dismiss:Y(373),empty:Y(340)},header:{settings:Y(351),language:Y(366),documentation:Y(349),reset:Y(333),resetShort:Y(327),shutdown:Y(325),shutdownShort:"Tutup",lightMode:"Tukar ke mod cerah",darkMode:Y(376)},remote:{remoteDesktop:Y(375),controlScreen:Y(324),screenRecording:"Rakaman skrin",captureScreen:"Benarkan paparan skrin",accessibility:Y(346),controlMouseKeyboard:Y(367),launchOnStartup:Y(356),launchDesc:Y(361),disabledStart:Y(368),preventSleep:Y(342),blockSleep:Y(358),remoteUnlock:Y(344),remoteUnlockDesc:Y(322),remoteUnlockReady:Y(365),grant:Y(326),granted:"Aktif"},clients:{autoApprove:Y(347),anyDevice:Y(360),requireManual:"Memerlukan kelulusan manual untuk peranti baharu"},connection:{scanToSignIn:Y(343),oneTimeKey:Y(345),oneTimeDesc:Y(377),permanentKey:"Kunci Kekal",permanentDesc:"Boleh digunakan semula · tiada tamat tempoh"}};function Nn(){var e=["10eFKurH","Pastikan komputer sentiasa aktif","Imbas kod QR atau buka pautan untuk log masuk","Buka kunci PC secara jauh","Kunci Sekali Guna","Kebolehaksesan","Lulus secara automatik peranti baharu","Kembali ke sesi","Dokumentasi","Hantar","Tetapan","10ieZsjo","Working","Padam sesi {name}? Ini akan menutup terminal.","Needs input","Lancar semasa permulaan","3gauiAW","Cegah tidur sistem untuk mengekalkan sambungan aktif","Terminal Baharu","Mana-mana peranti baharu menyambung tanpa kelulusan","Jalankan di latar belakang apabila anda log masuk","Terbaru","3372552MGZMUe","Sesi terminal langsung berjalan di hos ini","Aktif — buka kunci jauh berfungsi","Bahasa","Kawal tetikus & papan kunci","Dilumpuhkan — pelancaran manual","2195487SimtZB","Padam kumpulan {name}? Semua terminal di dalamnya akan ditutup.","Tambah Kumpulan","81806HzBTkv","Tutup","Tukar kumpulan","Dekstop Jauh","Tukar ke mod gelap","Penggunaan tunggal · tamat tempoh","295425JUcMZu","Benarkan PC ini dibuka kunci dari telefon atau pelayar apabila dikunci","Diagnosis aktiviti pelayan","Kawal skrin, tetikus & papan kunci","Tutup 9Remote (hentikan pelayan, tutup terowong, keluar)","Benarkan","Tetap Semula","Tidak dikumpulkan","Shift+Enter untuk baris baharu • Ctrl+Num untuk tukar tab","745nMqxta","10131869FzvpgO","Idle","Tetap semula terowong dan sambung semula klien","10194YJlkVN","Tukar nama kumpulan","Kumpulan Baharu","Memerlukan input anda","Log","2471516OrgdcV","Tiada aktiviti terbaru"];return Nn=function(){return e},Nn()}function Rn(){var e=["Terminals","Actief","Opnieuw instellen","Systeemruststand voorkomen om verbinding actief te houden","Documentatie","Nieuwe apparaten automatisch goedkeuren","Live terminalsessies op deze host","Permanente Sleutel","2560485aMrPXX","Heeft uw invoer nodig","Sessie {name} verwijderen? Dit sluit de terminal.","Muis en toetsenbord bedienen","Laat dit PC ontgrendeld worden vanaf telefoon of browser wanneer vergrendeld","Overschakelen naar donkere modus","Recente","69142PvlCQG","5354586xzCdGg","7482510Hgaxyk","QR-code scannen of link openen om in te loggen","Bij het starten starten","Eenmalig gebruik · vervalt","Actief — ontgrendelen op afstand werkt","Working","Toestaan","Done","Terug naar sessies","Handmatige goedkeuring nodig voor nieuwe apparaten","Serveractiviteit diagnostiek","Niet gegroepeerd","Herbruikbaar · geen vervaldatum","Computer wakker houden","Elk nieuw apparaat maakt verbinding zonder goedkeuring","Logboeken","Schermopname","Overschakelen naar lichte modus","Taal","7759784PPByCa","Op de achtergrond uitvoeren wanneer u inlogt","35IuHAoF","Idle","Hernoemen","9Remote afsluiten (server stoppen, tunnel sluiten, afsluiten)","Eenmalige Sleutel","Nieuwe terminal","PC op afstand ontgrendelen","468552CwTKLd","Verwijderen","Annuleren","Tunnel opnieuw instellen en clients opnieuw verbinden","Terminal {name} verwijderen?","Toegankelijkheid","2SbMirG","Extern Bureaublad","871392QJNHAZ","Scherm, muis en toetsenbord bedienen","Geen recente activiteit","Instellingen"];return Rn=function(){return e},Rn()}function ix(e,t){e=e-338;var n=Rn(),x=n[e];return x}var W=ix;(function(e,t){for(var n=ix,x=e();;)try{var r=parseInt(n(382))/1+-parseInt(n(361))/2*(-parseInt(n(375))/3)+parseInt(n(355))/4+parseInt(n(348))/5*(-parseInt(n(363))/6)+parseInt(n(384))/7+-parseInt(n(346))/8+parseInt(n(383))/9;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Rn,717062);const yr={common:{statusIdle:W(349),statusWorking:W(389),statusBlocked:"Needs input",statusDone:W(391),create:"Maken",cancel:W(357),delete:W(356),rename:W(350),language:W(345)},terminal:{backToSessions:W(392),switchGroup:"Groep wisselen",newTerminal:W(353),send:"Verzenden",typeCommand:"Shift+Enter voor nieuwe regel • Ctrl+Getal om tabblad te wisselen",deleteConfirm:W(359)},sessions:{newTerminal:"Nieuwe Terminal",addGroup:"Groep Toevoegen",newGroup:"Nieuwe Groep",groupName:"Groepsnaam",renameGroup:"Groep hernoemen",deleteGroup:"Groep verwijderen",ungrouped:W(338),deleteSessionConfirm:W(377),deleteGroupConfirm:"Groep {name} verwijderen? Alle terminals erin sluiten."},menu:{connection:"Verbinding",connectionDesc:"Apparaten koppelen en uw beveiligde tunnel beheren",terminals:W(367),terminalsDesc:W(373),logs:W(342),logsDesc:W(394)},recent:{title:W(381),replied:"Agent antwoordde",needsInput:W(376),dismiss:"Sluiten",empty:W(365)},header:{settings:W(366),language:W(345),documentation:W(371),reset:W(358),resetShort:W(369),shutdown:W(351),shutdownShort:"Afsluiten",lightMode:W(344),darkMode:W(380)},remote:{remoteDesktop:W(362),controlScreen:W(364),screenRecording:W(343),captureScreen:"Schermweergave toestaan",accessibility:W(360),controlMouseKeyboard:W(378),launchOnStartup:W(386),launchDesc:W(347),disabledStart:"Uitgeschakeld — handmatig starten",preventSleep:W(340),blockSleep:W(370),remoteUnlock:W(354),remoteUnlockDesc:W(379),remoteUnlockReady:W(388),grant:W(390),granted:W(368)},clients:{autoApprove:W(372),anyDevice:W(341),requireManual:W(393)},connection:{scanToSignIn:W(385),oneTimeKey:W(352),oneTimeDesc:W(387),permanentKey:W(374),permanentDesc:W(339)}};var U=sx;function sx(e,t){e=e-157;var n=An(),x=n[e];return x}function An(){var e=["Zeskanuj kod QR lub otwórz link aby się zalogować","Aktywne — zdalne odblokowywanie działa","Ostatnie","Dokumentacja","Utrzymuj komputer w stanie czuwania","Usuń grupę","Usunąć sesję {name}? To zamknie terminal.","Zresetuj tunel i ponownie połącz klientów","Niezgrupowane","Zmień nazwę grupy","Shift+Enter dla nowej linii • Ctrl+Num aby zmienić kartę","Dostępność","Odblokuj PC zdalnie","Automatycznie zatwierdź nowe urządzenia","Nowy terminal","566109GOnmMb","5PNalKP","Zamknij 9Remote (zatrzymaj serwer, zamknij tunel, wyjdź)","Sparuj urządzenia i zarządzaj bezpiecznym tunelem","Dzienniki","Wyłączone — uruchamianie ręczne","571043CfqBZi","16ATawFa","10BTIkzf","51432SOrGuT","Zamknij","Usuń","Zmień nazwę","Usunąć terminal {name}?","Usunąć grupę {name}? Wszystkie terminale w niej zostaną zamknięte.","Kontroluj ekran, mysz i klawiaturę","Nowy Terminal","2927784VnCzln","Język","21937AVPuLs","6524622NGfWaA","Utwórz","1375464QppFYy","Nowa Grupa","Uniemożliwij uśpienie systemu aby utrzymać aktywne połączenie","Jednorazowe użycie · wygasa","Możliwy do ponownego użycia · bez wygaśnięcia","Anuluj","Zresetuj","Zezwól na wyświetlanie ekranu","Uruchamiaj przy starcie","Needs input","Ustawienia","Done","819yhEaaU","Pulpit Zdalny","Dodaj Grupę","Nagrywanie ekranu","Potrzebuje Twojego wkładu","Idle","Brak ostatniej aktywności","Połączenie","Zezwól na odblokowanie tego PC z telefonu lub przeglądarki przy zablokowaniu","Aktywne","Przełącz na tryb ciemny","Wyślij"];return An=function(){return e},An()}(function(e,t){for(var n=sx,x=e();;)try{var r=parseInt(n(185))/1*(-parseInt(n(173))/2)+-parseInt(n(166))/3+parseInt(n(188))/4+-parseInt(n(167))/5*(-parseInt(n(183))/6)+-parseInt(n(200))/7*(parseInt(n(175))/8)+parseInt(n(186))/9*(parseInt(n(174))/10)+-parseInt(n(172))/11;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(An,388483);const _r={common:{statusIdle:U(205),statusWorking:"Working",statusBlocked:U(197),statusDone:U(199),create:U(187),cancel:U(193),delete:U(177),rename:U(178),language:U(184)},terminal:{backToSessions:"Wróć do sesji",switchGroup:"Zmień grupę",newTerminal:U(165),send:U(211),typeCommand:U(161),deleteConfirm:U(179)},sessions:{newTerminal:U(182),addGroup:U(202),newGroup:U(189),groupName:"Nazwa grupy",renameGroup:U(160),deleteGroup:U(217),ungrouped:U(159),deleteSessionConfirm:U(157),deleteGroupConfirm:U(180)},menu:{connection:U(207),connectionDesc:U(169),terminals:"Terminale",terminalsDesc:"Sesje terminala na żywo na tym hoście",logs:U(170),logsDesc:"Diagnostyka aktywności serwera"},recent:{title:U(214),replied:"Agent odpowiedział",needsInput:U(204),dismiss:U(176),empty:U(206)},header:{settings:U(198),language:U(184),documentation:U(215),reset:U(158),resetShort:U(194),shutdown:U(168),shutdownShort:U(176),lightMode:"Przełącz na tryb jasny",darkMode:U(210)},remote:{remoteDesktop:U(201),controlScreen:U(181),screenRecording:U(203),captureScreen:U(195),accessibility:U(162),controlMouseKeyboard:"Kontroluj mysz i klawiaturę",launchOnStartup:U(196),launchDesc:"Uruchom w tle po zalogowaniu",disabledStart:U(171),preventSleep:U(216),blockSleep:U(190),remoteUnlock:U(163),remoteUnlockDesc:U(208),remoteUnlockReady:U(213),grant:"Zezwól",granted:U(209)},clients:{autoApprove:U(164),anyDevice:"Każde nowe urządzenie się łączy bez zatwierdzenia",requireManual:"Wymaga ręcznego zatwierdzenia dla nowych urządzeń"},connection:{scanToSignIn:U(212),oneTimeKey:"Klucz Jednorazowy",oneTimeDesc:U(191),permanentKey:"Klucz Permanentny",permanentDesc:U(192)}};function lx(e,t){e=e-180;var n=En(),x=n[e];return x}var z=lx;(function(e,t){for(var n=lx,x=e();;)try{var r=parseInt(n(227))/1+-parseInt(n(199))/2+-parseInt(n(217))/3+parseInt(n(216))/4*(parseInt(n(189))/5)+-parseInt(n(212))/6+parseInt(n(233))/7+-parseInt(n(196))/8*(parseInt(n(192))/9);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(En,495880);const kr={common:{statusIdle:z(183),statusWorking:z(225),statusBlocked:z(209),statusDone:z(194),create:"Criar",cancel:z(226),delete:z(211),rename:z(228),language:z(224)},terminal:{backToSessions:z(197),switchGroup:z(198),newTerminal:z(230),send:z(235),typeCommand:"Shift+Enter para nova linha • Ctrl+Número para trocar aba",deleteConfirm:z(205)},sessions:{newTerminal:z(219),addGroup:z(232),newGroup:z(200),groupName:"Nome do grupo",renameGroup:"Renomear grupo",deleteGroup:z(187),ungrouped:z(195),deleteSessionConfirm:z(190),deleteGroupConfirm:z(188)},menu:{connection:z(238),connectionDesc:"Emparelhe dispositivos e gerencie seu túnel seguro",terminals:z(203),terminalsDesc:"Sessões de terminal ao vivo em execução neste host",logs:z(186),logsDesc:"Diagnóstico de atividade do servidor"},recent:{title:"Recente",replied:"O agente respondeu",needsInput:z(220),dismiss:z(201),empty:z(207)},header:{settings:z(214),language:z(224),documentation:z(236),reset:z(208),resetShort:"Reconfigurar",shutdown:z(223),shutdownShort:z(239),lightMode:z(182),darkMode:"Alternar para modo escuro"},remote:{remoteDesktop:z(191),controlScreen:z(215),screenRecording:z(221),captureScreen:z(193),accessibility:z(237),controlMouseKeyboard:"Controlar mouse e teclado",launchOnStartup:z(206),launchDesc:z(181),disabledStart:z(231),preventSleep:"Manter computador acordado",blockSleep:z(185),remoteUnlock:z(210),remoteUnlockDesc:z(204),remoteUnlockReady:z(184),grant:"Permitir",granted:"Ativo"},clients:{autoApprove:z(202),anyDevice:z(218),requireManual:z(222)},connection:{scanToSignIn:z(229),oneTimeKey:z(234),oneTimeDesc:z(180),permanentKey:"Chave Permanente",permanentDesc:z(213)}};function En(){var e=["Desligar 9Remote (parar servidor, fechar túnel, sair)","Idioma","Working","Cancelar","277077LeQSSx","Renomear","Escaneie o código QR ou abra o link para fazer login","Novo terminal","Desabilitado — inicialização manual","Adicionar Grupo","6526359lgMuBs","Chave Única","Enviar","Documentação","Acessibilidade","Conexão","Desligar","Uso único · expira","Executar em segundo plano ao fazer login","Alternar para modo claro","Idle","Ativo — desbloqueio remoto funcionando","Impedir que o sistema durma para manter a conexão ativa","Logs","Excluir grupo","Excluir o grupo {name}? Todos os terminais dentro serão fechados.","557335GSWyLN","Excluir a sessão {name}? Isso fechará o terminal.","Área de Trabalho Remota","36CMuBUr","Permitir visualização da tela","Done","Desagrupado","426056djuhVn","Voltar às sessões","Trocar de grupo","186916IRwBiY","Novo Grupo","Descartar","Aprovar automaticamente novos dispositivos","Terminais","Permitir desbloquear este PC pelo telefone ou navegador quando bloqueado","Excluir o terminal {name}?","Iniciar na inicialização","Nenhuma atividade recente","Reconfigurar túnel e reconectar clientes","Needs input","Desbloquear PC remotamente","Excluir","3285534cvwFAz","Reutilizável · sem expiração","Configurações","Controlar tela, mouse e teclado","28yUmgpp","1919184toAOLy","Qualquer novo dispositivo se conecta sem aprovação","Novo Terminal","Precisa de sua entrada","Gravação de tela","Requer aprovação manual para novos dispositivos"];return En=function(){return e},En()}var Z=cx;function cx(e,t){e=e-135;var n=Mn(),x=n[e];return x}(function(e,t){for(var n=cx,x=e();;)try{var r=-parseInt(n(182))/1*(-parseInt(n(148))/2)+parseInt(n(149))/3+-parseInt(n(165))/4*(parseInt(n(178))/5)+-parseInt(n(150))/6*(parseInt(n(155))/7)+parseInt(n(163))/8+parseInt(n(172))/9+-parseInt(n(137))/10*(parseInt(n(154))/11);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Mn,728124);const wr={common:{statusIdle:Z(168),statusWorking:Z(157),statusBlocked:"Needs input",statusDone:"Done",create:Z(152),cancel:Z(160),delete:"Удалить",rename:Z(181),language:Z(179)},terminal:{backToSessions:Z(190),switchGroup:Z(159),newTerminal:"Новый терминал",send:Z(164),typeCommand:Z(167),deleteConfirm:"Удалить терминал {name}?"},sessions:{newTerminal:Z(153),addGroup:Z(144),newGroup:Z(146),groupName:"Имя группы",renameGroup:Z(183),deleteGroup:"Удалить группу",ungrouped:Z(145),deleteSessionConfirm:Z(161),deleteGroupConfirm:Z(147)},menu:{connection:"Подключение",connectionDesc:"Свяжите устройства и управляйте защищённым туннелем",terminals:Z(140),terminalsDesc:Z(138),logs:Z(187),logsDesc:Z(177)},recent:{title:Z(189),replied:Z(176),needsInput:Z(136),dismiss:Z(184),empty:Z(188)},header:{settings:Z(180),language:Z(179),documentation:Z(166),reset:Z(170),resetShort:Z(175),shutdown:Z(142),shutdownShort:"Выключить",lightMode:Z(139),darkMode:Z(174)},remote:{remoteDesktop:"Удалённый Рабочий Стол",controlScreen:Z(156),screenRecording:Z(173),captureScreen:"Разрешить просмотр экрана",accessibility:Z(169),controlMouseKeyboard:Z(135),launchOnStartup:Z(151),launchDesc:Z(171),disabledStart:"Отключено — ручной запуск",preventSleep:"Не давать компьютеру спать",blockSleep:Z(162),remoteUnlock:"Удалённо разблокировать ПК",remoteUnlockDesc:Z(158),remoteUnlockReady:"Активно — удалённая разблокировка работает",grant:Z(185),granted:"Активно"},clients:{autoApprove:"Автоматически одобрять новые устройства",anyDevice:Z(191),requireManual:"Требует ручного одобрения для новых устройств"},connection:{scanToSignIn:Z(186),oneTimeKey:Z(143),oneTimeDesc:"Однократное использование · срок действия",permanentKey:"Постоянный Ключ",permanentDesc:Z(141)}};function Mn(){var e=["Агент ответил","Диагностика активности сервера","40bBtWut","Язык","Параметры","Переименовать","4MKYKKs","Переименовать группу","Закрыть","Разрешить","Отсканируйте код QR или откройте ссылку для входа","Логи","Нет недавней активности","Недавнее","Вернуться к сеансам","Новые устройства подключаются без одобрения","Управление мышью и клавиатурой","Требует вашего ввода","130NSawOV","Живые сеансы терминала на этом хосте","Переключиться на светлый режим","Терминалы","Многоразовое использование · без срока действия","Выключить 9Remote (остановить сервер, закрыть туннель, выйти)","Одноразовый Ключ","Добавить Группу","Не сгруппировано","Новая Группа","Удалить группу {name}? Все терминалы внутри будут закрыты.","639590ZSjcNv","3523884heHyra","6bLevNY","Запуск при старте","Создать","Новый Терминал","1120097fHCxlV","3284239LsFcjT","Управление экраном, мышью и клавиатурой","Working","Разрешить разблокировку этого ПК с телефона или браузера при блокировке","Переключить группу","Отмена","Удалить сеанс {name}? Это закроет терминал.","Предотвратить спящий режим системы для сохранения подключения","8053208aLfSea","Отправить","569120dUGzcf","Документация","Shift+Enter для новой строки • Ctrl+Цифра для переключения вкладки","Idle","Специальные возможности","Перезагрузить туннель и переподключить клиентов","Работать в фоне при входе","1789497qvKXbL","Запись экрана","Переключиться на тёмный режим","Перезагрузить"];return Mn=function(){return e},Mn()}var L=ux;(function(e,t){for(var n=ux,x=e();;)try{var r=parseInt(n(269))/1*(parseInt(n(239))/2)+-parseInt(n(293))/3+-parseInt(n(261))/4*(-parseInt(n(280))/5)+parseInt(n(266))/6+-parseInt(n(237))/7*(parseInt(n(242))/8)+-parseInt(n(241))/9*(-parseInt(n(278))/10)+-parseInt(n(295))/11;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Pn,400629);function ux(e,t){e=e-234;var n=Pn(),x=n[e];return x}const Sr={common:{statusIdle:"Idle",statusWorking:L(291),statusBlocked:L(246),statusDone:L(262),create:"Skapa",cancel:"Avbryt",delete:L(248),rename:L(260),language:L(253)},terminal:{backToSessions:L(289),switchGroup:L(282),newTerminal:L(234),send:L(294),typeCommand:L(284),deleteConfirm:L(256)},sessions:{newTerminal:L(281),addGroup:L(254),newGroup:L(283),groupName:"Gruppnamn",renameGroup:L(240),deleteGroup:L(245),ungrouped:"Inte grupperad",deleteSessionConfirm:L(243),deleteGroupConfirm:L(270)},menu:{connection:L(275),connectionDesc:L(235),terminals:L(279),terminalsDesc:"Live terminalsessioner som körs på denna värd",logs:L(251),logsDesc:L(287)},recent:{title:"Senaste",replied:L(272),needsInput:L(247),dismiss:"Stäng",empty:"Ingen nylig aktivitet"},header:{settings:L(274),language:L(253),documentation:"Dokumentation",reset:L(273),resetShort:L(265),shutdown:L(259),shutdownShort:L(292),lightMode:L(271),darkMode:L(250)},remote:{remoteDesktop:"Fjärrskrivbord",controlScreen:L(267),screenRecording:L(264),captureScreen:L(285),accessibility:L(290),controlMouseKeyboard:"Styra mus och tangentbord",launchOnStartup:L(249),launchDesc:L(286),disabledStart:L(258),preventSleep:L(244),blockSleep:L(255),remoteUnlock:L(236),remoteUnlockDesc:"Tillåt att denna PC låses upp från telefon eller webbläsare när den är låst",remoteUnlockReady:L(288),grant:L(257),granted:L(277)},clients:{autoApprove:"Godkänn nya enheter automatiskt",anyDevice:"Alla nya enheter ansluts utan godkännande",requireManual:L(276)},connection:{scanToSignIn:L(238),oneTimeKey:L(252),oneTimeDesc:"Engångsbr uk · upphör",permanentKey:L(263),permanentDesc:L(268)}};function Pn(){var e=["Förhindra systemvila för att hålla anslutningen aktiv","Radera terminal {name}?","Tillåt","Inaktiverad — manuell start","Stäng av 9Remote (stoppa server, stäng tunnel, avsluta)","Döp om","2000XlFRra","Done","Permanent Nyckel","Skärmregistrering","Återställ","2199318gJncCN","Styra skärm, mus och tangentbord","Återanvändbar · ingen utgångsdatum","687081oPERWt","Radera grupp {name}? Alla terminaler inom kommer att stängas.","Byt till ljust läge","Agenten svarade","Återställ tunnel och anslut om klienter","Inställningar","Anslutning","Kräver manuellt godkännande för nya enheter","Aktiv","10jmdbSN","Terminaler","5810gKvUvL","Ny Terminal","Byt grupp","Ny Grupp","Shift+Enter för ny rad • Ctrl+Siffra för att byta flik","Tillåt skärmvy","Kör i bakgrunden när du loggar in","Serveraktivitetsdiagnostik","Aktiv — fjärrupplåsning fungerar","Tillbaka till sessioner","Tillgänglighet","Working","Stäng av","1581327SWrTbl","Skicka","5400450vobWAA","Ny terminal","Para ihop enheter och hantera din säkra tunnel","Lås upp PC på distans","5999xClulr","Skanna QR-kod eller öppna länk för att logga in","2TZElVc","Döp om grupp","285543FFkmNu","2312cfVSLS","Radera session {name}? Det här kommer att stänga terminalen.","Håll datorn vaken","Radera grupp","Needs input","Behöver din inmatning","Radera","Starta vid systemstart","Byt till mörkt läge","Loggar","Engångsnyckel","Språk","Lägg till Grupp"];return Pn=function(){return e},Pn()}function dx(e,t){e=e-239;var n=Gn(),x=n[e];return x}var q=dx;function Gn(){var e=["ปิดใช้งาน — การเปิดตัวแบบแมนนวล","ป้องกันการนอนของระบบเพื่อให้การเชื่อมต่อใช้งานอยู่","ไม่จัดกลุ่ม","ใช้งาน — ปลดล็อกระยะไกลทำงาน","ปลดล็อกพีซีระยะไกล","บันทึก","124PjcRnc","ปิด","3898017DHUNGw","ภาษา","26AdZVWJ","อนุญาตการดูหน้าจอ","การตั้งค่า","Done","เอกสาร","สร้าง","ต้องการอินพุตของคุณ","เทอร์มินัลใหม่","14231900fkHOGG","เปิดตัวเมื่อเริ่มต้น","อนุญาตให้ปลดล็อกพีซีเครื่องนี้จากโทรศัพท์หรือเบราว์เซอร์เมื่อล็อก","อุปกรณ์ใหม่ใดๆ เชื่อมต่อโดยไม่ต้องอนุมัติ","เพิ่มกลุ่ม","170260aXWrQX","ลบกลุ่ม","ชื่อกลุ่ม","Working","รีเซ็ตอุโมงค์และเชื่อมต่อไคลเอนต์ใหม่","กลุ่มใหม่","รีเซ็ต","Idle","การเชื่อมต่อ","สลับกลุ่ม","ล่าสุด","8680236gunRrx","ความสามารถในการเข้าถึง","เปลี่ยนชื่อ","ยกเลิก","ลบเซสชัน {name}? สิ่งนี้จะปิดเทอร์มินัล","9jrjzSp","จับคู่อุปกรณ์และจัดการอุโมงค์ที่ปลอดภัยของคุณ","เทอร์มินัล","รักษาคอมพิวเตอร์ให้ตื่นตัว","สลับไปยังโหมดสว่าง","58925fNbjeh","เอเจนต์ตอบแล้ว","สลับไปยังโหมดมืด","เดสก์ทอประยะไกล","กลับไปยังเซสชัน","กุญแจใช้ครั้งเดียว","การวินิจฉัยกิจกรรมของเซิร์ฟเวอร์","เซสชันเทอร์มินัลแบบสดบนโฮสต์นี้","ควบคุมหน้าจอ เมาส์ และแป้นพิมพ์","ควบคุมเมาส์และแป้นพิมพ์","11104048xAQVPa","สแกน QR Code หรือเปิดลิงก์เพื่อเข้าสู่ระบบ","นำกลับมาใช้ได้ · ไม่มีวันหมดอายุ","6276781ENvVhS","ใช้งาน"];return Gn=function(){return e},Gn()}(function(e,t){for(var n=dx,x=e();;)try{var r=parseInt(n(296))/1*(parseInt(n(262))/2)+parseInt(n(260))/3+parseInt(n(258))/4*(parseInt(n(275))/5)+-parseInt(n(286))/6+-parseInt(n(250))/7+-parseInt(n(247))/8+-parseInt(n(291))/9*(-parseInt(n(270))/10);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Gn,812771);const Ir={common:{statusIdle:q(282),statusWorking:q(278),statusBlocked:"Needs input",statusDone:q(265),create:q(267),cancel:q(289),delete:"ลบ",rename:q(288),language:q(261)},terminal:{backToSessions:q(241),switchGroup:q(284),newTerminal:q(269),send:"ส่ง",typeCommand:"Shift+Enter สำหรับบรรทัดใหม่ • Ctrl+หมายเลข เพื่อเปลี่ยนแท็บ",deleteConfirm:"ลบเทอร์มินัล {name}?"},sessions:{newTerminal:q(269),addGroup:q(274),newGroup:q(280),groupName:q(277),renameGroup:"เปลี่ยนชื่อกลุ่ม",deleteGroup:q(276),ungrouped:q(254),deleteSessionConfirm:q(290),deleteGroupConfirm:"ลบกลุ่ม {name}? เทอร์มินัลทั้งหมดข้างในจะถูกปิด"},menu:{connection:q(283),connectionDesc:q(292),terminals:q(293),terminalsDesc:q(244),logs:q(257),logsDesc:q(243)},recent:{title:q(285),replied:q(297),needsInput:q(268),dismiss:q(259),empty:"ไม่มีกิจกรรมล่าสุด"},header:{settings:q(264),language:"ภาษา",documentation:q(266),reset:q(279),resetShort:q(281),shutdown:"ปิด 9Remote (หยุดเซิร์ฟเวอร์ ปิดอุโมงค์ ออก)",shutdownShort:"ปิด",lightMode:q(295),darkMode:q(239)},remote:{remoteDesktop:q(240),controlScreen:q(245),screenRecording:"การบันทึกหน้าจอ",captureScreen:q(263),accessibility:q(287),controlMouseKeyboard:q(246),launchOnStartup:q(271),launchDesc:"รันในพื้นหลังเมื่อคุณเข้าสู่ระบบ",disabledStart:q(252),preventSleep:q(294),blockSleep:q(253),remoteUnlock:q(256),remoteUnlockDesc:q(272),remoteUnlockReady:q(255),grant:"อนุญาต",granted:q(251)},clients:{autoApprove:"อนุมัติอุปกรณ์ใหม่โดยอัตโนมัติ",anyDevice:q(273),requireManual:"ต้องอนุมัติแบบแมนนวลสำหรับอุปกรณ์ใหม่"},connection:{scanToSignIn:q(248),oneTimeKey:q(242),oneTimeDesc:"ใช้ครั้งเดียว · หมดอายุ",permanentKey:"กุญแจถาวร",permanentDesc:q(249)}};var X=px;function Bn(){var e=["183765WrjikY","Oturum açmak için QR kodunu tarayın veya bağlantıyı açın","Ajan yanıt verdi","Yeni Grup","Oturumlara Geri Dön","Belgeler","Etkin","Oturum açtığınızda arka planda çalıştır","Grup Ekle","Sizin girişinize ihtiyaç duyuyor","Başlangıçta Başlat","Bağlantı","Bağlantı etkin kalması için sistem uyusunun engellenmesi","3543104aDUEqk","Erişilebilirlik","Gönder","4alxPyv","Grup Adı","Done","Tüneli Sıfırla ve İstemcileri Yeniden Bağla","Sil","Farely ve Klavyeyi Kontrol Et","Terminal {name} silinsin mi?","Oluştur","Günlükler","Tek kullanımlık · sona erer","Koyu Moda Geç","2800576fGBJMe","Dil","İptal","10dwQmbO","Son","Etkin — uzaktan kilitleme açma çalışıyor","Yeniden kullanılabilir · son kullanma tarihi yok","Grubu Sil","1735698YrlASr","382760IFdwZG","Yeni cihazlar için manuel onay gerekir","7NUBpDV","Oturum {name} silinsin mi? Bu terminali kapatacak.","Grup {name} silinsin mi? İçindeki tüm terminallar kapatılacak.","Idle","Bu sunucuda çalışan canlı terminal oturumları","Yeni Terminal","Working","Sunucu aktivite tanılama","Kapat","Tek Seferlik Anahtar","Yeni satır için Shift+Enter • Sekmeyi değiştirmek için Ctrl+Num","Son aktivite yok","8187273HSveGx","2465980uEoZvn","Needs input","Bilgisayarı Uyanık Tut","Kilitliyken bu PC'nin telefondan veya tarayıcıdan kilidinin açılmasına izin ver","Terminallar"];return Bn=function(){return e},Bn()}(function(e,t){for(var n=px,x=e();;)try{var r=parseInt(n(331))/1*(parseInt(n(367))/2)+parseInt(n(351))/3+-parseInt(n(378))/4+-parseInt(n(346))/5+parseInt(n(330))/6*(parseInt(n(333))/7)+-parseInt(n(364))/8+-parseInt(n(345))/9*(-parseInt(n(325))/10);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Bn,389527);function px(e,t){e=e-323;var n=Bn(),x=n[e];return x}const Cr={common:{statusIdle:X(336),statusWorking:X(339),statusBlocked:X(347),statusDone:X(369),create:X(374),cancel:X(324),delete:X(371),rename:"Yeniden Adlandır",language:"Dil"},terminal:{backToSessions:X(355),switchGroup:"Grubu Değiştir",newTerminal:X(338),send:X(366),typeCommand:X(343),deleteConfirm:X(373)},sessions:{newTerminal:"Yeni Terminal",addGroup:X(359),newGroup:X(354),groupName:X(368),renameGroup:"Grubu Yeniden Adlandır",deleteGroup:X(329),ungrouped:"Gruplandırılmamış",deleteSessionConfirm:X(334),deleteGroupConfirm:X(335)},menu:{connection:X(362),connectionDesc:"Cihazları eşleştirin ve güvenli tünelinizi yönetin",terminals:X(350),terminalsDesc:X(337),logs:X(375),logsDesc:X(340)},recent:{title:X(326),replied:X(353),needsInput:X(360),dismiss:X(341),empty:X(344)},header:{settings:"Ayarlar",language:X(323),documentation:X(356),reset:X(370),resetShort:"Sıfırla",shutdown:"9Remote'u Kapat (sunucuyu durdur, tüneli kapat, çık)",shutdownShort:X(341),lightMode:"Açık Moda Geç",darkMode:X(377)},remote:{remoteDesktop:"Uzak Masaüstü",controlScreen:"Ekranı, Farely ve Klavyeyi Kontrol Et",screenRecording:"Ekran Kaydı",captureScreen:"Ekran Görünümüne İzin Ver",accessibility:X(365),controlMouseKeyboard:X(372),launchOnStartup:X(361),launchDesc:X(358),disabledStart:"Devre Dışı — Manuel Başlatma",preventSleep:X(348),blockSleep:X(363),remoteUnlock:"PC'yi uzaktan kilidini aç",remoteUnlockDesc:X(349),remoteUnlockReady:X(327),grant:"İzin ver",granted:X(357)},clients:{autoApprove:"Yeni cihazları otomatik olarak onayla",anyDevice:"Yeni herhangi bir cihaz onay olmaksızın bağlanır",requireManual:X(332)},connection:{scanToSignIn:X(352),oneTimeKey:X(342),oneTimeDesc:X(376),permanentKey:"Kalıcı Anahtar",permanentDesc:X(328)}};var P=mx;function Un(){var e=["Вимкнути 9Remote (зупинити сервер, закрити туннель, вийти)","Утримувати комп'ютер в активному стані","74oecIVI","37263hVVKmR","Скинути туннель та повторно підключити клієнтів","Вимкнути","102038iImzQF","Немає нещодавніх дій","Дозволити розблокування цього ПК з телефону або браузера під час блокування","Скасувати","Needs input","Запускати у фоні при вході","Термінали","Видалити групу","Автоматично схвалювати нові пристрої","Видалити термінал {name}?","Done","Нова Група","Скинути","5077555EriAWZ","Вимкнено — ручний запуск","4415576TNqmfW","Потребує ручного схвалення для нових пристроїв","Перейти у світлий режим","Віддалений Робочий Стіл","Перейти в темний режим","Постійний Ключ","Idle","Розблокувати ПК віддалено","Дозволити","Підключення","Запис екрану","516QbZyOV","Назва групи","Створити","Надіслати","Shift+Enter для нового рядка • Ctrl+Цифра для перемикання вкладки","467696GaMpGO","18qSHSHL","Потребує вашого введення","Документація","Working","Запобігти переходу системи в режим сну для утримання активного підключення","Новий термінал","Сканувати QR-код або відкрити посилання для входу","Спеціальні можливості","Перейменувати групу","Однократне використання · закінчується","Не згруповано","Керування мишею та клавіатурою","Журнали","Сеанси живих терміналів на цьому хості","4262916zIYlgn","Мова","Параметри","Активно","Додати Групу","80QAufZj","Перемикнути групу","Парування пристроїв та керування захищеним туннелем","85099OfeepO","Запуск під час завантаження","Керування екраном, мишею та клавіатурою","Будь-який новий пристрій підключається без схвалення","Перейменувати"];return Un=function(){return e},Un()}(function(e,t){for(var n=mx,x=e();;)try{var r=-parseInt(n(143))/1+parseInt(n(139))/2*(parseInt(n(140))/3)+-parseInt(n(124))/4+-parseInt(n(156))/5+-parseInt(n(169))/6*(parseInt(n(132))/7)+parseInt(n(174))/8*(parseInt(n(175))/9)+-parseInt(n(129))/10*(-parseInt(n(158))/11);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Un,559049);function mx(e,t){e=e-119;var n=Un(),x=n[e];return x}const Tr={common:{statusIdle:P(164),statusWorking:P(178),statusBlocked:P(147),statusDone:P(153),create:P(171),cancel:P(146),delete:"Видалити",rename:P(136),language:P(125)},terminal:{backToSessions:"Повернутися до сеансів",switchGroup:P(130),newTerminal:P(180),send:P(172),typeCommand:P(173),deleteConfirm:P(152)},sessions:{newTerminal:"Новий Термінал",addGroup:P(128),newGroup:P(154),groupName:P(170),renameGroup:P(183),deleteGroup:P(150),ungrouped:P(120),deleteSessionConfirm:"Видалити сеанс {name}? Це закриє термінал.",deleteGroupConfirm:"Видалити групу {name}? Усі термінали всередині будуть закриті."},menu:{connection:P(167),connectionDesc:P(131),terminals:P(149),terminalsDesc:P(123),logs:P(122),logsDesc:"Діагностика активності сервера"},recent:{title:"Недавні",replied:"Агент відповів",needsInput:P(176),dismiss:"Закрити",empty:P(144)},header:{settings:P(126),language:"Мова",documentation:P(177),reset:P(141),resetShort:P(155),shutdown:P(137),shutdownShort:P(142),lightMode:P(160),darkMode:P(162)},remote:{remoteDesktop:P(161),controlScreen:P(134),screenRecording:P(168),captureScreen:"Дозволити прегляд екрану",accessibility:P(182),controlMouseKeyboard:P(121),launchOnStartup:P(133),launchDesc:P(148),disabledStart:P(157),preventSleep:P(138),blockSleep:P(179),remoteUnlock:P(165),remoteUnlockDesc:P(145),remoteUnlockReady:"Активно — віддалене розблокування працює",grant:P(166),granted:P(127)},clients:{autoApprove:P(151),anyDevice:P(135),requireManual:P(159)},connection:{scanToSignIn:P(181),oneTimeKey:"Одноразовий Ключ",oneTimeDesc:P(119),permanentKey:P(163),permanentDesc:"Багаторазовий · без закінчення"}};function fx(e,t){e=e-238;var n=zn(),x=n[e];return x}var O=fx;function zn(){var e=["Dùng một lần · hết hạn","Khóa vĩnh viễn","5sVNzQi","Chuyển sang giao diện sáng","Khóa một lần","Điều khiển màn hình, chuột & bàn phím","Chặn hệ thống ngủ để mạng luôn hoạt động","Giữ máy thức","2ydHNtI","Hoạt động và chẩn đoán máy chủ","Tài liệu","Xóa nhóm","Khởi động lại tunnel và kết nối lại thiết bị","Xóa","Yêu cầu duyệt thủ công cho thiết bị mới","Ghi màn hình","Chưa có hoạt động nào","Terminal mới","Gần đây","5462382uOxTTR","56GHkLvK","430449OlSGNO","Ghép nối thiết bị và quản lý tunnel bảo mật","1538784IpniMG","Cho phép xem màn hình","Quét mã QR hoặc mở liên kết để đăng nhập","Working","Đang bật — mở khóa từ xa hoạt động","Chuyển nhóm","Xóa phiên {name}? Việc này sẽ tắt terminal.","Chuyển sang giao diện tối","Agent đã trả lời","Needs input","Tên nhóm","Chạy nền khi bạn đăng nhập","Quay lại danh sách phiên","Điều khiển chuột & bàn phím","Tạo","Mở khóa máy từ xa","6042450BQVUOs","5530301oHmEct","Đổi tên nhóm","395588ohhenO","Các phiên terminal đang chạy trên máy này","Đang bật","Đổi tên","Thoát","Cần bạn phản hồi","Cho phép mở khóa máy này từ điện thoại hoặc trình duyệt khi bị khóa","Done","Terminal","Trợ năng","Nhóm mới","Gửi","Tái sử dụng · không hết hạn","Idle","311978XoWAgq","Khởi động lại","Shift+Enter để xuống dòng • Ctrl+Số để chuyển tab"];return zn=function(){return e},zn()}(function(e,t){for(var n=fx,x=e();;)try{var r=parseInt(n(295))/1+parseInt(n(247))/2*(parseInt(n(260))/3)+parseInt(n(281))/4*(parseInt(n(241))/5)+-parseInt(n(258))/6+-parseInt(n(279))/7+-parseInt(n(259))/8*(-parseInt(n(262))/9)+parseInt(n(278))/10;if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(zn,654995);const Dr={common:{statusIdle:O(294),statusWorking:O(265),statusBlocked:O(271),statusDone:O(288),create:O(276),cancel:"Hủy",delete:O(252),rename:O(284),language:"Ngôn ngữ"},terminal:{backToSessions:O(274),switchGroup:O(267),newTerminal:O(256),send:O(292),typeCommand:O(238),deleteConfirm:"Xóa terminal {name}?"},sessions:{newTerminal:O(256),addGroup:"Thêm nhóm",newGroup:O(291),groupName:O(272),renameGroup:O(280),deleteGroup:O(250),ungrouped:"Chưa phân nhóm",deleteSessionConfirm:O(268),deleteGroupConfirm:"Xóa nhóm {name}? Tất cả terminal bên trong sẽ bị đóng."},menu:{connection:"Kết nối",connectionDesc:O(261),terminals:O(289),terminalsDesc:O(282),logs:"Nhật ký",logsDesc:O(248)},recent:{title:O(257),replied:O(270),needsInput:O(286),dismiss:O(252),empty:O(255)},header:{settings:"Cài đặt",language:"Ngôn ngữ",documentation:O(249),reset:O(251),resetShort:O(296),shutdown:"Thoát 9Remote (dừng máy chủ, đóng tunnel và thoát)",shutdownShort:O(285),lightMode:O(242),darkMode:O(269)},remote:{remoteDesktop:"Điều khiển từ xa",controlScreen:O(244),screenRecording:O(254),captureScreen:O(263),accessibility:O(290),controlMouseKeyboard:O(275),launchOnStartup:"Khởi chạy cùng hệ thống",launchDesc:O(273),disabledStart:"Đã tắt — khởi chạy thủ công",preventSleep:O(246),blockSleep:O(245),remoteUnlock:O(277),remoteUnlockDesc:O(287),remoteUnlockReady:O(266),grant:"Cho phép",granted:O(283)},clients:{autoApprove:"Tự động duyệt thiết bị mới",anyDevice:"Mọi thiết bị mới kết nối không cần duyệt",requireManual:O(253)},connection:{scanToSignIn:O(264),oneTimeKey:O(243),oneTimeDesc:O(239),permanentKey:O(240),permanentDesc:O(293)}};var re=hx;function Ln(){var e=["3332460TYXNMt","36NafWwX","24nyCHVy","Shift+Enter 新建行 • Ctrl+数字 切换标签页","一次性使用 · 过期","Needs input","控制鼠标和键盘","13xdXLou","关闭 9Remote(停止服务器、关闭隧道、退出)","206994Lrcvku","Working","服务器活动诊断","2339390lvkMIn","新终端","阻止系统睡眠以保持连接活跃","组名称","删除会话 {name}? 这将关闭终端。","远程桌面","代理已回复","43AOiYTg","在此主机上运行的实时终端会话","控制屏幕、鼠标和键盘","允许屏幕视图","7jDWshy","13337797XayOME","删除终端 {name}?","已禁用 — 手动启动","145YInAgh","30262cOEWaP","4643672NmmbBy","需要您的输入","重命名","新设备需要手动批准","远程解锁电脑","在您登录时在后台运行","切换到深色模式","可重复使用 · 不过期","永久密钥","切换组","任何新设备无需批准即可连接","屏幕录制","自动批准新设备","没有最近的活动","363954ZrrFjh","重置隧道并重新连接客户端","保持计算机清醒","重命名组"];return Ln=function(){return e},Ln()}(function(e,t){for(var n=hx,x=e();;)try{var r=-parseInt(n(195))/1*(parseInt(n(204))/2)+-parseInt(n(172))/3*(parseInt(n(178))/4)+parseInt(n(203))/5*(-parseInt(n(185))/6)+-parseInt(n(199))/7*(-parseInt(n(205))/8)+-parseInt(n(177))/9*(-parseInt(n(188))/10)+parseInt(n(200))/11+-parseInt(n(176))/12*(-parseInt(n(183))/13);if(r===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Ln,627435);function hx(e,t){e=e-165;var n=Ln(),x=n[e];return x}const Nr={common:{statusIdle:"Idle",statusWorking:re(186),statusBlocked:re(181),statusDone:"Done",create:"创建",cancel:"取消",delete:"删除",rename:re(207),language:"语言"},terminal:{backToSessions:"返回会话",switchGroup:re(167),newTerminal:re(189),send:"发送",typeCommand:re(179),deleteConfirm:re(201)},sessions:{newTerminal:re(189),addGroup:"添加组",newGroup:"新组",groupName:re(191),renameGroup:re(175),deleteGroup:"删除组",ungrouped:"未分组",deleteSessionConfirm:re(192),deleteGroupConfirm:"删除组 {name}? 其中的所有终端都将关闭。"},menu:{connection:"连接",connectionDesc:"配对设备并管理您的安全隧道",terminals:"终端",terminalsDesc:re(196),logs:"日志",logsDesc:re(187)},recent:{title:"最近",replied:re(194),needsInput:re(206),dismiss:"关闭",empty:re(171)},header:{settings:"设置",language:"语言",documentation:"文档",reset:re(173),resetShort:"重置",shutdown:re(184),shutdownShort:"关闭",lightMode:"切换到浅色模式",darkMode:re(211)},remote:{remoteDesktop:re(193),controlScreen:re(197),screenRecording:re(169),captureScreen:re(198),accessibility:"无障碍",controlMouseKeyboard:re(182),launchOnStartup:"开机启动",launchDesc:re(210),disabledStart:re(202),preventSleep:re(174),blockSleep:re(190),remoteUnlock:re(209),remoteUnlockDesc:"允许在锁定时从手机或浏览器解锁此电脑",remoteUnlockReady:"已启用 — 远程解锁可用",grant:"允许",granted:"已启用"},clients:{autoApprove:re(170),anyDevice:re(168),requireManual:re(208)},connection:{scanToSignIn:"扫描二维码或打开链接以登录",oneTimeKey:"一次性密钥",oneTimeDesc:re(180),permanentKey:re(166),permanentDesc:re(165)}};(function(e,t){const n=Rr,x=e();for(;;)try{if(-parseInt(n(466))/1*(parseInt(n(458))/2)+-parseInt(n(457))/3+parseInt(n(459))/4+-parseInt(n(461))/5+-parseInt(n(463))/6*(parseInt(n(456))/7)+-parseInt(n(462))/8*(parseInt(n(460))/9)+parseInt(n(464))/10*(parseInt(n(465))/11)===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(Kn,637586);function Kn(){const e=["5523245OYciCJ","368AOSxmN","330xcPsJf","16810aOSiVl","27137ygEnWK","10291eqlfUq","44093dcynLM","2918478tfJZUX","144WfwpYH","1089164dfslzo","120690NpjRPO"];return Kn=function(){return e},Kn()}function Rr(e,t){return e=e-456,Kn()[e]}const qe={en:ir,ar:sr,de:lr,es:cr,fa:ur,fr:dr,he:pr,hi:mr,id:fr,it:hr,ja:gr,ko:br,ms:vr,nl:yr,pl:_r,pt:kr,ru:wr,sv:Sr,th:Ir,tr:Cr,uk:Tr,vi:Dr,zh:Nr},xe=gx;(function(e,t){const n=gx,x=e();for(;;)try{if(-parseInt(n(360))/1*(parseInt(n(327))/2)+-parseInt(n(357))/3*(-parseInt(n(317))/4)+parseInt(n(338))/5*(-parseInt(n(342))/6)+parseInt(n(332))/7+parseInt(n(326))/8+parseInt(n(351))/9*(parseInt(n(341))/10)+-parseInt(n(359))/11*(parseInt(n(353))/12)===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(jn,842586);const wt=[{code:"en",label:"English",flag:xe(315),country:"us"},{code:"vi",label:xe(349),flag:xe(328),country:"vn"},{code:"zh",label:"中文",flag:xe(333),country:"cn"},{code:"es",label:"Español",flag:xe(348),country:"es"},{code:"hi",label:xe(358),flag:xe(354),country:"in"},{code:"ar",label:xe(343),flag:xe(362),country:"sa"},{code:"pt",label:xe(352),flag:"🇧🇷",country:"br"},{code:"ru",label:"Русский",flag:xe(346),country:"ru"},{code:"ja",label:xe(329),flag:xe(356),country:"jp"},{code:"de",label:xe(320),flag:xe(335),country:"de"},{code:"fr",label:xe(321),flag:xe(324),country:"fr"},{code:"ko",label:xe(323),flag:xe(350),country:"kr"},{code:"it",label:xe(318),flag:xe(330),country:"it"},{code:"tr",label:"Türkçe",flag:xe(345),country:"tr"},{code:"id",label:"Bahasa Indonesia",flag:"🇮🇩",country:"id"},{code:"th",label:xe(316),flag:xe(355),country:"th"},{code:"pl",label:"Polski",flag:xe(361),country:"pl"},{code:"nl",label:xe(344),flag:xe(319),country:"nl"},{code:"sv",label:xe(325),flag:xe(336),country:"se"},{code:"uk",label:xe(334),flag:xe(337),country:"ua"},{code:"fa",label:xe(340),flag:xe(331),country:"ir"},{code:"he",label:xe(322),flag:xe(347),country:"il"},{code:"ms",label:"Bahasa Melayu",flag:"🇲🇾",country:"my"}];function jn(){const e=["Svenska","5721712bgGijB","4416uINjQB","🇻🇳","日本語","🇮🇹","🇮🇷","7537733zZYIBW","🇨🇳","Українська","🇩🇪","🇸🇪","🇺🇦","10sFkVAC","agentLocale","فارسی","70YGnRUk","2654466ZzjWvD","العربية","Nederlands","🇹🇷","🇷🇺","🇮🇱","🇪🇸","Tiếng Việt","🇰🇷","19143sbhUMY","Português","24Qohiaa","🇮🇳","🇹🇭","🇯🇵","1806321ivNZxO","हिन्दी","5421064QEjeHC","135UsDIKR","🇵🇱","🇸🇦","🇺🇸","ไทย","8KIajIP","Italiano","🇳🇱","Deutsch","Français","עברית","한국어","🇫🇷"];return jn=function(){return e},jn()}function gx(e,t){return e=e-315,jn()[e]}const St="en",bx=xe(339);function On(){const e=["setItem","1107560mhYFNO","82727DPhOif","868820xNKklW","language","4550FFUjtm","delete","getItem","8419542CTBzqs","7FozPzD","20151tUBXwP","3656463jEpeYv","3415416rqiYDM","28PaoFkM","replace","split"];return On=function(){return e},On()}(function(e,t){const n=We,x=e();for(;;)try{if(-parseInt(n(357))/1*(-parseInt(n(368))/2)+-parseInt(n(366))/3+-parseInt(n(358))/4+parseInt(n(356))/5+-parseInt(n(363))/6*(-parseInt(n(364))/7)+parseInt(n(367))/8+-parseInt(n(365))/9*(parseInt(n(360))/10)===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(On,755103);function We(e,t){return e=e-355,On()[e]}function w0(e,t){const n=We;if(e)return t[n(370)](".").reduce((x,r)=>x==null?x:x[r],e)}function Ar(e,t){const n=We;return typeof e!="string"||!t?e:e[n(369)](/\{(\w+)\}/g,(x,r)=>t[r]!=null?t[r]:"{"+r+"}")}function Er(){const e=We;try{const t=localStorage[e(362)](bx);if(t&&qe[t])return t;const n=(navigator[e(359)]||"").slice(0,2);if(qe[n])return n}catch{}return St}let It=Er();const Ct=new Set;function Mr(e){const t=We;if(!(e===It||!qe[e])){It=e;try{localStorage[t(355)](bx,e)}catch{}Ct.forEach(n=>n(e))}}function Pr(e,t,n){const x=qe[e]||qe[St],r=qe[St],a=w0(x,t)??w0(r,t)??t;return Ar(a,n)}function Ve(){const[e,t]=ie(It);return ge(()=>{const x=We,r=a=>t(a);return Ct.add(r),()=>Ct[x(361)](r)},[]),{t:(x,r)=>Pr(e,x,r),locale:e,setLocale:Mr}}const S0="9remote.cc";function Gr(e){if(e<=0)return"Expired";const t=Math.floor(e/1e3),n=Math.floor(t/60),x=t%60;return`${String(n).padStart(2,"0")}:${String(x).padStart(2,"0")}`}function an({icon:e,onClick:t,title:n,danger:x}){return s("button",{onClick:t,title:n,className:"glass-btn w-7 h-7 flex items-center justify-center flex-shrink-0",style:x?{color:"rgba(255,100,100,0.7)"}:{color:"var(--text-muted)"},children:s("span",{className:"material-symbols-outlined",style:{fontSize:15},children:e})})}function Br({qrUrl:e,oneTimeKey:t,oneTimeKeyExpiresAt:n,permanentKey:x,onGenerateOneTimeKey:r,onRegenerateKey:a,onStopTunnel:o}){const{t:i}=Ve(),l=He(null),[u,p]=ie(null),[f,c]=ie(null),[m,h]=ie(null);ge(()=>{!e||!l.current||or.toCanvas(l.current,e,{width:200,margin:1,color:{dark:"#0f1923",light:"#ffffff"}}).catch(()=>{})},[e]),ge(()=>{if(!n){p(null);return}const M=()=>p(n-Date.now());M();const b=setInterval(M,1e3);return()=>clearInterval(b)},[n]);const v=(M,b)=>{navigator.clipboard.writeText(M).catch(()=>{}),c(b),setTimeout(()=>c(null),2e3)};return s(Ue,{children:[m==="oneTime"&&s(Be,{message:"Generate a new one-time key? The current one will expire immediately.",confirmLabel:"Generate",onConfirm:()=>{h(null),r==null||r()},onCancel:()=>h(null)}),m==="regen"&&s(Be,{message:"Regenerate permanent key? All existing sessions will be disconnected.",confirmLabel:"Regenerate",confirmDanger:!0,onConfirm:()=>{h(null),a==null||a()},onCancel:()=>h(null)}),m==="stop"&&s(Be,{message:"Stop tunnel? Remote clients will be disconnected.",confirmLabel:"Stop",confirmDanger:!0,onConfirm:()=>{h(null),o==null||o()},onCancel:()=>h(null)}),s("div",{className:"card-elev p-5 flex flex-col items-center gap-4 h-full",children:[s("div",{className:"w-full flex items-center gap-2",children:[s("span",{className:"material-symbols-outlined",style:{fontSize:20,color:"var(--brand-500)"},children:"qr_code_2"}),s("span",{className:"text-sm font-semibold",style:{color:"var(--text-main)"},children:i("connection.pairDevice")})]}),s("div",{className:"w-52 h-52 rounded-[10px] overflow-hidden bg-white p-3.5 flex items-center justify-center flex-shrink-0",style:{boxShadow:"0 12px 30px -10px rgba(0,0,0,0.5)"},children:e?s("canvas",{ref:l}):s("span",{className:"material-symbols-outlined text-gray-300 text-7xl",children:"qr_code_2"})}),s("div",{className:"flex flex-col items-center gap-1",children:[s("span",{className:"text-[11.5px] leading-4",style:{color:"var(--text-muted)"},children:i("connection.scanToSignIn")}),s("a",{href:`https://${S0}/login`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1.5 hover:underline transition-opacity",children:[s("span",{className:"w-2 h-2 rounded-full bg-green-400 flex-shrink-0"}),s("span",{className:"text-sm font-bold",style:{color:"var(--brand-500)"},children:[S0,"/login"]}),s("span",{className:"material-symbols-outlined flex-shrink-0",style:{fontSize:14,color:"var(--brand-500)"},children:"open_in_new"})]})]}),s("div",{className:"w-full h-px",style:{background:"var(--border)"}}),s("div",{className:"w-full flex flex-col gap-1.5",children:[s("span",{className:"text-xs font-medium px-0.5",style:{color:"var(--text-muted)"},children:i("connection.oneTimeKey")}),s("div",{className:"w-full flex items-center gap-2 dark-card px-3 py-2.5",children:[s("span",{className:"material-symbols-outlined flex-shrink-0",style:{fontSize:16,color:"var(--text-muted)"},children:"timer"}),s("span",{className:"flex-1 font-mono font-bold tracking-[0.18em] text-base truncate",style:{color:t?"var(--brand-500)":"var(--border)"},children:t||"• • • • • •"}),u!==null&&s("span",{className:`text-xs font-mono flex-shrink-0 ${u<=0?"text-red-400":""}`,style:u>0?{color:"var(--text-muted)"}:{},children:Gr(u)}),t&&s(an,{icon:f==="oneTime"?"check":"content_copy",onClick:()=>v(t,"oneTime"),title:"Copy one-time key"}),s(an,{icon:"refresh",onClick:()=>h("oneTime"),title:"New one-time key"})]})]}),s("div",{className:"w-full flex flex-col gap-1.5",children:[s("span",{className:"text-xs font-medium px-0.5",style:{color:"var(--text-muted)"},children:i("connection.permanentKey")}),s("div",{className:"w-full flex items-center gap-2 dark-card px-3 py-2.5",children:[s("span",{className:"material-symbols-outlined flex-shrink-0",style:{fontSize:16,color:"var(--text-muted)"},children:"key"}),s("span",{className:"flex-1 font-mono text-xs truncate",style:{color:"var(--text-main)"},children:x||"— not set —"}),x&&s(an,{icon:f==="permanent"?"check":"content_copy",onClick:()=>v(x,"permanent"),title:"Copy permanent key"}),s(an,{icon:"autorenew",onClick:()=>h("regen"),title:"Regenerate permanent key",danger:!0})]})]}),s("button",{onClick:()=>h("stop"),title:"Stop tunnel",className:"btn-danger w-full mt-1 py-2.5 flex items-center justify-center gap-2 text-[13px] font-semibold",children:[s("span",{className:"material-symbols-outlined",style:{fontSize:17},children:"stop_circle"}),"Stop Tunnel"]})]})]})}const Ur="https://docs.9remote.cc/";function zr({isStopped:e,onStop:t,onShutdown:n,logs:x=[],onClearLogs:r,variant:a="glass"}){const{t:o,locale:i}=Ve(),[l,u]=ie(!1),[p,f]=ie(!1),[c,m]=ie(!1),h=He(null),v=wt.find(y=>y.code===i)||wt[0];ge(()=>{if(!l)return;const y=R=>{h.current&&!h.current.contains(R.target)&&u(!1)};return document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)},[l]);const M=y=>{u(!1),y==null||y()},b=a==="glass"?"glass-btn w-10 h-10 rounded-xl flex items-center justify-center":"p-1.5 rounded-lg transition-all duration-150 ease-out active:scale-[0.94] flex-shrink-0 term-btn",_=a==="glass"?void 0:{background:"var(--surface-2)",color:"var(--text-main)"};return s("div",{ref:h,className:"relative flex-shrink-0",children:[s("button",{onClick:()=>u(y=>!y),title:o("header.settings"),className:b,style:_,children:s("span",{className:"material-symbols-outlined text-xl",children:"settings"})}),l&&s("div",{className:"absolute right-0 top-full mt-1 z-[80] rounded-lg shadow-lg py-1 min-w-[220px]",style:{background:"var(--surface)",border:"1px solid var(--border)"},children:[s("button",{onClick:()=>M(()=>f(!0)),className:"w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 card-act",style:{color:"var(--text-main)"},children:[s("img",{src:`https://flagcdn.com/w40/${v.country}.png`,alt:v.label,className:"w-[17px] h-[12px] object-cover rounded-[2px]",loading:"lazy"}),s("span",{className:"flex-1 truncate",children:v.label})]}),s("button",{onClick:()=>M(()=>m(!0)),className:"w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 card-act",style:{color:"var(--text-main)"},children:[s("span",{className:"material-symbols-outlined text-base",children:"description"}),s("span",{className:"flex-1",children:o("menu.logs")})]}),s("div",{className:"my-0.5",style:{borderTop:"1px solid var(--border)"}}),s(vt,{icon:"menu_book",label:o("header.documentation"),onClick:()=>M(()=>window.open(Ur,"_blank"))}),!e&&s(vt,{icon:"restart_alt",label:o("header.resetShort"),onClick:()=>M(t)}),s(vt,{icon:"power_settings_new",label:o("header.shutdownShort"),danger:!0,onClick:()=>M(n)})]}),p&&s(Lr,{onClose:()=>f(!1)}),c&&s(Kr,{logs:x,onClear:r,onClose:()=>m(!1)})]})}function Lr({onClose:e}){const{t,locale:n,setLocale:x}=Ve();return ge(()=>{const r=a=>{a.key==="Escape"&&e()};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[e]),s("div",{className:"fixed inset-0 z-[90] flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.6)"},onClick:e,children:s("div",{className:"glass-card p-5 flex flex-col gap-4 w-full max-w-lg max-h-[90vh]",onClick:r=>r.stopPropagation(),children:[s("div",{className:"flex items-center justify-between",children:[s("h3",{className:"text-base font-semibold",style:{color:"var(--text-main)"},children:t("header.language")}),s("button",{onClick:e,className:"material-symbols-outlined",style:{fontSize:20,color:"var(--text-muted)",cursor:"pointer"},children:"close"})]}),s("div",{className:"grid grid-cols-2 gap-2 overflow-y-auto",children:wt.map(r=>s("button",{onClick:()=>{x(r.code),e()},className:"flex items-center gap-2 px-3 py-2 text-sm rounded-xl card-act",style:{background:r.code===n?"rgba(var(--brand-rgb),0.15)":"var(--glass-bg)",color:r.code===n?"var(--brand-400)":"var(--text-main)"},children:[s("img",{src:`https://flagcdn.com/w40/${r.country}.png`,alt:r.label,className:"w-[17px] h-[12px] object-cover rounded-[2px] flex-shrink-0",loading:"lazy"}),s("span",{className:"flex-1 text-left truncate",children:r.label}),r.code===n&&s("span",{className:"material-symbols-outlined",style:{fontSize:16},children:"check"})]},r.code))})]})})}function Kr({logs:e,onClear:t,onClose:n}){const{t:x}=Ve(),r=He(null);return ge(()=>{r.current&&(r.current.scrollTop=r.current.scrollHeight)},[e]),ge(()=>{const a=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[n]),s("div",{className:"fixed inset-0 z-[90] flex items-center justify-center p-4",style:{background:"rgba(0,0,0,0.6)"},onClick:n,children:s("div",{className:"glass-card p-5 flex flex-col gap-3 w-full max-w-2xl max-h-[85vh]",onClick:a=>a.stopPropagation(),children:[s("div",{className:"flex items-center justify-between",children:[s("h3",{className:"text-base font-semibold",style:{color:"var(--text-main)"},children:x("menu.logs")}),s("div",{className:"flex items-center gap-2",children:[e.length>0&&s("button",{onClick:t,className:"glass-btn flex items-center gap-1.5 px-2.5 h-7 text-xs",style:{color:"var(--text-muted)"},children:[s("span",{className:"material-symbols-outlined text-sm",children:"delete_sweep"})," Clear"]}),s("button",{onClick:n,className:"material-symbols-outlined",style:{fontSize:20,color:"var(--text-muted)",cursor:"pointer"},children:"close"})]})]}),s("div",{ref:r,className:"flex flex-col gap-0.5 overflow-y-auto pr-1",children:e.length===0?s("p",{className:"text-xs text-center py-6",style:{color:"var(--text-muted)"},children:"No logs yet"}):e.map((a,o)=>s("p",{className:"text-xs font-mono leading-5 break-all",style:{color:"var(--text-muted)"},children:a},o))})]})})}function vt({icon:e,label:t,danger:n,onClick:x}){return s("button",{onClick:x,className:"w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 card-act",style:{color:n?"var(--danger)":"var(--text-main)"},children:[s("span",{className:"material-symbols-outlined text-base",children:e})," ",t]})}const ne=vx;function qn(){const e=["mkdir -p","npm install","docker logs -f","head","docker ps -a","git status","npm run lint","npm run test","chmod","git checkout","tail -f","df -h","git push","bat","2884468NFWwDR","open","wc -l",'git commit -m ""',"more","npm run build","nvim","git add .","479208kUyvDy","free -h","9remote-cmd-history","git log --oneline","cp -r","133mVmMkv","6796110HnTnHs","docker ps","1348905tVKTNN","mkdir","1510639ZoTfnQ","code .","git diff","4110534qmHCIW","code-insiders","docker compose down","cat","grep","git branch","ps aux","2824814FRALhY","claude --continue","git stash","codex"];return qn=function(){return e},qn()}(function(e,t){const n=vx,x=e();for(;;)try{if(parseInt(n(333))/1+-parseInt(n(297))/2+parseInt(n(331))/3+parseInt(n(315))/4+parseInt(n(329))/5+-parseInt(n(336))/6+parseInt(n(328))/7*(-parseInt(n(323))/8)===t)break;x.push(x.shift())}catch{x.push(x.shift())}})(qn,804998);const on={startDelayMs:3e3,pollMs:2e3,timeoutMs:9e4};ne(306),ne(322),ne(318),ne(313),ne(335),ne(326),ne(295),ne(310),ne(299),ne(302),ne(320),ne(308),ne(307),ne(301),ne(327),ne(317),ne(311),ne(296),ne(312),ne(324),ne(330),ne(305),ne(303),ne(338),ne(334),ne(298),ne(300);ne(339),ne(319),ne(304),ne(321),ne(314),ne(337),ne(332),ne(309),ne(316),ne(294);ne(325);function vx(e,t){return e=e-294,qn()[e]}const jr=e=>({screenRecording:{label:e("remote.screenRecording"),icon:"screenshot_monitor",desc:e("remote.captureScreen")},accessibility:{label:e("remote.accessibility"),icon:"accessibility_new",desc:e("remote.controlMouseKeyboard")}});function dn({on:e,onClick:t,activeColor:n="linear-gradient(135deg, var(--brand-500), var(--brand-400))",title:x,disabled:r}){return s("button",{onClick:r?void 0:t,disabled:r,title:x,className:"flex-shrink-0 w-[46px] h-[26px] rounded-full transition-all relative",style:{background:e?n:"rgba(140,145,160,0.35)",border:e?"1px solid transparent":"1px solid rgba(140,145,160,0.55)",opacity:r?.5:1,cursor:r?"not-allowed":"pointer"},children:s("span",{className:"absolute top-0.5 w-5 h-5 rounded-full bg-white transition-all",style:{left:e?"calc(100% - 22px)":"2px",boxShadow:"0 2px 6px rgba(0,0,0,0.4)"}})})}function Or({icon:e,active:t}){return s("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"var(--surface-2)",border:"1px solid var(--border)"},children:s("span",{className:"material-symbols-outlined",style:{fontSize:20,color:t?"var(--brand-400)":"var(--text-muted)"},children:e})})}function qr({granted:e,label:t,onRequest:n}){return s("button",{onClick:e?void 0:n,className:"flex items-center gap-1.5 text-[11.5px] px-2.5 py-1 rounded-lg",style:{background:"var(--surface-2)",border:"1px solid var(--border)",color:e?"var(--success)":"var(--text-muted)",cursor:e?"default":"pointer"},title:e?"":"Click to grant permission",children:[e&&s("span",{className:"material-symbols-outlined",style:{fontSize:15},children:"check_circle"}),t,!e&&s("span",{className:"material-symbols-outlined",style:{fontSize:19,color:"var(--text-subtle)"},children:"toggle_off"})]})}const Fr=e=>({"30m":e("remote.sleepModes.30m"),"1h":e("remote.sleepModes.1h"),"2h":e("remote.sleepModes.2h"),"4h":e("remote.sleepModes.4h"),"24h":e("remote.sleepModes.24h"),never:e("remote.sleepModes.never")});function sn({icon:e,active:t,name:n,desc:x,children:r,extra:a}){return s("div",{className:"flex items-center gap-3.5 py-3.5 border-t first:border-t-0 first:pt-0",style:{borderColor:"var(--border)"},children:[s(Or,{icon:e,active:t}),s("div",{className:"flex-1 min-w-0",children:[s("p",{className:"text-sm font-semibold",style:{color:"var(--text-main)"},children:n}),x&&s("p",{className:"text-[11.5px] mt-0.5",style:{color:"var(--text-muted)"},children:x}),a]}),r]})}function Hr({desktopEnabled:e,onDesktopToggle:t,permissions:n,onRequestPermission:x,autoStart:r,onAutoStartToggle:a,sleepInhibitMode:o,sleepInhibitPresets:i,onSleepInhibitChange:l,unlockStatus:u,onRequestUnlockInstall:p,onRequestUnlockUninstall:f,t:c}){const m=Object.entries(jr(c)),v=!m.every(([b])=>!!(n!=null&&n[b]))&&!e,M=Fr(c);return s("div",{className:"card-elev p-5",children:[s("div",{className:"flex items-center gap-2.5 mb-1",children:[s("span",{className:"material-symbols-outlined",style:{fontSize:20,color:"var(--brand-400)"},children:"tune"}),s("h3",{className:"text-[15px] font-semibold",style:{color:"var(--text-main)"},children:"Remote services"})]}),s(sn,{icon:"desktop_windows",active:e,name:c("remote.remoteDesktop"),extra:s("div",{className:"flex flex-wrap gap-2 mt-2",children:m.map(([b,_])=>s(qr,{granted:!!(n!=null&&n[b]),label:_.label,onRequest:()=>x(b)},b))}),children:s(dn,{on:e,onClick:t,disabled:v,title:v?c("dialogs.grantPermissions"):""})}),s(sn,{icon:"rocket_launch",active:!!r,name:c("remote.launchOnStartup"),children:s(dn,{on:!!r,onClick:a})}),s(sn,{icon:"coffee",active:(o||"never")!=="never",name:c("remote.preventSleep"),children:s("select",{value:o||"never",onChange:b=>l==null?void 0:l(b.target.value),className:"flex-shrink-0 text-[12.5px] px-3 py-2 rounded-lg",style:{background:"var(--surface-2)",color:"var(--text-main)",border:"1px solid var(--border)",cursor:"pointer"},children:(i||[]).map(b=>s("option",{value:b,children:M[b]||b},b))})}),(u==null?void 0:u.supported)&&s(sn,{icon:"lock_open",active:!!u.running,name:c("remote.remoteUnlock"),desc:u.stale?c("remote.remoteUnlockStale"):u.running?c("remote.remoteUnlockReady"):c("remote.remoteUnlockDesc"),children:s(dn,{on:!!u.enabled,disabled:!!u.busy,onClick:()=>u.enabled?f==null?void 0:f():p==null?void 0:p()})})]})}const Wr={idle:{icon:"system_update",spin:!1,text:e=>`Version ${e} available`},confirm:{icon:"system_update",spin:!1,text:()=>"Update 9remote? Restarts connection (~1 min)"},updating:{icon:"progress_activity",spin:!0,text:(e,t)=>`Updating… ${t}s`},restarting:{icon:"restart_alt",spin:!0,text:(e,t)=>`Updating 9remote… ${t}s`},ready:{icon:"check_circle",spin:!1,text:()=>"Updated! Reloading…"},timeout:{icon:"warning",spin:!1,text:()=>"Taking longer than expected"}};function Vr({version:e}){const[t,n]=ie("idle"),[x,r]=ie(0);if(ge(()=>{if(t!=="updating"&&t!=="restarting")return;const u=Date.now();let p=!1;const f=setInterval(()=>r(Math.floor((Date.now()-u)/1e3)),1e3);let c;const h=setTimeout(()=>{c=setInterval(async()=>{if(Date.now()-u>on.timeoutMs){n("timeout"),clearInterval(c);return}try{if(!(await fetch("/api/ui/state",{cache:"no-store"})).ok)throw new Error;p&&(n("ready"),clearInterval(c),setTimeout(()=>location.reload(),600))}catch{p=!0,n("restarting")}},on.pollMs)},on.startDelayMs);return()=>{clearInterval(f),clearInterval(c),clearTimeout(h)}},[t==="updating"||t==="restarting"]),!e)return null;const a=()=>{n("updating"),fetch("/api/update",{method:"POST"}).catch(()=>{})},o=Wr[t],i=t!=="idle"&&t!=="timeout",l=t==="ready"?100:Math.min(x*1e3/on.timeoutMs*100,95);return s("div",{className:"relative px-5 py-2 flex items-center gap-2 border-b",style:{background:"rgba(var(--brand-rgb),0.08)",borderColor:"rgba(var(--brand-rgb),0.2)"},children:[s("span",{className:`material-symbols-outlined text-sm flex-shrink-0 ${o.spin?"animate-spin":""}`,style:{color:"var(--brand-400)"},children:o.icon}),s("span",{className:"text-xs flex-1",style:{color:"var(--brand-400)"},children:o.text(e,x)}),t==="idle"&&s("button",{onClick:()=>n("confirm"),className:"flex-shrink-0 text-xs px-2 py-0.5 rounded font-medium",style:{background:"rgba(var(--brand-rgb),0.15)",color:"var(--brand-400)"},children:"Update"}),t==="confirm"&&s(Ue,{children:[s("button",{onClick:a,className:"flex-shrink-0 text-xs px-2 py-0.5 rounded font-medium",style:{background:"rgba(var(--brand-rgb),0.15)",color:"var(--brand-400)"},children:"Confirm"}),s("button",{onClick:()=>n("idle"),className:"flex-shrink-0 text-xs px-2 py-0.5 rounded font-medium",style:{background:"rgba(255,255,255,0.08)",color:"var(--text-muted)"},children:"Cancel"})]}),t==="timeout"&&s("button",{onClick:()=>location.reload(),className:"flex-shrink-0 text-xs px-2 py-0.5 rounded font-medium",style:{background:"rgba(var(--brand-rgb),0.15)",color:"var(--brand-400)"},children:"Reload"}),i&&s("span",{className:"text-xs flex-shrink-0",style:{color:"var(--brand-400)",opacity:.6},children:[x,"s"]}),i&&s("div",{className:"absolute left-0 bottom-0 h-0.5 transition-all duration-1000 ease-linear",style:{width:`${l}%`,background:"var(--brand-400)"}})]})}function Jr(e,t,n=[]){const x=new Map;for(const i of t){if(!i.deviceId)continue;const l=x.get(i.deviceId);(!l||i.connectedAt&&i.connectedAt<l.connectedAt)&&x.set(i.deviceId,i)}const r=e.map(i=>{const l=x.get(i.deviceId);return{deviceId:i.deviceId,status:l?"online":"offline",ip:(l==null?void 0:l.ip)||null,connType:(l==null?void 0:l.type)||null,connectedAt:(l==null?void 0:l.connectedAt)||null,approvedAt:i.approvedAt||null,label:i.label||""}}),a=n.map(i=>({deviceId:i.deviceId,status:"pending",ip:i.ip||null,connectedAt:null,approvedAt:null,rejectedAt:i.rejectedAt||null})),o={online:0,pending:1,offline:2};return[...r,...a].sort((i,l)=>o[i.status]-o[l.status])}const I0={online:{color:"var(--success)",bg:"rgba(var(--success-rgb),0.14)",label:"Online"},offline:{color:"var(--text-subtle)",bg:"var(--surface-2)",label:"Offline"},pending:{color:"var(--warn)",bg:"rgba(var(--warn-rgb),0.14)",label:"Pending"}},Qr=e=>/mac|book|laptop|pc|windows|desktop|linux/i.test(e||"")?"laptop_mac":"smartphone";function Yr({client:e,onRemove:t,onApprove:n,onLabel:x}){const r=`${e.deviceId.slice(0,8)}...`,a=e.label||r,o=I0[e.status]||I0.offline,i=e.status==="pending",l=e.status==="online"?`${e.ip?e.ip+" · ":""}connected ${e.connectedAt?new Date(e.connectedAt).toLocaleTimeString(void 0,{hour12:!1}):""}`:i?"Waiting for approval":e.approvedAt?`Approved ${new Date(e.approvedAt).toLocaleDateString()}`:"Offline";return s("div",{className:`flex items-center gap-3.5 py-3 ${i?"rounded-lg px-3 -mx-3":"border-t first:border-t-0"}`,style:i?{background:"linear-gradient(100deg, rgba(var(--warn-rgb),0.08), transparent)"}:{borderColor:"var(--border)"},children:[s("div",{className:"w-10 h-10 rounded-lg flex items-center justify-center flex-shrink-0",style:{background:"var(--surface-2)",border:"1px solid var(--border)"},children:s("span",{className:"material-symbols-outlined",style:{fontSize:20,color:"var(--text-muted)"},children:Qr(a)})}),s("div",{className:"flex-1 min-w-0",children:[s("div",{className:"text-[13.5px] font-semibold flex items-center gap-2 min-w-0",style:{color:"var(--text-main)"},children:[s("span",{className:"truncate",children:a}),s("span",{className:"flex items-center gap-1 text-[10.5px] font-semibold px-2 py-0.5 rounded-full flex-shrink-0",style:{background:o.bg,color:o.color},children:[s("span",{className:"w-1.5 h-1.5 rounded-full",style:{background:"currentColor"}}),o.label]}),!i&&s("button",{onClick:()=>x==null?void 0:x(e),className:"material-symbols-outlined flex-shrink-0",style:{fontSize:14,color:"var(--text-muted)",cursor:"pointer"},title:"Rename this device",children:"edit"})]}),s("p",{className:`text-[11.5px] mt-0.5 truncate ${e.ip?"font-mono":""}`,style:{color:"var(--text-muted)"},children:l})]}),i?s("button",{onClick:()=>n==null?void 0:n(e),className:"flex-shrink-0 text-[12.5px] font-semibold px-3.5 py-2 rounded-lg",style:{background:"linear-gradient(135deg, var(--brand-500), var(--brand-400))",color:"#fff"},title:"Approve this device",children:"Approve"}):s("button",{onClick:()=>t(e),className:"flex-shrink-0 text-[12.5px] font-semibold px-3.5 py-2 rounded-lg card-act",style:{background:"var(--surface-2)",border:"1px solid var(--border)"},title:"Disconnect and remove this device",children:e.status==="online"?"Disconnect":"Remove"})]})}function C0({icon:e,title:t,danger:n,onClick:x}){return s("button",{onClick:x,title:t,className:n?"btn-danger w-10 h-10 rounded-lg flex items-center justify-center":"glass-btn w-10 h-10 rounded-lg flex items-center justify-center",style:n?void 0:{color:"var(--text-muted)"},children:s("span",{className:"material-symbols-outlined text-xl",children:e})})}function Zr({onStart:e,t}){const[n,x]=ie(!1),r=()=>{x(!0),e==null||e()};return s("div",{className:"flex-1 flex flex-col items-center justify-center gap-5 px-6 py-8 text-center max-w-sm w-full mx-auto",children:[s("div",{className:"w-16 h-16 rounded-lg flex items-center justify-center",style:{background:"var(--glass-bg)"},children:s("span",{className:"material-symbols-outlined",style:{fontSize:32,color:"var(--text-muted)"},children:"cloud_off"})}),s("div",{className:"flex flex-col gap-1",children:[s("p",{className:"text-base font-semibold",style:{color:"var(--text-main)"},children:t("connection.tunnelOffline")}),s("p",{className:"text-xs leading-5",style:{color:"var(--text-muted)"},children:t("connection.startTunnel")})]}),s("button",{onClick:n?void 0:r,disabled:n,className:"btn-primary w-full py-3 flex items-center justify-center gap-2 text-sm font-semibold",style:{borderRadius:"var(--radius-brand)",opacity:n?.7:1},children:[s("span",{className:"material-symbols-outlined text-base",children:"play_arrow"}),t(n?"connection.connecting":"connection.connect")]})]})}function Xr({version:e,isReady:t,isStopped:n,transport:x,onTransportChange:r,theme:a,onToggleTheme:o,onOpenTerminal:i,onStop:l,onShutdown:u,logs:p,onClearLogs:f}){const{t:c}=Ve();return s("header",{className:"shrink-0 flex items-center justify-between gap-3 px-6 lg:px-10 pt-5 pb-1",children:[s("div",{className:"flex items-center gap-3 min-w-0",children:[s("div",{className:"w-10 h-10 rounded-[11px] grid place-items-center flex-shrink-0",style:{background:"var(--brand-500)",boxShadow:"0 8px 20px -6px rgba(var(--brand-rgb),0.45)"},children:s("span",{className:"material-symbols-outlined",style:{fontSize:22,color:"#fff"},children:"terminal"})}),s("div",{className:"flex flex-col leading-none min-w-0",children:[s("span",{className:"text-[22px] font-bold tracking-tight",style:{color:"var(--text-main)"},children:"9Remote"}),e&&s("span",{className:"font-mono text-[11px] mt-1",style:{color:"var(--text-subtle)"},children:["v",e]})]}),t&&s("div",{className:"ml-2 hidden sm:block",children:s($r,{transport:x,onTransportChange:r})})]}),s("div",{className:"flex items-center gap-1.5 shrink-0",children:[s(C0,{icon:"open_in_new",title:c("menu.terminals"),onClick:i}),s(C0,{icon:a==="dark"?"light_mode":"dark_mode",title:c(a==="dark"?"header.lightMode":"header.darkMode"),onClick:o}),s(zr,{isStopped:n,onStop:l,onShutdown:u,logs:p,onClearLogs:f})]})]})}function $r({transport:e,onTransportChange:t}){const n=(e==null?void 0:e.signaling)||"off",x=(e==null?void 0:e.rtcPeers)||0,r=(e==null?void 0:e.wsPeers)||0;e==null||e.rtcDisabled;const a=x>0||r>0;return s("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg",style:{background:"var(--surface-2)",border:"1px solid var(--border)"},children:[s("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${a?"health-dot":""}`,style:{background:a?"var(--success)":n==="connected"?"var(--warn)":"var(--danger)"}}),s("span",{className:"text-[12.5px] font-medium",style:{color:"var(--text-main)"},children:a?"Connected":n==="connected"?"Ready":"Offline"}),!1]})}function ea({step:e,stepDesc:t="",healthCheck:n,transport:x,onTransportChange:r,tunnelUrl:a,oneTimeKey:o,oneTimeKeyExpiresAt:i,permanentKey:l,qrUrl:u,permissions:p,desktopEnabled:f,updateVersion:c,connections:m=[],version:h="",onRequestPermission:v,onDesktopToggle:M,onStop:b,onStart:_,onShutdown:y,onGenerateOneTimeKey:R,onRegenerateKey:oe,logs:S=[],onClearLogs:D,theme:N,onToggleTheme:w,pendingDevice:I,onDeviceApprove:C,onDeviceReject:K,approvedDevices:T=[],rejectedDevices:$=[],onDeviceRemove:pe,onFetchDevices:me,onDeviceApproveRejected:Se,onDeviceLabel:Ie,autoApprove:be=!1,onAutoApproveToggle:Ee,autoStart:Ce=!1,onAutoStartToggle:Ke,sleepInhibitMode:Me="never",sleepInhibitPresets:Je=[],onSleepInhibitChange:Pe,unlockStatus:je=null,onRequestUnlockInstall:de,onRequestUnlockUninstall:he,onStopTunnel:ve}){var Gt;const{t:ye}=Ve(),[Wn,Qe]=ie(!1),[Vn,Ye]=ie(!1),[_e,Ze]=ie(null),[Xe,$e]=ie(null),[E,ae]=ie(""),le=He(null),Te=async()=>{const Ne=window.open("","_blank");if(Ne)try{const Ge=await fetch("/api/ui/state",{cache:"no-store"});if(!Ge.ok)throw new Error;const{workerUrl:_x}=await Ge.json();Ne.location.href=`${_x}/login`}catch{Ne.close()}},k=e===5,G=e===0,De=e>0&&e<5;ge(()=>{me==null||me()},[m.length]);const fe=Jr(T,m,$),yx=fe.filter(Ne=>Ne.status==="online").length;return s("div",{className:"h-full w-full flex flex-col overflow-hidden isolate",style:{background:"var(--bg-body)"},children:[s("div",{className:"dot-grid-bg fixed inset-0 pointer-events-none",style:{zIndex:-4},"aria-hidden":"true"}),s("div",{className:"agent-grid fixed inset-0 pointer-events-none",style:{zIndex:-3},"aria-hidden":"true"}),s("div",{className:"agent-glow-tl fixed pointer-events-none",style:{top:"-10%",left:"-5%",width:"min(700px, 90vw)",height:"min(700px, 90vw)",borderRadius:"50%",zIndex:-2},"aria-hidden":"true"}),s("div",{className:"agent-glow-br fixed pointer-events-none",style:{bottom:"-15%",right:"-10%",width:"min(800px, 95vw)",height:"min(800px, 95vw)",borderRadius:"50%",zIndex:-2},"aria-hidden":"true"}),s(Xr,{version:h,isReady:k,isStopped:G,transport:x,onTransportChange:r,theme:N,onToggleTheme:w,onOpenTerminal:Te,onStop:()=>Qe(!0),onShutdown:()=>Ye(!0),logs:S,onClearLogs:D}),!De&&s(Vr,{version:c}),s("main",{ref:le,className:"flex-1 min-w-0 h-full relative overflow-y-auto",children:s("div",{className:"px-6 lg:px-10 pb-6 lg:pb-10 pt-5",children:s("div",{className:"max-w-7xl mx-auto flex flex-col gap-4",children:[G&&s(Zr,{onStart:_,t:ye}),De&&s("div",{className:"flex-1 flex flex-col gap-4 max-w-2xl w-full mx-auto",children:s(Bx,{currentStep:e,activeDesc:t,healthCheck:n,t:ye})}),k&&s(Ue,{children:s("div",{className:"grid grid-cols-1 lg:grid-cols-[minmax(300px,1fr)_1.7fr] gap-4 items-stretch",children:[s("div",{children:s(Br,{qrUrl:u,oneTimeKey:o,oneTimeKeyExpiresAt:i,permanentKey:l,onGenerateOneTimeKey:R,onRegenerateKey:oe,onStopTunnel:ve})}),s("div",{className:"flex flex-col gap-4",children:[s(Hr,{desktopEnabled:f,onDesktopToggle:M,permissions:p,onRequestPermission:v,autoStart:Ce,onAutoStartToggle:Ke,sleepInhibitMode:Me,sleepInhibitPresets:Je,onSleepInhibitChange:Pe,unlockStatus:je,onRequestUnlockInstall:de,onRequestUnlockUninstall:he,t:ye}),s("div",{className:"card-elev p-5 flex flex-col gap-1",children:[s("div",{className:"flex items-center gap-2.5 mb-2",children:[s("span",{className:"material-symbols-outlined flex-shrink-0",style:{fontSize:20,color:"var(--brand-400)"},children:"devices"}),s("h3",{className:"text-[15px] font-semibold flex-1",style:{color:"var(--text-main)"},children:"Clients"}),fe.length>0&&s("span",{className:"text-[11px] font-mono",style:{color:"var(--text-muted)"},children:[yx,"/",fe.length," online"]})]}),s("div",{className:"flex items-center gap-3 py-2.5",children:[s("span",{className:"material-symbols-outlined flex-shrink-0",style:{fontSize:18,color:be?"var(--brand-400)":"var(--text-muted)"},children:be?"lock_open":"lock"}),s("div",{className:"flex-1 min-w-0",children:s("p",{className:"text-xs font-medium",style:{color:"var(--text-main)"},children:ye("clients.autoApprove")})}),s(dn,{on:be,onClick:Ee,title:be?"Disable auto-approve":"Enable auto-approve"})]}),fe.length===0?s("p",{className:"text-xs text-center py-3",style:{color:"var(--text-muted)"},children:"No clients yet"}):fe.map(Ne=>s(Yr,{client:Ne,onRemove:Ze,onApprove:Ge=>Se==null?void 0:Se(Ge.deviceId),onLabel:Ge=>{$e(Ge),ae(Ge.label||"")}},Ne.deviceId))]})]})]})})]})})}),Wn&&s(Be,{message:"Reset and stop the tunnel? Remote clients will be disconnected.",confirmLabel:"Reset",onConfirm:()=>{Qe(!1),b==null||b()},onCancel:()=>Qe(!1)}),Vn&&s(Be,{message:"Shutdown 9Remote completely? This will stop the server, close the tunnel and quit the app.",confirmLabel:"Shutdown",confirmDanger:!0,onConfirm:()=>{Ye(!1),y==null||y()},onCancel:()=>Ye(!1)}),_e&&s(Be,{message:_e.status==="online"?`Disconnect and remove device ${_e.deviceId.slice(0,8)}...? The client will be disconnected and need approval again next time.`:_e.status==="pending"?`Remove pending device ${_e.deviceId.slice(0,8)}...? It will need a fresh approval request to connect again.`:`Remove device ${_e.deviceId.slice(0,8)}...? It will need approval again next time.`,confirmLabel:_e.status==="online"?"Disconnect & Remove":"Remove",confirmDanger:!0,onConfirm:()=>{pe==null||pe(_e),Ze(null)},onCancel:()=>Ze(null)}),Xe&&s(Be,{message:`Name for device ${Xe.deviceId.slice(0,8)}...`,confirmLabel:"Save",inputValue:E,inputPlaceholder:"e.g. My MacBook",onInput:ae,onConfirm:()=>{Ie==null||Ie(Xe.deviceId,E.trim()),$e(null)},onCancel:()=>$e(null)}),I&&s("div",{className:"fixed inset-0 z-50 flex items-center justify-center",style:{background:"rgba(0,0,0,0.6)"},children:s("div",{className:"card-elev p-5 flex flex-col gap-4 w-80",children:[s("div",{className:"flex items-center gap-2",children:[s("span",{className:"material-symbols-outlined",style:{color:"var(--brand-500)",fontSize:24},children:"devices"}),s("span",{className:"text-sm font-semibold",style:{color:"var(--text-main)"},children:"New Device Connection"})]}),s("div",{className:"flex flex-col gap-1 text-xs",style:{color:"var(--text-muted)"},children:[s("span",{children:["Device: ",s("span",{style:{color:"var(--text-main)"},children:[(Gt=I.deviceId)==null?void 0:Gt.slice(0,8),"..."]})]}),s("span",{children:["IP: ",s("span",{style:{color:"var(--text-main)"},children:I.ip})]})]}),s("div",{className:"flex gap-2",children:[s("button",{onClick:K,className:"glass-btn flex-1 py-2 text-sm",style:{color:"var(--text-muted)"},children:"Reject"}),s("button",{onClick:C,className:"flex-1 py-2 text-sm font-semibold rounded-lg",style:{background:"var(--brand-500)",color:"#fff"},children:"Approve"})]})]})})]})}const na=3e3,Tt={running:!1,timeoutMs:0,startedAt:null,logs:[]},Dt={status:"unknown",checkedAt:null},T0={step:0,stepDesc:"",tunnelUrl:"",oneTimeKey:"",oneTimeKeyExpiresAt:null,permanentKey:"",qrUrl:"",latency:null,uptime:null,healthCheck:Tt,tunnelHealth:Dt},ta={signaling:"off",rtcPeers:0,wsPeers:0,rtcDisabled:!1},xa={screenRecording:!1,accessibility:!1},D0=200;function ra(){const[e,t]=ie(T0),[n,x]=ie(xa),[r,a]=ie(ta),[o,i]=ie(!1),[l,u]=ie([]),[p,f]=ie(null),[c,m]=ie([]),[h,v]=ie(null),[M,b]=ie([]),[_,y]=ie([]),[R,oe]=ie(!1),[S,D]=ie(!1),[N,w]=ie("never"),[I,C]=ie([]),[K,T]=ie(null),[$,pe]=ie(""),[me,Se]=ie(()=>localStorage.getItem("9remote-theme")||"dark");ge(()=>{document.documentElement.setAttribute("data-theme",me),localStorage.setItem("9remote-theme",me)},[me]);const Ie=()=>{Se(E=>E==="dark"?"light":"dark")};ge(()=>{fetch("/api/version").then(k=>k.json()).then(k=>pe(k.version??"")).catch(()=>{}),fetch("/api/ui/state").then(k=>k.json()).then(k=>{t({step:k.step??0,stepDesc:k.stepDesc??"",tunnelUrl:k.tunnelUrl??"",oneTimeKey:k.oneTimeKey??"",oneTimeKeyExpiresAt:k.oneTimeKeyExpiresAt??null,permanentKey:k.permanentKey??"",qrUrl:k.qrUrl??"",latency:k.latency??null,uptime:k.uptime??null,healthCheck:k.healthCheck??Tt,tunnelHealth:k.tunnelHealth??Dt}),x({screenRecording:k.screenRecording??!1,accessibility:k.accessibility??!1}),k.transport&&a(k.transport),k.desktopEnabled!==void 0&&i(k.desktopEnabled),k.theme&&(k.theme==="light"||k.theme==="dark")&&Se(k.theme)}).catch(()=>{}),fetch("/api/logs").then(k=>k.json()).then(k=>{Array.isArray(k==null?void 0:k.logs)&&u(k.logs)}).catch(()=>{});const E=new EventSource("/api/ui/events");E.onmessage=k=>{try{const G=JSON.parse(k.data);G.type==="state"?t({step:G.step??0,stepDesc:G.stepDesc??"",tunnelUrl:G.tunnelUrl??"",oneTimeKey:G.oneTimeKey??"",oneTimeKeyExpiresAt:G.oneTimeKeyExpiresAt??null,permanentKey:G.permanentKey??"",qrUrl:G.qrUrl??"",latency:G.latency??null,uptime:G.uptime??null,healthCheck:G.healthCheck??Tt,tunnelHealth:G.tunnelHealth??Dt}):G.type==="log"?u(De=>{const fe=[...De,G.message];return fe.length>D0?fe.slice(-D0):fe}):G.type==="updateAvailable"?f(G.version):G.type==="permissions"?(x({screenRecording:G.screenRecording,accessibility:G.accessibility}),G.desktopEnabled!==void 0&&i(G.desktopEnabled)):G.type==="transport"?a({signaling:G.signaling,rtcPeers:G.rtcPeers,wsPeers:G.wsPeers,rtcDisabled:G.rtcDisabled}):G.type==="connections"?m(G.connections??[]):G.type==="deviceApproval"&&G.action==="pending"?v({socketId:G.socketId,deviceId:G.deviceId,ip:G.ip}):G.type==="deviceApproval"&&G.action==="refresh"?de():G.type==="autostart"?D(!!G.enabled):G.type==="sleepInhibit"&&(G.mode&&w(G.mode),Array.isArray(G.presets)&&C(G.presets))}catch{}},E.onerror=()=>{},fetch("/api/device/auto-approve").then(k=>k.json()).then(k=>{oe(!!(k!=null&&k.enabled))}).catch(()=>{}),fetch("/api/autostart").then(k=>k.json()).then(k=>{D(!!(k!=null&&k.enabled))}).catch(()=>{}),fetch("/api/sleep-inhibit").then(k=>k.json()).then(k=>{k!=null&&k.mode&&w(k.mode),Array.isArray(k==null?void 0:k.presets)&&C(k.presets)}).catch(()=>{});const ae=()=>fetch("/api/desktop-unlock").then(k=>k.json()).then(k=>{k!=null&&k.supported&&T(G=>G!=null&&G.busy?G:k)}).catch(()=>{});ae();const le=setInterval(ae,1e4),Te=setInterval(async()=>{var k;if(!be.current)try{const G=await fetch("/api/device/pending");if(!G.ok)return;const De=await G.json(),fe=(k=De==null?void 0:De.pending)==null?void 0:k[0];fe&&!be.current&&v({socketId:fe.socketId,deviceId:fe.deviceId,ip:fe.ip})}catch{}},na);return()=>{E.close(),clearInterval(Te),clearInterval(le)}},[]);const be=He(null);ge(()=>{be.current=h},[h]);const Ee=async E=>{await fetch("/api/permissions/request",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:E})}).catch(()=>{})},Ce=()=>{fetch("/api/ui/stop",{method:"POST"}).catch(()=>{})},Ke=()=>{fetch("/api/ui/start",{method:"POST"}).catch(()=>{})},Me=()=>{fetch("/api/ui/stop-tunnel",{method:"POST"}).catch(()=>{})},Je=()=>{fetch("/api/ui/shutdown",{method:"POST"}).catch(()=>{}),t(T0)},Pe=async()=>{const E=await fetch("/api/key/one-time",{method:"POST"}).catch(()=>null);if(!(E!=null&&E.ok))return;const ae=await E.json().catch(()=>null);ae!=null&&ae.oneTimeKey&&t(le=>({...le,oneTimeKey:ae.oneTimeKey,oneTimeKeyExpiresAt:ae.expiresAt,qrUrl:ae.qrUrl??le.qrUrl}))},je=async()=>{const E=!o;i(E),await fetch("/api/desktop/toggle",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:E})}).catch(()=>{})},de=async()=>{try{const[E,ae]=await Promise.all([fetch("/api/device/approved"),fetch("/api/device/rejected")]);if(E.ok){const le=await E.json();b(le.devices||[])}if(ae.ok){const le=await ae.json();y(le.rejected||[])}}catch{}},he=async E=>{const ae=E.status==="pending"?"/api/device/clear-rejected":"/api/device/remove";await fetch(ae,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceId:E.deviceId})}).catch(()=>{}),de()},ve=async()=>{h&&(await fetch("/api/device/approve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({socketId:h.socketId})}).catch(()=>{}),v(null),de())},ye=async()=>{h&&(await fetch("/api/device/reject",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({socketId:h.socketId})}).catch(()=>{}),v(null),de())},Wn=async()=>{const E=!S;D(E);try{const le=await(await fetch("/api/autostart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:E})})).json().catch(()=>null);le&&typeof le.enabled=="boolean"&&D(le.enabled)}catch{D(!E)}},Qe=async E=>{const ae=N;w(E);try{const Te=await(await fetch("/api/sleep-inhibit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:E})})).json().catch(()=>null);Te!=null&&Te.mode&&w(Te.mode)}catch{w(ae)}},Vn=async()=>{T(E=>({...E||{supported:!0},busy:!0}));try{const ae=await(await fetch("/api/desktop-unlock/install",{method:"POST"})).json().catch(()=>null);ae&&T({supported:!0,...ae,busy:!1})}catch{T(E=>({...E||{supported:!0},busy:!1}))}},Ye=async()=>{T(E=>({...E||{supported:!0},busy:!0}));try{const ae=await(await fetch("/api/desktop-unlock/uninstall",{method:"POST"})).json().catch(()=>null);ae&&T({supported:!0,...ae,busy:!1})}catch{T(E=>({...E||{supported:!0},busy:!1}))}},_e=async()=>{const E=!R;oe(E);try{const le=await(await fetch("/api/device/auto-approve",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:E})})).json().catch(()=>null);le&&typeof le.enabled=="boolean"&&oe(le.enabled)}catch{oe(!E)}},Ze=async E=>{await fetch("/api/device/approve-rejected",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceId:E})}).catch(()=>{}),de()},Xe=async(E,ae)=>{await fetch("/api/device/label",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceId:E,label:ae})}).catch(()=>{}),de()},$e=async()=>{const E=await fetch("/api/key/regenerate",{method:"POST"}).catch(()=>null);if(!(E!=null&&E.ok))return;const ae=await E.json().catch(()=>null);ae!=null&&ae.permanentKey&&t(le=>({...le,permanentKey:ae.permanentKey}))};return s(ea,{step:e.step,stepDesc:e.stepDesc,healthCheck:e.healthCheck,transport:r,onTransportChange:a,tunnelUrl:e.tunnelUrl,oneTimeKey:e.oneTimeKey,oneTimeKeyExpiresAt:e.oneTimeKeyExpiresAt,permanentKey:e.permanentKey,qrUrl:e.qrUrl,permissions:n,desktopEnabled:o,updateVersion:p,connections:c,onRequestPermission:Ee,onDesktopToggle:je,onStop:Ce,onStart:Ke,onStopTunnel:Me,onShutdown:Je,onGenerateOneTimeKey:Pe,onRegenerateKey:$e,logs:l,onClearLogs:()=>{fetch("/api/logs/clear",{method:"POST"}).catch(()=>{}),u([])},version:$,theme:me,onToggleTheme:Ie,pendingDevice:h,onDeviceApprove:ve,onDeviceReject:ye,approvedDevices:M,rejectedDevices:_,onDeviceRemove:he,onFetchDevices:de,onDeviceApproveRejected:Ze,onDeviceLabel:Xe,autoApprove:R,onAutoApproveToggle:_e,autoStart:S,onAutoStartToggle:Wn,sleepInhibitMode:N,sleepInhibitPresets:I,unlockStatus:K,onRequestUnlockInstall:Vn,onRequestUnlockUninstall:Ye,onSleepInhibitChange:Qe})}Nx(s(ra,{}),document.getElementById("root"));
|