Added terminal device sharing.
Ylian Saint-Hilaire committed
Nov 27, 2020 at 13:55 UTC
1b2a63977b59fe801171efc862698ede3db75a0e
13 files changed
+2528
-2006
MeshCentralServer.njsproj
+1
@@ -564,6 +564,7 @@
564
<Content Include="views\messenger.handlebars" />
565
<Content Include="views\mstsc.handlebars" />
566
<Content Include="views\player.handlebars" />
567
+ <Content Include="views\terminal.handlebars" />
568
<Content Include="views\terms-mobile.handlebars" />
569
<Content Include="views\terms.handlebars" />
570
<Content Include="views\xterm.handlebars" />
db.js
+1
@@ -463,6 +463,7 @@ module.exports.CreateDB = function (parent, func) {
463
case 'ugrp': { dbUGrpChange(change, true); break; } // A user account has created
464
}
465
} else if (change.operationType == 'delete') {
466
+ if ((change.documentKey == null) || (change.documentKey._id == null)) return;
467
var splitId = change.documentKey._id.split('/');
468
switch (splitId[0]) {
469
case 'node': {
meshrelay.js
+2
-2
@@ -621,7 +621,7 @@ function CreateMeshRelayEx(parent, ws, req, domain, user, cookie) {
621
performRelay();
622
});
623
return obj;
624
- } else if ((cookie != null) && (cookie.nid != null) && (typeof cookie.r == 'number') && (typeof cookie.cf == 'number') && (typeof cookie.gn == 'string')) {
624
+ } else if ((cookie != null) && (cookie.nid != null) && (typeof cookie.r == 'number') && (typeof cookie.p == 'number') && (typeof cookie.cf == 'number') && (typeof cookie.gn == 'string')) {
625
// We have routing instructions in the cookie, but first, check user access for this node.
626
parent.db.Get(cookie.nid, function (err, docs) {
627
if (docs.length == 0) { console.log('ERR: Node not found'); try { obj.close(); } catch (e) { } return; } // Disconnect websocket
@@ -633,7 +633,7 @@ function CreateMeshRelayEx(parent, ws, req, domain, user, cookie) {
633
// Send connection request to agent
634
if (obj.id == null) { obj.id = ('' + Math.random()).substring(2); }
635
const rcookie = parent.parent.encodeCookie({ ruserid: user._id, nodeid: node._id }, parent.parent.loginCookieEncryptionKey);
636
- const command = { nodeid: node._id, action: 'msg', type: 'tunnel', userid: user._id, value: '*/meshrelay.ashx?p=2&id=' + obj.id + '&rauth=' + rcookie + '&nodeid=' + node._id, soptions: {}, usage: 2, rights: cookie.r, guestname: cookie.gn, consent: cookie.cf, remoteaddr: cleanRemoteAddr(obj.req.clientIp) };
636
+ const command = { nodeid: node._id, action: 'msg', type: 'tunnel', userid: user._id, value: '*/meshrelay.ashx?p=' + cookie.p + '&id=' + obj.id + '&rauth=' + rcookie + '&nodeid=' + node._id, soptions: {}, usage: 2, rights: cookie.r, guestname: cookie.gn, consent: cookie.cf, remoteaddr: cleanRemoteAddr(obj.req.clientIp) };
637
if (typeof domain.consentmessages == 'object') {
638
if (typeof domain.consentmessages.title == 'string') { command.soptions.consentTitle = domain.consentmessages.title; }
639
if (typeof domain.consentmessages.desktop == 'string') { command.soptions.consentMsgDesktop = domain.consentmessages.desktop; }
meshuser.js
+6
-4
@@ -4707,6 +4707,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
4707
else if ((command.start != null) && (typeof command.start != 'number')) { err = 'Invalid start time'; } // Check the start time in seconds
4708
else if ((command.end != null) && (typeof command.end != 'number')) { err = 'Invalid end time'; } // Check the end time in seconds
4709
else if (common.validateInt(command.consent, 0, 256) == false) { err = 'Invalid flags'; } // Check the flags
4710
+ else if (common.validateInt(command.p, 1, 2) == false) { err = 'Invalid protocol'; } // Check the protocol, 1 = Terminal, 2 = Desktop
4711
else if ((command.expire == null) && ((command.start == null) || (command.end == null) || (command.start > command.end))) { err = 'No time specified'; } // Check that a time range is present
4712
else {
4713
if (command.nodeid.split('/').length == 1) { command.nodeid = 'node/' + domain.id + '/' + command.nodeid; }
@@ -4740,7 +4741,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
4741
expireTime = command.end * 1000;
4742
}
4743
4743
- const inviteCookie = parent.parent.encodeCookie({ a: 5, uid: user._id, gn: command.guestname, nid: node._id, cf: command.consent, start: startTime, expire: expireTime, pid: publicid }, parent.parent.invitationLinkEncryptionKey);
4744
+ const inviteCookie = parent.parent.encodeCookie({ a: 5, p: command.p, uid: user._id, gn: command.guestname, nid: node._id, cf: command.consent, start: startTime, expire: expireTime, pid: publicid }, parent.parent.invitationLinkEncryptionKey);
4745
if (inviteCookie == null) { if (command.responseid != null) { try { ws.send(JSON.stringify({ action: 'createDeviceShareLink', responseid: command.responseid, result: 'Unable to generate shareing cookie' })); } catch (ex) { } } return; }
4746
command.start = startTime;
4747
command.expire = expireTime;
@@ -4750,13 +4751,14 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
4751
var httpsPort = ((args.aliasport == null) ? args.port : args.aliasport); // Use HTTPS alias port is specified
4752
var xdomain = (domain.dns == null) ? domain.id : '';
4753
if (xdomain != '') xdomain += '/';
4753
- var url = 'https://' + serverName + ':' + httpsPort + '/' + xdomain + 'desktop?c=' + inviteCookie;
4754
- if (serverName.split('.') == 1) { url = '/' + xdomain + 'desktop?c=' + inviteCookie; }
4754
+ var page = (command.p == 1) ? 'terminal' : 'desktop';
4755
+ var url = 'https://' + serverName + ':' + httpsPort + '/' + xdomain + page + '?c=' + inviteCookie;
4756
+ if (serverName.split('.') == 1) { url = '/' + xdomain + page + '?c=' + inviteCookie; }
4757
command.url = url;
4758
ws.send(JSON.stringify(command));
4759
4760
// Create a device sharing database entry
4759
- parent.db.Set({ type: 'deviceshare', nodeid: node._id, domain: node.domain, publicid: publicid, startTime: startTime, expireTime: expireTime, userid: user._id, guestName: command.guestname, consent: command.consent, url: url });
4761
+ parent.db.Set({ _id: 'deviceshare-' + publicid, type: 'deviceshare', nodeid: node._id, p: command.p, domain: node.domain, publicid: publicid, startTime: startTime, expireTime: expireTime, userid: user._id, guestName: command.guestname, consent: command.consent, url: url });
4762
4763
// Send out an event that we added a device share
4764
var targets = parent.CreateNodeDispatchTargets(node.meshid, node._id, ['server-users', user._id]);
public/scripts/agent-desktop-0.0.2-min.js
+1
-1
@@ -1 +1 @@
1
-Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(e,t){return new Uint8Array(Array.prototype.slice.call(this,e,t))}});var CreateAgentRemoteDesktop=function(e,t){var h={};"string"==typeof(h.CanvasId=e)&&(h.CanvasId=Q(e)),h.Canvas=h.CanvasId.getContext("2d"),h.scrolldiv=t,h.State=0,h.PendingOperations=[],h.tilesReceived=0,h.TilesDrawn=0,h.KillDraw=0,h.ipad=!1,h.tabletKeyboardVisible=!1,h.LastX=0,h.LastY=0,h.touchenabled=0,h.submenuoffset=0,h.touchtimer=null,h.TouchArray={},h.connectmode=0,h.connectioncount=0,h.rotation=0,h.protocol=2,h.debugmode=0,h.firstUpKeys=[],h.stopInput=!1,h.localKeyMap=!0,h.remoteKeyMap=!1,h.pressedKeys=[],h.sessionid=0,h.username,h.oldie=!1,h.CompressionLevel=50,h.ScalingLevel=1024,h.FrameRateTimer=100,h.SwapMouse=!1,h.FirstDraw=!1,h.ScreenWidth=960,h.ScreenHeight=701,h.width=960,h.height=960,h.displays=null,h.selectedDisplay=null,h.onScreenSizeChange=null,h.onMessage=null,h.onConnectCountChanged=null,h.onDebugMessage=null,h.onTouchEnabledChanged=null,h.onDisplayinfo=null;var g=!(h.accumulator=null),p="default";h.mouseCursorActive=function(e){g!=e&&(g=e,h.CanvasId.style.cursor=1==e?p:"default")};var S=["default","progress","crosshair","pointer","help","text","no-drop","move","nesw-resize","ns-resize","nwse-resize","w-resize","alias","wait","none","not-allowed","col-resize","row-resize","copy","zoom-in","zoom-out"];h.Start=function(){h.State=0,h.accumulator=null},h.Stop=function(){h.setRotation(0),h.UnGrabKeyInput(),h.UnGrabMouseInput(),h.touchenabled=0,null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId),h.Canvas.clearRect(0,0,h.CanvasId.width,h.CanvasId.height)},h.xxStateChange=function(e){if(h.State!=e)switch(h.State=e,h.CanvasId.style.cursor="default",e){case 0:h.Stop()}},h.send=function(e){2<h.debugmode&&console.log("KSend("+e.length+"): "+rstr2hex(e)),null!=h.parent&&h.parent.send(e)},h.ProcessPictureMsg=function(e,t,n){var o=new Image;o.xcount=h.tilesReceived++;for(var a=h.tilesReceived,r=e.slice(4),i=0,s=[];5e4<r.byteLength-i;)s.push(String.fromCharCode.apply(null,r.slice(i,i+5e4))),i+=5e4;0<i?s.push(String.fromCharCode.apply(null,r.slice(i))):s.push(String.fromCharCode.apply(null,r)),o.src="data:image/jpeg;base64,"+btoa(s.join("")),o.onload=function(){if(null!=h.Canvas&&h.KillDraw<a&&0!=h.State)for(h.PendingOperations.push([a,2,o,t,n]);h.DoPendingOperations(););else h.PendingOperations.push([a,0])},o.error=function(){console.log("DecodeTileError")}},h.DoPendingOperations=function(){if(0==h.PendingOperations.length)return!1;for(var e=0;e<h.PendingOperations.length;e++){var t=h.PendingOperations[e];if(t[0]==h.TilesDrawn+1)return 1==t[1]?h.ProcessCopyRectMsg(t[2]):2==t[1]&&(h.Canvas.drawImage(t[2],h.rotX(t[3],t[4]),h.rotY(t[3],t[4])),delete t[2]),h.PendingOperations.splice(e,1),delete t,h.TilesDrawn++,h.TilesDrawn==h.tilesReceived&&h.KillDraw<h.TilesDrawn&&(h.KillDraw=h.TilesDrawn=h.tilesReceived=0),!0}return h.oldie&&0<h.PendingOperations.length&&h.TilesDrawn++,!1},h.ProcessCopyRectMsg=function(e){var t=((255&e.charCodeAt(0))<<8)+(255&e.charCodeAt(1)),n=((255&e.charCodeAt(2))<<8)+(255&e.charCodeAt(3)),o=((255&e.charCodeAt(4))<<8)+(255&e.charCodeAt(5)),a=((255&e.charCodeAt(6))<<8)+(255&e.charCodeAt(7)),r=((255&e.charCodeAt(8))<<8)+(255&e.charCodeAt(9)),i=((255&e.charCodeAt(10))<<8)+(255&e.charCodeAt(11));h.Canvas.drawImage(Canvas.canvas,t,n,r,i,o,a,r,i)},h.SendUnPause=function(){1<h.debugmode&&console.log("SendUnPause"),h.send(String.fromCharCode(0,8,0,5,0))},h.SendPause=function(){1<h.debugmode&&console.log("SendPause"),h.send(String.fromCharCode(0,8,0,5,1))},h.SendCompressionLevel=function(e,t,n,o){t&&(h.CompressionLevel=t),n&&(h.ScalingLevel=n),o&&(h.FrameRateTimer=o),h.send(String.fromCharCode(0,5,0,10,e,h.CompressionLevel)+h.shortToStr(h.ScalingLevel)+h.shortToStr(h.FrameRateTimer))},h.SendRefresh=function(){h.send(String.fromCharCode(0,6,0,4))},h.ProcessScreenMsg=function(e,t){if(0<h.debugmode&&console.log("ScreenSize: "+e+" x "+t),h.ScreenWidth!=e||h.ScreenHeight!=t){for(h.Canvas.setTransform(1,0,0,1,0,0),h.rotation=0,h.FirstDraw=!0,h.ScreenWidth=h.width=e,h.ScreenHeight=h.height=t,h.KillDraw=h.tilesReceived;0<h.PendingOperations.length;)h.PendingOperations.shift();h.SendCompressionLevel(1),h.SendUnPause(),null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId)}},h.ProcessBinaryCommand=function(e,t,n){var o,a;switch(3!=e&&4!=e&&7!=e||(o=(n[4]<<8)+n[5],a=(n[6]<<8)+n[7]),2<h.debugmode&&console.log("CMD",e,t,o,a),null!=h.recordedData&&(65e3<t?h.recordedData.push(v(2,1,h.shortToStr(27)+h.shortToStr(8)+h.intToStr(t)+h.shortToStr(e)+h.shortToStr(0)+h.shortToStr(0)+h.shortToStr(0)+String.fromCharCode.apply(null,n))):h.recordedData.push(v(2,1,String.fromCharCode.apply(null,n)))),e){case 3:h.FirstDraw&&h.onResize(),h.ProcessPictureMsg(n.slice(4),o,a);break;case 7:h.ProcessScreenMsg(o,a),h.SendKeyMsgKC(h.KeyAction.UP,16),h.SendKeyMsgKC(h.KeyAction.UP,17),h.SendKeyMsgKC(h.KeyAction.UP,18),h.SendKeyMsgKC(h.KeyAction.UP,91),h.SendKeyMsgKC(h.KeyAction.UP,92),h.SendKeyMsgKC(h.KeyAction.UP,16),h.send(String.fromCharCode(0,14,0,4));break;case 11:var r=0,i={},s=(n[4]<<8)+n[5];if(0<s){r=(n[6+2*s]<<8)+n[7+2*s];for(var c=0;c<s;c++){var u=(n[6+2*c]<<8)+n[7+2*c];i[u]=65535==u?"All Displays":"Display "+u}}h.displays=i,h.selectedDisplay=r,null!=h.onDisplayinfo&&h.onDisplayinfo(h,i,r);break;case 12:break;case 14:h.touchenabled=1,h.TouchArray={},null!=h.onTouchEnabledChanged&&h.onTouchEnabledChanged(h.touchenabled);break;case 15:h.TouchArray={};break;case 17:var l=String.fromCharCode.apply(null,data.slice(4));console.log("Got KVM Message: "+l),null!=h.onMessage&&h.onMessage(l,h);break;case 65:"."!=(l=String.fromCharCode.apply(null,data.slice(4)))[0]?(console.log(l),h.parent&&h.parent.setConsoleMessage&&h.parent.setConsoleMessage(l)):console.log("KVM: "+l.substring(1));break;case 88:if(5!=t)break;var d=n[4];S.length<d&&(d=0),p=S[d],g&&(h.CanvasId.style.cursor=p);break;default:console.log("Unknown command",e,t)}},h.MouseButton={NONE:0,LEFT:2,RIGHT:8,MIDDLE:32},h.KeyAction={NONE:0,DOWN:1,UP:2,SCROLL:3,EXUP:4,EXDOWN:5,DBLCLICK:6},h.InputType={KEY:1,MOUSE:2,CTRLALTDEL:10,TOUCH:15,KEYUNICODE:85},h.Alternate=0;var o={Pause:19,CapsLock:20,Space:32,Quote:222,Minus:189,NumpadMultiply:106,NumpadAdd:107,PrintScreen:44,Comma:188,NumpadSubtract:109,NumpadDecimal:110,Period:190,Slash:191,NumpadDivide:111,Semicolon:186,Equal:187,OSLeft:91,BracketLeft:219,OSRight:91,Backslash:220,BracketRight:221,ContextMenu:93,Backquote:192,NumLock:144,ScrollLock:145,Backspace:8,Tab:9,Enter:13,NumpadEnter:13,Escape:27,Delete:46,Home:36,PageUp:33,PageDown:34,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,End:35,Insert:45,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,ShiftLeft:16,ShiftRight:16,ControlLeft:17,ControlRight:17,AltLeft:18,AltRight:18,MetaLeft:91,MetaRight:92,VolumeMute:181};function v(e,t,n){var o=Date.now();return"number"==typeof n?(h.recordedSize+=n,h.shortToStr(e)+h.shortToStr(t)+h.intToStr(n)+h.intToStr(o>>32)+h.intToStr(32&o)):(h.recordedSize+=n.length,h.shortToStr(e)+h.shortToStr(t)+h.intToStr(n.length)+h.intToStr(o>>32)+h.intToStr(32&o)+n)}return h.SendKeyMsg=function(e,t){var n;null!=e&&((t=t||window.event).code&&0==h.localKeyMap?null!=(n=function(e){return e.code.startsWith("Key")&&4==e.code.length?e.code.charCodeAt(3):e.code.startsWith("Digit")&&6==e.code.length?e.code.charCodeAt(5):e.code.startsWith("Numpad")&&7==e.code.length?e.code.charCodeAt(6)+48:o[e.code]}(t))&&h.SendKeyMsgKC(e,n):(59==(n=t.keyCode)?n=186:173==n?n=189:61==n&&(n=187),h.SendKeyMsgKC(e,n)))},h.SendMessage=function(e){3==h.State&&h.send(String.fromCharCode(0,17)+h.shortToStr(4+e.length)+e)},h.SendKeyMsgKC=function(e,t){if(3==h.State)if("object"==typeof e)for(var n in e)h.SendKeyMsgKC(e[n][0],e[n][1]);else{if(1==e)-1==h.pressedKeys.indexOf(t)&&h.pressedKeys.unshift(t);else if(2==e){-1!=(n=h.pressedKeys.indexOf(t))&&h.pressedKeys.splice(n,1)}h.send(String.fromCharCode(0,h.InputType.KEY,0,6,e-1,t))}},h.SendStringUnicode=function(e){if(3==h.State)for(var t=0;t<e.length;t++)h.send(String.fromCharCode(0,h.InputType.KEYUNICODE,0,7,0)+ShortToStr(e.charCodeAt(t)))},h.SendKeyUnicode=function(e,t){3==h.State&&h.send(String.fromCharCode(0,h.InputType.KEYUNICODE,0,7,e-1)+ShortToStr(t))},h.sendcad=function(){h.SendCtrlAltDelMsg()},h.SendCtrlAltDelMsg=function(){3==h.State&&h.send(String.fromCharCode(0,h.InputType.CTRLALTDEL,0,4))},h.SendEscKey=function(){3==h.State&&h.send(String.fromCharCode(0,h.InputType.KEY,0,6,0,27,0,h.InputType.KEY,0,6,1,27))},h.SendStartMsg=function(){h.SendKeyMsgKC(h.KeyAction.EXDOWN,91),h.SendKeyMsgKC(h.KeyAction.EXUP,91)},h.SendCharmsMsg=function(){h.SendKeyMsgKC(h.KeyAction.EXDOWN,91),h.SendKeyMsgKC(h.KeyAction.DOWN,67),h.SendKeyMsgKC(h.KeyAction.UP,67),h.SendKeyMsgKC(h.KeyAction.EXUP,91)},h.SendTouchMsg1=function(e,t,n,o){3==h.State&&h.send(String.fromCharCode(0,h.InputType.TOUCH)+h.shortToStr(14)+String.fromCharCode(1,e)+h.intToStr(t)+h.shortToStr(n)+h.shortToStr(o))},h.SendTouchMsg2=function(e,t){var n,o="";for(var a in h.TouchArray)a==e?n=t:1==h.TouchArray[a].f?(n=65542,h.TouchArray[a].f=3,"START"+a):2==h.TouchArray[a].f?(n=262144,"STOP"+a):n=131078,o+=String.fromCharCode(a)+h.intToStr(n)+h.shortToStr(h.TouchArray[a].x)+h.shortToStr(h.TouchArray[a].y),2==h.TouchArray[a].f&&delete h.TouchArray[a];3==h.State&&h.send(String.fromCharCode(0,h.InputType.TOUCH)+h.shortToStr(5+o.length)+String.fromCharCode(2)+o),0==Object.keys(h.TouchArray).length&&null!=h.touchtimer&&(clearInterval(h.touchtimer),h.touchtimer=null)},h.SendMouseMsg=function(e,t){if(3==h.State&&null!=e&&null!=h.Canvas){if(!t)t=window.event;var n=h.Canvas.canvas.height/h.CanvasId.clientHeight,o=h.Canvas.canvas.width/h.CanvasId.clientWidth,a=h.GetPositionOfControl(h.Canvas.canvas),r=(t.pageX-a[0])*o,i=(t.pageY-a[1])*n;if(t.addx&&(r+=t.addx),t.addy&&(i+=t.addy),0<=r&&r<=h.Canvas.canvas.width&&0<=i&&i<=h.Canvas.canvas.height){var s=0,c=0;e==h.KeyAction.UP||e==h.KeyAction.DOWN?t.which?s=1==t.which?h.MouseButton.LEFT:2==t.which?h.MouseButton.MIDDLE:h.MouseButton.RIGHT:t.button&&(s=0==t.button?h.MouseButton.LEFT:1==t.button?h.MouseButton.MIDDLE:h.MouseButton.RIGHT):e==h.KeyAction.SCROLL&&(t.detail?c=120*t.detail*-1:t.wheelDelta&&(c=3*t.wheelDelta)),!0===h.SwapMouse&&(s==h.MouseButton.LEFT?s=h.MouseButton.RIGHT:s==h.MouseButton.RIGHT&&(s=h.MouseButton.LEFT));var u="";if(e==h.KeyAction.DBLCLICK)u=String.fromCharCode(0,h.InputType.MOUSE,0,10,0,136,r/256&255,255&r,i/256&255,255&i);else if(e==h.KeyAction.SCROLL){var l=0,d=0;d=c<0?(l=255-(Math.abs(c)>>8),255-(255&Math.abs(c))):(l=c>>8,255&c),u=String.fromCharCode(0,h.InputType.MOUSE,0,12,0,0,r/256&255,255&r,i/256&255,255&i,l,d)}else u=String.fromCharCode(0,h.InputType.MOUSE,0,10,0,e==h.KeyAction.DOWN?s:2*s&255,r/256&255,255&r,i/256&255,255&i);h.Action==h.KeyAction.NONE?0==h.Alternate||h.ipad?(h.send(u),h.Alternate=1):h.Alternate=0:h.send(u)}}},h.GetDisplayNumbers=function(){h.send(String.fromCharCode(0,11,0,4))},h.SetDisplay=function(e){h.send(String.fromCharCode(0,12,0,6,e>>8,255&e))},h.intToStr=function(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)},h.shortToStr=function(e){return String.fromCharCode(e>>8&255,255&e)},h.onResize=function(){0!=h.ScreenWidth&&0!=h.ScreenHeight&&(h.Canvas.canvas.width==h.ScreenWidth&&h.Canvas.canvas.height==h.ScreenHeight||(h.FirstDraw&&(h.Canvas.canvas.width=h.ScreenWidth,h.Canvas.canvas.height=h.ScreenHeight,h.Canvas.fillRect(0,0,h.ScreenWidth,h.ScreenHeight),null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId)),h.FirstDraw=!1,1<h.debugmode&&console.log("onResize: "+h.ScreenWidth+" x "+h.ScreenHeight)))},h.xxMouseInputGrab=!1,h.xxKeyInputGrab=!1,h.xxMouseMove=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.NONE,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxMouseUp=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.UP,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxMouseDown=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.DOWN,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxMouseDblClick=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.DBLCLICK,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxDOMMouseScroll=function(e){return 3!=h.State||(h.SendMouseMsg(h.KeyAction.SCROLL,e),!1)},h.xxMouseWheel=function(e){return 3!=h.State||(h.SendMouseMsg(h.KeyAction.SCROLL,e),!1)},h.xxKeyUp=function(e){return"Dead"!=e.key&&3==h.State&&(1==e.key.length&&1!=e.ctrlKey&&1!=e.altKey&&(0==h.remoteKeyMap||0<h.debugmode)?h.SendKeyUnicode(h.KeyAction.UP,e.key.charCodeAt(0)):h.SendKeyMsg(h.KeyAction.UP,e)),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxKeyDown=function(e){return"Dead"!=e.key&&3==h.State&&(1==e.key.length&&1!=e.ctrlKey&&1!=e.altKey&&(0==h.remoteKeyMap||0<h.debugmode)?h.SendKeyUnicode(h.KeyAction.DOWN,e.key.charCodeAt(0)):h.SendKeyMsg(h.KeyAction.DOWN,e)),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxKeyPress=function(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.handleKeys=function(e){return 1!=h.stopInput&&3==desktop.State&&h.xxKeyPress(e)},h.handleKeyUp=function(e){if(1==h.stopInput||3!=desktop.State)return!1;if(h.firstUpKeys.length<5&&(h.firstUpKeys.push(e.keyCode),5==h.firstUpKeys.length)){var t=h.firstUpKeys.join(",");"16,17,91,91,16"!=t&&"16,17,18,91,92"!=t||(h.stopInput=!0)}return h.xxKeyUp(e)},h.handleKeyDown=function(e){return 1!=h.stopInput&&3==desktop.State&&h.xxKeyDown(e)},h.handleReleaseKeys=function(){var e=JSON.parse(JSON.stringify(h.pressedKeys));for(var t in e)h.SendKeyMsgKC(h.KeyAction.UP,e[t])},h.mousedblclick=function(e){return 1!=h.stopInput&&h.xxMouseDblClick(e)},h.mousedown=function(e){return 1!=h.stopInput&&h.xxMouseDown(e)},h.mouseup=function(e){return 1!=h.stopInput&&h.xxMouseUp(e)},h.mousemove=function(e){return 1!=h.stopInput&&h.xxMouseMove(e)},h.mousewheel=function(e){return 1!=h.stopInput&&h.xxMouseWheel(e)},h.xxMsTouchEvent=function(e){if(4!=e.originalEvent.pointerType){if(e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),"MSPointerDown"==e.type||"MSPointerMove"==e.type||"MSPointerUp"==e.type){var t=0,n=e.originalEvent.pointerId%256,o=e.offsetX*(Canvas.canvas.width/h.CanvasId.clientWidth),a=e.offsetY*(Canvas.canvas.height/h.CanvasId.clientHeight);"MSPointerDown"==e.type?t=65542:"MSPointerMove"==e.type?t=131078:"MSPointerUp"==e.type&&(t=262144),h.TouchArray[n]||(h.TouchArray[n]={x:o,y:a}),h.SendTouchMsg2(n,t),"MSPointerUp"==e.type&&delete h.TouchArray[n]}else alert(e.type);return!0}},h.xxTouchStart=function(e){if(3==h.State)if(e.preventDefault&&e.preventDefault(),0==h.touchenabled||1==h.touchenabled){if(1<e.originalEvent.touches.length)return;var t=e.originalEvent.touches[0];e.which=1,h.LastX=e.pageX=t.pageX,h.LastY=e.pageY=t.pageY,h.SendMouseMsg(KeyAction.DOWN,e)}else{var n=h.GetPositionOfControl(Canvas.canvas);for(var o in e.originalEvent.changedTouches)if(e.originalEvent.changedTouches[o].identifier){var a=e.originalEvent.changedTouches[o].identifier%256;h.TouchArray[a]||(h.TouchArray[a]={x:(e.originalEvent.touches[o].pageX-n[0])*(Canvas.canvas.width/h.CanvasId.clientWidth),y:(e.originalEvent.touches[o].pageY-n[1])*(Canvas.canvas.height/h.CanvasId.clientHeight),f:1})}0<Object.keys(h.TouchArray).length&&null==touchtimer&&(h.touchtimer=setInterval(function(){h.SendTouchMsg2(256,0)},50))}},h.xxTouchMove=function(e){if(3==h.State)if(e.preventDefault&&e.preventDefault(),0==h.touchenabled||1==h.touchenabled){if(1<e.originalEvent.touches.length)return;var t=e.originalEvent.touches[0];e.which=1,h.LastX=e.pageX=t.pageX,h.LastY=e.pageY=t.pageY,h.SendMouseMsg(h.KeyAction.NONE,e)}else{var n=h.GetPositionOfControl(Canvas.canvas);for(var o in e.originalEvent.changedTouches)if(e.originalEvent.changedTouches[o].identifier){var a=e.originalEvent.changedTouches[o].identifier%256;h.TouchArray[a]&&(h.TouchArray[a].x=(e.originalEvent.touches[o].pageX-n[0])*(h.Canvas.canvas.width/h.CanvasId.clientWidth),h.TouchArray[a].y=(e.originalEvent.touches[o].pageY-n[1])*(h.Canvas.canvas.height/h.CanvasId.clientHeight))}}},h.xxTouchEnd=function(e){if(3==h.State)if(e.preventDefault&&e.preventDefault(),0==h.touchenabled||1==h.touchenabled){if(1<e.originalEvent.touches.length)return;e.which=1,e.pageX=LastX,e.pageY=LastY,h.SendMouseMsg(KeyAction.UP,e)}else for(var t in e.originalEvent.changedTouches)if(e.originalEvent.changedTouches[t].identifier){var n=e.originalEvent.changedTouches[t].identifier%256;h.TouchArray[n]&&(h.TouchArray[n].f=2)}},h.GrabMouseInput=function(){if(1!=h.xxMouseInputGrab){var e=h.CanvasId;e.onmousemove=h.xxMouseMove,e.onmouseup=h.xxMouseUp,e.onmousedown=h.xxMouseDown,e.touchstart=h.xxTouchStart,e.touchmove=h.xxTouchMove,e.touchend=h.xxTouchEnd,e.MSPointerDown=h.xxMsTouchEvent,e.MSPointerMove=h.xxMsTouchEvent,e.MSPointerUp=h.xxMsTouchEvent,navigator.userAgent.match(/mozilla/i)?e.DOMMouseScroll=h.xxDOMMouseScroll:e.onmousewheel=h.xxMouseWheel,h.xxMouseInputGrab=!0}},h.UnGrabMouseInput=function(){if(0!=h.xxMouseInputGrab){var e=h.CanvasId;e.onmousemove=null,e.onmouseup=null,e.onmousedown=null,e.touchstart=null,e.touchmove=null,e.touchend=null,e.MSPointerDown=null,e.MSPointerMove=null,e.MSPointerUp=null,navigator.userAgent.match(/mozilla/i)?e.DOMMouseScroll=null:e.onmousewheel=null,h.xxMouseInputGrab=!1}},h.GrabKeyInput=function(){1!=h.xxKeyInputGrab&&(document.onkeyup=h.xxKeyUp,document.onkeydown=h.xxKeyDown,document.onkeypress=h.xxKeyPress,h.xxKeyInputGrab=!0)},h.UnGrabKeyInput=function(){0!=h.xxKeyInputGrab&&(document.onkeyup=null,document.onkeydown=null,document.onkeypress=null,h.xxKeyInputGrab=!1)},h.GetPositionOfControl=function(e){var t=Array(2);for(t[0]=t[1]=0;e;)t[0]+=e.offsetLeft,t[1]+=e.offsetTop,e=e.offsetParent;return t},h.crotX=function(e,t){return 0==h.rotation?e:1==h.rotation?t:2==h.rotation?h.Canvas.canvas.width-e:3==h.rotation?h.Canvas.canvas.height-t:void 0},h.crotY=function(e,t){return 0==h.rotation?t:1==h.rotation?h.Canvas.canvas.width-e:2==h.rotation?h.Canvas.canvas.height-t:3==h.rotation?e:void 0},h.rotX=function(e,t){return 0==h.rotation||1==h.rotation?e:2==h.rotation?e-h.Canvas.canvas.width:3==h.rotation?e-h.Canvas.canvas.height:void 0},h.rotY=function(e,t){return 0==h.rotation||3==h.rotation?t:1==h.rotation?t-h.Canvas.canvas.width:2==h.rotation?t-h.Canvas.canvas.height:void 0},h.tcanvas=null,h.setRotation=function(e){for(;e<0;)e+=4;var t=e%4;if(t==h.rotation)return!0;var n=h.Canvas.canvas.width,o=h.Canvas.canvas.height;1!=h.rotation&&3!=h.rotation||(n=h.Canvas.canvas.height,o=h.Canvas.canvas.width),null==h.tcanvas&&(h.tcanvas=document.createElement("canvas"));var a=h.tcanvas.getContext("2d");return a.setTransform(1,0,0,1,0,0),a.canvas.width=n,a.canvas.height=o,a.rotate(-90*h.rotation*Math.PI/180),0==h.rotation&&a.drawImage(h.Canvas.canvas,0,0),1==h.rotation&&a.drawImage(h.Canvas.canvas,-h.Canvas.canvas.width,0),2==h.rotation&&a.drawImage(h.Canvas.canvas,-h.Canvas.canvas.width,-h.Canvas.canvas.height),3==h.rotation&&a.drawImage(h.Canvas.canvas,0,-h.Canvas.canvas.height),0!=h.rotation&&2!=h.rotation||(h.Canvas.canvas.height=n,h.Canvas.canvas.width=o),1!=h.rotation&&3!=h.rotation||(h.Canvas.canvas.height=o,h.Canvas.canvas.width=n),h.Canvas.setTransform(1,0,0,1,0,0),h.Canvas.rotate(90*t*Math.PI/180),h.rotation=t,h.Canvas.drawImage(h.tcanvas,h.rotX(0,0),h.rotY(0,0)),h.ScreenWidth=h.Canvas.canvas.width,h.ScreenHeight=h.Canvas.canvas.height,null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId),!0},h.StartRecording=function(){null==h.recordedData&&h.CanvasId.toBlob(function(e){var i=new FileReader;i.readAsArrayBuffer(e),i.onload=function(e){for(var t="",n=new Uint8Array(i.result),o=n.byteLength,a=0;a<o;a++)t+=String.fromCharCode(n[a]);h.recordedData=[],h.recordedStart=Date.now(),h.recordedSize=0,h.recordedData.push(v(1,0,JSON.stringify({magic:"MeshCentralRelaySession",ver:1,time:(new Date).toLocaleString(),protocol:2}))),h.recordedData.push(v(2,1,h.shortToStr(7)+h.shortToStr(8)+h.shortToStr(h.ScreenWidth)+h.shortToStr(h.ScreenHeight)));var r=8+t.length;65e3<r?h.recordedData.push(v(2,1,h.shortToStr(27)+h.shortToStr(8)+h.intToStr(r)+h.shortToStr(3)+h.shortToStr(0)+h.shortToStr(0)+h.shortToStr(0)+t)):h.recordedData.push(v(2,1,h.shortToStr(3)+h.shortToStr(r)+h.shortToStr(0)+h.shortToStr(0)+t))}})},h.StopRecording=function(){if(null!=h.recordedData){var e=h.recordedData;return e.push(v(3,0,"MeshCentralMCREC")),delete h.recordedData,delete h.recordedStart,delete h.recordedSize,e}},h.MuchTheSame=function(e,t){return Math.abs(e-t)<4},h.Debug=function(e){console.log(e)},h.getIEVersion=function(){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent;null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(t)&&(e=parseFloat(RegExp.$1))}return e},h.haltEvent=function(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h}
\ No newline at end of file
1
+Uint8Array.prototype.slice||Object.defineProperty(Uint8Array.prototype,"slice",{value:function(e,t){return new Uint8Array(Array.prototype.slice.call(this,e,t))}});var CreateAgentRemoteDesktop=function(e,t){var h={};"string"==typeof(h.CanvasId=e)&&(h.CanvasId=Q(e)),h.Canvas=h.CanvasId.getContext("2d"),h.scrolldiv=t,h.State=0,h.PendingOperations=[],h.tilesReceived=0,h.TilesDrawn=0,h.KillDraw=0,h.ipad=!1,h.tabletKeyboardVisible=!1,h.LastX=0,h.LastY=0,h.touchenabled=0,h.submenuoffset=0,h.touchtimer=null,h.TouchArray={},h.connectmode=0,h.connectioncount=0,h.rotation=0,h.protocol=2,h.debugmode=0,h.firstUpKeys=[],h.stopInput=!1,h.localKeyMap=!0,h.remoteKeyMap=!1,h.pressedKeys=[],h.sessionid=0,h.username,h.oldie=!1,h.CompressionLevel=50,h.ScalingLevel=1024,h.FrameRateTimer=100,h.SwapMouse=!1,h.FirstDraw=!1,h.ScreenWidth=960,h.ScreenHeight=701,h.width=960,h.height=960,h.displays=null,h.selectedDisplay=null,h.onScreenSizeChange=null,h.onMessage=null,h.onConnectCountChanged=null,h.onDebugMessage=null,h.onTouchEnabledChanged=null,h.onDisplayinfo=null;var g=!(h.accumulator=null),p="default";h.mouseCursorActive=function(e){g!=e&&(g=e,h.CanvasId.style.cursor=1==e?p:"default")};var S=["default","progress","crosshair","pointer","help","text","no-drop","move","nesw-resize","ns-resize","nwse-resize","w-resize","alias","wait","none","not-allowed","col-resize","row-resize","copy","zoom-in","zoom-out"];h.Start=function(){h.State=0,h.accumulator=null},h.Stop=function(){h.setRotation(0),h.UnGrabKeyInput(),h.UnGrabMouseInput(),h.touchenabled=0,null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId),h.Canvas.clearRect(0,0,h.CanvasId.width,h.CanvasId.height)},h.xxStateChange=function(e){if(h.State!=e)switch(h.State=e,h.CanvasId.style.cursor="default",e){case 0:h.Stop()}},h.send=function(e){2<h.debugmode&&console.log("KSend("+e.length+"): "+rstr2hex(e)),null!=h.parent&&h.parent.send(e)},h.ProcessPictureMsg=function(e,t,n){var o=new Image;o.xcount=h.tilesReceived++;for(var a=h.tilesReceived,r=e.slice(4),i=0,s=[];5e4<r.byteLength-i;)s.push(String.fromCharCode.apply(null,r.slice(i,i+5e4))),i+=5e4;0<i?s.push(String.fromCharCode.apply(null,r.slice(i))):s.push(String.fromCharCode.apply(null,r)),o.src="data:image/jpeg;base64,"+btoa(s.join("")),o.onload=function(){if(null!=h.Canvas&&h.KillDraw<a&&0!=h.State)for(h.PendingOperations.push([a,2,o,t,n]);h.DoPendingOperations(););else h.PendingOperations.push([a,0])},o.error=function(){console.log("DecodeTileError")}},h.DoPendingOperations=function(){if(0==h.PendingOperations.length)return!1;for(var e=0;e<h.PendingOperations.length;e++){var t=h.PendingOperations[e];if(t[0]==h.TilesDrawn+1)return 1==t[1]?h.ProcessCopyRectMsg(t[2]):2==t[1]&&(h.Canvas.drawImage(t[2],h.rotX(t[3],t[4]),h.rotY(t[3],t[4])),delete t[2]),h.PendingOperations.splice(e,1),delete t,h.TilesDrawn++,h.TilesDrawn==h.tilesReceived&&h.KillDraw<h.TilesDrawn&&(h.KillDraw=h.TilesDrawn=h.tilesReceived=0),!0}return h.oldie&&0<h.PendingOperations.length&&h.TilesDrawn++,!1},h.ProcessCopyRectMsg=function(e){var t=((255&e.charCodeAt(0))<<8)+(255&e.charCodeAt(1)),n=((255&e.charCodeAt(2))<<8)+(255&e.charCodeAt(3)),o=((255&e.charCodeAt(4))<<8)+(255&e.charCodeAt(5)),a=((255&e.charCodeAt(6))<<8)+(255&e.charCodeAt(7)),r=((255&e.charCodeAt(8))<<8)+(255&e.charCodeAt(9)),i=((255&e.charCodeAt(10))<<8)+(255&e.charCodeAt(11));h.Canvas.drawImage(Canvas.canvas,t,n,r,i,o,a,r,i)},h.SendUnPause=function(){1<h.debugmode&&console.log("SendUnPause"),h.send(String.fromCharCode(0,8,0,5,0))},h.SendPause=function(){1<h.debugmode&&console.log("SendPause"),h.send(String.fromCharCode(0,8,0,5,1))},h.SendCompressionLevel=function(e,t,n,o){t&&(h.CompressionLevel=t),n&&(h.ScalingLevel=n),o&&(h.FrameRateTimer=o),h.send(String.fromCharCode(0,5,0,10,e,h.CompressionLevel)+h.shortToStr(h.ScalingLevel)+h.shortToStr(h.FrameRateTimer))},h.SendRefresh=function(){h.send(String.fromCharCode(0,6,0,4))},h.ProcessScreenMsg=function(e,t){if(0<h.debugmode&&console.log("ScreenSize: "+e+" x "+t),h.ScreenWidth!=e||h.ScreenHeight!=t){for(h.Canvas.setTransform(1,0,0,1,0,0),h.rotation=0,h.FirstDraw=!0,h.ScreenWidth=h.width=e,h.ScreenHeight=h.height=t,h.KillDraw=h.tilesReceived;0<h.PendingOperations.length;)h.PendingOperations.shift();h.SendCompressionLevel(1),h.SendUnPause(),null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId)}},h.ProcessBinaryCommand=function(e,t,n){var o,a;switch(3!=e&&4!=e&&7!=e||(o=(n[4]<<8)+n[5],a=(n[6]<<8)+n[7]),2<h.debugmode&&console.log("CMD",e,t,o,a),null!=h.recordedData&&(65e3<t?h.recordedData.push(v(2,1,h.shortToStr(27)+h.shortToStr(8)+h.intToStr(t)+h.shortToStr(e)+h.shortToStr(0)+h.shortToStr(0)+h.shortToStr(0)+String.fromCharCode.apply(null,n))):h.recordedData.push(v(2,1,String.fromCharCode.apply(null,n)))),e){case 3:h.FirstDraw&&h.onResize(),h.ProcessPictureMsg(n.slice(4),o,a);break;case 7:h.ProcessScreenMsg(o,a),h.SendKeyMsgKC(h.KeyAction.UP,16),h.SendKeyMsgKC(h.KeyAction.UP,17),h.SendKeyMsgKC(h.KeyAction.UP,18),h.SendKeyMsgKC(h.KeyAction.UP,91),h.SendKeyMsgKC(h.KeyAction.UP,92),h.SendKeyMsgKC(h.KeyAction.UP,16),h.send(String.fromCharCode(0,14,0,4));break;case 11:var r=0,i={},s=(n[4]<<8)+n[5];if(0<s){r=(n[6+2*s]<<8)+n[7+2*s];for(var c=0;c<s;c++){var u=(n[6+2*c]<<8)+n[7+2*c];i[u]=65535==u?"All Displays":"Display "+u}}h.displays=i,h.selectedDisplay=r,null!=h.onDisplayinfo&&h.onDisplayinfo(h,i,r);break;case 12:break;case 14:h.touchenabled=1,h.TouchArray={},null!=h.onTouchEnabledChanged&&h.onTouchEnabledChanged(h.touchenabled);break;case 15:h.TouchArray={};break;case 17:var l=String.fromCharCode.apply(null,data.slice(4));console.log("Got KVM Message: "+l),null!=h.onMessage&&h.onMessage(l,h);break;case 65:"."!=(l=String.fromCharCode.apply(null,data.slice(4)))[0]?(console.log(l),h.parent&&h.parent.setConsoleMessage&&h.parent.setConsoleMessage(l)):console.log("KVM: "+l.substring(1));break;case 88:if(5!=t)break;var d=n[4];S.length<d&&(d=0),p=S[d],g&&(h.CanvasId.style.cursor=p);break;default:console.log("Unknown command",e,t)}},h.MouseButton={NONE:0,LEFT:2,RIGHT:8,MIDDLE:32},h.KeyAction={NONE:0,DOWN:1,UP:2,SCROLL:3,EXUP:4,EXDOWN:5,DBLCLICK:6},h.InputType={KEY:1,MOUSE:2,CTRLALTDEL:10,TOUCH:15,KEYUNICODE:85},h.Alternate=0;var o={Pause:19,CapsLock:20,Space:32,Quote:222,Minus:189,NumpadMultiply:106,NumpadAdd:107,PrintScreen:44,Comma:188,NumpadSubtract:109,NumpadDecimal:110,Period:190,Slash:191,NumpadDivide:111,Semicolon:186,Equal:187,OSLeft:91,BracketLeft:219,OSRight:91,Backslash:220,BracketRight:221,ContextMenu:93,Backquote:192,NumLock:144,ScrollLock:145,Backspace:8,Tab:9,Enter:13,NumpadEnter:13,Escape:27,Delete:46,Home:36,PageUp:33,PageDown:34,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,End:35,Insert:45,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,ShiftLeft:16,ShiftRight:16,ControlLeft:17,ControlRight:17,AltLeft:18,AltRight:18,MetaLeft:91,MetaRight:92,VolumeMute:181};function v(e,t,n){var o=Date.now();return"number"==typeof n?(h.recordedSize+=n,h.shortToStr(e)+h.shortToStr(t)+h.intToStr(n)+h.intToStr(o>>32)+h.intToStr(32&o)):(h.recordedSize+=n.length,h.shortToStr(e)+h.shortToStr(t)+h.intToStr(n.length)+h.intToStr(o>>32)+h.intToStr(32&o)+n)}return h.SendKeyMsg=function(e,t){var n;null!=e&&((t=t||window.event).code&&0==h.localKeyMap?null!=(n=function(e){return e.code.startsWith("Key")&&4==e.code.length?e.code.charCodeAt(3):e.code.startsWith("Digit")&&6==e.code.length?e.code.charCodeAt(5):e.code.startsWith("Numpad")&&7==e.code.length?e.code.charCodeAt(6)+48:o[e.code]}(t))&&h.SendKeyMsgKC(e,n):(59==(n=t.keyCode)?n=186:173==n?n=189:61==n&&(n=187),h.SendKeyMsgKC(e,n)))},h.SendMessage=function(e){3==h.State&&h.send(String.fromCharCode(0,17)+h.shortToStr(4+e.length)+e)},h.SendKeyMsgKC=function(e,t){if(3==h.State)if("object"==typeof e)for(var n in e)h.SendKeyMsgKC(e[n][0],e[n][1]);else{if(1==e)-1==h.pressedKeys.indexOf(t)&&h.pressedKeys.unshift(t);else if(2==e){-1!=(n=h.pressedKeys.indexOf(t))&&h.pressedKeys.splice(n,1)}h.send(String.fromCharCode(0,h.InputType.KEY,0,6,e-1,t))}},h.SendStringUnicode=function(e){if(3==h.State)for(var t=0;t<e.length;t++)h.send(String.fromCharCode(0,h.InputType.KEYUNICODE,0,7,0)+ShortToStr(e.charCodeAt(t)))},h.SendKeyUnicode=function(e,t){3==h.State&&(0<h.debugmode&&console.log("Sending UnicodeKey "+t),h.send(String.fromCharCode(0,h.InputType.KEYUNICODE,0,7,e-1)+ShortToStr(t)))},h.sendcad=function(){h.SendCtrlAltDelMsg()},h.SendCtrlAltDelMsg=function(){3==h.State&&h.send(String.fromCharCode(0,h.InputType.CTRLALTDEL,0,4))},h.SendEscKey=function(){3==h.State&&h.send(String.fromCharCode(0,h.InputType.KEY,0,6,0,27,0,h.InputType.KEY,0,6,1,27))},h.SendStartMsg=function(){h.SendKeyMsgKC(h.KeyAction.EXDOWN,91),h.SendKeyMsgKC(h.KeyAction.EXUP,91)},h.SendCharmsMsg=function(){h.SendKeyMsgKC(h.KeyAction.EXDOWN,91),h.SendKeyMsgKC(h.KeyAction.DOWN,67),h.SendKeyMsgKC(h.KeyAction.UP,67),h.SendKeyMsgKC(h.KeyAction.EXUP,91)},h.SendTouchMsg1=function(e,t,n,o){3==h.State&&h.send(String.fromCharCode(0,h.InputType.TOUCH)+h.shortToStr(14)+String.fromCharCode(1,e)+h.intToStr(t)+h.shortToStr(n)+h.shortToStr(o))},h.SendTouchMsg2=function(e,t){var n,o="";for(var a in h.TouchArray)a==e?n=t:1==h.TouchArray[a].f?(n=65542,h.TouchArray[a].f=3,"START"+a):2==h.TouchArray[a].f?(n=262144,"STOP"+a):n=131078,o+=String.fromCharCode(a)+h.intToStr(n)+h.shortToStr(h.TouchArray[a].x)+h.shortToStr(h.TouchArray[a].y),2==h.TouchArray[a].f&&delete h.TouchArray[a];3==h.State&&h.send(String.fromCharCode(0,h.InputType.TOUCH)+h.shortToStr(5+o.length)+String.fromCharCode(2)+o),0==Object.keys(h.TouchArray).length&&null!=h.touchtimer&&(clearInterval(h.touchtimer),h.touchtimer=null)},h.SendMouseMsg=function(e,t){if(3==h.State&&null!=e&&null!=h.Canvas){if(!t)t=window.event;var n=h.Canvas.canvas.height/h.CanvasId.clientHeight,o=h.Canvas.canvas.width/h.CanvasId.clientWidth,a=h.GetPositionOfControl(h.Canvas.canvas),r=(t.pageX-a[0])*o,i=(t.pageY-a[1])*n;if(t.addx&&(r+=t.addx),t.addy&&(i+=t.addy),0<=r&&r<=h.Canvas.canvas.width&&0<=i&&i<=h.Canvas.canvas.height){var s=0,c=0;e==h.KeyAction.UP||e==h.KeyAction.DOWN?t.which?s=1==t.which?h.MouseButton.LEFT:2==t.which?h.MouseButton.MIDDLE:h.MouseButton.RIGHT:t.button&&(s=0==t.button?h.MouseButton.LEFT:1==t.button?h.MouseButton.MIDDLE:h.MouseButton.RIGHT):e==h.KeyAction.SCROLL&&(t.detail?c=120*t.detail*-1:t.wheelDelta&&(c=3*t.wheelDelta)),!0===h.SwapMouse&&(s==h.MouseButton.LEFT?s=h.MouseButton.RIGHT:s==h.MouseButton.RIGHT&&(s=h.MouseButton.LEFT));var u="";if(e==h.KeyAction.DBLCLICK)u=String.fromCharCode(0,h.InputType.MOUSE,0,10,0,136,r/256&255,255&r,i/256&255,255&i);else if(e==h.KeyAction.SCROLL){var l=0,d=0;d=c<0?(l=255-(Math.abs(c)>>8),255-(255&Math.abs(c))):(l=c>>8,255&c),u=String.fromCharCode(0,h.InputType.MOUSE,0,12,0,0,r/256&255,255&r,i/256&255,255&i,l,d)}else u=String.fromCharCode(0,h.InputType.MOUSE,0,10,0,e==h.KeyAction.DOWN?s:2*s&255,r/256&255,255&r,i/256&255,255&i);h.Action==h.KeyAction.NONE?0==h.Alternate||h.ipad?(h.send(u),h.Alternate=1):h.Alternate=0:h.send(u)}}},h.GetDisplayNumbers=function(){h.send(String.fromCharCode(0,11,0,4))},h.SetDisplay=function(e){h.send(String.fromCharCode(0,12,0,6,e>>8,255&e))},h.intToStr=function(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)},h.shortToStr=function(e){return String.fromCharCode(e>>8&255,255&e)},h.onResize=function(){0!=h.ScreenWidth&&0!=h.ScreenHeight&&(h.Canvas.canvas.width==h.ScreenWidth&&h.Canvas.canvas.height==h.ScreenHeight||(h.FirstDraw&&(h.Canvas.canvas.width=h.ScreenWidth,h.Canvas.canvas.height=h.ScreenHeight,h.Canvas.fillRect(0,0,h.ScreenWidth,h.ScreenHeight),null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId)),h.FirstDraw=!1,1<h.debugmode&&console.log("onResize: "+h.ScreenWidth+" x "+h.ScreenHeight)))},h.xxMouseInputGrab=!1,h.xxKeyInputGrab=!1,h.xxMouseMove=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.NONE,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxMouseUp=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.UP,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxMouseDown=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.DOWN,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxMouseDblClick=function(e){return 3==h.State&&h.SendMouseMsg(h.KeyAction.DBLCLICK,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxDOMMouseScroll=function(e){return 3!=h.State||(h.SendMouseMsg(h.KeyAction.SCROLL,e),!1)},h.xxMouseWheel=function(e){return 3!=h.State||(h.SendMouseMsg(h.KeyAction.SCROLL,e),!1)},h.xxKeyUp=function(e){return"Dead"!=e.key&&3==h.State&&(1==e.key.length&&1!=e.ctrlKey&&1!=e.altKey&&(0==h.remoteKeyMap||0<h.debugmode)?h.SendKeyUnicode(h.KeyAction.UP,e.key.charCodeAt(0)):h.SendKeyMsg(h.KeyAction.UP,e)),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxKeyDown=function(e){if("Dead"!=e.key&&3==h.State&&(1!=e.key.length||1==e.ctrlKey||1==e.altKey||!(0==h.remoteKeyMap||0<h.debugmode)))return h.SendKeyMsg(h.KeyAction.DOWN,e),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.xxKeyPress=function(e){return"Dead"!=e.key&&3==h.State&&1==e.key.length&&1!=e.ctrlKey&&1!=e.altKey&&(0==h.remoteKeyMap||0<h.debugmode)&&h.SendKeyUnicode(h.KeyAction.DOWN,e.key.charCodeAt(0)),e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h.handleKeys=function(e){return 1!=h.stopInput&&3==desktop.State&&h.xxKeyPress(e)},h.handleKeyUp=function(e){if(1==h.stopInput||3!=desktop.State)return!1;if(h.firstUpKeys.length<5&&(h.firstUpKeys.push(e.keyCode),5==h.firstUpKeys.length)){var t=h.firstUpKeys.join(",");"16,17,91,91,16"!=t&&"16,17,18,91,92"!=t||(h.stopInput=!0)}return h.xxKeyUp(e)},h.handleKeyDown=function(e){return 1!=h.stopInput&&3==desktop.State&&h.xxKeyDown(e)},h.handleReleaseKeys=function(){var e=JSON.parse(JSON.stringify(h.pressedKeys));for(var t in e)h.SendKeyMsgKC(h.KeyAction.UP,e[t])},h.mousedblclick=function(e){return 1!=h.stopInput&&h.xxMouseDblClick(e)},h.mousedown=function(e){return 1!=h.stopInput&&h.xxMouseDown(e)},h.mouseup=function(e){return 1!=h.stopInput&&h.xxMouseUp(e)},h.mousemove=function(e){return 1!=h.stopInput&&h.xxMouseMove(e)},h.mousewheel=function(e){return 1!=h.stopInput&&h.xxMouseWheel(e)},h.xxMsTouchEvent=function(e){if(4!=e.originalEvent.pointerType){if(e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),"MSPointerDown"==e.type||"MSPointerMove"==e.type||"MSPointerUp"==e.type){var t=0,n=e.originalEvent.pointerId%256,o=e.offsetX*(Canvas.canvas.width/h.CanvasId.clientWidth),a=e.offsetY*(Canvas.canvas.height/h.CanvasId.clientHeight);"MSPointerDown"==e.type?t=65542:"MSPointerMove"==e.type?t=131078:"MSPointerUp"==e.type&&(t=262144),h.TouchArray[n]||(h.TouchArray[n]={x:o,y:a}),h.SendTouchMsg2(n,t),"MSPointerUp"==e.type&&delete h.TouchArray[n]}else alert(e.type);return!0}},h.xxTouchStart=function(e){if(3==h.State)if(e.preventDefault&&e.preventDefault(),0==h.touchenabled||1==h.touchenabled){if(1<e.originalEvent.touches.length)return;var t=e.originalEvent.touches[0];e.which=1,h.LastX=e.pageX=t.pageX,h.LastY=e.pageY=t.pageY,h.SendMouseMsg(KeyAction.DOWN,e)}else{var n=h.GetPositionOfControl(Canvas.canvas);for(var o in e.originalEvent.changedTouches)if(e.originalEvent.changedTouches[o].identifier){var a=e.originalEvent.changedTouches[o].identifier%256;h.TouchArray[a]||(h.TouchArray[a]={x:(e.originalEvent.touches[o].pageX-n[0])*(Canvas.canvas.width/h.CanvasId.clientWidth),y:(e.originalEvent.touches[o].pageY-n[1])*(Canvas.canvas.height/h.CanvasId.clientHeight),f:1})}0<Object.keys(h.TouchArray).length&&null==touchtimer&&(h.touchtimer=setInterval(function(){h.SendTouchMsg2(256,0)},50))}},h.xxTouchMove=function(e){if(3==h.State)if(e.preventDefault&&e.preventDefault(),0==h.touchenabled||1==h.touchenabled){if(1<e.originalEvent.touches.length)return;var t=e.originalEvent.touches[0];e.which=1,h.LastX=e.pageX=t.pageX,h.LastY=e.pageY=t.pageY,h.SendMouseMsg(h.KeyAction.NONE,e)}else{var n=h.GetPositionOfControl(Canvas.canvas);for(var o in e.originalEvent.changedTouches)if(e.originalEvent.changedTouches[o].identifier){var a=e.originalEvent.changedTouches[o].identifier%256;h.TouchArray[a]&&(h.TouchArray[a].x=(e.originalEvent.touches[o].pageX-n[0])*(h.Canvas.canvas.width/h.CanvasId.clientWidth),h.TouchArray[a].y=(e.originalEvent.touches[o].pageY-n[1])*(h.Canvas.canvas.height/h.CanvasId.clientHeight))}}},h.xxTouchEnd=function(e){if(3==h.State)if(e.preventDefault&&e.preventDefault(),0==h.touchenabled||1==h.touchenabled){if(1<e.originalEvent.touches.length)return;e.which=1,e.pageX=LastX,e.pageY=LastY,h.SendMouseMsg(KeyAction.UP,e)}else for(var t in e.originalEvent.changedTouches)if(e.originalEvent.changedTouches[t].identifier){var n=e.originalEvent.changedTouches[t].identifier%256;h.TouchArray[n]&&(h.TouchArray[n].f=2)}},h.GrabMouseInput=function(){if(1!=h.xxMouseInputGrab){var e=h.CanvasId;e.onmousemove=h.xxMouseMove,e.onmouseup=h.xxMouseUp,e.onmousedown=h.xxMouseDown,e.touchstart=h.xxTouchStart,e.touchmove=h.xxTouchMove,e.touchend=h.xxTouchEnd,e.MSPointerDown=h.xxMsTouchEvent,e.MSPointerMove=h.xxMsTouchEvent,e.MSPointerUp=h.xxMsTouchEvent,navigator.userAgent.match(/mozilla/i)?e.DOMMouseScroll=h.xxDOMMouseScroll:e.onmousewheel=h.xxMouseWheel,h.xxMouseInputGrab=!0}},h.UnGrabMouseInput=function(){if(0!=h.xxMouseInputGrab){var e=h.CanvasId;e.onmousemove=null,e.onmouseup=null,e.onmousedown=null,e.touchstart=null,e.touchmove=null,e.touchend=null,e.MSPointerDown=null,e.MSPointerMove=null,e.MSPointerUp=null,navigator.userAgent.match(/mozilla/i)?e.DOMMouseScroll=null:e.onmousewheel=null,h.xxMouseInputGrab=!1}},h.GrabKeyInput=function(){1!=h.xxKeyInputGrab&&(document.onkeyup=h.xxKeyUp,document.onkeydown=h.xxKeyDown,document.onkeypress=h.xxKeyPress,h.xxKeyInputGrab=!0)},h.UnGrabKeyInput=function(){0!=h.xxKeyInputGrab&&(document.onkeyup=null,document.onkeydown=null,document.onkeypress=null,h.xxKeyInputGrab=!1)},h.GetPositionOfControl=function(e){var t=Array(2);for(t[0]=t[1]=0;e;)t[0]+=e.offsetLeft,t[1]+=e.offsetTop,e=e.offsetParent;return t},h.crotX=function(e,t){return 0==h.rotation?e:1==h.rotation?t:2==h.rotation?h.Canvas.canvas.width-e:3==h.rotation?h.Canvas.canvas.height-t:void 0},h.crotY=function(e,t){return 0==h.rotation?t:1==h.rotation?h.Canvas.canvas.width-e:2==h.rotation?h.Canvas.canvas.height-t:3==h.rotation?e:void 0},h.rotX=function(e,t){return 0==h.rotation||1==h.rotation?e:2==h.rotation?e-h.Canvas.canvas.width:3==h.rotation?e-h.Canvas.canvas.height:void 0},h.rotY=function(e,t){return 0==h.rotation||3==h.rotation?t:1==h.rotation?t-h.Canvas.canvas.width:2==h.rotation?t-h.Canvas.canvas.height:void 0},h.tcanvas=null,h.setRotation=function(e){for(;e<0;)e+=4;var t=e%4;if(t==h.rotation)return!0;var n=h.Canvas.canvas.width,o=h.Canvas.canvas.height;1!=h.rotation&&3!=h.rotation||(n=h.Canvas.canvas.height,o=h.Canvas.canvas.width),null==h.tcanvas&&(h.tcanvas=document.createElement("canvas"));var a=h.tcanvas.getContext("2d");return a.setTransform(1,0,0,1,0,0),a.canvas.width=n,a.canvas.height=o,a.rotate(-90*h.rotation*Math.PI/180),0==h.rotation&&a.drawImage(h.Canvas.canvas,0,0),1==h.rotation&&a.drawImage(h.Canvas.canvas,-h.Canvas.canvas.width,0),2==h.rotation&&a.drawImage(h.Canvas.canvas,-h.Canvas.canvas.width,-h.Canvas.canvas.height),3==h.rotation&&a.drawImage(h.Canvas.canvas,0,-h.Canvas.canvas.height),0!=h.rotation&&2!=h.rotation||(h.Canvas.canvas.height=n,h.Canvas.canvas.width=o),1!=h.rotation&&3!=h.rotation||(h.Canvas.canvas.height=o,h.Canvas.canvas.width=n),h.Canvas.setTransform(1,0,0,1,0,0),h.Canvas.rotate(90*t*Math.PI/180),h.rotation=t,h.Canvas.drawImage(h.tcanvas,h.rotX(0,0),h.rotY(0,0)),h.ScreenWidth=h.Canvas.canvas.width,h.ScreenHeight=h.Canvas.canvas.height,null!=h.onScreenSizeChange&&h.onScreenSizeChange(h,h.ScreenWidth,h.ScreenHeight,h.CanvasId),!0},h.StartRecording=function(){null==h.recordedData&&h.CanvasId.toBlob(function(e){var i=new FileReader;i.readAsArrayBuffer(e),i.onload=function(e){for(var t="",n=new Uint8Array(i.result),o=n.byteLength,a=0;a<o;a++)t+=String.fromCharCode(n[a]);h.recordedData=[],h.recordedStart=Date.now(),h.recordedSize=0,h.recordedData.push(v(1,0,JSON.stringify({magic:"MeshCentralRelaySession",ver:1,time:(new Date).toLocaleString(),protocol:2}))),h.recordedData.push(v(2,1,h.shortToStr(7)+h.shortToStr(8)+h.shortToStr(h.ScreenWidth)+h.shortToStr(h.ScreenHeight)));var r=8+t.length;65e3<r?h.recordedData.push(v(2,1,h.shortToStr(27)+h.shortToStr(8)+h.intToStr(r)+h.shortToStr(3)+h.shortToStr(0)+h.shortToStr(0)+h.shortToStr(0)+t)):h.recordedData.push(v(2,1,h.shortToStr(3)+h.shortToStr(r)+h.shortToStr(0)+h.shortToStr(0)+t))}})},h.StopRecording=function(){if(null!=h.recordedData){var e=h.recordedData;return e.push(v(3,0,"MeshCentralMCREC")),delete h.recordedData,delete h.recordedStart,delete h.recordedSize,e}},h.MuchTheSame=function(e,t){return Math.abs(e-t)<4},h.Debug=function(e){console.log(e)},h.getIEVersion=function(){var e=-1;if("Microsoft Internet Explorer"==navigator.appName){var t=navigator.userAgent;null!=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})").exec(t)&&(e=parseFloat(RegExp.$1))}return e},h.haltEvent=function(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),!1},h}
\ No newline at end of file
public/scripts/agent-redir-ws-0.1.1.js
-1
@@ -76,7 +76,6 @@ var CreateAgentRedirect = function (meshserver, module, serverPublicNamePort, au
76
var controlMsg;
77
try { controlMsg = JSON.parse(msg); } catch (e) { return; }
78
if (controlMsg.ctrlChannel != '102938') { obj.m.ProcessData(msg); return; }
79
- //console.log(controlMsg);
79
if ((typeof args != 'undefined') && args.redirtrace) { console.log('RedirRecv', controlMsg); }
80
if (controlMsg.type == 'console') {
81
obj.setConsoleMessage(controlMsg.msg, controlMsg.msgid, controlMsg.msgargs, controlMsg.timeout);
translate/translate.json
+2008
-1972
@@ -17,8 +17,8 @@
17
"zh-chs": " + CIRA",
18
"zh-cht": " + CIRA",
19
"xloc": [
20
- "default.handlebars->29->1361",
21
- "default.handlebars->29->1363"
20
+ "default.handlebars->29->1369",
21
+ "default.handlebars->29->1371"
22
]
23
},
24
{
@@ -204,7 +204,7 @@
204
"zh-chs": " 可以使用密码提示,但不建议使用。",
205
"zh-cht": " 可以使用密碼提示,但不建議使用。",
206
"xloc": [
207
- "default.handlebars->29->1274"
207
+ "default.handlebars->29->1282"
208
]
209
},
210
{
@@ -224,8 +224,8 @@
224
"zh-chs": " 用户需要先登录到该服务器一次,然后才能将其添加到设备组。",
225
"zh-cht": " 用戶需要先登入到該伺服器一次,然後才能將其新增到裝置群。",
226
"xloc": [
227
- "default.handlebars->29->1438",
228
- "default.handlebars->29->1901"
227
+ "default.handlebars->29->1446",
228
+ "default.handlebars->29->1909"
229
]
230
},
231
{
@@ -395,7 +395,7 @@
395
"zh-chs": "(可选的)",
396
"zh-cht": "(可選的)",
397
"xloc": [
398
- "default.handlebars->29->340"
398
+ "default.handlebars->29->341"
399
]
400
},
401
{
@@ -420,8 +420,8 @@
420
"fr": "* 8 caractères, 1 majuscule, 1 minuscule, 1 numérique, 1 non alphanumérique.",
421
"nl": "* 8 karakters, 1 hoofdletter, 1 normale letter, 1 nummeriek, 1 niet alfanumeriek.",
422
"xloc": [
423
- "default.handlebars->29->1407",
424
- "default.handlebars->29->306"
423
+ "default.handlebars->29->1415",
424
+ "default.handlebars->29->307"
425
]
426
},
427
{
@@ -441,7 +441,7 @@
441
"zh-chs": "*对于BSD,首先运行“ pkg install wget sudo bash ”。",
442
"zh-cht": "*對於BSD,首先運行“ pkg install wget sudo bash ”。",
443
"xloc": [
444
- "default.handlebars->29->379"
444
+ "default.handlebars->29->380"
445
]
446
},
447
{
@@ -496,7 +496,7 @@
496
"zh-cht": ",",
497
"xloc": [
498
"default-mobile.handlebars->9->465",
499
- "default.handlebars->29->1508"
499
+ "default.handlebars->29->1516"
500
]
501
},
502
{
@@ -517,7 +517,7 @@
517
"zh-cht": ",只適用於Intel®AMT",
518
"xloc": [
519
"default-mobile.handlebars->9->147",
520
- "default.handlebars->29->207"
520
+ "default.handlebars->29->208"
521
]
522
},
523
{
@@ -537,7 +537,13 @@
537
"zh-chs": ",MQTT在线",
538
"zh-cht": ",MQTT在線",
539
"xloc": [
540
- "default.handlebars->29->1016"
540
+ "default.handlebars->29->1024"
541
+ ]
542
+ },
543
+ {
544
+ "en": ", Prompt for consent",
545
+ "xloc": [
546
+ "default.handlebars->29->677"
547
]
548
},
549
{
@@ -557,7 +563,7 @@
563
"zh-chs": ",软体KVM",
564
"zh-cht": ",軟體KVM",
565
"xloc": [
560
- "default.handlebars->29->834",
566
+ "default.handlebars->29->842",
567
"desktop.handlebars->3->12"
568
]
569
},
@@ -580,9 +586,9 @@
586
"xloc": [
587
"default-mobile.handlebars->9->296",
588
"default-mobile.handlebars->9->303",
583
- "default.handlebars->29->841",
584
- "default.handlebars->29->874",
585
- "default.handlebars->29->886",
589
+ "default.handlebars->29->849",
590
+ "default.handlebars->29->882",
591
+ "default.handlebars->29->894",
592
"desktop.handlebars->3->19",
593
"xterm.handlebars->9->6"
594
]
@@ -703,7 +709,7 @@
709
"zh-chs": ",{0}观看",
710
"zh-cht": ",{0}觀看",
711
"xloc": [
706
- "default.handlebars->29->835",
712
+ "default.handlebars->29->843",
713
"desktop.handlebars->3->13"
714
]
715
},
@@ -768,9 +774,9 @@
774
"xloc": [
775
"default-mobile.handlebars->9->108",
776
"default-mobile.handlebars->9->305",
771
- "default.handlebars->29->1549",
772
- "default.handlebars->29->2058",
773
- "default.handlebars->29->892"
777
+ "default.handlebars->29->1557",
778
+ "default.handlebars->29->2066",
779
+ "default.handlebars->29->900"
780
]
781
},
782
{
@@ -826,7 +832,7 @@
832
"zh-chs": "1个活跃时段",
833
"zh-cht": "1個活躍時段",
834
"xloc": [
829
- "default.handlebars->29->1970"
835
+ "default.handlebars->29->1978"
836
]
837
},
838
{
@@ -848,7 +854,7 @@
854
"xloc": [
855
"default-mobile.handlebars->9->118",
856
"default-mobile.handlebars->9->469",
851
- "default.handlebars->29->1573",
857
+ "default.handlebars->29->1581",
858
"download.handlebars->3->1",
859
"download2.handlebars->5->1"
860
]
@@ -870,7 +876,7 @@
876
"zh-chs": "1条连接",
877
"zh-cht": "1位聯絡文",
878
"xloc": [
873
- "default.handlebars->29->837",
879
+ "default.handlebars->29->845",
880
"desktop.handlebars->3->15"
881
]
882
},
@@ -892,8 +898,8 @@
898
"zh-cht": "1天",
899
"xloc": [
900
"default.handlebars->29->181",
895
- "default.handlebars->29->331",
896
- "default.handlebars->29->345"
901
+ "default.handlebars->29->332",
902
+ "default.handlebars->29->346"
903
]
904
},
905
{
@@ -913,7 +919,7 @@
919
"zh-chs": "1组",
920
"zh-cht": "1群",
921
"xloc": [
916
- "default.handlebars->29->1935"
922
+ "default.handlebars->29->1943"
923
]
924
},
925
{
@@ -934,8 +940,8 @@
940
"zh-cht": "1小時",
941
"xloc": [
942
"default.handlebars->29->179",
937
- "default.handlebars->29->329",
938
- "default.handlebars->29->343"
943
+ "default.handlebars->29->330",
944
+ "default.handlebars->29->344"
945
]
946
},
947
{
@@ -955,7 +961,7 @@
961
"zh-chs": "1分钟",
962
"zh-cht": "1分鐘",
963
"xloc": [
958
- "default.handlebars->29->722"
964
+ "default.handlebars->29->730"
965
]
966
},
967
{
@@ -996,8 +1002,8 @@
1002
"zh-cht": "1個月",
1003
"xloc": [
1004
"default.handlebars->29->183",
999
- "default.handlebars->29->333",
1000
- "default.handlebars->29->347"
1005
+ "default.handlebars->29->334",
1006
+ "default.handlebars->29->348"
1007
]
1008
},
1009
{
@@ -1017,7 +1023,7 @@
1023
"zh-chs": "有1个用户没有显示,请使用搜索框查找用户...",
1024
"zh-cht": "有1個用戶沒有顯示,請使用搜尋框搜尋用戶...",
1025
"xloc": [
1020
- "default.handlebars->29->1725"
1026
+ "default.handlebars->29->1733"
1027
]
1028
},
1029
{
@@ -1037,7 +1043,7 @@
1043
"zh-chs": "1个节点",
1044
"zh-cht": "1個節點",
1045
"xloc": [
1040
- "default.handlebars->29->399"
1046
+ "default.handlebars->29->400"
1047
]
1048
},
1049
{
@@ -1083,13 +1089,13 @@
1089
"default-mobile.handlebars->9->172",
1090
"default-mobile.handlebars->9->175",
1091
"default-mobile.handlebars->9->178",
1086
- "default.handlebars->29->1729",
1087
- "default.handlebars->29->251",
1088
- "default.handlebars->29->254",
1089
- "default.handlebars->29->257",
1090
- "default.handlebars->29->260",
1091
- "default.handlebars->29->263",
1092
- "default.handlebars->29->266"
1092
+ "default.handlebars->29->1737",
1093
+ "default.handlebars->29->252",
1094
+ "default.handlebars->29->255",
1095
+ "default.handlebars->29->258",
1096
+ "default.handlebars->29->261",
1097
+ "default.handlebars->29->264",
1098
+ "default.handlebars->29->267"
1099
]
1100
},
1101
{
@@ -1110,8 +1116,8 @@
1116
"zh-cht": "1週",
1117
"xloc": [
1118
"default.handlebars->29->182",
1113
- "default.handlebars->29->332",
1114
- "default.handlebars->29->346"
1119
+ "default.handlebars->29->333",
1120
+ "default.handlebars->29->347"
1121
]
1122
},
1123
{
@@ -1215,7 +1221,7 @@
1221
"zh-chs": "10分钟",
1222
"zh-cht": "10分鐘",
1223
"xloc": [
1218
- "default.handlebars->29->724"
1224
+ "default.handlebars->29->732"
1225
]
1226
},
1227
{
@@ -1285,7 +1291,7 @@
1291
"fr": "12 heures",
1292
"nl": "12 uur",
1293
"xloc": [
1288
- "default.handlebars->29->732"
1294
+ "default.handlebars->29->740"
1295
]
1296
},
1297
{
@@ -1327,7 +1333,7 @@
1333
"zh-chs": "15分钟",
1334
"zh-cht": "15分鐘",
1335
"xloc": [
1330
- "default.handlebars->29->725"
1336
+ "default.handlebars->29->733"
1337
]
1338
},
1339
{
@@ -1335,7 +1341,7 @@
1341
"fr": "16 heures",
1342
"nl": "16 uur",
1343
"xloc": [
1338
- "default.handlebars->29->733"
1344
+ "default.handlebars->29->741"
1345
]
1346
},
1347
{
@@ -1343,7 +1349,7 @@
1349
"fr": "2 jours",
1350
"nl": "2 dagen",
1351
"xloc": [
1346
- "default.handlebars->29->735"
1352
+ "default.handlebars->29->743"
1353
]
1354
},
1355
{
@@ -1351,7 +1357,7 @@
1357
"fr": "2 heures",
1358
"nl": "2 uur",
1359
"xloc": [
1354
- "default.handlebars->29->729"
1360
+ "default.handlebars->29->737"
1361
]
1362
},
1363
{
@@ -1443,7 +1449,7 @@
1449
"fr": "24 heures",
1450
"nl": "24 uur",
1451
"xloc": [
1446
- "default.handlebars->29->734"
1452
+ "default.handlebars->29->742"
1453
]
1454
},
1455
{
@@ -1505,7 +1511,7 @@
1511
"zh-chs": "2FA备份代码已清除",
1512
"zh-cht": "2FA備份代碼已清除",
1513
"xloc": [
1508
- "default.handlebars->29->1684"
1514
+ "default.handlebars->29->1692"
1515
]
1516
},
1517
{
@@ -1525,8 +1531,8 @@
1531
"zh-chs": "启用第二因素身份验证",
1532
"zh-cht": "啟用第二因素身份驗證",
1533
"xloc": [
1528
- "default.handlebars->29->1742",
1529
- "default.handlebars->29->1957"
1534
+ "default.handlebars->29->1750",
1535
+ "default.handlebars->29->1965"
1536
]
1537
},
1538
{
@@ -1645,7 +1651,7 @@
1651
"zh-chs": "30分钟",
1652
"zh-cht": "30分鐘",
1653
"xloc": [
1648
- "default.handlebars->29->726"
1654
+ "default.handlebars->29->734"
1655
]
1656
},
1657
{
@@ -1665,8 +1671,8 @@
1671
"zh-chs": "MeshAgent的32位版本",
1672
"zh-cht": "MeshAgent的32位版本",
1673
"xloc": [
1668
- "default.handlebars->29->369",
1669
- "default.handlebars->29->386"
1674
+ "default.handlebars->29->370",
1675
+ "default.handlebars->29->387"
1676
]
1677
},
1678
{
@@ -1696,7 +1702,7 @@
1702
"fr": "4 jours",
1703
"nl": "4 dagen",
1704
"xloc": [
1699
- "default.handlebars->29->736"
1705
+ "default.handlebars->29->744"
1706
]
1707
},
1708
{
@@ -1704,7 +1710,7 @@
1710
"fr": "4 heures",
1711
"nl": "4 uur",
1712
"xloc": [
1707
- "default.handlebars->29->730"
1713
+ "default.handlebars->29->738"
1714
]
1715
},
1716
{
@@ -1787,7 +1793,7 @@
1793
"zh-chs": "45分钟",
1794
"zh-cht": "45分鐘",
1795
"xloc": [
1790
- "default.handlebars->29->727"
1796
+ "default.handlebars->29->735"
1797
]
1798
},
1799
{
@@ -1827,7 +1833,7 @@
1833
"zh-chs": "5分钟",
1834
"zh-cht": "5分鐘",
1835
"xloc": [
1830
- "default.handlebars->29->723"
1836
+ "default.handlebars->29->731"
1837
]
1838
},
1839
{
@@ -1941,7 +1947,7 @@
1947
"fr": "60 minutes",
1948
"nl": "60 minuten",
1949
"xloc": [
1944
- "default.handlebars->29->728"
1950
+ "default.handlebars->29->736"
1951
]
1952
},
1953
{
@@ -1983,7 +1989,7 @@
1989
"zh-chs": "64位版本的macOS Mesh Agent",
1990
"zh-cht": "64位版本的macOS Mesh Agent",
1991
"xloc": [
1986
- "default.handlebars->29->382"
1992
+ "default.handlebars->29->383"
1993
]
1994
},
1995
{
@@ -2003,8 +2009,8 @@
2009
"zh-chs": "MeshAgent的64位版本",
2010
"zh-cht": "MeshAgent的64位版本",
2011
"xloc": [
2006
- "default.handlebars->29->373",
2007
- "default.handlebars->29->389"
2012
+ "default.handlebars->29->374",
2013
+ "default.handlebars->29->390"
2014
]
2015
},
2016
{
@@ -2061,7 +2067,7 @@
2067
"zh-chs": "7天电源状态",
2068
"zh-cht": "7天電源狀態",
2069
"xloc": [
2064
- "default.handlebars->29->767"
2070
+ "default.handlebars->29->775"
2071
]
2072
},
2073
{
@@ -2124,9 +2130,9 @@
2130
"zh-chs": "8小時",
2131
"zh-cht": "8小時",
2132
"xloc": [
2127
- "default.handlebars->29->330",
2128
- "default.handlebars->29->344",
2129
- "default.handlebars->29->731"
2133
+ "default.handlebars->29->331",
2134
+ "default.handlebars->29->345",
2135
+ "default.handlebars->29->739"
2136
]
2137
},
2138
{
@@ -2344,8 +2350,8 @@
2350
"zh-cht": "ACM",
2351
"xloc": [
2352
"default-mobile.handlebars->9->236",
2347
- "default.handlebars->29->1377",
2348
- "default.handlebars->29->568"
2353
+ "default.handlebars->29->1385",
2354
+ "default.handlebars->29->569"
2355
]
2356
},
2357
{
@@ -2381,8 +2387,8 @@
2387
"zh-chs": "AMT",
2388
"zh-cht": "AMT",
2389
"xloc": [
2384
- "default.handlebars->29->218",
2385
- "default.handlebars->29->427"
2390
+ "default.handlebars->29->219",
2391
+ "default.handlebars->29->428"
2392
]
2393
},
2394
{
@@ -2486,7 +2492,7 @@
2492
"zh-chs": "拒绝访问",
2493
"zh-cht": "拒絕存取",
2494
"xloc": [
2489
- "default.handlebars->29->1017"
2495
+ "default.handlebars->29->1025"
2496
]
2497
},
2498
{
@@ -2528,7 +2534,7 @@
2534
"zh-chs": "访问服务器档案",
2535
"zh-cht": "存取伺服器檔案",
2536
"xloc": [
2531
- "default.handlebars->29->1907"
2537
+ "default.handlebars->29->1915"
2538
]
2539
},
2540
{
@@ -2617,10 +2623,10 @@
2623
"default-mobile.handlebars->9->93",
2624
"default-mobile.handlebars->9->95",
2625
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->p3AccountActions->p2AccountSecurity->1->0",
2620
- "default.handlebars->29->1283",
2621
- "default.handlebars->29->1285",
2622
- "default.handlebars->29->537",
2623
- "default.handlebars->29->539"
2626
+ "default.handlebars->29->1291",
2627
+ "default.handlebars->29->1293",
2628
+ "default.handlebars->29->538",
2629
+ "default.handlebars->29->540"
2630
]
2631
},
2632
{
@@ -2681,7 +2687,7 @@
2687
"zh-chs": "帐户已更改:{0}",
2688
"zh-cht": "帳戶已更改:{0}",
2689
"xloc": [
2684
- "default.handlebars->29->1657"
2690
+ "default.handlebars->29->1665"
2691
]
2692
},
2693
{
@@ -2701,7 +2707,7 @@
2707
"zh-chs": "创建帐户,电子邮件为{0}",
2708
"zh-cht": "創建帳戶,電子郵件為{0}",
2709
"xloc": [
2704
- "default.handlebars->29->1656"
2710
+ "default.handlebars->29->1664"
2711
]
2712
},
2713
{
@@ -2721,7 +2727,7 @@
2727
"zh-chs": "创建帐户,用户名是{0}",
2728
"zh-cht": "帳戶已創建,用戶名是{0}",
2729
"xloc": [
2724
- "default.handlebars->29->1655"
2730
+ "default.handlebars->29->1663"
2731
]
2732
},
2733
{
@@ -2741,8 +2747,8 @@
2747
"zh-chs": "帐户已被锁定",
2748
"zh-cht": "帳戶已被鎖定",
2749
"xloc": [
2744
- "default.handlebars->29->1744",
2745
- "default.handlebars->29->1904"
2750
+ "default.handlebars->29->1752",
2751
+ "default.handlebars->29->1912"
2752
]
2753
},
2754
{
@@ -2806,7 +2812,7 @@
2812
"zh-chs": "帐号登录",
2813
"zh-cht": "帳號登錄",
2814
"xloc": [
2809
- "default.handlebars->29->1592"
2815
+ "default.handlebars->29->1600"
2816
]
2817
},
2818
{
@@ -2826,7 +2832,7 @@
2832
"zh-chs": "帐户登出",
2833
"zh-cht": "帳戶登出",
2834
"xloc": [
2829
- "default.handlebars->29->1593"
2835
+ "default.handlebars->29->1601"
2836
]
2837
},
2838
{
@@ -2868,7 +2874,7 @@
2874
"zh-chs": "帐户密码已更改:{0}",
2875
"zh-cht": "帳戶密碼已更改:{0}",
2876
"xloc": [
2871
- "default.handlebars->29->1665"
2877
+ "default.handlebars->29->1673"
2878
]
2879
},
2880
{
@@ -2888,7 +2894,7 @@
2894
"zh-chs": "帐户已删除",
2895
"zh-cht": "帳戶已刪除",
2896
"xloc": [
2891
- "default.handlebars->29->1654"
2897
+ "default.handlebars->29->1662"
2898
]
2899
},
2900
{
@@ -2928,7 +2934,7 @@
2934
"zh-chs": "指令",
2935
"zh-cht": "指令",
2936
"xloc": [
2931
- "default.handlebars->29->1022",
2937
+ "default.handlebars->29->1030",
2938
"default.handlebars->container->column_l->p42->p42tbl->1->0->8"
2939
]
2940
},
@@ -2949,8 +2955,8 @@
2955
"zh-chs": "动作档案",
2956
"zh-cht": "動作檔案",
2957
"xloc": [
2952
- "default.handlebars->29->810",
2953
- "default.handlebars->29->812"
2958
+ "default.handlebars->29->818",
2959
+ "default.handlebars->29->820"
2960
]
2961
},
2962
{
@@ -2973,7 +2979,7 @@
2979
"default-mobile.handlebars->9->259",
2980
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea4->1->3",
2981
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->1",
2976
- "default.handlebars->29->617",
2982
+ "default.handlebars->29->618",
2983
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->1",
2984
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->1",
2985
"default.handlebars->container->column_l->p13->p13toolbar->1->0->1->1"
@@ -2984,7 +2990,7 @@
2990
"fr": "Activer Intel® AMT dans ACM (Admin Control Mode) en utilisant une clé USB (format FAT). Copiez le fichier setup.bin dessus et démarrez un ou plusieurs appareils avec.",
2991
"nl": "Activeer Intel® AMT in Admin Control Mode (ACM) gebruikmakend van een FAT geformateerde USB sleutel. Plaats setup.bin erop en start een of meer computers met deze sleutel.",
2992
"xloc": [
2987
- "default.handlebars->29->301"
2993
+ "default.handlebars->29->302"
2994
]
2995
},
2996
{
@@ -3030,7 +3036,7 @@
3036
{
3037
"en": "Activate to CCM, if ACM fails",
3038
"xloc": [
3033
- "default.handlebars->29->1398"
3039
+ "default.handlebars->29->1406"
3040
]
3041
},
3042
{
@@ -3053,9 +3059,9 @@
3059
"default-mobile.handlebars->9->231",
3060
"default-mobile.handlebars->9->233",
3061
"default-mobile.handlebars->9->368",
3056
- "default.handlebars->29->561",
3057
- "default.handlebars->29->563",
3058
- "default.handlebars->29->978"
3062
+ "default.handlebars->29->562",
3063
+ "default.handlebars->29->564",
3064
+ "default.handlebars->29->986"
3065
]
3066
},
3067
{
@@ -3075,7 +3081,7 @@
3081
"zh-chs": "激活",
3082
"zh-cht": "啟動",
3083
"xloc": [
3078
- "default.handlebars->29->203"
3084
+ "default.handlebars->29->204"
3085
]
3086
},
3087
{
@@ -3083,7 +3089,7 @@
3089
"fr": "Partage(s) actif(s) de l'appareil",
3090
"nl": "Actief delen van apparaten",
3091
"xloc": [
3086
- "default.handlebars->29->670"
3092
+ "default.handlebars->29->671"
3093
]
3094
},
3095
{
@@ -3120,8 +3126,8 @@
3126
"zh-chs": "添加代理",
3127
"zh-cht": "新增代理",
3128
"xloc": [
3123
- "default.handlebars->29->1373",
3124
- "default.handlebars->29->284"
3129
+ "default.handlebars->29->1381",
3130
+ "default.handlebars->29->285"
3131
]
3132
},
3133
{
@@ -3158,8 +3164,8 @@
3164
"zh-chs": "添加设备",
3165
"zh-cht": "新增裝置",
3166
"xloc": [
3161
- "default.handlebars->29->1881",
3162
- "default.handlebars->29->2005"
3167
+ "default.handlebars->29->1889",
3168
+ "default.handlebars->29->2013"
3169
]
3170
},
3171
{
@@ -3179,7 +3185,7 @@
3185
"zh-chs": "添加设备日志",
3186
"zh-cht": "新增裝置日誌",
3187
"xloc": [
3182
- "default.handlebars->29->712"
3188
+ "default.handlebars->29->717"
3189
]
3190
},
3191
{
@@ -3199,10 +3205,10 @@
3205
"zh-chs": "添加设备组",
3206
"zh-cht": "新增裝置群",
3207
"xloc": [
3202
- "default.handlebars->29->1472",
3203
- "default.handlebars->29->1875",
3204
- "default.handlebars->29->1993",
3205
- "default.handlebars->29->238"
3208
+ "default.handlebars->29->1480",
3209
+ "default.handlebars->29->1883",
3210
+ "default.handlebars->29->2001",
3211
+ "default.handlebars->29->239"
3212
]
3213
},
3214
{
@@ -3222,7 +3228,7 @@
3228
"zh-chs": "添加设备组权限",
3229
"zh-cht": "新增裝置群權限",
3230
"xloc": [
3225
- "default.handlebars->29->1469"
3231
+ "default.handlebars->29->1477"
3232
]
3233
},
3234
{
@@ -3242,8 +3248,8 @@
3248
"zh-chs": "添加设备权限",
3249
"zh-cht": "新增裝置權限",
3250
"xloc": [
3245
- "default.handlebars->29->1474",
3246
- "default.handlebars->29->1476"
3251
+ "default.handlebars->29->1482",
3252
+ "default.handlebars->29->1484"
3253
]
3254
},
3255
{
@@ -3280,7 +3286,7 @@
3286
"zh-chs": "添加英特尔®AMT设备",
3287
"zh-cht": "新增Intel® AMT裝置",
3288
"xloc": [
3283
- "default.handlebars->29->297"
3289
+ "default.handlebars->29->298"
3290
]
3291
},
3292
{
@@ -3320,7 +3326,7 @@
3326
"zh-chs": "添加本地",
3327
"zh-cht": "新增本地",
3328
"xloc": [
3323
- "default.handlebars->29->278"
3329
+ "default.handlebars->29->279"
3330
]
3331
},
3332
{
@@ -3340,7 +3346,7 @@
3346
"zh-chs": "添加成员身份",
3347
"zh-cht": "新增成員身份",
3348
"xloc": [
3343
- "default.handlebars->29->2025"
3349
+ "default.handlebars->29->2033"
3350
]
3351
},
3352
{
@@ -3360,7 +3366,7 @@
3366
"zh-chs": "添加 Mesh Agent",
3367
"zh-cht": "新增 Mesh Agent",
3368
"xloc": [
3363
- "default.handlebars->29->398"
3369
+ "default.handlebars->29->399"
3370
]
3371
},
3372
{
@@ -3380,8 +3386,8 @@
3386
"zh-chs": "添加安全密钥",
3387
"zh-cht": "新增安全密鑰",
3388
"xloc": [
3383
- "default.handlebars->29->1050",
3384
- "default.handlebars->29->1051",
3389
+ "default.handlebars->29->1058",
3390
+ "default.handlebars->29->1059",
3391
"default.handlebars->29->149",
3392
"default.handlebars->29->151",
3393
"default.handlebars->29->154",
@@ -3406,7 +3412,7 @@
3412
"zh-cht": "新增用戶",
3413
"xloc": [
3414
"default-mobile.handlebars->9->410",
3409
- "default.handlebars->29->662"
3415
+ "default.handlebars->29->663"
3416
]
3417
},
3418
{
@@ -3426,7 +3432,7 @@
3432
"zh-chs": "添加用户设备权限",
3433
"zh-cht": "新增用戶裝置權限",
3434
"xloc": [
3429
- "default.handlebars->29->1479"
3435
+ "default.handlebars->29->1487"
3436
]
3437
},
3438
{
@@ -3446,10 +3452,10 @@
3452
"zh-chs": "添加用户组",
3453
"zh-cht": "新增用戶群",
3454
"xloc": [
3449
- "default.handlebars->29->1369",
3450
- "default.handlebars->29->1471",
3451
- "default.handlebars->29->1999",
3452
- "default.handlebars->29->663"
3455
+ "default.handlebars->29->1377",
3456
+ "default.handlebars->29->1479",
3457
+ "default.handlebars->29->2007",
3458
+ "default.handlebars->29->664"
3459
]
3460
},
3461
{
@@ -3469,7 +3475,7 @@
3475
"zh-chs": "添加用户组设备权限",
3476
"zh-cht": "新增用戶群裝置權限",
3477
"xloc": [
3472
- "default.handlebars->29->1481"
3478
+ "default.handlebars->29->1489"
3479
]
3480
},
3481
{
@@ -3526,8 +3532,8 @@
3532
"zh-chs": "添加用户",
3533
"zh-cht": "新增用戶",
3534
"xloc": [
3529
- "default.handlebars->29->1368",
3530
- "default.handlebars->29->1870"
3535
+ "default.handlebars->29->1376",
3536
+ "default.handlebars->29->1878"
3537
]
3538
},
3539
{
@@ -3547,7 +3553,7 @@
3553
"zh-chs": "将用户添加到设备组",
3554
"zh-cht": "將用戶新增到裝置群",
3555
"xloc": [
3550
- "default.handlebars->29->1468"
3556
+ "default.handlebars->29->1476"
3557
]
3558
},
3559
{
@@ -3567,7 +3573,7 @@
3573
"zh-chs": "将用户添加到用户组",
3574
"zh-cht": "將用戶新增到用戶群",
3575
"xloc": [
3570
- "default.handlebars->29->1903"
3576
+ "default.handlebars->29->1911"
3577
]
3578
},
3579
{
@@ -3607,7 +3613,7 @@
3613
"zh-chs": "通过扫描本地网络添加新的英特尔®AMT计算机。",
3614
"zh-cht": "通過掃描本地網絡新增新的Intel® AMT電腦。",
3615
"xloc": [
3610
- "default.handlebars->29->279"
3616
+ "default.handlebars->29->280"
3617
]
3618
},
3619
{
@@ -3644,7 +3650,7 @@
3650
"zh-chs": "添加位于本地网络上的新英特尔®AMT计算机。",
3651
"zh-cht": "新增位於本地網絡上的新Intel® AMT電腦。",
3652
"xloc": [
3647
- "default.handlebars->29->277"
3653
+ "default.handlebars->29->278"
3654
]
3655
},
3656
{
@@ -3664,7 +3670,7 @@
3670
"zh-chs": "将新的英特尔®AMT设备添加到设备组“{0}”。",
3671
"zh-cht": "將新的Intel® AMT裝置新增到裝置群“{0}”。",
3672
"xloc": [
3667
- "default.handlebars->29->287"
3673
+ "default.handlebars->29->288"
3674
]
3675
},
3676
{
@@ -3684,8 +3690,8 @@
3690
"zh-chs": "通过安装Mesh Agent将新计算机添加到该设备组。",
3691
"zh-cht": "通過安裝Mesh Agent將新電腦新增到該裝置群。",
3692
"xloc": [
3687
- "default.handlebars->29->1372",
3688
- "default.handlebars->29->283"
3693
+ "default.handlebars->29->1380",
3694
+ "default.handlebars->29->284"
3695
]
3696
},
3697
{
@@ -3705,7 +3711,7 @@
3711
"zh-chs": "添加标签",
3712
"zh-cht": "新增標籤",
3713
"xloc": [
3708
- "default.handlebars->29->464"
3714
+ "default.handlebars->29->465"
3715
]
3716
},
3717
{
@@ -3713,7 +3719,7 @@
3719
"nl": "Voeg toe, activeer en configureer Intel® AMT aan groep \\\"{0}\\\" door MeshCmd periodiek uit te voeren als beheerder op het externe apparaat.",
3720
"fr": "Ajouter, activer et configurer Intel® AMT au groupe \\\"{0}\\\" en exécutant périodiquement MeshCmd avec les droits administrateurs sur l'appareil distant.",
3721
"xloc": [
3716
- "default.handlebars->29->298"
3722
+ "default.handlebars->29->299"
3723
]
3724
},
3725
{
@@ -3733,7 +3739,7 @@
3739
"zh-chs": "添加了身份验证应用程序",
3740
"zh-cht": "添加了身份驗證應用程序",
3741
"xloc": [
3736
- "default.handlebars->29->1681"
3742
+ "default.handlebars->29->1689"
3743
]
3744
},
3745
{
@@ -3741,7 +3747,7 @@
3747
"fr": "Ajout du partage {0} de {1} à {2}",
3748
"nl": "Apparaat delen {0} toegevoegd van {1} tot {2}",
3749
"xloc": [
3744
- "default.handlebars->29->1692"
3750
+ "default.handlebars->29->1700"
3751
]
3752
},
3753
{
@@ -3761,8 +3767,8 @@
3767
"zh-chs": "已将设备{0}添加到设备组{1}",
3768
"zh-cht": "已將設備{0}添加到設備組{1}",
3769
"xloc": [
3764
- "default.handlebars->29->1648",
3765
- "default.handlebars->29->1675"
3770
+ "default.handlebars->29->1656",
3771
+ "default.handlebars->29->1683"
3772
]
3773
},
3774
{
@@ -3782,7 +3788,7 @@
3788
"zh-chs": "添加了安全密钥",
3789
"zh-cht": "添加了安全密鑰",
3790
"xloc": [
3785
- "default.handlebars->29->1686"
3791
+ "default.handlebars->29->1694"
3792
]
3793
},
3794
{
@@ -3802,7 +3808,7 @@
3808
"zh-chs": "已将用户组{0}添加到设备组{1}",
3809
"zh-cht": "已將用戶組{0}添加到設備組{1}",
3810
"xloc": [
3805
- "default.handlebars->29->1659"
3811
+ "default.handlebars->29->1667"
3812
]
3813
},
3814
{
@@ -3822,8 +3828,8 @@
3828
"zh-chs": "已将用户{0}添加到用户组{1}",
3829
"zh-cht": "已將用戶{0}添加到用戶組{1}",
3830
"xloc": [
3825
- "default.handlebars->29->1662",
3826
- "default.handlebars->29->1671"
3831
+ "default.handlebars->29->1670",
3832
+ "default.handlebars->29->1679"
3833
]
3834
},
3835
{
@@ -3843,7 +3849,7 @@
3849
"zh-chs": "地址",
3850
"zh-cht": "地址",
3851
"xloc": [
3846
- "default.handlebars->29->234"
3852
+ "default.handlebars->29->235"
3853
]
3854
},
3855
{
@@ -3884,7 +3890,7 @@
3890
"zh-cht": "管理員控制模式(ACM)",
3891
"xloc": [
3892
"default-mobile.handlebars->9->370",
3887
- "default.handlebars->29->980"
3893
+ "default.handlebars->29->988"
3894
]
3895
},
3896
{
@@ -3905,7 +3911,7 @@
3911
"zh-cht": "管理員憑證",
3912
"xloc": [
3913
"default-mobile.handlebars->9->376",
3908
- "default.handlebars->29->986"
3914
+ "default.handlebars->29->994"
3915
]
3916
},
3917
{
@@ -3946,7 +3952,7 @@
3952
"zh-chs": "管理领域",
3953
"zh-cht": "管理領域",
3954
"xloc": [
3949
- "default.handlebars->29->1939"
3955
+ "default.handlebars->29->1947"
3956
]
3957
},
3958
{
@@ -3987,7 +3993,7 @@
3993
"zh-chs": "管理领域",
3994
"zh-cht": "管理領域",
3995
"xloc": [
3990
- "default.handlebars->29->1807"
3996
+ "default.handlebars->29->1815"
3997
]
3998
},
3999
{
@@ -4007,7 +4013,7 @@
4013
"zh-chs": "管理员",
4014
"zh-cht": "管理員",
4015
"xloc": [
4010
- "default.handlebars->29->1736"
4016
+ "default.handlebars->29->1744"
4017
]
4018
},
4019
{
@@ -4027,7 +4033,7 @@
4033
"zh-chs": "南非文",
4034
"zh-cht": "南非文",
4035
"xloc": [
4030
- "default.handlebars->29->1053"
4036
+ "default.handlebars->29->1061"
4037
]
4038
},
4039
{
@@ -4050,10 +4056,10 @@
4056
"default-mobile.handlebars->9->203",
4057
"default-mobile.handlebars->9->228",
4058
"default-mobile.handlebars->9->250",
4053
- "default.handlebars->29->1535",
4059
"default.handlebars->29->1543",
4055
- "default.handlebars->29->214",
4056
- "default.handlebars->29->423",
4060
+ "default.handlebars->29->1551",
4061
+ "default.handlebars->29->215",
4062
+ "default.handlebars->29->424",
4063
"default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->p15outputselecttd->p15outputselect->1"
4064
]
4065
},
@@ -4074,8 +4080,8 @@
4080
"zh-chs": "代理+英特尔AMT",
4081
"zh-cht": "代理+Intel® AMT",
4082
"xloc": [
4077
- "default.handlebars->29->1537",
4078
- "default.handlebars->29->1545"
4083
+ "default.handlebars->29->1545",
4084
+ "default.handlebars->29->1553"
4085
]
4086
},
4087
{
@@ -4116,7 +4122,7 @@
4122
"zh-cht": "代理控制台",
4123
"xloc": [
4124
"default-mobile.handlebars->9->447",
4119
- "default.handlebars->29->1489"
4125
+ "default.handlebars->29->1497"
4126
]
4127
},
4128
{
@@ -4136,7 +4142,7 @@
4142
"zh-chs": "代理错误计数器",
4143
"zh-cht": "代理錯誤計數器",
4144
"xloc": [
4139
- "default.handlebars->29->2068"
4145
+ "default.handlebars->29->2076"
4146
]
4147
},
4148
{
@@ -4177,7 +4183,7 @@
4183
"zh-cht": "代理訊息",
4184
"xloc": [
4185
"default-mobile.handlebars->9->181",
4180
- "default.handlebars->29->269"
4186
+ "default.handlebars->29->270"
4187
]
4188
},
4189
{
@@ -4239,7 +4245,7 @@
4245
"zh-chs": "代理时段",
4246
"zh-cht": "代理時段",
4247
"xloc": [
4242
- "default.handlebars->29->2084"
4248
+ "default.handlebars->29->2092"
4249
]
4250
},
4251
{
@@ -4260,7 +4266,7 @@
4266
"zh-cht": "代理標籤",
4267
"xloc": [
4268
"default-mobile.handlebars->9->249",
4263
- "default.handlebars->29->584"
4269
+ "default.handlebars->29->585"
4270
]
4271
},
4272
{
@@ -4280,7 +4286,7 @@
4286
"zh-chs": "代理类型",
4287
"zh-cht": "代理類型",
4288
"xloc": [
4283
- "default.handlebars->29->1541",
4289
+ "default.handlebars->29->1549",
4290
"default.handlebars->container->column_l->p21->3->1->meshOsChartDiv->1"
4291
]
4292
},
@@ -4301,7 +4307,7 @@
4307
"zh-chs": "代理关闭了与服务器压缩的{0}%代理会话。已发送:{1},已压缩:{2}",
4308
"zh-cht": "代理關閉了與{0}%代理到服務器壓縮的會話。已發送:{1},已壓縮:{2}",
4309
"xloc": [
4304
- "default.handlebars->29->1645"
4310
+ "default.handlebars->29->1653"
4311
]
4312
},
4313
{
@@ -4322,8 +4328,8 @@
4328
"zh-cht": "代理已連接",
4329
"xloc": [
4330
"default.handlebars->29->163",
4325
- "default.handlebars->29->653",
4326
- "default.handlebars->29->654"
4331
+ "default.handlebars->29->654",
4332
+ "default.handlebars->29->655"
4333
]
4334
},
4335
{
@@ -4363,7 +4369,7 @@
4369
"zh-chs": "代理离线",
4370
"zh-cht": "代理離線",
4371
"xloc": [
4366
- "default.handlebars->29->1015"
4372
+ "default.handlebars->29->1023"
4373
]
4374
},
4375
{
@@ -4383,7 +4389,7 @@
4389
"zh-chs": "代理在线",
4390
"zh-cht": "代理在線",
4391
"xloc": [
4386
- "default.handlebars->29->1014"
4392
+ "default.handlebars->29->1022"
4393
]
4394
},
4395
{
@@ -4392,7 +4398,7 @@
4398
"nl": "De agent wordt op een extern apparaat uitgevoerd met beperkte rechten.",
4399
"xloc": [
4400
"default.handlebars->29->161",
4395
- "default.handlebars->29->651"
4401
+ "default.handlebars->29->652"
4402
]
4403
},
4404
{
@@ -4412,7 +4418,7 @@
4418
"zh-chs": "代理",
4419
"zh-cht": "代理",
4420
"xloc": [
4415
- "default.handlebars->29->2100"
4421
+ "default.handlebars->29->2108"
4422
]
4423
},
4424
{
@@ -4432,7 +4438,7 @@
4438
"zh-chs": "阿尔巴尼亚文",
4439
"zh-cht": "阿爾巴尼亞文",
4440
"xloc": [
4435
- "default.handlebars->29->1054"
4441
+ "default.handlebars->29->1062"
4442
]
4443
},
4444
{
@@ -4475,7 +4481,7 @@
4481
"zh-chs": "全部可用",
4482
"zh-cht": "全部可用",
4483
"xloc": [
4478
- "default.handlebars->29->1699"
4484
+ "default.handlebars->29->1707"
4485
]
4486
},
4487
{
@@ -4512,7 +4518,7 @@
4518
"zh-chs": "所有事件",
4519
"zh-cht": "所有事件",
4520
"xloc": [
4515
- "default.handlebars->29->1697"
4521
+ "default.handlebars->29->1705"
4522
]
4523
},
4524
{
@@ -4532,9 +4538,9 @@
4538
"zh-chs": "全部聚焦",
4539
"zh-cht": "全部聚焦",
4540
"xloc": [
4535
- "default.handlebars->29->842",
4536
- "default.handlebars->29->844",
4537
- "default.handlebars->29->845"
4541
+ "default.handlebars->29->850",
4542
+ "default.handlebars->29->852",
4543
+ "default.handlebars->29->853"
4544
]
4545
},
4546
{
@@ -4554,8 +4560,8 @@
4560
"zh-chs": "允许用户管理此设备组和该组中的设备。",
4561
"zh-cht": "允許用戶管理此裝置群和該群中的裝置。",
4562
"xloc": [
4557
- "default.handlebars->29->1436",
4558
- "default.handlebars->29->1900"
4563
+ "default.handlebars->29->1444",
4564
+ "default.handlebars->29->1908"
4565
]
4566
},
4567
{
@@ -4575,7 +4581,7 @@
4581
"zh-chs": "允许用户管理此设备。",
4582
"zh-cht": "允許用戶管理此裝置。",
4583
"xloc": [
4578
- "default.handlebars->29->1437"
4584
+ "default.handlebars->29->1445"
4585
]
4586
},
4587
{
@@ -4639,7 +4645,7 @@
4645
"zh-chs": "备用(F10 = ESC + 0)",
4646
"zh-cht": "備用(F10 = ESC + 0)",
4647
"xloc": [
4642
- "default.handlebars->29->879"
4648
+ "default.handlebars->29->887"
4649
]
4650
},
4651
{
@@ -4680,10 +4686,10 @@
4686
"zh-chs": "一直通知",
4687
"zh-cht": "一直通知",
4688
"xloc": [
4683
- "default.handlebars->29->1348",
4684
- "default.handlebars->29->1861",
4685
- "default.handlebars->29->1948",
4686
- "default.handlebars->29->599"
4689
+ "default.handlebars->29->1356",
4690
+ "default.handlebars->29->1869",
4691
+ "default.handlebars->29->1956",
4692
+ "default.handlebars->29->600"
4693
]
4694
},
4695
{
@@ -4703,10 +4709,10 @@
4709
"zh-chs": "一直提示",
4710
"zh-cht": "一直提示",
4711
"xloc": [
4706
- "default.handlebars->29->1349",
4707
- "default.handlebars->29->1862",
4708
- "default.handlebars->29->1949",
4709
- "default.handlebars->29->600"
4712
+ "default.handlebars->29->1357",
4713
+ "default.handlebars->29->1870",
4714
+ "default.handlebars->29->1957",
4715
+ "default.handlebars->29->601"
4716
]
4717
},
4718
{
@@ -4829,7 +4835,7 @@
4835
"zh-chs": "杀毒软件",
4836
"zh-cht": "防毒軟體",
4837
"xloc": [
4832
- "default.handlebars->29->590"
4838
+ "default.handlebars->29->591"
4839
]
4840
},
4841
{
@@ -4849,7 +4855,7 @@
4855
"zh-chs": "任何可支持的",
4856
"zh-cht": "任何可支持的",
4857
"xloc": [
4852
- "default.handlebars->29->324"
4858
+ "default.handlebars->29->325"
4859
]
4860
},
4861
{
@@ -4869,7 +4875,7 @@
4875
"zh-chs": "苹果macOS",
4876
"zh-cht": "蘋果macOS",
4877
"xloc": [
4872
- "default.handlebars->29->359"
4878
+ "default.handlebars->29->360"
4879
]
4880
},
4881
{
@@ -4889,7 +4895,7 @@
4895
"zh-chs": "仅限Apple macOS",
4896
"zh-cht": "僅限Apple macOS",
4897
"xloc": [
4892
- "default.handlebars->29->326"
4898
+ "default.handlebars->29->327"
4899
]
4900
},
4901
{
@@ -4929,7 +4935,7 @@
4935
"zh-chs": "阿拉伯文(阿尔及利亚)",
4936
"zh-cht": "阿拉伯文(阿爾及利亞)",
4937
"xloc": [
4932
- "default.handlebars->29->1056"
4938
+ "default.handlebars->29->1064"
4939
]
4940
},
4941
{
@@ -4949,7 +4955,7 @@
4955
"zh-chs": "阿拉伯文(巴林)",
4956
"zh-cht": "阿拉伯文(巴林)",
4957
"xloc": [
4952
- "default.handlebars->29->1057"
4958
+ "default.handlebars->29->1065"
4959
]
4960
},
4961
{
@@ -4969,7 +4975,7 @@
4975
"zh-chs": "阿拉伯文(埃及)",
4976
"zh-cht": "阿拉伯文(埃及)",
4977
"xloc": [
4972
- "default.handlebars->29->1058"
4978
+ "default.handlebars->29->1066"
4979
]
4980
},
4981
{
@@ -4989,7 +4995,7 @@
4995
"zh-chs": "阿拉伯文(伊拉克)",
4996
"zh-cht": "阿拉伯文(伊拉克)",
4997
"xloc": [
4992
- "default.handlebars->29->1059"
4998
+ "default.handlebars->29->1067"
4999
]
5000
},
5001
{
@@ -5009,7 +5015,7 @@
5015
"zh-chs": "阿拉伯文(约旦)",
5016
"zh-cht": "阿拉伯文(約旦)",
5017
"xloc": [
5012
- "default.handlebars->29->1060"
5018
+ "default.handlebars->29->1068"
5019
]
5020
},
5021
{
@@ -5029,7 +5035,7 @@
5035
"zh-chs": "阿拉伯文(科威特)",
5036
"zh-cht": "阿拉伯文(科威特)",
5037
"xloc": [
5032
- "default.handlebars->29->1061"
5038
+ "default.handlebars->29->1069"
5039
]
5040
},
5041
{
@@ -5049,7 +5055,7 @@
5055
"zh-chs": "阿拉伯文(黎巴嫩)",
5056
"zh-cht": "阿拉伯文(黎巴嫩)",
5057
"xloc": [
5052
- "default.handlebars->29->1062"
5058
+ "default.handlebars->29->1070"
5059
]
5060
},
5061
{
@@ -5069,7 +5075,7 @@
5075
"zh-chs": "阿拉伯文(利比亚)",
5076
"zh-cht": "阿拉伯文(利比亞)",
5077
"xloc": [
5072
- "default.handlebars->29->1063"
5078
+ "default.handlebars->29->1071"
5079
]
5080
},
5081
{
@@ -5089,7 +5095,7 @@
5095
"zh-chs": "阿拉伯文(摩洛哥)",
5096
"zh-cht": "阿拉伯文(摩洛哥)",
5097
"xloc": [
5092
- "default.handlebars->29->1064"
5098
+ "default.handlebars->29->1072"
5099
]
5100
},
5101
{
@@ -5109,7 +5115,7 @@
5115
"zh-chs": "阿拉伯文(阿曼)",
5116
"zh-cht": "阿拉伯文(阿曼)",
5117
"xloc": [
5112
- "default.handlebars->29->1065"
5118
+ "default.handlebars->29->1073"
5119
]
5120
},
5121
{
@@ -5129,7 +5135,7 @@
5135
"zh-chs": "阿拉伯文(卡塔尔)",
5136
"zh-cht": "阿拉伯文(卡塔爾)",
5137
"xloc": [
5132
- "default.handlebars->29->1066"
5138
+ "default.handlebars->29->1074"
5139
]
5140
},
5141
{
@@ -5149,7 +5155,7 @@
5155
"zh-chs": "阿拉伯文(沙特阿拉伯)",
5156
"zh-cht": "阿拉伯文(沙特阿拉伯)",
5157
"xloc": [
5152
- "default.handlebars->29->1067"
5158
+ "default.handlebars->29->1075"
5159
]
5160
},
5161
{
@@ -5169,7 +5175,7 @@
5175
"zh-chs": "阿拉伯文(标准)",
5176
"zh-cht": "阿拉伯文(標準)",
5177
"xloc": [
5172
- "default.handlebars->29->1055"
5178
+ "default.handlebars->29->1063"
5179
]
5180
},
5181
{
@@ -5189,7 +5195,7 @@
5195
"zh-chs": "阿拉伯文(叙利亚)",
5196
"zh-cht": "阿拉伯文(敘利亞)",
5197
"xloc": [
5192
- "default.handlebars->29->1068"
5198
+ "default.handlebars->29->1076"
5199
]
5200
},
5201
{
@@ -5209,7 +5215,7 @@
5215
"zh-chs": "阿拉伯文(突尼斯)",
5216
"zh-cht": "阿拉伯文(突尼斯)",
5217
"xloc": [
5212
- "default.handlebars->29->1069"
5218
+ "default.handlebars->29->1077"
5219
]
5220
},
5221
{
@@ -5229,7 +5235,7 @@
5235
"zh-chs": "阿拉伯文(阿联酋)",
5236
"zh-cht": "阿拉伯文(阿聯酋)",
5237
"xloc": [
5232
- "default.handlebars->29->1070"
5238
+ "default.handlebars->29->1078"
5239
]
5240
},
5241
{
@@ -5249,7 +5255,7 @@
5255
"zh-chs": "阿拉伯文(也门)",
5256
"zh-cht": "阿拉伯文(也門)",
5257
"xloc": [
5252
- "default.handlebars->29->1071"
5258
+ "default.handlebars->29->1079"
5259
]
5260
},
5261
{
@@ -5269,7 +5275,7 @@
5275
"zh-chs": "阿拉贡文",
5276
"zh-cht": "阿拉貢文",
5277
"xloc": [
5272
- "default.handlebars->29->1072"
5278
+ "default.handlebars->29->1080"
5279
]
5280
},
5281
{
@@ -5290,7 +5296,7 @@
5296
"zh-cht": "結構",
5297
"xloc": [
5298
"default-mobile.handlebars->9->340",
5293
- "default.handlebars->29->940"
5299
+ "default.handlebars->29->948"
5300
]
5301
},
5302
{
@@ -5310,7 +5316,7 @@
5316
"zh-chs": "您确定要连接到{0}设备吗?",
5317
"zh-cht": "你確定要連接到{0}裝置嗎?",
5318
"xloc": [
5313
- "default.handlebars->29->272"
5319
+ "default.handlebars->29->273"
5320
]
5321
},
5322
{
@@ -5331,7 +5337,7 @@
5337
"zh-cht": "你確定要刪除群{0}嗎?刪除裝置群還將刪除該群中有關裝置的所有訊息。",
5338
"xloc": [
5339
"default-mobile.handlebars->9->416",
5334
- "default.handlebars->29->1412"
5340
+ "default.handlebars->29->1420"
5341
]
5342
},
5343
{
@@ -5351,7 +5357,7 @@
5357
"zh-chs": "您确定要删除节点{0}吗?",
5358
"zh-cht": "你確定要刪除節點{0}嗎?",
5359
"xloc": [
5354
- "default.handlebars->29->789"
5360
+ "default.handlebars->29->797"
5361
]
5362
},
5363
{
@@ -5371,7 +5377,7 @@
5377
"zh-chs": "您确定要卸载所选代理吗?",
5378
"zh-cht": "你確定要卸載所選代理嗎?",
5379
"xloc": [
5374
- "default.handlebars->29->778"
5380
+ "default.handlebars->29->786"
5381
]
5382
},
5383
{
@@ -5391,7 +5397,7 @@
5397
"zh-chs": "您确定要卸载所选的{0}代理吗?",
5398
"zh-cht": "你確定要卸載所選的{0}代理嗎?",
5399
"xloc": [
5394
- "default.handlebars->29->777"
5400
+ "default.handlebars->29->785"
5401
]
5402
},
5403
{
@@ -5411,7 +5417,7 @@
5417
"zh-chs": "您确定要{0}插件吗:{1}",
5418
"zh-cht": "你確定要{0}外掛嗎:{1}",
5419
"xloc": [
5414
- "default.handlebars->29->2140"
5420
+ "default.handlebars->29->2148"
5421
]
5422
},
5423
{
@@ -5431,7 +5437,7 @@
5437
"zh-chs": "亚美尼亚文",
5438
"zh-cht": "亞美尼亞文",
5439
"xloc": [
5434
- "default.handlebars->29->1073"
5440
+ "default.handlebars->29->1081"
5441
]
5442
},
5443
{
@@ -5491,7 +5497,7 @@
5497
"zh-chs": "阿萨姆文",
5498
"zh-cht": "阿薩姆文",
5499
"xloc": [
5494
- "default.handlebars->29->1074"
5500
+ "default.handlebars->29->1082"
5501
]
5502
},
5503
{
@@ -5511,7 +5517,7 @@
5517
"zh-chs": "阿斯图里亚斯文",
5518
"zh-cht": "阿斯圖里亞斯文",
5519
"xloc": [
5514
- "default.handlebars->29->1075"
5520
+ "default.handlebars->29->1083"
5521
]
5522
},
5523
{
@@ -5531,7 +5537,7 @@
5537
"zh-chs": "尝试激活英特尔(R)AMT ACM模式",
5538
"zh-cht": "嘗試激活英特爾(R)AMT ACM模式",
5539
"xloc": [
5534
- "default.handlebars->29->1614"
5540
+ "default.handlebars->29->1622"
5541
]
5542
},
5543
{
@@ -5551,7 +5557,7 @@
5557
"zh-chs": "认证软件",
5558
"zh-cht": "認證軟體",
5559
"xloc": [
5554
- "default.handlebars->29->1952"
5560
+ "default.handlebars->29->1960"
5561
]
5562
},
5563
{
@@ -5575,8 +5581,8 @@
5581
"default-mobile.handlebars->9->52",
5582
"default-mobile.handlebars->9->71",
5583
"default-mobile.handlebars->9->73",
5578
- "default.handlebars->29->1039",
5579
- "default.handlebars->29->1041",
5584
+ "default.handlebars->29->1047",
5585
+ "default.handlebars->29->1049",
5586
"default.handlebars->29->125",
5587
"default.handlebars->29->130"
5588
]
@@ -5658,7 +5664,7 @@
5664
"zh-chs": "自动删除",
5665
"zh-cht": "自動刪除",
5666
"xloc": [
5661
- "default.handlebars->29->1335"
5667
+ "default.handlebars->29->1343"
5668
]
5669
},
5670
{
@@ -5722,7 +5728,7 @@
5728
"zh-chs": "可用內存",
5729
"zh-cht": "可用內存",
5730
"xloc": [
5725
- "default.handlebars->29->2093"
5731
+ "default.handlebars->29->2101"
5732
]
5733
},
5734
{
@@ -5742,7 +5748,7 @@
5748
"zh-chs": "阿塞拜疆文",
5749
"zh-cht": "阿塞拜疆文",
5750
"xloc": [
5745
- "default.handlebars->29->1076"
5751
+ "default.handlebars->29->1084"
5752
]
5753
},
5754
{
@@ -5763,7 +5769,7 @@
5769
"zh-cht": "的BIOS",
5770
"xloc": [
5771
"default-mobile.handlebars->9->382",
5766
- "default.handlebars->29->992"
5772
+ "default.handlebars->29->1000"
5773
]
5774
},
5775
{
@@ -5858,7 +5864,7 @@
5864
"zh-chs": "背景与互动",
5865
"zh-cht": "背景與互動",
5866
"xloc": [
5861
- "default.handlebars->29->364"
5867
+ "default.handlebars->29->365"
5868
]
5869
},
5870
{
@@ -5878,10 +5884,10 @@
5884
"zh-chs": "背景与互动",
5885
"zh-cht": "背景與互動",
5886
"xloc": [
5881
- "default.handlebars->29->1518",
5882
- "default.handlebars->29->1525",
5883
- "default.handlebars->29->336",
5884
- "default.handlebars->29->350"
5887
+ "default.handlebars->29->1526",
5888
+ "default.handlebars->29->1533",
5889
+ "default.handlebars->29->337",
5890
+ "default.handlebars->29->351"
5891
]
5892
},
5893
{
@@ -5901,11 +5907,11 @@
5907
"zh-chs": "仅背景",
5908
"zh-cht": "僅背景",
5909
"xloc": [
5904
- "default.handlebars->29->1519",
5905
- "default.handlebars->29->1526",
5906
- "default.handlebars->29->337",
5907
- "default.handlebars->29->351",
5908
- "default.handlebars->29->365"
5910
+ "default.handlebars->29->1527",
5911
+ "default.handlebars->29->1534",
5912
+ "default.handlebars->29->338",
5913
+ "default.handlebars->29->352",
5914
+ "default.handlebars->29->366"
5915
]
5916
},
5917
{
@@ -5945,7 +5951,7 @@
5951
"zh-chs": "备用码",
5952
"zh-cht": "備用碼",
5953
"xloc": [
5948
- "default.handlebars->29->1954"
5954
+ "default.handlebars->29->1962"
5955
]
5956
},
5957
{
@@ -5965,7 +5971,7 @@
5971
"zh-chs": "错误的签名",
5972
"zh-cht": "錯誤的簽名",
5973
"xloc": [
5968
- "default.handlebars->29->2075"
5974
+ "default.handlebars->29->2083"
5975
]
5976
},
5977
{
@@ -5985,7 +5991,7 @@
5991
"zh-chs": "错误的网络证书",
5992
"zh-cht": "錯誤的網絡憑證",
5993
"xloc": [
5988
- "default.handlebars->29->2074"
5994
+ "default.handlebars->29->2082"
5995
]
5996
},
5997
{
@@ -6005,7 +6011,7 @@
6011
"zh-chs": "巴斯克",
6012
"zh-cht": "巴斯克",
6013
"xloc": [
6008
- "default.handlebars->29->1077"
6014
+ "default.handlebars->29->1085"
6015
]
6016
},
6017
{
@@ -6013,7 +6019,7 @@
6019
"nl": "Batch bestand uploaden",
6020
"fr": "Chargement de fichiers",
6021
"xloc": [
6016
- "default.handlebars->29->480"
6022
+ "default.handlebars->29->481"
6023
]
6024
},
6025
{
@@ -6041,7 +6047,7 @@
6047
"nl": "Batch-upload van {0} bestand (en) naar map {1}",
6048
"fr": "Chargement de {0} fichier(s) dans le dossier {1}",
6049
"xloc": [
6044
- "default.handlebars->29->1694"
6050
+ "default.handlebars->29->1702"
6051
]
6052
},
6053
{
@@ -6061,7 +6067,7 @@
6067
"zh-chs": "白俄罗斯文",
6068
"zh-cht": "白俄羅斯文",
6069
"xloc": [
6064
- "default.handlebars->29->1079"
6070
+ "default.handlebars->29->1087"
6071
]
6072
},
6073
{
@@ -6081,7 +6087,7 @@
6087
"zh-chs": "孟加拉",
6088
"zh-cht": "孟加拉",
6089
"xloc": [
6084
- "default.handlebars->29->1080"
6090
+ "default.handlebars->29->1088"
6091
]
6092
},
6093
{
@@ -6124,7 +6130,7 @@
6130
"zh-chs": "波斯尼亚文",
6131
"zh-cht": "波斯尼亞文",
6132
"xloc": [
6127
- "default.handlebars->29->1081"
6133
+ "default.handlebars->29->1089"
6134
]
6135
},
6136
{
@@ -6144,7 +6150,7 @@
6150
"zh-chs": "布列塔尼",
6151
"zh-cht": "布列塔尼",
6152
"xloc": [
6147
- "default.handlebars->29->1082"
6153
+ "default.handlebars->29->1090"
6154
]
6155
},
6156
{
@@ -6164,7 +6170,7 @@
6170
"zh-chs": "广播",
6171
"zh-cht": "廣播",
6172
"xloc": [
6167
- "default.handlebars->29->1868",
6173
+ "default.handlebars->29->1876",
6174
"default.handlebars->container->column_l->p4->3->1->0->3->1"
6175
]
6176
},
@@ -6185,7 +6191,7 @@
6191
"zh-chs": "广播消息",
6192
"zh-cht": "廣播消息",
6193
"xloc": [
6188
- "default.handlebars->29->1789"
6194
+ "default.handlebars->29->1797"
6195
]
6196
},
6197
{
@@ -6205,7 +6211,7 @@
6211
"zh-chs": "向所有连接的用户广播消息。",
6212
"zh-cht": "向所有連接的用戶廣播消息。",
6213
"xloc": [
6208
- "default.handlebars->29->1784"
6214
+ "default.handlebars->29->1792"
6215
]
6216
},
6217
{
@@ -6225,7 +6231,7 @@
6231
"zh-chs": "保加利亚文",
6232
"zh-cht": "保加利亞文",
6233
"xloc": [
6228
- "default.handlebars->29->1078"
6234
+ "default.handlebars->29->1086"
6235
]
6236
},
6237
{
@@ -6245,7 +6251,7 @@
6251
"zh-chs": "缅甸文",
6252
"zh-cht": "緬甸文",
6253
"xloc": [
6248
- "default.handlebars->29->1083"
6254
+ "default.handlebars->29->1091"
6255
]
6256
},
6257
{
@@ -6266,13 +6272,13 @@
6272
"zh-cht": "CCM",
6273
"xloc": [
6274
"default-mobile.handlebars->9->235",
6269
- "default.handlebars->29->566"
6275
+ "default.handlebars->29->567"
6276
]
6277
},
6278
{
6279
"en": "CCM mode",
6280
"xloc": [
6275
- "default.handlebars->29->1395"
6281
+ "default.handlebars->29->1403"
6282
]
6283
},
6284
{
@@ -6293,8 +6299,8 @@
6299
"zh-cht": "CIRA",
6300
"xloc": [
6301
"default-mobile.handlebars->9->204",
6296
- "default.handlebars->29->216",
6297
- "default.handlebars->29->425"
6302
+ "default.handlebars->29->217",
6303
+ "default.handlebars->29->426"
6304
]
6305
},
6306
{
@@ -6314,7 +6320,7 @@
6320
"zh-chs": "CIRA服务器",
6321
"zh-cht": "CIRA伺服器",
6322
"xloc": [
6317
- "default.handlebars->29->2128"
6323
+ "default.handlebars->29->2136"
6324
]
6325
},
6326
{
@@ -6334,7 +6340,7 @@
6340
"zh-chs": "CIRA服务器命令",
6341
"zh-cht": "CIRA伺服器指令",
6342
"xloc": [
6337
- "default.handlebars->29->2129"
6343
+ "default.handlebars->29->2137"
6344
]
6345
},
6346
{
@@ -6342,7 +6348,7 @@
6348
"fr": "Configuration CIRA",
6349
"nl": "CIRA setup",
6350
"xloc": [
6345
- "default.handlebars->29->1403"
6351
+ "default.handlebars->29->1411"
6352
]
6353
},
6354
{
@@ -6363,7 +6369,7 @@
6369
"zh-cht": "CPU",
6370
"xloc": [
6371
"default-mobile.handlebars->9->388",
6366
- "default.handlebars->29->998"
6372
+ "default.handlebars->29->1006"
6373
]
6374
},
6375
{
@@ -6383,7 +6389,7 @@
6389
"zh-chs": "CPU负载",
6390
"zh-cht": "CPU負載",
6391
"xloc": [
6386
- "default.handlebars->29->2089"
6392
+ "default.handlebars->29->2097"
6393
]
6394
},
6395
{
@@ -6403,7 +6409,7 @@
6409
"zh-chs": "最近15分钟的CPU负载",
6410
"zh-cht": "最近15分鐘的CPU負載",
6411
"xloc": [
6406
- "default.handlebars->29->2092"
6412
+ "default.handlebars->29->2100"
6413
]
6414
},
6415
{
@@ -6423,7 +6429,7 @@
6429
"zh-chs": "最近5分钟的CPU负载",
6430
"zh-cht": "最近5分鐘的CPU負載",
6431
"xloc": [
6426
- "default.handlebars->29->2091"
6432
+ "default.handlebars->29->2099"
6433
]
6434
},
6435
{
@@ -6443,7 +6449,7 @@
6449
"zh-chs": "最近一分钟的CPU负载",
6450
"zh-cht": "最近一分鐘的CPU負載",
6451
"xloc": [
6446
- "default.handlebars->29->2090"
6452
+ "default.handlebars->29->2098"
6453
]
6454
},
6455
{
@@ -6463,8 +6469,8 @@
6469
"zh-chs": "CR+LF",
6470
"zh-cht": "CR+LF",
6471
"xloc": [
6466
- "default.handlebars->29->872",
6467
- "default.handlebars->29->881",
6472
+ "default.handlebars->29->880",
6473
+ "default.handlebars->29->889",
6474
"default.handlebars->container->column_l->p12->termTable->1->1->6->1->1->terminalSettingsButtons"
6475
]
6476
},
@@ -6485,7 +6491,7 @@
6491
"zh-chs": "CSV",
6492
"zh-cht": "CSV",
6493
"xloc": [
6488
- "default.handlebars->29->1707"
6494
+ "default.handlebars->29->1715"
6495
]
6496
},
6497
{
@@ -6505,9 +6511,9 @@
6511
"zh-chs": "CSV格式",
6512
"zh-cht": "CSV格式",
6513
"xloc": [
6508
- "default.handlebars->29->1711",
6509
- "default.handlebars->29->1776",
6510
- "default.handlebars->29->482"
6514
+ "default.handlebars->29->1719",
6515
+ "default.handlebars->29->1784",
6516
+ "default.handlebars->29->483"
6517
]
6518
},
6519
{
@@ -6535,7 +6541,7 @@
6541
"zh-chs": "呼叫错误",
6542
"zh-cht": "呼叫錯誤",
6543
"xloc": [
6538
- "default.handlebars->29->2141"
6544
+ "default.handlebars->29->2149"
6545
]
6546
},
6547
{
@@ -6557,7 +6563,7 @@
6563
"xloc": [
6564
"default-mobile.handlebars->9->82",
6565
"default-mobile.handlebars->dialog->idx_dlgButtonBar",
6560
- "default.handlebars->29->1313",
6566
+ "default.handlebars->29->1321",
6567
"default.handlebars->container->dialog->idx_dlgButtonBar",
6568
"desktop.handlebars->p11->dialog->idx_dlgButtonBar",
6569
"login-mobile.handlebars->dialog->idx_dlgButtonBar",
@@ -6587,9 +6593,9 @@
6593
"default-mobile.handlebars->9->393",
6594
"default-mobile.handlebars->9->398",
6595
"default-mobile.handlebars->9->400",
6590
- "default.handlebars->29->1003",
6591
- "default.handlebars->29->1008",
6592
- "default.handlebars->29->1010"
6596
+ "default.handlebars->29->1011",
6597
+ "default.handlebars->29->1016",
6598
+ "default.handlebars->29->1018"
6599
]
6600
},
6601
{
@@ -6610,7 +6616,7 @@
6616
"zh-cht": "容量/速度",
6617
"xloc": [
6618
"default-mobile.handlebars->9->391",
6613
- "default.handlebars->29->1001"
6619
+ "default.handlebars->29->1009"
6620
]
6621
},
6622
{
@@ -6630,7 +6636,7 @@
6636
"zh-chs": "加泰罗尼亚文",
6637
"zh-cht": "加泰羅尼亞文",
6638
"xloc": [
6633
- "default.handlebars->29->1084"
6639
+ "default.handlebars->29->1092"
6640
]
6641
},
6642
{
@@ -6650,7 +6656,7 @@
6656
"zh-chs": "在这里为中心显示地图",
6657
"zh-cht": "在這裡為中心顯示地圖",
6658
"xloc": [
6653
- "default.handlebars->29->528"
6659
+ "default.handlebars->29->529"
6660
]
6661
},
6662
{
@@ -6670,7 +6676,7 @@
6676
"zh-chs": "查莫罗",
6677
"zh-cht": "查莫羅",
6678
"xloc": [
6673
- "default.handlebars->29->1085"
6679
+ "default.handlebars->29->1093"
6680
]
6681
},
6682
{
@@ -6712,7 +6718,7 @@
6718
"zh-chs": "更改{0}的电邮",
6719
"zh-cht": "更改{0}的電郵",
6720
"xloc": [
6715
- "default.handlebars->29->1982"
6721
+ "default.handlebars->29->1990"
6722
]
6723
},
6724
{
@@ -6732,9 +6738,9 @@
6738
"zh-chs": "更改组",
6739
"zh-cht": "更改群",
6740
"xloc": [
6735
- "default.handlebars->29->628",
6736
- "default.handlebars->29->786",
6737
- "default.handlebars->29->787"
6741
+ "default.handlebars->29->629",
6742
+ "default.handlebars->29->794",
6743
+ "default.handlebars->29->795"
6744
]
6745
},
6746
{
@@ -6755,8 +6761,8 @@
6761
"zh-cht": "更改密碼",
6762
"xloc": [
6763
"default-mobile.handlebars->9->90",
6758
- "default.handlebars->29->1280",
6759
- "default.handlebars->29->1969"
6764
+ "default.handlebars->29->1288",
6765
+ "default.handlebars->29->1977"
6766
]
6767
},
6768
{
@@ -6776,7 +6782,7 @@
6782
"zh-chs": "更改{0}的密码",
6783
"zh-cht": "更改{0}的密碼",
6784
"xloc": [
6779
- "default.handlebars->29->1989"
6785
+ "default.handlebars->29->1997"
6786
]
6787
},
6788
{
@@ -6796,7 +6802,7 @@
6802
"zh-chs": "更改{0}的真实名称",
6803
"zh-cht": "更改{0}的真實名稱",
6804
"xloc": [
6799
- "default.handlebars->29->1977"
6805
+ "default.handlebars->29->1985"
6806
]
6807
},
6808
{
@@ -6878,7 +6884,7 @@
6884
"zh-chs": "更改该用户的密码",
6885
"zh-cht": "更改該用戶的密碼",
6886
"xloc": [
6881
- "default.handlebars->29->1968"
6887
+ "default.handlebars->29->1976"
6888
]
6889
},
6890
{
@@ -6918,7 +6924,7 @@
6924
"zh-chs": "在此处更改您的帐户电邮地址。",
6925
"zh-cht": "在此處更改你的帳戶電郵地址。",
6926
"xloc": [
6921
- "default.handlebars->29->1267"
6927
+ "default.handlebars->29->1275"
6928
]
6929
},
6930
{
@@ -6938,7 +6944,7 @@
6944
"zh-chs": "在下面的框中两次输入旧密码和新密码,以更改帐户密码。",
6945
"zh-cht": "在下面的框中兩次輸入舊密碼和新密碼,以更改帳戶密碼。",
6946
"xloc": [
6941
- "default.handlebars->29->1273"
6947
+ "default.handlebars->29->1281"
6948
]
6949
},
6950
{
@@ -6958,7 +6964,7 @@
6964
"zh-chs": "更改帐户凭据",
6965
"zh-cht": "帳戶憑證已更改",
6966
"xloc": [
6961
- "default.handlebars->29->1666"
6967
+ "default.handlebars->29->1674"
6968
]
6969
},
6970
{
@@ -6978,7 +6984,7 @@
6984
"zh-chs": "{1}组中的设备{0}已更改:{2}",
6985
"zh-cht": "{1}組中的設備{0}已更改:{2}",
6986
"xloc": [
6981
- "default.handlebars->29->1650"
6987
+ "default.handlebars->29->1658"
6988
]
6989
},
6990
{
@@ -6998,7 +7004,7 @@
7004
"zh-chs": "语言从{1}更改为{2}",
7005
"zh-cht": "語言從{1}更改為{2}",
7006
"xloc": [
7001
- "default.handlebars->29->1594"
7007
+ "default.handlebars->29->1602"
7008
]
7009
},
7010
{
@@ -7018,8 +7024,8 @@
7024
"zh-chs": "已更改{0}的用户设备权限",
7025
"zh-cht": "已更改{0}的用戶設備權限",
7026
"xloc": [
7021
- "default.handlebars->29->1652",
7022
- "default.handlebars->29->1673"
7027
+ "default.handlebars->29->1660",
7028
+ "default.handlebars->29->1681"
7029
]
7030
},
7031
{
@@ -7039,7 +7045,7 @@
7045
"zh-chs": "更改语言将需要刷新页面。",
7046
"zh-cht": "更改語言將需要刷新頁面。",
7047
"xloc": [
7042
- "default.handlebars->29->1252"
7048
+ "default.handlebars->29->1260"
7049
]
7050
},
7051
{
@@ -7059,9 +7065,9 @@
7065
"zh-chs": "聊天",
7066
"zh-cht": "聊天",
7067
"xloc": [
7062
- "default.handlebars->29->1728",
7063
- "default.handlebars->29->686",
7064
- "default.handlebars->29->707"
7068
+ "default.handlebars->29->1736",
7069
+ "default.handlebars->29->691",
7070
+ "default.handlebars->29->712"
7071
]
7072
},
7073
{
@@ -7083,8 +7089,8 @@
7089
"xloc": [
7090
"default-mobile.handlebars->9->437",
7091
"default-mobile.handlebars->9->457",
7086
- "default.handlebars->29->1464",
7087
- "default.handlebars->29->1500"
7092
+ "default.handlebars->29->1472",
7093
+ "default.handlebars->29->1508"
7094
]
7095
},
7096
{
@@ -7124,7 +7130,7 @@
7130
"zh-chs": "车臣",
7131
"zh-cht": "車臣",
7132
"xloc": [
7127
- "default.handlebars->29->1086"
7133
+ "default.handlebars->29->1094"
7134
]
7135
},
7136
{
@@ -7224,8 +7230,8 @@
7230
"zh-chs": "检查...",
7231
"zh-cht": "檢查...",
7232
"xloc": [
7227
- "default.handlebars->29->1052",
7228
- "default.handlebars->29->2135"
7233
+ "default.handlebars->29->1060",
7234
+ "default.handlebars->29->2143"
7235
]
7236
},
7237
{
@@ -7245,7 +7251,7 @@
7251
"zh-chs": "中文",
7252
"zh-cht": "中文",
7253
"xloc": [
7248
- "default.handlebars->29->1087"
7254
+ "default.handlebars->29->1095"
7255
]
7256
},
7257
{
@@ -7265,7 +7271,7 @@
7271
"zh-chs": "中文(香港)",
7272
"zh-cht": "中文(香港)",
7273
"xloc": [
7268
- "default.handlebars->29->1088"
7274
+ "default.handlebars->29->1096"
7275
]
7276
},
7277
{
@@ -7285,7 +7291,7 @@
7291
"zh-chs": "中文(中国)",
7292
"zh-cht": "中文(中國)",
7293
"xloc": [
7288
- "default.handlebars->29->1089"
7294
+ "default.handlebars->29->1097"
7295
]
7296
},
7297
{
@@ -7305,7 +7311,7 @@
7311
"zh-chs": "简体中文",
7312
"zh-cht": "簡體中文",
7313
"xloc": [
7308
- "default.handlebars->29->1249"
7314
+ "default.handlebars->29->1257"
7315
]
7316
},
7317
{
@@ -7325,7 +7331,7 @@
7331
"zh-chs": "中文(新加坡)",
7332
"zh-cht": "中文(新加坡)",
7333
"xloc": [
7328
- "default.handlebars->29->1090"
7334
+ "default.handlebars->29->1098"
7335
]
7336
},
7337
{
@@ -7345,7 +7351,7 @@
7351
"zh-chs": "中文(台湾)",
7352
"zh-cht": "中文(台灣)",
7353
"xloc": [
7348
- "default.handlebars->29->1091"
7354
+ "default.handlebars->29->1099"
7355
]
7356
},
7357
{
@@ -7365,7 +7371,7 @@
7371
"zh-chs": "繁体中文",
7372
"zh-cht": "繁體中文",
7373
"xloc": [
7368
- "default.handlebars->29->1250"
7374
+ "default.handlebars->29->1258"
7375
]
7376
},
7377
{
@@ -7406,7 +7412,7 @@
7412
"zh-chs": "楚瓦什",
7413
"zh-cht": "楚瓦什",
7414
"xloc": [
7409
- "default.handlebars->29->1092"
7415
+ "default.handlebars->29->1100"
7416
]
7417
},
7418
{
@@ -7449,11 +7455,11 @@
7455
"default-mobile.handlebars->9->328",
7456
"default-mobile.handlebars->9->330",
7457
"default-mobile.handlebars->9->59",
7452
- "default.handlebars->29->1588",
7453
- "default.handlebars->29->917",
7454
- "default.handlebars->29->919",
7455
- "default.handlebars->29->921",
7456
- "default.handlebars->29->923",
7458
+ "default.handlebars->29->1596",
7459
+ "default.handlebars->29->925",
7460
+ "default.handlebars->29->927",
7461
+ "default.handlebars->29->929",
7462
+ "default.handlebars->29->931",
7463
"default.handlebars->container->column_l->p15->consoleTable->1->6->1->1->1->0->7",
7464
"default.handlebars->container->column_l->p41->3->1",
7465
"messenger.handlebars->xbottom"
@@ -7496,7 +7502,7 @@
7502
"zh-chs": "全部清除",
7503
"zh-cht": "全部清除",
7504
"xloc": [
7499
- "default.handlebars->29->2062"
7505
+ "default.handlebars->29->2070"
7506
]
7507
},
7508
{
@@ -7505,7 +7511,7 @@
7511
"nl": "Wis zoekfilter",
7512
"xloc": [
7513
"default-mobile.handlebars->9->154",
7508
- "default.handlebars->29->228"
7514
+ "default.handlebars->29->229"
7515
]
7516
},
7517
{
@@ -7525,7 +7531,7 @@
7531
"zh-chs": "清除核心",
7532
"zh-cht": "清除核心",
7533
"xloc": [
7528
- "default.handlebars->29->1024"
7534
+ "default.handlebars->29->1032"
7535
]
7536
},
7537
{
@@ -7565,7 +7571,7 @@
7571
"zh-chs": "清除此通知",
7572
"zh-cht": "清除此通知",
7573
"xloc": [
7568
- "default.handlebars->29->2061"
7574
+ "default.handlebars->29->2069"
7575
]
7576
},
7577
{
@@ -7625,8 +7631,8 @@
7631
"zh-chs": "单击此处编辑设备组名称",
7632
"zh-cht": "單擊此處編輯裝置群名稱",
7633
"xloc": [
7628
- "default.handlebars->29->1324",
7629
- "default.handlebars->29->1539"
7634
+ "default.handlebars->29->1332",
7635
+ "default.handlebars->29->1547"
7636
]
7637
},
7638
{
@@ -7646,7 +7652,7 @@
7652
"zh-chs": "单击此处编辑服务器端设备名称",
7653
"zh-cht": "單擊此處編輯伺服器端裝置名稱",
7654
"xloc": [
7649
- "default.handlebars->29->544"
7655
+ "default.handlebars->29->545"
7656
]
7657
},
7658
{
@@ -7666,7 +7672,7 @@
7672
"zh-chs": "单击此处编辑用户组名称",
7673
"zh-cht": "單擊此處編輯用戶群名稱",
7674
"xloc": [
7669
- "default.handlebars->29->1845"
7675
+ "default.handlebars->29->1853"
7676
]
7677
},
7678
{
@@ -7727,7 +7733,7 @@
7733
"zh-cht": "單擊確定將驗證電郵發送到:",
7734
"xloc": [
7735
"default-mobile.handlebars->9->75",
7730
- "default.handlebars->29->1264"
7736
+ "default.handlebars->29->1272"
7737
]
7738
},
7739
{
@@ -7768,7 +7774,7 @@
7774
"zh-cht": "客戶端控制模式(CCM)",
7775
"xloc": [
7776
"default-mobile.handlebars->9->369",
7771
- "default.handlebars->29->979"
7777
+ "default.handlebars->29->987"
7778
]
7779
},
7780
{
@@ -7788,7 +7794,7 @@
7794
"zh-chs": "客户编号",
7795
"zh-cht": "客戶編號",
7796
"xloc": [
7791
- "default.handlebars->29->1306"
7797
+ "default.handlebars->29->1314"
7798
]
7799
},
7800
{
@@ -7808,7 +7814,7 @@
7814
"zh-chs": "客户端启动的远程访问",
7815
"zh-cht": "客戶端啟動的遠程訪問",
7816
"xloc": [
7811
- "default.handlebars->29->1402"
7817
+ "default.handlebars->29->1410"
7818
]
7819
},
7820
{
@@ -7828,7 +7834,7 @@
7834
"zh-chs": "客户机密",
7835
"zh-cht": "客戶機密",
7836
"xloc": [
7831
- "default.handlebars->29->1307"
7837
+ "default.handlebars->29->1315"
7838
]
7839
},
7840
{
@@ -7872,8 +7878,8 @@
7878
"default-mobile.handlebars->9->57",
7879
"default.handlebars->29->137",
7880
"default.handlebars->29->145",
7875
- "default.handlebars->29->863",
7876
- "default.handlebars->29->894"
7881
+ "default.handlebars->29->871",
7882
+ "default.handlebars->29->902"
7883
]
7884
},
7885
{
@@ -7893,7 +7899,7 @@
7899
"zh-chs": "封闭式桌面多路复用会话,{0}秒",
7900
"zh-cht": "封閉式桌面多路復用會話,{0}秒",
7901
"xloc": [
7896
- "default.handlebars->29->1599"
7902
+ "default.handlebars->29->1607"
7903
]
7904
},
7905
{
@@ -7913,7 +7919,7 @@
7919
"zh-chs": "码",
7920
"zh-cht": "碼",
7921
"xloc": [
7916
- "default.handlebars->29->204"
7922
+ "default.handlebars->29->205"
7923
]
7924
},
7925
{
@@ -7971,7 +7977,7 @@
7977
"fr": "Commande",
7978
"nl": "Opdracht",
7979
"xloc": [
7974
- "default.handlebars->29->396"
7980
+ "default.handlebars->29->397"
7981
]
7982
},
7983
{
@@ -7980,9 +7986,9 @@
7986
"nl": "Opdrachten",
7987
"xloc": [
7988
"default-mobile.handlebars->9->459",
7983
- "default.handlebars->29->1502",
7984
- "default.handlebars->29->688",
7985
- "default.handlebars->29->709"
7989
+ "default.handlebars->29->1510",
7990
+ "default.handlebars->29->693",
7991
+ "default.handlebars->29->714"
7992
]
7993
},
7994
{
@@ -8002,8 +8008,8 @@
8008
"zh-chs": "通用设备组",
8009
"zh-cht": "通用裝置群",
8010
"xloc": [
8005
- "default.handlebars->29->1876",
8006
- "default.handlebars->29->1994"
8011
+ "default.handlebars->29->1884",
8012
+ "default.handlebars->29->2002"
8013
]
8014
},
8015
{
@@ -8023,8 +8029,8 @@
8029
"zh-chs": "通用设备",
8030
"zh-cht": "通用裝置",
8031
"xloc": [
8026
- "default.handlebars->29->1882",
8027
- "default.handlebars->29->2006"
8032
+ "default.handlebars->29->1890",
8033
+ "default.handlebars->29->2014"
8034
]
8035
},
8036
{
@@ -8044,7 +8050,7 @@
8050
"zh-chs": "压缩档案...",
8051
"zh-cht": "壓縮檔案...",
8052
"xloc": [
8047
- "default.handlebars->29->889"
8053
+ "default.handlebars->29->897"
8054
]
8055
},
8056
{
@@ -8066,14 +8072,14 @@
8072
"xloc": [
8073
"default-mobile.handlebars->9->288",
8074
"default-mobile.handlebars->9->417",
8069
- "default.handlebars->29->1413",
8070
- "default.handlebars->29->1756",
8071
- "default.handlebars->29->1835",
8072
- "default.handlebars->29->1896",
8073
- "default.handlebars->29->1992",
8074
- "default.handlebars->29->452",
8075
- "default.handlebars->29->781",
8076
- "default.handlebars->29->790"
8075
+ "default.handlebars->29->1421",
8076
+ "default.handlebars->29->1764",
8077
+ "default.handlebars->29->1843",
8078
+ "default.handlebars->29->1904",
8079
+ "default.handlebars->29->2000",
8080
+ "default.handlebars->29->453",
8081
+ "default.handlebars->29->789",
8082
+ "default.handlebars->29->798"
8083
]
8084
},
8085
{
@@ -8094,7 +8100,7 @@
8100
"zh-cht": "確認將1個副本複製到此位置?",
8101
"xloc": [
8102
"default-mobile.handlebars->9->319",
8097
- "default.handlebars->29->912"
8103
+ "default.handlebars->29->920"
8104
]
8105
},
8106
{
@@ -8114,7 +8120,7 @@
8120
"zh-chs": "确认{0}个条目的复制到此位置?",
8121
"zh-cht": "確認{0}個條目的複製到此位置?",
8122
"xloc": [
8117
- "default.handlebars->29->911"
8123
+ "default.handlebars->29->919"
8124
]
8125
},
8126
{
@@ -8154,7 +8160,7 @@
8160
"zh-chs": "确认删除选定的帐户?",
8161
"zh-cht": "確認刪除所選帳戶?",
8162
"xloc": [
8157
- "default.handlebars->29->1755"
8163
+ "default.handlebars->29->1763"
8164
]
8165
},
8166
{
@@ -8174,7 +8180,7 @@
8180
"zh-chs": "确认删除选定的设备?",
8181
"zh-cht": "確認刪除所選裝置?",
8182
"xloc": [
8177
- "default.handlebars->29->451"
8183
+ "default.handlebars->29->452"
8184
]
8185
},
8186
{
@@ -8194,7 +8200,7 @@
8200
"zh-chs": "确认删除选定的用户组?",
8201
"zh-cht": "確認刪除所選用戶群?",
8202
"xloc": [
8197
- "default.handlebars->29->1834"
8203
+ "default.handlebars->29->1842"
8204
]
8205
},
8206
{
@@ -8214,7 +8220,7 @@
8220
"zh-chs": "确认删除用户{0}?",
8221
"zh-cht": "確認刪除用戶{0}?",
8222
"xloc": [
8217
- "default.handlebars->29->1991"
8223
+ "default.handlebars->29->1999"
8224
]
8225
},
8226
{
@@ -8234,7 +8240,7 @@
8240
"zh-chs": "确认删除用户“ {0} ”的成员身份?",
8241
"zh-cht": "確認刪除用戶“ {0} ”的成員身份?",
8242
"xloc": [
8237
- "default.handlebars->29->1899"
8243
+ "default.handlebars->29->1907"
8244
]
8245
},
8246
{
@@ -8254,7 +8260,7 @@
8260
"zh-chs": "确认删除用户组“ {0} ”的成员身份?",
8261
"zh-cht": "確認刪除用戶群“ {0} ”的成員身份?",
8262
"xloc": [
8257
- "default.handlebars->29->2023"
8263
+ "default.handlebars->29->2031"
8264
]
8265
},
8266
{
@@ -8275,7 +8281,7 @@
8281
"zh-cht": "確認將1個條目移動到此位置?",
8282
"xloc": [
8283
"default-mobile.handlebars->9->321",
8278
- "default.handlebars->29->914"
8284
+ "default.handlebars->29->922"
8285
]
8286
},
8287
{
@@ -8295,7 +8301,7 @@
8301
"zh-chs": "确认将{0}个条目移到此位置?",
8302
"zh-cht": "確認將{0}個條目移到該位置?",
8303
"xloc": [
8298
- "default.handlebars->29->913"
8304
+ "default.handlebars->29->921"
8305
]
8306
},
8307
{
@@ -8335,7 +8341,7 @@
8341
"zh-chs": "确认覆盖?",
8342
"zh-cht": "確認覆蓋?",
8343
"xloc": [
8338
- "default.handlebars->29->1582"
8344
+ "default.handlebars->29->1590"
8345
]
8346
},
8347
{
@@ -8355,8 +8361,8 @@
8361
"zh-chs": "确认删除设备“ {0} ”的访问权限?",
8362
"zh-cht": "確認刪除裝置“ {0} ”的訪問權限?",
8363
"xloc": [
8358
- "default.handlebars->29->1889",
8359
- "default.handlebars->29->2014"
8364
+ "default.handlebars->29->1897",
8365
+ "default.handlebars->29->2022"
8366
]
8367
},
8368
{
@@ -8376,8 +8382,8 @@
8382
"zh-chs": "确认删除设备组“ {0} ”的访问权限?",
8383
"zh-cht": "確認刪除裝置群“ {0} ”的訪問權限?",
8384
"xloc": [
8379
- "default.handlebars->29->1891",
8380
- "default.handlebars->29->2027"
8385
+ "default.handlebars->29->1899",
8386
+ "default.handlebars->29->2035"
8387
]
8388
},
8389
{
@@ -8397,7 +8403,7 @@
8403
"zh-chs": "确认删除用户“ {0} ”的访问权限?",
8404
"zh-cht": "確認刪除用戶“ {0} ”的訪問權限?",
8405
"xloc": [
8400
- "default.handlebars->29->2016"
8406
+ "default.handlebars->29->2024"
8407
]
8408
},
8409
{
@@ -8417,7 +8423,7 @@
8423
"zh-chs": "确认删除用户组“ {0} ”的访问权限?",
8424
"zh-cht": "確認刪除用戶群“ {0} ”的訪問權限?",
8425
"xloc": [
8420
- "default.handlebars->29->2019"
8426
+ "default.handlebars->29->2027"
8427
]
8428
},
8429
{
@@ -8437,8 +8443,8 @@
8443
"zh-chs": "确认删除访问权限?",
8444
"zh-cht": "確認刪除訪問權限?",
8445
"xloc": [
8440
- "default.handlebars->29->2017",
8441
- "default.handlebars->29->2020"
8446
+ "default.handlebars->29->2025",
8447
+ "default.handlebars->29->2028"
8448
]
8449
},
8450
{
@@ -8459,7 +8465,7 @@
8465
"zh-cht": "確認刪除身份驗證軟體兩步登入?",
8466
"xloc": [
8467
"default-mobile.handlebars->9->74",
8462
- "default.handlebars->29->1042"
8468
+ "default.handlebars->29->1050"
8469
]
8470
},
8471
{
@@ -8484,7 +8490,7 @@
8490
"fr": "Confirmez-vous l'arrêt du partage \\\"{0}\\\"?",
8491
"nl": "Bevestig de verwijdering van apparaatdeling \\\"{0}\\\"?",
8492
"xloc": [
8487
- "default.handlebars->29->2012"
8493
+ "default.handlebars->29->2020"
8494
]
8495
},
8496
{
@@ -8538,7 +8544,7 @@
8544
"zh-chs": "确认删除用户“ {0} ”的权限?",
8545
"zh-cht": "確認刪除用戶“ {0} ”的權限?",
8546
"xloc": [
8541
- "default.handlebars->29->1511"
8547
+ "default.handlebars->29->1519"
8548
]
8549
},
8550
{
@@ -8558,7 +8564,7 @@
8564
"zh-chs": "确认删除用户组“ {0} ”的权限?",
8565
"zh-cht": "確認刪除用戶群“ {0} ”的權限?",
8566
"xloc": [
8561
- "default.handlebars->29->1513"
8567
+ "default.handlebars->29->1521"
8568
]
8569
},
8570
{
@@ -8616,7 +8622,7 @@
8622
"zh-cht": "將{1}入口{2}中的{0}限製到此位置?",
8623
"xloc": [
8624
"default-mobile.handlebars->9->127",
8619
- "default.handlebars->29->1583"
8625
+ "default.handlebars->29->1591"
8626
]
8627
},
8628
{
@@ -8639,8 +8645,8 @@
8645
"default-mobile.handlebars->9->301",
8646
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
8647
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3",
8642
- "default.handlebars->29->1352",
8643
- "default.handlebars->29->884",
8648
+ "default.handlebars->29->1360",
8649
+ "default.handlebars->29->892",
8650
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->connectbutton1span",
8651
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->connectbutton2span",
8652
"default.handlebars->container->column_l->p13->p13toolbar->1->0->1->3",
@@ -8666,7 +8672,7 @@
8672
"zh-chs": "全部连接",
8673
"zh-cht": "全部連接",
8674
"xloc": [
8669
- "default.handlebars->29->271",
8675
+ "default.handlebars->29->272",
8676
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->kvmListToolbar"
8677
]
8678
},
@@ -8687,7 +8693,7 @@
8693
"zh-chs": "连接到服务器",
8694
"zh-cht": "連接到伺服器",
8695
"xloc": [
8690
- "default.handlebars->29->1406"
8696
+ "default.handlebars->29->1414"
8697
]
8698
},
8699
{
@@ -8808,7 +8814,7 @@
8814
"zh-chs": "已连接的英特尔®AMT",
8815
"zh-cht": "已連接的Intel® AMT",
8816
"xloc": [
8811
- "default.handlebars->29->2080"
8817
+ "default.handlebars->29->2088"
8818
]
8819
},
8820
{
@@ -8828,7 +8834,7 @@
8834
"zh-chs": "已连接的用户",
8835
"zh-cht": "已连接的用户",
8836
"xloc": [
8831
- "default.handlebars->29->2085"
8837
+ "default.handlebars->29->2093"
8838
]
8839
},
8840
{
@@ -8849,7 +8855,7 @@
8855
"zh-cht": "現在已連接",
8856
"xloc": [
8857
"default-mobile.handlebars->9->344",
8852
- "default.handlebars->29->944"
8858
+ "default.handlebars->29->952"
8859
]
8860
},
8861
{
@@ -8892,11 +8898,11 @@
8898
"default-mobile.handlebars->9->2",
8899
"default-mobile.handlebars->9->337",
8900
"default-mobile.handlebars->9->37",
8895
- "default.handlebars->29->244",
8896
- "default.handlebars->29->247",
8897
- "default.handlebars->29->274",
8901
+ "default.handlebars->29->245",
8902
+ "default.handlebars->29->248",
8903
+ "default.handlebars->29->275",
8904
"default.handlebars->29->9",
8899
- "default.handlebars->29->935",
8905
+ "default.handlebars->29->943",
8906
"desktop.handlebars->3->2",
8907
"xterm.handlebars->9->2"
8908
]
@@ -8918,7 +8924,7 @@
8924
"zh-chs": "连接数量",
8925
"zh-cht": "連接數量",
8926
"xloc": [
8921
- "default.handlebars->29->2099"
8927
+ "default.handlebars->29->2107"
8928
]
8929
},
8930
{
@@ -8938,7 +8944,7 @@
8944
"zh-chs": "连接转发器",
8945
"zh-cht": "連接轉發器",
8946
"xloc": [
8941
- "default.handlebars->29->2127"
8947
+ "default.handlebars->29->2135"
8948
]
8949
},
8950
{
@@ -8999,9 +9005,9 @@
9005
"zh-cht": "連接性",
9006
"xloc": [
9007
"default-mobile.handlebars->9->255",
9002
- "default.handlebars->29->1546",
9003
- "default.handlebars->29->235",
9004
- "default.handlebars->29->613",
9008
+ "default.handlebars->29->1554",
9009
+ "default.handlebars->29->236",
9010
+ "default.handlebars->29->614",
9011
"default.handlebars->container->column_l->p21->3->1->meshConnChartDiv->1"
9012
]
9013
},
@@ -9022,8 +9028,8 @@
9028
"zh-chs": "控制台",
9029
"zh-cht": "控制台",
9030
"xloc": [
9025
- "default.handlebars->29->681",
9026
- "default.handlebars->29->702",
9031
+ "default.handlebars->29->686",
9032
+ "default.handlebars->29->707",
9033
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevConsole",
9034
"default.handlebars->container->topbar->1->1->ServerSubMenuSpan->ServerSubMenu->1->0->ServerConsole",
9035
"default.handlebars->contextMenu->cxconsole"
@@ -9046,7 +9052,7 @@
9052
"zh-chs": "控制台 -",
9053
"zh-cht": "控制台 -",
9054
"xloc": [
9049
- "default.handlebars->29->545"
9055
+ "default.handlebars->29->546"
9056
]
9057
},
9058
{
@@ -9066,8 +9072,8 @@
9072
"zh-chs": "控制",
9073
"zh-cht": "控制",
9074
"xloc": [
9069
- "default.handlebars->29->680",
9070
- "default.handlebars->29->701",
9075
+ "default.handlebars->29->685",
9076
+ "default.handlebars->29->706",
9077
"messenger.handlebars->13->1"
9078
]
9079
},
@@ -9088,7 +9094,7 @@
9094
"zh-chs": "Cookie编码器",
9095
"zh-cht": "Cookie編碼器",
9096
"xloc": [
9091
- "default.handlebars->29->2113"
9097
+ "default.handlebars->29->2121"
9098
]
9099
},
9100
{
@@ -9153,7 +9159,7 @@
9159
"zh-chs": "将Windows 32位代理URL复制到剪贴板",
9160
"zh-cht": "將Windows 32位代理URL複製到剪貼板",
9161
"xloc": [
9156
- "default.handlebars->29->371"
9162
+ "default.handlebars->29->372"
9163
]
9164
},
9165
{
@@ -9173,7 +9179,7 @@
9179
"zh-chs": "将Windows 64位代理URL复制到剪贴板",
9180
"zh-cht": "將Windows 64位代理URL複製到剪貼板",
9181
"xloc": [
9176
- "default.handlebars->29->375"
9182
+ "default.handlebars->29->376"
9183
]
9184
},
9185
{
@@ -9224,8 +9230,8 @@
9230
"zh-chs": "将代理URL复制到剪贴板",
9231
"zh-cht": "將代理URL複製到剪貼板",
9232
"xloc": [
9227
- "default.handlebars->29->395",
9228
- "default.handlebars->29->397"
9233
+ "default.handlebars->29->396",
9234
+ "default.handlebars->29->398"
9235
]
9236
},
9237
{
@@ -9245,10 +9251,10 @@
9251
"zh-chs": "复制连结到剪贴板",
9252
"zh-cht": "複製連結到剪貼板",
9253
"xloc": [
9248
- "default.handlebars->29->1551",
9249
- "default.handlebars->29->1570",
9250
- "default.handlebars->29->196",
9251
- "default.handlebars->29->353"
9254
+ "default.handlebars->29->1559",
9255
+ "default.handlebars->29->1578",
9256
+ "default.handlebars->29->197",
9257
+ "default.handlebars->29->354"
9258
]
9259
},
9260
{
@@ -9268,7 +9274,7 @@
9274
"zh-chs": "将macOS代理URL复制到剪贴板",
9275
"zh-cht": "將macOS代理URL複製到剪貼板",
9276
"xloc": [
9271
- "default.handlebars->29->383"
9277
+ "default.handlebars->29->384"
9278
]
9279
},
9280
{
@@ -9349,7 +9355,7 @@
9355
"zh-chs": "复制:“{0}”到“{1}”",
9356
"zh-cht": "複製:“{0}”到“{1}”",
9357
"xloc": [
9352
- "default.handlebars->29->1642"
9358
+ "default.handlebars->29->1650"
9359
]
9360
},
9361
{
@@ -9495,7 +9501,7 @@
9501
"zh-chs": "核心服务器",
9502
"zh-cht": "核心伺服器",
9503
"xloc": [
9498
- "default.handlebars->29->2112"
9504
+ "default.handlebars->29->2120"
9505
]
9506
},
9507
{
@@ -9515,7 +9521,7 @@
9521
"zh-chs": "科西嘉文",
9522
"zh-cht": "科西嘉文",
9523
"xloc": [
9518
- "default.handlebars->29->1093"
9524
+ "default.handlebars->29->1101"
9525
]
9526
},
9527
{
@@ -9535,7 +9541,7 @@
9541
"zh-chs": "创建帐号",
9542
"zh-cht": "創建帳號",
9543
"xloc": [
9538
- "default.handlebars->29->1803",
9544
+ "default.handlebars->29->1811",
9545
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->createpanel->1->1->9->1->12->1->1",
9546
"login.handlebars->container->column_l->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1",
9547
"login2.handlebars->centralTable->1->0->logincell->createpanel->1->9->1->12->1->1"
@@ -9578,7 +9584,7 @@
9584
"zh-chs": "创建用户组",
9585
"zh-cht": "創建用戶群",
9586
"xloc": [
9581
- "default.handlebars->29->1842"
9587
+ "default.handlebars->29->1850"
9588
]
9589
},
9590
{
@@ -9598,7 +9604,7 @@
9604
"zh-chs": "创建连结以与访客共享此设备",
9605
"zh-cht": "創建鏈結以與訪客共享此裝置",
9606
"xloc": [
9601
- "default.handlebars->29->626"
9607
+ "default.handlebars->29->627"
9608
]
9609
},
9610
{
@@ -9618,7 +9624,7 @@
9624
"zh-chs": "使用以下选项创建一个新的设备组。",
9625
"zh-cht": "使用以下選項創建一個新的裝置群。",
9626
"xloc": [
9621
- "default.handlebars->29->1287"
9627
+ "default.handlebars->29->1295"
9628
]
9629
},
9630
{
@@ -9638,7 +9644,7 @@
9644
"zh-chs": "创建一个新的设备组。",
9645
"zh-cht": "創建一個新的裝置群。",
9646
"xloc": [
9641
- "default.handlebars->29->237"
9647
+ "default.handlebars->29->238"
9648
]
9649
},
9650
{
@@ -9646,7 +9652,7 @@
9652
"nl": "Map aanmaken als deze niet bestaat?",
9653
"fr": "Créer le répertoire si il n'existe pas ?",
9654
"xloc": [
9649
- "default.handlebars->29->478"
9655
+ "default.handlebars->29->479"
9656
]
9657
},
9658
{
@@ -9666,7 +9672,7 @@
9672
"zh-chs": "创建文件夹:“{0}”",
9673
"zh-cht": "創建文件夾:“{0}”",
9674
"xloc": [
9669
- "default.handlebars->29->1635"
9675
+ "default.handlebars->29->1643"
9676
]
9677
},
9678
{
@@ -9686,7 +9692,7 @@
9692
"zh-chs": "通过导入以下格式的JSON档案一次创建多个帐户:",
9693
"zh-cht": "通過導入以下格式的JSON檔案一次創建多個帳戶:",
9694
"xloc": [
9689
- "default.handlebars->29->1767"
9695
+ "default.handlebars->29->1775"
9696
]
9697
},
9698
{
@@ -9728,17 +9734,20 @@
9734
"zh-chs": "创建的设备组:{0}",
9735
"zh-cht": "創建的設備組:{0}",
9736
"xloc": [
9731
- "default.handlebars->29->1646"
9737
+ "default.handlebars->29->1654"
9738
]
9739
},
9740
{
9735
- "en": "Creates a link that allows a guest without an account to remote desktop into this device for a limited time.",
9736
- "nl": "Creëert een link waarmee een gast zonder account voor een beperkte tijd naar een extern bureaublad op dit apparaat kan gaan.",
9737
- "fr": "Autoriser un invité à se connecter au bureau de cet appareil pour un temps limité.",
9741
+ "en": "Creates a link that allows a guest without an account to remote control this device for a limited time.",
9742
"xloc": [
9739
- "default.handlebars->29->720"
9743
+ "default.handlebars->29->725"
9744
]
9745
},
9746
+ {
9747
+ "en": "Creates a link that allows a guest without an account to remote desktop into this device for a limited time.",
9748
+ "nl": "Creëert een link waarmee een gast zonder account voor een beperkte tijd naar een extern bureaublad op dit apparaat kan gaan.",
9749
+ "fr": "Autoriser un invité à se connecter au bureau de cet appareil pour un temps limité."
9750
+ },
9751
{
9752
"cs": "Vytvoří odkaz, který umožňuje hostovi bez účtu vzdálenou plochu do tohoto zařízení po dobu až 1 hodiny.",
9753
"de": "Erstellt einen Link, über den ein Gast ohne Konto bis zu 1 Stunde lang Remotedesktop auf dieses Gerät übertragen kann.",
@@ -9773,7 +9782,7 @@
9782
"zh-chs": "创建",
9783
"zh-cht": "創建",
9784
"xloc": [
9776
- "default.handlebars->29->1928"
9785
+ "default.handlebars->29->1936"
9786
]
9787
},
9788
{
@@ -9793,7 +9802,7 @@
9802
"zh-chs": "创建时间",
9803
"zh-cht": "創作時間",
9804
"xloc": [
9796
- "default.handlebars->29->1334"
9805
+ "default.handlebars->29->1342"
9806
]
9807
},
9808
{
@@ -9835,8 +9844,8 @@
9844
"zh-chs": "创建者",
9845
"zh-cht": "創作者",
9846
"xloc": [
9838
- "default.handlebars->29->1332",
9839
- "default.handlebars->29->1333"
9847
+ "default.handlebars->29->1340",
9848
+ "default.handlebars->29->1341"
9849
]
9850
},
9851
{
@@ -9856,7 +9865,7 @@
9865
"zh-chs": "证书",
9866
"zh-cht": "證書",
9867
"xloc": [
9859
- "default.handlebars->29->1304"
9868
+ "default.handlebars->29->1312"
9869
]
9870
},
9871
{
@@ -9876,7 +9885,7 @@
9885
"zh-chs": "克里语",
9886
"zh-cht": "克里語",
9887
"xloc": [
9879
- "default.handlebars->29->1094"
9888
+ "default.handlebars->29->1102"
9889
]
9890
},
9891
{
@@ -9896,7 +9905,7 @@
9905
"zh-chs": "克罗地亚文",
9906
"zh-cht": "克羅地亞文",
9907
"xloc": [
9899
- "default.handlebars->29->1095"
9908
+ "default.handlebars->29->1103"
9909
]
9910
},
9911
{
@@ -10083,7 +10092,7 @@
10092
"zh-chs": "捷克文",
10093
"zh-cht": "捷克文",
10094
"xloc": [
10086
- "default.handlebars->29->1096"
10095
+ "default.handlebars->29->1104"
10096
]
10097
},
10098
{
@@ -10123,7 +10132,7 @@
10132
"zh-chs": "丹麦文",
10133
"zh-cht": "丹麥文",
10134
"xloc": [
10126
- "default.handlebars->29->1097"
10135
+ "default.handlebars->29->1105"
10136
]
10137
},
10138
{
@@ -10143,7 +10152,7 @@
10152
"zh-chs": "数据通道",
10153
"zh-cht": "數據通道",
10154
"xloc": [
10146
- "default.handlebars->29->833",
10155
+ "default.handlebars->29->841",
10156
"desktop.handlebars->3->11"
10157
]
10158
},
@@ -10164,7 +10173,7 @@
10173
"zh-chs": "日期和时间",
10174
"zh-cht": "日期和時間",
10175
"xloc": [
10167
- "default.handlebars->29->1255"
10176
+ "default.handlebars->29->1263"
10177
]
10178
},
10179
{
@@ -10185,7 +10194,7 @@
10194
"zh-cht": "天",
10195
"xloc": [
10196
"default-mobile.handlebars->9->278",
10188
- "default.handlebars->29->765"
10197
+ "default.handlebars->29->773"
10198
]
10199
},
10200
{
@@ -10193,13 +10202,13 @@
10202
"fr": "Désactivé",
10203
"nl": "Deactiveren",
10204
"xloc": [
10196
- "default.handlebars->29->1385"
10205
+ "default.handlebars->29->1393"
10206
]
10207
},
10208
{
10209
"en": "Deactivate CCM if setup",
10210
"xloc": [
10202
- "default.handlebars->29->1397"
10211
+ "default.handlebars->29->1405"
10212
]
10213
},
10214
{
@@ -10237,7 +10246,7 @@
10246
"zh-cht": "沉睡",
10247
"xloc": [
10248
"default-mobile.handlebars->9->192",
10240
- "default.handlebars->29->408"
10249
+ "default.handlebars->29->409"
10250
]
10251
},
10252
{
@@ -10257,10 +10266,10 @@
10266
"zh-chs": "默认",
10267
"zh-cht": "默認",
10268
"xloc": [
10260
- "default.handlebars->29->1790",
10261
- "default.handlebars->29->1838",
10262
- "default.handlebars->29->1849",
10263
- "default.handlebars->29->1917"
10269
+ "default.handlebars->29->1798",
10270
+ "default.handlebars->29->1846",
10271
+ "default.handlebars->29->1857",
10272
+ "default.handlebars->29->1925"
10273
]
10274
},
10275
{
@@ -10284,9 +10293,9 @@
10293
"default-mobile.handlebars->9->311",
10294
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->2->1->1",
10295
"default-mobile.handlebars->container->page_content->column_l->p5->p5myfiles->p5toolbar->1->0->1->1",
10287
- "default.handlebars->29->1577",
10288
- "default.handlebars->29->515",
10289
- "default.handlebars->29->903",
10296
+ "default.handlebars->29->1585",
10297
+ "default.handlebars->29->516",
10298
+ "default.handlebars->29->911",
10299
"default.handlebars->container->column_l->p13->p13toolbar->1->2->1->3",
10300
"default.handlebars->container->column_l->p5->p5toolbar->1->0->p5filehead->3",
10301
"default.handlebars->container->dialog->idx_dlgButtonBar->5",
@@ -10314,7 +10323,7 @@
10323
"zh-cht": "刪除帳戶",
10324
"xloc": [
10325
"default-mobile.handlebars->9->84",
10317
- "default.handlebars->29->1272"
10326
+ "default.handlebars->29->1280"
10327
]
10328
},
10329
{
@@ -10334,7 +10343,7 @@
10343
"zh-chs": "删除帐户",
10344
"zh-cht": "刪除帳戶",
10345
"xloc": [
10337
- "default.handlebars->29->1757"
10346
+ "default.handlebars->29->1765"
10347
]
10348
},
10349
{
@@ -10355,7 +10364,7 @@
10364
"zh-cht": "刪除裝置",
10365
"xloc": [
10366
"default-mobile.handlebars->9->260",
10358
- "default.handlebars->29->630"
10367
+ "default.handlebars->29->631"
10368
]
10369
},
10370
{
@@ -10377,8 +10386,8 @@
10386
"xloc": [
10387
"default-mobile.handlebars->9->415",
10388
"default-mobile.handlebars->9->418",
10380
- "default.handlebars->29->1381",
10381
- "default.handlebars->29->1414"
10389
+ "default.handlebars->29->1389",
10390
+ "default.handlebars->29->1422"
10391
]
10392
},
10393
{
@@ -10399,7 +10408,7 @@
10408
"zh-cht": "刪除節點",
10409
"xloc": [
10410
"default-mobile.handlebars->9->286",
10402
- "default.handlebars->29->791"
10411
+ "default.handlebars->29->799"
10412
]
10413
},
10414
{
@@ -10419,7 +10428,7 @@
10428
"zh-chs": "删除节点",
10429
"zh-cht": "刪除節點",
10430
"xloc": [
10422
- "default.handlebars->29->453"
10431
+ "default.handlebars->29->454"
10432
]
10433
},
10434
{
@@ -10439,7 +10448,7 @@
10448
"zh-chs": "删除用户",
10449
"zh-cht": "刪除用戶",
10450
"xloc": [
10442
- "default.handlebars->29->1967"
10451
+ "default.handlebars->29->1975"
10452
]
10453
},
10454
{
@@ -10459,8 +10468,8 @@
10468
"zh-chs": "删除用户群组",
10469
"zh-cht": "刪除用戶群組",
10470
"xloc": [
10462
- "default.handlebars->29->1887",
10463
- "default.handlebars->29->1897"
10471
+ "default.handlebars->29->1895",
10472
+ "default.handlebars->29->1905"
10473
]
10474
},
10475
{
@@ -10480,7 +10489,7 @@
10489
"zh-chs": "删除用户群组",
10490
"zh-cht": "刪除用戶群組",
10491
"xloc": [
10483
- "default.handlebars->29->1836"
10492
+ "default.handlebars->29->1844"
10493
]
10494
},
10495
{
@@ -10500,7 +10509,7 @@
10509
"zh-chs": "删除用户{0}",
10510
"zh-cht": "刪除用戶{0}",
10511
"xloc": [
10503
- "default.handlebars->29->1990"
10512
+ "default.handlebars->29->1998"
10513
]
10514
},
10515
{
@@ -10521,7 +10530,7 @@
10530
"zh-cht": "刪除帳戶",
10531
"xloc": [
10532
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->p3AccountActions->p2AccountActions->3->9->0",
10524
- "default.handlebars->29->1753",
10533
+ "default.handlebars->29->1761",
10534
"default.handlebars->container->column_l->p2->p2info->p2AccountActions->3->p2AccountPassActions->7"
10535
]
10536
},
@@ -10542,7 +10551,7 @@
10551
"zh-chs": "删除设备",
10552
"zh-cht": "刪除裝置",
10553
"xloc": [
10545
- "default.handlebars->29->446"
10554
+ "default.handlebars->29->447"
10555
]
10556
},
10557
{
@@ -10562,7 +10571,7 @@
10571
"zh-chs": "删除群组",
10572
"zh-cht": "刪除群組",
10573
"xloc": [
10565
- "default.handlebars->29->1832"
10574
+ "default.handlebars->29->1840"
10575
]
10576
},
10577
{
@@ -10582,7 +10591,7 @@
10591
"zh-chs": "删除项目?",
10592
"zh-cht": "刪除項目?",
10593
"xloc": [
10585
- "default.handlebars->29->516"
10594
+ "default.handlebars->29->517"
10595
]
10596
},
10597
{
@@ -10602,7 +10611,7 @@
10611
"zh-chs": "递归删除:“{0}”,{1}个元素已删除",
10612
"zh-cht": "遞歸刪除:“{0}”,{1}個元素已刪除",
10613
"xloc": [
10605
- "default.handlebars->29->1637"
10614
+ "default.handlebars->29->1645"
10615
]
10616
},
10617
{
@@ -10624,8 +10633,8 @@
10633
"xloc": [
10634
"default-mobile.handlebars->9->124",
10635
"default-mobile.handlebars->9->313",
10627
- "default.handlebars->29->1579",
10628
- "default.handlebars->29->905"
10636
+ "default.handlebars->29->1587",
10637
+ "default.handlebars->29->913"
10638
]
10639
},
10640
{
@@ -10645,7 +10654,7 @@
10654
"zh-chs": "删除用户群组{0}?",
10655
"zh-cht": "刪除用戶群組{0}?",
10656
"xloc": [
10648
- "default.handlebars->29->1895"
10657
+ "default.handlebars->29->1903"
10658
]
10659
},
10660
{
@@ -10667,8 +10676,8 @@
10676
"xloc": [
10677
"default-mobile.handlebars->9->123",
10678
"default-mobile.handlebars->9->312",
10670
- "default.handlebars->29->1578",
10671
- "default.handlebars->29->904"
10679
+ "default.handlebars->29->1586",
10680
+ "default.handlebars->29->912"
10681
]
10682
},
10683
{
@@ -10708,7 +10717,7 @@
10717
"zh-chs": "删除:“{0}”",
10718
"zh-cht": "刪除:“{0}”",
10719
"xloc": [
10711
- "default.handlebars->29->1636"
10720
+ "default.handlebars->29->1644"
10721
]
10722
},
10723
{
@@ -10728,7 +10737,7 @@
10737
"zh-chs": "删除:“{0}”,{1}个元素已删除",
10738
"zh-cht": "刪除:“{0}”,已刪除{1}個元素",
10739
"xloc": [
10731
- "default.handlebars->29->1638"
10740
+ "default.handlebars->29->1646"
10741
]
10742
},
10743
{
@@ -10748,7 +10757,7 @@
10757
"zh-chs": "被拒绝",
10758
"zh-cht": "被拒絕",
10759
"xloc": [
10751
- "default.handlebars->29->829",
10760
+ "default.handlebars->29->837",
10761
"desktop.handlebars->3->7"
10762
]
10763
},
@@ -10845,19 +10854,19 @@
10854
"default-mobile.handlebars->9->350",
10855
"default-mobile.handlebars->9->407",
10856
"default-mobile.handlebars->9->420",
10848
- "default.handlebars->29->1292",
10849
- "default.handlebars->29->1329",
10850
- "default.handlebars->29->1416",
10851
- "default.handlebars->29->1841",
10852
- "default.handlebars->29->1851",
10853
- "default.handlebars->29->1852",
10854
- "default.handlebars->29->1893",
10855
- "default.handlebars->29->556",
10857
+ "default.handlebars->29->1300",
10858
+ "default.handlebars->29->1337",
10859
+ "default.handlebars->29->1424",
10860
+ "default.handlebars->29->1849",
10861
+ "default.handlebars->29->1859",
10862
+ "default.handlebars->29->1860",
10863
+ "default.handlebars->29->1901",
10864
"default.handlebars->29->557",
10865
+ "default.handlebars->29->558",
10866
"default.handlebars->29->77",
10858
- "default.handlebars->29->824",
10859
- "default.handlebars->29->950",
10860
- "default.handlebars->29->960",
10867
+ "default.handlebars->29->832",
10868
+ "default.handlebars->29->958",
10869
+ "default.handlebars->29->968",
10870
"default.handlebars->container->column_l->p42->p42tbl->1->0->3"
10871
]
10872
},
@@ -10896,10 +10905,12 @@
10905
"zh-cht": "桌面",
10906
"xloc": [
10907
"default-mobile.handlebars->9->267",
10899
- "default.handlebars->29->1422",
10900
- "default.handlebars->29->2039",
10901
- "default.handlebars->29->521",
10902
- "default.handlebars->29->869",
10908
+ "default.handlebars->29->1430",
10909
+ "default.handlebars->29->2047",
10910
+ "default.handlebars->29->522",
10911
+ "default.handlebars->29->676",
10912
+ "default.handlebars->29->728",
10913
+ "default.handlebars->29->877",
10914
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevDesktop",
10915
"default.handlebars->contextMenu->cxdesktop",
10916
"desktop.handlebars->3->23"
@@ -10942,10 +10953,10 @@
10953
"zh-chs": "桌面通知",
10954
"zh-cht": "桌面通知",
10955
"xloc": [
10945
- "default.handlebars->29->1343",
10946
- "default.handlebars->29->1856",
10947
- "default.handlebars->29->1943",
10948
- "default.handlebars->29->594"
10956
+ "default.handlebars->29->1351",
10957
+ "default.handlebars->29->1864",
10958
+ "default.handlebars->29->1951",
10959
+ "default.handlebars->29->595"
10960
]
10961
},
10962
{
@@ -10965,10 +10976,10 @@
10976
"zh-chs": "桌面提示",
10977
"zh-cht": "桌面提示",
10978
"xloc": [
10968
- "default.handlebars->29->1342",
10969
- "default.handlebars->29->1855",
10970
- "default.handlebars->29->1942",
10971
- "default.handlebars->29->593"
10979
+ "default.handlebars->29->1350",
10980
+ "default.handlebars->29->1863",
10981
+ "default.handlebars->29->1950",
10982
+ "default.handlebars->29->594"
10983
]
10984
},
10985
{
@@ -10988,10 +10999,10 @@
10999
"zh-chs": "桌面提示+工具栏",
11000
"zh-cht": "桌面提示+工具欄",
11001
"xloc": [
10991
- "default.handlebars->29->1340",
10992
- "default.handlebars->29->1853",
10993
- "default.handlebars->29->1940",
10994
- "default.handlebars->29->591"
11002
+ "default.handlebars->29->1348",
11003
+ "default.handlebars->29->1861",
11004
+ "default.handlebars->29->1948",
11005
+ "default.handlebars->29->592"
11006
]
11007
},
11008
{
@@ -11041,10 +11052,10 @@
11052
"zh-chs": "桌面工具栏",
11053
"zh-cht": "桌面工具欄",
11054
"xloc": [
11044
- "default.handlebars->29->1341",
11045
- "default.handlebars->29->1854",
11046
- "default.handlebars->29->1941",
11047
- "default.handlebars->29->592"
11055
+ "default.handlebars->29->1349",
11056
+ "default.handlebars->29->1862",
11057
+ "default.handlebars->29->1949",
11058
+ "default.handlebars->29->593"
11059
]
11060
},
11061
{
@@ -11064,7 +11075,7 @@
11075
"zh-chs": "桌面时段",
11076
"zh-cht": "桌面時段",
11077
"xloc": [
11067
- "default.handlebars->29->868"
11078
+ "default.handlebars->29->876"
11079
]
11080
},
11081
{
@@ -11147,9 +11158,9 @@
11158
"zh-chs": "设备",
11159
"zh-cht": "裝置",
11160
"xloc": [
11150
- "default.handlebars->29->1445",
11161
+ "default.handlebars->29->1453",
11162
"default.handlebars->29->186",
11152
- "default.handlebars->29->2009",
11163
+ "default.handlebars->29->2017",
11164
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->9->devListToolbarSort->sortselect->5"
11165
]
11166
},
@@ -11171,7 +11182,7 @@
11182
"zh-cht": "裝置指令",
11183
"xloc": [
11184
"default-mobile.handlebars->9->277",
11174
- "default.handlebars->29->756"
11185
+ "default.handlebars->29->764"
11186
]
11187
},
11188
{
@@ -11199,14 +11210,14 @@
11210
"zh-chs": "设备组",
11211
"zh-cht": "裝置群",
11212
"xloc": [
11202
- "default.handlebars->29->1440",
11203
- "default.handlebars->29->1443",
11204
- "default.handlebars->29->1444",
11205
- "default.handlebars->29->1704",
11206
- "default.handlebars->29->1879",
11207
- "default.handlebars->29->1885",
11208
- "default.handlebars->29->1997",
11209
- "default.handlebars->29->2048"
11213
+ "default.handlebars->29->1448",
11214
+ "default.handlebars->29->1451",
11215
+ "default.handlebars->29->1452",
11216
+ "default.handlebars->29->1712",
11217
+ "default.handlebars->29->1887",
11218
+ "default.handlebars->29->1893",
11219
+ "default.handlebars->29->2005",
11220
+ "default.handlebars->29->2056"
11221
]
11222
},
11223
{
@@ -11227,7 +11238,7 @@
11238
"zh-cht": "裝置群用戶",
11239
"xloc": [
11240
"default-mobile.handlebars->9->466",
11230
- "default.handlebars->29->1509"
11241
+ "default.handlebars->29->1517"
11242
]
11243
},
11244
{
@@ -11248,11 +11259,11 @@
11259
"zh-cht": "裝置群",
11260
"xloc": [
11261
"default-mobile.handlebars->container->page_content->column_l->p3->p3info->1->3",
11251
- "default.handlebars->29->1720",
11252
- "default.handlebars->29->1826",
11253
- "default.handlebars->29->1866",
11254
- "default.handlebars->29->1937",
11255
- "default.handlebars->29->2083",
11262
+ "default.handlebars->29->1728",
11263
+ "default.handlebars->29->1834",
11264
+ "default.handlebars->29->1874",
11265
+ "default.handlebars->29->1945",
11266
+ "default.handlebars->29->2091",
11267
"default.handlebars->container->column_l->p2->p2info->7"
11268
]
11269
},
@@ -11273,7 +11284,7 @@
11284
"zh-chs": "设备信息导出",
11285
"zh-cht": "裝置訊息輸出",
11286
"xloc": [
11276
- "default.handlebars->29->486"
11287
+ "default.handlebars->29->487"
11288
]
11289
},
11290
{
@@ -11293,7 +11304,7 @@
11304
"zh-chs": "设备位置",
11305
"zh-cht": "裝置位置",
11306
"xloc": [
11296
- "default.handlebars->29->792"
11307
+ "default.handlebars->29->800"
11308
]
11309
},
11310
{
@@ -11313,7 +11324,7 @@
11324
"zh-chs": "设备消息",
11325
"zh-cht": "裝置訊息",
11326
"xloc": [
11316
- "default.handlebars->29->717"
11327
+ "default.handlebars->29->722"
11328
]
11329
},
11330
{
@@ -11334,9 +11345,9 @@
11345
"zh-cht": "裝置名稱",
11346
"xloc": [
11347
"default-mobile.handlebars->9->290",
11337
- "default.handlebars->29->2047",
11338
- "default.handlebars->29->288",
11339
- "default.handlebars->29->822",
11348
+ "default.handlebars->29->2055",
11349
+ "default.handlebars->29->289",
11350
+ "default.handlebars->29->830",
11351
"player.handlebars->3->9"
11352
]
11353
},
@@ -11357,16 +11368,19 @@
11368
"zh-chs": "设备通知",
11369
"zh-cht": "裝置通知",
11370
"xloc": [
11360
- "default.handlebars->29->474",
11361
- "default.handlebars->29->719"
11371
+ "default.handlebars->29->475",
11372
+ "default.handlebars->29->724"
11373
]
11374
},
11375
+ {
11376
+ "en": "Device Sharing"
11377
+ },
11378
{
11379
"en": "Device Sharing Link",
11380
"fr": "Lien de partage de l'appareil",
11381
"nl": "Apparaat deel Link",
11382
"xloc": [
11369
- "default.handlebars->29->671"
11383
+ "default.handlebars->29->672"
11384
]
11385
},
11386
{
@@ -11406,8 +11420,8 @@
11420
"zh-chs": "设备连接。",
11421
"zh-cht": "裝置連接。",
11422
"xloc": [
11409
- "default.handlebars->29->1260",
11410
- "default.handlebars->29->1530"
11423
+ "default.handlebars->29->1268",
11424
+ "default.handlebars->29->1538"
11425
]
11426
},
11427
{
@@ -11427,8 +11441,8 @@
11441
"zh-chs": "设备断开连接。",
11442
"zh-cht": "裝置斷開連接。",
11443
"xloc": [
11430
- "default.handlebars->29->1261",
11431
- "default.handlebars->29->1531"
11444
+ "default.handlebars->29->1269",
11445
+ "default.handlebars->29->1539"
11446
]
11447
},
11448
{
@@ -11448,7 +11462,7 @@
11462
"zh-chs": "创建的设备组:{0}",
11463
"zh-cht": "設備組已創建:{0}",
11464
"xloc": [
11451
- "default.handlebars->29->1667"
11465
+ "default.handlebars->29->1675"
11466
]
11467
},
11468
{
@@ -11468,7 +11482,7 @@
11482
"zh-chs": "设备组已删除:{0}",
11483
"zh-cht": "設備組已刪除:{0}",
11484
"xloc": [
11471
- "default.handlebars->29->1668"
11485
+ "default.handlebars->29->1676"
11486
]
11487
},
11488
{
@@ -11488,7 +11502,7 @@
11502
"zh-chs": "设备组成员身份已更改:{0}",
11503
"zh-cht": "設備組成員身份已更改:{0}",
11504
"xloc": [
11491
- "default.handlebars->29->1669"
11505
+ "default.handlebars->29->1677"
11506
]
11507
},
11508
{
@@ -11508,7 +11522,7 @@
11522
"zh-chs": "其他设备组管理员可以查看和更改设备组注释。",
11523
"zh-cht": "其他裝置群管理員可以查看和更改裝置群註釋。",
11524
"xloc": [
11511
- "default.handlebars->29->714"
11525
+ "default.handlebars->29->719"
11526
]
11527
},
11528
{
@@ -11528,7 +11542,7 @@
11542
"zh-chs": "设备组通知已更改",
11543
"zh-cht": "設備組通知已更改",
11544
"xloc": [
11531
- "default.handlebars->29->1664"
11545
+ "default.handlebars->29->1672"
11546
]
11547
},
11548
{
@@ -11548,7 +11562,7 @@
11562
"zh-chs": "未删除的设备组:{0}",
11563
"zh-cht": "未刪除的設備組:{0}",
11564
"xloc": [
11551
- "default.handlebars->29->1647"
11565
+ "default.handlebars->29->1655"
11566
]
11567
},
11568
{
@@ -11570,8 +11584,8 @@
11584
"xloc": [
11585
"default-mobile.handlebars->9->160",
11586
"default-mobile.handlebars->9->216",
11573
- "default.handlebars->29->212",
11574
- "default.handlebars->29->542"
11587
+ "default.handlebars->29->213",
11588
+ "default.handlebars->29->543"
11589
]
11590
},
11591
{
@@ -11591,7 +11605,7 @@
11605
"zh-chs": "检测到设备,但无法获得电源状态。",
11606
"zh-cht": "檢測到裝置,但無法獲得電源狀態。",
11607
"xloc": [
11594
- "default.handlebars->29->413"
11608
+ "default.handlebars->29->414"
11609
]
11610
},
11611
{
@@ -11612,7 +11626,7 @@
11626
"zh-cht": "裝置正在休眠(S4)",
11627
"xloc": [
11628
"default-mobile.handlebars->9->200",
11615
- "default.handlebars->29->419"
11629
+ "default.handlebars->29->420"
11630
]
11631
},
11632
{
@@ -11633,7 +11647,7 @@
11647
"zh-cht": "裝置處於深度睡眠狀態(S3)",
11648
"xloc": [
11649
"default-mobile.handlebars->9->199",
11636
- "default.handlebars->29->418"
11650
+ "default.handlebars->29->419"
11651
]
11652
},
11653
{
@@ -11653,7 +11667,7 @@
11667
"zh-chs": "设备处于深度睡眠状态(S3)。",
11668
"zh-cht": "裝置處於深度睡眠狀態(S3)。",
11669
"xloc": [
11656
- "default.handlebars->29->407"
11670
+ "default.handlebars->29->408"
11671
]
11672
},
11673
{
@@ -11673,7 +11687,7 @@
11687
"zh-chs": "设备处于休眠状态(S4)。",
11688
"zh-cht": "裝置處於休眠狀態(S4)。",
11689
"xloc": [
11676
- "default.handlebars->29->409"
11690
+ "default.handlebars->29->410"
11691
]
11692
},
11693
{
@@ -11693,7 +11707,7 @@
11707
"zh-chs": "设备处于关机状态(S5)。",
11708
"zh-cht": "裝置處於關機狀態(S5)。",
11709
"xloc": [
11696
- "default.handlebars->29->411"
11710
+ "default.handlebars->29->412"
11711
]
11712
},
11713
{
@@ -11714,7 +11728,7 @@
11728
"zh-cht": "裝置處於睡眠狀態(S1)",
11729
"xloc": [
11730
"default-mobile.handlebars->9->197",
11717
- "default.handlebars->29->416"
11731
+ "default.handlebars->29->417"
11732
]
11733
},
11734
{
@@ -11734,7 +11748,7 @@
11748
"zh-chs": "设备处于睡眠状态(S1)。",
11749
"zh-cht": "裝置處於睡眠狀態(S1)。",
11750
"xloc": [
11737
- "default.handlebars->29->403"
11751
+ "default.handlebars->29->404"
11752
]
11753
},
11754
{
@@ -11755,7 +11769,7 @@
11769
"zh-cht": "裝置處於睡眠狀態(S2)",
11770
"xloc": [
11771
"default-mobile.handlebars->9->198",
11758
- "default.handlebars->29->417"
11772
+ "default.handlebars->29->418"
11773
]
11774
},
11775
{
@@ -11775,7 +11789,7 @@
11789
"zh-chs": "设备处于睡眠状态(S2)。",
11790
"zh-cht": "裝置處於睡眠狀態(S2)。",
11791
"xloc": [
11778
- "default.handlebars->29->405"
11792
+ "default.handlebars->29->406"
11793
]
11794
},
11795
{
@@ -11796,7 +11810,7 @@
11810
"zh-cht": "裝置處於軟關機狀態(S5)",
11811
"xloc": [
11812
"default-mobile.handlebars->9->201",
11799
- "default.handlebars->29->420"
11813
+ "default.handlebars->29->421"
11814
]
11815
},
11816
{
@@ -11818,8 +11832,8 @@
11832
"xloc": [
11833
"default-mobile.handlebars->9->159",
11834
"default-mobile.handlebars->9->215",
11821
- "default.handlebars->29->211",
11822
- "default.handlebars->29->541"
11835
+ "default.handlebars->29->212",
11836
+ "default.handlebars->29->542"
11837
]
11838
},
11839
{
@@ -11840,7 +11854,7 @@
11854
"zh-cht": "裝置已連接電源",
11855
"xloc": [
11856
"default-mobile.handlebars->9->196",
11843
- "default.handlebars->29->415"
11857
+ "default.handlebars->29->416"
11858
]
11859
},
11860
{
@@ -11860,7 +11874,7 @@
11874
"zh-chs": "设备已连接电源。",
11875
"zh-cht": "裝置已連接電源。",
11876
"xloc": [
11863
- "default.handlebars->29->401"
11877
+ "default.handlebars->29->402"
11878
]
11879
},
11880
{
@@ -11881,7 +11895,7 @@
11895
"zh-cht": "裝置存在,但無法確定電源狀態",
11896
"xloc": [
11897
"default-mobile.handlebars->9->202",
11884
- "default.handlebars->29->421"
11898
+ "default.handlebars->29->422"
11899
]
11900
},
11901
{
@@ -11901,7 +11915,7 @@
11915
"zh-chs": "设备名称",
11916
"zh-cht": "裝置名稱",
11917
"xloc": [
11904
- "default.handlebars->29->533"
11918
+ "default.handlebars->29->534"
11919
]
11920
},
11921
{
@@ -11921,7 +11935,7 @@
11935
"zh-chs": "设备通知",
11936
"zh-cht": "設備通知",
11937
"xloc": [
11924
- "default.handlebars->29->443"
11938
+ "default.handlebars->29->444"
11939
]
11940
},
11941
{
@@ -11941,7 +11955,7 @@
11955
"zh-chs": "设备请求激活Intel(R)AMT ACM,FQDN:{0}",
11956
"zh-cht": "設備請求激活Intel(R)AMT ACM,FQDN:{0}",
11957
"xloc": [
11944
- "default.handlebars->29->1649"
11958
+ "default.handlebars->29->1657"
11959
]
11960
},
11961
{
@@ -11978,8 +11992,8 @@
11992
"zh-chs": "设备",
11993
"zh-cht": "裝置",
11994
"xloc": [
11981
- "default.handlebars->29->1827",
11982
- "default.handlebars->29->1867"
11995
+ "default.handlebars->29->1835",
11996
+ "default.handlebars->29->1875"
11997
]
11998
},
11999
{
@@ -11999,7 +12013,7 @@
12013
"zh-chs": "已禁用",
12014
"zh-cht": "已禁用",
12015
"xloc": [
12002
- "default.handlebars->29->587"
12016
+ "default.handlebars->29->588"
12017
]
12018
},
12019
{
@@ -12019,7 +12033,7 @@
12033
"zh-chs": "禁用的电子邮件两因素身份验证",
12034
"zh-cht": "禁用的電子郵件兩因素身份驗證",
12035
"xloc": [
12022
- "default.handlebars->29->1680"
12036
+ "default.handlebars->29->1688"
12037
]
12038
},
12039
{
@@ -12041,8 +12055,8 @@
12055
"xloc": [
12056
"default-mobile.handlebars->9->302",
12057
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3",
12044
- "default.handlebars->29->1353",
12045
- "default.handlebars->29->885",
12058
+ "default.handlebars->29->1361",
12059
+ "default.handlebars->29->893",
12060
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->disconnectbutton1span",
12061
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->disconnectbutton2span",
12062
"desktop.handlebars->p11->deskarea0->deskarea1->3->disconnectbutton1span",
@@ -12089,10 +12103,10 @@
12103
"default-mobile.handlebars->9->1",
12104
"default-mobile.handlebars->container->page_content->column_l->p10->p10desktop->deskarea1->1->3->deskstatus",
12105
"default-mobile.handlebars->container->page_content->column_l->p10->p10files->p13toolbar->1->0->1->3->p13Status",
12092
- "default.handlebars->29->223",
12093
- "default.handlebars->29->243",
12094
- "default.handlebars->29->246",
12095
- "default.handlebars->29->273",
12106
+ "default.handlebars->29->224",
12107
+ "default.handlebars->29->244",
12108
+ "default.handlebars->29->247",
12109
+ "default.handlebars->29->274",
12110
"default.handlebars->29->8",
12111
"default.handlebars->container->column_l->p11->deskarea0->deskarea1->3->deskstatus",
12112
"default.handlebars->container->column_l->p12->termTable->1->1->0->1->3->termstatus",
@@ -12119,7 +12133,7 @@
12133
"zh-chs": "在远程设备上显示一个消息框。",
12134
"zh-cht": "在遠程裝置上顯示一個訊息框。",
12135
"xloc": [
12122
- "default.handlebars->29->718"
12136
+ "default.handlebars->29->723"
12137
]
12138
},
12139
{
@@ -12159,7 +12173,7 @@
12173
"zh-chs": "在远程设备上显示短信",
12174
"zh-cht": "在遠程裝置上顯示短信",
12175
"xloc": [
12162
- "default.handlebars->29->624"
12176
+ "default.handlebars->29->625"
12177
]
12178
},
12179
{
@@ -12179,7 +12193,7 @@
12193
"zh-chs": "显示设备组名称",
12194
"zh-cht": "顯示裝置群名稱",
12195
"xloc": [
12182
- "default.handlebars->29->1259"
12196
+ "default.handlebars->29->1267"
12197
]
12198
},
12199
{
@@ -12199,7 +12213,7 @@
12213
"zh-chs": "显示名称",
12214
"zh-cht": "顯示名稱",
12215
"xloc": [
12202
- "default.handlebars->29->854"
12216
+ "default.handlebars->29->862"
12217
]
12218
},
12219
{
@@ -12219,7 +12233,7 @@
12233
"zh-chs": "显示公共连结",
12234
"zh-cht": "顯示公共鏈結",
12235
"xloc": [
12222
- "default.handlebars->29->1550"
12236
+ "default.handlebars->29->1558"
12237
]
12238
},
12239
{
@@ -12239,7 +12253,7 @@
12253
"zh-chs": "显示消息框,标题= “{0}”,消息= “{1}”",
12254
"zh-cht": "顯示消息框,標題= “{0}”,消息= “{1}”",
12255
"xloc": [
12242
- "default.handlebars->29->1609"
12256
+ "default.handlebars->29->1617"
12257
]
12258
},
12259
{
@@ -12259,7 +12273,7 @@
12273
"zh-chs": "显示吐司消息,标题= “{0}”,消息= “{1}”",
12274
"zh-cht": "顯示吐司消息,標題= “{0}”,消息= “{1}”",
12275
"xloc": [
12262
- "default.handlebars->29->1617"
12276
+ "default.handlebars->29->1625"
12277
]
12278
},
12279
{
@@ -12279,8 +12293,8 @@
12293
"zh-chs": "什么都不做",
12294
"zh-cht": "什麼都不做",
12295
"xloc": [
12282
- "default.handlebars->29->1400",
12283
- "default.handlebars->29->1404"
12296
+ "default.handlebars->29->1408",
12297
+ "default.handlebars->29->1412"
12298
]
12299
},
12300
{
@@ -12300,10 +12314,10 @@
12314
"zh-chs": "域",
12315
"zh-cht": "域",
12316
"xloc": [
12303
- "default.handlebars->29->1791",
12304
- "default.handlebars->29->1839",
12305
- "default.handlebars->29->1848",
12306
- "default.handlebars->29->1916",
12317
+ "default.handlebars->29->1799",
12318
+ "default.handlebars->29->1847",
12319
+ "default.handlebars->29->1856",
12320
+ "default.handlebars->29->1924",
12321
"mstsc.handlebars->main->1->3->1->2->1->0",
12322
"mstsc.handlebars->main->1->3->1->2->3"
12323
]
@@ -12311,7 +12325,7 @@
12325
{
12326
"en": "Don't change, keep CCM if setup",
12327
"xloc": [
12314
- "default.handlebars->29->1396"
12328
+ "default.handlebars->29->1404"
12329
]
12330
},
12331
{
@@ -12348,7 +12362,7 @@
12362
"zh-chs": "不要连接到服务器",
12363
"zh-cht": "不要連接到伺服器",
12364
"xloc": [
12351
- "default.handlebars->29->1405"
12365
+ "default.handlebars->29->1413"
12366
]
12367
},
12368
{
@@ -12468,7 +12482,7 @@
12482
"zh-cht": "下載檔案",
12483
"xloc": [
12484
"default-mobile.handlebars->9->332",
12471
- "default.handlebars->29->924"
12485
+ "default.handlebars->29->932"
12486
]
12487
},
12488
{
@@ -12488,7 +12502,7 @@
12502
"zh-chs": "下载MeshCentral Router,一个TCP端口映射工具。",
12503
"zh-cht": "下載MeshCentral Router,一個TCP端口映射工具。",
12504
"xloc": [
12491
- "default.handlebars->29->241"
12505
+ "default.handlebars->29->242"
12506
]
12507
},
12508
{
@@ -12508,7 +12522,7 @@
12522
"zh-chs": "下载MeshCmd",
12523
"zh-cht": "下載MeshCmd",
12524
"xloc": [
12511
- "default.handlebars->29->814"
12525
+ "default.handlebars->29->822"
12526
]
12527
},
12528
{
@@ -12528,7 +12542,7 @@
12542
"zh-chs": "下载MeshCmd,这是一个多功能的指令执行工具。",
12543
"zh-cht": "下載MeshCmd,這是一個多功能的指令執行工具。",
12544
"xloc": [
12531
- "default.handlebars->29->239"
12545
+ "default.handlebars->29->240"
12546
]
12547
},
12548
{
@@ -12568,7 +12582,7 @@
12582
"zh-chs": "下载报告",
12583
"zh-cht": "下載報告",
12584
"xloc": [
12571
- "default.handlebars->29->1709",
12585
+ "default.handlebars->29->1717",
12586
"default.handlebars->container->column_l->p3->3->1->0->3"
12587
]
12588
},
@@ -12589,7 +12603,7 @@
12603
"zh-chs": "下载带有指令档案的“ meshcmd”,以通过此服务器将网络讯息发送到该设备。紧记编辑meshaction.txt并添加您的帐户密码或进行任何必要的更改。",
12604
"zh-cht": "下載帶有指令檔案的“ meshcmd”,以通過此服務器將網絡讯息發送到該裝置。緊記編輯meshaction.txt並新增你的帳戶密碼或進行任何必要的更改。",
12605
"xloc": [
12592
- "default.handlebars->29->807"
12606
+ "default.handlebars->29->815"
12607
]
12608
},
12609
{
@@ -12669,7 +12683,7 @@
12683
"zh-chs": "下载电源事件",
12684
"zh-cht": "下載電源事件",
12685
"xloc": [
12672
- "default.handlebars->29->766"
12686
+ "default.handlebars->29->774"
12687
]
12688
},
12689
{
@@ -12749,7 +12763,7 @@
12763
"zh-chs": "使用以下一种档案格式下载设备列表。",
12764
"zh-cht": "使用以下一種檔案格式下載裝置列表。",
12765
"xloc": [
12752
- "default.handlebars->29->481"
12766
+ "default.handlebars->29->482"
12767
]
12768
},
12769
{
@@ -12769,7 +12783,7 @@
12783
"zh-chs": "使用以下一种档案格式下载事件列表。",
12784
"zh-cht": "使用以下一種檔案格式下載事件列表。",
12785
"xloc": [
12772
- "default.handlebars->29->1710"
12786
+ "default.handlebars->29->1718"
12787
]
12788
},
12789
{
@@ -12789,7 +12803,7 @@
12803
"zh-chs": "使用以下一种档案格式下载用户列表。",
12804
"zh-cht": "使用以下一種檔案格式下載用戶列表。",
12805
"xloc": [
12792
- "default.handlebars->29->1775"
12806
+ "default.handlebars->29->1783"
12807
]
12808
},
12809
{
@@ -12870,7 +12884,7 @@
12884
"zh-chs": "下载:“{0}”",
12885
"zh-cht": "下載:“{0}”",
12886
"xloc": [
12873
- "default.handlebars->29->1640"
12887
+ "default.handlebars->29->1648"
12888
]
12889
},
12890
{
@@ -12910,7 +12924,7 @@
12924
"zh-chs": "代理重复",
12925
"zh-cht": "代理重複",
12926
"xloc": [
12913
- "default.handlebars->29->2079"
12927
+ "default.handlebars->29->2087"
12928
]
12929
},
12930
{
@@ -12950,7 +12964,7 @@
12964
"zh-chs": "复制用户组",
12965
"zh-cht": "複製用戶群",
12966
"xloc": [
12953
- "default.handlebars->29->1843"
12967
+ "default.handlebars->29->1851"
12968
]
12969
},
12970
{
@@ -12987,8 +13001,8 @@
13001
"zh-chs": "持续时间",
13002
"zh-cht": "持續時間",
13003
"xloc": [
12990
- "default.handlebars->29->2033",
12991
- "default.handlebars->29->2053",
13004
+ "default.handlebars->29->2041",
13005
+ "default.handlebars->29->2061",
13006
"player.handlebars->3->2"
13007
]
13008
},
@@ -13026,7 +13040,7 @@
13040
"zh-chs": "荷兰文(比利时)",
13041
"zh-cht": "荷蘭文(比利時)",
13042
"xloc": [
13029
- "default.handlebars->29->1099"
13043
+ "default.handlebars->29->1107"
13044
]
13045
},
13046
{
@@ -13046,7 +13060,7 @@
13060
"zh-chs": "荷兰文(标准)",
13061
"zh-cht": "荷蘭文(標準)",
13062
"xloc": [
13049
- "default.handlebars->29->1098"
13063
+ "default.handlebars->29->1106"
13064
]
13065
},
13066
{
@@ -13066,8 +13080,8 @@
13080
"zh-chs": "电邮“ {0} ”已在其他帐户上使用。更改电邮地址,然后重试。",
13081
"zh-cht": "電郵“ {0} ”已在其他帳戶上使用。更改電郵地址,然後重試。",
13082
"xloc": [
13069
- "message.handlebars->3->8",
13070
- "message2.handlebars->5->8"
13083
+ "message.handlebars->3->9",
13084
+ "message2.handlebars->5->9"
13085
]
13086
},
13087
{
@@ -13087,8 +13101,8 @@
13101
"zh-chs": "用户“ {1} ”的电邮“ {0} ”已通过验证。",
13102
"zh-cht": "用戶“ {1} ”的電郵“ {0} ”已通過驗證。",
13103
"xloc": [
13090
- "message.handlebars->3->7",
13091
- "message2.handlebars->5->7"
13104
+ "message.handlebars->3->8",
13105
+ "message2.handlebars->5->8"
13106
]
13107
},
13108
{
@@ -13108,8 +13122,8 @@
13122
"zh-chs": "未验证用户“ {1} ”的电邮“ {0} ”。",
13123
"zh-cht": "未驗證用戶“ {1} ”的電郵“ {0} ”。",
13124
"xloc": [
13111
- "message.handlebars->3->10",
13112
- "message2.handlebars->5->10"
13125
+ "message.handlebars->3->11",
13126
+ "message2.handlebars->5->11"
13127
]
13128
},
13129
{
@@ -13166,8 +13180,8 @@
13180
"zh-chs": "错误:无效的帐户检查,验证网址仅在30分钟内有效。",
13181
"zh-cht": "錯誤:無效的帳戶檢查,驗證網址僅在30分鐘內有效。",
13182
"xloc": [
13169
- "message.handlebars->3->14",
13170
- "message2.handlebars->5->14"
13183
+ "message.handlebars->3->15",
13184
+ "message2.handlebars->5->15"
13185
]
13186
},
13187
{
@@ -13187,8 +13201,8 @@
13201
"zh-chs": "错误:无效的帐户检查。",
13202
"zh-cht": "錯誤:無效的帳戶檢查。",
13203
"xloc": [
13190
- "message.handlebars->3->13",
13191
- "message2.handlebars->5->13"
13204
+ "message.handlebars->3->14",
13205
+ "message2.handlebars->5->14"
13206
]
13207
},
13208
{
@@ -13208,8 +13222,8 @@
13222
"zh-chs": "错误:无效的域。",
13223
"zh-cht": "錯誤:無效的域。",
13224
"xloc": [
13211
- "message.handlebars->3->4",
13212
- "message2.handlebars->5->4"
13225
+ "message.handlebars->3->5",
13226
+ "message2.handlebars->5->5"
13227
]
13228
},
13229
{
@@ -13229,8 +13243,8 @@
13243
"zh-chs": "错误:用户“ {1} ”的电邮“ {0} ”无效。",
13244
"zh-cht": "錯誤:用戶“ {1} ”的電郵“ {0} ”無效。",
13245
"xloc": [
13232
- "message.handlebars->3->6",
13233
- "message2.handlebars->5->6"
13246
+ "message.handlebars->3->7",
13247
+ "message2.handlebars->5->7"
13248
]
13249
},
13250
{
@@ -13250,8 +13264,8 @@
13264
"zh-chs": "错误:无效的用户名“ {0} ”。",
13265
"zh-cht": "錯誤:無效的用戶名“ {0} ”。",
13266
"xloc": [
13253
- "message.handlebars->3->5",
13254
- "message2.handlebars->5->5"
13267
+ "message.handlebars->3->6",
13268
+ "message2.handlebars->5->6"
13269
]
13270
},
13271
{
@@ -13335,7 +13349,7 @@
13349
"zh-cht": "編輯裝置",
13350
"xloc": [
13351
"default-mobile.handlebars->9->295",
13338
- "default.handlebars->29->827"
13352
+ "default.handlebars->29->835"
13353
]
13354
},
13355
{
@@ -13358,10 +13372,10 @@
13372
"default-mobile.handlebars->9->421",
13373
"default-mobile.handlebars->9->423",
13374
"default-mobile.handlebars->9->443",
13361
- "default.handlebars->29->1417",
13362
- "default.handlebars->29->1449",
13363
- "default.handlebars->29->1473",
13364
- "default.handlebars->29->1485"
13375
+ "default.handlebars->29->1425",
13376
+ "default.handlebars->29->1457",
13377
+ "default.handlebars->29->1481",
13378
+ "default.handlebars->29->1493"
13379
]
13380
},
13381
{
@@ -13381,7 +13395,7 @@
13395
"zh-chs": "编辑设备组功能",
13396
"zh-cht": "編輯裝置群功能",
13397
"xloc": [
13384
- "default.handlebars->29->1435"
13398
+ "default.handlebars->29->1443"
13399
]
13400
},
13401
{
@@ -13401,8 +13415,8 @@
13415
"zh-chs": "编辑设备组权限",
13416
"zh-cht": "編輯裝置群權限",
13417
"xloc": [
13404
- "default.handlebars->29->1470",
13405
- "default.handlebars->29->1482"
13418
+ "default.handlebars->29->1478",
13419
+ "default.handlebars->29->1490"
13420
]
13421
},
13422
{
@@ -13422,7 +13436,7 @@
13436
"zh-chs": "编辑设备组用户同意",
13437
"zh-cht": "編輯裝置群用戶同意",
13438
"xloc": [
13425
- "default.handlebars->29->1418"
13439
+ "default.handlebars->29->1426"
13440
]
13441
},
13442
{
@@ -13443,7 +13457,7 @@
13457
"zh-cht": "編輯裝置筆記",
13458
"xloc": [
13459
"default-mobile.handlebars->9->435",
13446
- "default.handlebars->29->1462"
13460
+ "default.handlebars->29->1470"
13461
]
13462
},
13463
{
@@ -13463,8 +13477,8 @@
13477
"zh-chs": "编辑设备权限",
13478
"zh-cht": "編輯裝置權限",
13479
"xloc": [
13466
- "default.handlebars->29->1475",
13467
- "default.handlebars->29->1477"
13480
+ "default.handlebars->29->1483",
13481
+ "default.handlebars->29->1485"
13482
]
13483
},
13484
{
@@ -13484,7 +13498,7 @@
13498
"zh-chs": "编辑设备标签",
13499
"zh-cht": "編輯裝置標籤",
13500
"xloc": [
13487
- "default.handlebars->29->469"
13501
+ "default.handlebars->29->470"
13502
]
13503
},
13504
{
@@ -13504,7 +13518,7 @@
13518
"zh-chs": "编辑设备用户同意",
13519
"zh-cht": "編輯裝置用戶同意",
13520
"xloc": [
13507
- "default.handlebars->29->1420"
13521
+ "default.handlebars->29->1428"
13522
]
13523
},
13524
{
@@ -13524,7 +13538,7 @@
13538
"zh-chs": "编辑群组",
13539
"zh-cht": "編輯群組",
13540
"xloc": [
13527
- "default.handlebars->29->692"
13541
+ "default.handlebars->29->697"
13542
]
13543
},
13544
{
@@ -13548,10 +13562,10 @@
13562
"default-mobile.handlebars->9->242",
13563
"default-mobile.handlebars->9->245",
13564
"default-mobile.handlebars->9->285",
13551
- "default.handlebars->29->571",
13552
- "default.handlebars->29->574",
13553
- "default.handlebars->29->577",
13554
- "default.handlebars->29->773"
13565
+ "default.handlebars->29->572",
13566
+ "default.handlebars->29->575",
13567
+ "default.handlebars->29->578",
13568
+ "default.handlebars->29->781"
13569
]
13570
},
13571
{
@@ -13572,7 +13586,7 @@
13586
"zh-cht": "編輯筆記",
13587
"xloc": [
13588
"default-mobile.handlebars->9->450",
13575
- "default.handlebars->29->1492"
13589
+ "default.handlebars->29->1500"
13590
]
13591
},
13592
{
@@ -13592,7 +13606,7 @@
13606
"zh-chs": "编辑用户同意",
13607
"zh-cht": "編輯用戶同意",
13608
"xloc": [
13595
- "default.handlebars->29->1419"
13609
+ "default.handlebars->29->1427"
13610
]
13611
},
13612
{
@@ -13612,7 +13626,7 @@
13626
"zh-chs": "编辑用户设备组权限",
13627
"zh-cht": "編輯用戶裝置群權限",
13628
"xloc": [
13615
- "default.handlebars->29->1483"
13629
+ "default.handlebars->29->1491"
13630
]
13631
},
13632
{
@@ -13632,7 +13646,7 @@
13646
"zh-chs": "编辑用户设备权限",
13647
"zh-cht": "編輯用戶裝置權限",
13648
"xloc": [
13635
- "default.handlebars->29->1478"
13649
+ "default.handlebars->29->1486"
13650
]
13651
},
13652
{
@@ -13652,7 +13666,7 @@
13666
"zh-chs": "编辑用户组",
13667
"zh-cht": "編輯用戶群",
13668
"xloc": [
13655
- "default.handlebars->29->1894"
13669
+ "default.handlebars->29->1902"
13670
]
13671
},
13672
{
@@ -13672,14 +13686,14 @@
13686
"zh-chs": "编辑用户组设备权限",
13687
"zh-cht": "編輯用戶群裝置權限",
13688
"xloc": [
13675
- "default.handlebars->29->1480"
13689
+ "default.handlebars->29->1488"
13690
]
13691
},
13692
{
13693
"en": "Edit User Group User Consent",
13694
"nl": "Bewerk groepsgebruikerstoestemming",
13695
"xloc": [
13682
- "default.handlebars->29->1421"
13696
+ "default.handlebars->29->1429"
13697
]
13698
},
13699
{
@@ -13720,7 +13734,7 @@
13734
"zh-chs": "编辑标签",
13735
"zh-cht": "編輯標籤",
13736
"xloc": [
13723
- "default.handlebars->29->444"
13737
+ "default.handlebars->29->445"
13738
]
13739
},
13740
{
@@ -13741,12 +13755,12 @@
13755
"zh-cht": "電郵",
13756
"xloc": [
13757
"default-mobile.handlebars->9->78",
13744
- "default.handlebars->29->1793",
13745
- "default.handlebars->29->1920",
13746
- "default.handlebars->29->1922",
13747
- "default.handlebars->29->1962",
13748
- "default.handlebars->29->1978",
13749
- "default.handlebars->29->320",
13758
+ "default.handlebars->29->1801",
13759
+ "default.handlebars->29->1928",
13760
+ "default.handlebars->29->1930",
13761
+ "default.handlebars->29->1970",
13762
+ "default.handlebars->29->1986",
13763
+ "default.handlebars->29->321",
13764
"login-mobile.handlebars->5->42",
13765
"login-mobile.handlebars->container->page_content->column_l->1->1->0->1->tokenpanel->1->7->1->4->1->3",
13766
"login.handlebars->5->44",
@@ -13778,7 +13792,7 @@
13792
"zh-cht": "電郵地址變更",
13793
"xloc": [
13794
"default-mobile.handlebars->9->79",
13781
- "default.handlebars->29->1268"
13795
+ "default.handlebars->29->1276"
13796
]
13797
},
13798
{
@@ -13799,7 +13813,7 @@
13813
"zh-cht": "電郵認證",
13814
"xloc": [
13815
"default-mobile.handlebars->9->68",
13802
- "default.handlebars->29->1036"
13816
+ "default.handlebars->29->1044"
13817
]
13818
},
13819
{
@@ -13859,7 +13873,7 @@
13873
"zh-cht": "電郵驗證",
13874
"xloc": [
13875
"default-mobile.handlebars->9->77",
13862
- "default.handlebars->29->1266"
13876
+ "default.handlebars->29->1274"
13877
]
13878
},
13879
{
@@ -13879,7 +13893,7 @@
13893
"zh-chs": "电邮邀请",
13894
"zh-cht": "電郵邀請",
13895
"xloc": [
13882
- "default.handlebars->29->317"
13896
+ "default.handlebars->29->318"
13897
]
13898
},
13899
{
@@ -13899,7 +13913,7 @@
13913
"zh-chs": "电邮未验证",
13914
"zh-cht": "電郵未驗證",
13915
"xloc": [
13902
- "default.handlebars->29->1739"
13916
+ "default.handlebars->29->1747"
13917
]
13918
},
13919
{
@@ -13907,8 +13921,8 @@
13921
"nl": "Email is geverifieerd",
13922
"fr": "Email vérifié",
13923
"xloc": [
13910
- "default.handlebars->29->1740",
13911
- "default.handlebars->29->1914"
13924
+ "default.handlebars->29->1748",
13925
+ "default.handlebars->29->1922"
13926
]
13927
},
13928
{
@@ -13928,7 +13942,7 @@
13942
"zh-chs": "电邮已验证。",
13943
"zh-cht": "電郵已驗證。",
13944
"xloc": [
13931
- "default.handlebars->29->1799"
13945
+ "default.handlebars->29->1807"
13946
]
13947
},
13948
{
@@ -13948,7 +13962,7 @@
13962
"zh-chs": "电邮未验证",
13963
"zh-cht": "電郵未驗證",
13964
"xloc": [
13951
- "default.handlebars->29->1915"
13965
+ "default.handlebars->29->1923"
13966
]
13967
},
13968
{
@@ -14012,7 +14026,7 @@
14026
"zh-chs": "已通过电邮验证,并且需要重置密码。",
14027
"zh-cht": "已通過電郵驗證,並且需要重置密碼。",
14028
"xloc": [
14015
- "default.handlebars->29->1800"
14029
+ "default.handlebars->29->1808"
14030
]
14031
},
14032
{
@@ -14032,7 +14046,7 @@
14046
"zh-chs": "电邮/短信流量",
14047
"zh-cht": "電郵/短信流量",
14048
"xloc": [
14035
- "default.handlebars->29->2121"
14049
+ "default.handlebars->29->2129"
14050
]
14051
},
14052
{
@@ -14078,7 +14092,7 @@
14092
"zh-chs": "启用邀请代码",
14093
"zh-cht": "啟用邀請代碼",
14094
"xloc": [
14081
- "default.handlebars->29->1515"
14095
+ "default.handlebars->29->1523"
14096
]
14097
},
14098
{
@@ -14119,7 +14133,7 @@
14133
"zh-cht": "啟用電郵二因子鑑別。",
14134
"xloc": [
14135
"default-mobile.handlebars->9->70",
14122
- "default.handlebars->29->1038"
14136
+ "default.handlebars->29->1046"
14137
]
14138
},
14139
{
@@ -14159,7 +14173,7 @@
14173
"zh-chs": "已启用",
14174
"zh-cht": "已啟用",
14175
"xloc": [
14162
- "default.handlebars->29->2055"
14176
+ "default.handlebars->29->2063"
14177
]
14178
},
14179
{
@@ -14179,7 +14193,7 @@
14193
"zh-chs": "启用电子邮件两因素身份验证",
14194
"zh-cht": "啟用電子郵件兩因素身份驗證",
14195
"xloc": [
14182
- "default.handlebars->29->1679"
14196
+ "default.handlebars->29->1687"
14197
]
14198
},
14199
{
@@ -14219,7 +14233,7 @@
14233
"zh-chs": "时间结束",
14234
"zh-cht": "時間結束",
14235
"xloc": [
14222
- "default.handlebars->29->2052"
14236
+ "default.handlebars->29->2060"
14237
]
14238
},
14239
{
@@ -14239,7 +14253,7 @@
14253
"zh-chs": "从{1}到{2},{3}秒结束了桌面会话“{0}”",
14254
"zh-cht": "從{1}到{2},{3}秒結束了桌面會話“{0}”",
14255
"xloc": [
14242
- "default.handlebars->29->1602"
14256
+ "default.handlebars->29->1610"
14257
]
14258
},
14259
{
@@ -14259,7 +14273,7 @@
14273
"zh-chs": "从{1}到{2},{3}秒结束了文件管理会话“{0}”",
14274
"zh-cht": "從{1}到{2},{3}秒結束了文件管理會話“{0}”",
14275
"xloc": [
14262
- "default.handlebars->29->1603"
14276
+ "default.handlebars->29->1611"
14277
]
14278
},
14279
{
@@ -14279,7 +14293,7 @@
14293
"zh-chs": "从{1}到{2},{3}秒结束了中继会话“{0}”",
14294
"zh-cht": "從{1}到{2},{3}秒結束了中繼會話“{0}”",
14295
"xloc": [
14282
- "default.handlebars->29->1600"
14296
+ "default.handlebars->29->1608"
14297
]
14298
},
14299
{
@@ -14299,7 +14313,7 @@
14313
"zh-chs": "从{1}到{2},{3}秒结束了终端会话“{0}”",
14314
"zh-cht": "從{1}到{2},{3}秒結束了終端會話“{0}”",
14315
"xloc": [
14302
- "default.handlebars->29->1601"
14316
+ "default.handlebars->29->1609"
14317
]
14318
},
14319
{
@@ -14319,7 +14333,7 @@
14333
"zh-chs": "英文",
14334
"zh-cht": "英文",
14335
"xloc": [
14322
- "default.handlebars->29->1100"
14336
+ "default.handlebars->29->1108"
14337
]
14338
},
14339
{
@@ -14339,7 +14353,7 @@
14353
"zh-chs": "英文(澳洲)",
14354
"zh-cht": "英文(澳洲)",
14355
"xloc": [
14342
- "default.handlebars->29->1101"
14356
+ "default.handlebars->29->1109"
14357
]
14358
},
14359
{
@@ -14359,7 +14373,7 @@
14373
"zh-chs": "英文(伯利茲)",
14374
"zh-cht": "英文(伯利茲)",
14375
"xloc": [
14362
- "default.handlebars->29->1102"
14376
+ "default.handlebars->29->1110"
14377
]
14378
},
14379
{
@@ -14379,7 +14393,7 @@
14393
"zh-chs": "英文(加拿大)",
14394
"zh-cht": "英文(加拿大)",
14395
"xloc": [
14382
- "default.handlebars->29->1103"
14396
+ "default.handlebars->29->1111"
14397
]
14398
},
14399
{
@@ -14399,7 +14413,7 @@
14413
"zh-chs": "英文(爱尔兰)",
14414
"zh-cht": "英文(愛爾蘭)",
14415
"xloc": [
14402
- "default.handlebars->29->1104"
14416
+ "default.handlebars->29->1112"
14417
]
14418
},
14419
{
@@ -14419,7 +14433,7 @@
14433
"zh-chs": "英文(牙买加)",
14434
"zh-cht": "英文(牙買加)",
14435
"xloc": [
14422
- "default.handlebars->29->1105"
14436
+ "default.handlebars->29->1113"
14437
]
14438
},
14439
{
@@ -14439,7 +14453,7 @@
14453
"zh-chs": "英文(纽西兰)",
14454
"zh-cht": "英文(紐西蘭)",
14455
"xloc": [
14442
- "default.handlebars->29->1106"
14456
+ "default.handlebars->29->1114"
14457
]
14458
},
14459
{
@@ -14459,7 +14473,7 @@
14473
"zh-chs": "英文(菲律宾)",
14474
"zh-cht": "英文(菲律賓)",
14475
"xloc": [
14462
- "default.handlebars->29->1107"
14476
+ "default.handlebars->29->1115"
14477
]
14478
},
14479
{
@@ -14479,7 +14493,7 @@
14493
"zh-chs": "英语(南非)",
14494
"zh-cht": "英語(南非)",
14495
"xloc": [
14482
- "default.handlebars->29->1108"
14496
+ "default.handlebars->29->1116"
14497
]
14498
},
14499
{
@@ -14499,7 +14513,7 @@
14513
"zh-chs": "英文(特立尼达和多巴哥)",
14514
"zh-cht": "英文(特立尼達和多巴哥)",
14515
"xloc": [
14502
- "default.handlebars->29->1109"
14516
+ "default.handlebars->29->1117"
14517
]
14518
},
14519
{
@@ -14519,7 +14533,7 @@
14533
"zh-chs": "英文(英国)",
14534
"zh-cht": "英文(英國)",
14535
"xloc": [
14522
- "default.handlebars->29->1110"
14536
+ "default.handlebars->29->1118"
14537
]
14538
},
14539
{
@@ -14539,7 +14553,7 @@
14553
"zh-chs": "美国英文",
14554
"zh-cht": "美國英語",
14555
"xloc": [
14542
- "default.handlebars->29->1111"
14556
+ "default.handlebars->29->1119"
14557
]
14558
},
14559
{
@@ -14559,7 +14573,7 @@
14573
"zh-chs": "英文(津巴布韦)",
14574
"zh-cht": "英文(津巴布韋)",
14575
"xloc": [
14562
- "default.handlebars->29->1112"
14576
+ "default.handlebars->29->1120"
14577
]
14578
},
14579
{
@@ -14579,9 +14593,9 @@
14593
"zh-chs": "输入",
14594
"zh-cht": "輸入",
14595
"xloc": [
14582
- "default.handlebars->29->1294",
14583
- "default.handlebars->29->1295",
14584
- "default.handlebars->29->897"
14596
+ "default.handlebars->29->1302",
14597
+ "default.handlebars->29->1303",
14598
+ "default.handlebars->29->905"
14599
]
14600
},
14601
{
@@ -14601,7 +14615,7 @@
14615
"zh-chs": "输入管理领域名称的逗号分隔列表。",
14616
"zh-cht": "輸入管理領域名稱的逗號分隔列表。",
14617
"xloc": [
14604
- "default.handlebars->29->1804"
14618
+ "default.handlebars->29->1812"
14619
]
14620
},
14621
{
@@ -14621,7 +14635,7 @@
14635
"zh-chs": "输入IP地址范围以扫描英特尔AMT设备。",
14636
"zh-cht": "輸入IP地址範圍以掃描Intel® AMT裝置。",
14637
"xloc": [
14624
- "default.handlebars->29->308"
14638
+ "default.handlebars->29->309"
14639
]
14640
},
14641
{
@@ -14649,7 +14663,7 @@
14663
"nl": "Voer tekst in en klik op OK om deze op afstand te typen. Zorg ervoor dat u de externe cursor op de juiste positie plaatst voordat u verder gaat.",
14664
"fr": "Saisissez le texte puis cliquez sur OK pour le taper à distance. Vérifiez préalablement que le curseur distant est positionné correctement.",
14665
"xloc": [
14652
- "default.handlebars->29->848"
14666
+ "default.handlebars->29->856"
14667
]
14668
},
14669
{
@@ -14711,7 +14725,7 @@
14725
"zh-chs": "输入支持SMS的电话号码。验证后,该号码可用于登录验证和其他通知。",
14726
"zh-cht": "輸入支持SMS的電話號碼。驗證後,該號碼可用於登入驗證和其他通知。",
14727
"xloc": [
14714
- "default.handlebars->29->1033"
14728
+ "default.handlebars->29->1041"
14729
]
14730
},
14731
{
@@ -14771,7 +14785,7 @@
14785
"zh-chs": "世界文",
14786
"zh-cht": "世界語",
14787
"xloc": [
14774
- "default.handlebars->29->1113"
14788
+ "default.handlebars->29->1121"
14789
]
14790
},
14791
{
@@ -14791,7 +14805,7 @@
14805
"zh-chs": "爱沙尼亚文",
14806
"zh-cht": "愛沙尼亞語",
14807
"xloc": [
14794
- "default.handlebars->29->1114"
14808
+ "default.handlebars->29->1122"
14809
]
14810
},
14811
{
@@ -14811,7 +14825,7 @@
14825
"zh-chs": "事件详情",
14826
"zh-cht": "事件詳情",
14827
"xloc": [
14814
- "default.handlebars->29->937"
14828
+ "default.handlebars->29->945"
14829
]
14830
},
14831
{
@@ -14831,7 +14845,7 @@
14845
"zh-chs": "事件列表输出",
14846
"zh-cht": "事件列表輸出",
14847
"xloc": [
14834
- "default.handlebars->29->1715"
14848
+ "default.handlebars->29->1723"
14849
]
14850
},
14851
{
@@ -14925,7 +14939,7 @@
14939
"zh-cht": "到期時間",
14940
"xloc": [
14941
"default.handlebars->29->189",
14928
- "default.handlebars->29->740"
14942
+ "default.handlebars->29->748"
14943
]
14944
},
14945
{
@@ -14972,7 +14986,7 @@
14986
"zh-chs": "输出设备信息",
14987
"zh-cht": "輸出裝置訊息",
14988
"xloc": [
14975
- "default.handlebars->29->449"
14989
+ "default.handlebars->29->450"
14990
]
14991
},
14992
{
@@ -14992,7 +15006,7 @@
15006
"zh-chs": "扩充式ASCII",
15007
"zh-cht": "擴充式ASCII",
15008
"xloc": [
14995
- "default.handlebars->29->876"
15009
+ "default.handlebars->29->884"
15010
]
15011
},
15012
{
@@ -15032,7 +15046,7 @@
15046
"zh-chs": "外部",
15047
"zh-cht": "外部",
15048
"xloc": [
15035
- "default.handlebars->29->2106"
15049
+ "default.handlebars->29->2114"
15050
]
15051
},
15052
{
@@ -15072,7 +15086,7 @@
15086
"zh-chs": "FYRO马其顿语",
15087
"zh-cht": "FYRO馬其頓語",
15088
"xloc": [
15075
- "default.handlebars->29->1164"
15089
+ "default.handlebars->29->1172"
15090
]
15091
},
15092
{
@@ -15092,7 +15106,7 @@
15106
"zh-chs": "法罗语",
15107
"zh-cht": "法羅語",
15108
"xloc": [
15095
- "default.handlebars->29->1115"
15109
+ "default.handlebars->29->1123"
15110
]
15111
},
15112
{
@@ -15132,7 +15146,7 @@
15146
"zh-chs": "本地用户拒绝后无法启动远程桌面",
15147
"zh-cht": "本地用戶拒絕後無法啟動遠程桌面",
15148
"xloc": [
15135
- "default.handlebars->29->1625"
15149
+ "default.handlebars->29->1633"
15150
]
15151
},
15152
{
@@ -15152,7 +15166,7 @@
15166
"zh-chs": "本地用户拒绝后无法启动远程文件",
15167
"zh-cht": "本地用戶拒絕後無法啟動遠程文件",
15168
"xloc": [
15155
- "default.handlebars->29->1632"
15169
+ "default.handlebars->29->1640"
15170
]
15171
},
15172
{
@@ -15172,7 +15186,7 @@
15186
"zh-chs": "无法启动远程终端接合{0}({1})",
15187
"zh-cht": "無法啟動遠程終端接合{0}({1})",
15188
"xloc": [
15175
- "default.handlebars->29->830",
15189
+ "default.handlebars->29->838",
15190
"desktop.handlebars->3->8"
15191
]
15192
},
@@ -15193,7 +15207,7 @@
15207
"zh-chs": "波斯文(波斯文)",
15208
"zh-cht": "波斯語(波斯語)",
15209
"xloc": [
15196
- "default.handlebars->29->1116"
15210
+ "default.handlebars->29->1124"
15211
]
15212
},
15213
{
@@ -15235,7 +15249,7 @@
15249
"zh-chs": "功能",
15250
"zh-cht": "功能",
15251
"xloc": [
15238
- "default.handlebars->29->1339"
15252
+ "default.handlebars->29->1347"
15253
]
15254
},
15255
{
@@ -15255,7 +15269,7 @@
15269
"zh-chs": "斐济",
15270
"zh-cht": "斐濟",
15271
"xloc": [
15258
- "default.handlebars->29->1117"
15272
+ "default.handlebars->29->1125"
15273
]
15274
},
15275
{
@@ -15296,8 +15310,8 @@
15310
"zh-cht": "檔案編輯器",
15311
"xloc": [
15312
"default-mobile.handlebars->9->316",
15299
- "default.handlebars->29->513",
15300
- "default.handlebars->29->908"
15313
+ "default.handlebars->29->514",
15314
+ "default.handlebars->29->916"
15315
]
15316
},
15317
{
@@ -15321,8 +15335,8 @@
15335
"zh-chs": "档案操作",
15336
"zh-cht": "檔案操作",
15337
"xloc": [
15324
- "default.handlebars->29->888",
15325
- "default.handlebars->29->890"
15338
+ "default.handlebars->29->896",
15339
+ "default.handlebars->29->898"
15340
]
15341
},
15342
{
@@ -15362,7 +15376,7 @@
15376
"zh-chs": "文件系统驱动",
15377
"zh-cht": "FileSystemDriver",
15378
"xloc": [
15365
- "default.handlebars->29->857"
15379
+ "default.handlebars->29->865"
15380
]
15381
},
15382
{
@@ -15384,9 +15398,9 @@
15398
"xloc": [
15399
"default-mobile.handlebars->9->171",
15400
"default-mobile.handlebars->9->268",
15387
- "default.handlebars->29->1429",
15388
- "default.handlebars->29->2040",
15389
- "default.handlebars->29->259",
15401
+ "default.handlebars->29->1437",
15402
+ "default.handlebars->29->2048",
15403
+ "default.handlebars->29->260",
15404
"default.handlebars->container->topbar->1->1->MainSubMenuSpan->MainSubMenu->1->0->MainDevFiles",
15405
"default.handlebars->contextMenu->cxfiles"
15406
]
@@ -15428,10 +15442,10 @@
15442
"zh-chs": "档案通知",
15443
"zh-cht": "檔案通知",
15444
"xloc": [
15431
- "default.handlebars->29->1347",
15432
- "default.handlebars->29->1860",
15433
- "default.handlebars->29->1947",
15434
- "default.handlebars->29->598"
15445
+ "default.handlebars->29->1355",
15446
+ "default.handlebars->29->1868",
15447
+ "default.handlebars->29->1955",
15448
+ "default.handlebars->29->599"
15449
]
15450
},
15451
{
@@ -15451,10 +15465,10 @@
15465
"zh-chs": "档案提示",
15466
"zh-cht": "檔案提示",
15467
"xloc": [
15454
- "default.handlebars->29->1346",
15455
- "default.handlebars->29->1859",
15456
- "default.handlebars->29->1946",
15457
- "default.handlebars->29->597"
15468
+ "default.handlebars->29->1354",
15469
+ "default.handlebars->29->1867",
15470
+ "default.handlebars->29->1954",
15471
+ "default.handlebars->29->598"
15472
]
15473
},
15474
{
@@ -15475,7 +15489,7 @@
15489
"zh-cht": "過濾",
15490
"xloc": [
15491
"default-mobile.handlebars->container->page_content->column_l->p2->xdevicesBar->1",
15478
- "default.handlebars->29->893",
15492
+ "default.handlebars->29->901",
15493
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->devListToolbar",
15494
"default.handlebars->container->column_l->p1->devListToolbarSpan->1->0->kvmListToolbar",
15495
"default.handlebars->container->column_l->p4->3->1->0->3->3"
@@ -15494,7 +15508,7 @@
15508
"nl": "Zoek bestanden",
15509
"fr": "Recherche des fichiers",
15510
"xloc": [
15497
- "default.handlebars->29->896"
15511
+ "default.handlebars->29->904"
15512
]
This file is too large to show in full.
views/default.handlebars
+11
-22
@@ -3107,7 +3107,7 @@
3107
if (message.consent & 64) { y.push("Privacy bar"); }
3108
if (y.length == 0) { y.push("None"); }
3109
x += addHtmlValue("User Consent", y.join(', '));
3110
- x += '<div id=agentInvitationLinkDiv style="text-align:center;font-size:large;margin:16px"><a href="' + message.url + '" id=agentInvitationLink rel="noreferrer noopener" target="_blank" style=cursor:pointer>' + "Remote Desktop Link" + '</a> <img src=images/link4.png height=10 width=10 title="' + "Copy link to clipboard" + '" style=cursor:pointer onclick=d2CopyInviteToClip()></div></div>';
3110
+ x += '<div id=agentInvitationLinkDiv style="text-align:center;font-size:large;margin:16px"><a href="' + message.url + '" id=agentInvitationLink rel="noreferrer noopener" target="_blank" style=cursor:pointer>' + ((message.p == 1)?"Remote Terminal Link":"Remote Desktop Link") + '</a> <img src=images/link4.png height=10 width=10 title="' + "Copy link to clipboard" + '" style=cursor:pointer onclick=d2CopyInviteToClip()></div></div>';
3111
setDialogMode(2, "Share Device", 1, null, x);
3112
break;
3113
}
@@ -6042,15 +6042,14 @@
6042
for (var i = 0; i < deviceShares.length; i++) {
6043
var dshare = deviceShares[i];
6044
var trash = '<a href="' + dshare.url + '" rel="noreferrer noopener" target=_blank title="' + "Device Sharing Link" + '" style=cursor:pointer><img src=images/link2.png border=0 height=10 width=10></a> <a href=# onclick=\'return p30removeDeviceSharing(event,"' + encodeURIComponentEx(currentNode._id) + '","' + encodeURIComponentEx(dshare.publicid) + '","' + encodeURIComponentEx(dshare.guestName) + '")\' title="' + "Remove device sharing" + '" style=cursor:pointer><img src=images/trash.png border=0 height=10 width=10></a>';
6045
- var details = printFlexDateTime(new Date(dshare.startTime)) + ' to ' + printFlexDateTime(new Date(dshare.expireTime));
6046
- if (dshare.consent) { if ((dshare.consent & 8) != 0) { details += ', Prompt for consent'; } }
6045
+ var details = format("{0}, {1} to {2}", ((dshare.p == 1)?"Terminal":"Desktop"), printFlexDateTime(new Date(dshare.startTime)), printFlexDateTime(new Date(dshare.expireTime)));
6046
+ if (dshare.consent) { if (((dshare.consent & 8) != 0) || ((dshare.consent & 16) != 0)) { details += ", Prompt for consent"; } }
6047
x += '<tr ' + (((++count % 2) == 0) ? 'style=background-color:#DDD' : '') + '><td style=width:30%><div class=m' + 2 + '></div><div> ' + dshare.guestName + '<div></div></div></td><td style=width:70%><div style=float:right>' + trash + '</div><div>' + details + '</div></td></tr>';
6048
}
6049
x += '</tbody></table>';
6050
}
6051
QH('p10html4', x);
6052
6053
-
6053
// Change the URL
6054
var urlviewmode = '';
6055
if (((features & 0x10000000) == 0) && (xxcurrentView >= 10) && (xxcurrentView <= 19) && (currentNode != null)) {
@@ -6208,24 +6207,11 @@
6207
meshserver.send({ action: 'toast', nodeids: [ currentNode._id ], title: decodeURIComponent('{{{extitle}}}'), msg: Q('d2devToast').value });
6208
}
6209
6211
- /*
6210
function showShareDevice() {
6211
if (xxdialogMode) return;
6214
- var y = '', x = "Creates a link that allows a guest without an account to remote desktop into this device for up to 1 hour." + '<br /><br />';
6215
- x += addHtmlValue("Guest Name", '<input id=d2inviteName style=width:250px maxlength=128 type=text onkeyup=showShareDeviceValidate() />');
6216
- var options = { 1 : "1 minute", 5 : "5 minutes", 10 : "10 minutes", 15 : "15 minutes", 30 : "30 minutes", 45 : "45 minutes", 60 : "60 minutes", 120 : "2 hours", 240 : "4 hours", 480 : "8 hours", 720 : "12 hours", 960 : "16 hours", 1440 : "24 hours", 2880 : "2 days", 5760 : "4 days" }
6217
- for (var i in options) { if (serverinfo.maxGuestSessionSharingTime >= i) { y += '<option value=' + i + '>' + options[i] + '</option>'; } }
6218
- x += addHtmlValue("Expire Time", '<select id=d2inviteExpire style=float:right;width:250px>' + y + '</select>');
6219
- x += addHtmlValue("User Consent", '<select id=d2userConsent style=float:right;width:250px><option value=73>' + "Prompt for consent" + '</option><option value=65>' + "Notify Only" + '</option></select>');
6220
- setDialogMode(2, "Share Device", 3, showShareDeviceEx, x);
6221
- showShareDeviceValidate();
6222
- }
6223
- */
6224
-
6225
- function showShareDevice() {
6226
- if (xxdialogMode) return;
6227
- var y = '', x = "Creates a link that allows a guest without an account to remote desktop into this device for a limited time." + '<br /><br />';
6212
+ var y = '', x = "Creates a link that allows a guest without an account to remote control this device for a limited time." + '<br /><br />';
6213
x += addHtmlValue("Guest Name", '<input id=d2inviteName style=width:250px maxlength=128 type=text onkeyup=showShareDeviceValidate() />');
6214
+ x += addHtmlValue("Type", '<select id=d2shareType style=float:right;width:250px onchange=showShareDeviceValidate()><option value=2>' + "Desktop" + '</option><option value=1>' + "Terminal" + '</option></select>');
6215
var options = { 1 : "1 minute", 5 : "5 minutes", 10 : "10 minutes", 15 : "15 minutes", 30 : "30 minutes", 45 : "45 minutes", 60 : "60 minutes", 120 : "2 hours", 240 : "4 hours", 480 : "8 hours", 720 : "12 hours", 960 : "16 hours", 1440 : "24 hours", 2880 : "2 days", 5760 : "4 days" }
6216
for (var i in options) { y += '<option value=' + i + '>' + options[i] + '</option>'; }
6217
x += addHtmlValue("Validity", '<select id=d2timeRange style=float:right;width:250px onchange=showShareDeviceValidate()><option value=0>' + "Starting now" + '</option><option value=1>' + "Time range" + '</option></select>');
@@ -6234,7 +6220,7 @@
6220
x += '</div><div id=d2moderange style=display:none>';
6221
x += addHtmlValue("Time Range", '<input id=d2timeRangeSelector style=float:right;width:250px class=flatpickr type="text" placeholder="Select Date & Time.." data-id="altinput">');
6222
x += '</div>';
6237
- x += addHtmlValue("User Consent", '<select id=d2userConsent style=float:right;width:250px><option value=73>' + "Prompt for consent" + '</option><option value=65>' + "Notify Only" + '</option></select>');
6223
+ x += addHtmlValue("User Consent", '<select id=d2userConsent style=float:right;width:250px><option value=1>' + "Prompt for consent" + '</option><option value=0>' + "Notify Only" + '</option></select>');
6224
setDialogMode(2, "Share Device", 3, showShareDeviceEx, x);
6225
showShareDeviceValidate();
6226
var tomorrow = new Date();
@@ -6253,10 +6239,13 @@
6239
QE('idx_dlgOkButton', ok);
6240
}
6241
function showShareDeviceEx(b, tag) {
6242
+ var consent = 0;
6243
+ if (Q('d2shareType').value == 1) { if (Q('d2userConsent').value == 1) { consent = 18; } else { consent = 2; } } // Terminal Consent: 2 = Notify, 16 = Prompt
6244
+ if (Q('d2shareType').value == 2) { if (Q('d2userConsent').value == 1) { consent = 73; } else { consent = 65; } } // Desktop Consent: 1 = Notify, 8 = Prompt, 64 = Privacy bar
6245
if (Q('d2timeRange').value == 0) {
6257
- meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), expire: parseInt(Q('d2inviteExpire').value), consent: parseInt(Q('d2userConsent').value) });
6246
+ meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: parseInt(Q('d2shareType').value), expire: parseInt(Q('d2inviteExpire').value), consent: consent });
6247
} else {
6259
- meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), start: Math.floor(tag.selectedDates[0].getTime() / 1000), end: Math.floor(tag.selectedDates[1].getTime() / 1000), consent: parseInt(Q('d2userConsent').value) });
6248
+ meshserver.send({ action: 'createDeviceShareLink', nodeid: currentNode._id, guestname: Q('d2inviteName').value.trim(), p: parseInt(Q('d2shareType').value), start: Math.floor(tag.selectedDates[0].getTime() / 1000), end: Math.floor(tag.selectedDates[1].getTime() / 1000), consent: consent });
6249
}
6250
}
6251
views/desktop.handlebars
+1
-2
@@ -397,8 +397,7 @@
397
desktop.contype = 2;
398
} else if ((contype == null) || (contype == 1) || (contype == 3)) {
399
// Setup the Mesh Agent remote desktop
400
- var meshserver = null;
401
- desktop = CreateAgentRedirect(meshserver, CreateAgentRemoteDesktop('Desk'), serverPublicNamePort, authCookie, null, domainUrl);
400
+ desktop = CreateAgentRedirect(null, CreateAgentRemoteDesktop('Desk'), serverPublicNamePort, authCookie, null, domainUrl);
401
desktop.m.mouseCursorActive(true);
402
desktop.debugmode = debugmode;
403
desktop.m.debugmode = debugmode;
views/message.handlebars
+1
@@ -54,6 +54,7 @@
54
if (titleid == 1) { title = "Account Verification"; }
55
if (titleid == 2) { title = "Desktop Sharing"; }
56
if (titleid == 3) { title = "Server Under Maintenance"; }
57
+ if (titleid == 4) { title = "Terminal Sharing"; }
58
QH('topTitle', Q('topTitle').innerText + ' - ' + title);
59
QH('mainTitle', title);
60
views/message2.handlebars
+1
@@ -55,6 +55,7 @@
55
if (titleid == 1) { title = "Account Verification"; }
56
if (titleid == 2) { title = "Desktop Sharing"; }
57
if (titleid == 3) { title = "Server Under Maintenance"; }
58
+ if (titleid == 4) { title = "Terminal Sharing"; }
59
QH('topTitle', Q('topTitle').innerText + ' - ' + title);
60
QH('mainTitle', title);
61
views/terminal.handlebars
new
+454
@@ -0,0 +1,454 @@
1
+<!DOCTYPE html>
2
+<html lang="en" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
3
+<head>
4
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
5
+ <meta content="text/html;charset=utf-8" http-equiv="Content-Type" />
6
+ <meta name="viewport" content="user-scalable=1.0,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0" />
7
+ <meta name="apple-mobile-web-app-capable" content="yes" />
8
+ <meta name="format-detection" content="telephone=no" />
9
+ <meta name="robots" content="noindex,nofollow">
10
+ <link type="text/css" href="styles/style.css" media="screen" rel="stylesheet" title="CSS" />
11
+ <link type="text/css" href="styles/xterm.css" media="screen" rel="stylesheet" title="CSS" />
12
+ <link rel="apple-touch-icon" href="/favicon-303x303.png" />
13
+ <script type="text/javascript" src="scripts/common-0.0.1{{min}}.js"></script>
14
+ <script type="text/javascript" src="scripts/amt-redir-ws-0.1.0{{{min}}}.js"></script>
15
+ <script type="text/javascript" src="scripts/amt-wsman-ws-0.2.0{{{min}}}.js"></script>
16
+ <script type="text/javascript" src="scripts/agent-redir-ws-0.1.1{{{min}}}.js"></script>
17
+ <script type="text/javascript" src="scripts/agent-redir-rtc-0.1.0{{{min}}}.js"></script>
18
+ <script type="text/javascript" src="scripts/amt-terminal-0.0.2{{min}}.js"></script>
19
+ <script type="text/javascript" src="scripts/xterm{{{min}}}.js"></script>
20
+ <script type="text/javascript" src="scripts/xterm-addon-fit{{{min}}}.js"></script>
21
+ <script keeplink=1 type="text/javascript" src="scripts/filesaver.min.js"></script>
22
+ <title>{{{title}}}</title>
23
+</head>
24
+<body style="overflow:hidden;background-color:black">
25
+ <div id=p12 style="overflow:hidden">
26
+ <div id="p12warning" onclick=showFeaturesDlg()>
27
+ <div class="icon2"></div>
28
+ <div class="warningbox">Intel® AMT Redirection port or KVM feature is disabled<span id="p12warninga">, click here to enable it.</span></div>
29
+ </div>
30
+ <div id="p12warning2" onclick=showPowerActionDlg()>
31
+ <div class="icon2"></div>
32
+ <div class="warningbox">Remote computer is not powered on, click here to issue a power command.</div>
33
+ </div>
34
+ <div class="areaHead" style="position:absolute;top:0;left:0;right:0;height:24px">
35
+ <div class="toright2">
36
+ <div id="p11power" style="margin-top:3px;margin-right:4px"></div>
37
+ <div id="termRecordIcon" class='deskareaicon' title="Server is recording this session" style="display:none;background-color:red;width:12px;height:12px;border-radius:6px;margin-top:5px;margin-left:5px"></div>
38
+ <div id="terminalCustomUiButtons" style="float:left"></div>
39
+ </div>
40
+ <div>
41
+ <div id="idx_termFullBtn2" onclick=deskToggleFull(event)> ✖</div>
42
+ <span id="connectbutton2span"><input type="button" id="connectbutton2" cmenu="termConnectButton" value="Connect" onclick=connectTerminal(event,1) onkeypress="return false" onkeydown="return false" disabled="disabled" /></span>
43
+ <span id="disconnectbutton2span"> <input type="button" id="disconnectbutton2" value="Disconnect" onclick=connectTerminal(event,0) onkeypress="return false" onkeydown="return false" /></span>
44
+ <span id="termstatus">Disconnected</span><span id="termtitle"></span>
45
+ </div>
46
+ </div>
47
+ <div id="termarea3xdiv" style="position:absolute;top:28px;bottom:28px;left:0;right:0"></div>
48
+ <div class="areaFoot" style="position:absolute;bottom:0;left:0;right:0;height:24px">
49
+ <div class="toright2">
50
+ <span id="TermLatency" title="Terminal Session Latency"></span>
51
+ <span id="TermTimer" title="Session time"></span>
52
+ <span id="terminalSettingsButtons" style="display:none">
53
+ <input id="id_tcrbutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="CR+LF" title="Toggle what the return key will send" onclick="termToggleCr()" />
54
+ <input id="id_tfxkeysbutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Intel (F10 = ESC+[OM)" title="Toggle F1 to F10 keys emulation type" onclick="termToggleFx()" />
55
+ <input id="id_ttypebutton" type="button" onkeypress="return false" onkeydown="return false" class="bottombutton" value="Extended Ascii" title="Toggle terminal emulation type" onclick="termToggleType()" />
56
+ </span>
57
+ <span id="terminalSizeDropDown" style="display:none">
58
+ <select id="termSizeList" onkeypress="return false"><option value="1">80x25</option><option value="2">100x30</option></select>
59
+ </span>
60
+ <span id="specialKeyDropDown">
61
+ <select id="specialkeylist" onkeypress="return false"></select>
62
+ <input id="specialkeylistinput" type="button" onkeypress="return false" class="bottombutton" value="Send" title="Send the selected special key" onclick="sendSpecialKey()" />
63
+ </span>
64
+ </div>
65
+ <div>
66
+
67
+ <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="ctrlcbutton" value="Ctl-C" onclick="termSendKey(3,'ctrlcbutton')" />
68
+ <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="ctrlxbutton" value="Ctl-X" onclick="termSendKey(24,'ctrlxbutton')" />
69
+ <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="escbutton" value="ESC" onclick="termSendKey(27,'escbutton')" />
70
+ <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="bsbutton" value="Backspace" onclick="termSendKey(8,'bsbutton')" style="display:none" />
71
+ <input type=button onkeypress="return false" onkeydown="return false" class="bottombutton" id="pastebutton" value="Paste" title="Paste text into the terminal" onclick="showTermPasteDialog()" style="display:none" />
72
+ </div>
73
+ </div>
74
+ <div id=p12TermConsoleMsg style="display:none;cursor:pointer;position:absolute;left:30px;top:45px;color:yellow;background-color:rgba(0,0,0,0.6);padding:10px;border-radius:5px" onclick=p12clearConsoleMsg()></div>
75
+ <div id=dialog class="noselect" style="display:none">
76
+ <div id=dialogHeader>
77
+ <div tabindex=0 id=id_dialogclose onclick=setDialogMode() onkeypress="if (event.key == 'Enter') setDialogMode()">✖</div>
78
+ <div id=id_dialogtitle></div>
79
+ </div>
80
+ <div id=dialogBody>
81
+ <div id=dialog1>
82
+ <div id=id_dialogMessage style=""></div>
83
+ </div>
84
+ <div id=dialog2 style="">
85
+ <div id=id_dialogOptions></div>
86
+ </div>
87
+ </div>
88
+ <div id="idx_dlgButtonBar">
89
+ <input id="idx_dlgCancelButton" type="button" value="Cancel" style="" onclick="dialogclose(0)">
90
+ <input id="idx_dlgOkButton" type="button" value="OK" style="" onclick="dialogclose(1)">
91
+ <div><input id="idx_dlgDeleteButton" type="button" value="Delete" style="display:none" onclick="dialogclose(2)"></div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <script>
96
+ var sessionActivity = null;
97
+ var desktop = null;
98
+ var agentPresent = true;
99
+ var intelAmtPresent = false;
100
+ var p11DeskConsoleMsgTimer = null;
101
+ var serverPublicNamePort = '{{{serverDnsName}}}:{{{serverPublicPort}}}';
102
+ var domain = '{{{domain}}}';
103
+ var domainUrl = '{{{domainurl}}}';
104
+ var authCookie = '{{{authCookie}}}';
105
+ var urlargs = parseUriArgs();
106
+ var debugmode = urlargs.debug;
107
+ var attemptWebRTC = false;
108
+ var updateSessionTimer = null;
109
+ var StatusStrs = ["Disconnected", "Connecting...", "Setup...", "Connected", "Intel® AMT Connected"];
110
+ var webPageFullScreen = false;
111
+ var terminal = null;
112
+ var p12TermConsoleMsgTimer = null;
113
+ var xterm = null;
114
+ var xtermfit = null;
115
+ var xtermResizeTimer = null;
116
+ var expire = '{{{expire}}}';
117
+ if (expire != '') { QH('p11power', printFlexDateTime(new Date(parseInt(expire)))); }
118
+
119
+ function start() {
120
+ //window.onresize = deskAdjust;
121
+ //document.onkeypress = ondockeypress;
122
+ //document.onkeydown = ondockeydown;
123
+ //document.onkeyup = ondockeyup;
124
+ updateTerminalButtons();
125
+
126
+ window.onresize = function () { if (xtermfit != null) { xtermfit.fit(); } }
127
+
128
+ // Terminal special keys
129
+ var x = '';
130
+ for (var c = 1; c < 27; c++) x += '<option value=\'' + c + '\'>' + "Ctrl" + '-' + String.fromCharCode(64 + c) + ' (' + c + ')</option>';
131
+ QH('specialkeylist', x);
132
+ }
133
+
134
+
135
+
136
+ var terminalNode;
137
+ function setupTerminal() {
138
+ // Setup the terminal
139
+ if ((terminalNode != currentNode) && (terminal != null)) { terminal.Stop(); terminal = null; }
140
+ terminalNode = currentNode;
141
+ updateTerminalButtons();
142
+ }
143
+
144
+ // Show and enable the right buttons
145
+ function updateTerminalButtons() {
146
+ var termState = ((terminal != null) && (terminal.state != 0));
147
+
148
+ // Show the right buttons
149
+ QV('disconnectbutton2span', termState == true);
150
+ QV('connectbutton2span', termState == false);
151
+ //QV('terminalSizeDropDown', termState == false);
152
+
153
+ // Enable buttons
154
+ QE('connectbutton2', true);
155
+
156
+ // Key buttons
157
+ QE('ctrlcbutton', termState);
158
+ QE('ctrlxbutton', termState);
159
+ QE('escbutton', termState);
160
+ QE('bsbutton', termState);
161
+ QE('pastebutton', termState);
162
+ QE('specialkeylist', termState);
163
+ QE('specialkeylistinput', termState);
164
+
165
+ // Terminal settings
166
+ QV('terminalSettingsButtons', (terminal) && (terminal.contype == 2));
167
+ if (terminal) {
168
+ Q('id_ttypebutton').value = terminalEmulations[terminal.m.terminalEmulation];
169
+ Q('id_tfxkeysbutton').value = fxEmulations[terminal.m.fxEmulation];
170
+ Q('id_tcrbutton').value = (terminal.m.lineFeed == '\r\n') ? "CR+LF" : "LF";
171
+ }
172
+
173
+ // Display extra buttons on legacy terminal
174
+ var xtermActive = true;
175
+ QV('termarea3xdiv', xtermActive);
176
+ QV('bsbutton', !xtermActive);
177
+ QV('pastebutton', !xtermActive);
178
+ QV('devListToolbarViewIcons2', xtermActive);
179
+ QE('termSizeList', terminal == null);
180
+ }
181
+
182
+ // Called when the terminal state changes
183
+ function onTerminalStateChange(xterminal, state) {
184
+ var xstate = state;
185
+ if ((xstate == 3) && (xterminal.contype == 2)) { xstate++; }
186
+ var str = StatusStrs[xstate];
187
+ if (terminal.webRtcActive == true) { str += ", WebRTC"; }
188
+ QH('termstatus', str);
189
+ switch (state) {
190
+ case 0:
191
+ // Disconnected, clear the terminal
192
+ QH('termtitle', '');
193
+ QV('termRecordIcon', false);
194
+ if (xterm == null) {
195
+ xterminal.m.TermResetScreen();
196
+ xterminal.m.TermDraw();
197
+ } else {
198
+ xterm.dispose();
199
+ xterm = xtermfit = null;
200
+ }
201
+ if (terminal != null) { terminal.Stop(); terminal = null; }
202
+ break;
203
+ case 3:
204
+ if (xterminal && (xterminal.serverIsRecording == true)) { QV('termRecordIcon', true); }
205
+ terminal.startTime = new Date();
206
+ if (updateSessionTimer == null) { updateSessionTimer = setInterval(updateSessionTime, 1000); }
207
+ if (xterm != null) { xterm.focus(); }
208
+ break;
209
+ default:
210
+ //console.log('Unhandled onTerminalStateChange state', state);
211
+ break;
212
+ }
213
+ updateTerminalButtons();
214
+ }
215
+
216
+ function updateSessionTime() {
217
+ // Terminal
218
+ var latencyStr = '', seconds = 0;
219
+ if (terminal && terminal.startTime) {
220
+ if (terminal.latency && (terminal.latency.current >= 0)) { latencyStr = format('{0} ms, ', terminal.latency.current); }
221
+ seconds = Math.floor((new Date() - terminal.startTime) / 1000);
222
+ QH('TermTimer', latencyStr + zeroPad(Math.floor(seconds / 3600), 2) + ':' + zeroPad((Math.floor(seconds / 60) % 60), 2) + ':' + zeroPad((seconds % 60), 2));
223
+ } else {
224
+ QH('TermTimer', '');
225
+ }
226
+
227
+ if (terminal == null) { clearInterval(updateSessionTimer); updateSessionTimer = null; }
228
+ }
229
+
230
+ // DEBUG
231
+ var autoConnectTerminalTimer = null;
232
+ function autoConnectTerminal(e) { if (autoConnectTerminalTimer == null) { autoConnectTerminalTimer = setInterval(connectTerminal, 100); } else { clearInterval(autoConnectTerminalTimer); autoConnectTerminalTimer = null; } }
233
+
234
+ // Handles a tunnel to a remote shell
235
+ function CreateRemoteTunnel(onTunnelUpdate, options) {
236
+ var obj = { protocol: 1 };
237
+ if ((options != null) && (typeof options.protocol == 'number')) { obj.protocol = options.protocol; }
238
+ obj.onTunnelUpdate = onTunnelUpdate;
239
+ obj.xxStateChange = function (state) { }
240
+ obj.ProcessBinaryData = function (data) { obj.onTunnelUpdate(data); }
241
+ obj.ProcessData = function (data) { obj.onTunnelUpdate(data); }
242
+ obj.terminalEmulation = 1;
243
+ obj.fxEmulation = 0;
244
+ obj.lineFeed = '\r\n';
245
+ return obj;
246
+ }
247
+
248
+ function tunnelUpdate(data) { if (typeof data == 'string') { xterm.writeUtf8(data); } else { xterm.writeUtf8(new Uint8Array(data)); } }
249
+
250
+ // Send the new terminal size to the agent
251
+ function xTermSendResize() {
252
+ xtermResizeTimer = null;
253
+ if ((xterm != null) && (terminal != null) && (terminal.sendCtrlMsg != null)) { terminal.sendCtrlMsg(JSON.stringify({ ctrlChannel: '102938', type: 'termsize', cols: xterm.cols, rows: xterm.rows })); }
254
+ }
255
+
256
+ // Used to translate incoming agent console messages
257
+ var agentConsoleMessages = ['', "Waiting for user to grant access...", "Denied", "Failed to start remote terminal session, {0} ({1})", "Timeout", "Received invalid network data"];
258
+ function formatAgentConsoleMessage(msg, msgid, msgargs) {
259
+ var r;
260
+ if (msgargs == null) { msgargs = []; }
261
+ while (msgargs.length < 3) { msgargs.push(''); } // We need to call the format function in a way that works with older browsers and minifier, can't use apply() or ...
262
+ if (msgid && (msgid < agentConsoleMessages.length)) { r = EscapeHtml(format(agentConsoleMessages[msgid], (msgargs[0]), (msgargs[1]), (msgargs[2]))); } else { r = EscapeHtml(msg); }
263
+ return r.split('\n').join('<br />') + '<br /><br />';
264
+ }
265
+
266
+ function connectTerminal(e, contype, options) {
267
+ p12clearConsoleMsg();
268
+ if (!terminal) {
269
+ // Terminal setup
270
+ var termoptions = { protocol: ((options != null) && (typeof options.protocol == 'number')) ? options.protocol : 1 };
271
+ if (options && options.requireLogin) { termoptions.requireLogin = true; }
272
+ /*
273
+ if ([1, 2, 3, 4, 21, 22].indexOf(currentNode.agent.id) == -1) {
274
+ if (Q('termSizeList').value == 1) { termoptions.cols = 80; termoptions.rows = 25; termoptions.xterm = true; }
275
+ else if (Q('termSizeList').value == 2) { termoptions.cols = 100; termoptions.rows = 30; termoptions.xterm = true; }
276
+ else if (Q('termSizeList').value == 3) {
277
+ // TODO: Try to improve terminal auto-size.
278
+ termoptions.cols = Math.floor((Q('column_l').clientWidth - 60) / 10);
279
+ termoptions.rows = Math.floor((Q('column_l').clientHeight - 120) / 20);
280
+ termoptions.xterm = true;
281
+ }
282
+ }
283
+ */
284
+
285
+ // If shift is pressed
286
+ if ((e && (e.shiftKey == true))) {
287
+ if (currentNode.agent.id > 4) {
288
+ if (termoptions.protocol == 1) { termoptions.protocol = 7; } // Switch to user shell
289
+ } else {
290
+ if (termoptions.protocol == 1) { termoptions.protocol = 6; } // Switch to Powershell
291
+ }
292
+ }
293
+
294
+ // Setup a mesh agent xterm terminal
295
+ QV('termarea3xdiv', true);
296
+
297
+ // Setup the terminal with auto-fit
298
+ if (xterm != null) { xterm.dispose(); }
299
+ xtermfit = new FitAddon.FitAddon();
300
+ xterm = new Terminal();
301
+ if (xtermfit) { xterm.loadAddon(xtermfit); }
302
+ xterm.open(Q('termarea3xdiv')); // termarea3x
303
+ xterm.onData(function (data) { if (terminal != null) { terminal.sendText(data); } })
304
+ if (xtermfit) { xtermfit.fit(); }
305
+ xterm.onTitleChange(function (title) { QH('termtitle', ' - ' + EscapeHtml(title)); });
306
+ xterm.onResize(function (size) {
307
+ // Despam resize
308
+ if (xtermResizeTimer) clearTimeout(xtermResizeTimer);
309
+ xtermResizeTimer = setTimeout(xTermSendResize, 200);
310
+ });
311
+
312
+ // Setup a terminal tunnel to the agent
313
+ terminal = CreateAgentRedirect(null, CreateRemoteTunnel(tunnelUpdate, options), serverPublicNamePort, authCookie, null, domainUrl);
314
+ terminal.debugmode = debugmode;
315
+ terminal.m.debugmode = debugmode;
316
+ terminal.options = { cols: xterm.cols, rows: xterm.rows };
317
+ if (options && options.requireLogin) { terminal.options.requireLogin = true; }
318
+ terminal.Start(null);
319
+ terminal.onStateChanged = onTerminalStateChange;
320
+ terminal.contype = 1;
321
+ terminal.attemptWebRTC = false; // Never do WebRTC on terminal, because of a race condition we can't do it.
322
+ terminal.onConsoleMessageChange = function (server, msg) {
323
+ if (terminal.consoleMessage) {
324
+ Q('p12TermConsoleMsg').innerHTML += formatAgentConsoleMessage(terminal.consoleMessage, terminal.consoleMessageId, terminal.consoleMessageArgs);
325
+ QV('p12TermConsoleMsg', true);
326
+ if (p12TermConsoleMsgTimer != null) { clearTimeout(p12TermConsoleMsgTimer); }
327
+ if (terminal.consoleMessageTimeout) { p12TermConsoleMsgTimer = setTimeout(p12clearConsoleMsg, terminal.consoleMessageTimeout * 1000); }
328
+ } else {
329
+ p12clearConsoleMsg();
330
+ }
331
+ };
332
+ } else {
333
+ terminal.Stop();
334
+ terminal = null;
335
+ }
336
+ Q('connectbutton2').blur(); // Deselect the connect button so the button does not get key presses.
337
+ }
338
+
339
+ var terminalEmulations = ["UTF8 Terminal", "Extended ASCII", "Intel ASCII"];
340
+ function termToggleType() {
341
+ if (!terminal || xxdialogMode) return;
342
+ terminal.m.terminalEmulation = (terminal.m.terminalEmulation + 1) % 3;
343
+ Q('id_ttypebutton').value = terminalEmulations[terminal.m.terminalEmulation];
344
+ Q('id_ttypebutton').blur(); // Deselect the connect button so the button does not get key presses.
345
+ }
346
+
347
+ var fxEmulations = ["Intel (F10 = ESC+[OM)", "Alternate (F10 = ESC+0)", "VT100+ (F10 = ESC+[OY)"];
348
+ function termToggleFx() {
349
+ if (!terminal || xxdialogMode) return;
350
+ terminal.m.fxEmulation = (terminal.m.fxEmulation + 1) % 3;
351
+ Q('id_tfxkeysbutton').value = fxEmulations[terminal.m.fxEmulation];
352
+ Q('id_tfxkeysbutton').blur(); // Deselect the connect button so the button does not get key presses.
353
+ }
354
+
355
+ function termToggleCr() {
356
+ if (!terminal || xxdialogMode) return;
357
+ if (terminal.m.lineFeed == '\n') { terminal.m.lineFeed = '\r\n'; } else { terminal.m.lineFeed = '\n'; }
358
+ Q('id_tcrbutton').value = (terminal.m.lineFeed == '\r\n') ? "CR+LF" : "LF";
359
+ }
360
+
361
+ function termSendKey(key, id) {
362
+ if (!terminal || xxdialogMode) return;
363
+ if (xterm != null) {
364
+ if (terminal.sendText) {
365
+ // MeshAgent
366
+ terminal.sendText(String.fromCharCode(key));
367
+ } else {
368
+ // CIRA
369
+ terminal.send(String.fromCharCode(key));
370
+ }
371
+ xterm.focus();
372
+ } else if (terminal != null) {
373
+ terminal.m.TermSendKey(key);
374
+ Q(id).blur(); // Deselect the connect button so the button does not get key presses.
375
+ }
376
+ }
377
+
378
+ function showTermPasteDialog() {
379
+ if (!terminal || xxdialogMode) return;
380
+ Q('pastebutton').blur();
381
+ setDialogMode(2, "Paste", 3, showTermPasteDialogEx, '<textarea id=d2pasteText style="width:100%;height:184px;resize:none"></textarea>');
382
+ Q('d2pasteText').focus();
383
+ }
384
+
385
+ function showTermPasteDialogEx() {
386
+ if (!terminal) return;
387
+ terminal.m.TermSendKeys(Q('d2pasteText').value);
388
+ }
389
+
390
+ // Send special key
391
+ function sendSpecialKey() {
392
+ if (xterm != null) {
393
+ terminal.sendText(String.fromCharCode(Q('specialkeylist').value));
394
+ xterm.focus();
395
+ } else if (terminal != null) {
396
+ terminal.m.TermSendKey(Q('specialkeylist').value);
397
+ Q('specialkeylist').blur();
398
+ Q('specialkeylistinput').blur();
399
+ }
400
+ }
401
+
402
+ function p12clearConsoleMsg() { QH('p12TermConsoleMsg', ''); QV('p12TermConsoleMsg', false); if (p12TermConsoleMsgTimer) { clearTimeout(p12TermConsoleMsgTimer); p12TermConsoleMsgTimer = null; } }
403
+
404
+ //
405
+ // POPUP DIALOG
406
+ //
407
+
408
+ // null = Hidden, 1 = Generic Message
409
+ var xxdialogMode;
410
+ var xxdialogFunc;
411
+ var xxdialogButtons;
412
+ var xxdialogTag;
413
+ var xxcurrentView = -1;
414
+
415
+ // Display a dialog box
416
+ // Parameters: Dialog Mode (0 = none), Dialog Title, Buttons (1 = OK, 2 = Cancel, 3 = OK & Cancel), Call back function(0 = Cancel, 1 = OK), Dialog Content (Mode 2 only)
417
+ function setDialogMode(x, y, b, f, c, tag) {
418
+ xxdialogMode = x;
419
+ xxdialogFunc = f;
420
+ xxdialogButtons = b;
421
+ xxdialogTag = tag;
422
+ QE('idx_dlgOkButton', true);
423
+ QV('idx_dlgOkButton', b & 1);
424
+ QV('idx_dlgCancelButton', b & 2);
425
+ QV('id_dialogclose', (b & 2) || (b & 8));
426
+ QV('idx_dlgDeleteButton', b & 4);
427
+ QV('idx_dlgButtonBar', b & 7);
428
+ if (y) QH('id_dialogtitle', y);
429
+ for (var i = 1; i < 8; i++) { QV('dialog' + i, i == x); } // Edit this line when more dialogs are added
430
+ QV('dialog', x);
431
+ if (c) { if (x == 2) { QH('id_dialogOptions', c); } else { QH('id_dialogMessage', c); } }
432
+ }
433
+
434
+ function dialogclose(x) {
435
+ var f = xxdialogFunc, b = xxdialogButtons, t = xxdialogTag;
436
+ setDialogMode();
437
+ if (((b & 8) || x) && f) f(x, t);
438
+ }
439
+
440
+ function messagebox(t, m) { setSessionActivity(); QH('id_dialogMessage', m); setDialogMode(1, t, 1); }
441
+ function statusbox(t, m) { setSessionActivity(); QH('id_dialogMessage', m); setDialogMode(1, t); }
442
+ function haltEvent(e) { if (e.preventDefault) e.preventDefault(); if (e.stopPropagation) e.stopPropagation(); return false; }
443
+ function pad2(num) { var s = '00' + num; return s.substr(s.length - 2); }
444
+ function format(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); };
445
+ function setSessionActivity() { sessionActivity = Date.now(); /*QH('idleTimeoutNotify', '');*/ }
446
+ function printDate(d) { return d.toLocaleDateString(urlargs.locale); }
447
+ function printTime(d) { return d.toLocaleTimeString(urlargs.locale); }
448
+ function printDateTime(d) { return d.toLocaleString(urlargs.locale); }
449
+ function printFlexDateTime(d) { if (printDate(new Date()) == printDate(d)) { return format("Expires at {0}", printTime(d)); } else { return format("Expires {0}", printDateTime(d)); } }
450
+
451
+ start();
452
+ </script>
453
+</body>
454
+</html>
\ No newline at end of file
webserver.js
+41
-2
@@ -2971,7 +2971,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2971
2972
// Check the inbound desktop sharing cookie
2973
var c = obj.parent.decodeCookie(req.query.c, obj.parent.invitationLinkEncryptionKey, 60); // 60 minute timeout
2974
- if ((c == null) || (c.a !== 5) || (typeof c.uid != 'string') || (typeof c.nid != 'string') || (typeof c.gn != 'string') || (typeof c.cf != 'number') || (typeof c.start != 'number') || (typeof c.expire != 'number') || (typeof c.pid != 'string')) { res.sendStatus(404); return; }
2974
+ if ((c == null) || (c.a !== 5) || ((c.p !== 2) && (c.p != null)) || (typeof c.uid != 'string') || (typeof c.nid != 'string') || (typeof c.gn != 'string') || (typeof c.cf != 'number') || (typeof c.start != 'number') || (typeof c.expire != 'number') || (typeof c.pid != 'string')) { res.sendStatus(404); return; }
2975
2976
// Check the expired time, expire message.
2977
if (c.expire <= Date.now()) { render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 2, msgid: 12, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; }
@@ -2991,7 +2991,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
2991
2992
// Looks good, let's create the outbound session cookies.
2993
// Consent flags are 1 = Notify, 8 = Prompt, 64 = Privacy Bar.
2994
- const authCookie = obj.parent.encodeCookie({ userid: c.uid, domainid: domain.id, nid: c.nid, ip: req.clientIp, gn: c.gn, cf: 65 | c.cf, r: 8, expire: c.expire, pid: c.pid }, obj.parent.loginCookieEncryptionKey);
2994
+ const authCookie = obj.parent.encodeCookie({ userid: c.uid, domainid: domain.id, nid: c.nid, ip: req.clientIp, p: 2, gn: c.gn, cf: 65 | c.cf, r: 8, expire: c.expire, pid: c.pid }, obj.parent.loginCookieEncryptionKey);
2995
2996
// Lets respond by sending out the desktop viewer.
2997
var httpsPort = ((obj.args.aliasport == null) ? obj.args.port : obj.args.aliasport); // Use HTTPS alias port is specified
@@ -3001,6 +3001,44 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3001
});
3002
}
3003
3004
+ // Serve the guest terminal page
3005
+ function handleTerminalRequest(req, res) {
3006
+ const domain = getDomain(req, res);
3007
+ if (domain == null) { return; }
3008
+ if (req.query.c == null) { res.sendStatus(404); return; }
3009
+
3010
+ // Check the inbound desktop sharing cookie
3011
+ var c = obj.parent.decodeCookie(req.query.c, obj.parent.invitationLinkEncryptionKey, 60); // 60 minute timeout
3012
+ if ((c == null) || (c.a !== 5) || (c.p !== 1) || (typeof c.uid != 'string') || (typeof c.nid != 'string') || (typeof c.gn != 'string') || (typeof c.cf != 'number') || (typeof c.start != 'number') || (typeof c.expire != 'number') || (typeof c.pid != 'string')) { res.sendStatus(404); return; }
3013
+
3014
+ // Check the expired time, expire message.
3015
+ if (c.expire <= Date.now()) { render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 4, msgid: 12, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; }
3016
+
3017
+ // Check the public id
3018
+ obj.db.GetAllTypeNodeFiltered([c.nid], domain.id, 'deviceshare', null, function (err, docs) {
3019
+ // Check if any desktop sharing links are present, expire message.
3020
+ if ((err != null) || (docs.length == 0)) { render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 4, msgid: 12, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; }
3021
+
3022
+ // Search for the device share public identifier, expire message.
3023
+ var found = false;
3024
+ for (var i = 0; i < docs.length; i++) { if (docs[i].publicid == c.pid) { found = true; } }
3025
+ if (found == false) { render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 4, msgid: 12, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; }
3026
+
3027
+ // Check the start time, not yet valid message.
3028
+ if ((c.start > Date.now()) || (c.start > c.expire)) { render(req, res, getRenderPage((domain.sitestyle == 2) ? 'message2' : 'message', req, domain), getRenderArgs({ titleid: 4, msgid: 11, domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27') }, req, domain)); return; }
3029
+
3030
+ // Looks good, let's create the outbound session cookies.
3031
+ // Consent flags are 2 = Notify, 16 = Prompt
3032
+ const authCookie = obj.parent.encodeCookie({ userid: c.uid, domainid: domain.id, nid: c.nid, ip: req.clientIp, p: 1, gn: c.gn, cf: 2 | c.cf, r: 8, expire: c.expire, pid: c.pid }, obj.parent.loginCookieEncryptionKey);
3033
+
3034
+ // Lets respond by sending out the desktop viewer.
3035
+ var httpsPort = ((obj.args.aliasport == null) ? obj.args.port : obj.args.aliasport); // Use HTTPS alias port is specified
3036
+ parent.debug('web', 'handleTerminalRequest: Sending guest terminal page for \"' + c.uid + '\", guest \"' + c.gn + '\".');
3037
+ res.set({ 'Cache-Control': 'no-store' });
3038
+ render(req, res, getRenderPage('terminal', req, domain), getRenderArgs({ authCookie: authCookie, authRelayCookie: '', domainurl: encodeURIComponent(domain.url).replace(/'/g, '%27'), nodeid: c.nid, serverDnsName: obj.getWebServerName(domain), serverRedirPort: args.redirport, serverPublicPort: httpsPort, expire: c.expire }, req, domain));
3039
+ });
3040
+ }
3041
+
3042
// Handle domain redirection
3043
obj.handleDomainRedirect = function (req, res) {
3044
const domain = checkUserIpAddress(req, res);
@@ -4975,6 +5013,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
5013
obj.app.get(url + 'player.htm', handlePlayerRequest);
5014
obj.app.get(url + 'player', handlePlayerRequest);
5015
obj.app.get(url + 'desktop', handleDesktopRequest);
5016
+ obj.app.get(url + 'terminal', handleTerminalRequest);
5017
obj.app.ws(url + 'amtactivate', handleAmtActivateWebSocket);
5018
obj.app.ws(url + 'agenttransfer.ashx', handleAgentFileTransfer); // Setup agent to/from server file transfer handler
5019
obj.app.ws(url + 'meshrelay.ashx', function (ws, req) {