@midscene/ios 1.5.5 → 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,13 @@
1
- /*! For license information please see index.b06cefb6.js.LICENSE.txt */
2
- (()=>{var e,A,t,r,o,n,i,a={5737(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=5737,e.exports=A},9998(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=9998,e.exports=A},3348(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=3348,e.exports=A},1560(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=1560,e.exports=A},3749(e,A,t){"use strict";var r=t(5723),o=t(2155),n=t(8997),i=t(4565),a=t(217),s=t(9368);let l=()=>{let e=(0,a.j)(s.v4),A="";e&&(console.warn("MIDSCENE_DEBUG_MODEL_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead"),A="ai:profile"),(0,a.j)(s.$l)&&(console.warn("MIDSCENE_DEBUG_MODEL_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead"),A=A?"ai:*":"ai:call"),A&&(0,i.Nw)(A)};var c=t(5409);function d(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let u={modelName:s._q,socksProxy:s.T4,httpProxy:s.Yf,openaiBaseURL:s.kX,openaiApiKey:s.Lh,openaiExtraConfig:s.Z7,modelFamily:s.v,timeout:s.Yg,temperature:s.V7,retryCount:s.vC,retryInterval:s.xg,reasoningEffort:s.y2,reasoningEnabled:s.nc,reasoningBudget:s.fS},p={modelName:s.xP,socksProxy:s.mZ,httpProxy:s.zQ,openaiBaseURL:s.zG,openaiApiKey:s.OK,openaiExtraConfig:s.ag,modelFamily:s.OY,timeout:s.Z$,temperature:s.Cn,retryCount:s.sg,retryInterval:s.wu,reasoningEffort:s.Vb,reasoningEnabled:s.u1,reasoningBudget:s.aO},g={modelName:s.HR,socksProxy:s.iw,httpProxy:s.FU,openaiBaseURL:s.$H,openaiApiKey:s.IQ,openaiExtraConfig:s.I2,modelFamily:s.yR,timeout:s.zD,temperature:s.W4,retryCount:s.Km,retryInterval:s.aK,reasoningEffort:s.VM,reasoningEnabled:s.M1,reasoningBudget:s.AU};var f=t(9152);let m=function(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"*";if("string"!=typeof e||0===e.length)return e;if(e.length<=6)return e;let t=e.substring(0,3),r=e.substring(e.length-3),o=e.length-6,n=A.repeat(o);return`${t}${n}${r}`},h=e=>Object.fromEntries(Object.entries(e).map(e=>{let[A,t]=e;if(!t)return[A,t];if("string"==typeof t&&/key/i.test(A))return[A,m(t)];if("object"==typeof t){let e=JSON.stringify(t);if(/key/i.test(e))return[A,m(e)]}return[A,t]})),y={insight:u,planning:p,default:g},E=(e,A)=>{let t=(0,i.aZ)("ai:config");t("will decideModelConfig base on agent.modelConfig()",e,h(A));let r=y[e];if(!A[r.modelName])return void t("no modelName found for intent",e);let o=(e=>{var A,t,r;let o,{keys:n,provider:a,useLegacyLogic:c=!1}=e;l(),(0,i.aZ)("ai:config")("enter parseOpenaiSdkConfig with keys:",n);let d=c?a[s.Jq]:void 0,u=c?a[s.jG]:void 0,p=c?a[s.$]:void 0,g=c?a[s.CA]:void 0,f=c?a[s.b6]:void 0,m=c?(e=>{let A=e[s.pp],t=e[s.yb],r=e[s.NF],o=e[s.JM],n=e[s.j_],i=[A&&s.pp,t&&s.yb,r&&s.NF,o&&s.JM,n&&s.j_].filter(Boolean);if(i.length>1)throw Error(`Only one vision mode can be enabled at a time. Currently enabled modes: ${i.join(", ")}. Please disable all but one mode.`);if(r)return"qwen3-vl";if(t)return"qwen2.5-vl";if(A)return"doubao-vision";if(n)return"gemini";if(o)if("1"===o)return"vlm-ui-tars";else if("DOUBAO"===o||"DOUBAO-1.5"===o)return"vlm-ui-tars-doubao-1.5";else return"vlm-ui-tars-doubao"})(a):void 0,h=a[n.modelFamily]||m,y=a[n.openaiApiKey]||d,E=a[n.openaiBaseURL]||u,v=a[n.socksProxy]||p,b=a[n.httpProxy]||g,k=a[n.modelName],C=a[n.openaiExtraConfig],S=((e,A)=>{if(A)try{return JSON.parse(A)}catch(A){throw Error(`Failed to parse ${e} as a JSON. ${A.message}`,{cause:A})}})(n.openaiExtraConfig,C||f),I=a[n.temperature]?Number(a[n.temperature]):0;if(h&&!s._j.includes(h))throw Error(`Invalid MIDSCENE_MODEL_FAMILY value: ${h}`);let R="vlm-ui-tars"===h?s.UH.V1_0:"vlm-ui-tars-doubao"===h||"vlm-ui-tars-doubao-1.5"===h?s.UH.DOUBAO_1_5_20B:void 0,x=R?`UI-TARS=${R}`:h?`${h} mode`:"";return{socksProxy:v,httpProxy:b,openaiBaseURL:E,openaiApiKey:y,openaiExtraConfig:S,modelFamily:h,uiTarsModelVersion:R,modelName:k,modelDescription:x,intent:"-",timeout:a[n.timeout]?Number(a[n.timeout]):void 0,temperature:I,retryCount:(()=>{if(!a[n.retryCount])return 1;let e=Number(a[n.retryCount]);if(!Number.isFinite(e))return 1;if(e<0)throw Error(`${n.retryCount} must be non-negative, got ${e}`);return e})(),retryInterval:(()=>{if(!a[n.retryInterval])return 2e3;let e=Number(a[n.retryInterval]);if(!Number.isFinite(e))return 2e3;if(e<0)throw Error(`${n.retryInterval} must be non-negative, got ${e}`);return e})(),reasoningEffort:(null==(A=a[n.reasoningEffort])?void 0:A.trim())||void 0,reasoningEnabled:"true"===(o=null==(r=a[n.reasoningEnabled])||null==(t=r.trim())?void 0:t.toLowerCase())||"1"===o||"false"!==o&&"0"!==o&&void 0,reasoningBudget:(()=>{var e;let A=null==(e=a[n.reasoningBudget])?void 0:e.trim();if(!A)return;let t=Number(A);return Number.isFinite(t)?t:void 0})()}})({keys:r,provider:A,useLegacyLogic:"default"===e});return o.intent=e,t("decideModelConfig result by agent.modelConfig() with intent",e,h({...o})),(0,f.vA)(o.openaiBaseURL,`failed to get base URL of model (intent=${e}). See https://midscenejs.com/model-strategy`),o.modelName||console.warn(`modelName is not set for intent ${e}, this may cause unexpected behavior. See https://midscenejs.com/model-strategy`),o};function v(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let b=new class{initialize(){var e;let A;if(this.isInitialized)return;this.modelConfig?(this.isolatedMode=!0,A=this.normalizeModelConfig(this.modelConfig)):A=(null==(e=this.globalConfigManager)?void 0:e.getAllEnvConfig())||{};let t=E("default",A);if(!t)throw Error("Model configuration is incomplete: model name (MIDSCENE_MODEL_NAME) is required. See https://midscenejs.com/model-strategy.html");let r=E("insight",A),o=E("planning",A);this.modelConfigMap={default:{...t,createOpenAIClient:this.createOpenAIClientFn},insight:{...r||t,createOpenAIClient:this.createOpenAIClientFn},planning:{...o||t,createOpenAIClient:this.createOpenAIClientFn}},this.isInitialized=!0}normalizeModelConfig(e){return Object.entries(e).reduce((e,A)=>{let[t,r]=A;return null==r||(e[t]=String(r)),e},Object.create(null))}clearModelConfigMap(){if(this.isolatedMode)throw Error("ModelConfigManager work in isolated mode, so clearModelConfigMap should not be called");this.isInitialized=!1}getModelConfig(e){if(this.isInitialized||this.initialize(),!this.modelConfigMap)throw Error("modelConfigMap is not initialized, which should not happen");return this.modelConfigMap[e]}getUploadTestServerUrl(){let{openaiExtraConfig:e}=this.getModelConfig("default");return null==e?void 0:e.REPORT_SERVER_URL}registerGlobalConfigManager(e){this.globalConfigManager=e}throwErrorIfNonVLModel(){if(!this.getModelConfig("default").modelFamily)throw Error("MIDSCENE_MODEL_FAMILY is not set to a visual language model (VL model), the element localization can not be achieved. Check your model configuration. See https://midscenejs.com/model-strategy.html")}constructor(e,A){v(this,"modelConfigMap",void 0),v(this,"isInitialized",!1),v(this,"isolatedMode",!1),v(this,"globalConfigManager",void 0),v(this,"modelConfig",void 0),v(this,"createOpenAIClientFn",void 0),this.modelConfig=e,this.createOpenAIClientFn=A}},k=new class{getAllEnvConfig(){let e=s.tk.reduce((e,A)=>(e[A]=c.env[A],e),Object.create(null));if(!this.override)return e;{let{newConfig:A,extendMode:t}=this.override;return t?{...e,...A}:{...A}}}getEnvConfigValue(e){let A=this.getAllEnvConfig();if(e===s.Sk)throw Error("MATCH_BY_POSITION is discarded, use MIDSCENE_MODEL_FAMILY instead");if(!s.rd.includes(e))throw Error(`getEnvConfigValue with key ${e} is not supported.`);let t=A[e];return(this.keysHaveBeenRead[e]=!0,"string"==typeof t)?t.trim():t}getEnvConfigInBoolean(e){let A=this.getAllEnvConfig();if(!s.c$.includes(e))throw Error(`getEnvConfigInBoolean with key ${e} is not supported`);let t=A[e];return this.keysHaveBeenRead[e]=!0,!!t&&(!!/^(true|1)$/i.test(t)||!/^(false|0)$/i.test(t)&&!!t.trim())}getEnvConfigValueAsNumber(e){if(!s.rd.includes(e)&&!s.DL.includes(e))throw Error(`getEnvConfigValueAsNumber with key ${e} is not supported.`);let A=this.getAllEnvConfig()[e];if(this.keysHaveBeenRead[e]=!0,"string"!=typeof A)return;let t=A.trim();if(!t)return;let r=Number(t);return Number.isNaN(r)?void 0:r}registerModelConfigManager(e){this.globalModelConfigManager=e}overrideAIConfig(e){var A;let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(let A in e){if(![...s.Lg,...s.XE].includes(A))throw Error(`Failed to override AI config, invalid key: ${A}`);let t=e[A];if("string"!=typeof t)throw Error(`Failed to override AI config, value for key ${A} must be a string, but got with type ${typeof t}`);this.keysHaveBeenRead[A]&&console.warn(`Warning: try to override AI config with key ${A} ,but it has been read.`)}let r=t?{...null==(A=this.override)?void 0:A.newConfig,...e}:e;if(this.override={newConfig:{...r},extendMode:t},!this.globalModelConfigManager)throw Error("globalModelConfigManager is not registered, which should not happen");this.globalModelConfigManager.clearModelConfigMap()}constructor(){d(this,"override",void 0),d(this,"keysHaveBeenRead",{}),d(this,"globalModelConfigManager",void 0),l()}};k.registerModelConfigManager(b),b.registerGlobalConfigManager(k);let C=function(e){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];k.overrideAIConfig(e,A)};t(6990),t(5678),t(6732),t(8963),t(5592);var S=t(3078);(0,i.aZ)("img"),(0,i.aZ)("img");var I=t(6244);(0,i.aZ)("ai:common");let R=I.z.object({left:I.z.number(),top:I.z.number()}),x=I.z.object({width:I.z.number(),height:I.z.number()});R.and(x).and(I.z.object({zoom:I.z.number().optional()}));let j=I.z.object({images:I.z.array(I.z.object({name:I.z.string(),url:I.z.string()})).optional(),convertHttpImage2Base64:I.z.boolean().optional()}),P=I.z.union([I.z.string(),I.z.object({prompt:I.z.string()}).and(j.partial())]),O=I.z.object({prompt:P,deepLocate:I.z.boolean().optional(),deepThink:I.z.boolean().optional().describe("@deprecated Use `deepLocate` instead."),cacheable:I.z.boolean().optional(),xpath:I.z.union([I.z.string(),I.z.boolean()]).optional()}).passthrough(),w=(e,A)=>{var t;return e&&(null==(t=e._def)?void 0:t.typeName)==="ZodObject"&&e.shape?Object.keys(e.shape).filter(t=>{var r;let o=e.shape[t];return!!(e=>{var A,t;let r=e;if((null==(A=r._def)?void 0:A.typeName)==="ZodOptional"&&(r=r._def.innerType),(null==(t=r._def)?void 0:t.typeName)==="ZodObject"){let e=r._def.shape();if("midscene_location_field_flag"in e||"prompt"in e&&e.prompt)return!0}return!1})(o)&&(!A||(null==(r=o._def)?void 0:r.typeName)!=="ZodOptional")}):[]};(0,i.aZ)("auto-glm-parser"),(0,i.aZ)("ai:inspect"),(0,i.aZ)("ai:section"),(0,i.aZ)("planning"),(0,i.aZ)("planning",{console:!0}),(0,i.aZ)("auto-glm-actions"),(0,i.aZ)("auto-glm-planning");var N=t(5409);let T={0:{keyCode:48,key:"0",code:"Digit0"},1:{keyCode:49,key:"1",code:"Digit1"},2:{keyCode:50,key:"2",code:"Digit2"},3:{keyCode:51,key:"3",code:"Digit3"},4:{keyCode:52,key:"4",code:"Digit4"},5:{keyCode:53,key:"5",code:"Digit5"},6:{keyCode:54,key:"6",code:"Digit6"},7:{keyCode:55,key:"7",code:"Digit7"},8:{keyCode:56,key:"8",code:"Digit8"},9:{keyCode:57,key:"9",code:"Digit9"},Power:{key:"Power",code:"Power"},Eject:{key:"Eject",code:"Eject"},Abort:{keyCode:3,code:"Abort",key:"Cancel"},Help:{keyCode:6,code:"Help",key:"Help"},Backspace:{keyCode:8,code:"Backspace",key:"Backspace"},Tab:{keyCode:9,code:"Tab",key:"Tab"},Numpad5:{keyCode:12,shiftKeyCode:101,key:"Clear",code:"Numpad5",shiftKey:"5",location:3},NumpadEnter:{keyCode:13,code:"NumpadEnter",key:"Enter",text:"\r",location:3},Enter:{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\r":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\n":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},ShiftLeft:{keyCode:16,code:"ShiftLeft",key:"Shift",location:1},ShiftRight:{keyCode:16,code:"ShiftRight",key:"Shift",location:2},ControlLeft:{keyCode:17,code:"ControlLeft",key:"Control",location:1},ControlRight:{keyCode:17,code:"ControlRight",key:"Control",location:2},AltLeft:{keyCode:18,code:"AltLeft",key:"Alt",location:1},AltRight:{keyCode:18,code:"AltRight",key:"Alt",location:2},Pause:{keyCode:19,code:"Pause",key:"Pause"},CapsLock:{keyCode:20,code:"CapsLock",key:"CapsLock"},Escape:{keyCode:27,code:"Escape",key:"Escape"},Convert:{keyCode:28,code:"Convert",key:"Convert"},NonConvert:{keyCode:29,code:"NonConvert",key:"NonConvert"},Space:{keyCode:32,code:"Space",key:" "},Numpad9:{keyCode:33,shiftKeyCode:105,key:"PageUp",code:"Numpad9",shiftKey:"9",location:3},PageUp:{keyCode:33,code:"PageUp",key:"PageUp"},Numpad3:{keyCode:34,shiftKeyCode:99,key:"PageDown",code:"Numpad3",shiftKey:"3",location:3},PageDown:{keyCode:34,code:"PageDown",key:"PageDown"},End:{keyCode:35,code:"End",key:"End"},Numpad1:{keyCode:35,shiftKeyCode:97,key:"End",code:"Numpad1",shiftKey:"1",location:3},Home:{keyCode:36,code:"Home",key:"Home"},Numpad7:{keyCode:36,shiftKeyCode:103,key:"Home",code:"Numpad7",shiftKey:"7",location:3},ArrowLeft:{keyCode:37,code:"ArrowLeft",key:"ArrowLeft"},Numpad4:{keyCode:37,shiftKeyCode:100,key:"ArrowLeft",code:"Numpad4",shiftKey:"4",location:3},Numpad8:{keyCode:38,shiftKeyCode:104,key:"ArrowUp",code:"Numpad8",shiftKey:"8",location:3},ArrowUp:{keyCode:38,code:"ArrowUp",key:"ArrowUp"},ArrowRight:{keyCode:39,code:"ArrowRight",key:"ArrowRight"},Numpad6:{keyCode:39,shiftKeyCode:102,key:"ArrowRight",code:"Numpad6",shiftKey:"6",location:3},Numpad2:{keyCode:40,shiftKeyCode:98,key:"ArrowDown",code:"Numpad2",shiftKey:"2",location:3},ArrowDown:{keyCode:40,code:"ArrowDown",key:"ArrowDown"},Select:{keyCode:41,code:"Select",key:"Select"},Open:{keyCode:43,code:"Open",key:"Execute"},PrintScreen:{keyCode:44,code:"PrintScreen",key:"PrintScreen"},Insert:{keyCode:45,code:"Insert",key:"Insert"},Numpad0:{keyCode:45,shiftKeyCode:96,key:"Insert",code:"Numpad0",shiftKey:"0",location:3},Delete:{keyCode:46,code:"Delete",key:"Delete"},NumpadDecimal:{keyCode:46,shiftKeyCode:110,code:"NumpadDecimal",key:"\0",shiftKey:".",location:3},Digit0:{keyCode:48,code:"Digit0",shiftKey:")",key:"0"},Digit1:{keyCode:49,code:"Digit1",shiftKey:"!",key:"1"},Digit2:{keyCode:50,code:"Digit2",shiftKey:"@",key:"2"},Digit3:{keyCode:51,code:"Digit3",shiftKey:"#",key:"3"},Digit4:{keyCode:52,code:"Digit4",shiftKey:"$",key:"4"},Digit5:{keyCode:53,code:"Digit5",shiftKey:"%",key:"5"},Digit6:{keyCode:54,code:"Digit6",shiftKey:"^",key:"6"},Digit7:{keyCode:55,code:"Digit7",shiftKey:"&",key:"7"},Digit8:{keyCode:56,code:"Digit8",shiftKey:"*",key:"8"},Digit9:{keyCode:57,code:"Digit9",shiftKey:"(",key:"9"},KeyA:{keyCode:65,code:"KeyA",shiftKey:"A",key:"a"},KeyB:{keyCode:66,code:"KeyB",shiftKey:"B",key:"b"},KeyC:{keyCode:67,code:"KeyC",shiftKey:"C",key:"c"},KeyD:{keyCode:68,code:"KeyD",shiftKey:"D",key:"d"},KeyE:{keyCode:69,code:"KeyE",shiftKey:"E",key:"e"},KeyF:{keyCode:70,code:"KeyF",shiftKey:"F",key:"f"},KeyG:{keyCode:71,code:"KeyG",shiftKey:"G",key:"g"},KeyH:{keyCode:72,code:"KeyH",shiftKey:"H",key:"h"},KeyI:{keyCode:73,code:"KeyI",shiftKey:"I",key:"i"},KeyJ:{keyCode:74,code:"KeyJ",shiftKey:"J",key:"j"},KeyK:{keyCode:75,code:"KeyK",shiftKey:"K",key:"k"},KeyL:{keyCode:76,code:"KeyL",shiftKey:"L",key:"l"},KeyM:{keyCode:77,code:"KeyM",shiftKey:"M",key:"m"},KeyN:{keyCode:78,code:"KeyN",shiftKey:"N",key:"n"},KeyO:{keyCode:79,code:"KeyO",shiftKey:"O",key:"o"},KeyP:{keyCode:80,code:"KeyP",shiftKey:"P",key:"p"},KeyQ:{keyCode:81,code:"KeyQ",shiftKey:"Q",key:"q"},KeyR:{keyCode:82,code:"KeyR",shiftKey:"R",key:"r"},KeyS:{keyCode:83,code:"KeyS",shiftKey:"S",key:"s"},KeyT:{keyCode:84,code:"KeyT",shiftKey:"T",key:"t"},KeyU:{keyCode:85,code:"KeyU",shiftKey:"U",key:"u"},KeyV:{keyCode:86,code:"KeyV",shiftKey:"V",key:"v"},KeyW:{keyCode:87,code:"KeyW",shiftKey:"W",key:"w"},KeyX:{keyCode:88,code:"KeyX",shiftKey:"X",key:"x"},KeyY:{keyCode:89,code:"KeyY",shiftKey:"Y",key:"y"},KeyZ:{keyCode:90,code:"KeyZ",shiftKey:"Z",key:"z"},MetaLeft:{keyCode:91,code:"MetaLeft",key:"Meta",location:1},MetaRight:{keyCode:92,code:"MetaRight",key:"Meta",location:2},ContextMenu:{keyCode:93,code:"ContextMenu",key:"ContextMenu"},NumpadMultiply:{keyCode:106,code:"NumpadMultiply",key:"*",location:3},NumpadAdd:{keyCode:107,code:"NumpadAdd",key:"+",location:3},NumpadSubtract:{keyCode:109,code:"NumpadSubtract",key:"-",location:3},NumpadDivide:{keyCode:111,code:"NumpadDivide",key:"/",location:3},F1:{keyCode:112,code:"F1",key:"F1"},F2:{keyCode:113,code:"F2",key:"F2"},F3:{keyCode:114,code:"F3",key:"F3"},F4:{keyCode:115,code:"F4",key:"F4"},F5:{keyCode:116,code:"F5",key:"F5"},F6:{keyCode:117,code:"F6",key:"F6"},F7:{keyCode:118,code:"F7",key:"F7"},F8:{keyCode:119,code:"F8",key:"F8"},F9:{keyCode:120,code:"F9",key:"F9"},F10:{keyCode:121,code:"F10",key:"F10"},F11:{keyCode:122,code:"F11",key:"F11"},F12:{keyCode:123,code:"F12",key:"F12"},F13:{keyCode:124,code:"F13",key:"F13"},F14:{keyCode:125,code:"F14",key:"F14"},F15:{keyCode:126,code:"F15",key:"F15"},F16:{keyCode:127,code:"F16",key:"F16"},F17:{keyCode:128,code:"F17",key:"F17"},F18:{keyCode:129,code:"F18",key:"F18"},F19:{keyCode:130,code:"F19",key:"F19"},F20:{keyCode:131,code:"F20",key:"F20"},F21:{keyCode:132,code:"F21",key:"F21"},F22:{keyCode:133,code:"F22",key:"F22"},F23:{keyCode:134,code:"F23",key:"F23"},F24:{keyCode:135,code:"F24",key:"F24"},NumLock:{keyCode:144,code:"NumLock",key:"NumLock"},ScrollLock:{keyCode:145,code:"ScrollLock",key:"ScrollLock"},AudioVolumeMute:{keyCode:173,code:"AudioVolumeMute",key:"AudioVolumeMute"},AudioVolumeDown:{keyCode:174,code:"AudioVolumeDown",key:"AudioVolumeDown"},AudioVolumeUp:{keyCode:175,code:"AudioVolumeUp",key:"AudioVolumeUp"},MediaTrackNext:{keyCode:176,code:"MediaTrackNext",key:"MediaTrackNext"},MediaTrackPrevious:{keyCode:177,code:"MediaTrackPrevious",key:"MediaTrackPrevious"},MediaStop:{keyCode:178,code:"MediaStop",key:"MediaStop"},MediaPlayPause:{keyCode:179,code:"MediaPlayPause",key:"MediaPlayPause"},Semicolon:{keyCode:186,code:"Semicolon",shiftKey:":",key:";"},Equal:{keyCode:187,code:"Equal",shiftKey:"+",key:"="},NumpadEqual:{keyCode:187,code:"NumpadEqual",key:"=",location:3},Comma:{keyCode:188,code:"Comma",shiftKey:"<",key:","},Minus:{keyCode:189,code:"Minus",shiftKey:"_",key:"-"},Period:{keyCode:190,code:"Period",shiftKey:">",key:"."},Slash:{keyCode:191,code:"Slash",shiftKey:"?",key:"/"},Backquote:{keyCode:192,code:"Backquote",shiftKey:"~",key:"`"},BracketLeft:{keyCode:219,code:"BracketLeft",shiftKey:"{",key:"["},Backslash:{keyCode:220,code:"Backslash",shiftKey:"|",key:"\\"},BracketRight:{keyCode:221,code:"BracketRight",shiftKey:"}",key:"]"},Quote:{keyCode:222,code:"Quote",shiftKey:'"',key:"'"},AltGraph:{keyCode:225,code:"AltGraph",key:"AltGraph"},Props:{keyCode:247,code:"Props",key:"CrSel"},Cancel:{keyCode:3,key:"Cancel",code:"Abort"},Clear:{keyCode:12,key:"Clear",code:"Numpad5",location:3},Shift:{keyCode:16,key:"Shift",code:"ShiftLeft",location:1},Control:{keyCode:17,key:"Control",code:"ControlLeft",location:1},Alt:{keyCode:18,key:"Alt",code:"AltLeft",location:1},Accept:{keyCode:30,key:"Accept"},ModeChange:{keyCode:31,key:"ModeChange"}," ":{keyCode:32,key:" ",code:"Space"},Print:{keyCode:42,key:"Print"},Execute:{keyCode:43,key:"Execute",code:"Open"},"\0":{keyCode:46,key:"\0",code:"NumpadDecimal",location:3},a:{keyCode:65,key:"a",code:"KeyA"},b:{keyCode:66,key:"b",code:"KeyB"},c:{keyCode:67,key:"c",code:"KeyC"},d:{keyCode:68,key:"d",code:"KeyD"},e:{keyCode:69,key:"e",code:"KeyE"},f:{keyCode:70,key:"f",code:"KeyF"},g:{keyCode:71,key:"g",code:"KeyG"},h:{keyCode:72,key:"h",code:"KeyH"},i:{keyCode:73,key:"i",code:"KeyI"},j:{keyCode:74,key:"j",code:"KeyJ"},k:{keyCode:75,key:"k",code:"KeyK"},l:{keyCode:76,key:"l",code:"KeyL"},m:{keyCode:77,key:"m",code:"KeyM"},n:{keyCode:78,key:"n",code:"KeyN"},o:{keyCode:79,key:"o",code:"KeyO"},p:{keyCode:80,key:"p",code:"KeyP"},q:{keyCode:81,key:"q",code:"KeyQ"},r:{keyCode:82,key:"r",code:"KeyR"},s:{keyCode:83,key:"s",code:"KeyS"},t:{keyCode:84,key:"t",code:"KeyT"},u:{keyCode:85,key:"u",code:"KeyU"},v:{keyCode:86,key:"v",code:"KeyV"},w:{keyCode:87,key:"w",code:"KeyW"},x:{keyCode:88,key:"x",code:"KeyX"},y:{keyCode:89,key:"y",code:"KeyY"},z:{keyCode:90,key:"z",code:"KeyZ"},Meta:{keyCode:91,key:"Meta",code:"MetaLeft",location:1},"*":{keyCode:106,key:"*",code:"NumpadMultiply",location:3},"+":{keyCode:107,key:"+",code:"NumpadAdd",location:3},"-":{keyCode:109,key:"-",code:"NumpadSubtract",location:3},"/":{keyCode:111,key:"/",code:"NumpadDivide",location:3},";":{keyCode:186,key:";",code:"Semicolon"},"=":{keyCode:187,key:"=",code:"Equal"},",":{keyCode:188,key:",",code:"Comma"},".":{keyCode:190,key:".",code:"Period"},"`":{keyCode:192,key:"`",code:"Backquote"},"[":{keyCode:219,key:"[",code:"BracketLeft"},"\\":{keyCode:220,key:"\\",code:"Backslash"},"]":{keyCode:221,key:"]",code:"BracketRight"},"'":{keyCode:222,key:"'",code:"Quote"},Attn:{keyCode:246,key:"Attn"},CrSel:{keyCode:247,key:"CrSel",code:"Props"},ExSel:{keyCode:248,key:"ExSel"},EraseEof:{keyCode:249,key:"EraseEof"},Play:{keyCode:250,key:"Play"},ZoomOut:{keyCode:251,key:"ZoomOut"},")":{keyCode:48,key:")",code:"Digit0"},"!":{keyCode:49,key:"!",code:"Digit1"},"@":{keyCode:50,key:"@",code:"Digit2"},"#":{keyCode:51,key:"#",code:"Digit3"},$:{keyCode:52,key:"$",code:"Digit4"},"%":{keyCode:53,key:"%",code:"Digit5"},"^":{keyCode:54,key:"^",code:"Digit6"},"&":{keyCode:55,key:"&",code:"Digit7"},"(":{keyCode:57,key:"(",code:"Digit9"},A:{keyCode:65,key:"A",code:"KeyA"},B:{keyCode:66,key:"B",code:"KeyB"},C:{keyCode:67,key:"C",code:"KeyC"},D:{keyCode:68,key:"D",code:"KeyD"},E:{keyCode:69,key:"E",code:"KeyE"},F:{keyCode:70,key:"F",code:"KeyF"},G:{keyCode:71,key:"G",code:"KeyG"},H:{keyCode:72,key:"H",code:"KeyH"},I:{keyCode:73,key:"I",code:"KeyI"},J:{keyCode:74,key:"J",code:"KeyJ"},K:{keyCode:75,key:"K",code:"KeyK"},L:{keyCode:76,key:"L",code:"KeyL"},M:{keyCode:77,key:"M",code:"KeyM"},N:{keyCode:78,key:"N",code:"KeyN"},O:{keyCode:79,key:"O",code:"KeyO"},P:{keyCode:80,key:"P",code:"KeyP"},Q:{keyCode:81,key:"Q",code:"KeyQ"},R:{keyCode:82,key:"R",code:"KeyR"},S:{keyCode:83,key:"S",code:"KeyS"},T:{keyCode:84,key:"T",code:"KeyT"},U:{keyCode:85,key:"U",code:"KeyU"},V:{keyCode:86,key:"V",code:"KeyV"},W:{keyCode:87,key:"W",code:"KeyW"},X:{keyCode:88,key:"X",code:"KeyX"},Y:{keyCode:89,key:"Y",code:"KeyY"},Z:{keyCode:90,key:"Z",code:"KeyZ"},":":{keyCode:186,key:":",code:"Semicolon"},"<":{keyCode:188,key:"<",code:"Comma"},_:{keyCode:189,key:"_",code:"Minus"},">":{keyCode:190,key:">",code:"Period"},"?":{keyCode:191,key:"?",code:"Slash"},"~":{keyCode:192,key:"~",code:"Backquote"},"{":{keyCode:219,key:"{",code:"BracketLeft"},"|":{keyCode:220,key:"|",code:"Backslash"},"}":{keyCode:221,key:"}",code:"BracketRight"},'"':{keyCode:222,key:'"',code:"Quote"},SoftLeft:{key:"SoftLeft",code:"SoftLeft",location:4},SoftRight:{key:"SoftRight",code:"SoftRight",location:4},Camera:{keyCode:44,key:"Camera",code:"Camera",location:4},Call:{key:"Call",code:"Call",location:4},EndCall:{keyCode:95,key:"EndCall",code:"EndCall",location:4},VolumeDown:{keyCode:182,key:"VolumeDown",code:"VolumeDown",location:4},VolumeUp:{keyCode:183,key:"VolumeUp",code:"VolumeUp",location:4}};Object.entries(T).reduce((e,A)=>{let[t,r]=A,o=t.toLowerCase();return o!==t&&(e[o]=r),e},{});let K="undefined"!=typeof window?/Mac|iPod|iPhone|iPad/.test(window.navigator.platform):"darwin"===N.platform;T.Enter.key,T.Enter.key,K?T.Meta.key:T.Control.key,T.Shift.key,T.Alt.key,T.Space.key,T.PageDown.key,T.PageDown.key,T.PageUp.key,T.PageUp.key,t(2788),(0,i.aZ)("ui-tars-planning"),(0,i.aZ)("ui-tars-planning",{console:!0}),t(1182),t(3612),t(3198),t(9383),t(5409);let M=(0,i.aZ)("yaml:utils");function B(e,A){let t;M("will call buildDetailedLocateParam",e,A);let r=e||(null==A?void 0:A.prompt)||(null==A?void 0:A.locate),o=!1,n=!0;return("object"==typeof A&&null!==A&&(o=A.deepLocate??A.deepThink??!1,n=A.cacheable??!0,t=A.xpath,e&&A.prompt&&e!==A.prompt&&console.warn("conflict prompt for item",e,A,"maybe you put the prompt in the wrong place"),r=r||A.prompt),r)?{prompt:r,deepLocate:o,cacheable:n,xpath:t}:void M("no prompt, will return undefined in buildDetailedLocateParam",A)}t(5409),(0,i.aZ)("yaml-player");let D=["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert","aiWaitFor"];async function z(e,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(null==e?void 0:e.paramSchema)||!("shape"in e.paramSchema))return[A.prompt||"",t];let r=e.paramSchema,o=r&&"shape"in r?Object.keys(r.shape):[],{deviceOptions:n,...i}=t,a={...i,...t.deviceOptions||{}};return o.forEach(e=>{void 0!==A[e]&&null!==A[e]&&""!==A[e]&&(a[e]=A[e])}),r&&w(r).forEach(e=>{let r=A[e];if(r&&"string"==typeof r){let A=B(r,{deepLocate:t.deepLocate,cacheable:!0});A&&(a[e]=A)}}),[a]}async function Q(e,A,t,r,o){"aiAct"!==A&&void 0!==o.deepThink&&console.warn("[Playground] Received deepThink in non-aiAct action options. deepThink is expected to be used with aiAct during migration.",{actionType:A,requestId:o.requestId,options:o});let n=null==t?void 0:t.find(e=>e.interfaceAlias===A||e.name===A);if(n&&"function"==typeof e.callActionInActionSpace)if(r.params){let A=await z(n,r.params,o);return await e.callActionInActionSpace(n.name,A[0])}else{let A=r.prompt?B(r.prompt,{deepLocate:o.deepLocate,cacheable:!0}):void 0,{deviceOptions:t,...i}=o,a={locate:A,...i,...o.deviceOptions||{}};return await e.callActionInActionSpace(n.name,a)}{let t=r.prompt;if("aiAssert"===A){var i;let{pass:A,thought:r}=await (null==e||null==(i=e.aiAssert)?void 0:i.call(e,t||"",void 0,{keepRawResponse:!0,...o}))||{};return{pass:A||!1,thought:r||""}}if(e&&"function"==typeof e[A])return await e[A](t,o);throw Error(`Unknown action type: ${A}`)}}var L=t(6970),Z=t(2801),X=t(8963).Buffer,J={"node:fs"(e){e.exports=Z}},U={},F=function e(A){var t=U[A];if(void 0!==t)return t.exports;var r=U[A]={exports:{}};return J[A](r,r.exports,e),r.exports}("node:fs");f.NB;let q=f.x3;function V(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class G{static create(e,A){return new G((0,f.uR)(),e,A)}get id(){return this._id}get format(){return this._format}get extension(){return"jpeg"===this._format?"jpeg":"png"}get capturedAt(){return this._capturedAt}get base64(){if(null!==this._base64)return this._base64;if(null!==this._persistedPath){let e=(0,L.readFileSync)(this._persistedPath);return`data:image/${this._format};base64,${e.toString("base64")}`}if(null!==this._persistedHtmlPath){var e,A;let t,r,o=(e=this._persistedHtmlPath,A=this._id,t=`<script type="midscene-image" data-id="${A}">`,r=null,!function(e,A,t,r){let o=(0,F.openSync)(e,"r"),n=(0,F.statSync)(e).size,i=X.alloc(65536),a=0,s="",l=!1,c="";try{for(;a<n;){let e=(0,F.readSync)(o,i,0,65536,a),n=s+i.toString("utf-8",0,e);a+=e;let d=0;for(;d<n.length;)if(l){let e=n.indexOf(t,d);if(-1!==e){if(c+=n.slice(d,e),r(c))return;l=!1,c="",d=e+t.length}else{c+=n.slice(d,-t.length),s=n.slice(-t.length);break}}else{let e=n.indexOf(A,d);if(-1!==e){l=!0;let o=(c=n.slice(e+A.length)).indexOf(t);if(-1!==o){if(r(c.slice(0,o)))return;l=!1,c="",d=e+A.length+o+t.length}else{s=c.slice(-t.length),c=c.slice(0,-t.length);break}}else{s=n.slice(-A.length);break}}}}finally{(0,F.closeSync)(o)}}(e,t,"<\/script>",e=>(r=q(e),!0)),r);if(o)return o;throw Error(`Screenshot ${this._id}: cannot recover from HTML (id not found in ${this._persistedHtmlPath})`)}throw Error(`Screenshot ${this._id}: base64 data released without recovery path`)}hasBase64(){return null!==this._base64}markPersistedInline(e){this._persistedAs={$screenshot:this._id,capturedAt:this._capturedAt},this._persistedHtmlPath=e,this._base64=null}markPersistedToPath(e,A){this._persistedAs={base64:e,capturedAt:this._capturedAt},this._persistedPath=A,this._base64=null}toSerializable(){return this._persistedAs??{$screenshot:this._id,capturedAt:this._capturedAt}}static isSerialized(e){return"object"==typeof e&&null!==e&&("$screenshot"in e&&"string"==typeof e.$screenshot||"base64"in e&&"string"==typeof e.base64)&&"capturedAt"in e&&"number"==typeof e.capturedAt}get rawBase64(){return this.base64.replace(/^data:image\/(png|jpeg|jpg);base64,/,"")}constructor(e,A,t){V(this,"_id",void 0),V(this,"_base64",void 0),V(this,"_format",void 0),V(this,"_capturedAt",void 0),V(this,"_persistedAs",null),V(this,"_persistedPath",null),V(this,"_persistedHtmlPath",null),this._id=e,this._base64=A,this._format=function(e){return e.startsWith("data:image/jpeg")||e.startsWith("data:image/jpg")?"jpeg":"png"}(A),this._capturedAt=t}}var H=t(8963).Buffer;function W(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function Y(e,A){var t,r;return A&&(null==(t=A.constructor)?void 0:t.name)==="Page"?"[Page object]":A&&(null==(r=A.constructor)?void 0:r.name)==="Browser"?"[Browser object]":A&&"function"==typeof A.toSerializable?A.toSerializable():A}function _(e,A){return"screenshot"!==e||"object"!=typeof A||null===A||G.isSerialized(A)||"base64"in A&&A.base64,A}class ${serialize(e){return JSON.stringify(this.toJSON(),Y,e)}toJSON(){return{logTime:this.logTime,name:this.name,description:this.description,tasks:this.tasks.map(e=>({...e,recorder:e.recorder||[]})),aiActContext:this.aiActContext}}static fromSerializedString(e){return new $(JSON.parse(e,_))}static fromJSON(e){return new $(e)}collectScreenshots(){let e=[];for(let t of this.tasks){var A;if((null==(A=t.uiContext)?void 0:A.screenshot)instanceof G&&e.push(t.uiContext.screenshot),t.recorder)for(let A of t.recorder)A.screenshot instanceof G&&e.push(A.screenshot)}return e}constructor(e){W(this,"logTime",void 0),W(this,"name",void 0),W(this,"description",void 0),W(this,"tasks",void 0),W(this,"aiActContext",void 0),this.logTime=e.logTime,this.name=e.name,this.description=e.description,this.tasks=e.tasks,this.aiActContext=e.aiActContext}}class ee{serialize(e){return JSON.stringify(this.toJSON(),Y,e)}serializeWithInlineScreenshots(e){let A=e=>e instanceof G?{base64:e.base64,capturedAt:e.capturedAt}:Array.isArray(e)?e.map(A):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(e=>{let[t,r]=e;return[t,A(r)]})):e;return JSON.stringify(A(this.toJSON()),null,e)}toJSON(){return{sdkVersion:this.sdkVersion,groupName:this.groupName,groupDescription:this.groupDescription,modelBriefs:this.modelBriefs,executions:this.executions.map(e=>e.toJSON()),deviceType:this.deviceType}}static fromSerializedString(e){return new ee(JSON.parse(e,_))}static fromJSON(e){return new ee(e)}collectAllScreenshots(){let e=[];for(let A of this.executions)e.push(...A.collectScreenshots());return e}serializeToFiles(e){let A=`${e}.screenshots`;(0,L.existsSync)(A)||(0,L.mkdirSync)(A,{recursive:!0});let t={};for(let e of this.collectAllScreenshots())if(e.hasBase64()){let r=(0,S.join)(A,`${e.id}.${e.extension}`),o=e.rawBase64;(0,L.writeFileSync)(r,H.from(o,"base64")),t[e.id]=r}(0,L.writeFileSync)(`${e}.screenshots.json`,JSON.stringify(t),"utf-8"),(0,L.writeFileSync)(e,this.serialize(),"utf-8")}static fromFilesAsInlineJson(e){let A=(0,L.readFileSync)(e,"utf-8"),t=`${e}.screenshots.json`;if(!(0,L.existsSync)(t))return A;let r=JSON.parse((0,L.readFileSync)(t,"utf-8")),o={};for(let[e,A]of Object.entries(r))if((0,L.existsSync)(A)){let t=(0,L.readFileSync)(A),r=A.endsWith(".jpeg")||A.endsWith(".jpg")?"jpeg":"png";o[e]=`data:image/${r};base64,${t.toString("base64")}`}return JSON.stringify(function e(A,t){if("string"==typeof A)return A;if(Array.isArray(A))return A.map(A=>e(A,t));if("object"==typeof A&&null!==A){if("$screenshot"in A){let e=A.$screenshot,r="number"==typeof A.capturedAt?A.capturedAt:void 0;if("string"==typeof e){if(e.startsWith("data:image/")||e.startsWith("./")||e.startsWith("/"))return{base64:e,capturedAt:r};let A=null;return Object.defineProperties({},{base64:{get:()=>(null===A&&(A=t(e)),A),enumerable:!0},capturedAt:{value:r,enumerable:!0}})}return console.warn("Invalid $screenshot value type:",typeof e),{base64:""}}let r={};for(let[o,n]of Object.entries(A))r[o]=e(n,t);return r}return A}(JSON.parse(A),e=>o[e]??""))}static cleanupFiles(e){for(let A of[e,`${e}.screenshots.json`,`${e}.screenshots`])try{(0,L.rmSync)(A,{force:!0,recursive:!0})}catch{}}static getFilePaths(e){return[e,`${e}.screenshots.json`,`${e}.screenshots`]}constructor(e){W(this,"sdkVersion",void 0),W(this,"groupName",void 0),W(this,"groupDescription",void 0),W(this,"modelBriefs",void 0),W(this,"executions",void 0),W(this,"deviceType",void 0),this.sdkVersion=e.sdkVersion,this.groupName=e.groupName,this.groupDescription=e.groupDescription,this.modelBriefs=e.modelBriefs,this.executions=e.executions.map(e=>e instanceof $?e:$.fromJSON(e)),this.deviceType=e.deviceType}}function eA(e){return e.subType||e.type}function et(e){if(!e)return"";if("string"==typeof e)return e;if("object"==typeof e){if("object"==typeof e.prompt&&null!==e.prompt&&e.prompt.prompt)return e.prompt.prompt;if("string"==typeof e.prompt)return e.prompt;if("string"==typeof e.description)return e.description}return""}function er(e){var A,t,r,o,n,i,a,s,l,c;let d;if("Planning"===e.type&&(d="Locate"===e.subType?et(null==e?void 0:e.param):(null==(A=e.output)?void 0:A.log)||(null==(t=e.param)?void 0:t.userInstruction)),"Insight"===e.type&&(d=function(e){if(!e)return{content:""};let A=e=>{var A;return(null==e||null==(A=e.multimodalPrompt)?void 0:A.images)&&Array.isArray(e.multimodalPrompt.images)?e.multimodalPrompt.images:void 0},t=e=>"string"==typeof e?e:JSON.stringify(e);if(e.demand)return{content:t(e.demand),images:A(e)};if(e.assertion)return{content:t(e.assertion),images:A(e)};if(e.dataDemand){let{dataDemand:r}=e;if("string"==typeof r)return{content:r};if("object"==typeof r)return{content:t(r.demand||r),images:A(r)}}return{content:""}}(null==e?void 0:e.param).content),"Action Space"===e.type){let A=null==e||null==(r=e.param)?void 0:r.locate,t=A?et(A):"";(d=e.thought||"","number"==typeof(null==e||null==(o=e.param)?void 0:o.timeMs))?d=`${null==e||null==(n=e.param)?void 0:n.timeMs}ms`:"string"==typeof(null==e||null==(i=e.param)?void 0:i.scrollType)?d=(c=null==e?void 0:e.param)?`${c.direction||"down"}, ${c.scrollType||"singleAction"}, ${c.distance||"distance-not-set"}`:"":"string"==typeof(null==e||null==(a=e.param)?void 0:a.direction)&&(null==e?void 0:e.subType)==="PullGesture"?d=function(e){if(!e)return"";let A=[];return A.push(`direction: ${e.direction||"down"}`),e.distance&&A.push(`distance: ${e.distance}`),e.duration&&A.push(`duration: ${e.duration}ms`),A.join(", ")}(null==e?void 0:e.param):void 0!==(null==e||null==(s=e.param)?void 0:s.value)?d=null==e||null==(l=e.param)?void 0:l.value:(null==e?void 0:e.param)&&"object"==typeof(null==e?void 0:e.param)&&Object.keys((null==e?void 0:e.param)||{}).length>0&&(d=null==e?void 0:e.param),t&&(d=d&&"object"!=typeof d?`${t} - ${d}`:t)}if(void 0===d)return"";if("string"==typeof d)return d;if("object"==typeof d){let e=et(d);return e||JSON.stringify(d,void 0,2)}return String(d)}(0,i.aZ)("ai:service"),(0,i.aZ)("task-timing"),(0,i.aZ)("task-runner"),t(3009),t(5207),t(1344),t(8963).Buffer,t(5409),t(8963).Buffer,t(9140),I.z.object({locate:O.describe("The element to be tapped")}),I.z.object({locate:O.describe("The element to be right clicked")}),I.z.object({locate:O.describe("The element to be double clicked")}),I.z.object({locate:O.describe("The element to be hovered")}),I.z.object({value:I.z.union([I.z.string(),I.z.number()]).transform(e=>String(e)).describe("The text to input. Provide the final content for replace/append modes, or an empty string when using clear mode to remove existing text."),locate:O.describe("the position of the placeholder or text content in the target input field. If there is no content, locate the center of the input field.").optional(),mode:I.z.enum(["replace","clear","typeOnly"]).default("replace").describe('Input mode: "replace" (default) - clear the field and input the value; "typeOnly" - type the value directly without clearing the field first; "clear" - clear the field without inputting new text.')}),I.z.object({locate:O.describe("The element to be clicked before pressing the key").optional(),keyName:I.z.string().describe("The key to be pressed. Use '+' for key combinations, e.g., 'Control+A', 'Shift+Enter'")}),I.z.object({scrollType:I.z.enum(["singleAction","scrollToBottom","scrollToTop","scrollToRight","scrollToLeft"]).default("singleAction").describe('The scroll behavior: "singleAction" for a single scroll action, "scrollToBottom" for scrolling all the way to the bottom by rapidly scrolling 5-10 times (skipping intermediate content until reaching the bottom), "scrollToTop" for scrolling all the way to the top by rapidly scrolling 5-10 times (skipping intermediate content until reaching the top), "scrollToRight" for scrolling all the way to the right by rapidly scrolling multiple times, "scrollToLeft" for scrolling all the way to the left by rapidly scrolling multiple times'),direction:I.z.enum(["down","up","right","left"]).default("down").describe('The direction to scroll. Only effective when scrollType is "singleAction".'),distance:I.z.number().nullable().optional().describe("The distance in pixels to scroll"),locate:O.optional().describe('Describe the target element to be scrolled on, like "the table" or "the list" or "the content area" or "the scrollable area". Do NOT provide a general intent like "scroll to find some element"')}),I.z.object({from:O.describe("The position to be dragged"),to:O.describe("The position to be dropped")}),I.z.object({locate:O.describe("The element to be long pressed"),duration:I.z.number().default(500).optional().describe("Long press duration in milliseconds")}),I.z.object({start:O.optional().describe("Starting point of the swipe gesture, if not specified, the center of the page will be used"),direction:I.z.enum(["up","down","left","right"]).optional().describe("The direction to swipe (required when using distance). The direction means the direction of the finger swipe."),distance:I.z.number().optional().describe("The distance in pixels to swipe (mutually exclusive with end)"),end:O.optional().describe("Ending point of the swipe gesture (mutually exclusive with distance)"),duration:I.z.number().default(300).describe("Duration of the swipe gesture in milliseconds"),repeat:I.z.number().optional().describe("The number of times to repeat the swipe gesture. 1 for default, 0 for infinite (e.g. endless swipe until the end of the page)")}),I.z.object({locate:O.describe("The input field to be cleared").optional()}),I.z.object({direction:I.z.enum(["left","right"]).describe("The direction to move the cursor"),times:I.z.number().int().min(1).default(1).describe("The number of times to move the cursor in the specified direction")}),I.z.object({timeMs:I.z.number().default(1e3).optional().describe("Sleep duration in milliseconds, defaults to 1000ms (1 second)")}),t(8586),t(9300),t(5409),t(8963).Buffer,(0,i.aZ)("cache"),(0,i.aZ)("agent:task-builder"),(0,i.aZ)("device-task-executor"),(0,i.aZ)("agent"),["read-only","read-write","write-only"].map(e=>`"${e}"`).join(", ");class eo{async getActionSpace(e){return[]}validateParams(e,A){if(!(null==A?void 0:A.paramSchema)||!this.actionNeedsStructuredParams(A))return{valid:!0};if(!e.params)return{valid:!1,errorMessage:"Parameters are required"};try{let t=this.prepareParamsForValidation(e.params,A);return A.paramSchema.parse(t),{valid:!0}}catch(e){return this.handleValidationError(e)}}createDisplayContent(e,A,t){return A&&e.params&&(null==t?void 0:t.paramSchema)?this.buildParamsDisplayList(e.params,t).join("\n")||e.prompt||"":e.prompt||""}formatBasicErrorMessage(e){return(null==e?void 0:e.message)||"Unknown error"}getSchemaKeys(e){if(!(null==e?void 0:e.paramSchema)||!("shape"in e.paramSchema))return[];let A=e.paramSchema;return A&&"shape"in A?Object.keys(A.shape):[]}filterValidParams(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t={};return Object.keys(e).forEach(r=>{A.includes(r)||void 0===e[r]||null===e[r]||""===e[r]||(t[r]=e[r])}),t}actionNeedsStructuredParams(e){return"object"!=typeof e.paramSchema||!("shape"in e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0}prepareParamsForValidation(e,A){let t={...e};return A.paramSchema&&w(A.paramSchema).forEach(e=>{"string"==typeof t[e]&&(t[e]={midscene_location_field_flag:!0,prompt:t[e],center:[0,0],rect:{left:0,top:0,width:0,height:0}})}),t}handleValidationError(e){if(e.errors&&e.errors.length>0){let A=e.errors.filter(e=>{let A=e.path.join(".");return!A.includes("center")&&!A.includes("rect")&&!A.includes("midscene_location_field_flag")}).map(e=>{let A=e.path.join(".");return`${A}: ${e.message}`});if(A.length>0)return{valid:!1,errorMessage:`Validation error: ${A.join(", ")}`}}let A=e instanceof Error?e.message:"Unknown validation error";return{valid:!1,errorMessage:`Parameter validation failed: ${A}`}}buildParamsDisplayList(e,A){let t=[],r=A.paramSchema;if(!(r&&"shape"in r))return t;let o=w(r);return Object.keys(r.shape).forEach(A=>{let r=e[A];if(this.isValidParamValue(r)){let e=this.capitalizeFirstLetter(A),n=this.formatParamValue(A,r,o.includes(A));t.push(`${e}: ${n}`)}}),t}isValidParamValue(e){return null!=e&&""!==e}capitalizeFirstLetter(e){return e.charAt(0).toUpperCase()+e.slice(1)}formatParamValue(e,A,t){return t||"string"==typeof A?`"${A}"`:"number"==typeof A&&"distance"===e?`${A}px`:`${A}`}}function en(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class ei extends eo{get id(){return this._id}onDumpUpdate(e){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=e}setProgressCallback(e){this.progressCallback=void 0,this.progressCallback=e}async parseStructuredParams(e,A,t){return await z(e,A,t)}formatErrorMessage(e){return((null==e?void 0:e.message)||"").includes("of different extension")?"Conflicting extension detected. Please disable the suspicious plugins and refresh the page. Guide: https://midscenejs.com/quick-experience.html#faq":this.formatBasicErrorMessage(e)}async getActionSpace(e){var A;if(!this.agent&&this.agentFactory)try{this.agent=await this.agentFactory()}catch(e){return console.warn("Failed to create agent for actionSpace:",e),[]}if(null==(A=this.agent)?void 0:A.getActionSpace)return await this.agent.getActionSpace();if(this.agent&&"interface"in this.agent&&"object"==typeof this.agent.interface){let e=this.agent.interface;if(null==e?void 0:e.actionSpace)return e.actionSpace()}return e&&"object"==typeof e&&"actionSpace"in e?e.actionSpace():[]}async checkStatus(){return!0}async overrideConfig(e){C(e),console.log("Config updated. Agent will be recreated on next execution.")}async detachDebuggerSafely(){try{var e,A;let t=null==(e=this.agent)?void 0:e.interface;await (null==t||null==(A=t.detachDebugger)?void 0:A.call(t))}catch(e){console.warn("Failed to detach debugger:",e)}}async executeAction(e,A,t){var r,o,n,i;let a;if(this.agentFactory){if(this.agent){console.log("Destroying old agent before execution...");try{await (null==(r=(o=this.agent).destroy)?void 0:r.call(o))}catch(e){console.warn("Failed to destroy old agent:",e)}this.agent=null}await this.recreateAgent()}if(!this.agent)throw Error("No agent available. Please provide either an agent instance or agentFactory.");let s=this.agent,l=await this.getActionSpace();try{null==(n=s.resetDump)||n.call(s)}catch(e){console.warn("Failed to reset dump before execution:",e)}t.requestId&&(this.currentRequestId=t.requestId,a=s.addDumpUpdateListener((e,A)=>{this.currentRequestId===t.requestId&&this.dumpUpdateCallback&&this.dumpUpdateCallback(e,A)}));try{let r=null,o=null;try{r=await Q(s,e,l,A,t)}catch(e){o=e}let n={result:r,dump:null,reportHTML:null,error:o?o instanceof Error?o.message:String(o):null};try{if(s.dumpDataString){let e=s.dumpDataString();e&&(n.dump=(null==(i=ee.fromSerializedString(e).executions)?void 0:i[0])||null)}}catch(e){console.warn("Failed to get dump from agent:",e)}try{s.reportHTMLString&&(n.reportHTML=s.reportHTMLString()||null)}catch(e){}try{s.writeOutActionDumps&&s.writeOutActionDumps()}catch(e){}return n}finally{a&&a()}}async recreateAgent(){if(!this.agentFactory)throw Error("Cannot recreate agent: factory function not provided. Please provide agentFactory in PlaygroundConfig to enable agent recreation.");console.log("Creating new agent with latest config...");try{this.agent=await this.agentFactory(),console.log("Agent created successfully")}catch(e){throw console.error("Failed to create agent:",e),e}}async cancelTask(e){var A,t,r;if(!this.agent)return{error:"No active agent found for this requestId"};let o=null,n=null;try{if("function"==typeof this.agent.dumpDataString){let e=this.agent.dumpDataString();e&&(o=(null==(A=ee.fromSerializedString(e).executions)?void 0:A[0])??null)}}catch(e){console.warn("[LocalExecutionAdapter] Failed to get dump data before cancel:",e)}try{if("function"==typeof this.agent.reportHTMLString){let e=this.agent.reportHTMLString();e&&"string"==typeof e&&!e.includes("REPLACE_ME_WITH_REPORT_HTML")&&(n=e)}}catch(e){console.warn("[LocalExecutionAdapter] reportHTMLString not available in this environment")}try{return await (null==(t=(r=this.agent).destroy)?void 0:t.call(r)),this.agent=null,{success:!0,dump:o,reportHTML:n}}catch(A){let e=A instanceof Error?A.message:"Unknown error";return console.error(`[LocalExecutionAdapter] Failed to cancel agent: ${e}`),{error:`Failed to cancel: ${e}`,dump:o,reportHTML:n}}}async getCurrentExecutionData(){let e={dump:null,reportHTML:null};try{var A,t,r;if(null==(A=this.agent)?void 0:A.dumpDataString){let A=this.agent.dumpDataString();A&&(e.dump=(null==(r=ee.fromSerializedString(A).executions)?void 0:r[0])||null)}(null==(t=this.agent)?void 0:t.reportHTMLString)&&(e.reportHTML=this.agent.reportHTMLString()||null)}catch(e){console.error("Failed to get current execution data:",e)}return e}async getInterfaceInfo(){var e,A,t;if(!(null==(e=this.agent)?void 0:e.interface))return null;try{let e=this.agent.interface.interfaceType||"Unknown",r=(null==(A=(t=this.agent.interface).describe)?void 0:A.call(t))||void 0;return{type:e,description:r}}catch(e){return console.error("Failed to get interface info:",e),null}}constructor(e,A){super(),en(this,"agent",void 0),en(this,"agentFactory",void 0),en(this,"dumpUpdateCallback",void 0),en(this,"progressCallback",void 0),en(this,"_id",void 0),en(this,"currentRequestId",void 0),this.agent=e??null,this.agentFactory=A,this._id=(0,f.uR)()}}function ea(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class es extends eo{onDumpUpdate(e){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=e}get id(){return this._id}validateParams(e,A){if(!(null==A?void 0:A.paramSchema)||!this.actionNeedsStructuredParams(A))return{valid:!0};if(!e.params)return{valid:!1,errorMessage:"Parameters are required"};if(A.paramSchema&&"object"==typeof A.paramSchema){let t=A.paramSchema;if(t.shape||"ZodObject"===t.type){let A=t.shape||{},r=Object.keys(A).filter(t=>{var r,o;let n=A[t];return!((null==n?void 0:n.isOptional)||(null==n||null==(r=n._def)?void 0:r.innerType)||(null==n||null==(o=n._def)?void 0:o.typeName)==="ZodOptional")&&(void 0===e.params[t]||""===e.params[t])});if(r.length>0)return{valid:!1,errorMessage:`Missing required parameters: ${r.join(", ")}`}}}return{valid:!0}}async parseStructuredParams(e,A,t){return await z(e,A,t)}formatErrorMessage(e){let A=(null==e?void 0:e.message)||"",t=[{keyword:"adb",message:"ADB connection error. Please ensure device is connected and USB debugging is enabled."},{keyword:"UIAutomator",message:"UIAutomator error. Please ensure the UIAutomator server is running on the device."}].find(e=>{let{keyword:t}=e;return A.includes(t)});return t?t.message:this.formatBasicErrorMessage(e)}async executeAction(e,A,t){if(this.serverUrl&&"undefined"!=typeof window)return this.executeViaServer(e,A,t);throw Error("Remote execution adapter requires server URL for execution")}async executeViaServer(e,A,t){let r={type:e,prompt:A.prompt,...this.buildOptionalPayloadParams(t,A)};t.context&&(r.context=t.context),t.requestId&&this.dumpUpdateCallback&&this.startProgressPolling(t.requestId);try{let e=await fetch(`${this.serverUrl}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!e.ok){let A=await e.text().catch(()=>"Unknown error");throw Error(`Server request failed (${e.status}): ${A}`)}return await e.json()}catch(e){throw console.error("Execute via server failed:",e),e}finally{this.stopProgressPolling()}}buildOptionalPayloadParams(e,A){let t={};return[{key:"requestId",value:e.requestId},{key:"deepLocate",value:e.deepLocate},{key:"deepThink",value:e.deepThink},{key:"screenshotIncluded",value:e.screenshotIncluded},{key:"domIncluded",value:e.domIncluded},{key:"deviceOptions",value:e.deviceOptions},{key:"params",value:A.params}].forEach(e=>{let{key:A,value:r}=e;null!=r&&""!==r&&(t[A]=r)}),t}async getActionSpace(e){if(this.serverUrl&&"undefined"!=typeof window)try{let A=await fetch(`${this.serverUrl}/action-space`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e})});if(!A.ok)throw Error(`Failed to get action space: ${A.statusText}`);let t=await A.json();return Array.isArray(t)?t:[]}catch(e){console.error("Failed to get action space from server:",e)}if(e&&"object"==typeof e&&"actionSpace"in e)try{let A=e.actionSpace,t=await A();return Array.isArray(t)?t:[]}catch(e){console.error("Failed to get action space from context:",e)}return[]}async checkStatus(){if(!this.serverUrl)return!1;try{let e=await fetch(`${this.serverUrl}/status`);if(200===e.status){try{let A=await e.json();A.id&&"string"==typeof A.id&&(this._id=A.id)}catch(e){console.debug("Failed to parse status response:",e)}return!0}return!1}catch(e){return console.warn("Server status check failed:",e),!1}}async overrideConfig(e){if(!this.serverUrl)throw Error("Server URL not configured");try{let A=await fetch(`${this.serverUrl}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiConfig:e})});if(!A.ok){let e=await A.json().catch(()=>null),t=(null==e?void 0:e.error)||A.statusText;throw Error(t)}}catch(e){throw console.error("Failed to override server config:",e),e}}async getTaskProgress(e){if(!this.serverUrl)return{};if(!(null==e?void 0:e.trim()))return console.warn("Invalid requestId provided for task progress"),{};try{let A=await fetch(`${this.serverUrl}/task-progress/${encodeURIComponent(e)}`);if(!A.ok)return console.warn(`Task progress request failed: ${A.statusText}`),{};return await A.json()}catch(e){return console.error("Failed to poll task progress:",e),{}}}startProgressPolling(e){this.stopProgressPolling(),this.pollingIntervalId=setInterval(async()=>{try{let A=await this.getTaskProgress(e);A.executionDump&&this.dumpUpdateCallback&&this.dumpUpdateCallback("",A.executionDump)}catch(e){console.error("Error polling task progress:",e)}},500)}stopProgressPolling(){this.pollingIntervalId&&(clearInterval(this.pollingIntervalId),this.pollingIntervalId=void 0)}async cancelTask(e){if(!this.serverUrl)return{error:"No server URL configured"};if(!(null==e?void 0:e.trim()))return{error:"Invalid request ID"};try{let A=await fetch(`${this.serverUrl}/cancel/${encodeURIComponent(e)}`,{method:"POST"});if(!A.ok)return{error:`Cancel request failed: ${A.statusText}`};let t=await A.json();return{success:!0,...t}}catch(e){return console.error("Failed to cancel task:",e),{error:"Failed to cancel task"}}}async getScreenshot(){if(!this.serverUrl)return null;try{let e=await fetch(`${this.serverUrl}/screenshot`);if(!e.ok)return console.warn(`Screenshot request failed: ${e.statusText}`),null;return await e.json()}catch(e){return console.error("Failed to get screenshot:",e),null}}async getInterfaceInfo(){if(!this.serverUrl)return null;try{let e=await fetch(`${this.serverUrl}/interface-info`);if(!e.ok)return console.warn(`Interface info request failed: ${e.statusText}`),null;return await e.json()}catch(e){return console.error("Failed to get interface info:",e),null}}constructor(e){super(),ea(this,"serverUrl",void 0),ea(this,"_id",void 0),ea(this,"dumpUpdateCallback",void 0),ea(this,"pollingIntervalId",void 0),this.serverUrl=e}}class el{createAdapter(e,A,t,r){switch(e){case"local-execution":if(!t&&!r)throw Error("Agent or agentFactory is required for local execution");return new ei(t,r);case"remote-execution":return new es(A||("undefined"!=typeof window&&window.location.protocol.includes("http")?window.location.origin:"http://localhost:5800"));default:throw Error(`Unsupported execution type: ${e}`)}}async executeAction(e,A,t){return await this.adapter.executeAction(e,A,t)}async getActionSpace(e){return this.adapter.getActionSpace(e)}validateStructuredParams(e,A){return this.adapter.validateParams(e,A)}formatErrorMessage(e){return this.adapter.formatErrorMessage(e)}createDisplayContent(e,A,t){return this.adapter.createDisplayContent(e,A,t)}get id(){if(this.adapter instanceof es||this.adapter instanceof ei)return this.adapter.id}async checkStatus(){return!(this.adapter instanceof es)||this.adapter.checkStatus()}async overrideConfig(e){if(this.adapter instanceof es)return this.adapter.overrideConfig(e)}async getTaskProgress(e){return this.adapter instanceof es?this.adapter.getTaskProgress(e):{}}async cancelTask(e){return this.adapter instanceof es?this.adapter.cancelTask(e):{error:"Cancel task not supported in local execution mode"}}onDumpUpdate(e){this.adapter instanceof ei?this.adapter.onDumpUpdate(e):this.adapter instanceof es&&this.adapter.onDumpUpdate(e)}onProgressUpdate(e){this.adapter instanceof ei&&this.adapter.setProgressCallback(e)}async cancelExecution(e){if(this.adapter instanceof es){let A=await this.adapter.cancelTask(e);if(A.success)return{dump:A.dump||null,reportHTML:A.reportHTML||null}}else if(this.adapter instanceof ei){let A=await this.adapter.cancelTask(e);if(A.success)return{dump:A.dump||null,reportHTML:A.reportHTML||null}}return null}async getCurrentExecutionData(){return this.adapter instanceof ei&&this.adapter.getCurrentExecutionData?await this.adapter.getCurrentExecutionData():{dump:null,reportHTML:null}}async getScreenshot(){return this.adapter instanceof es?this.adapter.getScreenshot():null}async getInterfaceInfo(){return this.adapter instanceof ei||this.adapter instanceof es?this.adapter.getInterfaceInfo():null}getServiceMode(){return this.adapter instanceof ei?"In-Browser-Extension":"Server"}constructor(e){!function(e,A,t){A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t}(this,"adapter",void 0),this.adapter=this.createAdapter(e.type,e.serverUrl,e.agent,e.agentFactory)}}function ec(){return{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}}}let ed=e=>{let{hideLogo:A=!1}=e,{isDarkMode:t}=function(){let[e,A]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{let e=()=>{var e;A("dark"===(null==(e=document.querySelector("[data-theme]"))?void 0:e.getAttribute("data-theme")))};e();let t=new MutationObserver(e),r=document.querySelector("[data-theme]")||document.documentElement;return t.observe(r,{attributes:!0,attributeFilter:["data-theme"]}),()=>t.disconnect()},[]),{isDarkMode:e}}();return A?null:(0,r.jsx)("div",{className:"logo",children:(0,r.jsx)("a",{href:"https://midscenejs.com/",target:"_blank",rel:"noreferrer",children:(0,r.jsx)("img",{alt:"Midscene_logo",src:t?"https://lf3-static.bytednsdoc.com/obj/eden-cn/nupipfups/Midscene/midscene_with_text_dark.png":"https://lf3-static.bytednsdoc.com/obj/eden-cn/nupipfups/Midscene/midscene_with_text_light.png"})})})};var eu=t(4177),ep=t(6766),eg=t(6419),ef=t(8594),em=t(89),eh=t(894),ey=t(4174),eE=t(8926),ev={};ev.d=(e,A)=>{for(var t in A)ev.o(A,t)&&!ev.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},ev.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),ev.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var eb={};ev.r(eb),ev.d(eb,{create:()=>eE.vt});let{create:ek}=eb,eC="midscene-auto-zoom",eS="midscene-background-visible",eI="midscene-elements-visible",eR="midscene-model-call-details",ex="midscene-dark-mode",ej="midscene-playback-speed",eP="midscene-subtitle-enabled",eO=e=>{if("undefined"==typeof window)return;var A=new URLSearchParams(window.location.search).get(e);if(null===A)return;let t=A.trim().toLowerCase();return!!["1","true","yes","on"].includes(t)||!["0","false","no","off"].includes(t)&&void 0},ew=ek(e=>{let A="false"!==localStorage.getItem(eC),t="false"!==localStorage.getItem(eS),r="false"!==localStorage.getItem(eI),o="true"===localStorage.getItem(eR),n="true"===localStorage.getItem(ex),i=Number.parseFloat(localStorage.getItem(ej)||"1"),a=Number.isNaN(i)?1:i,s="false"!==localStorage.getItem(eP),l=eO("focusOnCursor"),c=eO("showElementMarkers"),d=eO("darkMode"),u=void 0===d?n:d;return void 0!==d&&localStorage.setItem(ex,u.toString()),{backgroundVisible:t,elementsVisible:void 0===c?r:c,autoZoom:void 0===l?A:l,modelCallDetailsEnabled:o,darkModeEnabled:u,playbackSpeed:[.5,1,1.5,2].includes(a)?a:1,setBackgroundVisible:A=>{e({backgroundVisible:A}),localStorage.setItem(eS,A.toString())},setElementsVisible:A=>{e({elementsVisible:A}),localStorage.setItem(eI,A.toString())},setAutoZoom:A=>{e({autoZoom:A}),localStorage.setItem(eC,A.toString())},setModelCallDetailsEnabled:A=>{e({modelCallDetailsEnabled:A}),localStorage.setItem(eR,A.toString())},setDarkModeEnabled:A=>{e({darkModeEnabled:A}),localStorage.setItem(ex,A.toString())},setPlaybackSpeed:A=>{e({playbackSpeed:A}),localStorage.setItem(ej,A.toString())},subtitleEnabled:s,setSubtitleEnabled:A=>{e({subtitleEnabled:A}),localStorage.setItem(eP,A.toString())}}}),eN="midscene-env-config",eT="midscene-service-mode",eK="midscene-tracking-active-tab",eM="midscene-deep-locate",eB="midscene-deep-think",eD="midscene-screenshot-included",ez="midscene-dom-included",eQ="midscene-ime-strategy",eL="midscene-auto-dismiss-keyboard",eZ="midscene-keyboard-dismiss-strategy",eX="midscene-always-refresh-screen-info",eJ=()=>localStorage.getItem(eN)||"",eU=e=>{let A=e.split("\n"),t={};return A.forEach(e=>{let A=e.trim();if(A.startsWith("#"))return;let r=A.replace(/^export\s+/i,"").replace(/;$/,"").trim().match(/^(\w+)=(.*)$/);if(r){let[,e,A]=r,o=A.trim();(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),t[e]=o}}),t},eF=ek((e,A)=>{let t=eJ(),r=eU(t),o=window.location.href.startsWith("chrome-extension"),n=localStorage.getItem(eT),i="false"!==localStorage.getItem(eK),a="true"===localStorage.getItem(eM),s="true"===localStorage.getItem(eB),l="false"!==localStorage.getItem(eD),c=localStorage.getItem(ez)||"false";return{serviceMode:o?"In-Browser-Extension":n||"Server",setServiceMode:A=>{if(o)throw Error("serviceMode cannot be set in extension");e({serviceMode:A}),localStorage.setItem(eT,A)},config:r,configString:t,setConfig:A=>e({config:A}),loadConfig:A=>{e({config:eU(A),configString:A}),localStorage.setItem(eN,A)},syncFromStorage:()=>{let A=eJ();e({config:eU(A),configString:A})},forceSameTabNavigation:i,setForceSameTabNavigation:A=>{e({forceSameTabNavigation:A}),localStorage.setItem(eK,A.toString())},deepLocate:a,setDeepLocate:A=>{e({deepLocate:A}),localStorage.setItem(eM,A.toString())},deepThink:s,setDeepThink:A=>{e({deepThink:A}),localStorage.setItem(eB,A.toString())},screenshotIncluded:l,setScreenshotIncluded:A=>{e({screenshotIncluded:A}),localStorage.setItem(eD,A.toString())},domIncluded:"visible-only"===c?"visible-only":"true"===c,setDomIncluded:A=>{e({domIncluded:A}),localStorage.setItem(ez,A.toString())},popupTab:"playground",setPopupTab:A=>{e({popupTab:A})},imeStrategy:localStorage.getItem(eQ)||"yadb-for-non-ascii",setImeStrategy:A=>{e({imeStrategy:A}),localStorage.setItem(eQ,A)},autoDismissKeyboard:"false"!==localStorage.getItem(eL),setAutoDismissKeyboard:A=>{e({autoDismissKeyboard:A}),localStorage.setItem(eL,A.toString())},keyboardDismissStrategy:localStorage.getItem(eZ)||"esc-first",setKeyboardDismissStrategy:A=>{e({keyboardDismissStrategy:A}),localStorage.setItem(eZ,A)},alwaysRefreshScreenInfo:"true"===localStorage.getItem(eX),setAlwaysRefreshScreenInfo:A=>{e({alwaysRefreshScreenInfo:A}),localStorage.setItem(eX,A.toString())}}});function eq(e){let{showTooltipWhenEmpty:A=!0,showModelName:t=!0,tooltipPlacement:n="bottom",mode:i="icon"}=e,{config:a,configString:s,loadConfig:l,syncFromStorage:c}=eF(),[d,u]=(0,o.useState)(!1),[p,g]=(0,o.useState)(s),f=a.MIDSCENE_MODEL_NAME,m=(0,o.useRef)(null),h=e=>{c(),u(!0),e.preventDefault(),e.stopPropagation()};return(0,o.useEffect)(()=>{d&&g(s)},[d,s]),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px",alignItems:"center",height:"100%",minHeight:"32px"},ref:m,children:[t?f:null,(0,r.jsx)(em.A,{title:"Please set up your environment variables before using.",placement:n,align:{offset:[-10,5]},getPopupContainer:()=>m.current,open:!d&&(A?0===Object.keys(a).length:void 0),children:"icon"===i?(0,r.jsx)(ef.A,{onClick:h}):(0,r.jsx)("span",{onClick:h,style:{color:"#006AFF",cursor:"pointer"},children:"set up"})}),(0,r.jsxs)(eh.A,{title:"Model Env Config",open:d,onOk:()=>{u(!1),l(p)},onCancel:()=>{u(!1)},okText:"Save",style:{width:"800px",height:"100%",marginTop:"10%"},destroyOnClose:!0,maskClosable:!0,centered:!0,children:[(0,r.jsx)(ey.A.TextArea,{rows:7,placeholder:"MIDSCENE_MODEL_API_KEY=sk-...\nMIDSCENE_MODEL_NAME=gpt-4o-2024-08-06\n...",value:p,onChange:e=>g(e.target.value),style:{whiteSpace:"nowrap",wordWrap:"break-word"}}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{children:"The format is KEY=VALUE and separated by new lines."}),(0,r.jsxs)("p",{children:["These data will be saved ",(0,r.jsx)("strong",{children:"locally in your browser"}),"."]})]})]})]})}function eV(e){let{showEnvConfig:A=!0,showTooltipWhenEmpty:t=!1,showModelName:o=!1,githubUrl:n="https://github.com/web-infra-dev/midscene",helpUrl:i="https://midscenejs.com/quick-experience.html",className:a=""}=e;return(0,r.jsxs)("div",{className:`nav-actions ${a}`,children:[(0,r.jsx)(eg.A.Link,{href:n,target:"_blank",children:(0,r.jsx)(eu.A,{className:"nav-icon"})}),(0,r.jsx)(eg.A.Link,{href:i,target:"_blank",children:(0,r.jsx)(ep.A,{className:"nav-icon"})}),A&&(0,r.jsx)(eq,{showTooltipWhenEmpty:t,showModelName:o})]})}var eG=t(4707),eH=t(9870),eW=t(9877),eY=t(3147),e_=t(6620),e$=t(5810),e0=t(5359),e1=t(5584),e3=t(638);let e5="Auto dismiss keyboard",e7={aiAct:{group:"interaction",title:"Auto Planning: plan the steps and execute"},aiTap:{group:"interaction",title:"Click an element"},aiDoubleClick:{group:"interaction",title:"Double-click an element"},aiHover:{group:"interaction",title:"Hover over an element"},aiInput:{group:"interaction",title:"Input text into an element"},aiRightClick:{group:"interaction",title:"Right-click an element"},aiKeyboardPress:{group:"interaction",title:"Press keyboard keys"},aiScroll:{group:"interaction",title:"Scroll the page or element"},aiLocate:{group:"interaction",title:"Locate an element on the page"},aiQuery:{group:"extraction",title:"Extract data directly from the UI"},aiBoolean:{group:"extraction",title:"Get true/false answer"},aiNumber:{group:"extraction",title:"Extract numeric value"},aiString:{group:"extraction",title:"Extract text value"},aiAsk:{group:"extraction",title:"Ask a question about the UI"},aiAssert:{group:"validation",title:"Assert a condition is true"},aiWaitFor:{group:"validation",title:"Wait for a condition to be met"}},e2=["aiAct","aiTap","aiQuery","aiAssert"],e9=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"web page";return{type:"system",content:`
1
+ /*! For license information please see index.5f858f26.js.LICENSE.txt */
2
+ (()=>{var e,A,t,r,n,o,i,a={5737(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=5737,e.exports=A},8541(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=8541,e.exports=A},9998(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=9998,e.exports=A},3348(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=3348,e.exports=A},8817(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=8817,e.exports=A},1560(e){function A(e){return Promise.resolve().then(function(){var A=Error("Cannot find module '"+e+"'");throw A.code="MODULE_NOT_FOUND",A})}A.keys=()=>[],A.resolve=A,A.id=1560,e.exports=A},7762(e,A,t){"use strict";var r=t(5723),n=t(2155),o=t(8997),i=t(4565),a=t(217),s=t(9368);let l=()=>{let e=(0,a.j)(s.v4),A="";e&&(console.warn("MIDSCENE_DEBUG_MODEL_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead"),A="ai:profile"),(0,a.j)(s.$l)&&(console.warn("MIDSCENE_DEBUG_MODEL_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead"),A=A?"ai:*":"ai:call"),A&&(0,i.Nw)(A)};var c=t(5409);function d(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let u={modelName:s._q,socksProxy:s.T4,httpProxy:s.Yf,openaiBaseURL:s.kX,openaiApiKey:s.Lh,openaiExtraConfig:s.Z7,modelFamily:s.v,timeout:s.Yg,temperature:s.V7,retryCount:s.vC,retryInterval:s.xg,reasoningEffort:s.y2,reasoningEnabled:s.nc,reasoningBudget:s.fS},p={modelName:s.xP,socksProxy:s.mZ,httpProxy:s.zQ,openaiBaseURL:s.zG,openaiApiKey:s.OK,openaiExtraConfig:s.ag,modelFamily:s.OY,timeout:s.Z$,temperature:s.Cn,retryCount:s.sg,retryInterval:s.wu,reasoningEffort:s.Vb,reasoningEnabled:s.u1,reasoningBudget:s.aO},g={modelName:s.HR,socksProxy:s.iw,httpProxy:s.FU,openaiBaseURL:s.$H,openaiApiKey:s.IQ,openaiExtraConfig:s.I2,modelFamily:s.yR,timeout:s.zD,temperature:s.W4,retryCount:s.Km,retryInterval:s.aK,reasoningEffort:s.VM,reasoningEnabled:s.M1,reasoningBudget:s.AU};var f=t(9152);let m=function(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"*";if("string"!=typeof e||0===e.length)return e;if(e.length<=6)return e;let t=e.substring(0,3),r=e.substring(e.length-3),n=e.length-6,o=A.repeat(n);return`${t}${o}${r}`},h=e=>Object.fromEntries(Object.entries(e).map(e=>{let[A,t]=e;if(!t)return[A,t];if("string"==typeof t&&/key/i.test(A))return[A,m(t)];if("object"==typeof t){let e=JSON.stringify(t);if(/key/i.test(e))return[A,m(e)]}return[A,t]})),y={insight:u,planning:p,default:g},E=(e,A)=>{let t=(0,i.aZ)("ai:config");t("will decideModelConfig base on agent.modelConfig()",e,h(A));let r=y[e];if(!A[r.modelName])return void t("no modelName found for intent",e);let n=(e=>{var A,t,r;let n,{keys:o,provider:a,useLegacyLogic:c=!1}=e;l(),(0,i.aZ)("ai:config")("enter parseOpenaiSdkConfig with keys:",o);let d=c?a[s.Jq]:void 0,u=c?a[s.jG]:void 0,p=c?a[s.$]:void 0,g=c?a[s.CA]:void 0,f=c?a[s.b6]:void 0,m=c?(e=>{let A=e[s.pp],t=e[s.yb],r=e[s.NF],n=e[s.JM],o=e[s.j_],i=[A&&s.pp,t&&s.yb,r&&s.NF,n&&s.JM,o&&s.j_].filter(Boolean);if(i.length>1)throw Error(`Only one vision mode can be enabled at a time. Currently enabled modes: ${i.join(", ")}. Please disable all but one mode.`);if(r)return"qwen3-vl";if(t)return"qwen2.5-vl";if(A)return"doubao-vision";if(o)return"gemini";if(n)if("1"===n)return"vlm-ui-tars";else if("DOUBAO"===n||"DOUBAO-1.5"===n)return"vlm-ui-tars-doubao-1.5";else return"vlm-ui-tars-doubao"})(a):void 0,h=a[o.modelFamily]||m,y=a[o.openaiApiKey]||d,E=a[o.openaiBaseURL]||u,v=a[o.socksProxy]||p,b=a[o.httpProxy]||g,k=a[o.modelName],C=a[o.openaiExtraConfig],S=((e,A)=>{if(A)try{return JSON.parse(A)}catch(A){throw Error(`Failed to parse ${e} as a JSON. ${A.message}`,{cause:A})}})(o.openaiExtraConfig,C||f),I=a[o.temperature]?Number(a[o.temperature]):0;if(h&&!s._j.includes(h))throw Error(`Invalid MIDSCENE_MODEL_FAMILY value: ${h}`);let x="vlm-ui-tars"===h?s.UH.V1_0:"vlm-ui-tars-doubao"===h||"vlm-ui-tars-doubao-1.5"===h?s.UH.DOUBAO_1_5_20B:void 0,R=x?`UI-TARS=${x}`:h?`${h} mode`:"";return{socksProxy:v,httpProxy:b,openaiBaseURL:E,openaiApiKey:y,openaiExtraConfig:S,modelFamily:h,uiTarsModelVersion:x,modelName:k,modelDescription:R,intent:"-",timeout:a[o.timeout]?Number(a[o.timeout]):void 0,temperature:I,retryCount:(()=>{if(!a[o.retryCount])return 1;let e=Number(a[o.retryCount]);if(!Number.isFinite(e))return 1;if(e<0)throw Error(`${o.retryCount} must be non-negative, got ${e}`);return e})(),retryInterval:(()=>{if(!a[o.retryInterval])return 2e3;let e=Number(a[o.retryInterval]);if(!Number.isFinite(e))return 2e3;if(e<0)throw Error(`${o.retryInterval} must be non-negative, got ${e}`);return e})(),reasoningEffort:(null==(A=a[o.reasoningEffort])?void 0:A.trim())||void 0,reasoningEnabled:"true"===(n=null==(r=a[o.reasoningEnabled])||null==(t=r.trim())?void 0:t.toLowerCase())||"1"===n||"false"!==n&&"0"!==n&&void 0,reasoningBudget:(()=>{var e;let A=null==(e=a[o.reasoningBudget])?void 0:e.trim();if(!A)return;let t=Number(A);return Number.isFinite(t)?t:void 0})()}})({keys:r,provider:A,useLegacyLogic:"default"===e});return n.intent=e,t("decideModelConfig result by agent.modelConfig() with intent",e,h({...n})),(0,f.vA)(n.openaiBaseURL,`failed to get base URL of model (intent=${e}). See https://midscenejs.com/model-strategy`),n.modelName||console.warn(`modelName is not set for intent ${e}, this may cause unexpected behavior. See https://midscenejs.com/model-strategy`),n};function v(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let b=new class{initialize(){var e;let A;if(this.isInitialized)return;this.modelConfig?(this.isolatedMode=!0,A=this.normalizeModelConfig(this.modelConfig)):A=(null==(e=this.globalConfigManager)?void 0:e.getAllEnvConfig())||{};let t=E("default",A);if(!t)throw Error("Model configuration is incomplete: model name (MIDSCENE_MODEL_NAME) is required. See https://midscenejs.com/model-strategy.html");let r=E("insight",A),n=E("planning",A);this.modelConfigMap={default:{...t,createOpenAIClient:this.createOpenAIClientFn},insight:{...r||t,createOpenAIClient:this.createOpenAIClientFn},planning:{...n||t,createOpenAIClient:this.createOpenAIClientFn}},this.isInitialized=!0}normalizeModelConfig(e){return Object.entries(e).reduce((e,A)=>{let[t,r]=A;return null==r||(e[t]=String(r)),e},Object.create(null))}clearModelConfigMap(){if(this.isolatedMode)throw Error("ModelConfigManager work in isolated mode, so clearModelConfigMap should not be called");this.isInitialized=!1}getModelConfig(e){if(this.isInitialized||this.initialize(),!this.modelConfigMap)throw Error("modelConfigMap is not initialized, which should not happen");return this.modelConfigMap[e]}getUploadTestServerUrl(){let{openaiExtraConfig:e}=this.getModelConfig("default");return null==e?void 0:e.REPORT_SERVER_URL}registerGlobalConfigManager(e){this.globalConfigManager=e}throwErrorIfNonVLModel(){if(!this.getModelConfig("default").modelFamily)throw Error("MIDSCENE_MODEL_FAMILY is not set to a visual language model (VL model), the element localization can not be achieved. Check your model configuration. See https://midscenejs.com/model-strategy.html")}constructor(e,A){v(this,"modelConfigMap",void 0),v(this,"isInitialized",!1),v(this,"isolatedMode",!1),v(this,"globalConfigManager",void 0),v(this,"modelConfig",void 0),v(this,"createOpenAIClientFn",void 0),this.modelConfig=e,this.createOpenAIClientFn=A}},k=new class{getAllEnvConfig(){let e=s.tk.reduce((e,A)=>(e[A]=c.env[A],e),Object.create(null));if(!this.override)return e;{let{newConfig:A,extendMode:t}=this.override;return t?{...e,...A}:{...A}}}getEnvConfigValue(e){let A=this.getAllEnvConfig();if(e===s.Sk)throw Error("MATCH_BY_POSITION is discarded, use MIDSCENE_MODEL_FAMILY instead");if(!s.rd.includes(e))throw Error(`getEnvConfigValue with key ${e} is not supported.`);let t=A[e];return(this.keysHaveBeenRead[e]=!0,"string"==typeof t)?t.trim():t}getEnvConfigInBoolean(e){let A=this.getAllEnvConfig();if(!s.c$.includes(e))throw Error(`getEnvConfigInBoolean with key ${e} is not supported`);let t=A[e];return this.keysHaveBeenRead[e]=!0,!!t&&(!!/^(true|1)$/i.test(t)||!/^(false|0)$/i.test(t)&&!!t.trim())}getEnvConfigValueAsNumber(e){if(!s.rd.includes(e)&&!s.DL.includes(e))throw Error(`getEnvConfigValueAsNumber with key ${e} is not supported.`);let A=this.getAllEnvConfig()[e];if(this.keysHaveBeenRead[e]=!0,"string"!=typeof A)return;let t=A.trim();if(!t)return;let r=Number(t);return Number.isNaN(r)?void 0:r}registerModelConfigManager(e){this.globalModelConfigManager=e}overrideAIConfig(e){var A;let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(let A in e){if(![...s.Lg,...s.XE].includes(A))throw Error(`Failed to override AI config, invalid key: ${A}`);let t=e[A];if("string"!=typeof t)throw Error(`Failed to override AI config, value for key ${A} must be a string, but got with type ${typeof t}`);this.keysHaveBeenRead[A]&&console.warn(`Warning: try to override AI config with key ${A} ,but it has been read.`)}let r=t?{...null==(A=this.override)?void 0:A.newConfig,...e}:e;if(this.override={newConfig:{...r},extendMode:t},!this.globalModelConfigManager)throw Error("globalModelConfigManager is not registered, which should not happen");this.globalModelConfigManager.clearModelConfigMap()}constructor(){d(this,"override",void 0),d(this,"keysHaveBeenRead",{}),d(this,"globalModelConfigManager",void 0),l()}};k.registerModelConfigManager(b),b.registerGlobalConfigManager(k);let C=function(e){let A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];k.overrideAIConfig(e,A)};t(6990),t(5678);var S=t(5409),I=t(8963).Buffer;function x(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}let R=(0,i.aZ)("ai:call:codex"),j=(0,i.aZ)("ai:call:codex",{console:!0});class w{async run(e){let A,t=this.tail;this.tail=new Promise(e=>{A=e}),await t;try{return await e()}finally{A()}}constructor(){x(this,"tail",Promise.resolve())}}let P=e=>{if(!e)return!1;if(e instanceof Error&&"AbortError"===e.name)return!0;let A=e instanceof Error?e.message:String(e??"unknown error");return/aborted|abort/i.test(A)},O=e=>{if("string"==typeof e)return e.trim()||void 0},N=function(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:S.platform;if(!e.startsWith("file://"))return e;try{let t=new URL(e),r=decodeURIComponent(t.pathname),n=t.hostname.toLowerCase();if("win32"===A){let e=r.replace(/\//g,"\\").replace(/^\\([A-Za-z]:)/,"$1");if(n&&"localhost"!==n)return`\\\\${t.hostname}${e}`;return e}if(n&&"localhost"!==n)return`//${t.hostname}${r}`;return r}catch{return decodeURIComponent(e.slice(7))}},T=e=>{let A=e.content;return"string"==typeof A?A:Array.isArray(A)?A.map(e=>e&&"object"==typeof e&&("text"===e.type&&"string"==typeof e.text||"input_text"===e.type&&"string"==typeof e.text)?e.text:"").filter(Boolean).join("\n"):""},M=(e,A)=>{let t=e.content;if(!Array.isArray(t))return[];let r=[];for(let e of t){var n,o;if(!e||"object"!=typeof e)continue;let t=String(e.type||""),i="image_url"===t?O(null==(n=e.image_url)?void 0:n.url):"input_image"===t?O(e.image_url||e.url):void 0;if(!i)continue;let a=A||O(null==(o=e.image_url)?void 0:o.detail)||O(e.detail);if(i.startsWith("/")||i.startsWith("./")||i.startsWith("../")||i.startsWith("file://")){let e=i.startsWith("file://")?N(i):i;r.push({type:"localImage",path:e,...a?{detail:a}:{}});continue}r.push({type:"image",url:i,...a?{detail:a}:{}})}return r};class K{static async create(){if(f.ht)throw Error("codex app-server provider is not supported in browser runtime");let{spawn:e}=await t(8817)("node:child_process"),A=await t(8541)("node:readline"),r=e("codex",["app-server"],{stdio:["pipe","pipe","pipe"]});if(!r.stdin||!r.stdout||!r.stderr)throw Error("failed to start codex app-server: stdio unavailable");let n=A.createInterface({input:r.stdout,crlfDelay:1/0}),o=new K(r,n);return o.detachFromEventLoop(),o.attachProcessListeners(),await o.initializeHandshake(),o}isClosed(){return this.closed}async runTurn(e){let A,t,r,n,{messages:o,modelConfig:i,stream:a,onChunk:s,deepThink:l,abortSignal:c}=e,d=Date.now(),u=i.timeout||6e5,p=Date.now()+u,g=!!(a&&s),{developerInstructions:f,input:m}=((e,A)=>{let t=[],r=[],n=[];for(let o of e){let e=String(o.role||"user"),i=T(o);if("system"===e){i.trim()&&t.push(i.trim());continue}let a=e.toUpperCase();i.trim()?r.push(`[${a}]
3
+ ${i.trim()}`):r.push(`[${a}]
4
+ (no text content)`),"user"===e&&n.push(...M(o,null==A?void 0:A.imageDetailOverride))}let o=r.join("\n\n"),i=[{type:"text",text:(o.length>262144?o.slice(-262144):o)||"Please answer the latest user request.",text_elements:[]},...n];return{developerInstructions:t.length?t.join("\n\n"):void 0,input:i}})(o,{imageDetailOverride:"gpt-5"===i.modelFamily?"original":void 0}),h=(e=>{var A;let{deepThink:t,modelConfig:r}=e;if(!0===t)return"high";if(!1===t)return"low";let n=null==(A=r.reasoningEffort)?void 0:A.trim().toLowerCase();return"low"===n||"medium"===n||"high"===n||"xhigh"===n?n:!0===r.reasoningEnabled?"high":!1===r.reasoningEnabled?"low":void 0})({deepThink:l,modelConfig:i}),y="",E="",v=e=>{let{content:A,reasoning:t,isComplete:r,usage:n}=e;g&&s&&s({content:A,reasoning_content:t,accumulated:y,isComplete:r,usage:n})};try{var b,k,C,I,x,R,w,O;let e,o=await this.request({method:"thread/start",params:{model:i.modelName,cwd:S.cwd(),approvalPolicy:"never",sandbox:"read-only",ephemeral:!0,experimentalRawEvents:!1,persistExtendedHistory:!1,developerInstructions:f||null},deadlineAt:p,abortSignal:c});if(!(A=null==o||null==(b=o.thread)?void 0:b.id))throw Error("thread/start did not return a thread id");let a=await this.request({method:"turn/start",params:{threadId:A,input:m,effort:h},deadlineAt:p,abortSignal:c});if(!(t=null==a||null==(k=a.turn)?void 0:k.id))throw Error("turn/start did not return a turn id");for(;!e;){let o=await this.nextMessage({deadlineAt:p,abortSignal:c});if(this.isResponseMessage(o))continue;if(this.isRequestMessage(o)){await this.respondToServerRequest(o);continue}let a=o.method,s=o.params||{};if("error"===a){let e=(null==(R=s.error)?void 0:R.message)||s.message||"codex app-server reported turn error";r=String(e);continue}if("item/agentMessage/delta"===a&&s.threadId===A&&s.turnId===t){let e=String(s.delta||"");e&&(y+=e,v({content:e,reasoning:"",isComplete:!1}));continue}if(("item/reasoning/summaryTextDelta"===a||"item/reasoning/textDelta"===a)&&s.threadId===A&&s.turnId===t){let e=String(s.delta||"");e&&(E+=e,v({content:"",reasoning:e,isComplete:!1}));continue}if("item/completed"===a&&s.threadId===A&&s.turnId===t&&(null==(C=s.item)?void 0:C.type)==="agentMessage"&&"string"==typeof(null==(I=s.item)?void 0:I.text)&&!y){y=s.item.text;continue}if("thread/tokenUsage/updated"===a&&s.threadId===A&&s.turnId===t){n=this.mapUsage({usage:s,modelConfig:i,turnId:t,startTime:d});continue}if("turn/completed"===a&&s.threadId===A&&(null==(x=s.turn)?void 0:x.id)===t){e=String(s.turn.status||""),r=(null==(O=s.turn)||null==(w=O.error)?void 0:w.message)||r||void 0;break}}if("completed"!==e)throw Error(r||`codex turn finished with status "${e||"unknown"}"`);return g&&v({content:"",reasoning:"",isComplete:!0,usage:n}),{content:y,reasoning_content:E||void 0,usage:n,isStreamed:g}}catch(e){throw P(e)&&A&&t&&await this.request({method:"turn/interrupt",params:{threadId:A,turnId:t},deadlineAt:Date.now()+5e3}).catch(()=>{}),e}finally{A&&await this.request({method:"thread/unsubscribe",params:{threadId:A},deadlineAt:Date.now()+8e3}).catch(e=>{j(`failed to unsubscribe codex thread ${A}: ${String(e)}`)})}}async dispose(){var e,A,t,r,n,o,i;if(!this.closed){this.closed=!0;try{null==(A=this.lineReader)||null==(e=A.close)||e.call(A)}catch{}try{null==(n=this.child)||null==(r=n.stdin)||null==(t=r.end)||t.call(r)}catch{}try{null==(i=this.child)||null==(o=i.kill)||o.call(i)}catch{}}}attachProcessListeners(){this.lineReader.on("line",e=>{this.lineBuffer.push(e)}),this.child.stderr.on("data",e=>{let A=I.isBuffer(e)?e.toString("utf8"):String(e);this.stderrBuffer+=A,this.stderrBuffer.length>8192&&(this.stderrBuffer=this.stderrBuffer.slice(-8192))}),this.child.on("exit",e=>{this.closed=!0,this.lastExitCode=e}),this.child.on("error",e=>{this.closed=!0,this.processErrorMessage=e.message})}detachFromEventLoop(){var e,A,t,r,n,o,i,a;null==(e=(A=this.child).unref)||e.call(A),null==(r=this.child.stdin)||null==(t=r.unref)||t.call(r),null==(o=this.child.stdout)||null==(n=o.unref)||n.call(o),null==(a=this.child.stderr)||null==(i=a.unref)||i.call(a)}async initializeHandshake(){let e=Date.now()+15e3;await this.request({method:"initialize",params:{clientInfo:{name:"midscene_codex_provider",title:"Midscene Codex Provider",version:"1.0.0"},capabilities:{experimentalApi:!1}},deadlineAt:e}),await this.sendMessage({method:"initialized"})}mapUsage(e){let{usage:A,modelConfig:t,turnId:r,startTime:n}=e,o=A.tokenUsage,i=(null==o?void 0:o.last)||(null==o?void 0:o.total);if(i)return{prompt_tokens:i.inputTokens??0,completion_tokens:i.outputTokens??0,total_tokens:i.totalTokens??0,cached_input:i.cachedInputTokens??0,time_cost:Date.now()-n,model_name:t.modelName,model_description:t.modelDescription,intent:t.intent,request_id:r}}isRequestMessage(e){return"string"==typeof(null==e?void 0:e.method)&&(null==e?void 0:e.id)!==void 0}isResponseMessage(e){return(null==e?void 0:e.id)!==void 0&&((null==e?void 0:e.result)!==void 0||(null==e?void 0:e.error)!==void 0)&&"string"!=typeof(null==e?void 0:e.method)}async request(e){let{method:A,params:t,deadlineAt:r,abortSignal:n}=e,o=this.nextRequestId++;for(await this.sendMessage({id:o,method:A,params:t});;){let e=await this.nextMessage({deadlineAt:r,abortSignal:n,includePending:!1});if(this.isResponseMessage(e)&&e.id===o){if(e.error)throw Error(`codex app-server ${A} failed: ${e.error.message||"unknown error"}`);return e.result||{}}if(this.isRequestMessage(e)){await this.respondToServerRequest(e);continue}this.pendingMessages.push(e)}}async respondToServerRequest(e){let A=e.id,t=e.method,r={};if("item/commandExecution/requestApproval"===t)r={decision:"decline"};else if("item/fileChange/requestApproval"===t)r={decision:"decline"};else if("mcpServer/elicitation/request"===t)r={action:"cancel",content:null};else{if("item/tool/requestUserInput"!==t)return void await this.sendMessage({id:A,error:{code:-32601,message:`unsupported server request: ${t}`}});r={answers:[]}}await this.sendMessage({id:A,result:r})}async nextMessage(e){let{deadlineAt:A,abortSignal:t,includePending:r=!0}=e;if(r&&this.pendingMessages.length)return this.pendingMessages.shift();for(;;){if(null==t?void 0:t.aborted)throw Error("codex app-server request aborted");if(A&&Date.now()>A)throw Error("codex app-server request timed out");if(this.lineBuffer.length){let e,A=this.lineBuffer.shift().trim();if(!A)continue;try{e=JSON.parse(A)}catch(e){j(`ignored non-JSON message from codex app-server: ${A}`);continue}return e}if(this.closed)throw this.createClosedConnectionError();await new Promise(e=>setTimeout(e,20))}}async sendMessage(e){if(this.closed)throw this.createClosedConnectionError();let A=JSON.stringify(e);await new Promise((e,t)=>{this.child.stdin.write(`${A}
5
+ `,A=>{A?t(Error(`failed writing to codex app-server stdin: ${A.message}`)):e()})})}createClosedConnectionError(){let e=this.stderrBuffer.trim();return this.processErrorMessage?Error(e?`codex app-server process error: ${this.processErrorMessage}. stderr=${e}`:`codex app-server process error: ${this.processErrorMessage}`):Error(e?`codex app-server connection closed (exitCode=${this.lastExitCode}). stderr=${e}`:`codex app-server connection closed (exitCode=${this.lastExitCode})`)}constructor(e,A){x(this,"child",void 0),x(this,"lineReader",void 0),x(this,"pendingMessages",[]),x(this,"lineBuffer",[]),x(this,"nextRequestId",1),x(this,"closed",!1),x(this,"lastExitCode",null),x(this,"processErrorMessage",null),x(this,"stderrBuffer",""),this.child=e,this.lineReader=A}}new class{async runTurn(e){let{messages:A,modelConfig:t,stream:r,onChunk:n,deepThink:o,abortSignal:i}=e;return this.runner.run(async()=>{let e=await this.getConnection();try{return await e.runTurn({messages:A,modelConfig:t,stream:r,onChunk:n,deepThink:o,abortSignal:i})}catch(A){throw(e.isClosed()||!P(A))&&await this.resetConnection(),A}})}async shutdownForTests(){await this.resetConnection()}async getConnection(){return(!this.connection||this.connection.isClosed())&&(this.connection=await K.create(),R("started long-lived codex app-server connection")),this.connection}async resetConnection(){if(!this.connection)return;let e=this.connection;this.connection=null,await e.dispose(),R("reset codex app-server connection")}constructor(){x(this,"connection",null),x(this,"runner",new w)}},t(6732),t(8963),t(5592);var B=t(3078);(0,i.aZ)("img"),(0,i.aZ)("img");var D=t(6244);(0,i.aZ)("ai:common");let z=D.z.object({left:D.z.number(),top:D.z.number()}),Q=D.z.object({width:D.z.number(),height:D.z.number()});z.and(Q).and(D.z.object({zoom:D.z.number().optional()}));let L=D.z.object({images:D.z.array(D.z.object({name:D.z.string(),url:D.z.string()})).optional(),convertHttpImage2Base64:D.z.boolean().optional()}),Z=D.z.union([D.z.string(),D.z.object({prompt:D.z.string()}).and(L.partial())]),X=D.z.object({prompt:Z,deepLocate:D.z.boolean().optional(),deepThink:D.z.boolean().optional().describe("@deprecated Use `deepLocate` instead."),cacheable:D.z.boolean().optional(),xpath:D.z.union([D.z.string(),D.z.boolean()]).optional()}).passthrough(),J=(e,A)=>{var t;return e&&(null==(t=e._def)?void 0:t.typeName)==="ZodObject"&&e.shape?Object.keys(e.shape).filter(t=>{var r;let n=e.shape[t];return!!(e=>{var A,t;let r=e;if((null==(A=r._def)?void 0:A.typeName)==="ZodOptional"&&(r=r._def.innerType),(null==(t=r._def)?void 0:t.typeName)==="ZodObject"){let e=r._def.shape();if("midscene_location_field_flag"in e||"prompt"in e&&e.prompt)return!0}return!1})(n)&&(!A||(null==(r=n._def)?void 0:r.typeName)!=="ZodOptional")}):[]};(0,i.aZ)("auto-glm-parser"),(0,i.aZ)("ai:inspect"),(0,i.aZ)("ai:section"),(0,i.aZ)("planning"),(0,i.aZ)("planning",{console:!0}),(0,i.aZ)("auto-glm-actions"),(0,i.aZ)("auto-glm-planning");var U=t(5409);let F={0:{keyCode:48,key:"0",code:"Digit0"},1:{keyCode:49,key:"1",code:"Digit1"},2:{keyCode:50,key:"2",code:"Digit2"},3:{keyCode:51,key:"3",code:"Digit3"},4:{keyCode:52,key:"4",code:"Digit4"},5:{keyCode:53,key:"5",code:"Digit5"},6:{keyCode:54,key:"6",code:"Digit6"},7:{keyCode:55,key:"7",code:"Digit7"},8:{keyCode:56,key:"8",code:"Digit8"},9:{keyCode:57,key:"9",code:"Digit9"},Power:{key:"Power",code:"Power"},Eject:{key:"Eject",code:"Eject"},Abort:{keyCode:3,code:"Abort",key:"Cancel"},Help:{keyCode:6,code:"Help",key:"Help"},Backspace:{keyCode:8,code:"Backspace",key:"Backspace"},Tab:{keyCode:9,code:"Tab",key:"Tab"},Numpad5:{keyCode:12,shiftKeyCode:101,key:"Clear",code:"Numpad5",shiftKey:"5",location:3},NumpadEnter:{keyCode:13,code:"NumpadEnter",key:"Enter",text:"\r",location:3},Enter:{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\r":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\n":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},ShiftLeft:{keyCode:16,code:"ShiftLeft",key:"Shift",location:1},ShiftRight:{keyCode:16,code:"ShiftRight",key:"Shift",location:2},ControlLeft:{keyCode:17,code:"ControlLeft",key:"Control",location:1},ControlRight:{keyCode:17,code:"ControlRight",key:"Control",location:2},AltLeft:{keyCode:18,code:"AltLeft",key:"Alt",location:1},AltRight:{keyCode:18,code:"AltRight",key:"Alt",location:2},Pause:{keyCode:19,code:"Pause",key:"Pause"},CapsLock:{keyCode:20,code:"CapsLock",key:"CapsLock"},Escape:{keyCode:27,code:"Escape",key:"Escape"},Convert:{keyCode:28,code:"Convert",key:"Convert"},NonConvert:{keyCode:29,code:"NonConvert",key:"NonConvert"},Space:{keyCode:32,code:"Space",key:" "},Numpad9:{keyCode:33,shiftKeyCode:105,key:"PageUp",code:"Numpad9",shiftKey:"9",location:3},PageUp:{keyCode:33,code:"PageUp",key:"PageUp"},Numpad3:{keyCode:34,shiftKeyCode:99,key:"PageDown",code:"Numpad3",shiftKey:"3",location:3},PageDown:{keyCode:34,code:"PageDown",key:"PageDown"},End:{keyCode:35,code:"End",key:"End"},Numpad1:{keyCode:35,shiftKeyCode:97,key:"End",code:"Numpad1",shiftKey:"1",location:3},Home:{keyCode:36,code:"Home",key:"Home"},Numpad7:{keyCode:36,shiftKeyCode:103,key:"Home",code:"Numpad7",shiftKey:"7",location:3},ArrowLeft:{keyCode:37,code:"ArrowLeft",key:"ArrowLeft"},Numpad4:{keyCode:37,shiftKeyCode:100,key:"ArrowLeft",code:"Numpad4",shiftKey:"4",location:3},Numpad8:{keyCode:38,shiftKeyCode:104,key:"ArrowUp",code:"Numpad8",shiftKey:"8",location:3},ArrowUp:{keyCode:38,code:"ArrowUp",key:"ArrowUp"},ArrowRight:{keyCode:39,code:"ArrowRight",key:"ArrowRight"},Numpad6:{keyCode:39,shiftKeyCode:102,key:"ArrowRight",code:"Numpad6",shiftKey:"6",location:3},Numpad2:{keyCode:40,shiftKeyCode:98,key:"ArrowDown",code:"Numpad2",shiftKey:"2",location:3},ArrowDown:{keyCode:40,code:"ArrowDown",key:"ArrowDown"},Select:{keyCode:41,code:"Select",key:"Select"},Open:{keyCode:43,code:"Open",key:"Execute"},PrintScreen:{keyCode:44,code:"PrintScreen",key:"PrintScreen"},Insert:{keyCode:45,code:"Insert",key:"Insert"},Numpad0:{keyCode:45,shiftKeyCode:96,key:"Insert",code:"Numpad0",shiftKey:"0",location:3},Delete:{keyCode:46,code:"Delete",key:"Delete"},NumpadDecimal:{keyCode:46,shiftKeyCode:110,code:"NumpadDecimal",key:"\0",shiftKey:".",location:3},Digit0:{keyCode:48,code:"Digit0",shiftKey:")",key:"0"},Digit1:{keyCode:49,code:"Digit1",shiftKey:"!",key:"1"},Digit2:{keyCode:50,code:"Digit2",shiftKey:"@",key:"2"},Digit3:{keyCode:51,code:"Digit3",shiftKey:"#",key:"3"},Digit4:{keyCode:52,code:"Digit4",shiftKey:"$",key:"4"},Digit5:{keyCode:53,code:"Digit5",shiftKey:"%",key:"5"},Digit6:{keyCode:54,code:"Digit6",shiftKey:"^",key:"6"},Digit7:{keyCode:55,code:"Digit7",shiftKey:"&",key:"7"},Digit8:{keyCode:56,code:"Digit8",shiftKey:"*",key:"8"},Digit9:{keyCode:57,code:"Digit9",shiftKey:"(",key:"9"},KeyA:{keyCode:65,code:"KeyA",shiftKey:"A",key:"a"},KeyB:{keyCode:66,code:"KeyB",shiftKey:"B",key:"b"},KeyC:{keyCode:67,code:"KeyC",shiftKey:"C",key:"c"},KeyD:{keyCode:68,code:"KeyD",shiftKey:"D",key:"d"},KeyE:{keyCode:69,code:"KeyE",shiftKey:"E",key:"e"},KeyF:{keyCode:70,code:"KeyF",shiftKey:"F",key:"f"},KeyG:{keyCode:71,code:"KeyG",shiftKey:"G",key:"g"},KeyH:{keyCode:72,code:"KeyH",shiftKey:"H",key:"h"},KeyI:{keyCode:73,code:"KeyI",shiftKey:"I",key:"i"},KeyJ:{keyCode:74,code:"KeyJ",shiftKey:"J",key:"j"},KeyK:{keyCode:75,code:"KeyK",shiftKey:"K",key:"k"},KeyL:{keyCode:76,code:"KeyL",shiftKey:"L",key:"l"},KeyM:{keyCode:77,code:"KeyM",shiftKey:"M",key:"m"},KeyN:{keyCode:78,code:"KeyN",shiftKey:"N",key:"n"},KeyO:{keyCode:79,code:"KeyO",shiftKey:"O",key:"o"},KeyP:{keyCode:80,code:"KeyP",shiftKey:"P",key:"p"},KeyQ:{keyCode:81,code:"KeyQ",shiftKey:"Q",key:"q"},KeyR:{keyCode:82,code:"KeyR",shiftKey:"R",key:"r"},KeyS:{keyCode:83,code:"KeyS",shiftKey:"S",key:"s"},KeyT:{keyCode:84,code:"KeyT",shiftKey:"T",key:"t"},KeyU:{keyCode:85,code:"KeyU",shiftKey:"U",key:"u"},KeyV:{keyCode:86,code:"KeyV",shiftKey:"V",key:"v"},KeyW:{keyCode:87,code:"KeyW",shiftKey:"W",key:"w"},KeyX:{keyCode:88,code:"KeyX",shiftKey:"X",key:"x"},KeyY:{keyCode:89,code:"KeyY",shiftKey:"Y",key:"y"},KeyZ:{keyCode:90,code:"KeyZ",shiftKey:"Z",key:"z"},MetaLeft:{keyCode:91,code:"MetaLeft",key:"Meta",location:1},MetaRight:{keyCode:92,code:"MetaRight",key:"Meta",location:2},ContextMenu:{keyCode:93,code:"ContextMenu",key:"ContextMenu"},NumpadMultiply:{keyCode:106,code:"NumpadMultiply",key:"*",location:3},NumpadAdd:{keyCode:107,code:"NumpadAdd",key:"+",location:3},NumpadSubtract:{keyCode:109,code:"NumpadSubtract",key:"-",location:3},NumpadDivide:{keyCode:111,code:"NumpadDivide",key:"/",location:3},F1:{keyCode:112,code:"F1",key:"F1"},F2:{keyCode:113,code:"F2",key:"F2"},F3:{keyCode:114,code:"F3",key:"F3"},F4:{keyCode:115,code:"F4",key:"F4"},F5:{keyCode:116,code:"F5",key:"F5"},F6:{keyCode:117,code:"F6",key:"F6"},F7:{keyCode:118,code:"F7",key:"F7"},F8:{keyCode:119,code:"F8",key:"F8"},F9:{keyCode:120,code:"F9",key:"F9"},F10:{keyCode:121,code:"F10",key:"F10"},F11:{keyCode:122,code:"F11",key:"F11"},F12:{keyCode:123,code:"F12",key:"F12"},F13:{keyCode:124,code:"F13",key:"F13"},F14:{keyCode:125,code:"F14",key:"F14"},F15:{keyCode:126,code:"F15",key:"F15"},F16:{keyCode:127,code:"F16",key:"F16"},F17:{keyCode:128,code:"F17",key:"F17"},F18:{keyCode:129,code:"F18",key:"F18"},F19:{keyCode:130,code:"F19",key:"F19"},F20:{keyCode:131,code:"F20",key:"F20"},F21:{keyCode:132,code:"F21",key:"F21"},F22:{keyCode:133,code:"F22",key:"F22"},F23:{keyCode:134,code:"F23",key:"F23"},F24:{keyCode:135,code:"F24",key:"F24"},NumLock:{keyCode:144,code:"NumLock",key:"NumLock"},ScrollLock:{keyCode:145,code:"ScrollLock",key:"ScrollLock"},AudioVolumeMute:{keyCode:173,code:"AudioVolumeMute",key:"AudioVolumeMute"},AudioVolumeDown:{keyCode:174,code:"AudioVolumeDown",key:"AudioVolumeDown"},AudioVolumeUp:{keyCode:175,code:"AudioVolumeUp",key:"AudioVolumeUp"},MediaTrackNext:{keyCode:176,code:"MediaTrackNext",key:"MediaTrackNext"},MediaTrackPrevious:{keyCode:177,code:"MediaTrackPrevious",key:"MediaTrackPrevious"},MediaStop:{keyCode:178,code:"MediaStop",key:"MediaStop"},MediaPlayPause:{keyCode:179,code:"MediaPlayPause",key:"MediaPlayPause"},Semicolon:{keyCode:186,code:"Semicolon",shiftKey:":",key:";"},Equal:{keyCode:187,code:"Equal",shiftKey:"+",key:"="},NumpadEqual:{keyCode:187,code:"NumpadEqual",key:"=",location:3},Comma:{keyCode:188,code:"Comma",shiftKey:"<",key:","},Minus:{keyCode:189,code:"Minus",shiftKey:"_",key:"-"},Period:{keyCode:190,code:"Period",shiftKey:">",key:"."},Slash:{keyCode:191,code:"Slash",shiftKey:"?",key:"/"},Backquote:{keyCode:192,code:"Backquote",shiftKey:"~",key:"`"},BracketLeft:{keyCode:219,code:"BracketLeft",shiftKey:"{",key:"["},Backslash:{keyCode:220,code:"Backslash",shiftKey:"|",key:"\\"},BracketRight:{keyCode:221,code:"BracketRight",shiftKey:"}",key:"]"},Quote:{keyCode:222,code:"Quote",shiftKey:'"',key:"'"},AltGraph:{keyCode:225,code:"AltGraph",key:"AltGraph"},Props:{keyCode:247,code:"Props",key:"CrSel"},Cancel:{keyCode:3,key:"Cancel",code:"Abort"},Clear:{keyCode:12,key:"Clear",code:"Numpad5",location:3},Shift:{keyCode:16,key:"Shift",code:"ShiftLeft",location:1},Control:{keyCode:17,key:"Control",code:"ControlLeft",location:1},Alt:{keyCode:18,key:"Alt",code:"AltLeft",location:1},Accept:{keyCode:30,key:"Accept"},ModeChange:{keyCode:31,key:"ModeChange"}," ":{keyCode:32,key:" ",code:"Space"},Print:{keyCode:42,key:"Print"},Execute:{keyCode:43,key:"Execute",code:"Open"},"\0":{keyCode:46,key:"\0",code:"NumpadDecimal",location:3},a:{keyCode:65,key:"a",code:"KeyA"},b:{keyCode:66,key:"b",code:"KeyB"},c:{keyCode:67,key:"c",code:"KeyC"},d:{keyCode:68,key:"d",code:"KeyD"},e:{keyCode:69,key:"e",code:"KeyE"},f:{keyCode:70,key:"f",code:"KeyF"},g:{keyCode:71,key:"g",code:"KeyG"},h:{keyCode:72,key:"h",code:"KeyH"},i:{keyCode:73,key:"i",code:"KeyI"},j:{keyCode:74,key:"j",code:"KeyJ"},k:{keyCode:75,key:"k",code:"KeyK"},l:{keyCode:76,key:"l",code:"KeyL"},m:{keyCode:77,key:"m",code:"KeyM"},n:{keyCode:78,key:"n",code:"KeyN"},o:{keyCode:79,key:"o",code:"KeyO"},p:{keyCode:80,key:"p",code:"KeyP"},q:{keyCode:81,key:"q",code:"KeyQ"},r:{keyCode:82,key:"r",code:"KeyR"},s:{keyCode:83,key:"s",code:"KeyS"},t:{keyCode:84,key:"t",code:"KeyT"},u:{keyCode:85,key:"u",code:"KeyU"},v:{keyCode:86,key:"v",code:"KeyV"},w:{keyCode:87,key:"w",code:"KeyW"},x:{keyCode:88,key:"x",code:"KeyX"},y:{keyCode:89,key:"y",code:"KeyY"},z:{keyCode:90,key:"z",code:"KeyZ"},Meta:{keyCode:91,key:"Meta",code:"MetaLeft",location:1},"*":{keyCode:106,key:"*",code:"NumpadMultiply",location:3},"+":{keyCode:107,key:"+",code:"NumpadAdd",location:3},"-":{keyCode:109,key:"-",code:"NumpadSubtract",location:3},"/":{keyCode:111,key:"/",code:"NumpadDivide",location:3},";":{keyCode:186,key:";",code:"Semicolon"},"=":{keyCode:187,key:"=",code:"Equal"},",":{keyCode:188,key:",",code:"Comma"},".":{keyCode:190,key:".",code:"Period"},"`":{keyCode:192,key:"`",code:"Backquote"},"[":{keyCode:219,key:"[",code:"BracketLeft"},"\\":{keyCode:220,key:"\\",code:"Backslash"},"]":{keyCode:221,key:"]",code:"BracketRight"},"'":{keyCode:222,key:"'",code:"Quote"},Attn:{keyCode:246,key:"Attn"},CrSel:{keyCode:247,key:"CrSel",code:"Props"},ExSel:{keyCode:248,key:"ExSel"},EraseEof:{keyCode:249,key:"EraseEof"},Play:{keyCode:250,key:"Play"},ZoomOut:{keyCode:251,key:"ZoomOut"},")":{keyCode:48,key:")",code:"Digit0"},"!":{keyCode:49,key:"!",code:"Digit1"},"@":{keyCode:50,key:"@",code:"Digit2"},"#":{keyCode:51,key:"#",code:"Digit3"},$:{keyCode:52,key:"$",code:"Digit4"},"%":{keyCode:53,key:"%",code:"Digit5"},"^":{keyCode:54,key:"^",code:"Digit6"},"&":{keyCode:55,key:"&",code:"Digit7"},"(":{keyCode:57,key:"(",code:"Digit9"},A:{keyCode:65,key:"A",code:"KeyA"},B:{keyCode:66,key:"B",code:"KeyB"},C:{keyCode:67,key:"C",code:"KeyC"},D:{keyCode:68,key:"D",code:"KeyD"},E:{keyCode:69,key:"E",code:"KeyE"},F:{keyCode:70,key:"F",code:"KeyF"},G:{keyCode:71,key:"G",code:"KeyG"},H:{keyCode:72,key:"H",code:"KeyH"},I:{keyCode:73,key:"I",code:"KeyI"},J:{keyCode:74,key:"J",code:"KeyJ"},K:{keyCode:75,key:"K",code:"KeyK"},L:{keyCode:76,key:"L",code:"KeyL"},M:{keyCode:77,key:"M",code:"KeyM"},N:{keyCode:78,key:"N",code:"KeyN"},O:{keyCode:79,key:"O",code:"KeyO"},P:{keyCode:80,key:"P",code:"KeyP"},Q:{keyCode:81,key:"Q",code:"KeyQ"},R:{keyCode:82,key:"R",code:"KeyR"},S:{keyCode:83,key:"S",code:"KeyS"},T:{keyCode:84,key:"T",code:"KeyT"},U:{keyCode:85,key:"U",code:"KeyU"},V:{keyCode:86,key:"V",code:"KeyV"},W:{keyCode:87,key:"W",code:"KeyW"},X:{keyCode:88,key:"X",code:"KeyX"},Y:{keyCode:89,key:"Y",code:"KeyY"},Z:{keyCode:90,key:"Z",code:"KeyZ"},":":{keyCode:186,key:":",code:"Semicolon"},"<":{keyCode:188,key:"<",code:"Comma"},_:{keyCode:189,key:"_",code:"Minus"},">":{keyCode:190,key:">",code:"Period"},"?":{keyCode:191,key:"?",code:"Slash"},"~":{keyCode:192,key:"~",code:"Backquote"},"{":{keyCode:219,key:"{",code:"BracketLeft"},"|":{keyCode:220,key:"|",code:"Backslash"},"}":{keyCode:221,key:"}",code:"BracketRight"},'"':{keyCode:222,key:'"',code:"Quote"},SoftLeft:{key:"SoftLeft",code:"SoftLeft",location:4},SoftRight:{key:"SoftRight",code:"SoftRight",location:4},Camera:{keyCode:44,key:"Camera",code:"Camera",location:4},Call:{key:"Call",code:"Call",location:4},EndCall:{keyCode:95,key:"EndCall",code:"EndCall",location:4},VolumeDown:{keyCode:182,key:"VolumeDown",code:"VolumeDown",location:4},VolumeUp:{keyCode:183,key:"VolumeUp",code:"VolumeUp",location:4}};Object.entries(F).reduce((e,A)=>{let[t,r]=A,n=t.toLowerCase();return n!==t&&(e[n]=r),e},{});let q="undefined"!=typeof window?/Mac|iPod|iPhone|iPad/.test(window.navigator.platform):"darwin"===U.platform;F.Enter.key,F.Enter.key,q?F.Meta.key:F.Control.key,F.Shift.key,F.Alt.key,F.Space.key,F.PageDown.key,F.PageDown.key,F.PageUp.key,F.PageUp.key,t(2788),(0,i.aZ)("ui-tars-planning"),(0,i.aZ)("ui-tars-planning",{console:!0}),t(1182),t(3612),t(3198),t(9383),t(5409);let V=(0,i.aZ)("yaml:utils");function G(e,A){let t;V("will call buildDetailedLocateParam",e,A);let r=e||(null==A?void 0:A.prompt)||(null==A?void 0:A.locate),n=!1,o=!0;return("object"==typeof A&&null!==A&&(n=A.deepLocate??A.deepThink??!1,o=A.cacheable??!0,t=A.xpath,e&&A.prompt&&e!==A.prompt&&console.warn("conflict prompt for item",e,A,"maybe you put the prompt in the wrong place"),r=r||A.prompt),r)?{prompt:r,deepLocate:n,cacheable:o,xpath:t}:void V("no prompt, will return undefined in buildDetailedLocateParam",A)}t(5409),(0,i.aZ)("yaml-player");let H=["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert","aiWaitFor"];async function W(e,A){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(null==e?void 0:e.paramSchema)||!("shape"in e.paramSchema))return[A.prompt||"",t];let r=e.paramSchema,n=r&&"shape"in r?Object.keys(r.shape):[],{deviceOptions:o,...i}=t,a={...i,...t.deviceOptions||{}};return n.forEach(e=>{void 0!==A[e]&&null!==A[e]&&""!==A[e]&&(a[e]=A[e])}),r&&J(r).forEach(e=>{let r=A[e];if(r&&"string"==typeof r){let A=G(r,{deepLocate:t.deepLocate,cacheable:!0});A&&(a[e]=A)}}),[a]}async function Y(e,A,t,r,n){"aiAct"!==A&&void 0!==n.deepThink&&console.warn("[Playground] Received deepThink in non-aiAct action options. deepThink is expected to be used with aiAct during migration.",{actionType:A,requestId:n.requestId,options:n});let o=null==t?void 0:t.find(e=>e.interfaceAlias===A||e.name===A);if(o&&"function"==typeof e.callActionInActionSpace)if(r.params){let A=await W(o,r.params,n);return await e.callActionInActionSpace(o.name,A[0])}else{let A=r.prompt?G(r.prompt,{deepLocate:n.deepLocate,cacheable:!0}):void 0,{deviceOptions:t,...i}=n,a={locate:A,...i,...n.deviceOptions||{}};return await e.callActionInActionSpace(o.name,a)}{let t=r.prompt;if("aiAssert"===A){var i;let{pass:A,thought:r}=await (null==e||null==(i=e.aiAssert)?void 0:i.call(e,t||"",void 0,{keepRawResponse:!0,...n}))||{};return{pass:A||!1,thought:r||""}}if(e&&"function"==typeof e[A])return await e[A](t,n);throw Error(`Unknown action type: ${A}`)}}var _=t(6970),$=t(2801),ee=t(8963).Buffer,eA={"node:fs"(e){e.exports=$}},et={},er=function e(A){var t=et[A];if(void 0!==t)return t.exports;var r=et[A]={exports:{}};return eA[A](r,r.exports,e),r.exports}("node:fs");f.NB;let en=f.x3;function eo(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class ei{static create(e,A){return new ei((0,f.uR)(),e,A)}get id(){return this._id}get format(){return this._format}get extension(){return"jpeg"===this._format?"jpeg":"png"}get capturedAt(){return this._capturedAt}get base64(){if(null!==this._base64)return this._base64;if(null!==this._persistedPath){let e=(0,_.readFileSync)(this._persistedPath);return`data:image/${this._format};base64,${e.toString("base64")}`}if(null!==this._persistedHtmlPath){var e,A;let t,r,n=(e=this._persistedHtmlPath,A=this._id,t=`<script type="midscene-image" data-id="${A}">`,r=null,!function(e,A,t,r){let n=(0,er.openSync)(e,"r"),o=(0,er.statSync)(e).size,i=ee.alloc(65536),a=0,s="",l=!1,c="";try{for(;a<o;){let e=(0,er.readSync)(n,i,0,65536,a),o=s+i.toString("utf-8",0,e);a+=e;let d=0;for(;d<o.length;)if(l){let e=o.indexOf(t,d);if(-1!==e){if(c+=o.slice(d,e),r(c))return;l=!1,c="",d=e+t.length}else{c+=o.slice(d,-t.length),s=o.slice(-t.length);break}}else{let e=o.indexOf(A,d);if(-1!==e){l=!0;let n=(c=o.slice(e+A.length)).indexOf(t);if(-1!==n){if(r(c.slice(0,n)))return;l=!1,c="",d=e+A.length+n+t.length}else{s=c.slice(-t.length),c=c.slice(0,-t.length);break}}else{s=o.slice(-A.length);break}}}}finally{(0,er.closeSync)(n)}}(e,t,"<\/script>",e=>(r=en(e),!0)),r);if(n)return n;throw Error(`Screenshot ${this._id}: cannot recover from HTML (id not found in ${this._persistedHtmlPath})`)}throw Error(`Screenshot ${this._id}: base64 data released without recovery path`)}hasBase64(){return null!==this._base64}markPersistedInline(e){this._persistedAs={$screenshot:this._id,capturedAt:this._capturedAt},this._persistedHtmlPath=e,this._base64=null}markPersistedToPath(e,A){this._persistedAs={base64:e,capturedAt:this._capturedAt},this._persistedPath=A,this._base64=null}toSerializable(){return this._persistedAs??{$screenshot:this._id,capturedAt:this._capturedAt}}static isSerialized(e){return"object"==typeof e&&null!==e&&("$screenshot"in e&&"string"==typeof e.$screenshot||"base64"in e&&"string"==typeof e.base64)&&"capturedAt"in e&&"number"==typeof e.capturedAt}get rawBase64(){return this.base64.replace(/^data:image\/(png|jpeg|jpg);base64,/,"")}constructor(e,A,t){eo(this,"_id",void 0),eo(this,"_base64",void 0),eo(this,"_format",void 0),eo(this,"_capturedAt",void 0),eo(this,"_persistedAs",null),eo(this,"_persistedPath",null),eo(this,"_persistedHtmlPath",null),this._id=e,this._base64=A,this._format=function(e){return e.startsWith("data:image/jpeg")||e.startsWith("data:image/jpg")?"jpeg":"png"}(A),this._capturedAt=t}}var ea=t(8963).Buffer;function es(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function el(e,A){var t,r;return A&&(null==(t=A.constructor)?void 0:t.name)==="Page"?"[Page object]":A&&(null==(r=A.constructor)?void 0:r.name)==="Browser"?"[Browser object]":A&&"function"==typeof A.toSerializable?A.toSerializable():A}function ec(e,A){return"screenshot"!==e||"object"!=typeof A||null===A||ei.isSerialized(A)||"base64"in A&&A.base64,A}class ed{serialize(e){return JSON.stringify(this.toJSON(),el,e)}toJSON(){return{logTime:this.logTime,name:this.name,description:this.description,tasks:this.tasks.map(e=>({...e,recorder:e.recorder||[]})),aiActContext:this.aiActContext}}static fromSerializedString(e){return new ed(JSON.parse(e,ec))}static fromJSON(e){return new ed(e)}collectScreenshots(){let e=[];for(let t of this.tasks){var A;if((null==(A=t.uiContext)?void 0:A.screenshot)instanceof ei&&e.push(t.uiContext.screenshot),t.recorder)for(let A of t.recorder)A.screenshot instanceof ei&&e.push(A.screenshot)}return e}constructor(e){es(this,"logTime",void 0),es(this,"name",void 0),es(this,"description",void 0),es(this,"tasks",void 0),es(this,"aiActContext",void 0),this.logTime=e.logTime,this.name=e.name,this.description=e.description,this.tasks=e.tasks,this.aiActContext=e.aiActContext}}class eu{serialize(e){return JSON.stringify(this.toJSON(),el,e)}serializeWithInlineScreenshots(e){let A=e=>e instanceof ei?{base64:e.base64,capturedAt:e.capturedAt}:Array.isArray(e)?e.map(A):e&&"object"==typeof e?Object.fromEntries(Object.entries(e).map(e=>{let[t,r]=e;return[t,A(r)]})):e;return JSON.stringify(A(this.toJSON()),null,e)}toJSON(){return{sdkVersion:this.sdkVersion,groupName:this.groupName,groupDescription:this.groupDescription,modelBriefs:this.modelBriefs,executions:this.executions.map(e=>e.toJSON()),deviceType:this.deviceType}}static fromSerializedString(e){return new eu(JSON.parse(e,ec))}static fromJSON(e){return new eu(e)}collectAllScreenshots(){let e=[];for(let A of this.executions)e.push(...A.collectScreenshots());return e}serializeToFiles(e){let A=`${e}.screenshots`;(0,_.existsSync)(A)||(0,_.mkdirSync)(A,{recursive:!0});let t={};for(let e of this.collectAllScreenshots())if(e.hasBase64()){let r=(0,B.join)(A,`${e.id}.${e.extension}`),n=e.rawBase64;(0,_.writeFileSync)(r,ea.from(n,"base64")),t[e.id]=r}(0,_.writeFileSync)(`${e}.screenshots.json`,JSON.stringify(t),"utf-8"),(0,_.writeFileSync)(e,this.serialize(),"utf-8")}static fromFilesAsInlineJson(e){let A=(0,_.readFileSync)(e,"utf-8"),t=`${e}.screenshots.json`;if(!(0,_.existsSync)(t))return A;let r=JSON.parse((0,_.readFileSync)(t,"utf-8")),n={};for(let[e,A]of Object.entries(r))if((0,_.existsSync)(A)){let t=(0,_.readFileSync)(A),r=A.endsWith(".jpeg")||A.endsWith(".jpg")?"jpeg":"png";n[e]=`data:image/${r};base64,${t.toString("base64")}`}return JSON.stringify(function e(A,t){if("string"==typeof A)return A;if(Array.isArray(A))return A.map(A=>e(A,t));if("object"==typeof A&&null!==A){if("$screenshot"in A){let e=A.$screenshot,r="number"==typeof A.capturedAt?A.capturedAt:void 0;if("string"==typeof e){if(e.startsWith("data:image/")||e.startsWith("./")||e.startsWith("/"))return{base64:e,capturedAt:r};let A=null;return Object.defineProperties({},{base64:{get:()=>(null===A&&(A=t(e)),A),enumerable:!0},capturedAt:{value:r,enumerable:!0}})}return console.warn("Invalid $screenshot value type:",typeof e),{base64:""}}let r={};for(let[n,o]of Object.entries(A))r[n]=e(o,t);return r}return A}(JSON.parse(A),e=>n[e]??""))}static cleanupFiles(e){for(let A of[e,`${e}.screenshots.json`,`${e}.screenshots`])try{(0,_.rmSync)(A,{force:!0,recursive:!0})}catch{}}static getFilePaths(e){return[e,`${e}.screenshots.json`,`${e}.screenshots`]}constructor(e){es(this,"sdkVersion",void 0),es(this,"groupName",void 0),es(this,"groupDescription",void 0),es(this,"modelBriefs",void 0),es(this,"executions",void 0),es(this,"deviceType",void 0),this.sdkVersion=e.sdkVersion,this.groupName=e.groupName,this.groupDescription=e.groupDescription,this.modelBriefs=e.modelBriefs,this.executions=e.executions.map(e=>e instanceof ed?e:ed.fromJSON(e)),this.deviceType=e.deviceType}}function ep(e){return e.subType||e.type}function eg(e){if(!e)return"";if("string"==typeof e)return e;if("object"==typeof e){if("object"==typeof e.prompt&&null!==e.prompt&&e.prompt.prompt)return e.prompt.prompt;if("string"==typeof e.prompt)return e.prompt;if("string"==typeof e.description)return e.description}return""}function ef(e){var A,t,r,n,o,i,a,s,l,c;let d;if("Planning"===e.type&&(d="Locate"===e.subType?eg(null==e?void 0:e.param):(null==(A=e.output)?void 0:A.log)||(null==(t=e.param)?void 0:t.userInstruction)),"Insight"===e.type&&(d=function(e){if(!e)return{content:""};let A=e=>{var A;return(null==e||null==(A=e.multimodalPrompt)?void 0:A.images)&&Array.isArray(e.multimodalPrompt.images)?e.multimodalPrompt.images:void 0},t=e=>"string"==typeof e?e:JSON.stringify(e);if(e.demand)return{content:t(e.demand),images:A(e)};if(e.assertion)return{content:t(e.assertion),images:A(e)};if(e.dataDemand){let{dataDemand:r}=e;if("string"==typeof r)return{content:r};if("object"==typeof r)return{content:t(r.demand||r),images:A(r)}}return{content:""}}(null==e?void 0:e.param).content),"Action Space"===e.type){let A=null==e||null==(r=e.param)?void 0:r.locate,t=A?eg(A):"";(d=e.thought||"","number"==typeof(null==e||null==(n=e.param)?void 0:n.timeMs))?d=`${null==e||null==(o=e.param)?void 0:o.timeMs}ms`:"string"==typeof(null==e||null==(i=e.param)?void 0:i.scrollType)?d=(c=null==e?void 0:e.param)?`${c.direction||"down"}, ${c.scrollType||"singleAction"}, ${c.distance||"distance-not-set"}`:"":"string"==typeof(null==e||null==(a=e.param)?void 0:a.direction)&&(null==e?void 0:e.subType)==="PullGesture"?d=function(e){if(!e)return"";let A=[];return A.push(`direction: ${e.direction||"down"}`),e.distance&&A.push(`distance: ${e.distance}`),e.duration&&A.push(`duration: ${e.duration}ms`),A.join(", ")}(null==e?void 0:e.param):void 0!==(null==e||null==(s=e.param)?void 0:s.value)?d=null==e||null==(l=e.param)?void 0:l.value:(null==e?void 0:e.param)&&"object"==typeof(null==e?void 0:e.param)&&Object.keys((null==e?void 0:e.param)||{}).length>0&&(d=null==e?void 0:e.param),t&&(d=d&&"object"!=typeof d?`${t} - ${d}`:t)}if(void 0===d)return"";if("string"==typeof d)return d;if("object"==typeof d){let e=eg(d);return e||JSON.stringify(d,void 0,2)}return String(d)}(0,i.aZ)("ai:service"),(0,i.aZ)("task-timing"),(0,i.aZ)("task-runner"),t(3009),t(5207),t(1344),t(8963).Buffer,t(5409),t(8963).Buffer,t(9140),D.z.object({locate:X.describe("The element to be tapped")}),D.z.object({locate:X.describe("The element to be right clicked")}),D.z.object({locate:X.describe("The element to be double clicked")}),D.z.object({locate:X.describe("The element to be hovered")}),D.z.object({value:D.z.union([D.z.string(),D.z.number()]).transform(e=>String(e)).describe("The text to input. Provide the final content for replace/append modes, or an empty string when using clear mode to remove existing text."),locate:X.describe("the position of the placeholder or text content in the target input field. If there is no content, locate the center of the input field.").optional(),mode:D.z.enum(["replace","clear","typeOnly"]).default("replace").describe('Input mode: "replace" (default) - clear the field and input the value; "typeOnly" - type the value directly without clearing the field first; "clear" - clear the field without inputting new text.')}),D.z.object({locate:X.describe("The element to be clicked before pressing the key").optional(),keyName:D.z.string().describe("The key to be pressed. Use '+' for key combinations, e.g., 'Control+A', 'Shift+Enter'")}),D.z.object({scrollType:D.z.enum(["singleAction","scrollToBottom","scrollToTop","scrollToRight","scrollToLeft"]).default("singleAction").describe('The scroll behavior: "singleAction" for a single scroll action, "scrollToBottom" for scrolling all the way to the bottom by rapidly scrolling 5-10 times (skipping intermediate content until reaching the bottom), "scrollToTop" for scrolling all the way to the top by rapidly scrolling 5-10 times (skipping intermediate content until reaching the top), "scrollToRight" for scrolling all the way to the right by rapidly scrolling multiple times, "scrollToLeft" for scrolling all the way to the left by rapidly scrolling multiple times'),direction:D.z.enum(["down","up","right","left"]).default("down").describe('The direction to scroll. Only effective when scrollType is "singleAction".'),distance:D.z.number().nullable().optional().describe("The distance in pixels to scroll"),locate:X.optional().describe('Describe the target element to be scrolled on, like "the table" or "the list" or "the content area" or "the scrollable area". Do NOT provide a general intent like "scroll to find some element"')}),D.z.object({from:X.describe("The position to be dragged"),to:X.describe("The position to be dropped")}),D.z.object({locate:X.describe("The element to be long pressed"),duration:D.z.number().default(500).optional().describe("Long press duration in milliseconds")}),D.z.object({start:X.optional().describe("Starting point of the swipe gesture, if not specified, the center of the page will be used"),direction:D.z.enum(["up","down","left","right"]).optional().describe("The direction to swipe (required when using distance). The direction means the direction of the finger swipe."),distance:D.z.number().optional().describe("The distance in pixels to swipe (mutually exclusive with end)"),end:X.optional().describe("Ending point of the swipe gesture (mutually exclusive with distance)"),duration:D.z.number().default(300).describe("Duration of the swipe gesture in milliseconds"),repeat:D.z.number().optional().describe("The number of times to repeat the swipe gesture. 1 for default, 0 for infinite (e.g. endless swipe until the end of the page)")}),D.z.object({locate:X.describe("The input field to be cleared").optional()}),D.z.object({direction:D.z.enum(["left","right"]).describe("The direction to move the cursor"),times:D.z.number().int().min(1).default(1).describe("The number of times to move the cursor in the specified direction")}),D.z.object({timeMs:D.z.number().default(1e3).optional().describe("Sleep duration in milliseconds, defaults to 1000ms (1 second)")}),t(8586),t(9300),t(5409),t(8963).Buffer,(0,i.aZ)("cache"),(0,i.aZ)("agent:task-builder"),(0,i.aZ)("device-task-executor"),(0,i.aZ)("agent"),["read-only","read-write","write-only"].map(e=>`"${e}"`).join(", ");class em{async getActionSpace(e){return[]}validateParams(e,A){if(!(null==A?void 0:A.paramSchema)||!this.actionNeedsStructuredParams(A))return{valid:!0};if(!e.params)return{valid:!1,errorMessage:"Parameters are required"};try{let t=this.prepareParamsForValidation(e.params,A);return A.paramSchema.parse(t),{valid:!0}}catch(e){return this.handleValidationError(e)}}createDisplayContent(e,A,t){return A&&e.params&&(null==t?void 0:t.paramSchema)?this.buildParamsDisplayList(e.params,t).join("\n")||e.prompt||"":e.prompt||""}formatBasicErrorMessage(e){return(null==e?void 0:e.message)||"Unknown error"}getSchemaKeys(e){if(!(null==e?void 0:e.paramSchema)||!("shape"in e.paramSchema))return[];let A=e.paramSchema;return A&&"shape"in A?Object.keys(A.shape):[]}filterValidParams(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t={};return Object.keys(e).forEach(r=>{A.includes(r)||void 0===e[r]||null===e[r]||""===e[r]||(t[r]=e[r])}),t}actionNeedsStructuredParams(e){return"object"!=typeof e.paramSchema||!("shape"in e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0}prepareParamsForValidation(e,A){let t={...e};return A.paramSchema&&J(A.paramSchema).forEach(e=>{"string"==typeof t[e]&&(t[e]={midscene_location_field_flag:!0,prompt:t[e],center:[0,0],rect:{left:0,top:0,width:0,height:0}})}),t}handleValidationError(e){if(e.errors&&e.errors.length>0){let A=e.errors.filter(e=>{let A=e.path.join(".");return!A.includes("center")&&!A.includes("rect")&&!A.includes("midscene_location_field_flag")}).map(e=>{let A=e.path.join(".");return`${A}: ${e.message}`});if(A.length>0)return{valid:!1,errorMessage:`Validation error: ${A.join(", ")}`}}let A=e instanceof Error?e.message:"Unknown validation error";return{valid:!1,errorMessage:`Parameter validation failed: ${A}`}}buildParamsDisplayList(e,A){let t=[],r=A.paramSchema;if(!(r&&"shape"in r))return t;let n=J(r);return Object.keys(r.shape).forEach(A=>{let r=e[A];if(this.isValidParamValue(r)){let e=this.capitalizeFirstLetter(A),o=this.formatParamValue(A,r,n.includes(A));t.push(`${e}: ${o}`)}}),t}isValidParamValue(e){return null!=e&&""!==e}capitalizeFirstLetter(e){return e.charAt(0).toUpperCase()+e.slice(1)}formatParamValue(e,A,t){return t||"string"==typeof A?`"${A}"`:"number"==typeof A&&"distance"===e?`${A}px`:`${A}`}}function eh(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class ey extends em{get id(){return this._id}onDumpUpdate(e){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=e}setProgressCallback(e){this.progressCallback=void 0,this.progressCallback=e}async parseStructuredParams(e,A,t){return await W(e,A,t)}formatErrorMessage(e){return((null==e?void 0:e.message)||"").includes("of different extension")?"Conflicting extension detected. Please disable the suspicious plugins and refresh the page. Guide: https://midscenejs.com/quick-experience.html#faq":this.formatBasicErrorMessage(e)}async getActionSpace(e){var A;if(!this.agent&&this.agentFactory)try{this.agent=await this.agentFactory()}catch(e){return console.warn("Failed to create agent for actionSpace:",e),[]}if(null==(A=this.agent)?void 0:A.getActionSpace)return await this.agent.getActionSpace();if(this.agent&&"interface"in this.agent&&"object"==typeof this.agent.interface){let e=this.agent.interface;if(null==e?void 0:e.actionSpace)return e.actionSpace()}return e&&"object"==typeof e&&"actionSpace"in e?e.actionSpace():[]}async checkStatus(){return!0}async overrideConfig(e){C(e),console.log("Config updated. Agent will be recreated on next execution.")}async detachDebuggerSafely(){try{var e,A;let t=null==(e=this.agent)?void 0:e.interface;await (null==t||null==(A=t.detachDebugger)?void 0:A.call(t))}catch(e){console.warn("Failed to detach debugger:",e)}}async executeAction(e,A,t){var r,n,o,i;let a;if(this.agentFactory){if(this.agent){console.log("Destroying old agent before execution...");try{await (null==(r=(n=this.agent).destroy)?void 0:r.call(n))}catch(e){console.warn("Failed to destroy old agent:",e)}this.agent=null}await this.recreateAgent()}if(!this.agent)throw Error("No agent available. Please provide either an agent instance or agentFactory.");let s=this.agent,l=await this.getActionSpace();try{null==(o=s.resetDump)||o.call(s)}catch(e){console.warn("Failed to reset dump before execution:",e)}t.requestId&&(this.currentRequestId=t.requestId,a=s.addDumpUpdateListener((e,A)=>{this.currentRequestId===t.requestId&&this.dumpUpdateCallback&&this.dumpUpdateCallback(e,A)}));try{let r=null,n=null;try{r=await Y(s,e,l,A,t)}catch(e){n=e}let o={result:r,dump:null,reportHTML:null,error:n?n instanceof Error?n.message:String(n):null};try{if(s.dumpDataString){let e=s.dumpDataString();e&&(o.dump=(null==(i=eu.fromSerializedString(e).executions)?void 0:i[0])||null)}}catch(e){console.warn("Failed to get dump from agent:",e)}try{s.reportHTMLString&&(o.reportHTML=s.reportHTMLString()||null)}catch(e){}try{s.writeOutActionDumps&&s.writeOutActionDumps()}catch(e){}return o}finally{a&&a()}}async recreateAgent(){if(!this.agentFactory)throw Error("Cannot recreate agent: factory function not provided. Please provide agentFactory in PlaygroundConfig to enable agent recreation.");console.log("Creating new agent with latest config...");try{this.agent=await this.agentFactory(),console.log("Agent created successfully")}catch(e){throw console.error("Failed to create agent:",e),e}}async cancelTask(e){var A,t,r;if(!this.agent)return{error:"No active agent found for this requestId"};let n=null,o=null;try{if("function"==typeof this.agent.dumpDataString){let e=this.agent.dumpDataString();e&&(n=(null==(A=eu.fromSerializedString(e).executions)?void 0:A[0])??null)}}catch(e){console.warn("[LocalExecutionAdapter] Failed to get dump data before cancel:",e)}try{if("function"==typeof this.agent.reportHTMLString){let e=this.agent.reportHTMLString();e&&"string"==typeof e&&!e.includes("REPLACE_ME_WITH_REPORT_HTML")&&(o=e)}}catch(e){console.warn("[LocalExecutionAdapter] reportHTMLString not available in this environment")}try{return await (null==(t=(r=this.agent).destroy)?void 0:t.call(r)),this.agent=null,{success:!0,dump:n,reportHTML:o}}catch(A){let e=A instanceof Error?A.message:"Unknown error";return console.error(`[LocalExecutionAdapter] Failed to cancel agent: ${e}`),{error:`Failed to cancel: ${e}`,dump:n,reportHTML:o}}}async getCurrentExecutionData(){let e={dump:null,reportHTML:null};try{var A,t,r;if(null==(A=this.agent)?void 0:A.dumpDataString){let A=this.agent.dumpDataString();A&&(e.dump=(null==(r=eu.fromSerializedString(A).executions)?void 0:r[0])||null)}(null==(t=this.agent)?void 0:t.reportHTMLString)&&(e.reportHTML=this.agent.reportHTMLString()||null)}catch(e){console.error("Failed to get current execution data:",e)}return e}async getInterfaceInfo(){var e,A,t;if(!(null==(e=this.agent)?void 0:e.interface))return null;try{let e=this.agent.interface.interfaceType||"Unknown",r=(null==(A=(t=this.agent.interface).describe)?void 0:A.call(t))||void 0;return{type:e,description:r}}catch(e){return console.error("Failed to get interface info:",e),null}}constructor(e,A){super(),eh(this,"agent",void 0),eh(this,"agentFactory",void 0),eh(this,"dumpUpdateCallback",void 0),eh(this,"progressCallback",void 0),eh(this,"_id",void 0),eh(this,"currentRequestId",void 0),this.agent=e??null,this.agentFactory=A,this._id=(0,f.uR)()}}function eE(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class ev extends em{onDumpUpdate(e){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=e}get id(){return this._id}validateParams(e,A){if(!(null==A?void 0:A.paramSchema)||!this.actionNeedsStructuredParams(A))return{valid:!0};if(!e.params)return{valid:!1,errorMessage:"Parameters are required"};if(A.paramSchema&&"object"==typeof A.paramSchema){let t=A.paramSchema;if(t.shape||"ZodObject"===t.type){let A=t.shape||{},r=Object.keys(A).filter(t=>{var r,n;let o=A[t];return!((null==o?void 0:o.isOptional)||(null==o||null==(r=o._def)?void 0:r.innerType)||(null==o||null==(n=o._def)?void 0:n.typeName)==="ZodOptional")&&(void 0===e.params[t]||""===e.params[t])});if(r.length>0)return{valid:!1,errorMessage:`Missing required parameters: ${r.join(", ")}`}}}return{valid:!0}}async parseStructuredParams(e,A,t){return await W(e,A,t)}formatErrorMessage(e){let A=(null==e?void 0:e.message)||"",t=[{keyword:"adb",message:"ADB connection error. Please ensure device is connected and USB debugging is enabled."},{keyword:"UIAutomator",message:"UIAutomator error. Please ensure the UIAutomator server is running on the device."}].find(e=>{let{keyword:t}=e;return A.includes(t)});return t?t.message:this.formatBasicErrorMessage(e)}async executeAction(e,A,t){if(this.serverUrl&&"undefined"!=typeof window)return this.executeViaServer(e,A,t);throw Error("Remote execution adapter requires server URL for execution")}async executeViaServer(e,A,t){let r={type:e,prompt:A.prompt,...this.buildOptionalPayloadParams(t,A)};t.context&&(r.context=t.context),t.requestId&&this.dumpUpdateCallback&&this.startProgressPolling(t.requestId);try{let e=await fetch(`${this.serverUrl}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!e.ok){let A=await e.text().catch(()=>"Unknown error");throw Error(`Server request failed (${e.status}): ${A}`)}return await e.json()}catch(e){throw console.error("Execute via server failed:",e),e}finally{this.stopProgressPolling()}}buildOptionalPayloadParams(e,A){let t={};return[{key:"requestId",value:e.requestId},{key:"deepLocate",value:e.deepLocate},{key:"deepThink",value:e.deepThink},{key:"screenshotIncluded",value:e.screenshotIncluded},{key:"domIncluded",value:e.domIncluded},{key:"deviceOptions",value:e.deviceOptions},{key:"params",value:A.params}].forEach(e=>{let{key:A,value:r}=e;null!=r&&""!==r&&(t[A]=r)}),t}async getActionSpace(e){if(this.serverUrl&&"undefined"!=typeof window)try{let A=await fetch(`${this.serverUrl}/action-space`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:e})});if(!A.ok)throw Error(`Failed to get action space: ${A.statusText}`);let t=await A.json();return Array.isArray(t)?t:[]}catch(e){console.error("Failed to get action space from server:",e)}if(e&&"object"==typeof e&&"actionSpace"in e)try{let A=e.actionSpace,t=await A();return Array.isArray(t)?t:[]}catch(e){console.error("Failed to get action space from context:",e)}return[]}async checkStatus(){if(!this.serverUrl)return!1;try{let e=await fetch(`${this.serverUrl}/status`);if(200===e.status){try{let A=await e.json();A.id&&"string"==typeof A.id&&(this._id=A.id)}catch(e){console.debug("Failed to parse status response:",e)}return!0}return!1}catch(e){return console.warn("Server status check failed:",e),!1}}async overrideConfig(e){if(!this.serverUrl)throw Error("Server URL not configured");try{let A=await fetch(`${this.serverUrl}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiConfig:e})});if(!A.ok){let e=await A.json().catch(()=>null),t=(null==e?void 0:e.error)||A.statusText;throw Error(t)}}catch(e){throw console.error("Failed to override server config:",e),e}}async getTaskProgress(e){if(!this.serverUrl)return{};if(!(null==e?void 0:e.trim()))return console.warn("Invalid requestId provided for task progress"),{};try{let A=await fetch(`${this.serverUrl}/task-progress/${encodeURIComponent(e)}`);if(!A.ok)return console.warn(`Task progress request failed: ${A.statusText}`),{};return await A.json()}catch(e){return console.error("Failed to poll task progress:",e),{}}}startProgressPolling(e){this.stopProgressPolling(),this.pollingIntervalId=setInterval(async()=>{try{let A=await this.getTaskProgress(e);A.executionDump&&this.dumpUpdateCallback&&this.dumpUpdateCallback("",A.executionDump)}catch(e){console.error("Error polling task progress:",e)}},500)}stopProgressPolling(){this.pollingIntervalId&&(clearInterval(this.pollingIntervalId),this.pollingIntervalId=void 0)}async cancelTask(e){if(!this.serverUrl)return{error:"No server URL configured"};if(!(null==e?void 0:e.trim()))return{error:"Invalid request ID"};try{let A=await fetch(`${this.serverUrl}/cancel/${encodeURIComponent(e)}`,{method:"POST"});if(!A.ok)return{error:`Cancel request failed: ${A.statusText}`};let t=await A.json();return{success:!0,...t}}catch(e){return console.error("Failed to cancel task:",e),{error:"Failed to cancel task"}}}async getScreenshot(){if(!this.serverUrl)return null;try{let e=await fetch(`${this.serverUrl}/screenshot`);if(!e.ok)return console.warn(`Screenshot request failed: ${e.statusText}`),null;return await e.json()}catch(e){return console.error("Failed to get screenshot:",e),null}}async getInterfaceInfo(){if(!this.serverUrl)return null;try{let e=await fetch(`${this.serverUrl}/interface-info`);if(!e.ok)return console.warn(`Interface info request failed: ${e.statusText}`),null;return await e.json()}catch(e){return console.error("Failed to get interface info:",e),null}}constructor(e){super(),eE(this,"serverUrl",void 0),eE(this,"_id",void 0),eE(this,"dumpUpdateCallback",void 0),eE(this,"pollingIntervalId",void 0),this.serverUrl=e}}class eb{createAdapter(e,A,t,r){switch(e){case"local-execution":if(!t&&!r)throw Error("Agent or agentFactory is required for local execution");return new ey(t,r);case"remote-execution":return new ev(A||("undefined"!=typeof window&&window.location.protocol.includes("http")?window.location.origin:"http://localhost:5800"));default:throw Error(`Unsupported execution type: ${e}`)}}async executeAction(e,A,t){return await this.adapter.executeAction(e,A,t)}async getActionSpace(e){return this.adapter.getActionSpace(e)}validateStructuredParams(e,A){return this.adapter.validateParams(e,A)}formatErrorMessage(e){return this.adapter.formatErrorMessage(e)}createDisplayContent(e,A,t){return this.adapter.createDisplayContent(e,A,t)}get id(){if(this.adapter instanceof ev||this.adapter instanceof ey)return this.adapter.id}async checkStatus(){return!(this.adapter instanceof ev)||this.adapter.checkStatus()}async overrideConfig(e){if(this.adapter instanceof ev)return this.adapter.overrideConfig(e)}async getTaskProgress(e){return this.adapter instanceof ev?this.adapter.getTaskProgress(e):{}}async cancelTask(e){return this.adapter instanceof ev?this.adapter.cancelTask(e):{error:"Cancel task not supported in local execution mode"}}onDumpUpdate(e){this.adapter instanceof ey?this.adapter.onDumpUpdate(e):this.adapter instanceof ev&&this.adapter.onDumpUpdate(e)}onProgressUpdate(e){this.adapter instanceof ey&&this.adapter.setProgressCallback(e)}async cancelExecution(e){if(this.adapter instanceof ev){let A=await this.adapter.cancelTask(e);if(A.success)return{dump:A.dump||null,reportHTML:A.reportHTML||null}}else if(this.adapter instanceof ey){let A=await this.adapter.cancelTask(e);if(A.success)return{dump:A.dump||null,reportHTML:A.reportHTML||null}}return null}async getCurrentExecutionData(){return this.adapter instanceof ey&&this.adapter.getCurrentExecutionData?await this.adapter.getCurrentExecutionData():{dump:null,reportHTML:null}}async getScreenshot(){return this.adapter instanceof ev?this.adapter.getScreenshot():null}async getInterfaceInfo(){return this.adapter instanceof ey||this.adapter instanceof ev?this.adapter.getInterfaceInfo():null}getServiceMode(){return this.adapter instanceof ey?"In-Browser-Extension":"Server"}constructor(e){!function(e,A,t){A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t}(this,"adapter",void 0),this.adapter=this.createAdapter(e.type,e.serverUrl,e.agent,e.agentFactory)}}function ek(){return{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}}}let eC=e=>{let{hideLogo:A=!1}=e,{isDarkMode:t}=function(){let[e,A]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{let e=()=>{var e;A("dark"===(null==(e=document.querySelector("[data-theme]"))?void 0:e.getAttribute("data-theme")))};e();let t=new MutationObserver(e),r=document.querySelector("[data-theme]")||document.documentElement;return t.observe(r,{attributes:!0,attributeFilter:["data-theme"]}),()=>t.disconnect()},[]),{isDarkMode:e}}();return A?null:(0,r.jsx)("div",{className:"logo",children:(0,r.jsx)("a",{href:"https://midscenejs.com/",target:"_blank",rel:"noreferrer",children:(0,r.jsx)("img",{alt:"Midscene_logo",src:t?"https://lf3-static.bytednsdoc.com/obj/eden-cn/nupipfups/Midscene/midscene_with_text_dark.png":"https://lf3-static.bytednsdoc.com/obj/eden-cn/nupipfups/Midscene/midscene_with_text_light.png"})})})};var eS=t(4177),eI=t(6766),ex=t(6419),eR=t(8594),ej=t(89),ew=t(894),eP=t(4174),eO=t(8926),eN={};eN.d=(e,A)=>{for(var t in A)eN.o(A,t)&&!eN.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},eN.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),eN.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var eT={};eN.r(eT),eN.d(eT,{create:()=>eO.vt});let{create:eM}=eT,eK="midscene-auto-zoom",eB="midscene-background-visible",eD="midscene-elements-visible",ez="midscene-model-call-details",eQ="midscene-dark-mode",eL="midscene-playback-speed",eZ="midscene-subtitle-enabled",eX=e=>{if("undefined"==typeof window)return;var A=new URLSearchParams(window.location.search).get(e);if(null===A)return;let t=A.trim().toLowerCase();return!!["1","true","yes","on"].includes(t)||!["0","false","no","off"].includes(t)&&void 0},eJ=eM(e=>{let A="false"!==localStorage.getItem(eK),t="false"!==localStorage.getItem(eB),r="false"!==localStorage.getItem(eD),n="true"===localStorage.getItem(ez),o="true"===localStorage.getItem(eQ),i=Number.parseFloat(localStorage.getItem(eL)||"1"),a=Number.isNaN(i)?1:i,s="false"!==localStorage.getItem(eZ),l=eX("focusOnCursor"),c=eX("showElementMarkers"),d=eX("darkMode"),u=void 0===d?o:d;return void 0!==d&&localStorage.setItem(eQ,u.toString()),{backgroundVisible:t,elementsVisible:void 0===c?r:c,autoZoom:void 0===l?A:l,modelCallDetailsEnabled:n,darkModeEnabled:u,playbackSpeed:[.5,1,1.5,2].includes(a)?a:1,setBackgroundVisible:A=>{e({backgroundVisible:A}),localStorage.setItem(eB,A.toString())},setElementsVisible:A=>{e({elementsVisible:A}),localStorage.setItem(eD,A.toString())},setAutoZoom:A=>{e({autoZoom:A}),localStorage.setItem(eK,A.toString())},setModelCallDetailsEnabled:A=>{e({modelCallDetailsEnabled:A}),localStorage.setItem(ez,A.toString())},setDarkModeEnabled:A=>{e({darkModeEnabled:A}),localStorage.setItem(eQ,A.toString())},setPlaybackSpeed:A=>{e({playbackSpeed:A}),localStorage.setItem(eL,A.toString())},subtitleEnabled:s,setSubtitleEnabled:A=>{e({subtitleEnabled:A}),localStorage.setItem(eZ,A.toString())}}}),eU="midscene-env-config",eF="midscene-service-mode",eq="midscene-tracking-active-tab",eV="midscene-deep-locate",eG="midscene-deep-think",eH="midscene-screenshot-included",eW="midscene-dom-included",eY="midscene-ime-strategy",e_="midscene-auto-dismiss-keyboard",e$="midscene-keyboard-dismiss-strategy",e0="midscene-always-refresh-screen-info",e1=()=>localStorage.getItem(eU)||"",e3=e=>{let A=e.split("\n"),t={};return A.forEach(e=>{let A=e.trim();if(A.startsWith("#"))return;let r=A.replace(/^export\s+/i,"").replace(/;$/,"").trim().match(/^(\w+)=(.*)$/);if(r){let[,e,A]=r,n=A.trim();(n.startsWith("'")&&n.endsWith("'")||n.startsWith('"')&&n.endsWith('"'))&&(n=n.slice(1,-1)),t[e]=n}}),t},e5=eM((e,A)=>{let t=e1(),r=e3(t),n=window.location.href.startsWith("chrome-extension"),o=localStorage.getItem(eF),i="false"!==localStorage.getItem(eq),a="true"===localStorage.getItem(eV),s="true"===localStorage.getItem(eG),l="false"!==localStorage.getItem(eH),c=localStorage.getItem(eW)||"false";return{serviceMode:n?"In-Browser-Extension":o||"Server",setServiceMode:A=>{if(n)throw Error("serviceMode cannot be set in extension");e({serviceMode:A}),localStorage.setItem(eF,A)},config:r,configString:t,setConfig:A=>e({config:A}),loadConfig:A=>{e({config:e3(A),configString:A}),localStorage.setItem(eU,A)},syncFromStorage:()=>{let A=e1();e({config:e3(A),configString:A})},forceSameTabNavigation:i,setForceSameTabNavigation:A=>{e({forceSameTabNavigation:A}),localStorage.setItem(eq,A.toString())},deepLocate:a,setDeepLocate:A=>{e({deepLocate:A}),localStorage.setItem(eV,A.toString())},deepThink:s,setDeepThink:A=>{e({deepThink:A}),localStorage.setItem(eG,A.toString())},screenshotIncluded:l,setScreenshotIncluded:A=>{e({screenshotIncluded:A}),localStorage.setItem(eH,A.toString())},domIncluded:"visible-only"===c?"visible-only":"true"===c,setDomIncluded:A=>{e({domIncluded:A}),localStorage.setItem(eW,A.toString())},popupTab:"playground",setPopupTab:A=>{e({popupTab:A})},imeStrategy:localStorage.getItem(eY)||"yadb-for-non-ascii",setImeStrategy:A=>{e({imeStrategy:A}),localStorage.setItem(eY,A)},autoDismissKeyboard:"false"!==localStorage.getItem(e_),setAutoDismissKeyboard:A=>{e({autoDismissKeyboard:A}),localStorage.setItem(e_,A.toString())},keyboardDismissStrategy:localStorage.getItem(e$)||"esc-first",setKeyboardDismissStrategy:A=>{e({keyboardDismissStrategy:A}),localStorage.setItem(e$,A)},alwaysRefreshScreenInfo:"true"===localStorage.getItem(e0),setAlwaysRefreshScreenInfo:A=>{e({alwaysRefreshScreenInfo:A}),localStorage.setItem(e0,A.toString())}}});function e7(e){let{showTooltipWhenEmpty:A=!0,showModelName:t=!0,tooltipPlacement:o="bottom",mode:i="icon"}=e,{config:a,configString:s,loadConfig:l,syncFromStorage:c}=e5(),[d,u]=(0,n.useState)(!1),[p,g]=(0,n.useState)(s),f=a.MIDSCENE_MODEL_NAME,m=(0,n.useRef)(null),h=e=>{c(),u(!0),e.preventDefault(),e.stopPropagation()};return(0,n.useEffect)(()=>{d&&g(s)},[d,s]),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px",alignItems:"center",height:"100%",minHeight:"32px"},ref:m,children:[t?f:null,(0,r.jsx)(ej.A,{title:"Please set up your environment variables before using.",placement:o,align:{offset:[-10,5]},getPopupContainer:()=>m.current,open:!d&&(A?0===Object.keys(a).length:void 0),children:"icon"===i?(0,r.jsx)(eR.A,{onClick:h}):(0,r.jsx)("span",{onClick:h,style:{color:"#006AFF",cursor:"pointer"},children:"set up"})}),(0,r.jsxs)(ew.A,{title:"Model Env Config",open:d,onOk:()=>{u(!1),l(p)},onCancel:()=>{u(!1)},okText:"Save",style:{width:"800px",height:"100%",marginTop:"10%"},destroyOnClose:!0,maskClosable:!0,centered:!0,children:[(0,r.jsx)(eP.A.TextArea,{rows:7,placeholder:"MIDSCENE_MODEL_API_KEY=sk-...\nMIDSCENE_MODEL_NAME=gpt-4o-2024-08-06\n...",value:p,onChange:e=>g(e.target.value),style:{whiteSpace:"nowrap",wordWrap:"break-word"}}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{children:"The format is KEY=VALUE and separated by new lines."}),(0,r.jsxs)("p",{children:["These data will be saved ",(0,r.jsx)("strong",{children:"locally in your browser"}),"."]})]})]})]})}function e2(e){let{showEnvConfig:A=!0,showTooltipWhenEmpty:t=!1,showModelName:n=!1,githubUrl:o="https://github.com/web-infra-dev/midscene",helpUrl:i="https://midscenejs.com/quick-experience.html",className:a=""}=e;return(0,r.jsxs)("div",{className:`nav-actions ${a}`,children:[(0,r.jsx)(ex.A.Link,{href:o,target:"_blank",children:(0,r.jsx)(eS.A,{className:"nav-icon"})}),(0,r.jsx)(ex.A.Link,{href:i,target:"_blank",children:(0,r.jsx)(eI.A,{className:"nav-icon"})}),A&&(0,r.jsx)(e7,{showTooltipWhenEmpty:t,showModelName:n})]})}var e9=t(4707),e6=t(9870),e8=t(9877),e4=t(3147),Ae=t(6620),AA=t(5810),At=t(5359),Ar=t(5584),An=t(638);let Ao="Auto dismiss keyboard",Ai={aiAct:{group:"interaction",title:"Auto Planning: plan the steps and execute"},aiTap:{group:"interaction",title:"Click an element"},aiDoubleClick:{group:"interaction",title:"Double-click an element"},aiHover:{group:"interaction",title:"Hover over an element"},aiInput:{group:"interaction",title:"Input text into an element"},aiRightClick:{group:"interaction",title:"Right-click an element"},aiKeyboardPress:{group:"interaction",title:"Press keyboard keys"},aiScroll:{group:"interaction",title:"Scroll the page or element"},aiLocate:{group:"interaction",title:"Locate an element on the page"},aiQuery:{group:"extraction",title:"Extract data directly from the UI"},aiBoolean:{group:"extraction",title:"Get true/false answer"},aiNumber:{group:"extraction",title:"Extract numeric value"},aiString:{group:"extraction",title:"Extract text value"},aiAsk:{group:"extraction",title:"Ask a question about the UI"},aiAssert:{group:"validation",title:"Assert a condition is true"},aiWaitFor:{group:"validation",title:"Wait for a condition to be met"}},Aa=["aiAct","aiTap","aiQuery","aiAssert"],As=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"web page";return{type:"system",content:`
3
6
  Welcome to Midscene.js Playground!
4
7
 
5
8
  This is a panel for experimenting and testing Midscene.js features. You can use natural language instructions to operate the ${e}, such as clicking buttons, filling in forms, querying information, etc.
6
9
 
7
10
  Please enter your instructions in the input box below to start experiencing.
8
- `,loading:!1,result:void 0,replayScriptsInfo:null,replayCounter:0,loadingProgressText:"",verticalMode:!1}};e9();let e6={result:void 0,dump:null,reportHTML:null,error:null},e8="data:image/png;base64,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",e4="data:image/png;base64,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";function Ae(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let AA=(e,A,t)=>{let r,o=(r=e.width/e.height>=A/t?e.width:e.height/t*A)>400?.1:r>50?.2:.3,n=Math.min(A,r+A*o*2),i=Math.min(e.left-A*o,A-n);i=Math.max(i,0);let a=Math.min(e.top-t*o,t-t/A*n);return{left:Math.round(i),top:Math.round(a=Math.max(a,0)),width:Math.round(n)}},At=e=>{var A;let t=e?Array.isArray(e.executions)?e:{sdkVersion:"",groupName:"Execution",modelBriefs:[],executions:[e]}:null;if(!t)return console.warn("[allScriptsFromDump] dump is empty"),{scripts:[],modelBriefs:[]};let r=(e=>{var A,t;let r,o,n=e.sdkVersion,i=new Set;if(null==(A=e.executions)||A.filter(Boolean).forEach(e=>{e.tasks.forEach(e=>{var A,t;if(null==(t=e.uiContext)||null==(A=t.shotSize)?void 0:A.width){let A=e.uiContext.shotSize.width,t=e.uiContext.shotSize.height;r||(r=A,o=t)}if(e.usage){let{model_name:A,model_description:t,intent:r}=e.usage;r&&A&&i.add(t?`${r}/${A}(${t})`:`${r}/${A}`)}})}),!r||!o)return console.warn("width or height is missing in dump file"),null;let a=(null==(t=e.modelBriefs)?void 0:t.length)?e.modelBriefs:[],s=(()=>{var e;let A=a.length?a:[...i];if(!A.length)return A;let t=null==(e=A[0])?void 0:e.split("/",2)[1];return t&&A.slice(1).every(e=>(null==e?void 0:e.split("/",2)[1])===t)?[t]:A})();return{width:r,height:o,sdkVersion:n,modelBriefs:s,deviceType:e.deviceType}})(t);if(!r)return{scripts:[],sdkVersion:t.sdkVersion,modelBriefs:[]};let{width:o,height:n}=r,i=[],a=(null==(A=t.executions)?void 0:A.filter(Boolean))||[];for(let e=0;e<a.length;e++){let A=Ar(a[e],-1,o,n,e);A&&i.push(...A)}return{scripts:i.filter((e,A)=>A===i.length-1||"Done"!==e.title),width:o,height:n,sdkVersion:r.sdkVersion,modelBriefs:r.modelBriefs,deviceType:r.deviceType}},Ar=function(e,A,t,r){let o;if(arguments.length>4&&void 0!==arguments[4]&&arguments[4],!e||!e.tasks.length||0===t||0===r)return null;let n=[];if(-1===A)n=e.tasks;else{let t=e.tasks.findIndex(e=>e===A);if(-1===t)return console.error("task not found, cannot generate animation scripts"),null;if(t===e.tasks.length-1)return null;for(let A=t;A<e.tasks.length&&(!(A>t)||"Planning"!==e.tasks[A].type||"Plan"!==e.tasks[A].subType);A++)n.push(e.tasks[A])}if(0===n.length)return null;let i=AA({left:0,top:0,width:t,height:r},t,r),a=(e,A)=>{if(!A)return e;let t=Ae({},e),r=null;return Object.defineProperty(t,"img",{get:()=>(null===r&&(r=A.base64),r),enumerable:!0}),t},s=[],l=!1,c="";return n.forEach((e,A)=>{var d,u,p,g,f,m,h,y,E,v,b,k,C,S,I,R,x,j,P,O,w,N,T,K,M,B,D,z;let Q=null==(z=n[A])?void 0:z.taskId;if(0===A&&(c=er(e)),"Planning"===e.type){let A=[];if("Plan"===e.subType){let t=(null==(u=e.output)?void 0:u.actions)||[];if(t.length>0){let e=t[0],r=["locate","start","end"];if(e.param)for(let t in r.forEach(t=>{e.param[t]&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}),e.param)!r.includes(t)&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}}else"Locate"===e.subType&&(null==(d=e.output)?void 0:d.element)&&(A=[e.output.element]);let n=eA(e),i=er(e),c=e.uiContext;if(null==c?void 0:c.screenshot){let d=(null==(p=c.shotSize)?void 0:p.width)||t,u=(null==(g=c.shotSize)?void 0:g.height)||r,f=c.screenshot;s.push(a({type:"img",duration:300,title:n,subTitle:i,imageWidth:d,imageHeight:u,taskId:Q},f)),A.forEach(A=>{var p,g,m,h,y,E;y=Ae({},AA(A.rect,d,u)),E=E={pointerLeft:A.center[0],pointerTop:A.center[1]},Object.getOwnPropertyDescriptors?Object.defineProperties(y,Object.getOwnPropertyDescriptors(E)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(E)).forEach(function(e){Object.defineProperty(y,e,Object.getOwnPropertyDescriptor(E,e))}),o=y,s.push(a({type:"insight",context:c,camera:o,highlightElement:A,searchArea:null==(g=e.log)||null==(p=g.taskInfo)?void 0:p.searchArea,duration:400,insightCameraDuration:800,title:n,subTitle:A.description||i,imageWidth:(null==(m=c.shotSize)?void 0:m.width)||t,imageHeight:(null==(h=c.shotSize)?void 0:h.height)||r,taskId:Q},f)),l=!0})}if(e.recorder&&e.recorder.length>0){let A=null==(f=e.recorder[0])?void 0:f.screenshot;s.push(a({type:"img",duration:900,title:eA(e),subTitle:er(e),imageWidth:(null==(h=e.uiContext)||null==(m=h.shotSize)?void 0:m.width)||t,imageHeight:(null==(E=e.uiContext)||null==(y=E.shotSize)?void 0:y.height)||r,taskId:Q},A))}}else if("Action Space"===e.type){let A=eA(e),o=er(e);s.push({type:"spinning-pointer",duration:300,title:A,subTitle:o,taskId:Q}),l&&(s.push({type:"clear-insight",duration:200,title:A,subTitle:o,taskId:Q}),l=!1),s.push({type:"pointer",img:e8,duration:0,title:A,subTitle:o,taskId:Q});let n=null==(b=e.recorder)||null==(v=b[0])?void 0:v.screenshot;s.push(a({type:"img",duration:500,camera:"Sleep"===e.subType?i:void 0,title:A,subTitle:o,imageWidth:(null==(C=e.uiContext)||null==(k=C.shotSize)?void 0:k.width)||t,imageHeight:(null==(I=e.uiContext)||null==(S=I.shotSize)?void 0:S.height)||r,taskId:Q},n))}else{let A=eA(e),o=er(e),n=null==(x=e.recorder)||null==(R=x[e.recorder.length-1])?void 0:R.screenshot;n&&s.push(a({type:"img",duration:900,camera:i,title:A,subTitle:o,imageWidth:(null==(P=e.uiContext)||null==(j=P.shotSize)?void 0:j.width)||t,imageHeight:(null==(w=e.uiContext)||null==(O=w.shotSize)?void 0:O.height)||r,taskId:Q},n))}if("finished"!==e.status){let A=eA(e),o=e.errorMessage||"unknown error",n=o.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":o,l=null==(T=e.recorder)||null==(N=T[e.recorder.length-1])?void 0:N.screenshot;s.push(a({type:"img",camera:i,duration:900,title:A,subTitle:n,imageWidth:(null==(M=e.uiContext)||null==(K=M.shotSize)?void 0:K.width)||t,imageHeight:(null==(D=e.uiContext)||null==(B=D.shotSize)?void 0:B.height)||r,taskId:Q},l))}}),s.push({title:"End",subTitle:c,type:"img",duration:200,camera:i,taskId:void 0}),s};function Ao(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function An(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){Ao(n,r,o,i,a,"next",e)}function a(e){Ao(n,r,o,i,a,"throw",e)}i(void 0)})}}function Ai(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function Aa(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}function As(e){var A;if(!e)return"";if("string"==typeof e)return e;if(null==e||null==(A=e.dump)?void 0:A.error)return e.dump.error;if(e.message)return String(e.message);try{return JSON.stringify(e)}catch(A){return String(e)}}function Al(e,A){let t=new Set;return(null==e?void 0:e.tasks)&&Array.isArray(e.tasks)?e.tasks.forEach(e=>{if(e.usage){let{model_name:A,model_description:r,intent:o}=e.usage;o&&A&&t.add(r?`${o}/${A}(${r})`:`${o}/${A}`)}}):console.warn("[wrapExecutionDumpForReplay] Invalid dump structure:",e),{sdkVersion:"",groupName:"Playground Execution",modelBriefs:[...t],executions:[e],deviceType:A}}function Ac(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class Ad{initDB(){return new Promise((e,A)=>{let t=indexedDB.open(this.dbName,this.version);t.onerror=()=>A(t.error),t.onsuccess=()=>e(t.result),t.onupgradeneeded=e=>{let A=e.target.result;this.storeConfigs.forEach(e=>{let{name:t,keyPath:r}=e;A.objectStoreNames.contains(t)||A.createObjectStore(t,{keyPath:r}).createIndex("timestamp","timestamp",{unique:!1})})}})}async withTransaction(e,A,t){let r=(await this.dbPromise).transaction(e,A);return t(Array.isArray(e)?e.map(e=>r.objectStore(e)):r.objectStore(e))}promisifyRequest(e){return new Promise((A,t)=>{e.onsuccess=()=>A(e.result),e.onerror=()=>t(e.error)})}async put(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.put(A))})}async get(e,A){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.get(A)))}async getAll(e){let A=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return this.withTransaction(e,"readonly",async e=>{let t=A?await this.promisifyRequest(e.index("timestamp").getAll()):await this.promisifyRequest(e.getAll());return A?t.sort((e,A)=>e.timestamp-A.timestamp):t})}async clear(e){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.clear())})}async delete(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.delete(A))})}async count(e){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.count()))}getDBPromise(){return this.dbPromise}constructor(e,A,t){Ac(this,"dbPromise",void 0),Ac(this,"dbName",void 0),Ac(this,"version",void 0),Ac(this,"storeConfigs",void 0),this.dbName=e,this.version=A,this.storeConfigs=t,this.dbPromise=this.initDB()}}let Au=async(e,A,t,r)=>{try{return await e()}catch(e){return console.error(A,e),e instanceof Error&&"QuotaExceededError"===e.name&&r&&(console.log("Storage quota exceeded, running cleanup..."),await r()),t}},Ap=(e,A,t)=>async()=>{try{let r=await e.getAll(A);if(r.length>t){let o=r.sort((e,A)=>e.timestamp-A.timestamp).slice(0,r.length-t);await Promise.all(o.map(t=>e.delete(A,t.id)))}}catch(e){console.error(`Failed to cleanup ${A}:`,e)}};function Ag(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function Af(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){Ag(n,r,o,i,a,"next",e)}function a(e){Ag(n,r,o,i,a,"throw",e)}i(void 0)})}}function Am(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function Ah(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){Am(e,A,t[A])})}return e}function Ay(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}let AE="playground_messages",Av="playground_results";class Ab{saveMessages(e){return Af(function*(){yield Au(()=>Af(function*(){yield this.dbManager.clear(AE);let A=e.slice(-100);yield Promise.all(A.map((e,A)=>{let t=Ay(Ah({},e),{result:"result"===e.type?void 0:e.result}),r={id:e.id||`msg-${A}`,data:t,timestamp:e.timestamp?e.timestamp.getTime():Date.now()+A};return this.dbManager.put(AE,r)}))}).call(this),"Failed to save messages to IndexedDB",void 0,this.messagesCleanup)}).call(this)}loadMessages(){return Af(function*(){return(yield Au(()=>Af(function*(){let e=yield this.dbManager.getAll(AE,!0);return 0===e.length?[]:Promise.all(e.map(e=>Af(function*(){let A=e.data,t=Ay(Ah({},A),{timestamp:new Date(A.timestamp)});if("result"===A.type&&A.id){let e=yield this.loadResult(A.id);e&&(t.result=e.result,t.replayScriptsInfo=e.replayScriptsInfo,t.replayCounter=e.replayCounter,t.verticalMode=e.verticalMode)}return t}).call(this)))}).call(this),"Failed to load messages from IndexedDB",[],this.messagesCleanup))||[]}).call(this)}clearMessages(){return Af(function*(){yield Au(()=>Af(function*(){yield Promise.all([this.dbManager.clear(AE),this.dbManager.clear(Av)])}).call(this),"Failed to clear messages from IndexedDB")}).call(this)}saveResult(e,A){return Af(function*(){yield Au(()=>Af(function*(){let t=this.compressResultForStorage(A),r={id:e,data:t,timestamp:Date.now(),size:JSON.stringify(t).length};yield this.dbManager.put(Av,r)}).call(this),"Failed to save result to IndexedDB",void 0,this.resultsCleanup)}).call(this)}loadResult(e){return Af(function*(){return(yield Au(()=>Af(function*(){let A=yield this.dbManager.get(Av,e);return(null==A?void 0:A.data)||null}).call(this),"Failed to load result from IndexedDB",null))||null}).call(this)}compressResultForStorage(e){var A,t;if(!(null==(t=e.result)||null==(A=t.dump)?void 0:A.tasks))return e;let r=e.result.dump.tasks.map(e=>{var A;return Ay(Ah({},e),{uiContext:e.uiContext?Ay(Ah({},e.uiContext),{screenshot:e.uiContext.screenshot}):e.uiContext,recorder:null==(A=e.recorder)?void 0:A.map(e=>Ay(Ah({},e),{screenshot:e.screenshot}))})});return Ay(Ah({},e),{result:Ay(Ah({},e.result),{dump:Ay(Ah({},e.result.dump),{tasks:r})})})}compressScreenshotIfNeeded(e){if(!e)return e;if(e.length>1048576){let A=Math.round(e.length/1024);return`[COMPRESSED: ${A}KB screenshot removed for storage]`}return e}getStorageStats(){return Af(function*(){return(yield Au(()=>Af(function*(){let[e,A]=yield Promise.all([this.dbManager.count(AE),this.dbManager.count(Av)]);return{messageCount:e,resultCount:A}}).call(this),"Failed to get storage statistics",{messageCount:0,resultCount:0}))||{messageCount:0,resultCount:0}}).call(this)}cleanup(){return Af(function*(){yield Promise.all([this.messagesCleanup(),this.resultsCleanup()])}).call(this)}constructor(e="playground"){Am(this,"dbManager",void 0),Am(this,"namespace",void 0),Am(this,"messagesCleanup",void 0),Am(this,"resultsCleanup",void 0),this.namespace=e,this.dbManager=new Ad(`midscene_playground_${e}`,1,[{name:AE,keyPath:"id"},{name:Av,keyPath:"id"}]),this.messagesCleanup=Ap(this.dbManager,AE,100),this.resultsCleanup=Ap(this.dbManager,Av,50)}}function Ak(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function AC(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){Ak(n,r,o,i,a,"next",e)}function a(e){Ak(n,r,o,i,a,"throw",e)}i(void 0)})}}function AS(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function AI(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){AS(e,A,t[A])})}return e}function AR(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}class Ax{checkStorageSpace(){try{let e="storage-test",A="x".repeat(102400);return localStorage.setItem(e,A),localStorage.removeItem(e),!0}catch(e){return!1}}saveMessages(e){return AC(function*(){try{this.checkStorageSpace()||(console.warn("Low storage space detected, clearing old data..."),yield this.handleQuotaExceeded());let A=e.slice(-this.maxStorageItems).map(e=>AR(AI({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t)}catch(A){if(A instanceof DOMException&&"QuotaExceededError"===A.name){console.warn("LocalStorage quota exceeded, attempting to clear old data and retry..."),yield this.handleQuotaExceeded();try{let A=e.slice(-10).map(e=>AR(AI({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t),console.info("Successfully saved recent messages after clearing storage")}catch(e){console.error("Failed to save even after clearing storage:",e),yield this.clearMessages()}}else console.error("Failed to save messages to localStorage:",A)}}).call(this)}loadMessages(){return AC(function*(){try{let e=localStorage.getItem(this.messagesKey);if(!e)return[];let A=JSON.parse(e);return yield Promise.all(A.map(e=>AC(function*(){if("result"===e.type&&e.id){let A=`${this.resultsKey}-${e.id}`,t=localStorage.getItem(A);if(t)try{let A=JSON.parse(t);return AI({},e,A)}catch(e){console.warn("Failed to parse stored result:",e)}}return e}).call(this)))}catch(e){return console.error("Failed to load messages from localStorage:",e),[]}}).call(this)}clearMessages(){return AC(function*(){try{localStorage.removeItem(this.messagesKey),Object.keys(localStorage).forEach(e=>{e.startsWith(this.resultsKey)&&localStorage.removeItem(e)})}catch(e){console.error("Failed to clear messages from localStorage:",e)}}).call(this)}saveResult(e,A){return AC(function*(){try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(t){if(t instanceof DOMException&&"QuotaExceededError"===t.name){console.warn("LocalStorage quota exceeded when saving result, clearing old results..."),yield this.handleQuotaExceeded();try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(e){console.error("Failed to save result even after clearing storage:",e)}}else console.error("Failed to save result to localStorage:",t)}}).call(this)}handleQuotaExceeded(){return AC(function*(){try{let e=Object.keys(localStorage),A=e.filter(e=>e.startsWith(this.resultsKey)),t=A.slice(0,Math.max(1,Math.floor(A.length/2)));t.forEach(e=>{localStorage.removeItem(e)}),console.info(`Cleared ${t.length} old result entries to free up storage space`);let r=e.filter(e=>e.includes("playground")||e.includes("agent")||e.startsWith("midscene"));if(r.length>10){let e=r.slice(0,Math.floor(r.length/3));e.forEach(e=>{e!==this.messagesKey&&localStorage.removeItem(e)}),console.info(`Cleared ${e.length} additional playground-related entries`)}}catch(e){console.error("Failed to handle quota exceeded:",e)}}).call(this)}constructor(e="playground"){AS(this,"messagesKey",void 0),AS(this,"resultsKey",void 0),AS(this,"maxStorageItems",50),this.messagesKey=`${e}-messages`,this.resultsKey=`${e}-results`}}class Aj{saveMessages(e){return AC(function*(){this.messages=[...e]}).call(this)}loadMessages(){return AC(function*(){return[...this.messages]}).call(this)}clearMessages(){return AC(function*(){this.messages=[],this.results.clear()}).call(this)}saveResult(e,A){return AC(function*(){this.results.set(e,A)}).call(this)}constructor(){AS(this,"messages",[]),AS(this,"results",new Map)}}class AP{saveMessages(e){return AC(function*(){})()}loadMessages(){return AC(function*(){return[]})()}clearMessages(){return AC(function*(){})()}saveResult(e,A){return AC(function*(){})()}}function AO(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"indexeddb",A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"playground";switch(e){case"indexeddb":if("undefined"!=typeof indexedDB)return new Ab(A);return console.warn("IndexedDB not available, falling back to localStorage"),AO("localStorage",A);case"localStorage":if("undefined"!=typeof localStorage)return new Ax(A);return console.warn("localStorage not available, falling back to memory storage"),AO("memory",A);case"memory":return new Aj;case"none":return new AP;default:throw Error(`Unknown storage type: ${e}`)}}function Aw(){if("undefined"!=typeof indexedDB)try{return indexedDB.open("test",1).onerror=()=>{},"indexeddb"}catch(e){}if("undefined"!=typeof localStorage)try{return localStorage.setItem("test","test"),localStorage.removeItem("test"),"localStorage"}catch(e){}return"memory"}function AN(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function AT(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){AN(n,r,o,i,a,"next",e)}function a(e){AN(n,r,o,i,a,"throw",e)}i(void 0)})}}function AK(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AM(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}let AB=e=>{var A;let t=e.highlightElements||[],n=e.highlightRect;if(!(null==(A=e.uiContext)?void 0:A.shotSize))return(0,r.jsx)("div",{className:"blackboard",children:(0,r.jsx)("div",{className:"blackboard-main-content",style:{padding:"20px"},children:"No UI context available"})});let{shotSize:i,screenshot:a}=e.uiContext,s=i.width,l=i.height,c=(0,o.useMemo)(()=>a?"object"==typeof a&&"base64"in a?a.base64:"string"==typeof a?a:"":"",[a]),d=t.map(e=>e.rect),u=null;return 1===d.length?u=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(d[0])]})}):d.length>1&&(u=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(d)]})})),(0,r.jsxs)("div",{className:"blackboard",children:[(0,r.jsxs)("div",{className:"blackboard-main-content",style:{width:"100%",position:"relative"},children:[c&&(0,r.jsx)("img",{src:c,alt:"screenshot",className:"blackboard-screenshot",draggable:!1}),(0,r.jsxs)("div",{className:"blackboard-overlay",style:{aspectRatio:`${s}/${l}`,"--ui-scale":Math.max(1,Math.sqrt(s/1920))},children:[n&&(0,r.jsx)("div",{className:"blackboard-rect blackboard-rect-search",style:{left:`${n.left/s*100}%`,top:`${n.top/l*100}%`,width:`${n.width/s*100}%`,height:`${n.height/l*100}%`},children:(0,r.jsx)("span",{className:"blackboard-rect-label",children:"Search Area"})}),t.map((e,A)=>(0,r.jsx)("div",{className:"blackboard-rect blackboard-rect-highlight",style:{left:`${e.rect.left/s*100}%`,top:`${e.rect.top/l*100}%`,width:`${e.rect.width/s*100}%`,height:`${e.rect.height/l*100}%`},children:e.content&&(0,r.jsx)("span",{className:"blackboard-rect-label",children:e.content})},e.id||A))]})]}),(0,r.jsx)("div",{className:"bottom-tip",style:{display:e.hideController?"none":"block"},children:u})]})};var AD=t(9783),Az=t(7294),AQ=t(4985),AL=t(1090),AZ=t(2946),AX=t(90),AJ=t(3776);let AU=e=>{let{text:A,disabled:t=!1,speed:o=5,className:n="",colorTheme:i="blue"}=e,a={"--animation-duration":`${o}s`},s=`theme-${i}`;return(0,r.jsx)("div",{className:`shiny-text ${s} ${t?"disabled":""} ${n}`,style:a,children:A})},AF=(0,r.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,r.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,r.jsx)("br",{}),"a. ",(0,r.jsx)("strong",{children:"npx midscene-playground"}),(0,r.jsx)("br",{}),"b. ",(0,r.jsx)("strong",{children:"npx --yes @midscene/web"})]}),Aq=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:AF;return(0,r.jsx)("div",{className:"server-tip",children:(0,r.jsx)(e_.A,{message:"Playground Server Not Ready",description:e,type:"warning"})})},AV=(0,r.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,r.jsx)(AU,{disabled:!0,text:"The result will be shown here"})});var AG=JSON.parse('{"content":[{"content":"Swag Labs","rect":{"left":895,"top":38,"width":130,"height":32,"zoom":1},"center":[960,54],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"d6c5e2f100","attributes":{"nodeType":"TEXT Node"},"indexId":0},{"content":"Username","rect":{"left":814,"top":154,"width":292,"height":40,"zoom":1},"center":[960,174],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'a9021f480e\']","id":"a9021f480e","attributes":{"class":".input_error.form_input","placeholder":"Username","type":"text","data-test":"username","id":"user-name","name":"user-name","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":1},{"content":"Password","rect":{"left":814,"top":209,"width":292,"height":40,"zoom":1},"center":[960,229],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'580f3b761d\']","id":"580f3b761d","attributes":{"class":".input_error.form_input","placeholder":"Password","type":"password","data-test":"password","id":"password","name":"password","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":2},{"content":"","rect":{"left":814,"top":253,"width":292,"height":45,"zoom":1},"center":[960,275],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'3e1faf0fd6\']","id":"3e1faf0fd6","attributes":{"class":".error-message-container","nodeType":"CONTAINER Node"},"indexId":3},{"content":"Login","rect":{"left":814,"top":303,"width":292,"height":49,"zoom":1},"center":[960,327],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'6db0b64062\']","id":"6db0b64062","attributes":{"type":"submit","class":".submit-button.btn_action","data-test":"login-button","id":"login-button","name":"login-button","value":"Login","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":4},{"content":"Accepted usernames are:","rect":{"left":570,"top":435,"width":221,"height":21,"zoom":1},"center":[680,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"5ca36a5942","attributes":{"nodeType":"TEXT Node"},"indexId":5},{"content":"standard_user","rect":{"left":570,"top":479,"width":109,"height":19,"zoom":1},"center":[624,488],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"fd2fe54174","attributes":{"nodeType":"TEXT Node"},"indexId":6},{"content":"locked_out_user","rect":{"left":570,"top":503,"width":126,"height":19,"zoom":1},"center":[633,512],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"403daee75b","attributes":{"nodeType":"TEXT Node"},"indexId":7},{"content":"problem_user","rect":{"left":570,"top":527,"width":101,"height":19,"zoom":1},"center":[620,536],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"2b34f1e161","attributes":{"nodeType":"TEXT Node"},"indexId":8},{"content":"performance_glitch_user","rect":{"left":570,"top":551,"width":193,"height":19,"zoom":1},"center":[666,560],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"6ae63a4d9e","attributes":{"nodeType":"TEXT Node"},"indexId":9},{"content":"error_user","rect":{"left":570,"top":575,"width":84,"height":19,"zoom":1},"center":[612,584],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"76030282f1","attributes":{"nodeType":"TEXT Node"},"indexId":10},{"content":"visual_user","rect":{"left":570,"top":599,"width":92,"height":19,"zoom":1},"center":[616,608],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"f34b057726","attributes":{"nodeType":"TEXT Node"},"indexId":11},{"content":"Password for all users:","rect":{"left":960,"top":435,"width":221,"height":21,"zoom":1},"center":[1070,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"e693f608cd","attributes":{"nodeType":"TEXT Node"},"indexId":12},{"content":"secret_sauce","rect":{"left":960,"top":477,"width":101,"height":19,"zoom":1},"center":[1010,486],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"cde9de9828","attributes":{"nodeType":"TEXT Node"},"indexId":13}],"size":{"width":1920,"height":1080},"screenshotBase64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAIAAABnsVYUAAAAAXNSR0IArs4c6QAAIABJREFUeJzs3XeU3FXd+PE7W7IlyW7qppFGemc3CUkggBTFQKiRCEgRUBQeQUUsj4IiIIogKCq9qKABRKUIhCItPaSRSgshHVI2yfZsm98f8/zWGFARczMpr9fhj9k735n9fOecAOd9bu4kSuurAgAAAAAA7GoZ6R4AAAAAAIB9kwANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAAAAAARCFAAwAAAAAQhQANAAAAAEAUAjQAAAAAAFEI0AAApFlNzfZ0j7DnqqnZPmXqtNmz56R7EAAA+DgSpfVV6Z4BAID90Z///OjkZ59bsmTZhg0bunTuPGzYkAkTTjn8sLHpnuvju/FnP582bfrXv37pLryLtWvXfuKoYzt27DDl5b/tqvcEAIDdxg5oAAB2t4aGxquvue7b/3vFiy++XFa2bdCggZs2b37q6Wcu/NLFkyY9nO7pPr7Vq1cvXrJ029Zt6R4EAAD2FAI0AAC724svvXT/A38oLCy88/Zfz5k9/dE/PzxvzoxvffOyhobG71919cJFi9M9IAAAsGsI0AAA7G4vvzwlhHDxRRceeeQROTk5IYRmzZp98Qvnn3DC8SGEqVOmpXtAAABg1xCgAQDY3dauXRdCSKXnHX3uzNPPOedzbdu1/e9/RVVV1bsrV9bV1f3bKxsaGleuXJXGL0JMJpNr1qwtLd3yEa9fu25dQ0Pjv72svLxi+fJ3tpWV/dcDAgDAx5eV7gEAANjv9O3bZ8rUaU888eRnJpyyY4YeXlI8vKQ49bi8vOLYcSe0btXqyb/+JbVy6213PvDAHwoKCyY/9Xhq5c677vnNb+6/8MILPn/u2amVZDJ5z72/feihP65ctSqZTGZmZgwcMOCqq64cOmTwB8dYtHjJzTffMm/+gsrKyoyMjDZtWidCIvXUqFEjb77phsgfQ1i1avVVP7x2/oLXKioqQgiFBQVnnPHZS75yUbNmzT54cXV1zY+u+8kLL768cePGli1bjDr44LPPPvOQMaM/eOVfHn3817fevnLlqtSPXbp0ufiiCyeeNiH27QAAwAfZAQ0AwO529tln5ubmzJ03//Qzzp47b/6HXtOyZYvm+flvvvXWxk2bUivTpk/fuGnT8uXvrHj33dTK3HnzN27a1Kd376ZXXXTxpdf/9MY1a9eWFB903LhjmzXLWbR4ycTPnrlw4aKd3n/R4iWfP+8LU6ZOa9Gi+QknHN+mTetNmzZv3LSpoLBg9JhRQz4sWO9aM2fNPumU06ZMnZafnz9+/HH9+/fbVlZ2+x13XfLVyz54cW1t7QVf/PJDDz+SkZEYNmxoY2Py+b+98OWLvvLB+/r9Hx781re/u2bNmsGDBp56ykm9eh24du3a713xg9/d//vYdwQAAB8kQAMAsLt16dz5l7fcXFDQcvGSpaefcfbx40954PeTqqurd7qsuHhYCGHp0mUhhIaGhkWLFmdmZoQQ5s39v2a9dOmyjIyMYcOGpH6cPXvO3154MS8v99nJf31w0v2/+PnPZs145bTPnNrQ0PjTG27a6c2vvfbHZWXll339q6+89PxNN14/9ZUXv/CF80IIfXr3vunG688/79zYH8KvfnVbRUXF6adPnDblhZt/9tMnHvvTE4/9KScn54UXXpo9e85OF5eWblm6dNkvb7lp6isvPPLwH16dNfWcsz9XXV1z4Zf/Z/Pm0h2vvPue+0II117zw7/8+eHrf/KjyU89/uPrrgkh/OrXtyeTydg3BQAAOxGgAQBIg08ccfhfH//LF75wXqtWrd58660fXv2jww4/+oYbb66qqmq6pvigg0IIS5e+HkJYsnRZdXXNuE8fG0KYN39BCGHLli3vvfd+7169WrRokbp+7bp1J5xw/A+v+n7XrgekVvLy8k4/fWJqr3RDQ0PTO1dVVb22cFFeXt7ZZ52RkZERQsjMzDjv3LMzMzNmzJzV2PjvT1j+L1VVVXXo0OHkk0741uV/3+/cv3+/MaNHhRBmv/rqB1/yPxd/6dPHfir1ODs7+8or/nfo0CGbN5fOmv0PF6fOku7Zs0fTyoRTT/7+ld+98IsXVFZWxrwnAAD4EAI0AADp0alTx29/8xvTprxw8003jBk9qqy8/M677jn/gi+lDkTeaQf0/PkLQggnnXRChw5FqVM7UmE6dU3KKSefeNON159y8okhhJqa7Vu2bNmyZcsBXboUFhbW19evW7e+6cotW7Y0NDQUFhbk5+c3LRYWFubn51dUVGzfXhv73vPz8392409u+OmPW7ZskUwmt23blpp2xIiSEELT8c07mjjxMzutnPaZU0MIixcv2XExlbC//Z3v/fXJp9euW5dMJhOJxNlnnfmFCz7fVOoBAGC38SWEAACkU7NmzcYfP2788eNmzpp96Ve/MXfe/Kuvue6n118XQujTp09+fv7SZctCCHPnzk8kEsXFB40YXvLU089s27YttV5SfNCO77Z4ydI777xn1uzZqY3AO6qpqWl63Llz54KClu+99/6UqdOOOPyw1OIzzz5XXl5RXDwsLy93N9x4Tc32Bx96+KGHH1m1anVtbe1OT+10cUFBy8KCgp0Wux5wQAhhyZKlOy5e/5Nrv3H5d6ZOm/71y76ZeuGQIYOPPurIM884PXWACQAA7E4CNAAAu1VDQ2NlZWVGRmKnDbmjRx18043Xn3fBhdOmz0ytZGZmDB0yeNbsVysqKubOm9+nd+/CgoLhw0uefGry/PmvpXZGF+8QoF99dc65532xrq5uzOhR/fr1bXr/e+/77Y4ne4QQEonEpZf8z7U/+snl3/zf8cePGzN61JSp05586ulEInHOWZ/bPR/CJV/9+ksvvdK2bZsTTzi+qKh9RkZmCGHJ0qUvvvjyB69PPbvzYmZGCGGnA0MKCwvvvuu2rVu3Pvf8C8//7YU5c+ZOmzZj2rQZf/nLYw9Our9Zs2YxbwsAAHYmQAMAsFuVl5cdPPqwzMzMhQtezc7O3vGpgw8ekZWVtWHDho2bNrVv1y51wsbMWbOfe/6FDRs2HH30J0IIw0uKU2c6L1m6rLCwsEeP7k0vv/FnP6+rqzv3nLOu+N53mhbLysp/fevtHxyjoKAghLB169YHfj/pgd9PSh2sfO01V40ff1zkDyCEEGbOnPXSS680a9bsicf/nLrTlOt+/NMPvX7r1q2VlZXNmzffcXHt2nUhhEGDBn7w+latWp32mVNP+8ypyWRy/oLXzj7n/EWLl8yYOatpuzcAAOwe/hYeAAC7VatWrQYM6F9fX//yK1N2emrLlq319fVFRUVNTTb1PYSpQDxieEkIoV+/fs2bN586ddrKlauKDxqWSCSaXv76G2+GEE484fgd3/OVV6Ykk8mdftHy5e9c+f0f9uvb54XnJ991x63f++63H7j/vnlzZk48bUK0+/4Hb7z5Zuq85h3rc319/bRpM/7ZSx5//MkPrPw1hDBo4ICmlTlz5p5/wZe+890rm245kUiUFB+U+kzmzZsf4VYAAOBfsQMaAIDd7RNHHLZ06bKrr7nugAMO6N+vb2qxsrLyiiuvCiEccfjYpisPOmhoCGHhwkUhhOHDS1LnchQXD5s6dfpO52+EEHr3OnDhosXP/+2FoUOHpFbefnv5lT+4+oMDPPD7Sdu3b//sZ0/r2vWArl0PiHy7H+LAA3uGEGa/OqesrLygoGVq8QdXXfPmW2/9s5fc/Itf9u594MiRI0IIyWTy9jvunjFzVosWLVIrKT169Jg6bXoymRw2ZMgZZ0xMLW7fvn3a9BkhhIOGDftnbw4AAJEI0AAA7G6XfOXi1WvWPvHEk6dO+OzoUQf36NG9tLR0xsxZpaVbhgwe9PWvX9p0ZevWrbt377Zy5aqOHTt06dw5tThieMn/D9D/UFRPOeWkhYsW337H3dOmzSgpKV6ydNm8efNHjhgeQpg5a/aOV/br2yeEcM21P/7lr25LreTl5XboUDRyxIgzz5jYpUuX/+bubvjZzXfcefcH14uKiu69547U44NHjjjggC5r1qw9+pPjDjvs0JxmzaZMnbZp0+av/M9Fv/r1bR987ciRI+rq6s465/xBAwd07Nhx2euvr1mzNisr69e/+nnHjh2aLmvXru3XLv3Kzb/45fevuvrOu+8ZO/bQrVu2Tps+vby8on//foccMvq/uS8AAPgYBGgAAHa3rKysn93wk+7duj377PPTps+YMnVaCKFDh6KJp0244nv/m5eXu+PFxQcNW7lyVero55SmrdDD/v9O55SzPnfG9u3bb7/j7oWLFi9ctLhFixaf+uQxP77u6ut+/NOdAvRJJ5340xtvqqqq7t+vbyKRSCaTZeXlb7+9fP781/4w6aHf33/fwB3OtfhPrV//3vr1731wvaLy71+EmJ+fP+n3v7v0a5ctXLjoiSeeDCH06dP7e9/9dklx8YcG6D69e1329Usv/eo3Zr86Z9HiJZmZGcOGDf3CBZ8/ZMzOTfnii7/Urn27W2+7c82atQ8++HAIoXnz5hMmnPKDK7+Xk5PzsW8KAAA+nkRpfdVHuAwAAKKorKx8/Y03ux7QpaioaFe956pVq8vKywf075+Z+eFfeXLlD65+8MGHr77q+03nVKSOqrjs8m8/++zzxxx91G233rKrhvnXqqurX3/9zW7durZt2+ajXV/zxhtvHHjggU0Hd3yoxsbG99/fsHbt2rZt23bv3i0jw1e/AACQHgI0AAD7nZGjxm7dunX+3JktWrTYcX3JkqUnnzqxZ88ez07+a/qmAwCAfYetEAAA7Hdat2oVQliydNlO64sWLQ4hDBk8OE1zAQDAvsYZ0AAA7HeOO+7Tv7719i9fdMn448cNGTL4wJ49li57/dVX5z73/N8yMzNPPvmEdA8IAAD7CEdwAACw30kmkz+5/sY/THqwpmb7justW7b45S9uPvTQMekbDQAA9ikCNAAA+6ltZWVTXpm6/r33tm7d1qNH9/79+/Xp3Ts3NyfdcwEAwL5DgAYAAAAAIApfQggAAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEkZXuAQDYFzU0htqGUN+YbGxM9ygAAPwbiYyMkJURmmWGTNvUANjFBGgAdrXqukR9Y25ubnZedmZmZrqnAQDg32hoaKirq6upqklmZYS87HSPA8A+JVFaX5XuGQDYh1TWZmdmtWjePN1zAADwH6uorKxrqA/Nm6V7EAD2Hf5yDQC7TnWd+gwAsPdq0bx5dmZWqK5L9yAA7DsEaAB2kYbGRH2j+gwAsFdr0bx5or4xNPgmDwB2DQEagF2ktiE3NzfdQwAA8N/Kzc0NtQ3pngKAfYQADcAuUt+Yne0rawAA9nrZ2dmh3g5oAHYNARqAXSPZ2JiZmZnuKQAA+G9lZmYmGwVoAHYNARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAAAAAgCgEaAAAAAAAohCgAQAAAACIQoAGAAAAACAKARoAIG3q6upuueWWsrKyHRdvv/329evXp28oAACAXUaABgBIm2QyuWbNmoaGhh0X161bt3379vQNBQAAsMsI0AAAAAAARJGV7gEAAPhwpaWljzzyyNq1azt06DBmzJji4uLU+owZM+bMmbN58+Zu3bp98pOf7Nq1awhh0qRJQ4cOXbZs2ZIlSy6//PLHH3986NChr7322ptvvtmyZctjjjlm2LBhqZfPnDlz6tSp5eXlnTp1Ov7447t27drY2HjTTTeNGzfu2Wef3bx5c69evSZOnDhlypR58+YlEomRI0cec8wxqdcuX778xRdfXLNmTfv27UePHj18+PD0fTwAAMBewA5oAIA91GOPPVZUVHTFFVccd9xxjz76aOqo6OnTp8+cOXPixInf+c53Bg4cePfdd5eWlqZq9aOPPtq+ffvzzz8/Ly+vtLT0L3/5S3Fx8Xe+851Ro0ZNmjQpddmSJUueeuqpiRMnXnnllYMHD7777rsbGhqSyeSGDRuee+65c88999JLLy0rK7vxxhvLysq+9rWvnXbaaa+88sqSJUtCCKtXr540adLYsWOvuOKKY4455umnn160aFG6PyQAAGCPJkADAOyhksnkxo0bS0tLe/ToccUVV7Ro0SK1/fmYY44pKChIJpPDhg3r0KHD4sWLU9cPGDDgiCOO6Nq1a0ZGRghh8ODBAwYMyM3NPfTQQ1u0aLFq1aoQQqdOnS655JLOnTuXl5cPGDCgtrZ23bp1qZcfc8wxbdq0KSoqGj58eFVV1Yknnpifn9+7d+8+ffqsWLEihDBv3rzBgwd37969rq6uW7duJSUlc+fOTesnBAAA7OkcwQEAkDYZGRkZGRn19fVNK8lksr6+Pjs7O4QwceLEZ5999p577qmvry8pKTn22GNDCO+///6f//znwsLCppfU1tamHnTs2HHHN+/QoUPqQSKRaN++fUVFRerxn/70p23bthUWFiYSiRBCdXV16rL27dunHrRr165ly5a5ublNP27bti2EsH79+nfeeefdd99t+hWtWrWK9tkAAAD7AgEaACBtsrKyOnXqtG7duqb4u2nTpkQi0bFjx8bGxurq6pNPPjkjI2PTpk133313+/btR40a1b59+5NOOqlv376p6xsaGlIdOZWzd3zzpvUdPffcc61atfryl78cQqipqbnqqquantrx5R/62qKiou7du48bNy71Y2Nj4674DAAAgH2ZIzgAANJp6NChkydP3rBhQwihsrLy0UcfHThwYGZmZiKRuOuuu6ZOnRpCaN26dX5+fkNDQwihuLh48uTJlZWVIYQVK1ZcddVVmzdv/ui/rq6urq6uLplMNjY2PvHEEx8amv/FqK+++uqaNWtCCGVlZTfccMO8efM+1k0DAAD7CzugAQDS6cgjj6yvr7/11lsbGxsbGxuHDBnymc98JrUH+ayzzpo0adJLL73U2NjYvXv3kpKSEMLRRx9dU1Nzww03ZGVlNTY2fvazn23aPf1RfOpTn7rvvvuuueaaxsbGkSNH7nRqx7/Wu3fv8ePH/+53v0smk1VVVYcffvjw4cM/1k0DAAD7i0RpfVW6ZwBgX5DcVt2mTZt0TwF7sW3btrVs2XKnYzRCCBUVFVlZWU0nMqc0NjaWl5fveBL0f6SsrCw7OzsvL2/XjgrAPqO0tDRR+DH/MwEAOxKgAdg1BGgAgH2GAA3ArmLfCgAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBRZ6R4AAGD/VV1dne4RYL+Ql5eX7hEAAPZTdkADAAAAABCFHdAAAGljVyYAALBvswMaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgDgo6qtra2trU33FAAAwF4jK90DAADs12677ba6uroQQk5OTpcuXQ4++OCioqJ0D/VPPfbYY7m5uSeccEK6BwEAAPYOdkADAKTT2rVrx44de9pppx155JG1tbW33Xbb5s2b0z0UAADAriFAAwCkWdu2bTt16tS3b99TTz21efPmS5cuTfdEAAAAu4YjOAAA9iDt2rUrKysLIaxYseKpp556//3327RpM3bs2BEjRqSOYH7ssceWLVuWn58/ZMiQY4899kMXV6xY8dxzz1144YUhhPXr1z/wwAPHHXfcoEGDQgiPPPJIjx49RowYsXLlyr/97W+rVq1q06ZNSUnJ2LFjQwiNjY033XTT6aefPnny5Jqamq985Svbtm178skn33nnnezs7OHDhyeTyXR/QgAAwN5EgAYA2CM0NDQsX778zTffPPTQQysqKu68885TTjmlpKRk1apV9957b1FRUbdu3WbMmPHee+9dfvnltbW1d911V9euXQcOHPjBxT59+rz77rubN29u27bt4sWLq6urFyxYMGjQoIaGhgULFowdO3bt2rX33nvv+PHjzzrrrA0bNtx///0NDQ1HHHFEMpncsGHDn/70p8MOO6xLly41NTV33nlnz549L7nkkmQy+cwzzyxcuHD06NHp/qgAAIC9hgANAJBmv/nNbzIzM2tra1u3bj1hwoQ+ffpUVVVddNFFXbt2LSsra9WqVefOnd95551u3bqFECoqKtatW9ezZ8/LLrusaT/yTotZWVl9+vR54403DjnkkKVLl06YMOGPf/xjQ0PDihUrmjdv3rFjxyeeeGLgwIEjR44MIRxwwAEnnnji448/fsQRR6Te7YgjjjjooINCCIsWLaqvr58wYUIikQghnHbaaW+99VZaPyoAAGAvI0ADAKTZmWee2bVr1+zs7MzMzNRKdnb27Nmz77///tatW2dmZm7cuLG6ujqEcNhhh9XX1z/++ONbtmzp27fv+PHjW7du/aGLAwYMWLZs2aBBg7Zu3TpgwICOHTsuX7787bffHjBgQOqbDwcOHNg0QKdOnbZs2VJdXd2sWbMQQseOHVPr69ev79SpU6o+hxAyMjI6d+6cjk8IAADYW/kSQgCANGvWrFlubm5TfQ4hLFy4cMWKFd/61rcuvvjiL33pS23atEmtb926dezYsZdddtl3v/vdhoaGp59++p8tDhw4cPny5QsXLuzfv39GRsbAgQMXL178xhtvpLpzUVHRxo0bm37dhg0bCgoK8vLyUj82TbLTZakrd8tHAgAA7CMEaACAPU5dXV1DQ0NDQ0MIYc6cOevWrUutP/PMMw899FBDQ0NeXl6rVq1SF3zoYkFBQVFR0TPPPJP67sFBgwbNmTOntLS0V69eIYRhw4a99tprb7/9dgihrKzs6aefLikp+eAYffr02b59+3PPPVdfX19fXz958uStW7fu9g8DAADYizmCAwBgj1NSUrJkyZIf/ehHOTk5HTp0GDFiRGp9/PjxkyZN+uEPf5iTk5OTk3POOef8s8XUJuj33nuvb9++IYS2bdu2bdu2qKgotbu5V69eqYOh6+rqGhsbS0pKxo0b98ExmjdvfsEFFzz88MMvv/xyMpkcOHDgqFGjdu8nAQAA7N0SpfVV6Z4BgH1Bclt10ykBwC5RU1NTW1tbUFCw0/r27dtra2tbtmz5bxf/rbKyspYtWzad8vzPVFVVZWRk5Obm/kdvDsDeq7S0NFGYl+4pANgXCNAA7BoCNADAPkOABmBXcQY0AAAAAABRCNAAAAAAAEQhQAMAAAAAEIUADQAAAABAFAI0AAAAAABRCNAAAAAAAEQhQAMAAAAAEIUADQAAAABAFAI0AAAAAABRCNAAAAAAAEQhQAMAAAAAEIUADQAAAABAFFnpHgAAYP9VWlqa7hFgv9CmTZt0jwAAsJ8SoAEA0kYUAwAA9m2O4AAAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAAAsPld8AAAgAElEQVSAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKLLSPQAAwH7tze0b79syc3rlu8mQTPcssE9JhMQhzXuc13p035z26Z4FAGD/lSitr0r3DADsC5Lbqtu0aZPuKWAv8+b2jV9c86D0DPEkQuKuA07XoOE/VVpamijMS/cUAOwLHMEBAJA2922ZqT5DVMmQvG/LzHRPAQCw/xKgAQDSZnrlu+keAfZ9/qABAKSRAA0AkDa2P8Nu4A8aAEAaCdAAAAAAAEQhQAMAAAAAEIUADQAAAABAFAI0AAAAAABRCNAAAAAAAEQhQAMAAAAAEIUADQAAAABAFAI0AAAAAABRCNAAAAAAAEQhQAMAAAAAEIUADQAAAABAFAI0AAAAAABRCNAAAAAAAEQhQAMAwH+rsaq2fNryZENjugcBAIA9iwANAMD+qHzWiqXH/qKxpm6XvNu2F99YffVfq5eu3yXvBgAA+4ysdA8AAAB7vcIj+2W2yssb2CndgwAAwJ5FgAYAgP9WRn6zgkN7p3sKAADY4wjQAADwD5Lb6zf8dkbl/FV1myryB3VuPX5oixHdU081VtW+d9vLlQtWJ+sb60srs9o2zyrM63zZJ5PJ5Pqbn+9+/YTMgtzyGe9snbyk6LxD3r9rSvXr72V3LGh7SnHhMQPSfVsAAJAGzoAGAIC/S26vX/WDxytefbf9uWO6/+TUnJ7tVv/gifIZ76SeXX31k7VrtnT55rFdv398ZmFe/ebKzt88tlm3No01dTXvbEp9CWFDeU3lwjVrr5/c6tODul13cl7fDmtvfK5ywep03xkAAKSBHdAAAPB35bNWVC1a1+eB87Na54cQcnu1b6yu3XDP1JZjDmysqq1csLrbtSflD+0SQuj6g/HvXvbHrILcjJyd/6e6saq26IKxqX3TeX07lE1bXjFnZfODuqbpngAAIG3sgAYAgL+rWrQ2t3f7VH1OaTGix/bVW+q3VmXkZWe2zNm+cnNqffvK0kROVmZh3oe8SyKRP6RL0+Pmww6oXb1l98wPAAB7FDugAQDg7xq31yeyM3dcSf2YrG8MiUS700e+f+eUynmrElmZFfNXdTjvkJ0u/r+XNMvccVt0IjuzsaZut4wPAAB7FgEaAAD+Ln9w57KX3misrsvIy06tVC5Y3axTYXa7FvVbq7Y+uzRvQKeWYw4MIRR9fkxOz3bpnhcAAPZojuAAAGD/1VCxvaG8pumfZENjy0N6ZRe1XP2Dx7ev3tJYXbt18pLND89p+9kRIYSKWSu2v7s5kZGoe7882ZhsrKlL1jWk+w4AAGCPZgc0AAD7r7c+d8+OP3a//tTmB3Xtfv2EtTc8+85Fv0/WNzTrWNjx4k+0Hjc4hFBweN8Nv5lRtWRdbq/25dPfef+uKdlFBd1/ckp2+5bpuwMAANijJUrrq9I9AwD7guS26jZt2qR7CtjLHL78lnSPwD+V3F7fUF6T1a5F08qmP8ze9uIbve44K2QkQgiNVbVvnXtf21OK2515cFon5d97pdel6R4B9jKlpaWJD/2SVQD4D9kBDQAAHyKRk5WV02LHlcba+hBCSCRSP2bkZmfkNfvQLyEEAABSBGgAAPhICo/qv+Wvi9697OEWow8MiVA+fXkiM6PwqP7pngsAAPZcAjQAAHwkOd3a9Lrr7K2TF29fVZrISBQe1b/wE/0yC3LTPRcAAOy5BGgAAPioslrntzvDic8AAPBRZaR7AAAAAAAA9k0CNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAAAAAABEIUADAAAAABCFAA0AAAAAQBQCNAAAAAAAUQjQAABpkwiJdI8A+z5/0AAA0kiABgBIm0Oa90j3CLDv8wcNACCNBGgAgLQ5r/VoezMhqkRInNd6dLqnAADYfwnQAABp0zen/V0HnH5o854yNOxyiZA4tHnPuw44vW9O+3TPAgCw/0qU1lelewYA9gXJbdVt2rRJ9xQAAOwCpaWlicK8dE8BwL7ADmgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAoBGgAAAAAAKIQoAEAAAAAiEKABgAAAAAgCgEaAAAAAIAostI9AAD7jtLS0nSPAAAAAOxB7IAGAAAAACAKO6AB2GX6Hjwy3SMAALALvDn71XSPAMA+wg5oAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIAoBGgAAAACAKARoAAAAAACiEKABAAAAAIhCgAYAAAAAIIqsdA8AAP+B0SNHHj7mkBDCLXfeUVNTk+5xdoFBAwZcd8WVtXW1p33+8+meBfhICgsKvvT585p+XL12zZwFC95avjytQ+0aH+PfSMVDh5746XFDBw3Kzs6aNmv29b/4eeQZP9wpxx9/3uc+F0JYuXrNHx55ZMars3d89qF778vLzamtrZs2a9Zdv/ttRWVlWoYEANg/CdAA7E0u/eKFnzrqqBDCgsWLnn3hhXSPEwYNGNCqoGD23Ll19fUf7x0KWxYcOmpUbV3drh4NiKWwoOBbl1660+LsefPO+MIF28rK0jTUrvGf/hupXdu2T/xhUm5uburHzaVbYk73r3Tu1PmQg0eFEA45eNQpxx/fd+TIquqqpmfHjByRn5cfQvjE2LHZ2dk/veUX6ZoTAGA/JEADsNdolp39icMOSz0+9sij9oQAfe8tv+zVs2ffEcNLt25N9yzA7nbrPXdXVFaNHjHisDFjDi4p+eYll17xo2vTPdRu1a9379zc3PqGhosv/8b7GzZsLi1N1ySPPvnXBYsWZmdnP/Kb3+bm5vbo1nXpG280PTvx/PMzMzIuOPvsEz89bmC/fukaEgBg/yRAA7DXOPzQQ5tlZ6ceH3v0Ud+48h+ezcjIOHLs2AH9+r21/J3nX36poaFhx2eb5+d/6qijOhV1mLNg/ux583Z655HFxSNLhq9Y+e7zL73UtJe5X+/e7dq2ff3NN3Nzcz911FEbNm58Zfr08oqKEEJubu7wYcNaNG/Rs3v3EMLBw0eUV5SHEF5bvLjpb3ZnZmYedfjhfXv1njN/3qy5c3catWTosJHFxfMXLfzot9+rZ8+ORUUbNm1K/U3/Zs2ajSwuDiG8On9+bW1t6m0PGzNm8ICB7214/6WpU3cqQf9snt4HHtihffuamu3zFr6WkZExaviIEcUH5ebk/OKOO/Jycwf1779l69a333ln7Ogx/fv2nT137pwF83d824KWLY8+4ogunTqtXL36hVdeqayqCiEMH3ZQbm7OwiVLThp33LTZs1asXDl6xIj/x959hlVxtA0cn3MORUClFxFERVRERKwRe8feu4i9t1ijxq6xd2ONDVSMLdaIvYFKUVRUlCpiBaUJKNLeDxvPSywHovIQzP93+WF3Znfm3t3DcHE7Z7acjc2BI0dyc3+kqeW1a9R4m5rq7eMTFhGR+7v0yXiUIT2Pjg6LiNDW0q7n5FTRtnzMq1c7PDxyE09Z6zIrFyworKPz49Sp12/dzH08+L6t/e236JgYIcSk0aMnjR7T8P3/kKn4KEpUfMK1tbQb1q1jXarU/ZCQC15e0k93eRsbQwODx0+fRkZFVXFw0CpUKCIy8unz5zWrVlVTU7t7/358QoIQwsbaunG9ei9iYk6fP6/8WTM2MiprbZ2VJfxvBrx7965CuXK1a9bU19P74/hxaTD5shHJUF+/fNmyNapUFUIkJye/iI7++Jgvi0c1mUzWuH5927JlX0THePtce/LsmVT+5NmzJ8+eqav99deN+vtfFpJrfn7S9Gfp/zJzf5nS3Q4JD5cetBT827epynHgk89L6XMDS44jkrmZWT0nJwN9gxu3b0nBZ8eIBAAAChYS0ACAAqN5w0ZCiDMXLzauV8/MxNTO1vZuUJBUZVm8+M6Nm+zKl5d27z140GPgAGVion7t2ptXrTbQ05N2/zh2bPiE8VKiuWiRIlvXrJWyEkKIiMjIzn1dI6OihBATRo3u0KrVNT+/mtWqyWQyIUTi69dteva4GxRUzNT08K7dysB2btwobTTt2CHg9m0peb1r0+aSJUpI5WcuXOg7coS0aLWGhsberdvq/PCDVPXsxQshRFZmZo6XP6xf/749e3ocODBq8iQp+yPFUKlO7afPnxsZGh7etbtcmTLSwampqSMnT/rj2DFpV0U8IwcN6t2lqxAiNDw8OCysZdOm0jGbduyoZGd30M098nGUhrpGMVNTqXzRqpVL1qyRtivb2+/auMnUxETaffLsWQeX3uEPH25YvryUldXz6BdmJqaZmZnHT51q4+wshHDp2q1pxw5ZWVkq4lEoFJtWrmzXoqXywjft2DF17pzcfEI+F48QYuOKFVJ3h/48XqWSQwkLCyHE3aAgKd2jIh5Jv169alSpIoQYPnDAgFGjchMM/lMePoqSxhNpV8VHUfUnvEaVKrs2bdZ/P1g9e/Gig0vv0PDwru07jB4yZO+hP0ZOmnRk1+5ChQptdnObs2Tx8d/3CiGqNmiQnJy8dO68Xl26SCfGxccPGz/uzMWLQoiGdequW7pUGsH+OHbMtUcP6Zi79++HhIV98Yj0Q/XqO9atl7Z1ixaVhqNjJ0/2HTFcCKGupvZl8ajuVE9Xd8+WLdUqO0q7b9++HTR2zIkzZ3LxiL7Qr4uX2Fhbj5w0cc/Bg9Jvkw3LlkdERlZv3EjF85J2VQwsqkekYf36z/zpJzWFQjrxmr9/1379sq8owogEAAAKFnl+BwAAQG45N2kihPjj2FH/mzeFEC0aN5bKdYsWPbRrl1358qmpqbfu3HmXllahXLmta9dKtY6VKu3ZstVATy8uPv7egwdZWVkdWree8uM4KRP0+9ZtDerUSXz92v33PcFhoaWsrA7t3PVXFikrS0qyZGRm3g8JkbJLOzds1FBXf/v2rbePj3Lemc/1694+Pt4+PtIUv+LFih3/fW/JEiUiIiO37dr18tWrJg0abFm9Wjp4eP8BUq7nefSLV3FxysRujqQk+Me70sZgV9dyZcq8io3d7Obmc/26pqbm0jlz5XJ5jvGERURc8fXJzMwsU7q0MvucnZWFZTFT0/CHD9MzMoQQ40eOMjczkyaV/75lq6mJyVU/3x0eHm/fvi1erNj8aT8rT4yOeXkn6J5cLm/eqJGUu6lsb29laak6njo//NCuRcuMjIzd+/cf8TyRlZU12NW1om2FHO+P6nhu3Lp1++5dIUT7lq2kXI+S6ngkx056pqampmdkKHP6gJR/rF2zZoM6dQa49BZCBN69m+NHUfUnfMakyfp6evdDQjZu3/7w0aNipqYzJk4SQkjfPLAtW862XDlpwWXHSva2ZcsKIV7FxUU+jlqzaHGvLl2ysrIehIbGxsfr6+nt2rT5h+rVhRAxL196+/jExccXLVJEme1V+uIR6VVs7BVfn6DgYCFEWnr6FV8f5a4Q4ovjUe3XJUuqVXYMDQ/ftGPHi+joQoUK/bpk6T+a0fxPfTjwCpk0Z1za/dzzynFgUTEiaWhozJ4yRU2huOjtvW3XroTExB+qVXPp1jX7MYxIAACgYGEGNACgYLArX17KjJy5eNHK0rK6o2Ozho2Wrl0rhOjZqbOVhWXMy5d1Wji/iosrYWHhe/ZcVYfKle3tbwYGjh8xQl1N7dzlSz0GDszIyOjSrv36Zcv6dO++YMXyek5O1R0d09LTx/88LfrlywNHj/66ZKll8eJd23f4zd1NyGTSjLYGbVq/io2t88MPh3busixevG6tWmcvXWrXq2fpkiV9z5wVQvQZOuRV3P+/emtAbxc9Xd0nz56Nn/5zRkbG5atXN69a1bxRY9uyZYOCgwe4uAgh1m3dMmvhQoVcvmze/J6dO3/9/THUNxBCBAUHb9i29cnTp+NGjBRCFClcOCExUXU8azZtWrNp09WTp2ysrcMiIoZNGH/j1q0PGh8z5add+/ZZWVh6nTihpaVV2d7+6fPn9hUq3A8JSU5O7jl4kBDiip/vxuUrKtvbK89auGqlpXnxRbNm3b53d+Skia2bNy+so2Oob9CqWTMV8Rjo6wsh4hMTt+7aGXjvXo+OncyLFcvNHVAdz+Afx5oYG9+7ek0IcfLc2cmzZj1++jQ3z0s6xtvHp0KtHzQ1NaWv4QOS7b+uU24np6TMXrwox4+i6k+4kYGBEOLcpYsr1q/f7Laja/sOia8ThRA+/v5CiHI2NlUdHKQjHSra25W3FUL4B9wob2PTuV07IUSPgQPOXLwol8u3rF7Txtl56o8/tu3Z87zX5fNel5fOmdu3Z8/0jIwBo0aePHs2/f0iRV88Il3z92/bs2eLJk3cN2xMTExs27Onsupr4lGhsI5OYZ3C3j4+oydPjnwctXrjxjtXrhQtUqRkCavgsNBcP7Rv6XPPK8eBRcWIpKerKyW4d+79/cTZs0dPev5QrXrUkyfZ+2VEAgAABQsJaABAwdC0QUPpm+zlbWwSEhOlpTmNDA1fvnpVqaKd9NVvKQv86PFjs3JllSdWsqsohNi9b7+0KvS+w4f2HT4kVdlXsJO+Kr551d+mu9rZllduHzlxQlpM2evatcdPn1qYm1v+fbbax+ztKkjT3w66uWcvr2hb4Xl0tJRG99i/PzMzMzMzc9/hQz07d5bJv/Y7SW6/7+navn2dH364fv7Ci+jo4LCwfYcPSTdKRTzKBKtkh4fHx9nnjIwMjwMHhBCRj6NCIyLsK1QoZmompZ8Wrlw5ZsiQEP/rym+gGxsZKecMZmZmZmZlCiEyMjKlXalKdTznLl0Ki4iwLlXqzB+HklNSbt+9E3D79oOQYJETFfF8YNGqVcpcT+7vj3QzgY89efYs4PbtVRs3PAgNzfGjqPoTvn7b1mVz5w0fMHD4gIFBwcFPnj1bse5XaZpz1JMnlsWLd2rTVjpSXU2tU5s2Qgj/gJvSUPbw0SNpjYvMzMxtu3e1cXZ2qGj/QahnLpw/fuqUcldfTy8vRqQvjke1pOTk0ZMnTxw9+tCuXRbm5sq5yUaGhvmVgP7c8/pHA+8HI1J0TMwRzxNtnVtsXrU6PSPj1p3Ah5GP3Pbs+aBrRiQAAFCAkIAGABQMzRo1kv6Yz774crOGDXfv35+VlSWEyBJZnzxRqv0kKT2akJh45/1a0pKHjx4pt+XZEjFSU5k5rY4q5VsfPX78wZy12LhYZTDK1ImK8D6MNjNTCKFQ/BWP9DV8ZQu37txp2a3rhJGjipmaVra3NzUxqVur1q07d+7ev68ing8uMy4h/uN+36amKi9ZSuLL5TIhhJWl5f7t2zU1NZ9Hv/D28THQ15cWBMiR6ngSEhOdu3SePmGijXXpyhXta1WvUat6jafPn2/Ytk11sznGo7zn0uvachkP8DFpHQYhRIVaP3w8BVX1R1H1J3yHh0dcXLxL927mZsVsy5a1LVvW0d7evrbTu7S067duWhYvXrtmTSHEZje3QX36SEtnXL9108zEVFq64f8jlMmEEPJsy0dIP+PxCX/LWn7NiKTq/shkXxaPaupqanu3bbMuVep1UpL0Qr8fqlX7+mhVk35NKN4vxywNvMohUcXzynFg+dyIJIQYNGbM3aFB9ZxqlytTpqpD5aoOlbW0tPoMG5rXFwsAAJBHWAMaAFAAGOjpVatcWQjhvvf3xatXL169+k7QPSFEs4aNhBB37z8QQrRp7myory+tWfz8QfDL0LCGdeoKIe7dvy+E6NW1i7qamhCiS7v2L0PDngbdL6yjI1XJZDLX4cPa9erZrlfPJ8+eSslcZdetmjXT0dYWQlR1qGxZvLgQIjj0r6l2aWlp0sYHswWDHjwQQjyPjpbalF7JJYS4GRiYkJgYFx8vhGjfqpVU2Klt21y+8ivm1SshRLkyNsrAstduW/vrvGk//+bu1qxTxyoN6kuTwR3tK6mO5yueiejYuo2mpub9kJCKTk7tevX88/TpXJ6oOp7xI0Zs/3VdaHh4mx49ytescfnqVSFEJTu7/IpHUta6zLqlS7esWVPl/QIIwOeo/iiq+IRL/8E2wMVl8NixtZ2bdx84QAhhaGAgrdFxPeCvRecfPX585sJ5ZYMBt2/fvntHCGFuZla/dm0pt9uvZy8hREDgbdWhfs2IpMIXx6OaY6VK1qVKCSGqNqjfunu3JWtW5+Kkr/Xyr4G3jHQhLZs0UVapfl5fPPA2b9T4oJu7dalS7Xr1rFDrh9UbNwohHCpWzH4MIxIAAChYmAENACgAmjZsKJfL36WlTZ45811amhDiRUz0srnzGterp6Guvnv/vrFDhxobGV09fSbowYOKtrZqCsXjp08vXb0ihFizeXPThg0b1ql79dTp5y9eVK9SRQjxx7FjScnJ57287gYF2dna7t++49T5cxXKlW/dvHnk46hr/v7i/UsIzc3MLh3/8/HTp/YVKkjv6fILCJCievr8eWpqqqam5vE9vz+PjhZCSCuT/ubuNqhPnxpVqmxdu/Z+cHDLpk0r2lb449gxKSl81NOzT/fu44aPqF3zB3U1tdynD/xu3JDSEKcP/pGamiq9zkspLS2tds2apaysdu/fb6ivb6CnJ4QIe/hQCKE6nsWzZ5crYyO9V3D04CHdO3aKevJk5KSJOcYjTZe2KV16ztSpae/ShvXvn8sLUR1PzKtXtWvWrO7oaF6sWMqbFOm2Z5+T/gXxqKup7d/hpv7+TWWbVq5MTX134sxpac6p6ngkA1x6d23fQfrviv4jR+bySvHfpPpHQ8Un/MmzZ6VLlixmarp782/nL1+S/gPpdVKStAqQ8q2nN+8EKkehB6Ghr5OS7oeEnDp3rlmjRh6/bfG7ccPczKyUlZUQYvWmTUIIl27dO7dta12qpBCiUd260pdIXIcPi09IyMrK+uIRSYUvjkd1s8rp0otmzwkJC+3dtVv22sljxtauWUM5rXj5vPnJKcnPnr8YMu5HKwvLNYsXCSFKWFgKIapVqXJk924hxPJ16y54eanu1PfGDacaNQf37VfZ3l5PV69CuXLKKtXPS8XAonpECnsYIc1zV8gVYQ8jmjdu/PEYyIgEAAAKFhLQAIACoGnDhtKLnt69n3R8+vx5IYSWlpZTzZoXvLyG/PjjjnXrDPT0pL/bX8XF9R0xXFov4oqvz4IVy6f8OK5kiRIlS5QQQtwJujdt3lxpQYnBP479w31nZXt76RVhT5496z148Nu3b7P3bmVpaWVpKa1AOmrS5Iz3L8vKyMhYtHrVjImTrEuVkubl6ehoS40MnzBh48qVbZ1btHVuIYS46uc7duoU6azFq1c71ahRpnTpmlWrCiH8AgKqOzrm5iac97rsefaMc+MmjpUqCSFu371rXaqUNDtbCDFjwYLK9valS5acMHKkEOJdWtqUObOv+vnmGE8lO7tqlf8KwMba2sbaOperqe7au7dpgwbNGzUe3n+AlB2rUslBlu0r9p+jOp5d+/Y1bdCwRZMmQ/v1k0rcf9+zYt06lU3mEI9MLpc+GBLpepUz2VXHIwm8e0/auH3nbm5uDr5vn1vwR6L6R0P1J3zExAk71q2v7ugoDQvPXrwYOHrU66QkaaZzWnq6uprajVu3El+/lpaE9n+fiR47bepBN/fyNjbKj/rStWvPXLgghChpaaksNDE2NjE2FkKoqf31V8AXj0iqfXE8KgSHhc5atHDW5J86tGolhIh5+TIyKkoanKU3HzrV+P8fc2nKcGRUlBBCW1sre5WBnp60u3Pvvhw73V5fyPkAACAASURBVLBtW4fWra0sLKVTrvr51qpeQ1mr4nmpGFhUj0ih4eFzliyeOm68NBtdeiiDxo7JHhUjEgAAKFhksekp+R0DAOB7kJXwpmyN6rk48EtUdahcqJBm1JMnjx4/VhbWrFpVTU3t4aNHT549E0JYFi/epV37zMzMe8EPLnh5vXv3LnsL1R0dG9atl5SUFBAYKKVllfR0dXt26qytrRUeGXnq3Lmk5GSpfPOq1R1atVq/besOD49mDRqqa6jv2rdP+jp2dhXKlVO+ZyzgdmDKm79+sZYuWbJj69bp6Rm3794973U5+8qq6mpqPbt0MTIwuObvf9XPr1b16pmZWR9E9UkymaxxvXrly5a9fvOW743rlSvaFyqk6RcQIF2sXC53qlGjUgW7p8+fX/D2+mA64efiqWRnV6Rw4exHprx5E3D7tnRn7MqXz8jMvObnl/3g8IcPn714IZVUtrd3ql4jMOjeFV/f6o6OCoXC28dHel73HjzQ1NC0LlUy8fXrwHv3fqhWTaFQ3L57V8rOqLg/0l2tXqWKTCY7f+ly5OOoHO+M0ifjkcvltap/+OF89uJF+MOHOd4fpWqVHdXUFL43buS4CDi+e5qamtKiQH43bij/V+wDn/woKmtVfMK1tbTr13ayLlXqbtB9b59r2duvVtlRU1PjfkjIq9hYO1tbvaJFI6OilO+v09DQ6NWli7GhkfSqQ/+bf+WmrSwtLczNPwjP9/r1tPR0afuLRyQhRIsmTdw3bHwVG1vuo/H/i+NRzbJ48WYNG72IiT5/+XIJCwsDff07QUEJiYnlbWwMDQw+OPjt29Trt25qa2k7Vvrw/YdCiOCwsJiXL3PssbCOTvPGjU0MjS54e4U9fFjd0VFqVqpV8bw+N7DkZkQqZmpa54daxoaGV/39bgYGMiIhXwT7+sl0tfI7CgDA94AENADg28jTBHS+UCagp8+fn9+xAMC/S7kyZYwMDXt37dqlXfsHoaG1nZvnd0QAvjES0ACAb4UlOAAAAAD8MxNGje7w/tWFOa6kDAAAgP8yEtAAAHzag5Bgbx+jiIeR+R0IAPzrBIeGXPH1EUKER0YuWrUyv8MBAADAvxdLcAAAvo3vbwkOAACA/yyW4AAAfCvy/A4AAAAAAAAAAPB9IgENAAAAAAAAAMgTJKABAAAAAAAAAHmCBDQAAAAAAAAAIE+QgAYAAAAAAAAA5AkS0AAAAAAAAACAPEECGgAAAAAAAACQJ0hAAwAAAAAAAADyBAloAAAAAAAAAECeIAENAAAAAAAAAMgTJKABAAAAAAAAAHmCBDQAAAAAAAAAIE+QgAYAAAAAAAAA5AkS0AAAAAAAAACAPEECGgAAAAAAAACQJ0hAAwAAAAAAAADyBAloAAAAAAAAAECeIAENAAAAAAAAAMgTJKABAAAAAAAAAHmCBDQAAAAAAAAAIE+QgAYAAAAAAAAA5AkS0AAAAAAAAACAPEECGgAAAAAAAACQJ0hAAwAAAAAAAADyBAloAAAAAAAAAECeIAENAAAAAAAAAMgTJKABAPg0E2PjKg4O36QpTU3Nek5OCoXim7QGAEKIC0ePFilcOL+jAAAAAHJAAhoAgE9rWKfOsrnzvklTxoaGB93ctbW0vklrAGBibGxX3lYmk+V3IAAAAEAOSEADAL4HHdu0mTpuXH5HAeC/QiaTTZ8w0euE563LXivmz9ctWlRZVcLCYuvatQ98/S4eOz56yBBluUKhmDlpst/Zc9fPX5g37WcjQ0OpvI2zs7fnyaMeHg4VKx7/fe+LB8HL581X3dRBN/erJ0/JZLJTBw56e57cuXFjjgGbGBuvXrgo0PvKxWPHJ4wcmb3KuXGTC0ePRgXeuXryVMumTaXCxvXq7d60WXnMQJc+c6dNU+5279jx9ME/Hvj6rVu6tJKdXY7XDgAAgP8yEtAAgO9BrWrVtbW08zsKAP8VbZo7t3F27j1kcKtuXS2KFx8+YKBUrqere9DN/VHU4+adO81auLB7x47KqoUzZjZr1GjU5EmDxo4pZ1Nm5qTJUvlFb+9+I0ZYmBffunbtRW+vNj26r9q4QXVTP06b2mfYUCHE0PHjXIcPmzp3bo4Bjx8xQltbq2HbNiMmTuzXs1c9Jyep3MrS0m39+jWbN1euV3e7x+6lc+bK5XIhRJHCRUpalVCebmRoaG5mJm13aNVqwYyZazdvbtuzx8vY2M0rV2moq6sOGAAAAP9lJKABAAXD5+YbtmrWzPfM2X69enXr0MHb86S358lGdetJVbpFi65dvCTomk+I//VNK1YWLVJEKh/s6jqkb9+Zkybf9vL23L+/S7v2yl6qOzoe3rU7PODm4V27S1hYKMvlcvm44SP8z52PvB14bM/v5cqUkcotzM29PU+eO3yknpPTxuUrHgUG+pw+I1UZGhhsW/trsP/1i8eON6pXL8cLVDHf8AvmWh7aucvrhOeQvn1HDBx07+q1l6FhpiYmX3TjAXxCfGKCrq5umVKl4uLjew8Zsn7rFqm8vlPtrKws972/y+XyyMdRHgcO9OjUSQihplB069hh1ORJ1/z9b9y6NWjMmBNnTkup3sTXr4PDQl/Fxl66cmXx6tW+N25ERkWpaEoIERkV9fDRIyFE+MOHoeHhjx4/zjnghMRipmYlLUvcD35Qs2mT6zdvSuWJr1/Xa9XywJEjGZmZ+48cUVdXr1m1muqmenTuvHzdr4dP/PkgNHTmggUzFy4sUqSI6oABAADwX6aW3wEAAJAr0nzDrv37paenr/jll+EDBi5YsVwIcenKlZ6DB00bNz45JWXlhvVCiGfPn0un/DJ9hmVxc+fOnXV0tNcsWty5bbutu3ZKU/mG9x+w+8D+XoMH1XOqvXbx4rMXL8TGx5ubme3e/NtRT89ZixbWc3IaP2JEWMRDqanuHTsO6du324D+0TExU8eNnzRmzIBRo4QQL6KjXYcPmzZu/OaVqzzPnu05aFB8QqJ0isfm31LevBkwamQxU7NJo0fneIEq5ht+7tql+YbHTp6cs3hxqRJW86f/nJ6esW7Lb0KIMVN+atuixcRRowPv3ZswY3p0zMvY2Ng8eCzAf9SlK1cWr1o1dthwtw0OwaEhsxctPu91WQhhZ1veQF9/x7r1yiMz0tOFECWtrLS1tO/evy8Vxick/Hn69Adt+gcEZN/9XFNfZu3mTXK5bM2iRZbFi3v7+v40e1ZEZKQUyZQff2xUt156enp6RoaOjk4xM1PVTVUsb7th6zZpOysry/PsmbwIGAAAAN8NEtAAgIJBOd/wqp9f7yFDtAoVkspfJyW9TkpKfP36dVJSaHh49lPWbNr4IiYmOSWlsLb2UU/Pti1aSAlo6awpc+ZkZGQE3rvXp1u3RvXr7z98uH7t2pmZmRNmTM/MzAy4fbuqQ2XL4sWl4y9fvdq4fbunz5/rFS26a9++vVu3FipU6O3bt2np6aHh4Y8eR1W0tR0z5Sdl1yUsLKo4ONRr1fLegwdCCH093fk/T//m1/7J+YZSAjoyKup+SIhu0aIjJk54+j4jD+BbKV6s2MFjR7fsdC+sozN22LC1ixdXrO2UlZUVEhYeHBbWoktn6TBtLW0trUJCiEePH79LSyttZRUUHCyE0NDQsCldOig4ODMzU9lmVlZW9i4+19SXMTUxWbp27fxly0xNTH5dvGTqj+MGjR0jhGjZtGnDOnXrt26VnJKiUCge3rwlHf8y9pWpsYlCocjIyBBCVK3s8DopSaoKjQgvXbLkucuXpN1yZco8efYsKTn52wYMAACA7wZLcAAACgblfMOQ6zdO7t/vaF8px1MM9A22rf3V7+y5Ix57+vfuXcz0/6f1XfHzlbIqQoiwiAiLYuZCiLLWZa76+SnzQV7XriqPT0tLn//z9JuXLh/x2LNi/nwtLa3s62AIIfwCbmTfLWttHRcfL2WfhRBe167lxbUr5xu6rd/gtn5Dtw4dM99flOTp8+dkn4G80Na5xR/u7ibGxilv3sS8fJn5Pnd88Yp3aSurfr16qaupFTM1Perh0a5FSyHEu3fvTp8/P//n6YYGBnq6uotnz548Zqw02shkMrlcLpPJlBuqm5I8e/EiOiamXctW+np6hXV0cgx41uTJC2fO1NbSjk9IiE9MUA50NqWtpX41NDSmT5ioqakplfv4+8vl8oEuLjra2h1atapby0nZ1LGTJ8cMHWpXvryGhkaf7t33bd8hpc5VBwwAAID/LBLQAICCQZpv2Lp7t7LVqp65eHHt4sXKNM0nyWSyBdOn/3H8mEPdOnVaOG/Z6Z69NjMz6+NTIh5FVra3V+5WqeSg3B49ZEjKm5Qq9evVaeE8ctKkj8/9+8xFEfHokb6enpWl5cdNfY5yvqG0W7Wyg/ICP3ft0nzDOi2cpX/NOnbs6Nrn71F94jIBfL0tu3beDw7xPuEZdiNg9OAhoyZPkn7comNiug8cMNClz8Nbty8cPeYXcGO7x27plOETxr99+zbQyzvQy9vMxHTq3DlS+S/TZ0QHhzhUrLhqwcLo4JB5036WylU0JYTIzMxctHrV2GFDQ/yvnzxwMMeAZy1aZGle/N61a2HXb5S0LPHL8uVSufvve2Lj4oL9r9+7ek1DQ+Pcpb/mNaelp89evGhov/7hATeH9u//y/JlyqY27dix79ChY3t+f3jrtkvXbqMmT0pOSckxYAAAAPxnsQQHAKBgaOvcolvHDl3793/56lX2+YaSm3cCe3fpWrJEibj4+JSUlLT0dIVcXqqklfSOr3Jlygzq0yc5OUV1F94+PgtnzBw9ZIjbnj11a9Vq0qBB1JMnUpWNdenY2DiZTKavpzdt/PjsZylnLMrl8qysLCkJFf7wYWRU1LRx4+cuXWJqbNKvV68cL1A533Dn3r3NGjasW8vpz9OnVF/7xSve86ZN69er187ffzcyNNy5cdOuffukZUbkcrlcJpc2pFzVP7zfAFR59+7d0PHjFAqFsaHR8+gX2asCbt+u7dzc0MAgPiEhI9uXEpJTUnoOHqStpS2Xy5KSk5XlU+bMnjJn9id7+VxTkh0eHjs8PLKXDB8wcM6UKdlLwiIiajZtIoQIDQ/v3NdVW0u7kKZGbHy88oBXcXHNOnU0MjR8nZSUmpqa/dztu3e77dmjr6v7Ki7ug67nLFk8f/kyPV3dV39fXF51wAAAAPhvksWm5/DXOAAAuZGV8KZsjep5176GhsbqBQsb16+vpqaWkpIyYtLEC15eylojQ8O1i5fUq1VLQ0NjwKhRh0/8KYRw7dFj/rSf36WlxcXHL/t17ZghQ6VEzNRx40pZlRw05q8XA+7etNn3xg3pBYZtnVssmjXLyNDw2YsXi1etGuDi0rBtGyFEFQeHnRs26ujovE1NnTZv7vJ586o3bvwiOrp18+bbf12nDONuUFD9Nq2l7TKlS7utX29T2jrlzZuJM2YsnzfP9oeaykVUP6lvz55jhgw1NzO7eSfw+KlTle3t+48cqfraHStVWrt4SUlLy6Tk5D+OH5s6d25mZqa+nl6I//XsLVtXcUxITPymDwTAv46mpqaOllb2kozMTH72AXyZYF8/ma5WLg4EACAHJKABAN9GXiegJZ+cb6iCmkJh9E+Ol5iZmH7ylGKmpi9iYv7RbGJjI6O4uLj0bDMBd2/a3KxRo+zHuO3ZM+7nadK2XC7/5HxD1dfOfEMAAPBtkYAGAHwrJKABAN/G/yYB/R0orKOjoa6eveRt6ruUN/w6BgAA/yIkoAEA3wprQAMA8D+Vfe1XAAAAAAC+b/L8DgAAAAAAAAAA8H0iAQ0AAAAAAAAAyBMkoAEAAAAAAAAAeYIENAAAAAAAAAAgT5CABgAAAAAAAADkCRLQAAAAAAAAAIA8QQIaAAAAAAAAAJAnSEADAAAAAAAAAPIECWgAAAAAAAAAQJ4gAQ0AAAAAAAAAyBMkoAEABYOdrW09Jyf7ChW+vqnCOjp1a9X6mhZqVKliqK//9ZEAAAAAAPB9IwENACgY2jR3Hj14yJHdHoP69PnKpkqXLLl32/avaWH98uXVq1T9yjAAAAAAAPjuqeV3AAAA5MrClSuEEEtmzylXxia/Y8lDHdu0KW9j88vy5fkdCAAAAAAA3wAJaABAQZIlsmRClt9R5KFa1aqnvnuX31EAAAAAAPBtsAQHAKDAK29js2vTphD/62cPHR7Q20VZrlAoZk6a7Hf23PXzF+ZN+9nI0PDjc4cPGLhv+3Y9XV1pt4SFxda1ax/4+l08dnz0kCHKw+Ry+ZypU29euhxw8dKowYNzE1VhHZ1VCxbeuuzlf+78L9NnaKirS+UTRo6cMHKk8rB1S5d2bNNGCNGqWTPfM2f79erVrUMHb8+T3p4nG9Wtp7qLxvXq7d60Wbk70KXP3GnTpG0TY+PVCxcFel+5eOx49u6EEA3q1Dno5h52I+DI7t3NGzWWCi3Mzb09T547fKSek9PG5SseBQb6nD6Tm8sEAAAAAEAFEtAAgILN3MzsoJt7SFh4mx7dl6xZM3HUqP69ektVC2fMbNao0ajJkwaNHVPOpszMSZM/OHf0kCGDXV0nTJ8en5AghNDT1T3o5v4o6nHzzp1mLVzYvWPH4QMGSkfOmDipVdNm85YtHTPlp6YNGliaF1cdlUwm2/PbFjNT074jhg+fMN6xUqX171fVMDU2MTU2UR5ZoriFXlFdIcSlK1d6Dh501NPz5LlzrsOHuQ4f5nPdX3UvRQoXKWlVQrlrZGhobmYmbY8fMUJbW6th2zYjJk7s17NXPScnqbyqQ+Utq9fsP3K4XquWO/fuW79sWXVHRyHEi+ho1+HDIqOiNq9c9TY1teegQQNGj87dEwAAAAAA4LNYggMAULA5N27y6MnjWYsWCiHuh4TMWlR0WL/+W3ftVFMounXs0L537xu3bgkhBo0Z41Sjhlwuz8zMlE4cM3Ron+7d2/ToHvXkiVRS36l2VlaW+97f5XJ55OMojwMHenTqtG7Lb0KIdi1brtvy2/7Dh4UQr+LiLh49pjqqstbW1apUsXasnJySIoQYPHbMjQsX9XR1pUz3J71OSnqdlJT4+vXrpKTQ8PCvvC3xCYkVbSuUtCxxM/B2zaZNsrKypPJuHTucuXDhmr+/pqam/82AS1eudGrb1i8gIC09PTQ8/NHjqIq2tmOm/PSVvQMAAAAAICEBDQAo2Cra2gYFByt37z14UL5sWTWFoqSVlbaW9t3796Xy+ISEP0+fVh4ml8lcunY75umpzD4LIexsyxvo6+9Yt15ZkpGeLoTQ0tKyLF7c28dHKrwbFKQij/y+Kduox4+l7LMQIurJk+SUFLvy5ZWN5LW1mzfJ5bI1ixZZFi/u7ev70+xZEZGRQgi78rYlLCzc1m9QHhkXH5f9RL+AG/+bCAEAAAAA/wUkoAEABVtoeHi/Xr2Uu6VKWEVERqZnZDx6/PhdWlppKyspPa2hoWFTunRQcLA0AzozK6tTnz7H9/7+6PGTLTvdpXNDwsKDw8JadOks7WpraWtpFRJCvHnz5kV0tGOlSvcePBBClLKyUq4ZrSKqkiVKmJuZPX3+XAhhaGBQWEcnJDxcCPEyNtbBzk46TFNT087W9o/jx7/s2l/GvjI1NlEoFBkZGUKIqpUdXiclSVWmJiZL166dv2yZqYnJr4uXTP1x3KCxY4QQIeFhV/185y1dKh1moKeXlp6evc33U6UBAAAAAPgGWAMaAFAwyGQyuVwuE7K/NmQyqfzUhfOmJsajhwzR09UtV6bM1HHjDv35pxDi3bt3p8+fn//zdEMDAz1d3cWzZ08eM1a5/oYQIvJxVGdX10ljxnRp114quXjFu7SVVb9evdTV1IqZmh718GjXoqVUdfbSpYEufao6VC5hYTF13Pjs7XzS3fv3wyIiZk6abGVpaWRouHTO3Gt+ftExMUKIMxcu1K1Vq3bNmvp6epNHjymso5P9xJt3AmtVr16yRAndokXV1XL4f2Iff3+5XD7QxUVHW7tDq1Z1azkpq2ZNnrxw5kxtLe34hIT4xARlwEf+POHSrXut6jVkMlkVB4drZ86WsLCQqpR3NfvtBQAAAADga8hi01PyOwYAwPcgK+FN2RrV8679yNuBOtrayt03b95Y2leUthvUqbNk9hwrS8uUN2/2HDwwZc4cacljHW3tzStXNahTJyMjw9vXd8L0nx8/fSqEqGRnd/LAwWLlywkhqjg47Nu2ffiECSfPnRVCOFaqtHbxkpKWlknJyX8cPzZ17lwpdaulpbVt7a8N69TJzMpy2+NRsoTVtl27PM+eURFw8WLFflu9xrFSpaysLO9r1waNHRMXHy9l0hfNmtWlXXtNDY2Dx44pFHL/gJvKWdhGhoZrFy+pV6uWhobGgFGjDp/4U/Vt6duz55ghQ83NzG7eCTx+6lRle/v+I0cKIcqULr1wxsxqjo5qCsX9kJABo0ZFPo6STnHp2m3y2DH6unpRT56s37Z1h4eHEKJ18+bbf12nbPZuUFD9Nq2/4nEBAICCLdjXT6arld9RAAC+BySgAQDfRl4noHNkbGQUFxeXnpHxQbm2lrZcLktKTs59U4YGBvEJCRkfNVW0SJGMjAzlys5CiOEDBs6ZMiX7MWERETWbNsl+Snp6RsqbD3/bamlpyWWy7E2p8EHyXQgx+MexB48elbblcrm+ru6ruLiPT9TW0i6kqREbH/9xlYmxsTQjGwAA4GMkoAEA3woJaADAt5HvCeh8oampqaP1t7/NMjIzExITv20v+np6H6yIkZSc/C4t7dv2AgAAoEQCGgDwrfASQgAAvlxqampqampe9xL3qSnMAAAAAAD8+/ESQgAAAAAAAABAniABDQAAAAAAAADIEySgAQAAAAAAAAB5ggQ0AAAAAAAAACBPkIAGAAAAAAAAAOQJEtAAAAAAAAAAgDxBAhoAAAAAAAAAkCdIQAMAAAAAAAAA8gQJaAAAAAAAAABAniABDQAAAAAAAADIE2r5HQAAAP9rtmXLvnn79uGjRx+UF9bRqeLgkJWVFXjvXnxCQj5FBwAAAADA94MENADgP2fciJERkQ9/Wb78g3JjI6PRg4cYGRqYmZjaOdXKyMjIpwABAAAAAPhOkIAGAOAvEZGRnfu6Ghka3vfxNdDXj3n5Mr8jAgAAAACgYGMNaAAA/iYrKyu/QwAAAAAA4DtBAhoAUDAc89hjX6HCvu3bQ6/fOLDDrbyNjVRuYW7u7Xny3OEj9ZycNi5f8Sgw0Of0GamqsI7OqgULb1328j93/pfpMzTU1ZWtFSlcZNOKlSH+108dONi6efPcBDDY1fXsocPB/tfdN2wsU7q0VHjx2PFRgwc/8PPfuHzF8P4D7vv4/rpkqep2JowcOWHkSOXuuqVLO7ZpI21Xd3R037AxxP/64V272zq3yLF3FdcOAAAAAMC/AQloAEDBYF2q1NY1az3PnO0xcEB8YsKeLVuLFC4shHgRHe06fFhkVNTmlavepqb2HDRowOjRQgiZTLbnty1mpqZ9RwwfPmG8Y6VK67Mt+jygd++nz5936df37KVLG5evqOLgoLr3wa6uA136LFi5omn79vdDgg/scNPT1RVClLOxMTU26da/X8c2bcralOnYx6VDq1a2ZcuqaMrU2MTU2ES5W6K4hV5RXSng5fN/uebvX61Rw81uO1b88ou+np7q3j937QAAAAAA/EuQgAYAFBinL1zYstPdLyBg7JQpJsbGVStXFkKkpaeHhoc/ehyV+Pr1mCk/eV27difonhCirLV1tSpV+o8cEXD7tu+NG4PHjmnr3ELK2wohQsLDZy1aeDMwcNGqlbfv3WvZtKnqrl179Nyy0z384UOFmmLPwYNCiLq1aklV+w4fuhkYGBsXd/Do0XsPHkQ9eWJpYfEFV5eVlZWQmFjaysrYyOjYyZPVGzVMTk5W3fvnrh0AAAAAgH8JXkIIACgwvH2uSRuvk5Ju371T3sbmgpeXstYv4Eb2g+1sbaMeP05OSZF2o548SU5JsStf3tvHJ3tTQogrPj7lytio6FdDXb2stXX/Xr1dunVXBqCn+9f05PT0dGkjLS39Ky/wx2lTh/fvf8xjj1yhOObpOWPBL+/S0lT3/slrBwAAAADgX4IENACgwHCsVOn4qVNCCE1NzQrlyi1fty577QfvDgwNDy9ZooS5mdnT58+FEIYGBoV1dELCw/9qyr6S8sjK9vZ37wep6PddWlpkVNRPs2ef97oslZiZmMbGx33ZVbyMjXWws5O2NTU17Wxt/zh+XAihpaWVmZn547RpP06bVq5MmUM7d926e2eHh0dueue9iQAAAACAfyeW4AAAFBhd2rVvVLeeoYHBtHHj0tLSrwcESOVyuVwmk2XfEELcvX8/LCJi5qTJVpaWRoaGS+fMvebnFx0TI9VWsrPr0727btGiXdt3qFWjxrnLl5VNyeXy7BuSP44fmzFpkoW5ubqaWu8uXf/cu1ehUHzZVZy5cKFurVq1a9bU19ObPHpMYR0dZdWRXbt7d+mqUChevnqV8uZNZmZWjr1/8toBAAAAAPiXYAY0AKDAOOJ5YuOKFXq6uk+ePXMZOvRVXJwQonXz5tt//WsqdLcOHe4GBdVv01oIkZGR0cm1z2+r1/icOZuVleV97ZrLsKHKpuYvXzbYte+yufNeJyXNW7pUWspj+ICBc6ZMkQ64e+WqEGLWooVrN28WQixYsUK3aFGvE55qCsXNO3dGTJz45s2bL7uKG7dveRw8sHPjJk0NjYPHju0/clgqf/Pmzfjp0yeOGjV32jRNTc2jJ04oqz7X++euHQAAAACAfwlZbHpKfscAAPgeZCW8KVujet61H3TNZ+j4cZevXjU2MnoRHZ37E4sWKZKenpHy5hO/70yMjV/FxmZkZOSyKTWFQrdoUSnxrZpDxYpnDx3+oNDOqZYyci0tLblMplyiOjtDff3kN2/evn37xb0DAAB8pWBfP5muVn5HAQD4NpE1OwAAIABJREFUHjADGgBQkGRmZv6j7LMQIvH1689VKVfkyKX0jIxc5n/vBAWVrVb1g8K4hATltooJ1J/rIve9AwAAAADwL0ECGgCAby8jIyM2Pj6/owAAAAAAIJ+RgAYAFAxOzs2TkpLyOwoAAAAAAPAPkIAGABQMcUwoBgAAAACgoJHndwAAAAAAAAAAgO8TCWgAAAAAAAAAQJ4gAQ0AAAAAAAAAyBMkoAEAAAAAAAAAeYIENAAAAAAAAAAgT5CABgAAAAAAAADkCRLQAAAAAAAAAIA8QQIaAAAAAAAAAJAnSEADAP67NDQ0fqhWrZ6Tk6amZn7H8j9iYW5ez8nph2rVNNTVP3lAuTJl1NXUvqYLdTW1ek5OX9kIAAAAAOD7QAIaAPAfZV+hQrCf/5I5c6eNH69btGh+h/M/4lip0ujBQ9YvW75p5aqPa51q1PT2PDly0OCv6UJXV/egm7uuru7XNAIAAAAA+D6QgAYA/Ee1cXY+efZs3ZYtmnfqFB0Tk9/h/I8c9fTs3Nd19qJF5cqU+bg28N7dDdu2HT3p+XHVhaNHixQu/D+JEQAAAADw/eDrsQCA/yhzs2IvYqLzO4r8kZWV9cny10lJP8+f93G5ibGxXXlbmUyW96EBAAAAAL4rzIAGABQMxzz22FeosG/79tDrNw7scCtvY6OsKmFhsXXt2ge+fhePHR89ZIiy/NDOXV4nPIf07Tti4KB7V6+9DA0zNTERQjRp0MDb82TLpk27d+rs7XnS2/OkmYmpdEp5G5tdmzaF+F8/e+jwgN4uyqZmTprs7Xly/bJlDevUvXLy5MvQsI5t2gghLh47Pmrw4Ad+/huXrxjef8B9H99flyyVTtEtWnTt4iVB13xC/K9vWrGyaJEiUvlgV9chffvOnDT5tpe35/79Xdq1V/ZiaGCweeWqoGs+pw4cHDN0aPaE72BX17OHDgf7X3ffsLFM6dI53q7COjobl6944Ocf6H1FusbeXbqqPmXvtm3enifd1m8oVKhQ9vKDbu5XT56SyWSnDhz09jy5c+PG3ARcs2pVz/37H/j6LZo1y7J4cdVdN65Xb/emzcrdgS595k6bJm3LZLLpEyZ6nfC8ddlrxfz52RdL+afPHQAAAADwv0cCGgBQMFiXKrV1zVrPM2d7DBwQn5iwZ8tWaUUIPV3dg27uj6IeN+/cadbChd07dhw+YKB0ypgpP/3+x8GJo0Y3qV9/wozpzp07x8bGCiGu+fm5Dh/mde3aidOnXYcPcx0+7OWrl0IIczOzg27uIWHhbXp0X7JmzcRRo/r36i01tWH7tokzZnRp1/6nH8eu37rNuXPnC5cvCyHK2diYGpt069+vY5s2ZW3KdOzj0qFVK9uyZYUQv0yfUcKiuHPnzu169bQuVapz23ZSU0aGhtMnTNTR0e41eNBRz5NrFy820NMTQmioqx/c4SZXyDu59lm4cmXfHj27deggnTLY1XWgS58FK1c0bd/+fkjwgR1uejmtsLxgxkzdokWbtG83aOwYC3PzuUuW7Dl4QPUpE6fPGDx2TO2aNWtUqZK9/MdpU/sMGyqEGDp+nOvwYVPnzpXKVQQshJg0esysRYtchw9zqFjxx2HDVXddpHCRklYllLtGhobmZmbSdpvmzm2cnXsPGdyqW1eL4sWVD/cLnjsAAAAA4H+PJTgAAAXG6QsXtux0F0LcnzLlgZ9/1cqVL3h51XeqnZWV5b73d7lcHvk4yuPAgR6dOq3b8psQIjIq6n5IiG7RoiMmTnj6/LmynaTk5NDw8MTXrxMSE0LDw5Xlzo2bPHryeNaihUKI+yEhsxYVHdav/9ZdO4UQL6KjX79OEkJsdnPbf/hw9qj2HT50686d2Li4g0eP3nvwIOrJE0sLi6Dg4DWbNr6IiUlOSSmsrX3U07NtixZSU9JKF1PmzMnIyAi8d69Pt26N6tfff/hwJbuKJSwtm3Ron5aefu/Bg859XU2MjKXjXXv03LLTPfzhQ4WaYs/Bg13bd6hbq9ZRz0+s1KzkULHi0jVrop48iXry5Kqvb5nSpTzPnlF9eyMfRwkhklNSNNTV/1YeFZWeni6ECH/4MPH1a2W5ioCFENN/mX/Nz08IsWrDhmVz542f/vPn1v1QLT4xQVdXt0ypUlf9/HoPGaL1fnb2Fzx3AAAAAMD/HgloAECB4e1zTdp4nZR0++6d8jY2F7y87GzLG+jr71i3XnlYRnp69rOePn+eyyxkRVvboOBg5e69Bw/Kly2rplCkZ2QoC/1u3PjgrPT33aWl/a1fA32DhTNnlbKyep2UVLRIkTdv3iirrvj5ZrxvMywiwqKYuRDCzrb8g9CQtPethUVEhEVESBONy1pb9+/V26Vbd+Xl6+nqqb6WYydPunTvFhh0z8Lc3KlmjZUb1qs+/gt8LmDJ/ZAQaeNBaKiJsbG6uvq7d+++oJdLV64sXrVq7LDhbhscgkNDZi9afN7rstT7t3ruAAAAAIC8QwIaAFBgOFaqdPzUKSGEpqZmhXLllq9bJ4QICQsPDgtr0aWzdIy2lraW1t+WMM79xNvQ8PB+vXopd0uVsIqIjMyefRZCiNw1JpPJFkyfvnX3rh0eHkKIMUOH9uzUWVmbmfmJVkLDw0tZlVTuGujp6erqRkRGvktLi4yK+mn2bCnxKoQwMzGNjY9THYCamsLSvPhRD4+Xr15NnTP3mr9/ruL+Jz4XsLSbmZmZ+6Zexr4yNTZRKBRSXr5qZYfXSUlSVfFixQ4eO7plp3thHZ2xw4atXby4Ym2nrKysb/jcAQAAAAB5hzWgAQAFRpd27RvVrWdoYDBt3Li0tPTrAQFCiItXvEtbWfXr1UtdTa2YqelRD492LVpKx8vlcrlM/teGPOdfeacunDc1MR49ZIierm65MmWmjht36M8/pSqZTCaXy4QQMrksN00p5PJSJa2kI8uVKTOoT58cT7lx+/a7d+9mTJxUqFChEhYW+3e4NWvYUKr64/ixGZMmWZibq6up9e7S9c+9exUKhYqmihQuPHLQ4KHjxzl37ty6e/ed+/Yqq2QymVwul94W+MFtUe7K5HLlMZJnL15Ex8S0a9lKX0+vsI5OjgH/Uz7+/nK5fKCLi462dodWrerWclJWtXVu8Ye7u4mxccqbNzEvX2a+Tyt/w+cOAAAAAMg7/FUGACgwjnie2LhixX0f37YtWroMHfoqLk4IER0T033ggIEufR7eun3h6DG/gBvbPXYLIfT19KKDQ3Zt2mRhbh4dHBIdHKJbtKjq9kPDw/sMG+bStVuwn//JAwfPe11etGqlVHXx2PGHt24LIfzPnY8ODmnZtKnqptIzMqb/8svcKVPDA27u3vzbL8uX53h1b9686dSnT+P69cMDbp47fOT2vbu/ubtLVQtWrPALuOF1wjPi5q3unTqNmDgx+4IeH0tOSXn85MnuTZv3b99x67LXhaNHnWrUlKp2bdwUHRzy2+rVNtbW0m1xrFRJCGFqYiLtmpuZeWz+LTo4ZOKoUcoGMzMzF61eNXbY0BD/6ycPHMwx4H8qLT199uJFQ/v1Dw+4ObR//1+WL1NWbdm1835wiPcJz7AbAaMHDxk1eZI0tfkbPncAAAAAQN6Rxaan5HcMAIDvQVbCm7I1qudd+0HXfIaOH3f56lVjI6MX0dEfH2BoYBCfkJDxwYoZn7d28ZLYuNgZCxZ8XGVsZBQXF/fh4hv/nJpCYWRo9Dz6xT86y1BfPyEx8ePe1RQK3aJFpbS7ZPiAgXOmTMl+TFhERM2mTao6VD7o7l69caPomBi5XD7Y1bVD69bNO3X6uqv5xwF/bPemzc0aNcpe4rZnz7ifp0nbcrlcX1c3+wUqKRQK48/cyX/63AEAQG4E+/rJdLXyOwoAwPeANaABAAVJZmbmJ7PPQohXsbG5b0dHW7ustbX73uufrI15+fJLA/yb9IyMf5p9FkJ8MgMrtfZB1Zad7nsO7M9ekpGZKYQoWqSIQi4vrKMTHROTlZVlZGioVSgP/4D8XMAfG/zjWA119ewlb1P//82EmZmZn2sq4/N38h89dwAAAADA/xgJaADAf86owYOnT5joFxDw56mT+R3LV0lNTU1NTf24/NLVK3sPHfLcfyAuLs5AX//du3f9Ro7IjwA/lJScnN8hAAAAAAD+p1iCAwDwbeT1Ehz6enpJSUlp6elf31ShQoUUcnlyynf+G1Amk9mUtn6b+jbqyZOs9+/uAwAAyA2W4AAAfCvMgAYAFAxx8fHfqqm3b99+q6b+zbKysoLDQvM7CgAAAADAf5o8vwMAAAAAAAAAAHyfSEADAAAAAAAAAPIECWgAAAAAAAAAQJ4gAQ0AAAAAAAAAyBMkoAEAAAAAAAAAeYIENAAAAAAAAAAgT5CABgAAAAAAAADkCRLQAAAAAAAAAIA8QQIaAAAAAAAAAJAnSEADAAAAAAAAAPIECWgAAAAAAAAAQJ4gAQ0AAAAAAAAAyBMkoAEABcZgV9ezhw4H+19337CxTOnSUqGFubm358lzh4/Uc3LauHzFo8BAn9NnpKpDO3d5nfAc0rfviIGD7l299jI0zNTERKpq3bz5MY89YTcCDrq5161VK8emPqdxvXq7N21W7g506TN32jRp28TYePXCRYHeVy4eOz5h5MjsZzWoU+egm3vYjYAju3c3b9T4i3sHAAAAAOBfjgQ0AKBgGOzqOtClz4KVK5q2b38/JPjADjc9XV0hxIvoaNfhwyKjojavXPU2NbXnoEEDRo+WThkz5aff/zg4cdToJvXrT5gx3blz59jYWClr/OuSpR4HDzh36ex59oz7ho2V7e1VN/U5RQoXKWlVQrlrZGhobmYmbY8fMUJbW6th2zYjJk7s17NXPScnqbyqQ+Utq9fsP3K4XquWO/fuW79sWXVHxy/rHQAAAACAfzm1/A4AAIBcce3Rc8tO9/CHDxVqij0HD3Zt36FurVpHPT3T0tNDw8MfPY6qaGs7ZspP2U+JjIq6HxKiW7ToiIkTnj5/rizv2aXLb25uu/btE0KEhIXZV7Dr0q79zcBAFU19gfiExIq2FUpalrgZeLtm0yZZWVlSebeOHc5cuHDN319TU9P/ZsClK1c6tW3rFxDwbXsHAAAAAODfgAQ0AKAA0FBXL2tt3b9Xb5du3aWS10lJerp62Y/xC7jxyXOfPn+ePfsshKhY3vbEmf9f3SLowQPnJo1z09Q/snbzJrlctmbRIsvixb19fX+aPSsiMlIIYVfetoSFhdv6Dcoj4+LjvnnvAAAAAAD8G5CABgAUAO/S0iKjon6aPfu812WpxMzENPbvedv3M4w/lPVRRWhEeO2aNfcfPiztlrQqERIWnpumPvYy9pWpsYlCocjIyBBCVK3s8DopSaoyNTFZunbt/GXLTE1Mfl28ZOqP4waNHSOECAkPu+rnO2/pUukwAz29tPT0L+sdAAAAAIB/OdaABgAUDH8cPzZj0iQLc3N1NbXeXbr+uXevQqGQquRyuUwmy76hLJfL5H9tyP//V96h43+2ae7c1rlFoUKFmjRo0LV9h6MnPVU39Tk+/v5yuXygi4uOtnaHVq3q1nJSVs2aPHnhzJnaWtrxCQnxiQmZmZlS+ZE/T7h0616reg2ZTFbFweHambMlLCy+rHcAAAAAAP7lZLHpKfkdAwDge5CV8KZsjep5175cLl84c2bX9h3UFIqbd+7MX7bsqp+vEKJ18+bbf12nPOxuUFD9Nq2FEPp6eiH+17O3YF3FMSExUdoeOWjQqEGD9fX0ol/G/LJ8+e79+1U0pVrfnj3HDBlqbmZ2807g8VOnKtvb9x85UghRpnTphTNmVnN0VFMo7oeEDBg1KvJxlHSKS9duk8eO0dfVi3ryZP22rTs8PL64dwDA/7V390FW1fcdx8+9u+yyS2EXkUWLmMRSKeIDooiiJNJgo53xGbVqqziiRPAxRtE8CJqYAGpjEMUxIFaSiI7RpkJGYqbVWtSINVZGqxIxVDtGBAQFEVh2+8eNW6pGE9yPK9vX6697f/fcc77LP8y+5+zvAAkvPL641FDX0VMA0BkI0AC0j3SArqiuqmro0WPVG2/8Acd+hFKp1Kd3029XvPaHHLz86SXd6uu3Xjn7ogvvue++yutyudyzoeEDp6qvq+9aW7N6zZr3f9TUu/eK11/f1vEBAIIEaADaiwANQPv4ZAJ0R+nZ2PieHTHWrV+/afPmjpoHACBKgAagvXgIIQB8tDc+6BZmAAAA4MN5CCEAAAAAABECNAAAAAAAEQI0AAAAAAARAjQAAAAAABECNAAAAAAAEQI0AAAAAAARAjQAAAAAABECNAAAAAAAEQI0AAAAAAARAjQAAAAAABECNACdxID+/btUV4dOPmjgwM8PH77XHnuEzg8AAACdkgANQGcw/IBhi+5feO5ZZ4fOf+SXDj//7HH/9OM7zjrttNAlAAAAoPNJ3SkGAJ+kJc8+c/OcOfctvD90/inXf68oimuuvGpA/z8PXQIAAAA6HwEagM7grXXrvnH1t9NXaS1aS0UpfRUAAADoNGzBAcB24LCRIx+4597a2tq2lYvOGT9j2jWV13fNmbPo/oW3z7y5a9euW3+rqXfv6VOmLln0yEPzF3z13HPb1r967rlbv73p2muPO/LIyuvd/6z/PbfPfemp/3j63xZdev4F2zxwz8bGRfcv7NnYWHm73z6DF9x5V9unJx177Pw75r3wxL/PmXHjngP/d1/pXXfZ5dYZM55/fPFD8xecP25c2/qkSycuun/hzOuuG3nIiEcWLlz56xfbBgYAAIBPMwEagO3AQ4sW9evb9/h3q2tdXd2EsWN/8eCDlbeXfPOKsy+84OBhww4YMmTrb108YUJ9fd3Io46ccMklZ5xy6ueHD6+s9+nd1Kd3U9thu/bdpbFHQ1EUpVJp3uzZzzz/3NAv/uV5Ey+dMHbsgP79t23gqqqqAf37V1VVVd7W19f1/9znKq//dKedpl151Xev/96Bo7647De/mTJpUmW9saHhntvn/tfLr3xp9PGTp0z5m+OOG3/m2MpHN98255Irrjjh6GMuu+jCmbfOOXz06AcffnjbBgMAAIBPki04ANgObNq0afYP5559+uk/vvvuoihOPOaYt9ata9vxefkrLxdFsf7tt2u6dNn6W2vWvrnnwD0+22/Xp5Y8PeywUa2trR9+leqqqjETxv/n88/X1NQseeaZR375y6OOOOKaG25o359lwzvvbNmyZff+/ZcuW3b131+3Q8+epVKptbX1C8MPbm1tnXvXneVyefkrL9/xk5+cfPzxN82eVRTFaytWvPXWuqIofnD77Xf/9KftOw8AAADkCNAAbB9u/dGPLvzyOQcNPeDRxY+PGzPmlttu27Jly4d/ZcYPbimXSzdMndqvb99Fjz9+2ZWTX1q+/EOO39zcvN/gwdOnTOnevfuGDe/s1NT06muvtffPUbyxZs3Y888//eSTr7rs8tdXrZo1d26lMg8a+Bc79Oz5DzfNbDtyS3Pze767+Mkn230eAAAAyBGgAdg+rFq9+q5/vHfcmDFda2t3auoz9647P/IrfZqarp0x4+rrruvT1HTjtGu+dtFXzrrwgqIoVq5evc+gQZVjamtrBw0ceO+CBZXjr7zssr867rjnli6tbC29zdO+tW7dpk2b+u6888pVqyp7QBel3z29cIfGxueWvnD6+HO6VFePOvTQ22fe/PN/+edfL1u29MVlL7z44hEnjK4cVl9XX1fX9b3n/Yh7uAEAAODTxR7QAGw3Zt465/BRo75+8cVz75y3bv36tvVyuVwul4uiKJXL5XK59G7qnTxx4pRJk+rr6tesXbvmzbUtLS2V9V88+OCIgw46eNiwno2NE8+/4E+6daus79q3b9farpUzHHX4EYcceFDbJUqlUrlcLhWl37149xK/z8aNGx9+7LFxY8bs0Nh44P77/+2J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QoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoCE6ZwSAAAInUlEQVQGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIOJ/AFTldxexlFiCAAAAAElFTkSuQmCC","screenshotBase64WithElementMarker":"data:image/png;base64,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vn9Zpk27K62tozJ7ztxMn/5g9t9vdGruvufebGqvPQen5nOf/1K+9e2L06mpqTE77NAv+++3X0495eTstNNOebVd8J9fy/cvuSwvpl+/fvnhD76fTgfsv1923nmnPPXUghz+pqNyyCFvSEPXrrlj6rQ899zz+dAH359vf+fivJj9998v69evz2lnvCvDhg5J//79M/ePf8xTTy1IfX19vvPtr6d//x2yse2375NzPvyhfO0b38qnJ3w2l1z2g4wZ84YsXbI00+68MytWrMzee++V17/+oAAAALDtqA8AAADbjPr6+vznBV/Orrvskttu+02m3XlX7pg6LTU77NAvJ580Pp/8xL+nqakxmxq178jMn/9kRreOysZGj25NTV1dkZEjhmdTp/3TKVm3bl2+9/3LMvPhWZn58Kz06NEjb37TEfnSFz+bL37pq7n7nnuzqeOPPy5fvfCirF69JnvvtWcqlUqq1WqWr1iRRx+dlwcffCg/nXh1fnLl5Rk6dEheTU8//UyefvqZvJiVq1ZnY926dcvEn/w4Hz7n3Myc+XBuvPGm1AwevEc+8R8fT+uoUfn2dy7Oixm8x+4596Mfzoc/8i+597778/Cs2amrKzJy5Ii8591n5vUHH5QX8oEPvDfb990+3734kjz11IL87Gc/T0337t0zfvwJ+cynPpGGhoYAAACw7ags3rC6GgAAALZJq1atyh//9EgG7rxT+vXrl83tySf/kuUrVmTI3nunrq7I/+RTn/lsfvazn+ezEz6dU045ORtbt25dzj3v47nttt/kiMP/IRd/95vZWqxZsyZ//OMj2WWXgenTp3derjVr1uZPf/pTXve616W5uWdeio6Ojvz1r4uyYMGC9OnTJ7vuukuKoggAAADbnvoAAACwzerevXtGt47KlrLLLgPzUt1yy22pOfbYo7OphoaGfOB9Z+W2236TeY89lq1JU1NTRo0amVeqqakx++47Mi9HURQZMKB/BgzoHwAAALZtRQAAAGArtF2vXqmZPWduXsjDD89KzfB99gkAAADwX+oDAAAAW6Gjj/7HfOe738v73n92xh1zVIYP3yev221Q5sz9Y+6774Hc/pvfpq6uLm95y7EBAAAA/kt9AAAAYCv0kQ9/MGvWrMlPJ/4sP7v6mvzs6muysZ49e+Rb3/ha3vCGgwMAAAD8l/oAAADAVqhSqeTf/+1f84EPvDd3/GFqnn7mmSxduiyDBu2avffeK4P32CONjQ0BAAAA/j/1AQAAgK1YS3Nzxo07OgAAAMD/rggAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEJ9AAC2pPaOpK092dCRakdHAAAAyqhSFEl9kXStS+qKAABsKfUBANhS1qxPZUNHGhsb06WpS+rq6gIAAFBG7e3tWb9+fdauXptqfZE0dQkAwJZQHwCALWFVW7rU1adHr+YAAACUXV1dXerq6tLY2JiVq1Zl/aq2pHvXAABsbkUAADa3NevTpa4+Pbp3DwAAwLamR/fu6VJXn6xZHwCAza0IAMDm1N6RyoaO9OjePQAAANuqHt27p7KhI2nvCADA5lQEAGBzamtPY2NjAAAAtnWNjY1JW3sAADanIgAAm9OGjnTp0iUAAADbui5duiQbOgIAsDkVAQDYjKodHamrqwsAAMC2rq6uLtWOjgAAbE5FAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohfoAAABsTSqVALymVKsBAADYWtQHAABga1OtBuA1oVIJAADA1qQIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCfQAAADaXSiUAAAAAbDlFAAAAAAAAACiFIgAAAFtaS0uqjz2WjB2bl2L9+vX55je/meXLl2dT3/ve9/L0008HAAAAgKQIAADAltTSkup116Wy2255qarVap566qm0t7dnUwsXLsy6desCAAAAQFIfAACALWXs2GTSpFQCAAAAwOZQHwAAgC1l8uTk619PJk1KJk/Oq23x4sW59tprs2DBguywww45+OCDM2rUqHS66667cv/99+f555/PLrvskje96U0ZOHBgaiZOnJgRI0Zk7ty5mT17ds4777zccMMNGTFiRB566KE88sgj6dmzZ4444oiMHDkyne6+++5MnTo1K1asyIABA3LMMcdk4MCB6ejoyEUXXZSjjjoqt912W55//vnsvvvuOfnkk3PHHXdk+vTpqVQq2X///XPEEUek07x58/L73/8+Tz31VPr27ZuDDjooo0ePDgAAAMBLUR8AAIAtZdCgZP78ZOzYbA7XX399+vXrl3e+851ZsGBBLr/88uy+++5pbm7OnXfemXvuuSennnpqWlpaMmPGjFx22WX5yEc+kt69e2fx4sWZNGlSxowZk3e9611pamrK4sWLc91112X8+PF561vfmvvvvz8TJ07MwIED07t378yePTu//vWv8573vCc77rhj7r777lx22WX59Kc/nZpFixbl9ttvzzve8Y5s2LAhEydOzIUXXpghQ4bknHPOycKFC/PjH/84AwYMyLBhw/KXv/wlEydOzIknnpg99tgj8+bNyzXXXJOuXbtm+PDhAQAAAPjfFAEAANhS5s/P5lStVvPss89m8eLFGTRoUD75yU+mR48eqbnrrrtyxBFHpLm5OdVqNSNHjswOO+yQWbNmpdOQIUMyduzYDBw4MEVRpGafffbJkCFD0tjYmDe84Q3p0aNHnnzyydQMGDAgZ599dnbcccesWLEiQ4YMSVtbWxYuXJhORxxxRHr37p1+/fpl9OjRWb16dY477rh069Yte+yxRwYPHpzHH388NdOnT88+++yTXXfdNevXr88uu+yS1tbWPPDAAwEAAAB4KeoDAACwlSuKIkVRZMOGDdlYtVrNhg0b0qVLl9ScfPLJue222/KDH/wgGzZsSGtra4488sjU/PWvf80vf/nLtLS0ZGNtbW3p1L9//2xqhx12SKdKpZK+fftm5cqVqalUKvnFL36RZcuWpaWlJZVKJTVr1qxJp759+6bT9ttvn549e6axsTGdtt9++yxbtiw1Tz/9dB577LE88cQT2VivXr0CAAAA8FLUBwAAYCtXX1+fAQMGZOHChenbt286Pffcc6lUKunfv386OjqyZs2avOUtb0lRFHnuuedy2WWXpW/fvjnwwAPTt2/fHH/88dlzzz3Tqb29PZVKJZ2KosimKpVKXsztt9+eXr165X3ve19q1q5dmwkTJmRjRVFkY5VKJS+mX79+2XXXXXPUUUelU0dHRwAAAABeqiIAAACvASNGjMgtt9ySRYsWpWbVqlWZNGlShg4dmrq6ulQqlVx66aWZOnVqarbbbrt069Yt7e3tqRk1alRuueWWrFq1KjWPP/54JkyYkOeffz6v1Pr167N+/fpUq9V0dHTkxhtvTKVSySs1YsSI3HfffXnqqadSs3z58lxwwQWZPn16AAAAAF6K+gAAALwGvPGNb8yGDRvy3e9+Nx0dHeno6Mjw4cNz4oknpqZSqeS0007LxIkTM3ny5HR0dGTXXXdNa2trag4//PCsXbs2F1xwQerr69PR0ZG3ve1t6du3b16pN7/5zbn88svzuc99Lh0dHdl///3Tv3//vFJ77LFHxo0blx//+MepVqtZvXp1Dj300IwePToAAAAAL0V9AAAAXiPe9KY35U1velOWLVuWnj17piiKbGyXXXbJxz/+8axcuTL19fVpbGxMp0qlknHjxuXoo4/OihUr0tLSko198IMfzKY++MEPZlPvfe97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3LuXoyeO4xZcsSKB5ctzN0d+/pl8m437VbFCBZ576mkSkhLZtW8fQYGB+JYqxelz50jPyKBW9er4+fpyN7du3ebnX07g5elFo/r1+D0XL18m6eZN7kdxb2/atmlDGb/S7D6wn8tXr9KkUSNu3brNz7+cwM3L04snW7agauXKnDl3ngOHD5GXn8+dqlSqROcXXsBms3PyzBl27d+H0+nExTAMmjdpwt3cSEgg5upVCioXEMATjzfH38+Pn45GceLUKZxOJ3fzWMNGWCxmjhw7hsPhQET+2MUjUZisnoiIiIg8LKYUW44TERERkYfEmZ5LjaZNkP+vj5a8T6cOHVj+yUpCQkMRERH5b1azWjVK+/nR65VX6PbSy1y4dImW7doiIiL/08UjUZisnoiIiIg8LBZERERERERERP4N40aMpFOHDrjt3r8fERERERER+c+wICIiIiJ/uQvRFzlwuDRXrsYiIiLy3+7ipWgOHjmMS0xsLPOXLEZERERERET+MyyIiIiIyF9uwdKlLFi6FBERkcLg3Q8+4N0PPkBERERERET+8wxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERET+cmX8/WncoAEPk4eHB61btMBsNiMiIv+ddm/Z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QdGiRek/YgRff/sNNrudkLlzCZ0ylZBx40lNS2PuwoWMGjyEe3X5yhWGjBnD/BkzCBk3nhsJCcyYN4/+vXvj9s6iRaz+cAWXjh3n1u3bTJkzm0cbNsDthbZt+fSfy3Dr3qkTZ86d48mOL+DidDrp3r8fq5Yv59juPeTk5jJ+2jQWzpnDvcq32ZgZNp9Rg4cwa/LbnDh9irkL36NhvXq4ha9ZTYO6dTnw7XYsFgs5OTkMnzAep9OJS2JSEj0G9Gdp2LvMeXsKWdnZfLltK59Gfo5LKR8foo/+jFvixWhcqjZuRHpGBiIifxW73U58YgJ/JDklhT+Sk5vDvys5JYU/I3x1BGs3buBOdoeDO+Xk5pCTm8PvuZmczB9xOBwkp6byR+x2O8kpKfyR5JQURERERERE5OEzpdhynIiIiIg8JM70XGo0bcJ/mtlsxt+vNPGJCfwZFrOZ0n6liU9M4N9RtkwA8YkJ/J5yAQEkJCXhcDj4s/xLlyY1NRWb3U5Bn//rI557+mnutGrtWsZMnYKbYRiUslpJTk3l95jNZvz9ShOfmMDv8fP1JS09HbvdjoiIiIiI/P9dPBKFyeqJiIiIyMNiQURERORvwG63E5+YwJ9ls9uJT0zg3xWfmMAfuZGQwL8r6eZN7mbQW6MpWqQId7p1O4+CHA4Hyamp/BG73U58YgJ/JDklBREREREREREREflrWRARERGRv4Ws7GxERERERERERESkcDMQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxEREZFCrE7t2rRu0YJ6jzzCw1Lc25tWzZvzoDVt3Bi/UqUQERERERERERERuVcGIiIiIoVYx7btGDloMJs/j2Rgnz48DFUqVWL9J5/yoC1fuJAmjR9FRERERERERERE5F5ZEBERESnE5i1ehMu7M2dRs1p15H/XuWNHalWvztyFCxEREREREREREZH/LhZERERE/gacODFhQv53zR9rwu28PEREREREREREROS/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2Wxw9PgJwldH4Fbaz4+lYe/SunlzihYtSv8RI/j622+4V6+/9hqjBg+hfNmynDh9im3ffUfDevXo9+abuFSrUoV506bzWKNGWMxmzkdH03/ECGKvxeHW+5XuTBw9ilJWH+KuX2f5Jyv5LDISlxfatuXTfy6joDPnzvFkxxcQEREREfm/7uKRKExWT0REREQeFlOKLceJiIiIyEPiTM+lRtMm/DfwL12a1NRUbHY7d+Pl6YVhmMjKzubP8vP1JS09Hbvdzt2ULFECu91Odk4OBQ3rP4BZkydzp8tXrtDs2WcoqGSJEthsdnJyc7gbT09PDJOJ7Jwc7lfsyVN4e3lxp0FvjWbTli24GYZBKauV5NRUfo+XpxfFPIqSkpbG7ynj709iUhIiIiIiIoXFxSNRmKyeiIiIiDwsFkRERETk/yfp5k3+SE5uDv+u5JQU/khGZiZ3E746grUbN3Anu8PBnTIyM/kjubm5/FkNW7fCxP+UlZ1NQQ6Hg+TUVP5ITm4OObk5/JHEpCRERERERERERETk3lkQERERkf/zbt++ze3bt/lPS01LQ0RERERERERERP7vMhARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgULIiIiIvJvqV2jBrm3bnH111+5m+Le3jRu0ACn08mps2dJS09HRERERERERERE5GGwICIiIiL/ljHD3+RK7FXmLlzI3fiXLs3IQYMp7edL2TIB1GnRHLvdjoiIiIiIiIiIiMiDZiAiIiIiD9WV2Fi6vt6Xrq+/Tmk/P3xLlUJERERERERERETkYTAQERERkb+E0+lERERERERERERE5GGyICIiIlKIbY1cy+TZs5g2YQKN6tXnl9OnmTJnNuejo3EJLF+edSs/4fbt28yYP4+eXbvR/tlnuBGfQLNnn8GluLc3oVND+McTT5Cfn893u3YxY9475OXn41aieAn+tWgxT7VqxZXYWN7/1wq27tjB/RjUty/dO3WmYmAgh48eZWbYfC7F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RERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMREREROSBKVq0KI8/9hitW7TAw8MDuX+B5cvTukULHn/sMYoWKcIfqVmtGkUsFh60IhYLrVu0oIjFgoiIiIiIiIiIyH8TAxERERF5IOo98ggXo47y7qzZTBk7FmvJksj9a1S/PiMHDWb5ewv51+Il/J4WTZtxYPsO3hw4iAfNarWyaVUEVqsVERERERERERGR/yYWREREROSB6NiuHTt27mTwmLeQP2/L9u1s2b6dl5/vwMRRo/g9p86e4cNPPmHLju38nt1bttDx1VfJzMpCRERERERERETk78CCiIiIiDwQ5cuWIyEpEXkwnE4nfyQzK4upoXP4PWX8/alTqzYmkwkREREREREREZG/CwsiIiIihdjWyLVMnj2LaRMm0KhefX45fZopc2ZzPjoat6DAQGZMmkTLps2IT0xk45bNvL9iBW5frV5DaT8/ItatxWIpwvD+/Snj70+dFs1JSEzkmX/8g5mTJlMuIACb3U6bJ/+BS5c+fYhPTMClVvXqhIwfT9PGj/LrtWt8vmED4asjcJs+YSLPPf00J8+cZv2XXxEaMpUaVasx6K3RbNqyhT1bt7Fh89e8OXAQu/ft45fTpxk5eDA79+5l+PhxuFhLliR0aghtWrfGYrGwa98+xk0LISMzE5dBfftiMpkoWyaALi++yG/xNwiPWM0XX3+Fm5+vL/OmTeeJxx8n7vp1tn3/He+vWIHT6cRtUN++dO/UmYqBgRw+epSZYfO5FBPDvSru7c17s+fwj1atyMvLIyMzE5fl4eGs/mI992L9J59QoVx5Ll+5wqC3RnPr1i0K2rQqggZ162Iymfhu4ybsDgdXYq/Sa/Bg3Px8fZk3bTpPPP44cdevs+3773h/xQqcTiduzR59lBGDBlE5KJivvtnG0o8+Iu76de5Fm9at6d+rN68NGojbgN59CA6qSEhoKC4mk4mpY8fRtk0bShQvzo979zBj/nzSMzJwCwoMZMakSbRs2oz4xEQ2btnM+ytW4PbV6jWU9vMjYt1aLJYiDO/fnzL+/tRp0ZyExEREREREREREROTvxTxx2pQZiIiIiDwst218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AFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAP5ve3BAAgAAgAAo+j+6H6ECFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwYYkQHKd0AqxtAAAAAElFTkSuQmCC","url":"https://www.saucedemo.com/"}');let AH=e=>{let{uiContextPreview:A,setUiContextPreview:t,showContextPreview:o}=e;return o?(0,r.jsxs)("div",{className:"form-part context-panel",children:[(0,r.jsx)("h3",{children:"UI Context"}),A?(0,r.jsx)(AB,{uiContext:A,hideController:!0}):(0,r.jsxs)("div",{children:[(e=>{switch(e){case"finished":case"passed":case"success":case"connected":return(0,r.jsx)("span",{style:{color:"#00AD4B"},children:(0,r.jsx)(AD.A,{})});case"finishedWithWarning":return(0,r.jsx)("span",{style:{color:"#f7bb05"},children:(0,r.jsx)(Az.A,{})});case"failed":case"closed":case"timedOut":case"interrupted":return(0,r.jsx)("span",{style:{color:"#FF0A0A"},children:(0,r.jsx)(AQ.A,{})});case"pending":return(0,r.jsx)(AL.A,{});case"cancelled":case"skipped":return(0,r.jsx)(AZ.A,{});case"running":return(0,r.jsx)(AX.A,{});default:return(0,r.jsx)(AJ.A,{})}})("failed")," No UI context",(0,r.jsx)(e1.Ay,{type:"link",onClick:e=>{e.preventDefault(),t(AG)},children:"Load Demo"}),(0,r.jsx)("div",{children:"To load the UI context, you can either use the demo data above, or click the 'Send to Playground' in the report page."})]})]}):null};var AW=t(4291);let AY=e=>{let{className:A=""}=e,{config:t}=eF();return Object.keys(t||{}).length>=1?null:(0,r.jsxs)("div",{className:`env-config-reminder ${A}`,children:[(0,r.jsx)(AW.A,{className:"reminder-icon"}),(0,r.jsx)("span",{className:"reminder-text",children:"Please set up your environment variables before using."}),(0,r.jsx)(eq,{mode:"text",showTooltipWhenEmpty:!1})]})};var A_=t(6921),A$=t(6130),A0=t(2297),A1=t(7062),A3=t(5862),A5=t(7615),A7=t(2107),A2=t(4544),A9=t(3616),A6=t(1879),A8=t(1269);let A4=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:(0,r.jsx)("path",{fill:"currentColor",d:"M1.333 13v-2.5a.667.667 0 0 1 1.334 0V13c0 .184.149.333.333.333h2.5a.667.667 0 0 1 0 1.334H3c-.92 0-1.667-.746-1.667-1.667m12 0v-2.5a.667.667 0 0 1 1.334 0V13c0 .92-.746 1.667-1.667 1.667h-2.5a.667.667 0 0 1 0-1.334H13a.333.333 0 0 0 .333-.333m-12-7.5V3c0-.92.747-1.667 1.667-1.667h2.5a.667.667 0 0 1 0 1.334H3A.333.333 0 0 0 2.667 3v2.5a.667.667 0 0 1-1.334 0m12 0V3A.333.333 0 0 0 13 2.667h-2.5a.667.667 0 0 1 0-1.334H13c.92 0 1.667.747 1.667 1.667v2.5a.667.667 0 0 1-1.334 0M5.667 10.333h4.666V5.667H5.667zm6 .167c0 .644-.523 1.167-1.167 1.167h-5A1.167 1.167 0 0 1 4.333 10.5v-5c0-.644.523-1.167 1.167-1.167h5c.644 0 1.167.523 1.167 1.167z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},te=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M11.333 13.667 14.667 8l-3.334-5.667H4.667L1.333 8l3.334 5.667z"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M8 9.667a1.667 1.667 0 1 0 0-3.334 1.667 1.667 0 0 0 0 3.334Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};function tA(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function tt(e,A){return{left:0,top:0,width:e,pointerLeft:Math.round(e/2),pointerTop:Math.round(A/2)}}function tr(e,A,t,r){if(!A.img)return;e.img&&A.img!==e.img&&(e.prevImg=e.img,e.imageChanged=!0);let o=A.imageWidth||t,n=A.imageHeight||r,i=e.imgW!==o||e.imgH!==n;if(e.img=A.img,e.imgW=o,e.imgH=n,i){let A=tt(o,n);e.camera=tA({},A),e.prevCamera=tA({},A),e.pointerMoved=!1}}function to(e,A){return Math.abs(e.pointerLeft-A.pointerLeft)>1||Math.abs(e.pointerTop-A.pointerTop)>1}function tn(e,A,t,r,o){let n=tt(t,r),i={img:"",imgW:t,imgH:r,camera:tA({},n),prevCamera:tA({},n),prevImg:null,insights:[],spinning:!1,spinningElapsedMs:0,pointerImg:e8,title:"",subTitle:"",taskId:void 0,frameInScript:0,scriptIndex:0,imageChanged:!1,pointerMoved:!1,rawProgress:0};for(let n=0;n<e.length;n++){var a,s;let l=e[n],c=l.startFrame+l.durationInFrames;if(0===l.durationInFrames){l.startFrame<=A&&("pointer"===l.type&&l.pointerImg&&(i.pointerImg=l.pointerImg),i.title=l.title||i.title,i.subTitle=l.subTitle||i.subTitle,i.taskId=null!=(a=l.taskId)?a:i.taskId,i.scriptIndex=n);continue}if(A<l.startFrame)break;switch(i.title=l.title||i.title,i.subTitle=l.subTitle||i.subTitle,i.taskId=null!=(s=l.taskId)?s:i.taskId,i.scriptIndex=n,i.frameInScript=A-l.startFrame,i.rawProgress=Math.min(i.frameInScript/l.durationInFrames,1),l.type){case"img":!function(e,A,t,r,o){tr(e,A,r,o);let n=A.startFrame+A.durationInFrames;A.cameraTarget?(e.prevCamera=tA({},e.camera),e.camera=tA({},A.cameraTarget),e.pointerMoved=to(e.prevCamera,e.camera)):t>=n&&(e.pointerMoved=!1,e.imageChanged=!1),e.spinning=!1}(i,l,A,t,r);break;case"insight":!function(e,A,t,r,o){if(tr(e,A,r,o),e.insights.some(e=>e.highlightElement===A.highlightElement&&e.searchArea===A.searchArea)||e.insights.push({highlightElement:A.highlightElement,searchArea:A.searchArea,alpha:1}),A.cameraTarget&&void 0!==A.insightPhaseFrames){let r=A.startFrame+A.insightPhaseFrames;t>=r&&(e.prevCamera=tA({},e.camera),e.camera=tA({},A.cameraTarget),e.rawProgress=Math.min((t-r)/(A.cameraPhaseFrames||1),1),e.pointerMoved=to(e.prevCamera,e.camera))}e.spinning=!1}(i,l,A,t,r);break;case"clear-insight":!function(e,A,t){let r=A.startFrame+A.durationInFrames,o=1-e.rawProgress;e.insights=e.insights.map(e=>{var A,t;return A=tA({},e),t=t={alpha:o},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A}),t>=r&&(e.insights=[]),e.spinning=!1}(i,l,A);break;case"spinning-pointer":i.spinning=!0,i.spinningElapsedMs=i.frameInScript/o*1e3;break;case"sleep":i.spinning=!1}A>=c&&("clear-insight"!==l.type&&(i.imageChanged=!1),i.pointerMoved=!1,i.rawProgress=1,l.cameraTarget&&(i.prevCamera=tA({},i.camera)))}if(!i.img){let A=e.find(e=>"img"===e.type&&e.img);A&&(i.img=A.img,i.imgW=A.imageWidth||t,i.imgH=A.imageHeight||r)}return{img:i.img,imageWidth:i.imgW,imageHeight:i.imgH,prevImg:i.imageChanged?i.prevImg:null,camera:i.camera,prevCamera:i.prevCamera,insights:i.insights,spinning:i.spinning,spinningElapsedMs:i.spinningElapsedMs,currentPointerImg:i.pointerImg,title:i.title,subTitle:i.subTitle,taskId:i.taskId,frameInScript:i.frameInScript,scriptIndex:i.scriptIndex,imageChanged:i.imageChanged,pointerMoved:i.pointerMoved,rawProgress:i.rawProgress}}function ti(e,A,t,r){let o=Math.min(e/t,A/r),n=t*o,i=r*o;return{offsetX:(e-n)/2,offsetY:(A-i)/2,contentWidth:n,contentHeight:i}}let ta=e=>{let{frameMap:A,autoZoom:t,frame:n,width:i,height:a,fps:s}=e,{scriptFrames:l,imageWidth:c,imageHeight:d}=A,u=(0,o.useMemo)(()=>tn(l,n,c,d,s),[l,n,c,d,s]);if(!u.img)return null;let{img:p,imageWidth:g,imageHeight:f,prevImg:m,camera:h,prevCamera:y,insights:E,spinning:v,spinningElapsedMs:b,currentPointerImg:k,title:C,subTitle:S,frameInScript:I,imageChanged:R,pointerMoved:x,rawProgress:j}=u,P=x?Math.min(j/.375,1):j,O=x?j<=.375?0:Math.min((j-.375)/.625,1):j,w=y.pointerLeft+(h.pointerLeft-y.pointerLeft)*P,N=y.pointerTop+(h.pointerTop-y.pointerTop)*P,T=t?y.left+(h.left-y.left)*O:0,K=t?y.top+(h.top-y.top)*O:0,M=t?y.width+(h.width-y.width)*O:g,{offsetX:B,offsetY:D,contentWidth:z,contentHeight:Q}=ti(i,a,g,f),L=-(z/g*T),Z=-(Q/f*K),X=`scale(${g/M}) translate(${L}px, ${Z}px)`,J=f/g*M,U=(w-T)/M*z,F=(N-K)/J*Q,q=h.pointerLeft!==Math.round(g/2)||h.pointerTop!==Math.round(f/2)||y.pointerLeft!==Math.round(g/2)||y.pointerTop!==Math.round(f/2),V=Math.max(1,Math.sqrt(g/1920)),G=R?Math.min(I/10,1):1,H=v?(Math.sin(b/500-Math.PI/2)+1)/2*Math.PI*2:0;return(0,r.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"#000"},children:(0,r.jsx)("div",{style:{position:"absolute",left:B,top:D,width:z,height:Q,overflow:"hidden"},children:(0,r.jsxs)("div",{style:{width:z,height:Q,position:"relative",overflow:"hidden"},children:[R&&m&&G<1&&(0,r.jsx)("div",{style:{position:"absolute",width:z,height:Q,overflow:"hidden",opacity:1-G},children:(0,r.jsx)("img",{alt:"",src:m,style:{width:z,height:Q,transformOrigin:"0 0",transform:X}})}),(0,r.jsxs)("div",{style:{position:"absolute",width:z,height:Q,overflow:"hidden",opacity:R?G:1},children:[(0,r.jsx)("img",{alt:"",src:p,style:{width:z,height:Q,transformOrigin:"0 0",transform:X}}),(0,r.jsx)("div",{style:{position:"absolute",top:0,left:0,width:z,height:Q,transformOrigin:"0 0",transform:X,pointerEvents:"none"},children:0===E.length?null:E.map((e,A)=>{let t=[];if(e.highlightElement){let o=e.highlightElement.rect;t.push((0,r.jsx)("div",{style:{position:"absolute",left:o.left,top:o.top,width:o.width,height:o.height,background:"rgba(253, 89, 7, 0.4)",border:`${2*V}px solid #fd5907`,boxShadow:`${2*V}px ${2*V}px ${+V}px rgba(51, 51, 51, 0.3)`,opacity:e.alpha,pointerEvents:"none"}},`highlight-${A}`))}if(e.searchArea){let o=e.searchArea;t.push((0,r.jsx)("div",{style:{position:"absolute",left:o.left,top:o.top,width:o.width,height:o.height,background:"rgba(2, 131, 145, 0.4)",border:`${2*V}px solid #028391`,boxShadow:`${2*V}px ${2*V}px ${+V}px rgba(51, 51, 51, 0.3)`,opacity:e.alpha,pointerEvents:"none"}},`search-${A}`))}return t})})]}),v&&(0,r.jsx)("img",{alt:"",src:e4,style:{position:"absolute",left:U-22*V,top:F-28*V,width:44*V,height:56*V,transform:`rotate(${H}rad)`,transformOrigin:"center center",filter:"drop-shadow(0 1px 2px rgba(0,0,0,0.3))"}}),q&&!v&&(0,r.jsx)("img",{alt:"",src:k,style:{position:"absolute",left:U-6*V,top:F-4*V,width:44*V,height:56*V,filter:"drop-shadow(0 1px 2px rgba(0,0,0,0.3))"}})]})})})};function ts(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function tl(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){ts(n,r,o,i,a,"next",e)}function a(e){ts(n,r,o,i,a,"throw",e)}i(void 0)})}}function tc(e){return new Promise((A,t)=>{let r=new Image;r.crossOrigin="anonymous",r.onload=()=>A(r),r.onerror=t,r.src=e})}function td(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function tu(e,A){let t=Math.floor(e/A),r=Math.floor(t/60);return`${String(r).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}function tp(e){var A,t;let n,{autoZoom:i,setAutoZoom:a,playbackSpeed:s,setPlaybackSpeed:l,subtitleEnabled:c,setSubtitleEnabled:d}=ew();(0,o.useEffect)(()=>{(null==e?void 0:e.autoZoom)!==void 0&&a(e.autoZoom)},[null==e?void 0:e.autoZoom,a]);let u=null==e?void 0:e.replayScripts,p=(0,o.useMemo)(()=>u&&0!==u.length?function(e,A){let t=(null==A?void 0:A.imageWidth)||1920,r=(null==A?void 0:A.imageHeight)||1080;for(let A of e)if(("img"===A.type||"insight"===A.type)&&A.img){t=A.imageWidth||t,r=A.imageHeight||r;break}let o=[],n=0;for(let A of e){var i,a,s,l;let e=A.duration;switch(A.type){case"sleep":{let t=Math.ceil(e/1e3*30);o.push({type:"sleep",startFrame:n,durationInFrames:t,title:A.title,subTitle:A.subTitle,taskId:A.taskId}),n+=t;break}case"img":{let s=Math.max(Math.ceil(e/1e3*30),1),l=A.camera,c=A.imageWidth||t,d=A.imageHeight||r,u={type:"img",startFrame:n,durationInFrames:s,img:A.img,imageWidth:c,imageHeight:d,title:A.title,subTitle:A.subTitle,taskId:A.taskId};l&&(u.cameraTarget={left:l.left,top:l.top,width:l.width,pointerLeft:null!=(i=l.pointerLeft)?i:Math.round(c/2),pointerTop:null!=(a=l.pointerTop)?a:Math.round(d/2)}),o.push(u),n+=s;break}case"insight":{let i=Math.max(Math.ceil(e/1e3*30),1),a=Math.ceil((A.insightCameraDuration||0)/1e3*30),c=i+a,d=A.imageWidth||t,u=A.imageHeight||r,p=A.camera,g={type:"insight",startFrame:n,durationInFrames:c,img:A.img,imageWidth:d,imageHeight:u,insightPhaseFrames:i,cameraPhaseFrames:a,highlightElement:A.highlightElement,searchArea:A.searchArea,title:A.title,subTitle:A.subTitle,taskId:A.taskId};p&&(g.cameraTarget={left:p.left,top:p.top,width:p.width,pointerLeft:null!=(s=p.pointerLeft)?s:Math.round(d/2),pointerTop:null!=(l=p.pointerTop)?l:Math.round(u/2)}),o.push(g),n+=c;break}case"clear-insight":{let t=Math.max(Math.ceil(e/1e3*30),1);o.push({type:"clear-insight",startFrame:n,durationInFrames:t,title:A.title,subTitle:A.subTitle,taskId:A.taskId}),n+=t;break}case"spinning-pointer":{let t=Math.max(Math.ceil(e/1e3*30),1);o.push({type:"spinning-pointer",startFrame:n,durationInFrames:t,title:A.title,subTitle:A.subTitle,taskId:A.taskId}),n+=t;break}case"pointer":o.push({type:"pointer",startFrame:n,durationInFrames:0,pointerImg:A.img,title:A.title,subTitle:A.subTitle,taskId:A.taskId})}}let c=Math.max(n,1);return{scriptFrames:o,totalDurationInFrames:c,fps:30,stepsDurationInFrames:c,imageWidth:t,imageHeight:r}}(u,{imageWidth:null==e?void 0:e.imageWidth,imageHeight:null==e?void 0:e.imageHeight}):null,[null==e?void 0:e.imageHeight,null==e?void 0:e.imageWidth,u]),g=(0,o.useRef)(null),f=(0,o.useRef)(null),m=(0,o.useRef)(null),[h,y]=(0,o.useState)({width:0,height:0});(0,o.useEffect)(()=>{let e=f.current;if(!e)return;let A=new ResizeObserver(e=>{for(let A of e){let{width:e,height:t}=A.contentRect;y(A=>A.width===e&&A.height===t?A:{width:e,height:t})}});return A.observe(e),()=>A.disconnect()},[]);let E=function(e){var A,t;let{durationInFrames:r,fps:n,autoPlay:i=!1,loop:a=!1}=e,[s,l]=(0,o.useState)(0),[c,d]=(0,o.useState)(i),u=(0,o.useRef)(c),p=(0,o.useRef)(s),g=(0,o.useRef)(null!=(A=e.playbackRate)?A:1),f=(0,o.useRef)(r),m=(0,o.useRef)(n),h=(0,o.useRef)(a);u.current=c,p.current=s,g.current=null!=(t=e.playbackRate)?t:1,f.current=r,m.current=n,h.current=a,(0,o.useEffect)(()=>{let e;if(!c)return;let A=null,t=0,r=o=>{if(null!==A){let e=(o-A)*g.current;t+=e;let r=1e3/m.current;for(;t>=r;){t-=r;let e=p.current+1;if(e>=f.current)if(h.current)p.current=0,l(0);else{p.current=f.current-1,l(f.current-1),d(!1);return}else p.current=e,l(e)}}A=o,e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[c]);let y=(0,o.useCallback)(()=>{p.current>=f.current-1&&(p.current=0,l(0)),d(!0)},[]),E=(0,o.useCallback)(()=>d(!1),[]);return{currentFrame:s,playing:c,play:y,pause:E,toggle:(0,o.useCallback)(()=>{u.current?d(!1):(p.current>=f.current-1&&(p.current=0,l(0)),d(!0))},[]),seekTo:(0,o.useCallback)(e=>{let A=Math.max(0,Math.min(e,f.current-1));p.current=A,l(A)},[])}}({durationInFrames:Math.max(null!=(A=null==p?void 0:p.totalDurationInFrames)?A:1,1),fps:null!=(t=null==p?void 0:p.fps)?t:30,autoPlay:!0,loop:!1,playbackRate:s});(0,o.useEffect)(()=>{if(!p||!(null==e?void 0:e.onTaskChange))return;let A=function(e,A){let t=null;for(let n of e){var r,o;if(0===n.durationInFrames){n.startFrame<=A&&(t=null!=(r=n.taskId)?r:t);continue}if(A<n.startFrame)break;t=null!=(o=n.taskId)?o:t}return t}(p.scriptFrames,E.currentFrame);A!==m.current&&(m.current=A,e.onTaskChange(A))},[p,null==e?void 0:e.onTaskChange,E.currentFrame]);let v=(0,o.useMemo)(()=>{var e;let A;return p?(e=E.currentFrame,(A=tn(p.scriptFrames,e,p.imageWidth,p.imageHeight,p.fps)).img?A:null):null},[p,E.currentFrame]),b=(0,o.useMemo)(()=>v&&(v.title||v.subTitle)?{title:v.title,subTitle:v.subTitle}:null,[v]),[k,C]=(0,o.useState)(!0),S=(0,o.useRef)(null),I=(0,o.useCallback)(()=>{C(!0),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>C(!1),3e3)},[]),R=(0,o.useCallback)(()=>{C(!0),S.current&&clearTimeout(S.current)},[]),x=(0,o.useCallback)(()=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>C(!1),1e3)},[]),j=(0,o.useCallback)(e=>{"Space"===e.code&&(e.preventDefault(),E.toggle())},[E]),P=(0,o.useRef)(null),O=(0,o.useCallback)(e=>{if(!p||!P.current)return;let A=P.current;A.setPointerCapture(e.pointerId);let t=e=>{let t=A.getBoundingClientRect(),r=Math.max(0,Math.min(1,(e-t.left)/t.width));E.seekTo(Math.round(r*(p.totalDurationInFrames-1)))};t(e.clientX);let r=e=>t(e.clientX),o=()=>{A.removeEventListener("pointermove",r),A.removeEventListener("pointerup",o)};A.addEventListener("pointermove",r),A.addEventListener("pointerup",o)},[p,E]),[w,N]=(0,o.useState)(!1),T=(0,o.useCallback)(()=>{let e=g.current;e&&(document.fullscreenElement?document.exitFullscreen().then(()=>N(!1)):e.requestFullscreen().then(()=>N(!0)))},[]);(0,o.useEffect)(()=>{let e=()=>N(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);let[K,M]=(0,o.useState)(!1),[B,D]=(0,o.useState)(0),z=(0,o.useCallback)(()=>{var e;return(e=function*(){if(p&&!K){M(!0),D(0);try{var e;yield(e=e=>D(Math.round(100*e)),tl(function*(){let{totalDurationInFrames:A,fps:t}=p,r=new Set;for(let e of p.scriptFrames)e.img&&r.add(e.img);let o=new Map;yield Promise.all([...r].map(e=>tl(function*(){try{o.set(e,(yield tc(e)))}catch(e){}})()));let n=null,i=null;try{n=yield tc(e8)}catch(e){}try{i=yield tc(e4)}catch(e){}let a=document.createElement("canvas");a.width=960,a.height=540;let s=a.getContext("2d"),l=a.captureStream(t),c=new MediaRecorder(l,{mimeType:"video/webm"}),d=[];return c.ondataavailable=e=>{e.data.size>0&&d.push(e.data)},new Promise((r,a)=>{c.onerror=()=>a(Error("MediaRecorder error")),c.onstop=()=>{if(0===d.length)return void a(Error("No video data"));let e=new Blob(d,{type:"video/webm"}),A=URL.createObjectURL(e),t=document.createElement("a");t.href=A,t.download="midscene_replay.webm",t.click(),l.getTracks().forEach(e=>e.stop()),setTimeout(()=>URL.revokeObjectURL(A),1e3),r()},c.start();let u=1e3/t,g=performance.now(),f=-1,m=()=>{let t=Math.min(Math.floor((performance.now()-g)/u),A-1);t>f&&(f=t,s.clearRect(0,0,960,540),function(e,A,t,r,o,n){var i,a,s,l,c,d,u,p,g,f;let m,{scriptFrames:h,imageWidth:y,imageHeight:E,fps:v}=t,b=tn(h,A,y,E,v);if(!b.img)return;let{img:k,prevImg:C,imageWidth:S,imageHeight:I,camera:R,prevCamera:x,pointerMoved:j,imageChanged:P,rawProgress:O,frameInScript:w,spinning:N,spinningElapsedMs:T,insights:K}=b,M=j?Math.min(O/.375,1):O,B=j?O<=.375?0:Math.min((O-.375)/.625,1):O,D=(i=x.left,a=R.left,i+(a-i)*B),z=(s=x.top,l=R.top,s+(l-s)*B),Q=(c=x.width,d=R.width,c+(d-c)*B),L=(u=x.pointerLeft,p=R.pointerLeft,u+(p-u)*M),Z=(g=x.pointerTop,f=R.pointerTop,g+(f-g)*M),X=S/Q,{offsetX:J,offsetY:U,contentWidth:F,contentHeight:q}=ti(960,540,S,I),V=-(F/S*D),G=-(q/I*z),H=P?Math.min(Math.max(w/10,0),1):1;e.fillStyle="#000",e.fillRect(0,0,960,540);let W=(A,t)=>{let o=r.get(A);o&&!(t<=0)&&(e.save(),e.globalAlpha=t,e.beginPath(),e.rect(0,0,960,540),e.clip(),e.translate(J+V*X,U+G*X),e.scale(X,X),e.drawImage(o,0,0,F,q),e.restore())};P&&C&&H<1&&W(C,1-H),W(k,P?H:1),K.length>0&&function(e,A,t,r,o){for(let n of A)if(!(n.alpha<=0)){if(e.save(),e.globalAlpha*=n.alpha,n.highlightElement){let A=n.highlightElement.rect,i=r+(A.left*t.zoom+t.tx*t.zoom),a=o+(A.top*t.zoom+t.ty*t.zoom),s=A.width*t.zoom,l=A.height*t.zoom;e.fillStyle="rgba(253, 89, 7, 0.4)",e.fillRect(i,a,s,l),e.strokeStyle="#fd5907",e.lineWidth=1,e.strokeRect(i,a,s,l),e.shadowColor="rgba(51, 51, 51, 0.4)",e.shadowBlur=2,e.shadowOffsetX=4,e.shadowOffsetY=4,e.strokeRect(i,a,s,l),e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}if(n.searchArea){let A=n.searchArea,i=r+(A.left*t.zoom+t.tx*t.zoom),a=o+(A.top*t.zoom+t.ty*t.zoom),s=A.width*t.zoom,l=A.height*t.zoom;e.fillStyle="rgba(2, 131, 145, 0.4)",e.fillRect(i,a,s,l),e.strokeStyle="#028391",e.lineWidth=1,e.strokeRect(i,a,s,l)}e.restore()}}(e,K,{zoom:X,tx:V,ty:G},J,U);let Y=I/S*Q,_=J+(L-D)/Q*F,$=U+(Z-z)/Y*q,ee=Math.abs(R.pointerLeft-Math.round(S/2))>1||Math.abs(R.pointerTop-Math.round(I/2))>1||Math.abs(x.pointerLeft-Math.round(S/2))>1||Math.abs(x.pointerTop-Math.round(I/2))>1;N&&n&&(m=(Math.sin(T/500-Math.PI/2)+1)/2*Math.PI*2,e.save(),e.translate(_,$),e.rotate(m),e.drawImage(n,-11,-14,22,28),e.restore()),!N&&ee&&o&&e.drawImage(o,_-3,$-2,22,28)}(s,t,p,o,n,i),null==e||e((t+1)/A)),t<A-1?requestAnimationFrame(m):setTimeout(()=>c.stop(),2*u)};requestAnimationFrame(m)})})()),e0.Ay.success("Video exported")}catch(e){console.error("Export failed:",e),e0.Ay.error("Export failed")}finally{M(!1),D(0)}}},function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){td(n,r,o,i,a,"next",e)}function a(e){td(n,r,o,i,a,"throw",e)}i(void 0)})})()},[p,K]),Q=(0,o.useMemo)(()=>{if(!p)return[];let{scriptFrames:e,totalDurationInFrames:A}=p;if(0===A)return[];let t=[];for(let r of e){if("img"!==r.type&&"insight"!==r.type||0===r.durationInFrames)continue;let e=r.startFrame,o=e/A*100;if(o>1&&o<99){let A=[r.title,r.subTitle].filter(Boolean);t.push({percent:o,title:A.length>0?A.join(": "):`Chapter ${t.length+1}`,frame:e})}}return t},[p]);if(!u||0===u.length||!p)return(0,r.jsx)("div",{className:"player-container"});let L=(null==v?void 0:v.imageWidth)||p.imageWidth,Z=(null==v?void 0:v.imageHeight)||p.imageHeight,X=Z>L,J=p.totalDurationInFrames,U=J>1?E.currentFrame/(J-1)*100:0;return(0,r.jsx)("div",{className:"player-container","data-fit-mode":null==e?void 0:e.fitMode,children:(0,r.jsxs)("div",{className:"canvas-container",ref:g,onKeyDown:j,onMouseMove:I,onMouseEnter:R,onMouseLeave:x,children:[(0,r.jsx)("div",{className:"player-wrapper","data-portrait":X?"":void 0,style:{aspectRatio:`${L}/${Z}`},children:(0,r.jsx)("div",{ref:f,style:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",overflow:"hidden"},onClick:E.toggle,children:(n=h.width>0&&h.height>0?Math.min(h.width/L,h.height/Z):1,(0,r.jsx)("div",{style:{width:L*n,height:Z*n,flexShrink:0,position:"relative",overflow:"hidden"},children:(0,r.jsx)("div",{style:{width:L,height:Z,transformOrigin:"0 0",transform:`scale(${n})`},children:(0,r.jsx)(ta,{frameMap:p,autoZoom:i,frame:E.currentFrame,width:L,height:Z,fps:p.fps})})}))})}),c&&b&&(0,r.jsxs)("div",{className:"player-subtitle",children:[b.title&&(0,r.jsx)("span",{className:"player-subtitle-badge",children:b.title}),b.subTitle&&(0,r.jsx)("span",{className:"player-subtitle-text",children:b.subTitle})]}),(0,r.jsxs)("div",{className:`control-bar ${k?"":"hidden"}`,onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("div",{className:"status-icon",onClick:E.toggle,children:E.playing?(0,r.jsx)(A$.A,{}):(0,r.jsx)(A0.A,{})}),(0,r.jsxs)("span",{className:"time-display",children:[tu(E.currentFrame,p.fps)," /"," ",tu(J,p.fps)]}),(0,r.jsxs)("div",{className:"seek-bar-track",ref:P,onPointerDown:O,children:[(0,r.jsx)("div",{className:"seek-bar-fill",style:{width:`${U}%`}}),(0,r.jsx)("div",{className:"seek-bar-knob",style:{left:`${U}%`}}),Q.map(e=>(0,r.jsx)(em.A,{title:e.title,overlayClassName:"chapter-tooltip",children:(0,r.jsx)("div",{className:"chapter-marker",style:{left:`${e.percent}%`},onClick:A=>{A.stopPropagation(),E.seekTo(e.frame)}})},e.percent))]}),(0,r.jsxs)("div",{className:"player-custom-controls",children:[(null==e?void 0:e.reportFileContent)&&(null==e?void 0:e.canDownloadReport)!==!1?(0,r.jsx)(em.A,{title:"Download Report",children:(0,r.jsx)("div",{className:"status-icon",onClick:()=>{let A,t,r;return A=new Blob([e.reportFileContent],{type:"text/html"}),t=URL.createObjectURL(A),void((r=document.createElement("a")).href=t,r.download="midscene_report.html",r.click(),setTimeout(()=>URL.revokeObjectURL(t),0))},children:(0,r.jsx)(A1.A,{})})}):null,(0,r.jsx)(A6.A,{trigger:["hover","click"],placement:"topRight",overlayStyle:{minWidth:"148px"},dropdownRender:()=>(0,r.jsxs)("div",{className:"player-settings-dropdown",children:[(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",gap:"4px",height:"32px",padding:"0 8px",borderRadius:"4px",cursor:K?"not-allowed":"pointer",opacity:K?.5:1},onClick:K?void 0:z,children:[K?(0,r.jsx)(A_.A,{size:"small"}):(0,r.jsx)(A3.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px"},children:K?`Exporting ${B}%`:"Export video"})]}),(0,r.jsx)("div",{className:"player-settings-divider"}),(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 8px",borderRadius:"4px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,r.jsx)(A4,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px",marginRight:"16px"},children:"Focus on cursor"})]}),(0,r.jsx)(A8.A,{size:"small",checked:i,onChange:e=>a(e)})]}),(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 8px",borderRadius:"4px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,r.jsx)(A5.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px",marginRight:"16px"},children:"Subtitle"})]}),(0,r.jsx)(A8.A,{size:"small",checked:c,onChange:e=>d(e)})]}),(0,r.jsx)("div",{className:"player-settings-divider"}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px",height:"32px",padding:"0 8px"},children:[(0,r.jsx)(A7.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px"},children:"Playback speed"})]}),[.5,1,1.5,2].map(e=>(0,r.jsxs)("div",{onClick:()=>l(e),style:{height:"32px",lineHeight:"32px",padding:"0 8px 0 24px",fontSize:"14px",cursor:"pointer",borderRadius:"4px"},className:`player-speed-option${s===e?" active":""}`,children:[e,"x"]},e))]}),menu:{items:[]},children:(0,r.jsx)("div",{className:"status-icon",children:(0,r.jsx)(te,{style:{width:"16px",height:"16px"}})})}),(0,r.jsx)("div",{className:"status-icon",onClick:T,children:w?(0,r.jsx)(A2.A,{}):(0,r.jsx)(A9.A,{})})]})]})]})})}let tg=e=>{let{result:A,loading:t,serverValid:o,serviceMode:n,replayScriptsInfo:i,replayCounter:a,loadingProgressText:s,verticalMode:l=!1,notReadyMessage:c,fitMode:d,autoZoom:u,actionType:p,canDownloadReport:g}=e,f="result-wrapper";l&&(f+=" vertical-mode-result"),i&&l&&(f+=" result-wrapper-compact");let m=AV,h=p&&D.includes(p);if(o||"Server"!==n)if(t)m=(0,r.jsxs)("div",{className:"loading-container",children:[(0,r.jsx)(A_.A,{spinning:t,indicator:(0,r.jsx)(eH.A,{spin:!0})}),(0,r.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,r.jsx)(AU,{text:s,speed:3})})]});else if(null==A?void 0:A.error){let e=(0,r.jsx)("pre",{style:{color:"#ff4d4f",whiteSpace:"pre-wrap"},children:null==A?void 0:A.error});m=A.reportHTML||i?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto",maxHeight:"40%",overflow:"auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Error:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tp,{replayScripts:null==i?void 0:i.scripts,imageWidth:null==i?void 0:i.width,imageHeight:null==i?void 0:i.height,reportFileContent:A.reportHTML||null,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==n},a)]})]}):e}else if(h&&(null==A?void 0:A.result)!==void 0&&i){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}),t=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tp,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:t,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==n},a)]})]})}else if(i){let e=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsx)(tp,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:e,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==n},a)}else if(h&&(null==A?void 0:A.result)!==void 0&&(null==A?void 0:A.reportHTML)){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)});m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tp,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==n},a)]})]})}else h&&(null==A?void 0:A.result)!==void 0?m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}):(null==A?void 0:A.reportHTML)?m=(0,r.jsx)(tp,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==n},a):(null==A?void 0:A.result)!==void 0&&(m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}));else m=Aq(c);return(0,r.jsx)("div",{className:f,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto",justifyContent:"center"},children:m})},tf=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"none","aria-label":"Playground",viewBox:"0 0 20 20"},e),t=t={children:[(0,r.jsx)("rect",{width:20,height:20,fill:"#2B83FF",rx:10}),(0,r.jsx)("path",{fill:"#2B83FF",stroke:"#fff",strokeLinejoin:"round",strokeWidth:1.125,d:"M6.866 5.882a.56.56 0 0 1 .667-.078l3.248 1.875 3.247 1.875a.563.563 0 0 1 0 .974l-3.247 1.875-3.248 1.875a.563.563 0 0 1-.784-.74l1.749-3.497-1.75-3.498a.56.56 0 0 1 .118-.661Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};var tm=t(8460),th=t(3896),ty=t(1631),tE=t(4665),tv={};tv.d=(e,A)=>{for(var t in A)tv.o(A,t)&&!tv.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},tv.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),tv.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var tb={};function tk(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}tv.r(tb),tv.d(tb,{create:()=>eE.vt});let{create:tC}=tb,tS="midscene-prompt-history-v2",tI="midscene-last-selected-type",tR=tC((e,A)=>{let t;return{history:(t=localStorage.getItem(tS))?JSON.parse(t):{},lastSelectedType:localStorage.getItem(tI)||"aiAct",clearHistory:t=>{let r=tk({},A().history);delete r[t],e({history:r}),localStorage.setItem(tS,JSON.stringify(r))},addHistory:t=>{var r,o;let{type:n}=t,i=A().history,a=i[n]||[],s=JSON.stringify({prompt:t.prompt,params:t.params}),l=[t,...a.filter(e=>JSON.stringify({prompt:e.prompt,params:e.params})!==s)];l.length>10&&(l.length=10);let c=(r=tk({},i),o=o={[n]:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(o)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(o,e))}),r);e({history:c}),localStorage.setItem(tS,JSON.stringify(c))},getHistoryForType:e=>A().history[e]||[],setLastSelectedType:A=>{e({lastSelectedType:A}),localStorage.setItem(tI,A)}}}),tx="ZodOptional",tj="ZodDefault",tP="ZodNullable",tO="ZodObject",tw="midscene_location_field_flag",tN=e=>"object"==typeof e&&null!==e&&("shape"in e||"ZodObject"===e.type),tT=e=>{var A,t,r;if((null==(A=e._def)?void 0:A.typeName)===tO){let A;if(e._def.shape&&(A="function"==typeof e._def.shape?e._def.shape():e._def.shape),!A&&e.shape&&(A=e.shape),A&&tw in A)return!0;let r=(null==(t=e._def)?void 0:t.description)||e.description||"";if("string"==typeof r&&r.toLowerCase().includes("input field"))return!0}if("object"==typeof e&&null!==e){let A=e.description||(null==(r=e._def)?void 0:r.description)||"";if("string"==typeof A){let e=A.toLowerCase();if(e.includes("input field")||e.includes("element")||e.includes("locate"))return!0}if("ZodObject"===e.typeName||"ZodObject"===e.type)return"string"==typeof A&&A.toLowerCase().includes("input field")}return!1},tK=e=>{var A,t,r,o,n;let i=e,a=!1,s=!1;for(;(null==(A=i._def)?void 0:A.typeName)===tx||(null==(t=i._def)?void 0:t.typeName)===tj||(null==(r=i._def)?void 0:r.typeName)===tP;)(null==(o=i._def)?void 0:o.typeName)===tx&&(a=!0),(null==(n=i._def)?void 0:n.typeName)===tj&&(s=!0),i=i._def.innerType||i;return{actualField:i,isOptional:a,hasDefault:s}},tM=e=>{if(!e)return"";let A=e.startsWith("ai")?e.slice(2):e;if(A.startsWith("IOS"))return A.substring(3).replace(/([A-Z])/g," $1").replace(/^/,"IOS").trim();let t=A.replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t};var tB=t(6356);let tD=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27"},e),t=t={children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.333,d:"M19.527 8.855h-2M14.86 7.522v2.667M14.86 8.855H7.527M10.194 13.522H7.527M12.86 12.189v2.666M20.193 13.522H12.86M19.527 18.189h-2M14.86 16.855v2.667M14.86 18.189H7.527"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tz=e=>{let A,{showDeepLocateOption:t=!1,showDeepThinkOption:o=!1,enableTracking:n=!1,showDataExtractionOptions:i=!1,hideDomAndScreenshotOptions:a=!1,deviceType:s}=e,l=eF(e=>e.forceSameTabNavigation),c=eF(e=>e.setForceSameTabNavigation),d=eF(e=>e.deepLocate),u=eF(e=>e.setDeepLocate),p=eF(e=>e.deepThink),g=eF(e=>e.setDeepThink),f=eF(e=>e.screenshotIncluded),m=eF(e=>e.setScreenshotIncluded),h=eF(e=>e.domIncluded),y=eF(e=>e.setDomIncluded),E=eF(e=>e.imeStrategy),v=eF(e=>e.setImeStrategy),b=eF(e=>e.autoDismissKeyboard),k=eF(e=>e.setAutoDismissKeyboard),C=eF(e=>e.keyboardDismissStrategy),S=eF(e=>e.setKeyboardDismissStrategy),I=eF(e=>e.alwaysRefreshScreenInfo),R=eF(e=>e.setAlwaysRefreshScreenInfo);if(!n&&!t&&!o&&!i&&"android"!==s&&"ios"!==s)return null;let x=(A=[],n&&A.push({label:(0,r.jsx)(tB.A,{onChange:e=>c(e.target.checked),checked:l,children:"Limit popup to current tab"}),key:"track-config"}),t&&A.push({label:(0,r.jsx)(tB.A,{onChange:e=>{u(e.target.checked)},checked:d,children:"Deep Locate"}),key:"deep-locate-config"}),o&&A.push({label:(0,r.jsx)(tB.A,{onChange:e=>{g(e.target.checked)},checked:p,children:"Deep Think"}),key:"deep-think-config"}),i&&!a&&(A.push({label:(0,r.jsx)(tB.A,{onChange:e=>{m(e.target.checked)},checked:f,children:"Include screenshot in request"}),key:"screenshot-included-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Include DOM info in request"}),(0,r.jsxs)(tE.A.Group,{size:"small",value:h,onChange:e=>y(e.target.value),children:[(0,r.jsx)(tE.A,{value:!1,children:"Off"}),(0,r.jsx)(tE.A,{value:!0,children:"All"}),(0,r.jsx)(tE.A,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),"android"===s&&(A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"IME strategy"}),(0,r.jsxs)(tE.A.Group,{size:"small",value:E,onChange:e=>v(e.target.value),children:[(0,r.jsx)(tE.A,{value:"always-yadb",children:"Always YADB"}),(0,r.jsx)(tE.A,{value:"yadb-for-non-ascii",children:"YADB for non-ASCII"})]})]}),key:"ime-strategy-config"}),A.push({label:(0,r.jsx)(tB.A,{onChange:e=>k(e.target.checked),checked:b,children:e5}),key:"auto-dismiss-keyboard-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Keyboard dismiss strategy"}),(0,r.jsxs)(tE.A.Group,{size:"small",value:C,onChange:e=>S(e.target.value),children:[(0,r.jsx)(tE.A,{value:"esc-first",children:"ESC first"}),(0,r.jsx)(tE.A,{value:"back-first",children:"Back first"})]})]}),key:"keyboard-dismiss-strategy-config"}),A.push({label:(0,r.jsx)(tB.A,{onChange:e=>R(e.target.checked),checked:I,children:"Always refresh screen info"}),key:"always-refresh-screen-info-config"})),"ios"===s&&A.push({label:(0,r.jsx)(tB.A,{onChange:e=>k(e.target.checked),checked:b,children:e5}),key:"auto-dismiss-keyboard-config"}),A);return(0,r.jsx)("div",{className:"selector-trigger",children:(0,r.jsx)(A6.A,{menu:{items:x},trigger:["click"],children:(0,r.jsx)(tD,{width:24,height:24})})})};var tQ=t(9076),tL=t(5932);let{TextArea:tZ}=ey.A,tX=(e,A)=>`${e}${A?" (Optional)":""}`,tJ=e=>{let{name:A,label:t,isRequired:o,marginBottom:n,placeholder:i}=e,a=i||`Enter ${A}`;return(0,r.jsx)(e$.A.Item,{name:["params",A],label:tX(t,!o),rules:o?[{required:!0,message:`Please input ${A}`}]:[],style:{marginBottom:n},colon:!1,children:(0,r.jsx)(ey.A,{placeholder:a})},A)},tU=e=>{let{name:A,label:t,isRequired:o,marginBottom:n,placeholder:i}=e,a=i||`Describe the ${A}, use natural language`;return(0,r.jsx)(e$.A.Item,{name:["params",A],label:tX(t,!o),rules:o?[{required:!0,message:`The ${A} is required`}]:[],style:{marginBottom:n},colon:!1,children:(0,r.jsx)(tZ,{rows:2,placeholder:a})},A)},tF=e=>{var A;let{name:t,label:o,fieldSchema:n,isRequired:i,marginBottom:a,placeholder:s}=e,l=((null==(A=n._def)?void 0:A.values)||[]).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}));return(0,r.jsx)(e$.A.Item,{name:["params",t],label:o,rules:i?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},colon:!1,children:(0,r.jsx)(tQ.A,{placeholder:s||`Select ${t}`,options:l})},t)},tq=e=>{let{name:A,label:t,isRequired:o,marginBottom:n,placeholder:i}=e,a=500*("distance"===A),s=i&&Number(i)||a,l="distance"===A?1e4:void 0;return(0,r.jsx)(e$.A.Item,{name:["params",A],label:`${t}${"distance"===A?" (px)":""}`,rules:o?[{required:!0,message:`Please input ${A}`},{type:"number",min:0,message:`${t} must be at least 0`}]:[{type:"number",min:0,message:`${t} must be at least 0`}],style:{flex:"distance"===A?1:void 0,marginBottom:n},colon:!1,children:(0,r.jsx)(tL.A,{placeholder:s.toString(),min:0,max:l,step:"distance"===A?10:1,style:{width:"100%"}})},A)},tV=e=>{let{name:A,label:t,isRequired:o,marginBottom:n,placeholder:i}=e;return(0,r.jsx)(e$.A.Item,{name:["params",A],label:tX(t,!o),rules:o?[{required:!0,message:`Please select ${A}`}]:[],style:{marginBottom:n},colon:!1,children:(0,r.jsx)(tQ.A,{placeholder:i||`Select ${A}`,options:[{value:!0,label:"True"},{value:!1,label:"False"}]})},A)},tG=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16"},e),t=t={children:(0,r.jsx)("path",{stroke:"#333",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.333,d:"m3.124 2.667 11.162 10.666M3.124 13.333 14.286 2.667"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tH=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M6.63 9.021c-2.862 6.126 2.197 10.501 6.063 10.501a7 7 0 1 0-6.063-10.5"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M12.695 8.322v4.203l2.967 2.968"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tW=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19"},e),t=t={children:[(0,r.jsxs)("g",{stroke:"currentColor",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,r.jsx)("path",{d:"M8.397 14.29a6.375 6.375 0 1 0 0-12.75 6.375 6.375 0 0 0 0 12.75Z"}),(0,r.jsx)("path",{strokeLinecap:"round",d:"M10.519 5.42a3 3 0 0 0-2.122-.88 3 3 0 0 0-2.121.88M12.98 12.499l3.182 3.182"})]}),(0,r.jsx)("defs",{children:(0,r.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,r.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},{Text:tY}=eg.A,t_=e=>{let{onSelect:A,history:t,currentType:n}=e,[i,a]=(0,o.useState)(!1),[s,l]=(0,o.useState)(""),c=tR(e=>e.clearHistory),d=(0,o.useRef)(null),u=(0,o.useMemo)(()=>{let e=Date.now(),A=e-6048e5,r=e-31536e6,o=t.filter(e=>e.prompt.toLowerCase().includes(s.toLowerCase()));return{recent7Days:o.filter(e=>e.timestamp>=A),recent1Year:o.filter(e=>e.timestamp<A&&e.timestamp>=r),older:o.filter(e=>e.timestamp<r)}},[t,s]);(0,o.useEffect)(()=>{if(!i)return;let e=e=>{d.current&&!d.current.contains(e.target)&&a(!1)},A=setTimeout(()=>{document.addEventListener("click",e)},100);return()=>{clearTimeout(A),document.removeEventListener("click",e)}},[i]);let p=(e,t)=>0===t.length?null:(0,r.jsxs)("div",{className:"history-group",children:[(0,r.jsx)("div",{className:"history-group-title",children:e}),t.map((e,t)=>(0,r.jsx)("div",{className:"history-item",onClick:()=>{A(e),a(!1)},children:e.prompt},`${e.timestamp}-${t}`))]},e);return(0,r.jsxs)("div",{className:"history-selector-wrapper",children:[(0,r.jsx)("div",{className:"selector-trigger",onClick:()=>a(!0),children:(0,r.jsx)(tH,{width:24,height:24})}),i&&(0,r.jsx)("div",{className:"history-modal-overlay",ref:d,children:(0,r.jsxs)("div",{className:"history-modal-container",children:[(0,r.jsxs)("div",{className:"history-modal-header",children:[(0,r.jsxs)(tY,{strong:!0,style:{fontSize:"16px"},children:["History (",t.length,")"]}),(0,r.jsx)(e1.Ay,{size:"small",type:"text",icon:(0,r.jsx)(tG,{width:16,height:16}),onClick:()=>a(!1),className:"close-button"})]}),(0,r.jsx)("div",{className:"history-search-section",children:(0,r.jsxs)("div",{className:"search-input-wrapper",children:[(0,r.jsx)(ey.A,{placeholder:"Search",value:s,onChange:e=>l(e.target.value),prefix:(0,r.jsx)(tW,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,r.jsx)(e1.Ay,{type:"link",onClick:()=>{c(n),l(""),a(!1)},className:"clear-button",disabled:0===t.length,children:"Clear"})]})}),(0,r.jsx)("div",{className:"history-content",children:0===t.length?(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(tY,{type:"secondary",children:"No history record"})}):(0,r.jsxs)(r.Fragment,{children:[p("Last 7 days",u.recent7Days),p("Last 1 year",u.recent1Year),p("Earlier",u.older),s&&0===u.recent7Days.length&&0===u.recent1Year.length&&0===u.older.length&&(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(tY,{type:"secondary",children:"No matching history record"})})]})})]})})]})};function t$(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let{TextArea:t0}=ey.A,t1=e=>{let A,t,n,i,a,s,{runButtonEnabled:l,form:c,serviceMode:d,selectedType:u,dryMode:p,stoppable:g,loading:f,onRun:m,onStop:h,clearPromptAfterRun:y=!0,actionSpace:E,hideDomAndScreenshotOptions:v=!1,deviceType:b}=e,[k,C]=(0,o.useState)(!1),[S,I]=(0,o.useState)(""),R="aiQuery"===u?"What do you want to query?":"aiAssert"===u?"What do you want to assert?":"aiTap"===u?"What element do you want to tap?":"aiDoubleClick"===u?"What element do you want to double-click?":"aiHover"===u?"What element do you want to hover over?":"aiInput"===u?"Format: <value> | <element>\nExample: hello world | search box":"aiRightClick"===u?"What element do you want to right-click?":"aiKeyboardPress"===u?"Format: <key> | <element (optional)>\nExample: Enter | text field":"aiScroll"===u?"Format: <direction> <amount> | <element (optional)>\nExample: down 500 | main content":"aiLocate"===u?"What element do you want to locate?":"aiBoolean"===u?"What do you want to check (returns true/false)?":"aiNumber"===u?"What number do you want to extract?":"aiString"===u?"What text do you want to extract?":"aiAsk"===u?"What do you want to ask?":"aiWaitFor"===u?"What condition do you want to wait for?":"What do you want to do?",x=(0,o.useRef)(null),j=(0,o.useRef)(null),P=e$.A.useWatch("params",c),O=(0,o.useRef)(null),w=tR(e=>e.history),N=tR(e=>e.lastSelectedType),T=tR(e=>e.addHistory),K=tR(e=>e.setLastSelectedType),M=(0,o.useMemo)(()=>w[u]||[],[w,u]),B=(0,o.useMemo)(()=>{if(E){let e=E.find(e=>e.interfaceAlias===u||e.name===u);return!!(null==e?void 0:e.paramSchema)&&(!tN(e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0)}return!1},[u,E]),D=(0,o.useMemo)(()=>{if(E&&E.length>0){let e=E.find(e=>e.interfaceAlias===u||e.name===u);if(e){if(e.paramSchema&&tN(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{isOptional:t}=tK(A[e]);return!t})}return!!e.paramSchema}}return!0},[u,E]),z=(0,o.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(u),[u]),Q=(0,o.useMemo)(()=>{if("aiAct"===u||"aiLocate"===u)return!0;if(E){let e=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==e?void 0:e.paramSchema)&&tN(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{actualField:t}=tK(A[e]);return tT(t)})}}return!1},[u,E]),L=(0,o.useMemo)(()=>"aiAct"===u,[u]),Z=(0,o.useMemo)(()=>{let e=z&&!v,A="android"===b||"ios"===b;return"In-Browser-Extension"===d||Q||L||e||A},[d,Q,L,z,v,b]),X=(0,o.useMemo)(()=>{let e=Object.keys(e7);if(!E||0===E.length)return e;let A=E.map(e=>e.interfaceAlias||e.name),t=new Set;return e.forEach(e=>{let r=e7[e];(null==r?void 0:r.group)==="extraction"||(null==r?void 0:r.group)==="validation"?t.add(e):A.includes(e)&&t.add(e)}),A.forEach(e=>{t.add(e)}),Array.from(t)},[E]),J=(0,o.useCallback)(()=>{if(!B||!E)return{};let e=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==e?void 0:e.paramSchema)&&tN(e.paramSchema)){let A={},t=e.paramSchema.shape||{};return Object.keys(t).forEach(e=>{let r=(e=>{var A;let t=e;for(;null==(A=t._def)?void 0:A.innerType;){if(t._def.typeName===tj&&t._def.defaultValue)return t._def.defaultValue();t=t._def.innerType}})(t[e]);void 0!==r&&(A[e]=r)}),A}return{}},[u,B,E]);(0,o.useEffect)(()=>{!c.getFieldValue("type")&&N&&c.setFieldValue("type",N)},[c,N]),(0,o.useEffect)(()=>{u&&u!==N&&K(u)},[u,N,K]);let U=(0,o.useCallback)(()=>{let e=j.current;if(!e)return;let A=null,t=e.querySelector(".ant-radio-button-wrapper-checked"),r=e.querySelector(".more-apis-button.selected-from-dropdown");if(t?A=t:r&&(A=r),A){let t=e.getBoundingClientRect(),r=A.getBoundingClientRect(),o=r.left-t.left+e.scrollLeft,n=r.width,i=t.width;e.scrollTo({left:Math.max(0,o-(i-n)/2),behavior:"smooth"})}},[]);(0,o.useEffect)(()=>{let e=M[0];if(!e||!O.current||e.timestamp!==O.current.timestamp)if(e)c.setFieldsValue({type:e.type,prompt:e.prompt||"",params:e.params}),I(e.prompt||""),O.current=e;else{let e=J();c.setFieldsValue({prompt:"",params:e}),I(""),O.current=null}},[u,M,c,J]),(0,o.useEffect)(()=>{let e=setTimeout(()=>{U()},100);return()=>clearTimeout(e)},[u,U]);let F=e$.A.useWatch("prompt",c);(0,o.useEffect)(()=>{F!==S&&I(F||"")},[F,S]);let q=(0,o.useCallback)(e=>{c.setFieldsValue({prompt:e.prompt,type:e.type,params:e.params}),I(e.prompt)},[c]),V=(0,o.useCallback)(e=>{I(e.target.value)},[]),G=(0,o.useMemo)(()=>{if(!B||!E)return!1;let e=E.find(e=>e.interfaceAlias===u||e.name===u);return!!((null==e?void 0:e.paramSchema)&&tN(e.paramSchema))&&1===Object.keys(e.paramSchema.shape||{}).length},[u,B,E]),H=(0,o.useMemo)(()=>((e,A,t,r,o,n)=>{if(!e)return!1;if(!(()=>{if(r){let e=r.find(e=>e.interfaceAlias===o||e.name===o);if(e){if(!e.paramSchema)return!1;if("object"==typeof e.paramSchema&&"shape"in e.paramSchema)return Object.keys(e.paramSchema.shape||{}).length>0}}return!0})())return!0;if(A){let e=t||{},A=null==r?void 0:r.find(e=>e.interfaceAlias===o||e.name===o);if((null==A?void 0:A.paramSchema)&&tN(A.paramSchema)){let t=A.paramSchema.shape||{};return Object.keys(t).every(A=>{let{isOptional:r}=tK(t[A]),o=e[A];return r||void 0!==o&&""!==o&&null!==o})}return!0}return n.trim().length>0})(l,!!B,P,E,u,S),[l,B,u,E,S,P]),W=(0,o.useCallback)(()=>{let e=c.getFieldsValue(),A="";if(B&&e.params&&E){let t=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==t?void 0:t.paramSchema)&&tN(t.paramSchema)){let r="",o=[],n=t.paramSchema.shape||{};Object.keys(n).forEach(A=>{var t;let i=null==(t=e.params)?void 0:t[A];if(null!=i&&""!==i){let{actualField:e}=tK(n[A]);tT(e)?r=String(i):"distance"===A?o.push(`${i}`):o.push(String(i))}});let i=o.join(" ");A=r?`${r} - ${i}`:i}else A=e.prompt||""}else A=e.prompt||"";let t={type:e.type,prompt:A,params:e.params,timestamp:Date.now()};if(T(t),m(),y)if(O.current=t,I(""),B){let e=J();c.setFieldValue("params",e)}else c.setFieldValue("prompt","")},[c,T,m,B,u,y,E,J]),Y=(0,o.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&H?(W(),e.preventDefault(),e.stopPropagation()):"Enter"===e.key&&setTimeout(()=>{if(x.current){var e;let A=null==(e=x.current.resizableTextArea)?void 0:e.textArea;if(A){let e=A.selectionStart,t=A.value.lastIndexOf("\n");(-1===t||e>t)&&(A.scrollTop=A.scrollHeight)}}},0)},[W,H]),_=(0,o.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&H&&(W(),e.preventDefault(),e.stopPropagation())},[W,H]),$=(0,o.useCallback)(()=>{if(!B)return null;if(E){let e=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==e?void 0:e.paramSchema)&&tN(e.paramSchema)){let A=e.paramSchema.shape||{},t=Object.keys(A);if(1===t.length){let e=t[0],{actualField:o}=tK(A[e]),n=tT(o),i=(()=>{var A,t;if(null==(A=o._def)?void 0:A.description)return o._def.description;if(o.description)return o.description;if(E){let A=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}return n?"Describe the element you want to interact with":"keyName"===e?"Enter key name or text to type":"value"===e?"Enter text to input":`Enter ${e}`})();return(0,r.jsx)(e$.A.Item,{name:["params",e],style:{margin:0},children:(0,r.jsx)(ey.A.TextArea,{className:"main-side-console-input-textarea",rows:3,placeholder:i,autoFocus:!0,onKeyDown:_})})}let n=[],i=t.sort((e,t)=>{let r=A[e],o=A[t],{isOptional:n}=tK(r),{isOptional:i}=tK(o);return!n&&i?-1:n&&!i?1:0});if(i.forEach((e,t)=>{var o,a,s;let{actualField:l,isOptional:c}=tK(A[e]),d=tT(l),p=e.charAt(0).toUpperCase()+e.slice(1),g=12*(t!==i.length-1),f=(()=>{var A,t;if(null==(A=l._def)?void 0:A.description)return l._def.description;if(l.description)return l.description;if(E){let A=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}if(d)return"Describe the element you want to interact with"})(),m={name:e,label:p,fieldSchema:l,isRequired:!c,marginBottom:g,placeholder:f};d?n.push((0,r.jsx)(tU,t$({},m),e)):(null==(o=l._def)?void 0:o.typeName)==="ZodEnum"?n.push((0,r.jsx)(tF,t$({},m),e)):(null==(a=l._def)?void 0:a.typeName)==="ZodNumber"?n.push((0,r.jsx)(tq,t$({},m),e)):(null==(s=l._def)?void 0:s.typeName)==="ZodBoolean"?n.push((0,r.jsx)(tV,t$({},m),e)):n.push((0,r.jsx)(tJ,t$({},m),e))}),"aiScroll"===u){let e=n.find(e=>o.isValidElement(e)&&"direction"===e.props.name),A=n.find(e=>o.isValidElement(e)&&"distance"===e.props.name),t=n.filter(e=>o.isValidElement(e)&&"direction"!==e.props.name&&"distance"!==e.props.name);if(e&&A)return(0,r.jsxs)("div",{className:"structured-params",children:[(0,r.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[e,A]}),t]})}return(0,r.jsx)("div",{className:"structured-params",children:n})}}return null},[u,B,E,_]),ee=(0,o.useCallback)(()=>{C(!0)},[]),eA=(0,o.useCallback)(()=>{C(!1)},[]),et=(0,o.useCallback)(()=>{let e=e=>(0,r.jsx)(e1.Ay,{type:"primary",icon:(0,r.jsx)(tm.A,{}),style:{borderRadius:20,zIndex:999},onClick:W,disabled:!H,loading:f,children:e});return p?"aiAct"===u?(0,r.jsx)(em.A,{title:"Start executing until some interaction actions need to be performed. You can see the process of planning and locating.",children:e("Dry Run")}):e("Run"):g?(0,r.jsx)(e1.Ay,{icon:(0,r.jsx)(th.A,{}),onClick:h,style:{borderRadius:20,zIndex:999},children:"Stop"}):e("Run")},[p,f,W,h,H,u,g]);return(0,r.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group",ref:j,children:[(0,r.jsx)(e$.A.Item,{name:"type",style:{margin:0},children:(0,r.jsx)(tE.A.Group,{buttonStyle:"solid",disabled:!l,children:e2.map(e=>{var A;return(0,r.jsx)(em.A,{title:(null==(A=e7[e])?void 0:A.title)||"",children:(0,r.jsx)(tE.A.Button,{value:e,children:tM(e)})},e)})})}),(0,r.jsx)(A6.A,{menu:(A=X.filter(e=>!e2.includes(e)),t=[],(n=A.filter(e=>{var A;return(null==(A=e7[e])?void 0:A.group)==="interaction"})).length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:n.map(e=>{var A;return{key:e,label:tM(e),title:(null==(A=e7[e])?void 0:A.title)||"",onClick:()=>{c.setFieldValue("type",e)}}})}),(i=A.filter(e=>{var A;return(null==(A=e7[e])?void 0:A.group)==="extraction"})).length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:i.map(e=>{var A;return{key:e,label:tM(e),title:(null==(A=e7[e])?void 0:A.title)||"",onClick:()=>{c.setFieldValue("type",e)}}})}),(a=A.filter(e=>{var A;return(null==(A=e7[e])?void 0:A.group)==="validation"})).length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:a.map(e=>{var A;return{key:e,label:tM(e),title:(null==(A=e7[e])?void 0:A.title)||"",onClick:()=>{c.setFieldValue("type",e)}}})}),(s=A.filter(e=>!e7[e])).length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:s.map(e=>({key:e,label:tM(e),title:"",onClick:()=>{c.setFieldValue("type",e)}}))}),{items:t}),placement:"bottomLeft",trigger:["click"],disabled:!l,overlayClassName:"more-apis-dropdown",children:(0,r.jsxs)(e1.Ay,{className:`more-apis-button ${!e2.includes(u)?"selected-from-dropdown":""}`,children:[u&&!e2.includes(u)?tM(u):"more",(0,r.jsx)(ty.A,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,r.jsxs)("div",{className:"action-icons",children:[Z&&(0,r.jsx)("div",{className:k?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:ee,onMouseLeave:eA,children:(0,r.jsx)(tz,{enableTracking:"In-Browser-Extension"===d,showDeepLocateOption:Q,showDeepThinkOption:L,showDataExtractionOptions:z,hideDomAndScreenshotOptions:v,deviceType:b})}),(0,r.jsx)(t_,{onSelect:q,history:M,currentType:u})]})]}),(0,r.jsxs)("div",{className:`main-side-console-input ${!l?"disabled":""} ${f?"loading":""}`,children:[D?B?G?$():(0,r.jsx)("div",{className:"structured-params-container",children:$()}):(0,r.jsx)(e$.A.Item,{name:"prompt",style:{margin:0},children:(0,r.jsx)(t0,{className:"main-side-console-input-textarea",disabled:!l,rows:3,placeholder:R,autoFocus:!0,onKeyDown:Y,onChange:V,ref:x})}):(0,r.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',tM(u)]}),(0,r.jsx)("div",{className:"form-controller-wrapper",children:et()})]})]})};function t3(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function t5(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){t3(n,r,o,i,a,"next",e)}function a(e){t3(n,r,o,i,a,"throw",e)}i(void 0)})}}let{Text:t7}=eg.A;function t2(e){let{error:A}=e;if(!A)return null;let t=A.replace(/^(Error:\s*)+/,"Error: ");return(0,r.jsx)(e_.A,{message:(0,r.jsx)("span",{style:{color:"#ff4d4f"},children:t}),type:"error",showIcon:!0})}function t9(e){let{playgroundSDK:A,storage:t,contextProvider:n,config:i={},branding:a={},className:s="",dryMode:l=!1,showContextPreview:c=!0}=e,[d]=e$.A.useForm(),{config:u}=eF(),[p,g]=(0,o.useState)(!1);(0,o.useEffect)(()=>{d.setFieldsValue({type:e2["0"]})},[d]),(0,o.useEffect)(()=>{t5(function*(){if(A&&"function"==typeof A.checkStatus)try{yield A.checkStatus(),g(!0)}catch(e){console.warn("Failed to initialize SDK, using default namespace:",e),g(!0)}else g(!0)})()},[A]);let f=(0,o.useMemo)(()=>{if(t)return t;if(!p)return null;let e=i.storageNamespace||(A&&A.id&&"string"==typeof A.id?`agent-${A.id}`:"playground-default"),r=Aw();return console.log(`Using ${r} storage for namespace: ${e}`),AO(r,e)},[t,p,i.storageNamespace,A]),{loading:m,setLoading:h,infoList:y,setInfoList:E,actionSpace:v,actionSpaceLoading:b,uiContextPreview:k,setUiContextPreview:C,showScrollToBottomButton:S,verticalMode:I,replayCounter:R,setReplayCounter:x,infoListRef:j,currentRunningIdRef:P,interruptedFlagRef:O,clearInfoList:w,handleScrollToBottom:N}=function(e,A,t,r){let[n,i]=(0,o.useState)(!1),[a,s]=(0,o.useState)([]),[l,c]=(0,o.useState)([]),[d,u]=(0,o.useState)(!0),[p,g]=(0,o.useState)(),[f,m]=(0,o.useState)(!1),[h,y]=(0,o.useState)(!0),E=(0,o.useRef)(0),[v,b]=(0,o.useState)(!1),[k,C]=(0,o.useState)(0),S=(0,o.useRef)(null),I=(0,o.useRef)(null),R=(0,o.useRef)({}),x=(0,o.useRef)(!1);(0,o.useEffect)(()=>{let e=()=>AT(function*(){let e=AM(AK({},e9(r)),{id:"welcome",timestamp:new Date});if(null==A?void 0:A.loadMessages)try{let t=yield A.loadMessages();0===t.length&&(t=yield AT(function*(){let e=AO(Aw(),"playground-default");try{if(null==e?void 0:e.loadMessages){let t=yield e.loadMessages();if(t.length>1)return console.log("Found data in old namespace, migrating..."),(null==A?void 0:A.saveMessages)&&(yield A.saveMessages(t)),e.clearMessages&&(yield e.clearMessages()),t}}catch(e){console.debug("No data found in old namespace:",e)}return[]})()),t.some(e=>"welcome"===e.id)?s(t):s([e,...t])}catch(A){console.error("Failed to load messages:",A),s([e])}else s([e])})();A&&!x.current?(x.current=!0,e()):A||0!==a.length||e()},[A]),(0,o.useEffect)(()=>{(null==A?void 0:A.saveMessages)&&a.length>1&&A.saveMessages(a).catch(e=>{e instanceof DOMException&&"QuotaExceededError"===e.name?console.warn("Storage quota exceeded - some messages may not be saved persistently"):console.error("Failed to save messages:",e)})},[a,A]),(0,o.useEffect)(()=>{(null==t?void 0:t.getUIContext)&&!p&&t.getUIContext().then(e=>g(e)).catch(e=>{console.error("Failed to get UI context:",e)})},[t,p]),(0,o.useEffect)(()=>{AT(function*(){u(!0);try{var A;if(!e)return void c([]);let r=p||(yield null==t||null==(A=t.getUIContext)?void 0:A.call(t)),o=yield e.getActionSpace(r);c(o||[])}catch(e){console.error("Failed to load action space:",e),c([])}finally{u(!1)}})()},[e,p,t]),(0,o.useEffect)(()=>{b(window.innerWidth<750);let e=()=>{b(window.innerWidth<750)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let j=(0,o.useCallback)(()=>{setTimeout(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},100)},[]),P=(0,o.useCallback)(()=>{if(S.current){let{scrollTop:e,scrollHeight:A,clientHeight:t}=S.current,r=e+t>=A-10;m(!r);let o=e<E.current;E.current=e,r?y(!0):o&&y(!1)}},[]),O=(0,o.useCallback)(()=>{S.current&&(S.current.scrollTo({top:S.current.scrollHeight,behavior:"smooth"}),m(!1),y(!0))},[]);(0,o.useEffect)(()=>{a.length>0&&h&&j()},[a,j,h]),(0,o.useEffect)(()=>{let e=S.current;if(e)return e.addEventListener("scroll",P),P(),()=>{e.removeEventListener("scroll",P)}},[P]);let w=(0,o.useCallback)(()=>AT(function*(){if(s([AM(AK({},e9(r)),{id:"welcome",timestamp:new Date})]),null==A?void 0:A.clearMessages)try{yield A.clearMessages()}catch(e){console.error("Failed to clear stored messages:",e)}})(),[A,r]),N=(0,o.useCallback)(()=>AT(function*(){if(null==t?void 0:t.refreshContext)try{let e=yield t.refreshContext();g(e)}catch(e){console.error("Failed to refresh context:",e)}})(),[t]);return{loading:n,setLoading:i,infoList:a,setInfoList:s,actionSpace:l,actionSpaceLoading:d,uiContextPreview:p,setUiContextPreview:g,showScrollToBottomButton:f,verticalMode:v,replayCounter:k,setReplayCounter:C,infoListRef:S,currentRunningIdRef:I,interruptedFlagRef:R,clearInfoList:w,refreshContext:N,handleScrollToBottom:O,scrollToBottom:j}}(A,f,n,a.targetName),{handleRun:T,handleStop:K,canStop:M}=function(e){let{playgroundSDK:A,storage:t,actionSpace:r,loading:n,setLoading:i,setInfoList:a,replayCounter:s,setReplayCounter:l,verticalMode:c,currentRunningIdRef:d,interruptedFlagRef:u,deviceType:p}=e,{deepLocate:g,deepThink:f,screenshotIncluded:m,domIncluded:h,imeStrategy:y,autoDismissKeyboard:E,keyboardDismissStrategy:v,alwaysRefreshScreenInfo:b}=eF(),k=(0,o.useCallback)(e=>An(function*(){if(!A)return void console.warn("PlaygroundSDK is not available");let r=Date.now(),o=e.type,n=`${e.type}: ${e.prompt||JSON.stringify(e.params)}`,k={id:`user-${Date.now()}`,type:"user",content:n,timestamp:new Date};a(e=>[...e,k]),i(!0);let C=Ai({},e6),S={id:`system-${r}`,type:"system",content:"",timestamp:new Date,loading:!0,loadingProgressText:""};a(e=>[...e,S]);try{d.current=r,u.current[r]=!1,A.onDumpUpdate&&A.onDumpUpdate((e,A)=>{var t;if(u.current[r]||!(null==A||null==(t=A.tasks)?void 0:t.length))return;let o=A.tasks.map((e,A)=>{var t;let o,n;return{id:`progress-${r}-task-${A}`,type:"progress",content:(o=eA(e),(n=er(e))?`${o} - ${n}`:o),timestamp:new Date((null==(t=e.timing)?void 0:t.start)||Date.now()),result:e.error?{error:As(e.error),result:null}:void 0}});a(e=>{let A=e.findIndex(e=>e.id===`system-${r}`);if(-1===A)return e;let t=e.filter(e=>!("progress"===e.type&&e.id.startsWith(`progress-${r}-`)));return[...t.slice(0,A+1),...o,...t.slice(A+1)]})}),"aiAct"!==o&&f&&console.warn("[Playground] Non-aiAct action will be executed without deepThink. deepThink is only forwarded for aiAct.",{actionType:o,requestId:r.toString()});let t=Aa(Ai({requestId:r.toString(),deepLocate:g},"aiAct"===o?{deepThink:f}:{}),{screenshotIncluded:m,domIncluded:h,deviceOptions:{imeStrategy:y,autoDismissKeyboard:E,keyboardDismissStrategy:v,alwaysRefreshScreenInfo:b}});if(C.result=yield A.executeAction(o,e,t),"object"==typeof C.result&&null!==C.result){let e=C.result;e.dump&&(C.dump=e.dump),e.reportHTML&&(C.reportHTML=e.reportHTML),e.error&&(C.error=As(e.error)),"result"in e&&(C.result=e.result)}}catch(e){C.error=As(e),console.error("Playground execution error:",e),"object"==typeof e&&null!==e&&(e.dump&&(C.dump=e.dump),e.reportHTML&&(C.reportHTML=e.reportHTML))}if(u.current[r])return;i(!1),d.current=null;let I=null,R=s;if((null==C?void 0:C.dump)&&C.dump.tasks&&Array.isArray(C.dump.tasks)){let e=At(Al(C.dump,p));l(e=>e+1),I=e,R=s+1}a(e=>e.map(e=>e.id===`system-${r}`?Aa(Ai({},e),{content:"",loading:!1,loadingProgressText:""}):e));let x={id:`result-${r}`,type:"result",content:"Execution result",timestamp:new Date,result:C,loading:!1,replayScriptsInfo:I,replayCounter:R,loadingProgressText:"",verticalMode:c,actionType:o};if(a(e=>[...e,x]),null==t?void 0:t.saveResult)try{yield t.saveResult(x.id,x)}catch(e){console.error("Failed to save result:",e)}let j={id:`separator-${r}`,type:"separator",content:"New Session",timestamp:new Date};a(e=>[...e,j])})(),[A,t,r,i,a,s,l,c,d,u,g,f,m,h,p,y,E,v,b]),C=(0,o.useCallback)(()=>An(function*(){let e=d.current;if(e&&A&&A.cancelExecution)try{let r=yield A.cancelExecution(e.toString()),o=null;if(r)o=r;else if(A.getCurrentExecutionData)try{o=yield A.getCurrentExecutionData()}catch(e){console.error("Failed to get execution data before stop:",e)}if(u.current[e]=!0,i(!1),A.onProgressUpdate&&A.onProgressUpdate(()=>{}),A.onDumpUpdate&&A.onDumpUpdate(()=>{}),a(A=>A.map(A=>A.id===`system-${e}`?Aa(Ai({},A),{content:"",loading:!1,loadingProgressText:""}):A)),o&&(o.dump||o.reportHTML)){var t;let A=null,r=s;if((null==(t=o.dump)?void 0:t.tasks)&&Array.isArray(o.dump.tasks)){let e=Al(o.dump,p);A=At(e),l(e=>e+1),r=s+1}let n={id:`stop-result-${e}`,type:"result",content:"Execution stopped by user",timestamp:new Date,result:{result:null,dump:o.dump,reportHTML:o.reportHTML,error:null},loading:!1,verticalMode:c,replayScriptsInfo:A,replayCounter:r};a(e=>[...e,n])}else{let A={id:`stop-${e}`,type:"system",content:"Operation stopped",timestamp:new Date,loading:!1};a(e=>[...e,A])}let n={id:`separator-${e}`,type:"separator",content:"New Session",timestamp:new Date};a(e=>[...e,n])}catch(e){console.error("Failed to stop execution:",e)}})(),[A,d,u,i,a,c,s,p]);return{handleRun:k,handleStop:C,canStop:n&&!!d.current&&!!A&&!!A.cancelExecution}}({playgroundSDK:A,storage:f,actionSpace:v,loading:m,setLoading:h,setInfoList:E,replayCounter:R,setReplayCounter:x,verticalMode:I,currentRunningIdRef:P,interruptedFlagRef:O,deviceType:i.deviceType});(0,o.useEffect)(()=>{(null==A?void 0:A.overrideConfig)&&u&&A.overrideConfig(u).catch(e=>{console.error("Failed to override SDK config:",e);let A=e instanceof Error?e.message:String(e);e0.Ay.error(`Failed to apply AI configuration: ${A}`)})},[A,u]);let B=(0,o.useCallback)(()=>t5(function*(){try{let e=d.getFieldsValue();yield T(e)}catch(e){e0.Ay.error((null==e?void 0:e.message)||"Execution failed")}})(),[d,T]),D=Object.keys(u||{}).length>=1,z=i.serverMode||!l&&!b&&D,Q=e$.A.useWatch("type",d),L=(0,o.useMemo)(()=>A&&"function"==typeof A.getServiceMode?A.getServiceMode():"Server",[A]),Z=c&&!1!==i.showContextPreview,X=i.layout||"vertical",J=!1!==i.showVersionInfo,U=i.deviceType;return(0,r.jsx)("div",{className:`playground-container ${X}-mode ${s}`.trim(),children:(0,r.jsxs)(e$.A,{form:d,onFinish:B,className:"command-form",children:[Z&&(0,r.jsx)("div",{className:"context-preview-section",children:(0,r.jsx)(AH,{uiContextPreview:k,setUiContextPreview:C,showContextPreview:Z})}),(0,r.jsxs)("div",{className:"middle-dialog-area",children:[y.length>1&&(0,r.jsx)("div",{className:"clear-button-container",children:(0,r.jsx)(e1.Ay,{size:"small",icon:(0,r.jsx)(eG.A,{}),onClick:w,type:"text",className:"clear-button"})}),(0,r.jsx)("div",{ref:j,className:"info-list-container",children:(0,r.jsx)(e3.A,{itemLayout:"vertical",dataSource:y,renderItem:e=>{var A,t,o,n;let i,s,l,c,d,u;return(0,r.jsx)(e3.A.Item,{className:"list-item",children:"user"===e.type?(0,r.jsx)("div",{className:"user-message-container",children:(0,r.jsx)("div",{className:"user-message-bubble",children:e.content})}):"progress"===e.type?(0,r.jsx)("div",{children:(s=null==(A=(i=e.content.split(" - "))[0])?void 0:A.trim(),l=i.slice(1).join(" - ").trim(),c=y.findIndex(A=>A.id===e.id),d=y.slice(c+1).some(e=>"progress"===e.type),u=m&&!d,(0,r.jsxs)(r.Fragment,{children:[s&&(0,r.jsxs)("span",{className:"progress-action-item",children:[s,(0,r.jsx)("span",{className:`progress-status-icon ${u?"loading":(null==(t=e.result)?void 0:t.error)?"error":"completed"}`,children:u?(0,r.jsx)(eH.A,{spin:!0}):(null==(o=e.result)?void 0:o.error)?"✗":"✓"})]}),l&&(0,r.jsx)("div",{children:(0,r.jsx)(AU,{text:l,className:"progress-description",disabled:!u})}),(null==(n=e.result)?void 0:n.error)&&(0,r.jsx)(t2,{error:e.result.error})]}))}):"separator"===e.type?(0,r.jsxs)("div",{className:"new-conversation-separator",children:[(0,r.jsx)("div",{className:"separator-line"}),(0,r.jsx)("div",{className:"separator-text-container",children:(0,r.jsx)(t7,{type:"secondary",className:"separator-text",children:e.content})})]}):(0,r.jsxs)("div",{className:"system-message-container",children:[(0,r.jsxs)("div",{className:"system-message-header",children:[(0,r.jsx)(eW.A,{component:a.icon||tf,style:{fontSize:20}}),(0,r.jsx)("span",{className:"system-message-title",children:a.title||"Playground"})]}),(e.content||e.result)&&(0,r.jsx)("div",{className:"system-message-content",children:"result"===e.type?(0,r.jsx)(tg,{result:e.result||null,loading:e.loading||!1,serverValid:!0,serviceMode:L,replayScriptsInfo:e.replayScriptsInfo||null,replayCounter:e.replayCounter||0,loadingProgressText:e.loadingProgressText||"",verticalMode:e.verticalMode||!1,fitMode:"width",actionType:e.actionType}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"system-message-text",children:e.content}),e.loading&&e.loadingProgressText&&(0,r.jsx)("div",{className:"loading-progress-text",children:(0,r.jsx)("span",{children:e.loadingProgressText})})]})})]})},e.id)}})}),S&&!1!==i.enableScrollToBottom&&(0,r.jsx)(e1.Ay,{className:"scroll-to-bottom-button",type:"primary",shape:"circle",icon:(0,r.jsx)(eY.A,{}),onClick:N,size:"large"})]}),(0,r.jsxs)("div",{className:"bottom-input-section",children:[i.showEnvConfigReminder?(0,r.jsx)(AY,{}):null,(0,r.jsx)(t1,{runButtonEnabled:z,form:d,serviceMode:L,selectedType:Q,dryMode:l,stoppable:M,loading:m,onRun:B,onStop:K,actionSpace:v,deviceType:U})]}),J&&a.version&&(0,r.jsx)("div",{className:"version-info-section",children:(0,r.jsxs)("span",{className:"version-text",children:["Midscene.js version: ",a.version]})})]})})}var t6=t(1352),t8=t(955);function t4(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}function re(e){return function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(e){t4(n,r,o,i,a,"next",e)}function a(e){t4(n,r,o,i,a,"throw",e)}i(void 0)})}}function rA(e){let{getScreenshot:A,getInterfaceInfo:t,serverOnline:n,isUserOperating:i=!1,mjpegUrl:a}=e,[s,l]=(0,o.useState)(null),[c,d]=(0,o.useState)(!1),[u,p]=(0,o.useState)(null),[g,f]=(0,o.useState)(0),[m,h]=(0,o.useState)(null),y=!!(a&&n),E=(0,o.useRef)(null),v=(0,o.useRef)(!1),b=(0,o.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return re(function*(){if(n){d(!0),e&&p(null);try{let e=yield A();if(console.log("Screenshot API response:",e),null==e?void 0:e.screenshot){let A=e.screenshot.toString().trim();A?(l(A),p(null),f(Date.now())):p("Empty screenshot data received")}else p("No screenshot data in response")}catch(e){console.error("Screenshot fetch error:",e),p(e instanceof Error?e.message:"Failed to fetch screenshot")}finally{d(!1)}}})()},[A,n]),k=(0,o.useCallback)(()=>re(function*(){if(n&&t)try{let e=yield t();e&&h(e)}catch(e){console.error("Interface info fetch error:",e)}})(),[t,n]),C=(0,o.useCallback)(()=>{E.current&&clearInterval(E.current),console.log("Starting screenshot polling (5s interval)"),E.current=setInterval(()=>{!v.current&&n&&b(!1)},5e3)},[b,n]),S=(0,o.useCallback)(()=>{E.current&&(console.log("Stopping screenshot polling"),clearInterval(E.current),E.current=null)},[]),I=(0,o.useCallback)(()=>{console.log("Pausing screenshot polling"),v.current=!0},[]),R=(0,o.useCallback)(()=>{console.log("Resuming screenshot polling"),v.current=!1},[]),x=(0,o.useCallback)(()=>{b(!0)},[b]);return((0,o.useEffect)(()=>{if(!n){l(null),p(null),h(null),S();return}return(k(),y)?void S():(b(!1),C(),()=>{S()})},[n,y,C,S,b,k]),(0,o.useEffect)(()=>{n&&(i?I():(R(),b(!1)))},[i,I,R,b,n]),(0,o.useEffect)(()=>()=>{S()},[S]),n)?y||!c||s?y||!u||s?(0,r.jsxs)("div",{className:"screenshot-viewer",children:[(0,r.jsx)("div",{className:"screenshot-header",children:(0,r.jsx)("div",{className:"screenshot-title",children:(0,r.jsx)("h3",{children:(null==m?void 0:m.type)?m.type:"Device Name"})})}),(0,r.jsxs)("div",{className:"screenshot-container",children:[(0,r.jsxs)("div",{className:"screenshot-overlay",children:[(0,r.jsxs)("div",{className:"device-name-overlay",children:["Device Name",(0,r.jsx)(em.A,{title:null==m?void 0:m.description,children:(0,r.jsx)(t6.A,{size:16,className:"info-icon"})})]}),!y&&(0,r.jsxs)("div",{className:"screenshot-controls",children:[g>0&&(0,r.jsxs)("span",{className:"last-update-time",children:["Last updated ",(e=>{if(!e)return"";let A=Math.floor((Date.now()-e)/1e3);return A<60?`${A}s ago`:A<3600?`${Math.floor(A/60)}m ago`:new Date(e).toLocaleTimeString()})(g)]}),(0,r.jsx)(em.A,{title:"Refresh screenshot",children:(0,r.jsx)(e1.Ay,{icon:(0,r.jsx)(t8.A,{}),onClick:x,loading:c,size:"small"})}),i&&(0,r.jsxs)("span",{className:"operation-indicator",children:[(0,r.jsx)(A_.A,{size:"small"})," Operating..."]})]})]}),(0,r.jsx)("div",{className:"screenshot-content",children:y?(0,r.jsx)("img",{src:a,alt:"Device Live Stream",className:"screenshot-image"}):s?(0,r.jsx)("img",{src:s.startsWith("data:image/")?s:`data:image/png;base64,${s}`,alt:"Device Screenshot",className:"screenshot-image",onLoad:()=>console.log("Screenshot image loaded successfully"),onError:e=>{console.error("Screenshot image load error:",e),console.error("Screenshot data preview:",s.substring(0,100)),p("Failed to load screenshot image")}}):(0,r.jsx)("div",{className:"screenshot-placeholder",children:(0,r.jsx)("p",{children:"No screenshot available"})})})]})]}):(0,r.jsx)("div",{className:"screenshot-viewer error",children:(0,r.jsxs)("div",{className:"screenshot-placeholder",children:[(0,r.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,r.jsx)("p",{className:"error-message",children:u})]})}):(0,r.jsxs)("div",{className:"screenshot-viewer loading",children:[(0,r.jsx)(A_.A,{size:"large"}),(0,r.jsx)("p",{children:"Loading screenshot..."})]}):(0,r.jsx)("div",{className:"screenshot-viewer offline",children:(0,r.jsxs)("div",{className:"screenshot-placeholder",children:[(0,r.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,r.jsx)("p",{children:"Start the playground server to see real-time screenshots"})]})})}var rt=t(6453),rr=t(2770),ro=t(4458);let rn=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:400,height:283,fill:"none",viewBox:"0 0 400 283"},e),t=t={children:[(0,r.jsx)("path",{fill:"url(#server-offline-background_svg__a)",fillOpacity:.7,d:"M0 283h283v400H0z",transform:"rotate(-90 0 283)"}),(0,r.jsx)("path",{fill:"url(#server-offline-background_svg__b)",d:"M0 0h400v283H0z"}),(0,r.jsxs)("defs",{children:[(0,r.jsxs)("radialGradient",{id:"server-offline-background_svg__b",cx:0,cy:0,r:1,gradientTransform:"matrix(0 115.5 -163.251 0 200 141.5)",gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#F2F4F7",stopOpacity:0}),(0,r.jsx)("stop",{offset:1,stopColor:"#F2F4F7"})]}),(0,r.jsx)("pattern",{id:"server-offline-background_svg__a",width:1,height:1,patternTransform:"matrix(18 0 0 18 0 283)",patternUnits:"userSpaceOnUse",preserveAspectRatio:"none",viewBox:"0 0 12 12",children:(0,r.jsx)("path",{stroke:"#A1A1A1",strokeWidth:.2,d:"M.1.1h11.8v11.8H.1z"})})]})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},ri=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:178,height:135,fill:"none",viewBox:"0 0 178 135"},e),t=t={children:[(0,r.jsx)("g",{filter:"url(#server-offline-foreground_svg__a)",children:(0,r.jsx)("rect",{width:74,height:97.5,fill:"url(#server-offline-foreground_svg__b)",rx:12,transform:"matrix(.86603 .5 -.86603 .5 99.136 28.5)"})}),(0,r.jsx)("rect",{width:78,height:101.5,y:-2,fill:"url(#server-offline-foreground_svg__c)",stroke:"url(#server-offline-foreground_svg__d)",strokeWidth:4,rx:14,transform:"matrix(.86603 .5 -.86603 .5 97.404 4)"}),(0,r.jsx)("path",{fill:"url(#server-offline-foreground_svg__e)",d:"M78.147 31.404a.9.9 0 0 1 .156-.559c.117-.178.295-.34.524-.478.228-.138.503-.248.806-.322a4 4 0 0 1 .961-.114c.33 0 .657.038.961.113s.578.184.807.322c.23.137.407.3.525.478.117.178.17.368.157.559v3c.014.19-.04.38-.156.559a1.6 1.6 0 0 1-.524.478 3 3 0 0 1-.806.322c-.304.075-.631.114-.961.114s-.657-.038-.961-.113a3 3 0 0 1-.807-.321 1.6 1.6 0 0 1-.525-.479.9.9 0 0 1-.157-.559zm-9.678 8.414c-.632-.015-1.23-.17-1.668-.434s-.682-.615-.682-.98c0-.366.246-.717.684-.98.438-.264 1.036-.42 1.669-.434h5.196c.33-.007.659.024.968.091.308.068.59.17.828.303s.428.29.557.466a.93.93 0 0 1 .196.555.93.93 0 0 1-.197.554c-.13.176-.32.334-.558.466s-.52.235-.829.303a4 4 0 0 1-.968.09zm38.106 11a4 4 0 0 1-.956-.098 3 3 0 0 1-.815-.305 1.7 1.7 0 0 1-.547-.463.93.93 0 0 1-.193-.55c0-.188.066-.375.193-.549s.313-.331.547-.463c.233-.132.511-.235.815-.304.304-.07.629-.102.956-.098h5.196c.327-.004.652.029.956.098s.582.172.815.304c.234.132.42.29.547.463s.193.361.193.55a.93.93 0 0 1-.193.55 1.7 1.7 0 0 1-.547.462 3 3 0 0 1-.815.305 4 4 0 0 1-.956.097zm-9.38 2.585c.017-.369.281-.72.74-.978.457-.258 1.071-.402 1.71-.402.64 0 1.255.144 1.713.402.457.258.722.61.738.978v3a.9.9 0 0 1-.169.552c-.12.176-.299.336-.527.471a3 3 0 0 1-.803.316 4 4 0 0 1-.951.11c-.327 0-.65-.037-.952-.11a3 3 0 0 1-.802-.316 1.6 1.6 0 0 1-.527-.47.9.9 0 0 1-.17-.553zm8.515-18.5c-1.838-1.06-4.33-1.656-6.93-1.656-2.598 0-5.09.596-6.928 1.657l-5.196 3c-.225.14-.495.252-.796.33s-.626.12-.956.123a4 4 0 0 1-.963-.102 3 3 0 0 1-.817-.312 1.7 1.7 0 0 1-.54-.471.9.9 0 0 1-.178-.557.95.95 0 0 1 .215-.551c.135-.174.33-.33.571-.46l5.196-3c2.757-1.591 6.495-2.485 10.393-2.485s7.636.894 10.392 2.485c2.756 1.592 4.305 3.75 4.305 6s-1.549 4.409-4.305 6l-5.196 3a2.9 2.9 0 0 1-.796.33 4.087 4.087 0 0 1-1.919.021 3 3 0 0 1-.817-.311 1.7 1.7 0 0 1-.54-.472.9.9 0 0 1-.177-.556.95.95 0 0 1 .214-.552c.135-.174.33-.33.572-.46l5.196-3c1.837-1.06 2.87-2.5 2.87-4s-1.033-2.94-2.87-4m-29.444 5c.224-.14.494-.252.795-.33s.626-.12.956-.123.657.03.963.102c.306.071.584.177.817.312.234.135.417.295.54.472a.9.9 0 0 1 .178.556.95.95 0 0 1-.215.551c-.135.174-.329.33-.571.46l-5.196 3c-1.838 1.06-2.87 2.5-2.87 4s1.032 2.94 2.87 4c1.838 1.062 4.33 1.658 6.929 1.658s5.091-.596 6.929-1.657l5.196-3c.465-.249 1.079-.384 1.712-.376.633.007 1.238.155 1.686.414.448.258.705.607.717.973s-.221.72-.652.988l-5.196 3c-2.756 1.592-6.494 2.486-10.392 2.486s-7.636-.894-10.392-2.486c-2.757-1.591-4.305-3.75-4.305-6s1.548-4.408 4.305-6z"}),(0,r.jsx)("path",{fill:"#000",d:"m108.005 6.698 3.211-1.854c.954-.55 2.247-.86 3.596-.86s2.642.31 3.596.86c.953.55 1.489 1.297 1.489 2.076 0 .778-.536 1.525-1.489 2.076l-9.589 5.535c-.317.184-.749.287-1.198.287-.45 0-.881-.103-1.199-.287-.317-.183-.496-.432-.496-.692s.179-.508.496-.692l9.589-5.535-2.398-1.384-9.588 5.535c-.953.551-1.489 1.298-1.489 2.076 0 .779.536 1.526 1.489 2.076s2.247.86 3.596.86c1.348 0 2.642-.31 3.595-.86l9.589-5.535c1.589-.918 2.482-2.163 2.482-3.46s-.893-2.543-2.482-3.46c-1.59-.918-3.745-1.433-5.993-1.433s-4.403.515-5.993 1.433l-4.394 2.537z"}),(0,r.jsxs)("defs",{children:[(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__b",x1:37,x2:37,y1:0,y2:97.5,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#D9D9D9"}),(0,r.jsx)("stop",{offset:1,stopColor:"#E9E9EB"})]}),(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__c",x1:37,x2:37,y1:0,y2:97.5,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#7D7E80"}),(0,r.jsx)("stop",{offset:1,stopColor:"#C7C9CC"})]}),(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__d",x1:37,x2:37,y1:0,y2:97.5,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#fff"}),(0,r.jsx)("stop",{offset:1,stopColor:"#fff",stopOpacity:.2})]}),(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__e",x1:72.75,x2:90.111,y1:33.874,y2:63.944,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#fff"}),(0,r.jsx)("stop",{offset:1,stopColor:"#fff",stopOpacity:.5})]}),(0,r.jsxs)("filter",{id:"server-offline-foreground_svg__a",width:176.348,height:118.721,x:.786,y:16.015,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse",children:[(0,r.jsx)("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),(0,r.jsx)("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),(0,r.jsx)("feOffset",{dy:4}),(0,r.jsx)("feGaussianBlur",{stdDeviation:10}),(0,r.jsx)("feComposite",{in2:"hardAlpha",operator:"out"}),(0,r.jsx)("feColorMatrix",{values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04 0"}),(0,r.jsx)("feBlend",{in2:"BackgroundImageFix",result:"effect1_dropShadow_4624_2901"}),(0,r.jsx)("feBlend",{in:"SourceGraphic",in2:"effect1_dropShadow_4624_2901",result:"shape"})]})]})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};function ra(e,A,t,r,o,n,i){try{var a=e[n](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,o)}let rs=["android","ios","web","harmony"];function rl(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let{Content:rc}=rt.A;function rd(e){var A,t,n,i;let{serverUrl:a,appVersion:s,title:l="Playground",defaultDeviceType:c="web",branding:d,playgroundConfig:u,offlineTitle:p="Midscene Playground",offlineStatusText:g="Server offline...",pollIntervalMs:f=5e3}=e,[m,h]=(0,o.useState)(!1),y=(0,o.useMemo)(()=>new el({type:"remote-execution",serverUrl:a}),[a]),{serverOnline:E,isUserOperating:v,deviceType:b}=function(e,A,t){let[r,n]=(0,o.useState)(!1),[i,a]=(0,o.useState)(!1),[s,l]=(0,o.useState)(A);return(0,o.useEffect)(()=>{e.onProgressUpdate(e=>{a(!!e)})},[e]),(0,o.useEffect)(()=>{let A=!0,r=()=>{var t;return(t=function*(){try{let t=yield e.checkStatus();if(!A||(n(t),!t))return;try{let t=yield e.getInterfaceInfo();if(!A||!(null==t?void 0:t.type))return;let r=t.type.toLowerCase();rs.includes(r)&&l(r)}catch(e){console.warn("Failed to get interface info:",e)}}catch(e){if(!A)return;console.error("Failed to check server status:",e),n(!1)}},function(){var e=this,A=arguments;return new Promise(function(r,o){var n=t.apply(e,A);function i(e){ra(n,r,o,i,a,"next",e)}function a(e){ra(n,r,o,i,a,"throw",e)}i(void 0)})})()};r();let o=window.setInterval(r,t);return()=>{A=!1,window.clearInterval(o)}},[e,t]),{serverOnline:r,isUserOperating:i,deviceType:s}}(y,c,f);(0,o.useEffect)(()=>{let e=()=>{h(window.innerWidth<=1024)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let k=rl({showContextPreview:!1,layout:"vertical",showVersionInfo:!0,enableScrollToBottom:!0,serverMode:!0,showEnvConfigReminder:!0,deviceType:"harmony"===b?"ios":b},u),C=(n=rl({},d),i=i={title:null!=(A=null==d?void 0:d.title)?A:l,version:null!=(t=null==d?void 0:d.version)?t:s},Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}),n);return E?(0,r.jsx)(rr.Ay,{theme:ec(),children:(0,r.jsx)(rt.A,{className:"app-container playground-container",children:(0,r.jsx)(rc,{className:"app-content",children:(0,r.jsxs)(ro.YZ,{autoSaveId:"playground-layout",direction:m?"vertical":"horizontal",children:[(0,r.jsx)(ro.Zk,{defaultSize:m?67:32,maxSize:m?85:60,minSize:m?67:25,className:"app-panel left-panel",children:(0,r.jsxs)("div",{className:"panel-content left-panel-content",children:[(0,r.jsx)("div",{className:"playground-panel-header",children:(0,r.jsxs)("div",{className:"header-row",children:[(0,r.jsx)(ed,{}),(0,r.jsx)(eV,{showTooltipWhenEmpty:!1,showModelName:!1})]})}),(0,r.jsx)("div",{className:"playground-panel-playground",children:(0,r.jsx)(t9,{playgroundSDK:y,config:k,branding:C,className:"playground-container"})})]})}),(0,r.jsx)(ro.TW,{className:`panel-resize-handle ${m?"vertical":"horizontal"}`}),(0,r.jsx)(ro.Zk,{className:"app-panel right-panel",children:(0,r.jsx)("div",{className:"panel-content right-panel-content",children:(0,r.jsx)(rA,{getScreenshot:()=>y.getScreenshot(),getInterfaceInfo:()=>y.getInterfaceInfo(),serverOnline:E,isUserOperating:v,mjpegUrl:"ios"===b||"harmony"===b?`${a}/mjpeg`:void 0})})})]})})})}):(0,r.jsx)(rr.Ay,{theme:ec(),children:(0,r.jsx)("div",{className:"server-offline-container",children:(0,r.jsxs)("div",{className:"server-offline-message",children:[(0,r.jsx)(ed,{}),(0,r.jsxs)("div",{className:"server-offline-content",children:[(0,r.jsxs)("div",{className:"server-offline-icon",children:[(0,r.jsx)(rn,{className:"icon-background"}),(0,r.jsx)(ri,{className:"icon-foreground"})]}),(0,r.jsx)("h1",{children:p}),(0,r.jsx)("p",{className:"connection-status",children:g})]})]})})})}let ru=document.getElementById("root");if(!ru)throw Error("Root element not found");(0,n.createRoot)(ru).render((0,r.jsx)(o.StrictMode,{children:(0,r.jsx)(function(){return(0,r.jsx)(rd,{serverUrl:"",appVersion:"1.5.5",title:"Playground",offlineTitle:"Midscene Playground"})},{})}))},1182(){},3198(e,A,t){"use strict";t.d(A,{ZH:()=>u});var r=t(3244),o=t(5207),n=t(3078),i=t.n(n),a=t(217),s=t(9368),l=t(9152),c=t(5409);let d="midscene_run",u=e=>{if(!l.$9)return"";let A=(()=>{if(!l.$9)return"";let e=i().resolve(c.cwd(),l.$9?(0,a.j)(s.Tr)||d:"");if(!(0,r.existsSync)(e))try{(0,r.mkdirSync)(e,{recursive:!0})}catch(A){e=i().join((0,o.tmpdir)(),d),(0,r.mkdirSync)(e,{recursive:!0})}return e})(),t=i().join(A,e);return(0,r.existsSync)(t)||(0,r.mkdirSync)(t,{recursive:!0}),t}},217(e,A,t){"use strict";t.d(A,{j:()=>n});var r=t(9368),o=t(5409);let n=e=>{if(!r.Wh.includes(e))throw Error(`getBasicEnvValue with key ${e} is not supported.`);return o.env[e]}},9368(e,A,t){"use strict";t.d(A,{$:()=>R,$H:()=>p,$L:()=>l,$l:()=>i,AU:()=>b,BQ:()=>x,CA:()=>I,Cn:()=>es,DL:()=>ey,El:()=>D,FU:()=>d,HR:()=>o,I2:()=>r,IQ:()=>u,JM:()=>P,Jq:()=>k,Km:()=>h,Lg:()=>ev,Lh:()=>F,M1:()=>v,NF:()=>w,OK:()=>en,OY:()=>ed,Od:()=>j,Sk:()=>K,T4:()=>X,TN:()=>Q,Tr:()=>L,UH:()=>eI,V7:()=>G,VM:()=>E,Vb:()=>eu,W4:()=>m,Wh:()=>em,XE:()=>eb,YK:()=>z,Yf:()=>J,Yg:()=>V,Z$:()=>ea,Z7:()=>q,ZX:()=>s,_j:()=>eC,_q:()=>Z,aK:()=>y,aO:()=>eg,ag:()=>ei,b6:()=>S,c$:()=>eh,d8:()=>B,fS:()=>ee,ho:()=>M,iw:()=>c,jG:()=>C,j_:()=>T,kX:()=>U,mZ:()=>et,n0:()=>a,nc:()=>$,pp:()=>N,rd:()=>eE,rg:()=>g,sg:()=>el,tk:()=>ek,u1:()=>ep,v:()=>Y,v4:()=>n,vC:()=>H,wu:()=>ec,xP:()=>eA,xg:()=>W,y2:()=>_,yR:()=>ef,yb:()=>O,zD:()=>f,zG:()=>eo,zQ:()=>er});let r="MIDSCENE_MODEL_INIT_CONFIG_JSON",o="MIDSCENE_MODEL_NAME",n="MIDSCENE_DEBUG_MODEL_PROFILE",i="MIDSCENE_DEBUG_MODEL_RESPONSE",a="MIDSCENE_DEBUG_MODE",s="MIDSCENE_LANGSMITH_DEBUG",l="MIDSCENE_LANGFUSE_DEBUG",c="MIDSCENE_MODEL_SOCKS_PROXY",d="MIDSCENE_MODEL_HTTP_PROXY",u="MIDSCENE_MODEL_API_KEY",p="MIDSCENE_MODEL_BASE_URL",g="MIDSCENE_MODEL_MAX_TOKENS",f="MIDSCENE_MODEL_TIMEOUT",m="MIDSCENE_MODEL_TEMPERATURE",h="MIDSCENE_MODEL_RETRY_COUNT",y="MIDSCENE_MODEL_RETRY_INTERVAL",E="MIDSCENE_MODEL_REASONING_EFFORT",v="MIDSCENE_MODEL_REASONING_ENABLED",b="MIDSCENE_MODEL_REASONING_BUDGET",k="OPENAI_API_KEY",C="OPENAI_BASE_URL",S="MIDSCENE_OPENAI_INIT_CONFIG_JSON",I="MIDSCENE_OPENAI_HTTP_PROXY",R="MIDSCENE_OPENAI_SOCKS_PROXY",x="OPENAI_MAX_TOKENS",j="MIDSCENE_CACHE",P="MIDSCENE_USE_VLM_UI_TARS",O="MIDSCENE_USE_QWEN_VL",w="MIDSCENE_USE_QWEN3_VL",N="MIDSCENE_USE_DOUBAO_VISION",T="MIDSCENE_USE_GEMINI",K="MATCH_BY_POSITION",M="MIDSCENE_REPORT_TAG_NAME",B="MIDSCENE_REPORT_QUIET",D="MIDSCENE_PREFERRED_LANGUAGE",z="MIDSCENE_CACHE_MAX_FILENAME_LENGTH",Q="MIDSCENE_REPLANNING_CYCLE_LIMIT",L="MIDSCENE_RUN_DIR",Z="MIDSCENE_INSIGHT_MODEL_NAME",X="MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY",J="MIDSCENE_INSIGHT_MODEL_HTTP_PROXY",U="MIDSCENE_INSIGHT_MODEL_BASE_URL",F="MIDSCENE_INSIGHT_MODEL_API_KEY",q="MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON",V="MIDSCENE_INSIGHT_MODEL_TIMEOUT",G="MIDSCENE_INSIGHT_MODEL_TEMPERATURE",H="MIDSCENE_INSIGHT_MODEL_RETRY_COUNT",W="MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL",Y="MIDSCENE_INSIGHT_MODEL_FAMILY",_="MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT",$="MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED",ee="MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET",eA="MIDSCENE_PLANNING_MODEL_NAME",et="MIDSCENE_PLANNING_MODEL_SOCKS_PROXY",er="MIDSCENE_PLANNING_MODEL_HTTP_PROXY",eo="MIDSCENE_PLANNING_MODEL_BASE_URL",en="MIDSCENE_PLANNING_MODEL_API_KEY",ei="MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON",ea="MIDSCENE_PLANNING_MODEL_TIMEOUT",es="MIDSCENE_PLANNING_MODEL_TEMPERATURE",el="MIDSCENE_PLANNING_MODEL_RETRY_COUNT",ec="MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL",ed="MIDSCENE_PLANNING_MODEL_FAMILY",eu="MIDSCENE_PLANNING_MODEL_REASONING_EFFORT",ep="MIDSCENE_PLANNING_MODEL_REASONING_ENABLED",eg="MIDSCENE_PLANNING_MODEL_REASONING_BUDGET",ef="MIDSCENE_MODEL_FAMILY",em=[a,n,i,L],eh=[j,"MIDSCENE_MCP_USE_PUPPETEER_MODE","MIDSCENE_MCP_ANDROID_MODE",s,l,B],ey=[g,z,Q],eE=[g,x,"MIDSCENE_ADB_PATH","MIDSCENE_ADB_REMOTE_HOST","MIDSCENE_ADB_REMOTE_PORT","MIDSCENE_ANDROID_IME_STRATEGY","MIDSCENE_IOS_DEVICE_UDID","MIDSCENE_IOS_SIMULATOR_UDID",M,D,K,"MIDSCENE_MCP_CHROME_PATH","DOCKER_CONTAINER"],ev=[...eh,...ey,...eE],eb=[o,r,u,p,c,d,f,m,h,y,E,v,b,P,O,w,N,T,"MIDSCENE_USE_VL_MODEL",k,C,S,I,R,Z,X,J,U,F,q,V,G,H,W,Y,_,$,ee,eA,et,er,eo,en,ei,ea,es,el,ec,ed,eu,ep,eg,ef],ek=["MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",...em,...ev,...eb],eC=["doubao-vision","doubao-seed","gemini","qwen2.5-vl","qwen3-vl","qwen3.5","vlm-ui-tars","vlm-ui-tars-doubao","vlm-ui-tars-doubao-1.5","glm-v","auto-glm","auto-glm-multilingual","gpt-5"];var eS,eI=((eS={}).V1_0="1.0",eS.V1_5="1.5",eS.DOUBAO_1_5_15B="doubao-1.5-15B",eS.DOUBAO_1_5_20B="doubao-1.5-20B",eS)},4565(e,A,t){"use strict";t.d(A,{Nw:()=>m,aZ:()=>function e(A,t){let r=`${p}:${A}`,n=(null==t?void 0:t.console)??!1,a=n?`${r}:withConsole`:r;if(!f.has(a))if(n){let t=e(A);f.set(a,function(){for(var e=arguments.length,A=Array(e),r=0;r<e;r++)A[r]=arguments[r];t(...A),console.warn("[Midscene]",...A)})}else{let e=c()(r);f.set(a,function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];u.$9&&function(e,A){if(!u.$9)return;let t=function(e){let A=e.replace(/:/g,"-");if(!g.has(A)){let e=i().join((0,d.ZH)("log"),`${A}.log`),t=o().createWriteStream(e,{flags:"a"});g.set(A,t)}return g.get(A)}(e),r=new Date,n=r.toLocaleDateString("sv-SE"),a=r.toLocaleTimeString("sv-SE"),s=r.getMilliseconds().toString().padStart(3,"0"),l=r.getTimezoneOffset(),c=Math.floor(Math.abs(l)/60).toString().padStart(2,"0"),p=(Math.abs(l)%60).toString().padStart(2,"0"),f=`${l<=0?"+":"-"}${c}:${p}`,m=`${n}T${a}.${s}${f}`;t.write(`[${m}] ${A}
9
- `)}(A,s().format(...r)),e(...r)})}return f.get(a)}});var r=t(3244),o=t.n(r),n=t(3078),i=t.n(n),a=t(1344),s=t.n(a),l=t(7617),c=t.n(l),d=t(3198),u=t(9152);let p="midscene",g=new Map,f=new Map;function m(e){u.$9||c().enable(`${p}:${e}`)}},9152(e,A,t){"use strict";t.d(A,{$9:()=>l,NB:()=>E,Qd:()=>k,gQ:()=>g,gV:()=>b,ht:()=>a,rS:()=>s,tD:()=>u,uR:()=>c,vA:()=>p,x3:()=>v});var r,o=t(7086),n=t(3961),i=t(5409);let a="undefined"!=typeof window,s="undefined"!=typeof WorkerGlobalScope,l=void 0!==i&&(null==(r=i.versions)?void 0:r.node);function c(){return(0,n.A)()}let d={};function u(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=JSON.stringify({content:A,rect:e}),r=5,n="",i=o.sha256.create().update(t).hex().split("").map(e=>String.fromCharCode(97+Number.parseInt(e,16)%26)).join("");for(;r<i.length-1;){if(d[n=i.slice(0,r)]&&d[n]!==t){r++;continue}d[n]=t;break}return n}function p(e,A){if(!e)throw Error(A||"Assertion failed")}function g(){for(var e=arguments.length,A=Array(e),t=0;t<e;t++)A[t]=arguments[t];console.log(...A)}let f=/</g,m=/>/g,h="__midscene_lt__",y="__midscene_gt__",E=e=>e.replace(f,h).replace(m,y),v=e=>{let A=RegExp(h,"g"),t=RegExp(y,"g");return e.replace(A,"<").replace(t,">")};function b(e){return e.replace(/[:*?"<>|# ]/g,"-")}function k(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}},4678(e){"use strict";if("undefined"==typeof sharp){var A=Error("Cannot find module 'sharp'");throw A.code="MODULE_NOT_FOUND",A}e.exports=sharp},6122(){},7407(){},9140(){},3009(){},2801(){},6970(){},3612(){},3244(){},5592(){}},s={};function l(e){var A=s[e];if(void 0!==A)return A.exports;var t=s[e]={exports:{}};return a[e].call(t.exports,t,t.exports,l),t.exports}l.m=a,l.n=e=>{var A=e&&e.__esModule?()=>e.default:()=>e;return l.d(A,{a:A}),A},A=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var o=Object.create(null);l.r(o);var n={};e=e||[null,A({}),A([]),A(A)];for(var i=2&r&&t;("object"==typeof i||"function"==typeof i)&&!~e.indexOf(i);i=A(i))Object.getOwnPropertyNames(i).forEach(e=>{n[e]=()=>t[e]});return n.default=()=>t,l.d(o,n),o},l.d=(e,A)=>{for(var t in A)l.o(A,t)&&!l.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((A,t)=>(l.f[t](e,A),A),[])),l.u=e=>"static/js/async/"+e+"."+({195:"0366f6e8",271:"72510be8",467:"710fa05a",985:"b167d918"})[e]+".js",l.miniCssF=e=>""+e+".css",l.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),l.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),t={},l.l=function(e,A,r,o){if(t[e])return void t[e].push(A);if(void 0!==r)for(var n,i,a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="playground:"+r){n=c;break}}n||(i=!0,(n=document.createElement("script")).timeout=120,l.nc&&n.setAttribute("nonce",l.nc),n.setAttribute("data-rspack","playground:"+r),n.src=e),t[e]=[A];var d=function(A,r){n.onerror=n.onload=null,clearTimeout(u);var o=t[e];if(delete t[e],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(function(e){return e(r)}),A)return A(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=d.bind(null,n.onerror),n.onload=d.bind(null,n.onload),i&&document.head.appendChild(n)},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r=[],l.O=(e,A,t,o)=>{if(A){o=o||0;for(var n=r.length;n>0&&r[n-1][2]>o;n--)r[n]=r[n-1];r[n]=[A,t,o];return}for(var i=1/0,n=0;n<r.length;n++){for(var[A,t,o]=r[n],a=!0,s=0;s<A.length;s++)(!1&o||i>=o)&&Object.keys(l.O).every(e=>l.O[e](A[s]))?A.splice(s--,1):(a=!1,o<i&&(i=o));if(a){r.splice(n--,1);var c=t();void 0!==c&&(e=c)}}return e},l.p="/",l.b=document.baseURI||self.location.href,o={410:0},l.f.j=function(e,A){var t=l.o(o,e)?o[e]:void 0;if(0!==t)if(t)A.push(t[2]);else{var r=new Promise((A,r)=>t=o[e]=[A,r]);A.push(t[2]=r);var n=l.p+l.u(e),i=Error();l.l(n,function(A){if(l.o(o,e)&&(0!==(t=o[e])&&(o[e]=void 0),t)){var r=A&&("load"===A.type?"missing":A.type),n=A&&A.target&&A.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+n+")",i.name="ChunkLoadError",i.type=r,i.request=n,t[1](i)}},"chunk-"+e,e)}},l.O.j=e=>0===o[e],n=(e,A)=>{var t,r,[n,i,a]=A,s=0;if(n.some(e=>0!==o[e])){for(t in i)l.o(i,t)&&(l.m[t]=i[t]);if(a)var c=a(l)}for(e&&e(A);s<n.length;s++)r=n[s],l.o(o,r)&&o[r]&&o[r][0](),o[r]=0;return l.O(c)},(i=self.webpackChunkplayground=self.webpackChunkplayground||[]).forEach(n.bind(null,0)),i.push=n.bind(null,i.push.bind(i));var c=l.O(void 0,["783","148"],()=>l(3749));c=l.O(c)})();
10
- //# sourceMappingURL=index.b06cefb6.js.map
11
+ `,loading:!1,result:void 0,replayScriptsInfo:null,replayCounter:0,loadingProgressText:"",verticalMode:!1}};As();let Al={result:void 0,dump:null,reportHTML:null,error:null},Ac="data:image/png;base64,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",Ad="data:image/png;base64,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";function Au(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let Ap=(e,A,t)=>{let r,n=(r=e.width/e.height>=A/t?e.width:e.height/t*A)>400?.1:r>50?.2:.3,o=Math.min(A,r+A*n*2),i=Math.min(e.left-A*n,A-o);i=Math.max(i,0);let a=Math.min(e.top-t*n,t-t/A*o);return{left:Math.round(i),top:Math.round(a=Math.max(a,0)),width:Math.round(o)}},Ag=e=>{var A;let t=e?Array.isArray(e.executions)?e:{sdkVersion:"",groupName:"Execution",modelBriefs:[],executions:[e]}:null;if(!t)return console.warn("[allScriptsFromDump] dump is empty"),{scripts:[],modelBriefs:[]};let r=(e=>{var A,t;let r,n,o=e.sdkVersion,i=new Set;if(null==(A=e.executions)||A.filter(Boolean).forEach(e=>{e.tasks.forEach(e=>{var A,t;if(null==(t=e.uiContext)||null==(A=t.shotSize)?void 0:A.width){let A=e.uiContext.shotSize.width,t=e.uiContext.shotSize.height;r||(r=A,n=t)}if(e.usage){let{model_name:A,model_description:t,intent:r}=e.usage;r&&A&&i.add(t?`${r}/${A}(${t})`:`${r}/${A}`)}})}),!r||!n)return console.warn("width or height is missing in dump file"),null;let a=(null==(t=e.modelBriefs)?void 0:t.length)?e.modelBriefs:[],s=(()=>{var e;let A=a.length?a:[...i];if(!A.length)return A;let t=null==(e=A[0])?void 0:e.split("/",2)[1];return t&&A.slice(1).every(e=>(null==e?void 0:e.split("/",2)[1])===t)?[t]:A})();return{width:r,height:n,sdkVersion:o,modelBriefs:s,deviceType:e.deviceType}})(t);if(!r)return{scripts:[],sdkVersion:t.sdkVersion,modelBriefs:[]};let{width:n,height:o}=r,i=[],a=(null==(A=t.executions)?void 0:A.filter(Boolean))||[];for(let e=0;e<a.length;e++){let A=Af(a[e],-1,n,o,e);A&&i.push(...A)}return{scripts:i.filter((e,A)=>A===i.length-1||"Done"!==e.title),width:n,height:o,sdkVersion:r.sdkVersion,modelBriefs:r.modelBriefs,deviceType:r.deviceType}},Af=function(e,A,t,r){let n;if(arguments.length>4&&void 0!==arguments[4]&&arguments[4],!e||!e.tasks.length||0===t||0===r)return null;let o=[];if(-1===A)o=e.tasks;else{let t=e.tasks.findIndex(e=>e===A);if(-1===t)return console.error("task not found, cannot generate animation scripts"),null;if(t===e.tasks.length-1)return null;for(let A=t;A<e.tasks.length&&(!(A>t)||"Planning"!==e.tasks[A].type||"Plan"!==e.tasks[A].subType);A++)o.push(e.tasks[A])}if(0===o.length)return null;let i=Ap({left:0,top:0,width:t,height:r},t,r),a=(e,A)=>{if(!A)return e;let t=Au({},e),r=null;return Object.defineProperty(t,"img",{get:()=>(null===r&&(r=A.base64),r),enumerable:!0}),t},s=[],l=!1,c="";return o.forEach((e,A)=>{var d,u,p,g,f,m,h,y,E,v,b,k,C,S,I,x,R,j,w,P,O,N,T,M,K,B,D,z;let Q=null==(z=o[A])?void 0:z.taskId;if(0===A&&(c=ef(e)),"Planning"===e.type){let A=[];if("Plan"===e.subType){let t=(null==(u=e.output)?void 0:u.actions)||[];if(t.length>0){let e=t[0],r=["locate","start","end"];if(e.param)for(let t in r.forEach(t=>{e.param[t]&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}),e.param)!r.includes(t)&&"object"==typeof e.param[t]&&"center"in(e.param[t]||{})&&A.push(e.param[t])}}else"Locate"===e.subType&&(null==(d=e.output)?void 0:d.element)&&(A=[e.output.element]);let o=ep(e),i=ef(e),c=e.uiContext;if(null==c?void 0:c.screenshot){let d=(null==(p=c.shotSize)?void 0:p.width)||t,u=(null==(g=c.shotSize)?void 0:g.height)||r,f=c.screenshot;s.push(a({type:"img",duration:300,title:o,subTitle:i,imageWidth:d,imageHeight:u,taskId:Q},f)),A.forEach(A=>{var p,g,m,h,y,E;y=Au({},Ap(A.rect,d,u)),E=E={pointerLeft:A.center[0],pointerTop:A.center[1]},Object.getOwnPropertyDescriptors?Object.defineProperties(y,Object.getOwnPropertyDescriptors(E)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(E)).forEach(function(e){Object.defineProperty(y,e,Object.getOwnPropertyDescriptor(E,e))}),n=y,s.push(a({type:"insight",context:c,camera:n,highlightElement:A,searchArea:null==(g=e.log)||null==(p=g.taskInfo)?void 0:p.searchArea,duration:400,insightCameraDuration:800,title:o,subTitle:A.description||i,imageWidth:(null==(m=c.shotSize)?void 0:m.width)||t,imageHeight:(null==(h=c.shotSize)?void 0:h.height)||r,taskId:Q},f)),l=!0})}if(e.recorder&&e.recorder.length>0){let A=null==(f=e.recorder[0])?void 0:f.screenshot;s.push(a({type:"img",duration:900,title:ep(e),subTitle:ef(e),imageWidth:(null==(h=e.uiContext)||null==(m=h.shotSize)?void 0:m.width)||t,imageHeight:(null==(E=e.uiContext)||null==(y=E.shotSize)?void 0:y.height)||r,taskId:Q},A))}}else if("Action Space"===e.type){let A=ep(e),n=ef(e);s.push({type:"spinning-pointer",duration:300,title:A,subTitle:n,taskId:Q}),l&&(s.push({type:"clear-insight",duration:200,title:A,subTitle:n,taskId:Q}),l=!1),s.push({type:"pointer",img:Ac,duration:0,title:A,subTitle:n,taskId:Q});let o=null==(b=e.recorder)||null==(v=b[0])?void 0:v.screenshot;s.push(a({type:"img",duration:500,camera:"Sleep"===e.subType?i:void 0,title:A,subTitle:n,imageWidth:(null==(C=e.uiContext)||null==(k=C.shotSize)?void 0:k.width)||t,imageHeight:(null==(I=e.uiContext)||null==(S=I.shotSize)?void 0:S.height)||r,taskId:Q},o))}else{let A=ep(e),n=ef(e),o=null==(R=e.recorder)||null==(x=R[e.recorder.length-1])?void 0:x.screenshot;o&&s.push(a({type:"img",duration:900,camera:i,title:A,subTitle:n,imageWidth:(null==(w=e.uiContext)||null==(j=w.shotSize)?void 0:j.width)||t,imageHeight:(null==(O=e.uiContext)||null==(P=O.shotSize)?void 0:P.height)||r,taskId:Q},o))}if("finished"!==e.status){let A=ep(e),n=e.errorMessage||"unknown error",o=n.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":n,l=null==(T=e.recorder)||null==(N=T[e.recorder.length-1])?void 0:N.screenshot;s.push(a({type:"img",camera:i,duration:900,title:A,subTitle:o,imageWidth:(null==(K=e.uiContext)||null==(M=K.shotSize)?void 0:M.width)||t,imageHeight:(null==(D=e.uiContext)||null==(B=D.shotSize)?void 0:B.height)||r,taskId:Q},l))}}),s.push({title:"End",subTitle:c,type:"img",duration:200,camera:i,taskId:void 0}),s};function Am(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function Ah(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){Am(o,r,n,i,a,"next",e)}function a(e){Am(o,r,n,i,a,"throw",e)}i(void 0)})}}function Ay(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AE(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}function Av(e){var A;if(!e)return"";if("string"==typeof e)return e;if(null==e||null==(A=e.dump)?void 0:A.error)return e.dump.error;if(e.message)return String(e.message);try{return JSON.stringify(e)}catch(A){return String(e)}}function Ab(e,A){let t=new Set;return(null==e?void 0:e.tasks)&&Array.isArray(e.tasks)?e.tasks.forEach(e=>{if(e.usage){let{model_name:A,model_description:r,intent:n}=e.usage;n&&A&&t.add(r?`${n}/${A}(${r})`:`${n}/${A}`)}}):console.warn("[wrapExecutionDumpForReplay] Invalid dump structure:",e),{sdkVersion:"",groupName:"Playground Execution",modelBriefs:[...t],executions:[e],deviceType:A}}function Ak(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}class AC{initDB(){return new Promise((e,A)=>{let t=indexedDB.open(this.dbName,this.version);t.onerror=()=>A(t.error),t.onsuccess=()=>e(t.result),t.onupgradeneeded=e=>{let A=e.target.result;this.storeConfigs.forEach(e=>{let{name:t,keyPath:r}=e;A.objectStoreNames.contains(t)||A.createObjectStore(t,{keyPath:r}).createIndex("timestamp","timestamp",{unique:!1})})}})}async withTransaction(e,A,t){let r=(await this.dbPromise).transaction(e,A);return t(Array.isArray(e)?e.map(e=>r.objectStore(e)):r.objectStore(e))}promisifyRequest(e){return new Promise((A,t)=>{e.onsuccess=()=>A(e.result),e.onerror=()=>t(e.error)})}async put(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.put(A))})}async get(e,A){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.get(A)))}async getAll(e){let A=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return this.withTransaction(e,"readonly",async e=>{let t=A?await this.promisifyRequest(e.index("timestamp").getAll()):await this.promisifyRequest(e.getAll());return A?t.sort((e,A)=>e.timestamp-A.timestamp):t})}async clear(e){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.clear())})}async delete(e,A){await this.withTransaction(e,"readwrite",async e=>{await this.promisifyRequest(e.delete(A))})}async count(e){return this.withTransaction(e,"readonly",async e=>this.promisifyRequest(e.count()))}getDBPromise(){return this.dbPromise}constructor(e,A,t){Ak(this,"dbPromise",void 0),Ak(this,"dbName",void 0),Ak(this,"version",void 0),Ak(this,"storeConfigs",void 0),this.dbName=e,this.version=A,this.storeConfigs=t,this.dbPromise=this.initDB()}}let AS=async(e,A,t,r)=>{try{return await e()}catch(e){return console.error(A,e),e instanceof Error&&"QuotaExceededError"===e.name&&r&&(console.log("Storage quota exceeded, running cleanup..."),await r()),t}},AI=(e,A,t)=>async()=>{try{let r=await e.getAll(A);if(r.length>t){let n=r.sort((e,A)=>e.timestamp-A.timestamp).slice(0,r.length-t);await Promise.all(n.map(t=>e.delete(A,t.id)))}}catch(e){console.error(`Failed to cleanup ${A}:`,e)}};function Ax(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AR(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){Ax(o,r,n,i,a,"next",e)}function a(e){Ax(o,r,n,i,a,"throw",e)}i(void 0)})}}function Aj(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function Aw(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){Aj(e,A,t[A])})}return e}function AP(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}let AO="playground_messages",AN="playground_results";class AT{saveMessages(e){return AR(function*(){yield AS(()=>AR(function*(){yield this.dbManager.clear(AO);let A=e.slice(-100);yield Promise.all(A.map((e,A)=>{let t=AP(Aw({},e),{result:"result"===e.type?void 0:e.result}),r={id:e.id||`msg-${A}`,data:t,timestamp:e.timestamp?e.timestamp.getTime():Date.now()+A};return this.dbManager.put(AO,r)}))}).call(this),"Failed to save messages to IndexedDB",void 0,this.messagesCleanup)}).call(this)}loadMessages(){return AR(function*(){return(yield AS(()=>AR(function*(){let e=yield this.dbManager.getAll(AO,!0);return 0===e.length?[]:Promise.all(e.map(e=>AR(function*(){let A=e.data,t=AP(Aw({},A),{timestamp:new Date(A.timestamp)});if("result"===A.type&&A.id){let e=yield this.loadResult(A.id);e&&(t.result=e.result,t.replayScriptsInfo=e.replayScriptsInfo,t.replayCounter=e.replayCounter,t.verticalMode=e.verticalMode)}return t}).call(this)))}).call(this),"Failed to load messages from IndexedDB",[],this.messagesCleanup))||[]}).call(this)}clearMessages(){return AR(function*(){yield AS(()=>AR(function*(){yield Promise.all([this.dbManager.clear(AO),this.dbManager.clear(AN)])}).call(this),"Failed to clear messages from IndexedDB")}).call(this)}saveResult(e,A){return AR(function*(){yield AS(()=>AR(function*(){let t=this.compressResultForStorage(A),r={id:e,data:t,timestamp:Date.now(),size:JSON.stringify(t).length};yield this.dbManager.put(AN,r)}).call(this),"Failed to save result to IndexedDB",void 0,this.resultsCleanup)}).call(this)}loadResult(e){return AR(function*(){return(yield AS(()=>AR(function*(){let A=yield this.dbManager.get(AN,e);return(null==A?void 0:A.data)||null}).call(this),"Failed to load result from IndexedDB",null))||null}).call(this)}compressResultForStorage(e){var A,t;if(!(null==(t=e.result)||null==(A=t.dump)?void 0:A.tasks))return e;let r=e.result.dump.tasks.map(e=>{var A;return AP(Aw({},e),{uiContext:e.uiContext?AP(Aw({},e.uiContext),{screenshot:e.uiContext.screenshot}):e.uiContext,recorder:null==(A=e.recorder)?void 0:A.map(e=>AP(Aw({},e),{screenshot:e.screenshot}))})});return AP(Aw({},e),{result:AP(Aw({},e.result),{dump:AP(Aw({},e.result.dump),{tasks:r})})})}compressScreenshotIfNeeded(e){if(!e)return e;if(e.length>1048576){let A=Math.round(e.length/1024);return`[COMPRESSED: ${A}KB screenshot removed for storage]`}return e}getStorageStats(){return AR(function*(){return(yield AS(()=>AR(function*(){let[e,A]=yield Promise.all([this.dbManager.count(AO),this.dbManager.count(AN)]);return{messageCount:e,resultCount:A}}).call(this),"Failed to get storage statistics",{messageCount:0,resultCount:0}))||{messageCount:0,resultCount:0}}).call(this)}cleanup(){return AR(function*(){yield Promise.all([this.messagesCleanup(),this.resultsCleanup()])}).call(this)}constructor(e="playground"){Aj(this,"dbManager",void 0),Aj(this,"namespace",void 0),Aj(this,"messagesCleanup",void 0),Aj(this,"resultsCleanup",void 0),this.namespace=e,this.dbManager=new AC(`midscene_playground_${e}`,1,[{name:AO,keyPath:"id"},{name:AN,keyPath:"id"}]),this.messagesCleanup=AI(this.dbManager,AO,100),this.resultsCleanup=AI(this.dbManager,AN,50)}}function AM(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AK(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AM(o,r,n,i,a,"next",e)}function a(e){AM(o,r,n,i,a,"throw",e)}i(void 0)})}}function AB(e,A,t){return A in e?Object.defineProperty(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function AD(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){AB(e,A,t[A])})}return e}function Az(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}class AQ{checkStorageSpace(){try{let e="storage-test",A="x".repeat(102400);return localStorage.setItem(e,A),localStorage.removeItem(e),!0}catch(e){return!1}}saveMessages(e){return AK(function*(){try{this.checkStorageSpace()||(console.warn("Low storage space detected, clearing old data..."),yield this.handleQuotaExceeded());let A=e.slice(-this.maxStorageItems).map(e=>Az(AD({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t)}catch(A){if(A instanceof DOMException&&"QuotaExceededError"===A.name){console.warn("LocalStorage quota exceeded, attempting to clear old data and retry..."),yield this.handleQuotaExceeded();try{let A=e.slice(-10).map(e=>Az(AD({},e),{result:"result"===e.type?void 0:e.result})),t=JSON.stringify(A);localStorage.setItem(this.messagesKey,t),console.info("Successfully saved recent messages after clearing storage")}catch(e){console.error("Failed to save even after clearing storage:",e),yield this.clearMessages()}}else console.error("Failed to save messages to localStorage:",A)}}).call(this)}loadMessages(){return AK(function*(){try{let e=localStorage.getItem(this.messagesKey);if(!e)return[];let A=JSON.parse(e);return yield Promise.all(A.map(e=>AK(function*(){if("result"===e.type&&e.id){let A=`${this.resultsKey}-${e.id}`,t=localStorage.getItem(A);if(t)try{let A=JSON.parse(t);return AD({},e,A)}catch(e){console.warn("Failed to parse stored result:",e)}}return e}).call(this)))}catch(e){return console.error("Failed to load messages from localStorage:",e),[]}}).call(this)}clearMessages(){return AK(function*(){try{localStorage.removeItem(this.messagesKey),Object.keys(localStorage).forEach(e=>{e.startsWith(this.resultsKey)&&localStorage.removeItem(e)})}catch(e){console.error("Failed to clear messages from localStorage:",e)}}).call(this)}saveResult(e,A){return AK(function*(){try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(t){if(t instanceof DOMException&&"QuotaExceededError"===t.name){console.warn("LocalStorage quota exceeded when saving result, clearing old results..."),yield this.handleQuotaExceeded();try{let t=`${this.resultsKey}-${e}`;localStorage.setItem(t,JSON.stringify(A))}catch(e){console.error("Failed to save result even after clearing storage:",e)}}else console.error("Failed to save result to localStorage:",t)}}).call(this)}handleQuotaExceeded(){return AK(function*(){try{let e=Object.keys(localStorage),A=e.filter(e=>e.startsWith(this.resultsKey)),t=A.slice(0,Math.max(1,Math.floor(A.length/2)));t.forEach(e=>{localStorage.removeItem(e)}),console.info(`Cleared ${t.length} old result entries to free up storage space`);let r=e.filter(e=>e.includes("playground")||e.includes("agent")||e.startsWith("midscene"));if(r.length>10){let e=r.slice(0,Math.floor(r.length/3));e.forEach(e=>{e!==this.messagesKey&&localStorage.removeItem(e)}),console.info(`Cleared ${e.length} additional playground-related entries`)}}catch(e){console.error("Failed to handle quota exceeded:",e)}}).call(this)}constructor(e="playground"){AB(this,"messagesKey",void 0),AB(this,"resultsKey",void 0),AB(this,"maxStorageItems",50),this.messagesKey=`${e}-messages`,this.resultsKey=`${e}-results`}}class AL{saveMessages(e){return AK(function*(){this.messages=[...e]}).call(this)}loadMessages(){return AK(function*(){return[...this.messages]}).call(this)}clearMessages(){return AK(function*(){this.messages=[],this.results.clear()}).call(this)}saveResult(e,A){return AK(function*(){this.results.set(e,A)}).call(this)}constructor(){AB(this,"messages",[]),AB(this,"results",new Map)}}class AZ{saveMessages(e){return AK(function*(){})()}loadMessages(){return AK(function*(){return[]})()}clearMessages(){return AK(function*(){})()}saveResult(e,A){return AK(function*(){})()}}function AX(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"indexeddb",A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"playground";switch(e){case"indexeddb":if("undefined"!=typeof indexedDB)return new AT(A);return console.warn("IndexedDB not available, falling back to localStorage"),AX("localStorage",A);case"localStorage":if("undefined"!=typeof localStorage)return new AQ(A);return console.warn("localStorage not available, falling back to memory storage"),AX("memory",A);case"memory":return new AL;case"none":return new AZ;default:throw Error(`Unknown storage type: ${e}`)}}function AJ(){if("undefined"!=typeof indexedDB)try{return indexedDB.open("test",1).onerror=()=>{},"indexeddb"}catch(e){}if("undefined"!=typeof localStorage)try{return localStorage.setItem("test","test"),localStorage.removeItem("test"),"localStorage"}catch(e){}return"memory"}function AU(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function AF(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){AU(o,r,n,i,a,"next",e)}function a(e){AU(o,r,n,i,a,"throw",e)}i(void 0)})}}function Aq(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function AV(e,A){return A=null!=A?A:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(A)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(A)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(A,t))}),e}let AG=e=>{var A;let t=e.highlightElements||[],o=e.highlightRect;if(!(null==(A=e.uiContext)?void 0:A.shotSize))return(0,r.jsx)("div",{className:"blackboard",children:(0,r.jsx)("div",{className:"blackboard-main-content",style:{padding:"20px"},children:"No UI context available"})});let{shotSize:i,screenshot:a}=e.uiContext,s=i.width,l=i.height,c=(0,n.useMemo)(()=>a?"object"==typeof a&&"base64"in a?a.base64:"string"==typeof a?a:"":"",[a]),d=t.map(e=>e.rect),u=null;return 1===d.length?u=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(d[0])]})}):d.length>1&&(u=(0,r.jsx)("div",{className:"bottom-tip",children:(0,r.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(d)]})})),(0,r.jsxs)("div",{className:"blackboard",children:[(0,r.jsxs)("div",{className:"blackboard-main-content",style:{width:"100%",position:"relative"},children:[c&&(0,r.jsx)("img",{src:c,alt:"screenshot",className:"blackboard-screenshot",draggable:!1}),(0,r.jsxs)("div",{className:"blackboard-overlay",style:{aspectRatio:`${s}/${l}`,"--ui-scale":Math.max(1,Math.sqrt(s/1920))},children:[o&&(0,r.jsx)("div",{className:"blackboard-rect blackboard-rect-search",style:{left:`${o.left/s*100}%`,top:`${o.top/l*100}%`,width:`${o.width/s*100}%`,height:`${o.height/l*100}%`},children:(0,r.jsx)("span",{className:"blackboard-rect-label",children:"Search Area"})}),t.map((e,A)=>(0,r.jsx)("div",{className:"blackboard-rect blackboard-rect-highlight",style:{left:`${e.rect.left/s*100}%`,top:`${e.rect.top/l*100}%`,width:`${e.rect.width/s*100}%`,height:`${e.rect.height/l*100}%`},children:e.content&&(0,r.jsx)("span",{className:"blackboard-rect-label",children:e.content})},e.id||A))]})]}),(0,r.jsx)("div",{className:"bottom-tip",style:{display:e.hideController?"none":"block"},children:u})]})};var AH=t(9783),AW=t(7294),AY=t(4985),A_=t(1090),A$=t(2946),A0=t(90),A1=t(3776);let A3=e=>{let{text:A,disabled:t=!1,speed:n=5,className:o="",colorTheme:i="blue"}=e,a={"--animation-duration":`${n}s`},s=`theme-${i}`;return(0,r.jsx)("div",{className:`shiny-text ${s} ${t?"disabled":""} ${o}`,style:a,children:A})},A5=(0,r.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,r.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,r.jsx)("br",{}),"a. ",(0,r.jsx)("strong",{children:"npx midscene-playground"}),(0,r.jsx)("br",{}),"b. ",(0,r.jsx)("strong",{children:"npx --yes @midscene/web"})]}),A7=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A5;return(0,r.jsx)("div",{className:"server-tip",children:(0,r.jsx)(Ae.A,{message:"Playground Server Not Ready",description:e,type:"warning"})})},A2=(0,r.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,r.jsx)(A3,{disabled:!0,text:"The result will be shown here"})});var A9=JSON.parse('{"content":[{"content":"Swag Labs","rect":{"left":895,"top":38,"width":130,"height":32,"zoom":1},"center":[960,54],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"d6c5e2f100","attributes":{"nodeType":"TEXT Node"},"indexId":0},{"content":"Username","rect":{"left":814,"top":154,"width":292,"height":40,"zoom":1},"center":[960,174],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'a9021f480e\']","id":"a9021f480e","attributes":{"class":".input_error.form_input","placeholder":"Username","type":"text","data-test":"username","id":"user-name","name":"user-name","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":1},{"content":"Password","rect":{"left":814,"top":209,"width":292,"height":40,"zoom":1},"center":[960,229],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'580f3b761d\']","id":"580f3b761d","attributes":{"class":".input_error.form_input","placeholder":"Password","type":"password","data-test":"password","id":"password","name":"password","autocorrect":"off","autocapitalize":"none","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":2},{"content":"","rect":{"left":814,"top":253,"width":292,"height":45,"zoom":1},"center":[960,275],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'3e1faf0fd6\']","id":"3e1faf0fd6","attributes":{"class":".error-message-container","nodeType":"CONTAINER Node"},"indexId":3},{"content":"Login","rect":{"left":814,"top":303,"width":292,"height":49,"zoom":1},"center":[960,327],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"[_midscene_retrieve_task_id=\'6db0b64062\']","id":"6db0b64062","attributes":{"type":"submit","class":".submit-button.btn_action","data-test":"login-button","id":"login-button","name":"login-button","value":"Login","htmlTagName":"<input>","nodeType":"FORM_ITEM Node"},"indexId":4},{"content":"Accepted usernames are:","rect":{"left":570,"top":435,"width":221,"height":21,"zoom":1},"center":[680,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"5ca36a5942","attributes":{"nodeType":"TEXT Node"},"indexId":5},{"content":"standard_user","rect":{"left":570,"top":479,"width":109,"height":19,"zoom":1},"center":[624,488],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"fd2fe54174","attributes":{"nodeType":"TEXT Node"},"indexId":6},{"content":"locked_out_user","rect":{"left":570,"top":503,"width":126,"height":19,"zoom":1},"center":[633,512],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"403daee75b","attributes":{"nodeType":"TEXT Node"},"indexId":7},{"content":"problem_user","rect":{"left":570,"top":527,"width":101,"height":19,"zoom":1},"center":[620,536],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"2b34f1e161","attributes":{"nodeType":"TEXT Node"},"indexId":8},{"content":"performance_glitch_user","rect":{"left":570,"top":551,"width":193,"height":19,"zoom":1},"center":[666,560],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"6ae63a4d9e","attributes":{"nodeType":"TEXT Node"},"indexId":9},{"content":"error_user","rect":{"left":570,"top":575,"width":84,"height":19,"zoom":1},"center":[612,584],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"76030282f1","attributes":{"nodeType":"TEXT Node"},"indexId":10},{"content":"visual_user","rect":{"left":570,"top":599,"width":92,"height":19,"zoom":1},"center":[616,608],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"f34b057726","attributes":{"nodeType":"TEXT Node"},"indexId":11},{"content":"Password for all users:","rect":{"left":960,"top":435,"width":221,"height":21,"zoom":1},"center":[1070,445],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"e693f608cd","attributes":{"nodeType":"TEXT Node"},"indexId":12},{"content":"secret_sauce","rect":{"left":960,"top":477,"width":101,"height":19,"zoom":1},"center":[1010,486],"page":{"page":{"_isDragging":false,"_timeoutSettings":{}},"pageType":"puppeteer"},"locator":"","id":"cde9de9828","attributes":{"nodeType":"TEXT Node"},"indexId":13}],"size":{"width":1920,"height":1080},"screenshotBase64":"data:image/png;base64,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8xecP25c2/qkSycuun/hzOuuG3nIiEcWLlz56xfbBgYAAIBPMwEagO3AQ4sW9evb9/h3q2tdXd2EsWN/8eCDlbeXfPOKsy+84OBhww4YMmTrb108YUJ9fd3Io46ccMklZ5xy6ueHD6+s9+nd1Kd3U9thu/bdpbFHQ1EUpVJp3uzZzzz/3NAv/uV5Ey+dMHbsgP79t23gqqqqAf37V1VVVd7W19f1/9znKq//dKedpl151Xev/96Bo7647De/mTJpUmW9saHhntvn/tfLr3xp9PGTp0z5m+OOG3/m2MpHN98255Irrjjh6GMuu+jCmbfOOXz06AcffnjbBgMAAIBPki04ANgObNq0afYP5559+uk/vvvuoihOPOaYt9ata9vxefkrLxdFsf7tt2u6dNn6W2vWvrnnwD0+22/Xp5Y8PeywUa2trR9+leqqqjETxv/n88/X1NQseeaZR375y6OOOOKaG25o359lwzvvbNmyZff+/ZcuW3b131+3Q8+epVKptbX1C8MPbm1tnXvXneVyefkrL9/xk5+cfPzxN82eVRTFaytWvPXWuqIofnD77Xf/9KftOw8AAADkCNAAbB9u/dGPLvzyOQcNPeDRxY+PGzPmlttu27Jly4d/ZcYPbimXSzdMndqvb99Fjz9+2ZWTX1q+/EOO39zcvN/gwdOnTOnevfuGDe/s1NT06muvtffPUbyxZs3Y888//eSTr7rs8tdXrZo1d26lMg8a+Bc79Oz5DzfNbDtyS3Pze767+Mkn230eAAAAyBGgAdg+rFq9+q5/vHfcmDFda2t3auoz9647P/IrfZqarp0x4+rrruvT1HTjtGu+dtFXzrrwgqIoVq5evc+gQZVjamtrBw0ceO+CBZXjr7zssr867rjnli6tbC29zdO+tW7dpk2b+u6888pVqyp7QBel3z29cIfGxueWvnD6+HO6VFePOvTQ22fe/PN/+edfL1u29MVlL7z44hEnjK4cVl9XX1fX9b3n/Yh7uAEAAODTxR7QAGw3Zt465/BRo75+8cVz75y3bv36tvVyuVwul4uiKJXL5XK59G7qnTxx4pRJk+rr6tesXbvmzbUtLS2V9V88+OCIgw46eNiwno2NE8+/4E+6daus79q3b9farpUzHHX4EYcceFDbJUqlUrlcLhWl37149xK/z8aNGx9+7LFxY8bs0Nh44P77/+2J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QoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoCE6ZwSAAAInUlEQVQGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIEKABgAAAAAgQoAGAAAAACBCgAYAAAAAIOJ/AFTldxexlFiCAAAAAElFTkSuQmCC","screenshotBase64WithElementMarker":"data:image/png;base64,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vn9Zpk27K62tozJ7ztxMn/5g9t9vdGruvufebGqvPQen5nOf/1K+9e2L06mpqTE77NAv+++3X0495eTstNNOebVd8J9fy/cvuSwvpl+/fvnhD76fTgfsv1923nmnPPXUghz+pqNyyCFvSEPXrrlj6rQ899zz+dAH359vf+fivJj9998v69evz2lnvCvDhg5J//79M/ePf8xTTy1IfX19vvPtr6d//x2yse2375NzPvyhfO0b38qnJ3w2l1z2g4wZ84YsXbI00+68MytWrMzee++V17/+oAAAALDtqA8AAADbjPr6+vznBV/Orrvskttu+02m3XlX7pg6LTU77NAvJ580Pp/8xL+nqakxmxq178jMn/9kRreOysZGj25NTV1dkZEjhmdTp/3TKVm3bl2+9/3LMvPhWZn58Kz06NEjb37TEfnSFz+bL37pq7n7nnuzqeOPPy5fvfCirF69JnvvtWcqlUqq1WqWr1iRRx+dlwcffCg/nXh1fnLl5Rk6dEheTU8//UyefvqZvJiVq1ZnY926dcvEn/w4Hz7n3Myc+XBuvPGm1AwevEc+8R8fT+uoUfn2dy7Oixm8x+4596Mfzoc/8i+597778/Cs2amrKzJy5Ii8591n5vUHH5QX8oEPvDfb990+3734kjz11IL87Gc/T0337t0zfvwJ+cynPpGGhoYAAACw7ags3rC6GgAAALZJq1atyh//9EgG7rxT+vXrl83tySf/kuUrVmTI3nunrq7I/+RTn/lsfvazn+ezEz6dU045ORtbt25dzj3v47nttt/kiMP/IRd/95vZWqxZsyZ//OMj2WWXgenTp3derjVr1uZPf/pTXve616W5uWdeio6Ojvz1r4uyYMGC9OnTJ7vuukuKoggAAADbnvoAAACwzerevXtGt47KlrLLLgPzUt1yy22pOfbYo7OphoaGfOB9Z+W2236TeY89lq1JU1NTRo0amVeqqakx++47Mi9HURQZMKB/BgzoHwAAALZtRQAAAGArtF2vXqmZPWduXsjDD89KzfB99gkAAADwX+oDAAAAW6Gjj/7HfOe738v73n92xh1zVIYP3yev221Q5sz9Y+6774Hc/pvfpq6uLm95y7EBAAAA/kt9AAAAYCv0kQ9/MGvWrMlPJ/4sP7v6mvzs6muysZ49e+Rb3/ha3vCGgwMAAAD8l/oAAADAVqhSqeTf/+1f84EPvDd3/GFqnn7mmSxduiyDBu2avffeK4P32CONjQ0BAAAA/j/1AQAAgK1YS3Nzxo07OgAAAMD/rggAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEJ9AAC2pPaOpK092dCRakdHAAAAyqhSFEl9kXStS+qKAABsKfUBANhS1qxPZUNHGhsb06WpS+rq6gIAAFBG7e3tWb9+fdauXptqfZE0dQkAwJZQHwCALWFVW7rU1adHr+YAAACUXV1dXerq6tLY2JiVq1Zl/aq2pHvXAABsbkUAADa3NevTpa4+Pbp3DwAAwLamR/fu6VJXn6xZHwCAza0IAMDm1N6RyoaO9OjePQAAANuqHt27p7KhI2nvCADA5lQEAGBzamtPY2NjAAAAtnWNjY1JW3sAADanIgAAm9OGjnTp0iUAAADbui5duiQbOgIAsDkVAQDYjKodHamrqwsAAMC2rq6uLtWOjgAAbE5FAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohfoAAABsTSqVALymVKsBAADYWtQHAABga1OtBuA1oVIJAADA1qQIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCfQAAADaXSiUAAAAAbDlFAAAAAAAAACiFIgAAAFtaS0uqjz2WjB2bl2L9+vX55je/meXLl2dT3/ve9/L0008HAAAAgKQIAADAltTSkup116Wy2255qarVap566qm0t7dnUwsXLsy6desCAAAAQFIfAACALWXs2GTSpFQCAAAAwOZQHwAAgC1l8uTk619PJk1KJk/Oq23x4sW59tprs2DBguywww45+OCDM2rUqHS66667cv/99+f555/PLrvskje96U0ZOHBgaiZOnJgRI0Zk7ty5mT17ds4777zccMMNGTFiRB566KE88sgj6dmzZ4444oiMHDkyne6+++5MnTo1K1asyIABA3LMMcdk4MCB6ejoyEUXXZSjjjoqt912W55//vnsvvvuOfnkk3PHHXdk+vTpqVQq2X///XPEEUek07x58/L73/8+Tz31VPr27ZuDDjooo0ePDgAAAMBLUR8AAIAtZdCgZP78ZOzYbA7XX399+vXrl3e+851ZsGBBLr/88uy+++5pbm7OnXfemXvuuSennnpqWlpaMmPGjFx22WX5yEc+kt69e2fx4sWZNGlSxowZk3e9611pamrK4sWLc91112X8+PF561vfmvvvvz8TJ07MwIED07t378yePTu//vWv8573vCc77rhj7r777lx22WX59Kc/nZpFixbl9ttvzzve8Y5s2LAhEydOzIUXXpghQ4bknHPOycKFC/PjH/84AwYMyLBhw/KXv/wlEydOzIknnpg99tgj8+bNyzXXXJOuXbtm+PDhAQAAAPjfFAEAANhS5s/P5lStVvPss89m8eLFGTRoUD75yU+mR48eqbnrrrtyxBFHpLm5OdVqNSNHjswOO+yQWbNmpdOQIUMyduzYDBw4MEVRpGafffbJkCFD0tjYmDe84Q3p0aNHnnzyydQMGDAgZ599dnbcccesWLEiQ4YMSVtbWxYuXJhORxxxRHr37p1+/fpl9OjRWb16dY477rh069Yte+yxRwYPHpzHH388NdOnT88+++yTXXfdNevXr88uu+yS1tbWPPDAAwEAAAB4KeoDAACwlSuKIkVRZMOGDdlYtVrNhg0b0qVLl9ScfPLJue222/KDH/wgGzZsSGtra4488sjU/PWvf80vf/nLtLS0ZGNtbW3p1L9//2xqhx12SKdKpZK+fftm5cqVqalUKvnFL36RZcuWpaWlJZVKJTVr1qxJp759+6bT9ttvn549e6axsTGdtt9++yxbtiw1Tz/9dB577LE88cQT2VivXr0CAAAA8FLUBwAAYCtXX1+fAQMGZOHChenbt286Pffcc6lUKunfv386OjqyZs2avOUtb0lRFHnuuedy2WWXpW/fvjnwwAPTt2/fHH/88dlzzz3Tqb29PZVKJZ2KosimKpVKXsztt9+eXr165X3ve19q1q5dmwkTJmRjRVFkY5VKJS+mX79+2XXXXXPUUUelU0dHRwAAAABeqiIAAACvASNGjMgtt9ySRYsWpWbVqlWZNGlShg4dmrq6ulQqlVx66aWZOnVqarbbbrt069Yt7e3tqRk1alRuueWWrFq1KjWPP/54JkyYkOeffz6v1Pr167N+/fpUq9V0dHTkxhtvTKVSySs1YsSI3HfffXnqqadSs3z58lxwwQWZPn16AAAAAF6K+gAAALwGvPGNb8yGDRvy3e9+Nx0dHeno6Mjw4cNz4oknpqZSqeS0007LxIkTM3ny5HR0dGTXXXdNa2trag4//PCsXbs2F1xwQerr69PR0ZG3ve1t6du3b16pN7/5zbn88svzuc99Lh0dHdl///3Tv3//vFJ77LFHxo0blx//+MepVqtZvXp1Dj300IwePToAAAAAL0V9AAAAXiPe9KY35U1velOWLVuWnj17piiKbGyXXXbJxz/+8axcuTL19fVpbGxMp0qlknHjxuXoo4/OihUr0tLSko198IMfzKY++MEPZlPvfe97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3LuXoyeO4xZcsSKB5ctzN0d+/pl8m437VbFCBZ576mkSkhLZtW8fQYGB+JYqxelz50jPyKBW9er4+fpyN7du3ebnX07g5elFo/r1+D0XL18m6eZN7kdxb2/atmlDGb/S7D6wn8tXr9KkUSNu3brNz7+cwM3L04snW7agauXKnDl3ngOHD5GXn8+dqlSqROcXXsBms3PyzBl27d+H0+nExTAMmjdpwt3cSEgg5upVCioXEMATjzfH38+Pn45GceLUKZxOJ3fzWMNGWCxmjhw7hsPhQET+2MUjUZisnoiIiIg8LKYUW44TERERkYfEmZ5LjaZNkP+vj5a8T6cOHVj+yUpCQkMRERH5b1azWjVK+/nR65VX6PbSy1y4dImW7doiIiL/08UjUZisnoiIiIg8LBZERERERERERP4N40aMpFOHDrjt3r8fERERERER+c+wICIiIiJ/uQvRFzlwuDRXrsYiIiLy3+7ipWgOHjmMS0xsLPOXLEZERERERET+MyyIiIiIyF9uwdKlLFi6FBERkcLg3Q8+4N0PPkBERERERET+8wxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERET+cmX8/WncoAEPk4eHB61btMBsNiMiIv+ddm/Z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QdGiRek/YgRff/sNNrudkLlzCZ0ylZBx40lNS2PuwoWMGjyEe3X5yhWGjBnD/BkzCBk3nhsJCcyYN4/+vXvj9s6iRaz+cAWXjh3n1u3bTJkzm0cbNsDthbZt+fSfy3Dr3qkTZ86d48mOL+DidDrp3r8fq5Yv59juPeTk5jJ+2jQWzpnDvcq32ZgZNp9Rg4cwa/LbnDh9irkL36NhvXq4ha9ZTYO6dTnw7XYsFgs5OTkMnzAep9OJS2JSEj0G9Gdp2LvMeXsKWdnZfLltK59Gfo5LKR8foo/+jFvixWhcqjZuRHpGBiIifxW73U58YgJ/JDklhT+Sk5vDvys5JYU/I3x1BGs3buBOdoeDO+Xk5pCTm8PvuZmczB9xOBwkp6byR+x2O8kpKfyR5JQURERERERE5OEzpdhynIiIiIg8JM70XGo0bcJ/mtlsxt+vNPGJCfwZFrOZ0n6liU9M4N9RtkwA8YkJ/J5yAQEkJCXhcDj4s/xLlyY1NRWb3U5Bn//rI557+mnutGrtWsZMnYKbYRiUslpJTk3l95jNZvz9ShOfmMDv8fP1JS09HbvdjoiIiIiI/P9dPBKFyeqJiIiIyMNiQURERORvwG63E5+YwJ9ls9uJT0zg3xWfmMAfuZGQwL8r6eZN7mbQW6MpWqQId7p1O4+CHA4Hyamp/BG73U58YgJ/JDklBREREREREREREflrWRARERGRv4Ws7GxERERERERERESkcDMQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxEREZFCrE7t2rRu0YJ6jzzCw1Lc25tWzZvzoDVt3Bi/UqUQERERERERERERuVcGIiIiIoVYx7btGDloMJs/j2Rgnz48DFUqVWL9J5/yoC1fuJAmjR9FRERERERERERE5F5ZEBERESnE5i1ehMu7M2dRs1p15H/XuWNHalWvztyFCxEREREREREREZH/LhZERERE/gacODFhQv53zR9rwu28PEREREREREREROS/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2Wxw9PgJwldH4Fbaz4+lYe/SunlzihYtSv8RI/j622+4V6+/9hqjBg+hfNmynDh9im3ffUfDevXo9+abuFSrUoV506bzWKNGWMxmzkdH03/ECGKvxeHW+5XuTBw9ilJWH+KuX2f5Jyv5LDISlxfatuXTfy6joDPnzvFkxxcQEREREfm/7uKRKExWT0REREQeFlOKLceJiIiIyEPiTM+lRtMm/DfwL12a1NRUbHY7d+Pl6YVhmMjKzubP8vP1JS09Hbvdzt2ULFECu91Odk4OBQ3rP4BZkydzp8tXrtDs2WcoqGSJEthsdnJyc7gbT09PDJOJ7Jwc7lfsyVN4e3lxp0FvjWbTli24GYZBKauV5NRUfo+XpxfFPIqSkpbG7ynj709iUhIiIiIiIoXFxSNRmKyeiIiIiDwsFkRERETk/yfp5k3+SE5uDv+u5JQU/khGZiZ3E746grUbN3Anu8PBnTIyM/kjubm5/FkNW7fCxP+UlZ1NQQ6Hg+TUVP5ITm4OObk5/JHEpCRERERERERERETk3lkQERERkf/zbt++ze3bt/lPS01LQ0RERERERERERP7vMhARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgUDEREREREREREREREREREpFAxERERERERERERERERERKRQMBARERERERERERERERERkULBQERERERERERERERERERECgULIiIiIvJvqV2jBrm3bnH111+5m+Le3jRu0ACn08mps2dJS09HRERERERERERE5GGwICIiIiL/ljHD3+RK7FXmLlzI3fiXLs3IQYMp7edL2TIB1GnRHLvdjoiIiIiIiIiIiMiDZiAiIiIiD9WV2Fi6vt6Xrq+/Tmk/P3xLlUJERERERERERETkYTAQERERkb+E0+lERERERERERERE5GGyICIiIlKIbY1cy+TZs5g2YQKN6tXnl9OnmTJnNuejo3EJLF+edSs/4fbt28yYP4+eXbvR/tlnuBGfQLNnn8GluLc3oVND+McTT5Cfn893u3YxY9475OXn41aieAn+tWgxT7VqxZXYWN7/1wq27tjB/RjUty/dO3WmYmAgh48eZWbYfC7F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RERERERERAoFAxERERERERERERERERERKRQMRERERERERERERERERESkUDAQEREREREREREREREREZFCwUBERERERERERERERERERAoFAxERERERERERERERERERKRQMREREROSBKVq0KI8/9hitW7TAw8MDuX+B5cvTukULHn/sMYoWKcIfqVmtGkUsFh60IhYLrVu0oIjFgoiIiIiIiIiIyH8TAxERERF5IOo98ggXo47y7qzZTBk7FmvJksj9a1S/PiMHDWb5ewv51+Il/J4WTZtxYPsO3hw4iAfNarWyaVUEVqsVERERERERERGR/yYWREREROSB6NiuHTt27mTwmLeQP2/L9u1s2b6dl5/vwMRRo/g9p86e4cNPPmHLju38nt1bttDx1VfJzMpCRERERERERETk78CCiIiIiDwQ5cuWIyEpEXkwnE4nfyQzK4upoXP4PWX8/alTqzYmkwkREREREREREZG/CwsiIiIihdjWyLVMnj2LaRMm0KhefX45fZopc2ZzPjoat6DAQGZMmkTLps2IT0xk45bNvL9iBW5frV5DaT8/ItatxWIpwvD+/Snj70+dFs1JSEzkmX/8g5mTJlMuIACb3U6bJ/+BS5c+fYhPTMClVvXqhIwfT9PGj/LrtWt8vmED4asjcJs+YSLPPf00J8+cZv2XXxEaMpUaVasx6K3RbNqyhT1bt7Fh89e8OXAQu/ft45fTpxk5eDA79+5l+PhxuFhLliR0aghtWrfGYrGwa98+xk0LISMzE5dBfftiMpkoWyaALi++yG/xNwiPWM0XX3+Fm5+vL/OmTeeJxx8n7vp1tn3/He+vWIHT6cRtUN++dO/UmYqBgRw+epSZYfO5FBPDvSru7c17s+fwj1atyMvLIyMzE5fl4eGs/mI992L9J59QoVx5Ll+5wqC3RnPr1i0K2rQqggZ162Iymfhu4ybsDgdXYq/Sa/Bg3Px8fZk3bTpPPP44cdevs+3773h/xQqcTiduzR59lBGDBlE5KJivvtnG0o8+Iu76de5Fm9at6d+rN68NGojbgN59CA6qSEhoKC4mk4mpY8fRtk0bShQvzo979zBj/nzSMzJwCwoMZMakSbRs2oz4xEQ2btnM+ytW4PbV6jWU9vMjYt1aLJYiDO/fnzL+/tRp0ZyExEREREREREREROTvxTxx2pQZiIiIiDwst218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AFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAIAqlAAAAAAAAABQhRIAAAAAAAAAqlACAAAAAAAAQBVKAAAAAAAAAKhCCQAAAAAAAABVKAEAAAAAAACgCiUAAAAAAAAAVKEEAAAAAAAAgCqUAAAAAAAAAFCFEgAAAAAAAACqUAIAAAAAAABAFUoAAAAAAAAAqEIJAAAAAAAAAFUoAQAAAAAAAKAKJQAAAAAAAABUoQQAAAAAAACAKpQAAAAAAAAAUIUSAAAAAAAAAKpQAgAAAAAAAEAVSgAAAAAAAACoQgkAAAAAAAAAVSgBAAAAAAAAoAolAAAAAAAAAFShBAAAAAAAAP5ve3BAAgAAgAAo+j+6H6ECFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwoQEAAAAAAADgQgMAAAAAAADAhQYAAAAAAACACw0AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAAAcKEBAAAAAAAA4EIDAAAAAAAAwIUGAAAAAAAAgAsNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAAFxoAAAAAAAAALjQAAAAAAAAAHChAQAAAAAAAOBCAwAAAAAAAMCFBgAAAAAAAIALDQAAAAAAAAAXGgAAAAAAAAAuNAAAAAAAAABcaAAAAAAAAAC40AAAAAAAAABwYYkQHKd0AqxtAAAAAElFTkSuQmCC","url":"https://www.saucedemo.com/"}');let A6=e=>{let{uiContextPreview:A,setUiContextPreview:t,showContextPreview:n}=e;return n?(0,r.jsxs)("div",{className:"form-part context-panel",children:[(0,r.jsx)("h3",{children:"UI Context"}),A?(0,r.jsx)(AG,{uiContext:A,hideController:!0}):(0,r.jsxs)("div",{children:[(e=>{switch(e){case"finished":case"passed":case"success":case"connected":return(0,r.jsx)("span",{style:{color:"#00AD4B"},children:(0,r.jsx)(AH.A,{})});case"finishedWithWarning":return(0,r.jsx)("span",{style:{color:"#f7bb05"},children:(0,r.jsx)(AW.A,{})});case"failed":case"closed":case"timedOut":case"interrupted":return(0,r.jsx)("span",{style:{color:"#FF0A0A"},children:(0,r.jsx)(AY.A,{})});case"pending":return(0,r.jsx)(A_.A,{});case"cancelled":case"skipped":return(0,r.jsx)(A$.A,{});case"running":return(0,r.jsx)(A0.A,{});default:return(0,r.jsx)(A1.A,{})}})("failed")," No UI context",(0,r.jsx)(Ar.Ay,{type:"link",onClick:e=>{e.preventDefault(),t(A9)},children:"Load Demo"}),(0,r.jsx)("div",{children:"To load the UI context, you can either use the demo data above, or click the 'Send to Playground' in the report page."})]})]}):null};var A8=t(4291);let A4=e=>{let{className:A=""}=e,{config:t}=e5();return Object.keys(t||{}).length>=1?null:(0,r.jsxs)("div",{className:`env-config-reminder ${A}`,children:[(0,r.jsx)(A8.A,{className:"reminder-icon"}),(0,r.jsx)("span",{className:"reminder-text",children:"Please set up your environment variables before using."}),(0,r.jsx)(e7,{mode:"text",showTooltipWhenEmpty:!1})]})};var te=t(6921),tA=t(6130),tt=t(2297),tr=t(7062),tn=t(5862),to=t(7615),ti=t(2107),ta=t(4544),ts=t(3616),tl=t(1879),tc=t(1269);let td=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:(0,r.jsx)("path",{fill:"currentColor",d:"M1.333 13v-2.5a.667.667 0 0 1 1.334 0V13c0 .184.149.333.333.333h2.5a.667.667 0 0 1 0 1.334H3c-.92 0-1.667-.746-1.667-1.667m12 0v-2.5a.667.667 0 0 1 1.334 0V13c0 .92-.746 1.667-1.667 1.667h-2.5a.667.667 0 0 1 0-1.334H13a.333.333 0 0 0 .333-.333m-12-7.5V3c0-.92.747-1.667 1.667-1.667h2.5a.667.667 0 0 1 0 1.334H3A.333.333 0 0 0 2.667 3v2.5a.667.667 0 0 1-1.334 0m12 0V3A.333.333 0 0 0 13 2.667h-2.5a.667.667 0 0 1 0-1.334H13c.92 0 1.667.747 1.667 1.667v2.5a.667.667 0 0 1-1.334 0M5.667 10.333h4.666V5.667H5.667zm6 .167c0 .644-.523 1.167-1.167 1.167h-5A1.167 1.167 0 0 1 4.333 10.5v-5c0-.644.523-1.167 1.167-1.167h5c.644 0 1.167.523 1.167 1.167z"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tu=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M11.333 13.667 14.667 8l-3.334-5.667H4.667L1.333 8l3.334 5.667z"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinejoin:"round",strokeWidth:1.333,d:"M8 9.667a1.667 1.667 0 1 0 0-3.334 1.667 1.667 0 0 0 0 3.334Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};function tp(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}function tg(e,A){return{left:0,top:0,width:e,pointerLeft:Math.round(e/2),pointerTop:Math.round(A/2)}}function tf(e,A,t,r){if(!A.img)return;e.img&&A.img!==e.img&&(e.prevImg=e.img,e.imageChanged=!0);let n=A.imageWidth||t,o=A.imageHeight||r,i=e.imgW!==n||e.imgH!==o;if(e.img=A.img,e.imgW=n,e.imgH=o,i){let A=tg(n,o);e.camera=tp({},A),e.prevCamera=tp({},A),e.pointerMoved=!1}}function tm(e,A){return Math.abs(e.pointerLeft-A.pointerLeft)>1||Math.abs(e.pointerTop-A.pointerTop)>1}function th(e,A,t,r,n){let o=tg(t,r),i={img:"",imgW:t,imgH:r,camera:tp({},o),prevCamera:tp({},o),prevImg:null,insights:[],spinning:!1,spinningElapsedMs:0,pointerImg:Ac,title:"",subTitle:"",taskId:void 0,frameInScript:0,scriptIndex:0,imageChanged:!1,pointerMoved:!1,rawProgress:0};for(let o=0;o<e.length;o++){var a,s;let l=e[o],c=l.startFrame+l.durationInFrames;if(0===l.durationInFrames){l.startFrame<=A&&("pointer"===l.type&&l.pointerImg&&(i.pointerImg=l.pointerImg),i.title=l.title||i.title,i.subTitle=l.subTitle||i.subTitle,i.taskId=null!=(a=l.taskId)?a:i.taskId,i.scriptIndex=o);continue}if(A<l.startFrame)break;switch(i.title=l.title||i.title,i.subTitle=l.subTitle||i.subTitle,i.taskId=null!=(s=l.taskId)?s:i.taskId,i.scriptIndex=o,i.frameInScript=A-l.startFrame,i.rawProgress=Math.min(i.frameInScript/l.durationInFrames,1),l.type){case"img":!function(e,A,t,r,n){tf(e,A,r,n);let o=A.startFrame+A.durationInFrames;A.cameraTarget?(e.prevCamera=tp({},e.camera),e.camera=tp({},A.cameraTarget),e.pointerMoved=tm(e.prevCamera,e.camera)):t>=o&&(e.pointerMoved=!1,e.imageChanged=!1),e.spinning=!1}(i,l,A,t,r);break;case"insight":!function(e,A,t,r,n){if(tf(e,A,r,n),e.insights.some(e=>e.highlightElement===A.highlightElement&&e.searchArea===A.searchArea)||e.insights.push({highlightElement:A.highlightElement,searchArea:A.searchArea,alpha:1}),A.cameraTarget&&void 0!==A.insightPhaseFrames){let r=A.startFrame+A.insightPhaseFrames;t>=r&&(e.prevCamera=tp({},e.camera),e.camera=tp({},A.cameraTarget),e.rawProgress=Math.min((t-r)/(A.cameraPhaseFrames||1),1),e.pointerMoved=tm(e.prevCamera,e.camera))}e.spinning=!1}(i,l,A,t,r);break;case"clear-insight":!function(e,A,t){let r=A.startFrame+A.durationInFrames,n=1-e.rawProgress;e.insights=e.insights.map(e=>{var A,t;return A=tp({},e),t=t={alpha:n},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A}),t>=r&&(e.insights=[]),e.spinning=!1}(i,l,A);break;case"spinning-pointer":i.spinning=!0,i.spinningElapsedMs=i.frameInScript/n*1e3;break;case"sleep":i.spinning=!1}A>=c&&("clear-insight"!==l.type&&(i.imageChanged=!1),i.pointerMoved=!1,i.rawProgress=1,l.cameraTarget&&(i.prevCamera=tp({},i.camera)))}if(!i.img){let A=e.find(e=>"img"===e.type&&e.img);A&&(i.img=A.img,i.imgW=A.imageWidth||t,i.imgH=A.imageHeight||r)}return{img:i.img,imageWidth:i.imgW,imageHeight:i.imgH,prevImg:i.imageChanged?i.prevImg:null,camera:i.camera,prevCamera:i.prevCamera,insights:i.insights,spinning:i.spinning,spinningElapsedMs:i.spinningElapsedMs,currentPointerImg:i.pointerImg,title:i.title,subTitle:i.subTitle,taskId:i.taskId,frameInScript:i.frameInScript,scriptIndex:i.scriptIndex,imageChanged:i.imageChanged,pointerMoved:i.pointerMoved,rawProgress:i.rawProgress}}function ty(e,A,t,r){let n=Math.min(e/t,A/r),o=t*n,i=r*n;return{offsetX:(e-o)/2,offsetY:(A-i)/2,contentWidth:o,contentHeight:i}}let tE=e=>{let{frameMap:A,autoZoom:t,frame:o,width:i,height:a,fps:s}=e,{scriptFrames:l,imageWidth:c,imageHeight:d}=A,u=(0,n.useMemo)(()=>th(l,o,c,d,s),[l,o,c,d,s]);if(!u.img)return null;let{img:p,imageWidth:g,imageHeight:f,prevImg:m,camera:h,prevCamera:y,insights:E,spinning:v,spinningElapsedMs:b,currentPointerImg:k,title:C,subTitle:S,frameInScript:I,imageChanged:x,pointerMoved:R,rawProgress:j}=u,w=R?Math.min(j/.375,1):j,P=R?j<=.375?0:Math.min((j-.375)/.625,1):j,O=y.pointerLeft+(h.pointerLeft-y.pointerLeft)*w,N=y.pointerTop+(h.pointerTop-y.pointerTop)*w,T=t?y.left+(h.left-y.left)*P:0,M=t?y.top+(h.top-y.top)*P:0,K=t?y.width+(h.width-y.width)*P:g,{offsetX:B,offsetY:D,contentWidth:z,contentHeight:Q}=ty(i,a,g,f),L=-(z/g*T),Z=-(Q/f*M),X=`scale(${g/K}) translate(${L}px, ${Z}px)`,J=f/g*K,U=(O-T)/K*z,F=(N-M)/J*Q,q=h.pointerLeft!==Math.round(g/2)||h.pointerTop!==Math.round(f/2)||y.pointerLeft!==Math.round(g/2)||y.pointerTop!==Math.round(f/2),V=Math.max(1,Math.sqrt(g/1920)),G=x?Math.min(I/10,1):1,H=v?(Math.sin(b/500-Math.PI/2)+1)/2*Math.PI*2:0;return(0,r.jsx)("div",{style:{position:"absolute",top:0,left:0,right:0,bottom:0,backgroundColor:"#000"},children:(0,r.jsx)("div",{style:{position:"absolute",left:B,top:D,width:z,height:Q,overflow:"hidden"},children:(0,r.jsxs)("div",{style:{width:z,height:Q,position:"relative",overflow:"hidden"},children:[x&&m&&G<1&&(0,r.jsx)("div",{style:{position:"absolute",width:z,height:Q,overflow:"hidden",opacity:1-G},children:(0,r.jsx)("img",{alt:"",src:m,style:{width:z,height:Q,transformOrigin:"0 0",transform:X}})}),(0,r.jsxs)("div",{style:{position:"absolute",width:z,height:Q,overflow:"hidden",opacity:x?G:1},children:[(0,r.jsx)("img",{alt:"",src:p,style:{width:z,height:Q,transformOrigin:"0 0",transform:X}}),(0,r.jsx)("div",{style:{position:"absolute",top:0,left:0,width:z,height:Q,transformOrigin:"0 0",transform:X,pointerEvents:"none"},children:0===E.length?null:E.map((e,A)=>{let t=[];if(e.highlightElement){let n=e.highlightElement.rect;t.push((0,r.jsx)("div",{style:{position:"absolute",left:n.left,top:n.top,width:n.width,height:n.height,background:"rgba(253, 89, 7, 0.4)",border:`${2*V}px solid #fd5907`,boxShadow:`${2*V}px ${2*V}px ${+V}px rgba(51, 51, 51, 0.3)`,opacity:e.alpha,pointerEvents:"none"}},`highlight-${A}`))}if(e.searchArea){let n=e.searchArea;t.push((0,r.jsx)("div",{style:{position:"absolute",left:n.left,top:n.top,width:n.width,height:n.height,background:"rgba(2, 131, 145, 0.4)",border:`${2*V}px solid #028391`,boxShadow:`${2*V}px ${2*V}px ${+V}px rgba(51, 51, 51, 0.3)`,opacity:e.alpha,pointerEvents:"none"}},`search-${A}`))}return t})})]}),v&&(0,r.jsx)("img",{alt:"",src:Ad,style:{position:"absolute",left:U-22*V,top:F-28*V,width:44*V,height:56*V,transform:`rotate(${H}rad)`,transformOrigin:"center center",filter:"drop-shadow(0 1px 2px rgba(0,0,0,0.3))"}}),q&&!v&&(0,r.jsx)("img",{alt:"",src:k,style:{position:"absolute",left:U-6*V,top:F-4*V,width:44*V,height:56*V,filter:"drop-shadow(0 1px 2px rgba(0,0,0,0.3))"}})]})})})};function tv(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function tb(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){tv(o,r,n,i,a,"next",e)}function a(e){tv(o,r,n,i,a,"throw",e)}i(void 0)})}}function tk(e){return new Promise((A,t)=>{let r=new Image;r.crossOrigin="anonymous",r.onload=()=>A(r),r.onerror=t,r.src=e})}function tC(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function tS(e,A){let t=Math.floor(e/A),r=Math.floor(t/60);return`${String(r).padStart(2,"0")}:${String(t%60).padStart(2,"0")}`}function tI(e){var A,t;let o,{autoZoom:i,setAutoZoom:a,playbackSpeed:s,setPlaybackSpeed:l,subtitleEnabled:c,setSubtitleEnabled:d}=eJ();(0,n.useEffect)(()=>{(null==e?void 0:e.autoZoom)!==void 0&&a(e.autoZoom)},[null==e?void 0:e.autoZoom,a]);let u=null==e?void 0:e.replayScripts,p=(0,n.useMemo)(()=>u&&0!==u.length?function(e,A){let t=(null==A?void 0:A.imageWidth)||1920,r=(null==A?void 0:A.imageHeight)||1080;for(let A of e)if(("img"===A.type||"insight"===A.type)&&A.img){t=A.imageWidth||t,r=A.imageHeight||r;break}let n=[],o=0;for(let A of e){var i,a,s,l;let e=A.duration;switch(A.type){case"sleep":{let t=Math.ceil(e/1e3*30);n.push({type:"sleep",startFrame:o,durationInFrames:t,title:A.title,subTitle:A.subTitle,taskId:A.taskId}),o+=t;break}case"img":{let s=Math.max(Math.ceil(e/1e3*30),1),l=A.camera,c=A.imageWidth||t,d=A.imageHeight||r,u={type:"img",startFrame:o,durationInFrames:s,img:A.img,imageWidth:c,imageHeight:d,title:A.title,subTitle:A.subTitle,taskId:A.taskId};l&&(u.cameraTarget={left:l.left,top:l.top,width:l.width,pointerLeft:null!=(i=l.pointerLeft)?i:Math.round(c/2),pointerTop:null!=(a=l.pointerTop)?a:Math.round(d/2)}),n.push(u),o+=s;break}case"insight":{let i=Math.max(Math.ceil(e/1e3*30),1),a=Math.ceil((A.insightCameraDuration||0)/1e3*30),c=i+a,d=A.imageWidth||t,u=A.imageHeight||r,p=A.camera,g={type:"insight",startFrame:o,durationInFrames:c,img:A.img,imageWidth:d,imageHeight:u,insightPhaseFrames:i,cameraPhaseFrames:a,highlightElement:A.highlightElement,searchArea:A.searchArea,title:A.title,subTitle:A.subTitle,taskId:A.taskId};p&&(g.cameraTarget={left:p.left,top:p.top,width:p.width,pointerLeft:null!=(s=p.pointerLeft)?s:Math.round(d/2),pointerTop:null!=(l=p.pointerTop)?l:Math.round(u/2)}),n.push(g),o+=c;break}case"clear-insight":{let t=Math.max(Math.ceil(e/1e3*30),1);n.push({type:"clear-insight",startFrame:o,durationInFrames:t,title:A.title,subTitle:A.subTitle,taskId:A.taskId}),o+=t;break}case"spinning-pointer":{let t=Math.max(Math.ceil(e/1e3*30),1);n.push({type:"spinning-pointer",startFrame:o,durationInFrames:t,title:A.title,subTitle:A.subTitle,taskId:A.taskId}),o+=t;break}case"pointer":n.push({type:"pointer",startFrame:o,durationInFrames:0,pointerImg:A.img,title:A.title,subTitle:A.subTitle,taskId:A.taskId})}}let c=Math.max(o,1);return{scriptFrames:n,totalDurationInFrames:c,fps:30,stepsDurationInFrames:c,imageWidth:t,imageHeight:r}}(u,{imageWidth:null==e?void 0:e.imageWidth,imageHeight:null==e?void 0:e.imageHeight}):null,[null==e?void 0:e.imageHeight,null==e?void 0:e.imageWidth,u]),g=(0,n.useRef)(null),f=(0,n.useRef)(null),m=(0,n.useRef)(null),[h,y]=(0,n.useState)({width:0,height:0});(0,n.useEffect)(()=>{let e=f.current;if(!e)return;let A=new ResizeObserver(e=>{for(let A of e){let{width:e,height:t}=A.contentRect;y(A=>A.width===e&&A.height===t?A:{width:e,height:t})}});return A.observe(e),()=>A.disconnect()},[]);let E=function(e){var A,t;let{durationInFrames:r,fps:o,autoPlay:i=!1,loop:a=!1}=e,[s,l]=(0,n.useState)(0),[c,d]=(0,n.useState)(i),u=(0,n.useRef)(c),p=(0,n.useRef)(s),g=(0,n.useRef)(null!=(A=e.playbackRate)?A:1),f=(0,n.useRef)(r),m=(0,n.useRef)(o),h=(0,n.useRef)(a);u.current=c,p.current=s,g.current=null!=(t=e.playbackRate)?t:1,f.current=r,m.current=o,h.current=a,(0,n.useEffect)(()=>{let e;if(!c)return;let A=null,t=0,r=n=>{if(null!==A){let e=(n-A)*g.current;t+=e;let r=1e3/m.current;for(;t>=r;){t-=r;let e=p.current+1;if(e>=f.current)if(h.current)p.current=0,l(0);else{p.current=f.current-1,l(f.current-1),d(!1);return}else p.current=e,l(e)}}A=n,e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[c]);let y=(0,n.useCallback)(()=>{p.current>=f.current-1&&(p.current=0,l(0)),d(!0)},[]),E=(0,n.useCallback)(()=>d(!1),[]);return{currentFrame:s,playing:c,play:y,pause:E,toggle:(0,n.useCallback)(()=>{u.current?d(!1):(p.current>=f.current-1&&(p.current=0,l(0)),d(!0))},[]),seekTo:(0,n.useCallback)(e=>{let A=Math.max(0,Math.min(e,f.current-1));p.current=A,l(A)},[])}}({durationInFrames:Math.max(null!=(A=null==p?void 0:p.totalDurationInFrames)?A:1,1),fps:null!=(t=null==p?void 0:p.fps)?t:30,autoPlay:!0,loop:!1,playbackRate:s});(0,n.useEffect)(()=>{if(!p||!(null==e?void 0:e.onTaskChange))return;let A=function(e,A){let t=null;for(let o of e){var r,n;if(0===o.durationInFrames){o.startFrame<=A&&(t=null!=(r=o.taskId)?r:t);continue}if(A<o.startFrame)break;t=null!=(n=o.taskId)?n:t}return t}(p.scriptFrames,E.currentFrame);A!==m.current&&(m.current=A,e.onTaskChange(A))},[p,null==e?void 0:e.onTaskChange,E.currentFrame]);let v=(0,n.useMemo)(()=>{var e;let A;return p?(e=E.currentFrame,(A=th(p.scriptFrames,e,p.imageWidth,p.imageHeight,p.fps)).img?A:null):null},[p,E.currentFrame]),b=(0,n.useMemo)(()=>v&&(v.title||v.subTitle)?{title:v.title,subTitle:v.subTitle}:null,[v]),[k,C]=(0,n.useState)(!0),S=(0,n.useRef)(null),I=(0,n.useCallback)(()=>{C(!0),S.current&&clearTimeout(S.current),S.current=setTimeout(()=>C(!1),3e3)},[]),x=(0,n.useCallback)(()=>{C(!0),S.current&&clearTimeout(S.current)},[]),R=(0,n.useCallback)(()=>{S.current&&clearTimeout(S.current),S.current=setTimeout(()=>C(!1),1e3)},[]),j=(0,n.useCallback)(e=>{"Space"===e.code&&(e.preventDefault(),E.toggle())},[E]),w=(0,n.useRef)(null),P=(0,n.useCallback)(e=>{if(!p||!w.current)return;let A=w.current;A.setPointerCapture(e.pointerId);let t=e=>{let t=A.getBoundingClientRect(),r=Math.max(0,Math.min(1,(e-t.left)/t.width));E.seekTo(Math.round(r*(p.totalDurationInFrames-1)))};t(e.clientX);let r=e=>t(e.clientX),n=()=>{A.removeEventListener("pointermove",r),A.removeEventListener("pointerup",n)};A.addEventListener("pointermove",r),A.addEventListener("pointerup",n)},[p,E]),[O,N]=(0,n.useState)(!1),T=(0,n.useCallback)(()=>{let e=g.current;e&&(document.fullscreenElement?document.exitFullscreen().then(()=>N(!1)):e.requestFullscreen().then(()=>N(!0)))},[]);(0,n.useEffect)(()=>{let e=()=>N(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]);let[M,K]=(0,n.useState)(!1),[B,D]=(0,n.useState)(0),z=(0,n.useCallback)(()=>{var e;return(e=function*(){if(p&&!M){K(!0),D(0);try{var e;yield(e=e=>D(Math.round(100*e)),tb(function*(){let{totalDurationInFrames:A,fps:t}=p,r=new Set;for(let e of p.scriptFrames)e.img&&r.add(e.img);let n=new Map;yield Promise.all([...r].map(e=>tb(function*(){try{n.set(e,(yield tk(e)))}catch(e){}})()));let o=null,i=null;try{o=yield tk(Ac)}catch(e){}try{i=yield tk(Ad)}catch(e){}let a=document.createElement("canvas");a.width=960,a.height=540;let s=a.getContext("2d"),l=a.captureStream(t),c=new MediaRecorder(l,{mimeType:"video/webm"}),d=[];return c.ondataavailable=e=>{e.data.size>0&&d.push(e.data)},new Promise((r,a)=>{c.onerror=()=>a(Error("MediaRecorder error")),c.onstop=()=>{if(0===d.length)return void a(Error("No video data"));let e=new Blob(d,{type:"video/webm"}),A=URL.createObjectURL(e),t=document.createElement("a");t.href=A,t.download="midscene_replay.webm",t.click(),l.getTracks().forEach(e=>e.stop()),setTimeout(()=>URL.revokeObjectURL(A),1e3),r()},c.start();let u=1e3/t,g=performance.now(),f=-1,m=()=>{let t=Math.min(Math.floor((performance.now()-g)/u),A-1);t>f&&(f=t,s.clearRect(0,0,960,540),function(e,A,t,r,n,o){var i,a,s,l,c,d,u,p,g,f;let m,{scriptFrames:h,imageWidth:y,imageHeight:E,fps:v}=t,b=th(h,A,y,E,v);if(!b.img)return;let{img:k,prevImg:C,imageWidth:S,imageHeight:I,camera:x,prevCamera:R,pointerMoved:j,imageChanged:w,rawProgress:P,frameInScript:O,spinning:N,spinningElapsedMs:T,insights:M}=b,K=j?Math.min(P/.375,1):P,B=j?P<=.375?0:Math.min((P-.375)/.625,1):P,D=(i=R.left,a=x.left,i+(a-i)*B),z=(s=R.top,l=x.top,s+(l-s)*B),Q=(c=R.width,d=x.width,c+(d-c)*B),L=(u=R.pointerLeft,p=x.pointerLeft,u+(p-u)*K),Z=(g=R.pointerTop,f=x.pointerTop,g+(f-g)*K),X=S/Q,{offsetX:J,offsetY:U,contentWidth:F,contentHeight:q}=ty(960,540,S,I),V=-(F/S*D),G=-(q/I*z),H=w?Math.min(Math.max(O/10,0),1):1;e.fillStyle="#000",e.fillRect(0,0,960,540);let W=(A,t)=>{let n=r.get(A);n&&!(t<=0)&&(e.save(),e.globalAlpha=t,e.beginPath(),e.rect(0,0,960,540),e.clip(),e.translate(J+V*X,U+G*X),e.scale(X,X),e.drawImage(n,0,0,F,q),e.restore())};w&&C&&H<1&&W(C,1-H),W(k,w?H:1),M.length>0&&function(e,A,t,r,n){for(let o of A)if(!(o.alpha<=0)){if(e.save(),e.globalAlpha*=o.alpha,o.highlightElement){let A=o.highlightElement.rect,i=r+(A.left*t.zoom+t.tx*t.zoom),a=n+(A.top*t.zoom+t.ty*t.zoom),s=A.width*t.zoom,l=A.height*t.zoom;e.fillStyle="rgba(253, 89, 7, 0.4)",e.fillRect(i,a,s,l),e.strokeStyle="#fd5907",e.lineWidth=1,e.strokeRect(i,a,s,l),e.shadowColor="rgba(51, 51, 51, 0.4)",e.shadowBlur=2,e.shadowOffsetX=4,e.shadowOffsetY=4,e.strokeRect(i,a,s,l),e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}if(o.searchArea){let A=o.searchArea,i=r+(A.left*t.zoom+t.tx*t.zoom),a=n+(A.top*t.zoom+t.ty*t.zoom),s=A.width*t.zoom,l=A.height*t.zoom;e.fillStyle="rgba(2, 131, 145, 0.4)",e.fillRect(i,a,s,l),e.strokeStyle="#028391",e.lineWidth=1,e.strokeRect(i,a,s,l)}e.restore()}}(e,M,{zoom:X,tx:V,ty:G},J,U);let Y=I/S*Q,_=J+(L-D)/Q*F,$=U+(Z-z)/Y*q,ee=Math.abs(x.pointerLeft-Math.round(S/2))>1||Math.abs(x.pointerTop-Math.round(I/2))>1||Math.abs(R.pointerLeft-Math.round(S/2))>1||Math.abs(R.pointerTop-Math.round(I/2))>1;N&&o&&(m=(Math.sin(T/500-Math.PI/2)+1)/2*Math.PI*2,e.save(),e.translate(_,$),e.rotate(m),e.drawImage(o,-11,-14,22,28),e.restore()),!N&&ee&&n&&e.drawImage(n,_-3,$-2,22,28)}(s,t,p,n,o,i),null==e||e((t+1)/A)),t<A-1?requestAnimationFrame(m):setTimeout(()=>c.stop(),2*u)};requestAnimationFrame(m)})})()),At.Ay.success("Video exported")}catch(e){console.error("Export failed:",e),At.Ay.error("Export failed")}finally{K(!1),D(0)}}},function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){tC(o,r,n,i,a,"next",e)}function a(e){tC(o,r,n,i,a,"throw",e)}i(void 0)})})()},[p,M]),Q=(0,n.useMemo)(()=>{if(!p)return[];let{scriptFrames:e,totalDurationInFrames:A}=p;if(0===A)return[];let t=[];for(let r of e){if("img"!==r.type&&"insight"!==r.type||0===r.durationInFrames)continue;let e=r.startFrame,n=e/A*100;if(n>1&&n<99){let A=[r.title,r.subTitle].filter(Boolean);t.push({percent:n,title:A.length>0?A.join(": "):`Chapter ${t.length+1}`,frame:e})}}return t},[p]);if(!u||0===u.length||!p)return(0,r.jsx)("div",{className:"player-container"});let L=(null==v?void 0:v.imageWidth)||p.imageWidth,Z=(null==v?void 0:v.imageHeight)||p.imageHeight,X=Z>L,J=p.totalDurationInFrames,U=J>1?E.currentFrame/(J-1)*100:0;return(0,r.jsx)("div",{className:"player-container","data-fit-mode":null==e?void 0:e.fitMode,children:(0,r.jsxs)("div",{className:"canvas-container",ref:g,onKeyDown:j,onMouseMove:I,onMouseEnter:x,onMouseLeave:R,children:[(0,r.jsx)("div",{className:"player-wrapper","data-portrait":X?"":void 0,style:{aspectRatio:`${L}/${Z}`},children:(0,r.jsx)("div",{ref:f,style:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",height:"100%",overflow:"hidden"},onClick:E.toggle,children:(o=h.width>0&&h.height>0?Math.min(h.width/L,h.height/Z):1,(0,r.jsx)("div",{style:{width:L*o,height:Z*o,flexShrink:0,position:"relative",overflow:"hidden"},children:(0,r.jsx)("div",{style:{width:L,height:Z,transformOrigin:"0 0",transform:`scale(${o})`},children:(0,r.jsx)(tE,{frameMap:p,autoZoom:i,frame:E.currentFrame,width:L,height:Z,fps:p.fps})})}))})}),c&&b&&(0,r.jsxs)("div",{className:"player-subtitle",children:[b.title&&(0,r.jsx)("span",{className:"player-subtitle-badge",children:b.title}),b.subTitle&&(0,r.jsx)("span",{className:"player-subtitle-text",children:b.subTitle})]}),(0,r.jsxs)("div",{className:`control-bar ${k?"":"hidden"}`,onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("div",{className:"status-icon",onClick:E.toggle,children:E.playing?(0,r.jsx)(tA.A,{}):(0,r.jsx)(tt.A,{})}),(0,r.jsxs)("span",{className:"time-display",children:[tS(E.currentFrame,p.fps)," /"," ",tS(J,p.fps)]}),(0,r.jsxs)("div",{className:"seek-bar-track",ref:w,onPointerDown:P,children:[(0,r.jsx)("div",{className:"seek-bar-fill",style:{width:`${U}%`}}),(0,r.jsx)("div",{className:"seek-bar-knob",style:{left:`${U}%`}}),Q.map(e=>(0,r.jsx)(ej.A,{title:e.title,overlayClassName:"chapter-tooltip",children:(0,r.jsx)("div",{className:"chapter-marker",style:{left:`${e.percent}%`},onClick:A=>{A.stopPropagation(),E.seekTo(e.frame)}})},e.percent))]}),(0,r.jsxs)("div",{className:"player-custom-controls",children:[(null==e?void 0:e.reportFileContent)&&(null==e?void 0:e.canDownloadReport)!==!1?(0,r.jsx)(ej.A,{title:"Download Report",children:(0,r.jsx)("div",{className:"status-icon",onClick:()=>{let A,t,r;return A=new Blob([e.reportFileContent],{type:"text/html"}),t=URL.createObjectURL(A),void((r=document.createElement("a")).href=t,r.download="midscene_report.html",r.click(),setTimeout(()=>URL.revokeObjectURL(t),0))},children:(0,r.jsx)(tr.A,{})})}):null,(0,r.jsx)(tl.A,{trigger:["hover","click"],placement:"topRight",overlayStyle:{minWidth:"148px"},dropdownRender:()=>(0,r.jsxs)("div",{className:"player-settings-dropdown",children:[(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",gap:"4px",height:"32px",padding:"0 8px",borderRadius:"4px",cursor:M?"not-allowed":"pointer",opacity:M?.5:1},onClick:M?void 0:z,children:[M?(0,r.jsx)(te.A,{size:"small"}):(0,r.jsx)(tn.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px"},children:M?`Exporting ${B}%`:"Export video"})]}),(0,r.jsx)("div",{className:"player-settings-divider"}),(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 8px",borderRadius:"4px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,r.jsx)(td,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px",marginRight:"16px"},children:"Focus on cursor"})]}),(0,r.jsx)(tc.A,{size:"small",checked:i,onChange:e=>a(e)})]}),(0,r.jsxs)("div",{className:"player-settings-item",style:{display:"flex",alignItems:"center",justifyContent:"space-between",height:"32px",padding:"0 8px",borderRadius:"4px"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,r.jsx)(to.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px",marginRight:"16px"},children:"Subtitle"})]}),(0,r.jsx)(tc.A,{size:"small",checked:c,onChange:e=>d(e)})]}),(0,r.jsx)("div",{className:"player-settings-divider"}),(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px",height:"32px",padding:"0 8px"},children:[(0,r.jsx)(ti.A,{style:{width:"16px",height:"16px"}}),(0,r.jsx)("span",{style:{fontSize:"14px"},children:"Playback speed"})]}),[.5,1,1.5,2].map(e=>(0,r.jsxs)("div",{onClick:()=>l(e),style:{height:"32px",lineHeight:"32px",padding:"0 8px 0 24px",fontSize:"14px",cursor:"pointer",borderRadius:"4px"},className:`player-speed-option${s===e?" active":""}`,children:[e,"x"]},e))]}),menu:{items:[]},children:(0,r.jsx)("div",{className:"status-icon",children:(0,r.jsx)(tu,{style:{width:"16px",height:"16px"}})})}),(0,r.jsx)("div",{className:"status-icon",onClick:T,children:O?(0,r.jsx)(ta.A,{}):(0,r.jsx)(ts.A,{})})]})]})]})})}let tx=e=>{let{result:A,loading:t,serverValid:n,serviceMode:o,replayScriptsInfo:i,replayCounter:a,loadingProgressText:s,verticalMode:l=!1,notReadyMessage:c,fitMode:d,autoZoom:u,actionType:p,canDownloadReport:g}=e,f="result-wrapper";l&&(f+=" vertical-mode-result"),i&&l&&(f+=" result-wrapper-compact");let m=A2,h=p&&H.includes(p);if(n||"Server"!==o)if(t)m=(0,r.jsxs)("div",{className:"loading-container",children:[(0,r.jsx)(te.A,{spinning:t,indicator:(0,r.jsx)(e6.A,{spin:!0})}),(0,r.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,r.jsx)(A3,{text:s,speed:3})})]});else if(null==A?void 0:A.error){let e=(0,r.jsx)("pre",{style:{color:"#ff4d4f",whiteSpace:"pre-wrap"},children:null==A?void 0:A.error});m=A.reportHTML||i?(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto",maxHeight:"40%",overflow:"auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Error:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tI,{replayScripts:null==i?void 0:i.scripts,imageWidth:null==i?void 0:i.width,imageHeight:null==i?void 0:i.height,reportFileContent:A.reportHTML||null,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]}):e}else if(h&&(null==A?void 0:A.result)!==void 0&&i){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}),t=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tI,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:t,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else if(i){let e=(null==A?void 0:A.reportHTML)||null;m=(0,r.jsx)(tI,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:e,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)}else if(h&&(null==A?void 0:A.result)!==void 0&&(null==A?void 0:A.reportHTML)){let e="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)});m=(0,r.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,r.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),e]}),(0,r.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,r.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,r.jsx)(tI,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else h&&(null==A?void 0:A.result)!==void 0?m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}):(null==A?void 0:A.reportHTML)?m=(0,r.jsx)(tI,{reportFileContent:A.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a):(null==A?void 0:A.result)!==void 0&&(m="string"==typeof(null==A?void 0:A.result)?(0,r.jsx)("pre",{children:null==A?void 0:A.result}):(0,r.jsx)("pre",{children:JSON.stringify(null==A?void 0:A.result,null,2)}));else m=A7(c);return(0,r.jsx)("div",{className:f,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto",justifyContent:"center"},children:m})},tR=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"none","aria-label":"Playground",viewBox:"0 0 20 20"},e),t=t={children:[(0,r.jsx)("rect",{width:20,height:20,fill:"#2B83FF",rx:10}),(0,r.jsx)("path",{fill:"#2B83FF",stroke:"#fff",strokeLinejoin:"round",strokeWidth:1.125,d:"M6.866 5.882a.56.56 0 0 1 .667-.078l3.248 1.875 3.247 1.875a.563.563 0 0 1 0 .974l-3.247 1.875-3.248 1.875a.563.563 0 0 1-.784-.74l1.749-3.497-1.75-3.498a.56.56 0 0 1 .118-.661Z"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};var tj=t(8460),tw=t(3896),tP=t(1631),tO=t(4665),tN={};tN.d=(e,A)=>{for(var t in A)tN.o(A,t)&&!tN.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},tN.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),tN.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var tT={};function tM(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}tN.r(tT),tN.d(tT,{create:()=>eO.vt});let{create:tK}=tT,tB="midscene-prompt-history-v2",tD="midscene-last-selected-type",tz=tK((e,A)=>{let t;return{history:(t=localStorage.getItem(tB))?JSON.parse(t):{},lastSelectedType:localStorage.getItem(tD)||"aiAct",clearHistory:t=>{let r=tM({},A().history);delete r[t],e({history:r}),localStorage.setItem(tB,JSON.stringify(r))},addHistory:t=>{var r,n;let{type:o}=t,i=A().history,a=i[o]||[],s=JSON.stringify({prompt:t.prompt,params:t.params}),l=[t,...a.filter(e=>JSON.stringify({prompt:e.prompt,params:e.params})!==s)];l.length>10&&(l.length=10);let c=(r=tM({},i),n=n={[o]:l},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(n)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(n,e))}),r);e({history:c}),localStorage.setItem(tB,JSON.stringify(c))},getHistoryForType:e=>A().history[e]||[],setLastSelectedType:A=>{e({lastSelectedType:A}),localStorage.setItem(tD,A)}}}),tQ="ZodOptional",tL="ZodDefault",tZ="ZodNullable",tX="ZodObject",tJ="midscene_location_field_flag",tU=e=>"object"==typeof e&&null!==e&&("shape"in e||"ZodObject"===e.type),tF=e=>{var A,t,r;if((null==(A=e._def)?void 0:A.typeName)===tX){let A;if(e._def.shape&&(A="function"==typeof e._def.shape?e._def.shape():e._def.shape),!A&&e.shape&&(A=e.shape),A&&tJ in A)return!0;let r=(null==(t=e._def)?void 0:t.description)||e.description||"";if("string"==typeof r&&r.toLowerCase().includes("input field"))return!0}if("object"==typeof e&&null!==e){let A=e.description||(null==(r=e._def)?void 0:r.description)||"";if("string"==typeof A){let e=A.toLowerCase();if(e.includes("input field")||e.includes("element")||e.includes("locate"))return!0}if("ZodObject"===e.typeName||"ZodObject"===e.type)return"string"==typeof A&&A.toLowerCase().includes("input field")}return!1},tq=e=>{var A,t,r,n,o;let i=e,a=!1,s=!1;for(;(null==(A=i._def)?void 0:A.typeName)===tQ||(null==(t=i._def)?void 0:t.typeName)===tL||(null==(r=i._def)?void 0:r.typeName)===tZ;)(null==(n=i._def)?void 0:n.typeName)===tQ&&(a=!0),(null==(o=i._def)?void 0:o.typeName)===tL&&(s=!0),i=i._def.innerType||i;return{actualField:i,isOptional:a,hasDefault:s}},tV=e=>{if(!e)return"";let A=e.startsWith("ai")?e.slice(2):e;if(A.startsWith("IOS"))return A.substring(3).replace(/([A-Z])/g," $1").replace(/^/,"IOS").trim();let t=A.replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t};var tG=t(6356);let tH=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27"},e),t=t={children:(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.333,d:"M19.527 8.855h-2M14.86 7.522v2.667M14.86 8.855H7.527M10.194 13.522H7.527M12.86 12.189v2.666M20.193 13.522H12.86M19.527 18.189h-2M14.86 16.855v2.667M14.86 18.189H7.527"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},tW=e=>{let A,{showDeepLocateOption:t=!1,showDeepThinkOption:n=!1,enableTracking:o=!1,showDataExtractionOptions:i=!1,hideDomAndScreenshotOptions:a=!1,deviceType:s}=e,l=e5(e=>e.forceSameTabNavigation),c=e5(e=>e.setForceSameTabNavigation),d=e5(e=>e.deepLocate),u=e5(e=>e.setDeepLocate),p=e5(e=>e.deepThink),g=e5(e=>e.setDeepThink),f=e5(e=>e.screenshotIncluded),m=e5(e=>e.setScreenshotIncluded),h=e5(e=>e.domIncluded),y=e5(e=>e.setDomIncluded),E=e5(e=>e.imeStrategy),v=e5(e=>e.setImeStrategy),b=e5(e=>e.autoDismissKeyboard),k=e5(e=>e.setAutoDismissKeyboard),C=e5(e=>e.keyboardDismissStrategy),S=e5(e=>e.setKeyboardDismissStrategy),I=e5(e=>e.alwaysRefreshScreenInfo),x=e5(e=>e.setAlwaysRefreshScreenInfo);if(!o&&!t&&!n&&!i&&"android"!==s&&"ios"!==s)return null;let R=(A=[],o&&A.push({label:(0,r.jsx)(tG.A,{onChange:e=>c(e.target.checked),checked:l,children:"Limit popup to current tab"}),key:"track-config"}),t&&A.push({label:(0,r.jsx)(tG.A,{onChange:e=>{u(e.target.checked)},checked:d,children:"Deep Locate"}),key:"deep-locate-config"}),n&&A.push({label:(0,r.jsx)(tG.A,{onChange:e=>{g(e.target.checked)},checked:p,children:"Deep Think"}),key:"deep-think-config"}),i&&!a&&(A.push({label:(0,r.jsx)(tG.A,{onChange:e=>{m(e.target.checked)},checked:f,children:"Include screenshot in request"}),key:"screenshot-included-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Include DOM info in request"}),(0,r.jsxs)(tO.A.Group,{size:"small",value:h,onChange:e=>y(e.target.value),children:[(0,r.jsx)(tO.A,{value:!1,children:"Off"}),(0,r.jsx)(tO.A,{value:!0,children:"All"}),(0,r.jsx)(tO.A,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),"android"===s&&(A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"IME strategy"}),(0,r.jsxs)(tO.A.Group,{size:"small",value:E,onChange:e=>v(e.target.value),children:[(0,r.jsx)(tO.A,{value:"always-yadb",children:"Always YADB"}),(0,r.jsx)(tO.A,{value:"yadb-for-non-ascii",children:"YADB for non-ASCII"})]})]}),key:"ime-strategy-config"}),A.push({label:(0,r.jsx)(tG.A,{onChange:e=>k(e.target.checked),checked:b,children:Ao}),key:"auto-dismiss-keyboard-config"}),A.push({label:(0,r.jsxs)("div",{style:{padding:"4px 0"},children:[(0,r.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Keyboard dismiss strategy"}),(0,r.jsxs)(tO.A.Group,{size:"small",value:C,onChange:e=>S(e.target.value),children:[(0,r.jsx)(tO.A,{value:"esc-first",children:"ESC first"}),(0,r.jsx)(tO.A,{value:"back-first",children:"Back first"})]})]}),key:"keyboard-dismiss-strategy-config"}),A.push({label:(0,r.jsx)(tG.A,{onChange:e=>x(e.target.checked),checked:I,children:"Always refresh screen info"}),key:"always-refresh-screen-info-config"})),"ios"===s&&A.push({label:(0,r.jsx)(tG.A,{onChange:e=>k(e.target.checked),checked:b,children:Ao}),key:"auto-dismiss-keyboard-config"}),A);return(0,r.jsx)("div",{className:"selector-trigger",children:(0,r.jsx)(tl.A,{menu:{items:R},trigger:["click"],children:(0,r.jsx)(tH,{width:24,height:24})})})};var tY=t(9076),t_=t(5932);let{TextArea:t$}=eP.A,t0=(e,A)=>`${e}${A?" (Optional)":""}`,t1=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=i||`Enter ${A}`;return(0,r.jsx)(AA.A.Item,{name:["params",A],label:t0(t,!n),rules:n?[{required:!0,message:`Please input ${A}`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(eP.A,{placeholder:a})},A)},t3=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=i||`Describe the ${A}, use natural language`;return(0,r.jsx)(AA.A.Item,{name:["params",A],label:t0(t,!n),rules:n?[{required:!0,message:`The ${A} is required`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(t$,{rows:2,placeholder:a})},A)},t5=e=>{var A;let{name:t,label:n,fieldSchema:o,isRequired:i,marginBottom:a,placeholder:s}=e,l=((null==(A=o._def)?void 0:A.values)||[]).map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)}));return(0,r.jsx)(AA.A.Item,{name:["params",t],label:n,rules:i?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},colon:!1,children:(0,r.jsx)(tY.A,{placeholder:s||`Select ${t}`,options:l})},t)},t7=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e,a=500*("distance"===A),s=i&&Number(i)||a,l="distance"===A?1e4:void 0;return(0,r.jsx)(AA.A.Item,{name:["params",A],label:`${t}${"distance"===A?" (px)":""}`,rules:n?[{required:!0,message:`Please input ${A}`},{type:"number",min:0,message:`${t} must be at least 0`}]:[{type:"number",min:0,message:`${t} must be at least 0`}],style:{flex:"distance"===A?1:void 0,marginBottom:o},colon:!1,children:(0,r.jsx)(t_.A,{placeholder:s.toString(),min:0,max:l,step:"distance"===A?10:1,style:{width:"100%"}})},A)},t2=e=>{let{name:A,label:t,isRequired:n,marginBottom:o,placeholder:i}=e;return(0,r.jsx)(AA.A.Item,{name:["params",A],label:t0(t,!n),rules:n?[{required:!0,message:`Please select ${A}`}]:[],style:{marginBottom:o},colon:!1,children:(0,r.jsx)(tY.A,{placeholder:i||`Select ${A}`,options:[{value:!0,label:"True"},{value:!1,label:"False"}]})},A)},t9=e=>{var A,t;return(0,r.jsx)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16"},e),t=t={children:(0,r.jsx)("path",{stroke:"#333",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.333,d:"m3.124 2.667 11.162 10.666M3.124 13.333 14.286 2.667"})},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},t6=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25"},e),t=t={children:[(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M6.63 9.021c-2.862 6.126 2.197 10.501 6.063 10.501a7 7 0 1 0-6.063-10.5"}),(0,r.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeOpacity:.85,strokeWidth:1.33,d:"M12.695 8.322v4.203l2.967 2.968"})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},t8=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19"},e),t=t={children:[(0,r.jsxs)("g",{stroke:"currentColor",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,r.jsx)("path",{d:"M8.397 14.29a6.375 6.375 0 1 0 0-12.75 6.375 6.375 0 0 0 0 12.75Z"}),(0,r.jsx)("path",{strokeLinecap:"round",d:"M10.519 5.42a3 3 0 0 0-2.122-.88 3 3 0 0 0-2.121.88M12.98 12.499l3.182 3.182"})]}),(0,r.jsx)("defs",{children:(0,r.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,r.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},{Text:t4}=ex.A,re=e=>{let{onSelect:A,history:t,currentType:o}=e,[i,a]=(0,n.useState)(!1),[s,l]=(0,n.useState)(""),c=tz(e=>e.clearHistory),d=(0,n.useRef)(null),u=(0,n.useMemo)(()=>{let e=Date.now(),A=e-6048e5,r=e-31536e6,n=t.filter(e=>e.prompt.toLowerCase().includes(s.toLowerCase()));return{recent7Days:n.filter(e=>e.timestamp>=A),recent1Year:n.filter(e=>e.timestamp<A&&e.timestamp>=r),older:n.filter(e=>e.timestamp<r)}},[t,s]);(0,n.useEffect)(()=>{if(!i)return;let e=e=>{d.current&&!d.current.contains(e.target)&&a(!1)},A=setTimeout(()=>{document.addEventListener("click",e)},100);return()=>{clearTimeout(A),document.removeEventListener("click",e)}},[i]);let p=(e,t)=>0===t.length?null:(0,r.jsxs)("div",{className:"history-group",children:[(0,r.jsx)("div",{className:"history-group-title",children:e}),t.map((e,t)=>(0,r.jsx)("div",{className:"history-item",onClick:()=>{A(e),a(!1)},children:e.prompt},`${e.timestamp}-${t}`))]},e);return(0,r.jsxs)("div",{className:"history-selector-wrapper",children:[(0,r.jsx)("div",{className:"selector-trigger",onClick:()=>a(!0),children:(0,r.jsx)(t6,{width:24,height:24})}),i&&(0,r.jsx)("div",{className:"history-modal-overlay",ref:d,children:(0,r.jsxs)("div",{className:"history-modal-container",children:[(0,r.jsxs)("div",{className:"history-modal-header",children:[(0,r.jsxs)(t4,{strong:!0,style:{fontSize:"16px"},children:["History (",t.length,")"]}),(0,r.jsx)(Ar.Ay,{size:"small",type:"text",icon:(0,r.jsx)(t9,{width:16,height:16}),onClick:()=>a(!1),className:"close-button"})]}),(0,r.jsx)("div",{className:"history-search-section",children:(0,r.jsxs)("div",{className:"search-input-wrapper",children:[(0,r.jsx)(eP.A,{placeholder:"Search",value:s,onChange:e=>l(e.target.value),prefix:(0,r.jsx)(t8,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,r.jsx)(Ar.Ay,{type:"link",onClick:()=>{c(o),l(""),a(!1)},className:"clear-button",disabled:0===t.length,children:"Clear"})]})}),(0,r.jsx)("div",{className:"history-content",children:0===t.length?(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(t4,{type:"secondary",children:"No history record"})}):(0,r.jsxs)(r.Fragment,{children:[p("Last 7 days",u.recent7Days),p("Last 1 year",u.recent1Year),p("Earlier",u.older),s&&0===u.recent7Days.length&&0===u.recent1Year.length&&0===u.older.length&&(0,r.jsx)("div",{className:"no-results",children:(0,r.jsx)(t4,{type:"secondary",children:"No matching history record"})})]})})]})})]})};function rA(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let{TextArea:rt}=eP.A,rr=e=>{let A,t,o,i,a,s,{runButtonEnabled:l,form:c,serviceMode:d,selectedType:u,dryMode:p,stoppable:g,loading:f,onRun:m,onStop:h,clearPromptAfterRun:y=!0,actionSpace:E,hideDomAndScreenshotOptions:v=!1,deviceType:b}=e,[k,C]=(0,n.useState)(!1),[S,I]=(0,n.useState)(""),x="aiQuery"===u?"What do you want to query?":"aiAssert"===u?"What do you want to assert?":"aiTap"===u?"What element do you want to tap?":"aiDoubleClick"===u?"What element do you want to double-click?":"aiHover"===u?"What element do you want to hover over?":"aiInput"===u?"Format: <value> | <element>\nExample: hello world | search box":"aiRightClick"===u?"What element do you want to right-click?":"aiKeyboardPress"===u?"Format: <key> | <element (optional)>\nExample: Enter | text field":"aiScroll"===u?"Format: <direction> <amount> | <element (optional)>\nExample: down 500 | main content":"aiLocate"===u?"What element do you want to locate?":"aiBoolean"===u?"What do you want to check (returns true/false)?":"aiNumber"===u?"What number do you want to extract?":"aiString"===u?"What text do you want to extract?":"aiAsk"===u?"What do you want to ask?":"aiWaitFor"===u?"What condition do you want to wait for?":"What do you want to do?",R=(0,n.useRef)(null),j=(0,n.useRef)(null),w=AA.A.useWatch("params",c),P=(0,n.useRef)(null),O=tz(e=>e.history),N=tz(e=>e.lastSelectedType),T=tz(e=>e.addHistory),M=tz(e=>e.setLastSelectedType),K=(0,n.useMemo)(()=>O[u]||[],[O,u]),B=(0,n.useMemo)(()=>{if(E){let e=E.find(e=>e.interfaceAlias===u||e.name===u);return!!(null==e?void 0:e.paramSchema)&&(!tU(e.paramSchema)||Object.keys(e.paramSchema.shape||{}).length>0)}return!1},[u,E]),D=(0,n.useMemo)(()=>{if(E&&E.length>0){let e=E.find(e=>e.interfaceAlias===u||e.name===u);if(e){if(e.paramSchema&&tU(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{isOptional:t}=tq(A[e]);return!t})}return!!e.paramSchema}}return!0},[u,E]),z=(0,n.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(u),[u]),Q=(0,n.useMemo)(()=>{if("aiAct"===u||"aiLocate"===u)return!0;if(E){let e=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==e?void 0:e.paramSchema)&&tU(e.paramSchema)){let A=e.paramSchema.shape||{};return Object.keys(A).some(e=>{let{actualField:t}=tq(A[e]);return tF(t)})}}return!1},[u,E]),L=(0,n.useMemo)(()=>"aiAct"===u,[u]),Z=(0,n.useMemo)(()=>{let e=z&&!v,A="android"===b||"ios"===b;return"In-Browser-Extension"===d||Q||L||e||A},[d,Q,L,z,v,b]),X=(0,n.useMemo)(()=>{let e=Object.keys(Ai);if(!E||0===E.length)return e;let A=E.map(e=>e.interfaceAlias||e.name),t=new Set;return e.forEach(e=>{let r=Ai[e];(null==r?void 0:r.group)==="extraction"||(null==r?void 0:r.group)==="validation"?t.add(e):A.includes(e)&&t.add(e)}),A.forEach(e=>{t.add(e)}),Array.from(t)},[E]),J=(0,n.useCallback)(()=>{if(!B||!E)return{};let e=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==e?void 0:e.paramSchema)&&tU(e.paramSchema)){let A={},t=e.paramSchema.shape||{};return Object.keys(t).forEach(e=>{let r=(e=>{var A;let t=e;for(;null==(A=t._def)?void 0:A.innerType;){if(t._def.typeName===tL&&t._def.defaultValue)return t._def.defaultValue();t=t._def.innerType}})(t[e]);void 0!==r&&(A[e]=r)}),A}return{}},[u,B,E]);(0,n.useEffect)(()=>{!c.getFieldValue("type")&&N&&c.setFieldValue("type",N)},[c,N]),(0,n.useEffect)(()=>{u&&u!==N&&M(u)},[u,N,M]);let U=(0,n.useCallback)(()=>{let e=j.current;if(!e)return;let A=null,t=e.querySelector(".ant-radio-button-wrapper-checked"),r=e.querySelector(".more-apis-button.selected-from-dropdown");if(t?A=t:r&&(A=r),A){let t=e.getBoundingClientRect(),r=A.getBoundingClientRect(),n=r.left-t.left+e.scrollLeft,o=r.width,i=t.width;e.scrollTo({left:Math.max(0,n-(i-o)/2),behavior:"smooth"})}},[]);(0,n.useEffect)(()=>{let e=K[0];if(!e||!P.current||e.timestamp!==P.current.timestamp)if(e)c.setFieldsValue({type:e.type,prompt:e.prompt||"",params:e.params}),I(e.prompt||""),P.current=e;else{let e=J();c.setFieldsValue({prompt:"",params:e}),I(""),P.current=null}},[u,K,c,J]),(0,n.useEffect)(()=>{let e=setTimeout(()=>{U()},100);return()=>clearTimeout(e)},[u,U]);let F=AA.A.useWatch("prompt",c);(0,n.useEffect)(()=>{F!==S&&I(F||"")},[F,S]);let q=(0,n.useCallback)(e=>{c.setFieldsValue({prompt:e.prompt,type:e.type,params:e.params}),I(e.prompt)},[c]),V=(0,n.useCallback)(e=>{I(e.target.value)},[]),G=(0,n.useMemo)(()=>{if(!B||!E)return!1;let e=E.find(e=>e.interfaceAlias===u||e.name===u);return!!((null==e?void 0:e.paramSchema)&&tU(e.paramSchema))&&1===Object.keys(e.paramSchema.shape||{}).length},[u,B,E]),H=(0,n.useMemo)(()=>((e,A,t,r,n,o)=>{if(!e)return!1;if(!(()=>{if(r){let e=r.find(e=>e.interfaceAlias===n||e.name===n);if(e){if(!e.paramSchema)return!1;if("object"==typeof e.paramSchema&&"shape"in e.paramSchema)return Object.keys(e.paramSchema.shape||{}).length>0}}return!0})())return!0;if(A){let e=t||{},A=null==r?void 0:r.find(e=>e.interfaceAlias===n||e.name===n);if((null==A?void 0:A.paramSchema)&&tU(A.paramSchema)){let t=A.paramSchema.shape||{};return Object.keys(t).every(A=>{let{isOptional:r}=tq(t[A]),n=e[A];return r||void 0!==n&&""!==n&&null!==n})}return!0}return o.trim().length>0})(l,!!B,w,E,u,S),[l,B,u,E,S,w]),W=(0,n.useCallback)(()=>{let e=c.getFieldsValue(),A="";if(B&&e.params&&E){let t=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==t?void 0:t.paramSchema)&&tU(t.paramSchema)){let r="",n=[],o=t.paramSchema.shape||{};Object.keys(o).forEach(A=>{var t;let i=null==(t=e.params)?void 0:t[A];if(null!=i&&""!==i){let{actualField:e}=tq(o[A]);tF(e)?r=String(i):"distance"===A?n.push(`${i}`):n.push(String(i))}});let i=n.join(" ");A=r?`${r} - ${i}`:i}else A=e.prompt||""}else A=e.prompt||"";let t={type:e.type,prompt:A,params:e.params,timestamp:Date.now()};if(T(t),m(),y)if(P.current=t,I(""),B){let e=J();c.setFieldValue("params",e)}else c.setFieldValue("prompt","")},[c,T,m,B,u,y,E,J]),Y=(0,n.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&H?(W(),e.preventDefault(),e.stopPropagation()):"Enter"===e.key&&setTimeout(()=>{if(R.current){var e;let A=null==(e=R.current.resizableTextArea)?void 0:e.textArea;if(A){let e=A.selectionStart,t=A.value.lastIndexOf("\n");(-1===t||e>t)&&(A.scrollTop=A.scrollHeight)}}},0)},[W,H]),_=(0,n.useCallback)(e=>{"Enter"===e.key&&e.metaKey&&H&&(W(),e.preventDefault(),e.stopPropagation())},[W,H]),$=(0,n.useCallback)(()=>{if(!B)return null;if(E){let e=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==e?void 0:e.paramSchema)&&tU(e.paramSchema)){let A=e.paramSchema.shape||{},t=Object.keys(A);if(1===t.length){let e=t[0],{actualField:n}=tq(A[e]),o=tF(n),i=(()=>{var A,t;if(null==(A=n._def)?void 0:A.description)return n._def.description;if(n.description)return n.description;if(E){let A=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}return o?"Describe the element you want to interact with":"keyName"===e?"Enter key name or text to type":"value"===e?"Enter text to input":`Enter ${e}`})();return(0,r.jsx)(AA.A.Item,{name:["params",e],style:{margin:0},children:(0,r.jsx)(eP.A.TextArea,{className:"main-side-console-input-textarea",rows:3,placeholder:i,autoFocus:!0,onKeyDown:_})})}let o=[],i=t.sort((e,t)=>{let r=A[e],n=A[t],{isOptional:o}=tq(r),{isOptional:i}=tq(n);return!o&&i?-1:o&&!i?1:0});if(i.forEach((e,t)=>{var n,a,s;let{actualField:l,isOptional:c}=tq(A[e]),d=tF(l),p=e.charAt(0).toUpperCase()+e.slice(1),g=12*(t!==i.length-1),f=(()=>{var A,t;if(null==(A=l._def)?void 0:A.description)return l._def.description;if(l.description)return l.description;if(E){let A=E.find(e=>e.interfaceAlias===u||e.name===u);if((null==A?void 0:A.paramSchema)&&"object"==typeof A.paramSchema&&"shape"in A.paramSchema){let r=(A.paramSchema.shape||{})[e];if(null==r||null==(t=r._def)?void 0:t.description)return r._def.description;if(null==r?void 0:r.description)return r.description}}if(d)return"Describe the element you want to interact with"})(),m={name:e,label:p,fieldSchema:l,isRequired:!c,marginBottom:g,placeholder:f};d?o.push((0,r.jsx)(t3,rA({},m),e)):(null==(n=l._def)?void 0:n.typeName)==="ZodEnum"?o.push((0,r.jsx)(t5,rA({},m),e)):(null==(a=l._def)?void 0:a.typeName)==="ZodNumber"?o.push((0,r.jsx)(t7,rA({},m),e)):(null==(s=l._def)?void 0:s.typeName)==="ZodBoolean"?o.push((0,r.jsx)(t2,rA({},m),e)):o.push((0,r.jsx)(t1,rA({},m),e))}),"aiScroll"===u){let e=o.find(e=>n.isValidElement(e)&&"direction"===e.props.name),A=o.find(e=>n.isValidElement(e)&&"distance"===e.props.name),t=o.filter(e=>n.isValidElement(e)&&"direction"!==e.props.name&&"distance"!==e.props.name);if(e&&A)return(0,r.jsxs)("div",{className:"structured-params",children:[(0,r.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[e,A]}),t]})}return(0,r.jsx)("div",{className:"structured-params",children:o})}}return null},[u,B,E,_]),ee=(0,n.useCallback)(()=>{C(!0)},[]),eA=(0,n.useCallback)(()=>{C(!1)},[]),et=(0,n.useCallback)(()=>{let e=e=>(0,r.jsx)(Ar.Ay,{type:"primary",icon:(0,r.jsx)(tj.A,{}),style:{borderRadius:20,zIndex:999},onClick:W,disabled:!H,loading:f,children:e});return p?"aiAct"===u?(0,r.jsx)(ej.A,{title:"Start executing until some interaction actions need to be performed. You can see the process of planning and locating.",children:e("Dry Run")}):e("Run"):g?(0,r.jsx)(Ar.Ay,{icon:(0,r.jsx)(tw.A,{}),onClick:h,style:{borderRadius:20,zIndex:999},children:"Stop"}):e("Run")},[p,f,W,h,H,u,g]);return(0,r.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group-wrapper",children:[(0,r.jsxs)("div",{className:"mode-radio-group",ref:j,children:[(0,r.jsx)(AA.A.Item,{name:"type",style:{margin:0},children:(0,r.jsx)(tO.A.Group,{buttonStyle:"solid",disabled:!l,children:Aa.map(e=>{var A;return(0,r.jsx)(ej.A,{title:(null==(A=Ai[e])?void 0:A.title)||"",children:(0,r.jsx)(tO.A.Button,{value:e,children:tV(e)})},e)})})}),(0,r.jsx)(tl.A,{menu:(A=X.filter(e=>!Aa.includes(e)),t=[],(o=A.filter(e=>{var A;return(null==(A=Ai[e])?void 0:A.group)==="interaction"})).length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:o.map(e=>{var A;return{key:e,label:tV(e),title:(null==(A=Ai[e])?void 0:A.title)||"",onClick:()=>{c.setFieldValue("type",e)}}})}),(i=A.filter(e=>{var A;return(null==(A=Ai[e])?void 0:A.group)==="extraction"})).length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:i.map(e=>{var A;return{key:e,label:tV(e),title:(null==(A=Ai[e])?void 0:A.title)||"",onClick:()=>{c.setFieldValue("type",e)}}})}),(a=A.filter(e=>{var A;return(null==(A=Ai[e])?void 0:A.group)==="validation"})).length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:a.map(e=>{var A;return{key:e,label:tV(e),title:(null==(A=Ai[e])?void 0:A.title)||"",onClick:()=>{c.setFieldValue("type",e)}}})}),(s=A.filter(e=>!Ai[e])).length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:s.map(e=>({key:e,label:tV(e),title:"",onClick:()=>{c.setFieldValue("type",e)}}))}),{items:t}),placement:"bottomLeft",trigger:["click"],disabled:!l,overlayClassName:"more-apis-dropdown",children:(0,r.jsxs)(Ar.Ay,{className:`more-apis-button ${!Aa.includes(u)?"selected-from-dropdown":""}`,children:[u&&!Aa.includes(u)?tV(u):"more",(0,r.jsx)(tP.A,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,r.jsxs)("div",{className:"action-icons",children:[Z&&(0,r.jsx)("div",{className:k?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:ee,onMouseLeave:eA,children:(0,r.jsx)(tW,{enableTracking:"In-Browser-Extension"===d,showDeepLocateOption:Q,showDeepThinkOption:L,showDataExtractionOptions:z,hideDomAndScreenshotOptions:v,deviceType:b})}),(0,r.jsx)(re,{onSelect:q,history:K,currentType:u})]})]}),(0,r.jsxs)("div",{className:`main-side-console-input ${!l?"disabled":""} ${f?"loading":""}`,children:[D?B?G?$():(0,r.jsx)("div",{className:"structured-params-container",children:$()}):(0,r.jsx)(AA.A.Item,{name:"prompt",style:{margin:0},children:(0,r.jsx)(rt,{className:"main-side-console-input-textarea",disabled:!l,rows:3,placeholder:x,autoFocus:!0,onKeyDown:Y,onChange:V,ref:R})}):(0,r.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',tV(u)]}),(0,r.jsx)("div",{className:"form-controller-wrapper",children:et()})]})]})};function rn(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function ro(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){rn(o,r,n,i,a,"next",e)}function a(e){rn(o,r,n,i,a,"throw",e)}i(void 0)})}}let{Text:ri}=ex.A;function ra(e){let{error:A}=e;if(!A)return null;let t=A.replace(/^(Error:\s*)+/,"Error: ");return(0,r.jsx)(Ae.A,{message:(0,r.jsx)("span",{style:{color:"#ff4d4f"},children:t}),type:"error",showIcon:!0})}function rs(e){let{playgroundSDK:A,storage:t,contextProvider:o,config:i={},branding:a={},className:s="",dryMode:l=!1,showContextPreview:c=!0}=e,[d]=AA.A.useForm(),{config:u}=e5(),[p,g]=(0,n.useState)(!1);(0,n.useEffect)(()=>{d.setFieldsValue({type:Aa["0"]})},[d]),(0,n.useEffect)(()=>{ro(function*(){if(A&&"function"==typeof A.checkStatus)try{yield A.checkStatus(),g(!0)}catch(e){console.warn("Failed to initialize SDK, using default namespace:",e),g(!0)}else g(!0)})()},[A]);let f=(0,n.useMemo)(()=>{if(t)return t;if(!p)return null;let e=i.storageNamespace||(A&&A.id&&"string"==typeof A.id?`agent-${A.id}`:"playground-default"),r=AJ();return console.log(`Using ${r} storage for namespace: ${e}`),AX(r,e)},[t,p,i.storageNamespace,A]),{loading:m,setLoading:h,infoList:y,setInfoList:E,actionSpace:v,actionSpaceLoading:b,uiContextPreview:k,setUiContextPreview:C,showScrollToBottomButton:S,verticalMode:I,replayCounter:x,setReplayCounter:R,infoListRef:j,currentRunningIdRef:w,interruptedFlagRef:P,clearInfoList:O,handleScrollToBottom:N}=function(e,A,t,r){let[o,i]=(0,n.useState)(!1),[a,s]=(0,n.useState)([]),[l,c]=(0,n.useState)([]),[d,u]=(0,n.useState)(!0),[p,g]=(0,n.useState)(),[f,m]=(0,n.useState)(!1),[h,y]=(0,n.useState)(!0),E=(0,n.useRef)(0),[v,b]=(0,n.useState)(!1),[k,C]=(0,n.useState)(0),S=(0,n.useRef)(null),I=(0,n.useRef)(null),x=(0,n.useRef)({}),R=(0,n.useRef)(!1);(0,n.useEffect)(()=>{let e=()=>AF(function*(){let e=AV(Aq({},As(r)),{id:"welcome",timestamp:new Date});if(null==A?void 0:A.loadMessages)try{let t=yield A.loadMessages();0===t.length&&(t=yield AF(function*(){let e=AX(AJ(),"playground-default");try{if(null==e?void 0:e.loadMessages){let t=yield e.loadMessages();if(t.length>1)return console.log("Found data in old namespace, migrating..."),(null==A?void 0:A.saveMessages)&&(yield A.saveMessages(t)),e.clearMessages&&(yield e.clearMessages()),t}}catch(e){console.debug("No data found in old namespace:",e)}return[]})()),t.some(e=>"welcome"===e.id)?s(t):s([e,...t])}catch(A){console.error("Failed to load messages:",A),s([e])}else s([e])})();A&&!R.current?(R.current=!0,e()):A||0!==a.length||e()},[A]),(0,n.useEffect)(()=>{(null==A?void 0:A.saveMessages)&&a.length>1&&A.saveMessages(a).catch(e=>{e instanceof DOMException&&"QuotaExceededError"===e.name?console.warn("Storage quota exceeded - some messages may not be saved persistently"):console.error("Failed to save messages:",e)})},[a,A]),(0,n.useEffect)(()=>{(null==t?void 0:t.getUIContext)&&!p&&t.getUIContext().then(e=>g(e)).catch(e=>{console.error("Failed to get UI context:",e)})},[t,p]),(0,n.useEffect)(()=>{AF(function*(){u(!0);try{var A;if(!e)return void c([]);let r=p||(yield null==t||null==(A=t.getUIContext)?void 0:A.call(t)),n=yield e.getActionSpace(r);c(n||[])}catch(e){console.error("Failed to load action space:",e),c([])}finally{u(!1)}})()},[e,p,t]),(0,n.useEffect)(()=>{b(window.innerWidth<750);let e=()=>{b(window.innerWidth<750)};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let j=(0,n.useCallback)(()=>{setTimeout(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},100)},[]),w=(0,n.useCallback)(()=>{if(S.current){let{scrollTop:e,scrollHeight:A,clientHeight:t}=S.current,r=e+t>=A-10;m(!r);let n=e<E.current;E.current=e,r?y(!0):n&&y(!1)}},[]),P=(0,n.useCallback)(()=>{S.current&&(S.current.scrollTo({top:S.current.scrollHeight,behavior:"smooth"}),m(!1),y(!0))},[]);(0,n.useEffect)(()=>{a.length>0&&h&&j()},[a,j,h]),(0,n.useEffect)(()=>{let e=S.current;if(e)return e.addEventListener("scroll",w),w(),()=>{e.removeEventListener("scroll",w)}},[w]);let O=(0,n.useCallback)(()=>AF(function*(){if(s([AV(Aq({},As(r)),{id:"welcome",timestamp:new Date})]),null==A?void 0:A.clearMessages)try{yield A.clearMessages()}catch(e){console.error("Failed to clear stored messages:",e)}})(),[A,r]),N=(0,n.useCallback)(()=>AF(function*(){if(null==t?void 0:t.refreshContext)try{let e=yield t.refreshContext();g(e)}catch(e){console.error("Failed to refresh context:",e)}})(),[t]);return{loading:o,setLoading:i,infoList:a,setInfoList:s,actionSpace:l,actionSpaceLoading:d,uiContextPreview:p,setUiContextPreview:g,showScrollToBottomButton:f,verticalMode:v,replayCounter:k,setReplayCounter:C,infoListRef:S,currentRunningIdRef:I,interruptedFlagRef:x,clearInfoList:O,refreshContext:N,handleScrollToBottom:P,scrollToBottom:j}}(A,f,o,a.targetName),{handleRun:T,handleStop:M,canStop:K}=function(e){let{playgroundSDK:A,storage:t,actionSpace:r,loading:o,setLoading:i,setInfoList:a,replayCounter:s,setReplayCounter:l,verticalMode:c,currentRunningIdRef:d,interruptedFlagRef:u,deviceType:p}=e,{deepLocate:g,deepThink:f,screenshotIncluded:m,domIncluded:h,imeStrategy:y,autoDismissKeyboard:E,keyboardDismissStrategy:v,alwaysRefreshScreenInfo:b}=e5(),k=(0,n.useCallback)(e=>Ah(function*(){if(!A)return void console.warn("PlaygroundSDK is not available");let r=Date.now(),n=e.type,o=`${e.type}: ${e.prompt||JSON.stringify(e.params)}`,k={id:`user-${Date.now()}`,type:"user",content:o,timestamp:new Date};a(e=>[...e,k]),i(!0);let C=Ay({},Al),S={id:`system-${r}`,type:"system",content:"",timestamp:new Date,loading:!0,loadingProgressText:""};a(e=>[...e,S]);try{d.current=r,u.current[r]=!1,A.onDumpUpdate&&A.onDumpUpdate((e,A)=>{var t;if(u.current[r]||!(null==A||null==(t=A.tasks)?void 0:t.length))return;let n=A.tasks.map((e,A)=>{var t;let n,o;return{id:`progress-${r}-task-${A}`,type:"progress",content:(n=ep(e),(o=ef(e))?`${n} - ${o}`:n),timestamp:new Date((null==(t=e.timing)?void 0:t.start)||Date.now()),result:e.error?{error:Av(e.error),result:null}:void 0}});a(e=>{let A=e.findIndex(e=>e.id===`system-${r}`);if(-1===A)return e;let t=e.filter(e=>!("progress"===e.type&&e.id.startsWith(`progress-${r}-`)));return[...t.slice(0,A+1),...n,...t.slice(A+1)]})}),"aiAct"!==n&&f&&console.warn("[Playground] Non-aiAct action will be executed without deepThink. deepThink is only forwarded for aiAct.",{actionType:n,requestId:r.toString()});let t=AE(Ay({requestId:r.toString(),deepLocate:g},"aiAct"===n?{deepThink:f}:{}),{screenshotIncluded:m,domIncluded:h,deviceOptions:{imeStrategy:y,autoDismissKeyboard:E,keyboardDismissStrategy:v,alwaysRefreshScreenInfo:b}});if(C.result=yield A.executeAction(n,e,t),"object"==typeof C.result&&null!==C.result){let e=C.result;e.dump&&(C.dump=e.dump),e.reportHTML&&(C.reportHTML=e.reportHTML),e.error&&(C.error=Av(e.error)),"result"in e&&(C.result=e.result)}}catch(e){C.error=Av(e),console.error("Playground execution error:",e),"object"==typeof e&&null!==e&&(e.dump&&(C.dump=e.dump),e.reportHTML&&(C.reportHTML=e.reportHTML))}if(u.current[r])return;i(!1),d.current=null;let I=null,x=s;if((null==C?void 0:C.dump)&&C.dump.tasks&&Array.isArray(C.dump.tasks)){let e=Ag(Ab(C.dump,p));l(e=>e+1),I=e,x=s+1}a(e=>e.map(e=>e.id===`system-${r}`?AE(Ay({},e),{content:"",loading:!1,loadingProgressText:""}):e));let R={id:`result-${r}`,type:"result",content:"Execution result",timestamp:new Date,result:C,loading:!1,replayScriptsInfo:I,replayCounter:x,loadingProgressText:"",verticalMode:c,actionType:n};if(a(e=>[...e,R]),null==t?void 0:t.saveResult)try{yield t.saveResult(R.id,R)}catch(e){console.error("Failed to save result:",e)}let j={id:`separator-${r}`,type:"separator",content:"New Session",timestamp:new Date};a(e=>[...e,j])})(),[A,t,r,i,a,s,l,c,d,u,g,f,m,h,p,y,E,v,b]),C=(0,n.useCallback)(()=>Ah(function*(){let e=d.current;if(e&&A&&A.cancelExecution)try{let r=yield A.cancelExecution(e.toString()),n=null;if(r)n=r;else if(A.getCurrentExecutionData)try{n=yield A.getCurrentExecutionData()}catch(e){console.error("Failed to get execution data before stop:",e)}if(u.current[e]=!0,i(!1),A.onProgressUpdate&&A.onProgressUpdate(()=>{}),A.onDumpUpdate&&A.onDumpUpdate(()=>{}),a(A=>A.map(A=>A.id===`system-${e}`?AE(Ay({},A),{content:"",loading:!1,loadingProgressText:""}):A)),n&&(n.dump||n.reportHTML)){var t;let A=null,r=s;if((null==(t=n.dump)?void 0:t.tasks)&&Array.isArray(n.dump.tasks)){let e=Ab(n.dump,p);A=Ag(e),l(e=>e+1),r=s+1}let o={id:`stop-result-${e}`,type:"result",content:"Execution stopped by user",timestamp:new Date,result:{result:null,dump:n.dump,reportHTML:n.reportHTML,error:null},loading:!1,verticalMode:c,replayScriptsInfo:A,replayCounter:r};a(e=>[...e,o])}else{let A={id:`stop-${e}`,type:"system",content:"Operation stopped",timestamp:new Date,loading:!1};a(e=>[...e,A])}let o={id:`separator-${e}`,type:"separator",content:"New Session",timestamp:new Date};a(e=>[...e,o])}catch(e){console.error("Failed to stop execution:",e)}})(),[A,d,u,i,a,c,s,p]);return{handleRun:k,handleStop:C,canStop:o&&!!d.current&&!!A&&!!A.cancelExecution}}({playgroundSDK:A,storage:f,actionSpace:v,loading:m,setLoading:h,setInfoList:E,replayCounter:x,setReplayCounter:R,verticalMode:I,currentRunningIdRef:w,interruptedFlagRef:P,deviceType:i.deviceType});(0,n.useEffect)(()=>{(null==A?void 0:A.overrideConfig)&&u&&A.overrideConfig(u).catch(e=>{console.error("Failed to override SDK config:",e);let A=e instanceof Error?e.message:String(e);At.Ay.error(`Failed to apply AI configuration: ${A}`)})},[A,u]);let B=(0,n.useCallback)(()=>ro(function*(){try{let e=d.getFieldsValue();yield T(e)}catch(e){At.Ay.error((null==e?void 0:e.message)||"Execution failed")}})(),[d,T]),D=Object.keys(u||{}).length>=1,z=i.serverMode||!l&&!b&&D,Q=AA.A.useWatch("type",d),L=(0,n.useMemo)(()=>A&&"function"==typeof A.getServiceMode?A.getServiceMode():"Server",[A]),Z=c&&!1!==i.showContextPreview,X=i.layout||"vertical",J=!1!==i.showVersionInfo,U=i.deviceType;return(0,r.jsx)("div",{className:`playground-container ${X}-mode ${s}`.trim(),children:(0,r.jsxs)(AA.A,{form:d,onFinish:B,className:"command-form",children:[Z&&(0,r.jsx)("div",{className:"context-preview-section",children:(0,r.jsx)(A6,{uiContextPreview:k,setUiContextPreview:C,showContextPreview:Z})}),(0,r.jsxs)("div",{className:"middle-dialog-area",children:[y.length>1&&(0,r.jsx)("div",{className:"clear-button-container",children:(0,r.jsx)(Ar.Ay,{size:"small",icon:(0,r.jsx)(e9.A,{}),onClick:O,type:"text",className:"clear-button"})}),(0,r.jsx)("div",{ref:j,className:"info-list-container",children:(0,r.jsx)(An.A,{itemLayout:"vertical",dataSource:y,renderItem:e=>{var A,t,n,o;let i,s,l,c,d,u;return(0,r.jsx)(An.A.Item,{className:"list-item",children:"user"===e.type?(0,r.jsx)("div",{className:"user-message-container",children:(0,r.jsx)("div",{className:"user-message-bubble",children:e.content})}):"progress"===e.type?(0,r.jsx)("div",{children:(s=null==(A=(i=e.content.split(" - "))[0])?void 0:A.trim(),l=i.slice(1).join(" - ").trim(),c=y.findIndex(A=>A.id===e.id),d=y.slice(c+1).some(e=>"progress"===e.type),u=m&&!d,(0,r.jsxs)(r.Fragment,{children:[s&&(0,r.jsxs)("span",{className:"progress-action-item",children:[s,(0,r.jsx)("span",{className:`progress-status-icon ${u?"loading":(null==(t=e.result)?void 0:t.error)?"error":"completed"}`,children:u?(0,r.jsx)(e6.A,{spin:!0}):(null==(n=e.result)?void 0:n.error)?"✗":"✓"})]}),l&&(0,r.jsx)("div",{children:(0,r.jsx)(A3,{text:l,className:"progress-description",disabled:!u})}),(null==(o=e.result)?void 0:o.error)&&(0,r.jsx)(ra,{error:e.result.error})]}))}):"separator"===e.type?(0,r.jsxs)("div",{className:"new-conversation-separator",children:[(0,r.jsx)("div",{className:"separator-line"}),(0,r.jsx)("div",{className:"separator-text-container",children:(0,r.jsx)(ri,{type:"secondary",className:"separator-text",children:e.content})})]}):(0,r.jsxs)("div",{className:"system-message-container",children:[(0,r.jsxs)("div",{className:"system-message-header",children:[(0,r.jsx)(e8.A,{component:a.icon||tR,style:{fontSize:20}}),(0,r.jsx)("span",{className:"system-message-title",children:a.title||"Playground"})]}),(e.content||e.result)&&(0,r.jsx)("div",{className:"system-message-content",children:"result"===e.type?(0,r.jsx)(tx,{result:e.result||null,loading:e.loading||!1,serverValid:!0,serviceMode:L,replayScriptsInfo:e.replayScriptsInfo||null,replayCounter:e.replayCounter||0,loadingProgressText:e.loadingProgressText||"",verticalMode:e.verticalMode||!1,fitMode:"width",actionType:e.actionType}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"system-message-text",children:e.content}),e.loading&&e.loadingProgressText&&(0,r.jsx)("div",{className:"loading-progress-text",children:(0,r.jsx)("span",{children:e.loadingProgressText})})]})})]})},e.id)}})}),S&&!1!==i.enableScrollToBottom&&(0,r.jsx)(Ar.Ay,{className:"scroll-to-bottom-button",type:"primary",shape:"circle",icon:(0,r.jsx)(e4.A,{}),onClick:N,size:"large"})]}),(0,r.jsxs)("div",{className:"bottom-input-section",children:[i.showEnvConfigReminder?(0,r.jsx)(A4,{}):null,(0,r.jsx)(rr,{runButtonEnabled:z,form:d,serviceMode:L,selectedType:Q,dryMode:l,stoppable:K,loading:m,onRun:B,onStop:M,actionSpace:v,deviceType:U})]}),J&&a.version&&(0,r.jsx)("div",{className:"version-info-section",children:(0,r.jsxs)("span",{className:"version-text",children:["Midscene.js version: ",a.version]})})]})})}var rl=t(1352),rc=t(955);function rd(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}function ru(e){return function(){var A=this,t=arguments;return new Promise(function(r,n){var o=e.apply(A,t);function i(e){rd(o,r,n,i,a,"next",e)}function a(e){rd(o,r,n,i,a,"throw",e)}i(void 0)})}}function rp(e){let{getScreenshot:A,getInterfaceInfo:t,serverOnline:o,isUserOperating:i=!1,mjpegUrl:a}=e,[s,l]=(0,n.useState)(null),[c,d]=(0,n.useState)(!1),[u,p]=(0,n.useState)(null),[g,f]=(0,n.useState)(0),[m,h]=(0,n.useState)(null),y=!!(a&&o),E=(0,n.useRef)(null),v=(0,n.useRef)(!1),b=(0,n.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return ru(function*(){if(o){d(!0),e&&p(null);try{let e=yield A();if(console.log("Screenshot API response:",e),null==e?void 0:e.screenshot){let A=e.screenshot.toString().trim();A?(l(A),p(null),f(Date.now())):p("Empty screenshot data received")}else p("No screenshot data in response")}catch(e){console.error("Screenshot fetch error:",e),p(e instanceof Error?e.message:"Failed to fetch screenshot")}finally{d(!1)}}})()},[A,o]),k=(0,n.useCallback)(()=>ru(function*(){if(o&&t)try{let e=yield t();e&&h(e)}catch(e){console.error("Interface info fetch error:",e)}})(),[t,o]),C=(0,n.useCallback)(()=>{E.current&&clearInterval(E.current),console.log("Starting screenshot polling (5s interval)"),E.current=setInterval(()=>{!v.current&&o&&b(!1)},5e3)},[b,o]),S=(0,n.useCallback)(()=>{E.current&&(console.log("Stopping screenshot polling"),clearInterval(E.current),E.current=null)},[]),I=(0,n.useCallback)(()=>{console.log("Pausing screenshot polling"),v.current=!0},[]),x=(0,n.useCallback)(()=>{console.log("Resuming screenshot polling"),v.current=!1},[]),R=(0,n.useCallback)(()=>{b(!0)},[b]);return((0,n.useEffect)(()=>{if(!o){l(null),p(null),h(null),S();return}return(k(),y)?void S():(b(!1),C(),()=>{S()})},[o,y,C,S,b,k]),(0,n.useEffect)(()=>{o&&(i?I():(x(),b(!1)))},[i,I,x,b,o]),(0,n.useEffect)(()=>()=>{S()},[S]),o)?y||!c||s?y||!u||s?(0,r.jsxs)("div",{className:"screenshot-viewer",children:[(0,r.jsx)("div",{className:"screenshot-header",children:(0,r.jsx)("div",{className:"screenshot-title",children:(0,r.jsx)("h3",{children:(null==m?void 0:m.type)?m.type:"Device Name"})})}),(0,r.jsxs)("div",{className:"screenshot-container",children:[(0,r.jsxs)("div",{className:"screenshot-overlay",children:[(0,r.jsxs)("div",{className:"device-name-overlay",children:["Device Name",(0,r.jsx)(ej.A,{title:null==m?void 0:m.description,children:(0,r.jsx)(rl.A,{size:16,className:"info-icon"})})]}),!y&&(0,r.jsxs)("div",{className:"screenshot-controls",children:[g>0&&(0,r.jsxs)("span",{className:"last-update-time",children:["Last updated ",(e=>{if(!e)return"";let A=Math.floor((Date.now()-e)/1e3);return A<60?`${A}s ago`:A<3600?`${Math.floor(A/60)}m ago`:new Date(e).toLocaleTimeString()})(g)]}),(0,r.jsx)(ej.A,{title:"Refresh screenshot",children:(0,r.jsx)(Ar.Ay,{icon:(0,r.jsx)(rc.A,{}),onClick:R,loading:c,size:"small"})}),i&&(0,r.jsxs)("span",{className:"operation-indicator",children:[(0,r.jsx)(te.A,{size:"small"})," Operating..."]})]})]}),(0,r.jsx)("div",{className:"screenshot-content",children:y?(0,r.jsx)("img",{src:a,alt:"Device Live Stream",className:"screenshot-image"}):s?(0,r.jsx)("img",{src:s.startsWith("data:image/")?s:`data:image/png;base64,${s}`,alt:"Device Screenshot",className:"screenshot-image",onLoad:()=>console.log("Screenshot image loaded successfully"),onError:e=>{console.error("Screenshot image load error:",e),console.error("Screenshot data preview:",s.substring(0,100)),p("Failed to load screenshot image")}}):(0,r.jsx)("div",{className:"screenshot-placeholder",children:(0,r.jsx)("p",{children:"No screenshot available"})})})]})]}):(0,r.jsx)("div",{className:"screenshot-viewer error",children:(0,r.jsxs)("div",{className:"screenshot-placeholder",children:[(0,r.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,r.jsx)("p",{className:"error-message",children:u})]})}):(0,r.jsxs)("div",{className:"screenshot-viewer loading",children:[(0,r.jsx)(te.A,{size:"large"}),(0,r.jsx)("p",{children:"Loading screenshot..."})]}):(0,r.jsx)("div",{className:"screenshot-viewer offline",children:(0,r.jsxs)("div",{className:"screenshot-placeholder",children:[(0,r.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,r.jsx)("p",{children:"Start the playground server to see real-time screenshots"})]})})}var rg=t(6453),rf=t(2770),rm=t(4458);let rh=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:400,height:283,fill:"none",viewBox:"0 0 400 283"},e),t=t={children:[(0,r.jsx)("path",{fill:"url(#server-offline-background_svg__a)",fillOpacity:.7,d:"M0 283h283v400H0z",transform:"rotate(-90 0 283)"}),(0,r.jsx)("path",{fill:"url(#server-offline-background_svg__b)",d:"M0 0h400v283H0z"}),(0,r.jsxs)("defs",{children:[(0,r.jsxs)("radialGradient",{id:"server-offline-background_svg__b",cx:0,cy:0,r:1,gradientTransform:"matrix(0 115.5 -163.251 0 200 141.5)",gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#F2F4F7",stopOpacity:0}),(0,r.jsx)("stop",{offset:1,stopColor:"#F2F4F7"})]}),(0,r.jsx)("pattern",{id:"server-offline-background_svg__a",width:1,height:1,patternTransform:"matrix(18 0 0 18 0 283)",patternUnits:"userSpaceOnUse",preserveAspectRatio:"none",viewBox:"0 0 12 12",children:(0,r.jsx)("path",{stroke:"#A1A1A1",strokeWidth:.2,d:"M.1.1h11.8v11.8H.1z"})})]})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))},ry=e=>{var A,t;return(0,r.jsxs)("svg",(A=function(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}({xmlns:"http://www.w3.org/2000/svg",width:178,height:135,fill:"none",viewBox:"0 0 178 135"},e),t=t={children:[(0,r.jsx)("g",{filter:"url(#server-offline-foreground_svg__a)",children:(0,r.jsx)("rect",{width:74,height:97.5,fill:"url(#server-offline-foreground_svg__b)",rx:12,transform:"matrix(.86603 .5 -.86603 .5 99.136 28.5)"})}),(0,r.jsx)("rect",{width:78,height:101.5,y:-2,fill:"url(#server-offline-foreground_svg__c)",stroke:"url(#server-offline-foreground_svg__d)",strokeWidth:4,rx:14,transform:"matrix(.86603 .5 -.86603 .5 97.404 4)"}),(0,r.jsx)("path",{fill:"url(#server-offline-foreground_svg__e)",d:"M78.147 31.404a.9.9 0 0 1 .156-.559c.117-.178.295-.34.524-.478.228-.138.503-.248.806-.322a4 4 0 0 1 .961-.114c.33 0 .657.038.961.113s.578.184.807.322c.23.137.407.3.525.478.117.178.17.368.157.559v3c.014.19-.04.38-.156.559a1.6 1.6 0 0 1-.524.478 3 3 0 0 1-.806.322c-.304.075-.631.114-.961.114s-.657-.038-.961-.113a3 3 0 0 1-.807-.321 1.6 1.6 0 0 1-.525-.479.9.9 0 0 1-.157-.559zm-9.678 8.414c-.632-.015-1.23-.17-1.668-.434s-.682-.615-.682-.98c0-.366.246-.717.684-.98.438-.264 1.036-.42 1.669-.434h5.196c.33-.007.659.024.968.091.308.068.59.17.828.303s.428.29.557.466a.93.93 0 0 1 .196.555.93.93 0 0 1-.197.554c-.13.176-.32.334-.558.466s-.52.235-.829.303a4 4 0 0 1-.968.09zm38.106 11a4 4 0 0 1-.956-.098 3 3 0 0 1-.815-.305 1.7 1.7 0 0 1-.547-.463.93.93 0 0 1-.193-.55c0-.188.066-.375.193-.549s.313-.331.547-.463c.233-.132.511-.235.815-.304.304-.07.629-.102.956-.098h5.196c.327-.004.652.029.956.098s.582.172.815.304c.234.132.42.29.547.463s.193.361.193.55a.93.93 0 0 1-.193.55 1.7 1.7 0 0 1-.547.462 3 3 0 0 1-.815.305 4 4 0 0 1-.956.097zm-9.38 2.585c.017-.369.281-.72.74-.978.457-.258 1.071-.402 1.71-.402.64 0 1.255.144 1.713.402.457.258.722.61.738.978v3a.9.9 0 0 1-.169.552c-.12.176-.299.336-.527.471a3 3 0 0 1-.803.316 4 4 0 0 1-.951.11c-.327 0-.65-.037-.952-.11a3 3 0 0 1-.802-.316 1.6 1.6 0 0 1-.527-.47.9.9 0 0 1-.17-.553zm8.515-18.5c-1.838-1.06-4.33-1.656-6.93-1.656-2.598 0-5.09.596-6.928 1.657l-5.196 3c-.225.14-.495.252-.796.33s-.626.12-.956.123a4 4 0 0 1-.963-.102 3 3 0 0 1-.817-.312 1.7 1.7 0 0 1-.54-.471.9.9 0 0 1-.178-.557.95.95 0 0 1 .215-.551c.135-.174.33-.33.571-.46l5.196-3c2.757-1.591 6.495-2.485 10.393-2.485s7.636.894 10.392 2.485c2.756 1.592 4.305 3.75 4.305 6s-1.549 4.409-4.305 6l-5.196 3a2.9 2.9 0 0 1-.796.33 4.087 4.087 0 0 1-1.919.021 3 3 0 0 1-.817-.311 1.7 1.7 0 0 1-.54-.472.9.9 0 0 1-.177-.556.95.95 0 0 1 .214-.552c.135-.174.33-.33.572-.46l5.196-3c1.837-1.06 2.87-2.5 2.87-4s-1.033-2.94-2.87-4m-29.444 5c.224-.14.494-.252.795-.33s.626-.12.956-.123.657.03.963.102c.306.071.584.177.817.312.234.135.417.295.54.472a.9.9 0 0 1 .178.556.95.95 0 0 1-.215.551c-.135.174-.329.33-.571.46l-5.196 3c-1.838 1.06-2.87 2.5-2.87 4s1.032 2.94 2.87 4c1.838 1.062 4.33 1.658 6.929 1.658s5.091-.596 6.929-1.657l5.196-3c.465-.249 1.079-.384 1.712-.376.633.007 1.238.155 1.686.414.448.258.705.607.717.973s-.221.72-.652.988l-5.196 3c-2.756 1.592-6.494 2.486-10.392 2.486s-7.636-.894-10.392-2.486c-2.757-1.591-4.305-3.75-4.305-6s1.548-4.408 4.305-6z"}),(0,r.jsx)("path",{fill:"#000",d:"m108.005 6.698 3.211-1.854c.954-.55 2.247-.86 3.596-.86s2.642.31 3.596.86c.953.55 1.489 1.297 1.489 2.076 0 .778-.536 1.525-1.489 2.076l-9.589 5.535c-.317.184-.749.287-1.198.287-.45 0-.881-.103-1.199-.287-.317-.183-.496-.432-.496-.692s.179-.508.496-.692l9.589-5.535-2.398-1.384-9.588 5.535c-.953.551-1.489 1.298-1.489 2.076 0 .779.536 1.526 1.489 2.076s2.247.86 3.596.86c1.348 0 2.642-.31 3.595-.86l9.589-5.535c1.589-.918 2.482-2.163 2.482-3.46s-.893-2.543-2.482-3.46c-1.59-.918-3.745-1.433-5.993-1.433s-4.403.515-5.993 1.433l-4.394 2.537z"}),(0,r.jsxs)("defs",{children:[(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__b",x1:37,x2:37,y1:0,y2:97.5,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#D9D9D9"}),(0,r.jsx)("stop",{offset:1,stopColor:"#E9E9EB"})]}),(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__c",x1:37,x2:37,y1:0,y2:97.5,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#7D7E80"}),(0,r.jsx)("stop",{offset:1,stopColor:"#C7C9CC"})]}),(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__d",x1:37,x2:37,y1:0,y2:97.5,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#fff"}),(0,r.jsx)("stop",{offset:1,stopColor:"#fff",stopOpacity:.2})]}),(0,r.jsxs)("linearGradient",{id:"server-offline-foreground_svg__e",x1:72.75,x2:90.111,y1:33.874,y2:63.944,gradientUnits:"userSpaceOnUse",children:[(0,r.jsx)("stop",{stopColor:"#fff"}),(0,r.jsx)("stop",{offset:1,stopColor:"#fff",stopOpacity:.5})]}),(0,r.jsxs)("filter",{id:"server-offline-foreground_svg__a",width:176.348,height:118.721,x:.786,y:16.015,colorInterpolationFilters:"sRGB",filterUnits:"userSpaceOnUse",children:[(0,r.jsx)("feFlood",{floodOpacity:0,result:"BackgroundImageFix"}),(0,r.jsx)("feColorMatrix",{in:"SourceAlpha",result:"hardAlpha",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"}),(0,r.jsx)("feOffset",{dy:4}),(0,r.jsx)("feGaussianBlur",{stdDeviation:10}),(0,r.jsx)("feComposite",{in2:"hardAlpha",operator:"out"}),(0,r.jsx)("feColorMatrix",{values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.04 0"}),(0,r.jsx)("feBlend",{in2:"BackgroundImageFix",result:"effect1_dropShadow_4624_2901"}),(0,r.jsx)("feBlend",{in:"SourceGraphic",in2:"effect1_dropShadow_4624_2901",result:"shape"})]})]})]},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(t)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(t)).forEach(function(e){Object.defineProperty(A,e,Object.getOwnPropertyDescriptor(t,e))}),A))};function rE(e,A,t,r,n,o,i){try{var a=e[o](i),s=a.value}catch(e){t(e);return}a.done?A(s):Promise.resolve(s).then(r,n)}let rv=["android","ios","web","harmony"];function rb(e){for(var A=1;A<arguments.length;A++){var t=null!=arguments[A]?arguments[A]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.forEach(function(A){var r;r=t[A],A in e?Object.defineProperty(e,A,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[A]=r})}return e}let{Content:rk}=rg.A;function rC(e){var A,t,o,i;let{serverUrl:a,appVersion:s,title:l="Playground",defaultDeviceType:c="web",branding:d,playgroundConfig:u,offlineTitle:p="Midscene Playground",offlineStatusText:g="Server offline...",pollIntervalMs:f=5e3}=e,[m,h]=(0,n.useState)(!1),y=(0,n.useMemo)(()=>new eb({type:"remote-execution",serverUrl:a}),[a]),{serverOnline:E,isUserOperating:v,deviceType:b}=function(e,A,t){let[r,o]=(0,n.useState)(!1),[i,a]=(0,n.useState)(!1),[s,l]=(0,n.useState)(A);return(0,n.useEffect)(()=>{e.onProgressUpdate(e=>{a(!!e)})},[e]),(0,n.useEffect)(()=>{let A=!0,r=()=>{var t;return(t=function*(){try{let t=yield e.checkStatus();if(!A||(o(t),!t))return;try{let t=yield e.getInterfaceInfo();if(!A||!(null==t?void 0:t.type))return;let r=t.type.toLowerCase();rv.includes(r)&&l(r)}catch(e){console.warn("Failed to get interface info:",e)}}catch(e){if(!A)return;console.error("Failed to check server status:",e),o(!1)}},function(){var e=this,A=arguments;return new Promise(function(r,n){var o=t.apply(e,A);function i(e){rE(o,r,n,i,a,"next",e)}function a(e){rE(o,r,n,i,a,"throw",e)}i(void 0)})})()};r();let n=window.setInterval(r,t);return()=>{A=!1,window.clearInterval(n)}},[e,t]),{serverOnline:r,isUserOperating:i,deviceType:s}}(y,c,f);(0,n.useEffect)(()=>{let e=()=>{h(window.innerWidth<=1024)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);let k=rb({showContextPreview:!1,layout:"vertical",showVersionInfo:!0,enableScrollToBottom:!0,serverMode:!0,showEnvConfigReminder:!0,deviceType:"harmony"===b?"ios":b},u),C=(o=rb({},d),i=i={title:null!=(A=null==d?void 0:d.title)?A:l,version:null!=(t=null==d?void 0:d.version)?t:s},Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(i)):(function(e,A){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t})(Object(i)).forEach(function(e){Object.defineProperty(o,e,Object.getOwnPropertyDescriptor(i,e))}),o);return E?(0,r.jsx)(rf.Ay,{theme:ek(),children:(0,r.jsx)(rg.A,{className:"app-container playground-container",children:(0,r.jsx)(rk,{className:"app-content",children:(0,r.jsxs)(rm.YZ,{autoSaveId:"playground-layout",direction:m?"vertical":"horizontal",children:[(0,r.jsx)(rm.Zk,{defaultSize:m?67:32,maxSize:m?85:60,minSize:m?67:25,className:"app-panel left-panel",children:(0,r.jsxs)("div",{className:"panel-content left-panel-content",children:[(0,r.jsx)("div",{className:"playground-panel-header",children:(0,r.jsxs)("div",{className:"header-row",children:[(0,r.jsx)(eC,{}),(0,r.jsx)(e2,{showTooltipWhenEmpty:!1,showModelName:!1})]})}),(0,r.jsx)("div",{className:"playground-panel-playground",children:(0,r.jsx)(rs,{playgroundSDK:y,config:k,branding:C,className:"playground-container"})})]})}),(0,r.jsx)(rm.TW,{className:`panel-resize-handle ${m?"vertical":"horizontal"}`}),(0,r.jsx)(rm.Zk,{className:"app-panel right-panel",children:(0,r.jsx)("div",{className:"panel-content right-panel-content",children:(0,r.jsx)(rp,{getScreenshot:()=>y.getScreenshot(),getInterfaceInfo:()=>y.getInterfaceInfo(),serverOnline:E,isUserOperating:v,mjpegUrl:"ios"===b||"harmony"===b?`${a}/mjpeg`:void 0})})})]})})})}):(0,r.jsx)(rf.Ay,{theme:ek(),children:(0,r.jsx)("div",{className:"server-offline-container",children:(0,r.jsxs)("div",{className:"server-offline-message",children:[(0,r.jsx)(eC,{}),(0,r.jsxs)("div",{className:"server-offline-content",children:[(0,r.jsxs)("div",{className:"server-offline-icon",children:[(0,r.jsx)(rh,{className:"icon-background"}),(0,r.jsx)(ry,{className:"icon-foreground"})]}),(0,r.jsx)("h1",{children:p}),(0,r.jsx)("p",{className:"connection-status",children:g})]})]})})})}let rS=document.getElementById("root");if(!rS)throw Error("Root element not found");(0,o.createRoot)(rS).render((0,r.jsx)(n.StrictMode,{children:(0,r.jsx)(function(){return(0,r.jsx)(rC,{serverUrl:"",appVersion:"1.5.6",title:"Playground",offlineTitle:"Midscene Playground"})},{})}))},1182(){},3198(e,A,t){"use strict";t.d(A,{ZH:()=>u});var r=t(3244),n=t(5207),o=t(3078),i=t.n(o),a=t(217),s=t(9368),l=t(9152),c=t(5409);let d="midscene_run",u=e=>{if(!l.$9)return"";let A=(()=>{if(!l.$9)return"";let e=i().resolve(c.cwd(),l.$9?(0,a.j)(s.Tr)||d:"");if(!(0,r.existsSync)(e))try{(0,r.mkdirSync)(e,{recursive:!0})}catch(A){e=i().join((0,n.tmpdir)(),d),(0,r.mkdirSync)(e,{recursive:!0})}return e})(),t=i().join(A,e);return(0,r.existsSync)(t)||(0,r.mkdirSync)(t,{recursive:!0}),t}},217(e,A,t){"use strict";t.d(A,{j:()=>o});var r=t(9368),n=t(5409);let o=e=>{if(!r.Wh.includes(e))throw Error(`getBasicEnvValue with key ${e} is not supported.`);return n.env[e]}},9368(e,A,t){"use strict";t.d(A,{$:()=>x,$H:()=>p,$L:()=>l,$l:()=>i,AU:()=>b,BQ:()=>R,CA:()=>I,Cn:()=>es,DL:()=>ey,El:()=>D,FU:()=>d,HR:()=>n,I2:()=>r,IQ:()=>u,JM:()=>w,Jq:()=>k,Km:()=>h,Lg:()=>ev,Lh:()=>F,M1:()=>v,NF:()=>O,OK:()=>eo,OY:()=>ed,Od:()=>j,Sk:()=>M,T4:()=>X,TN:()=>Q,Tr:()=>L,UH:()=>eI,V7:()=>G,VM:()=>E,Vb:()=>eu,W4:()=>m,Wh:()=>em,XE:()=>eb,YK:()=>z,Yf:()=>J,Yg:()=>V,Z$:()=>ea,Z7:()=>q,ZX:()=>s,_j:()=>eC,_q:()=>Z,aK:()=>y,aO:()=>eg,ag:()=>ei,b6:()=>S,c$:()=>eh,d8:()=>B,fS:()=>ee,ho:()=>K,iw:()=>c,jG:()=>C,j_:()=>T,kX:()=>U,mZ:()=>et,n0:()=>a,nc:()=>$,pp:()=>N,rd:()=>eE,rg:()=>g,sg:()=>el,tk:()=>ek,u1:()=>ep,v:()=>Y,v4:()=>o,vC:()=>H,wu:()=>ec,xP:()=>eA,xg:()=>W,y2:()=>_,yR:()=>ef,yb:()=>P,zD:()=>f,zG:()=>en,zQ:()=>er});let r="MIDSCENE_MODEL_INIT_CONFIG_JSON",n="MIDSCENE_MODEL_NAME",o="MIDSCENE_DEBUG_MODEL_PROFILE",i="MIDSCENE_DEBUG_MODEL_RESPONSE",a="MIDSCENE_DEBUG_MODE",s="MIDSCENE_LANGSMITH_DEBUG",l="MIDSCENE_LANGFUSE_DEBUG",c="MIDSCENE_MODEL_SOCKS_PROXY",d="MIDSCENE_MODEL_HTTP_PROXY",u="MIDSCENE_MODEL_API_KEY",p="MIDSCENE_MODEL_BASE_URL",g="MIDSCENE_MODEL_MAX_TOKENS",f="MIDSCENE_MODEL_TIMEOUT",m="MIDSCENE_MODEL_TEMPERATURE",h="MIDSCENE_MODEL_RETRY_COUNT",y="MIDSCENE_MODEL_RETRY_INTERVAL",E="MIDSCENE_MODEL_REASONING_EFFORT",v="MIDSCENE_MODEL_REASONING_ENABLED",b="MIDSCENE_MODEL_REASONING_BUDGET",k="OPENAI_API_KEY",C="OPENAI_BASE_URL",S="MIDSCENE_OPENAI_INIT_CONFIG_JSON",I="MIDSCENE_OPENAI_HTTP_PROXY",x="MIDSCENE_OPENAI_SOCKS_PROXY",R="OPENAI_MAX_TOKENS",j="MIDSCENE_CACHE",w="MIDSCENE_USE_VLM_UI_TARS",P="MIDSCENE_USE_QWEN_VL",O="MIDSCENE_USE_QWEN3_VL",N="MIDSCENE_USE_DOUBAO_VISION",T="MIDSCENE_USE_GEMINI",M="MATCH_BY_POSITION",K="MIDSCENE_REPORT_TAG_NAME",B="MIDSCENE_REPORT_QUIET",D="MIDSCENE_PREFERRED_LANGUAGE",z="MIDSCENE_CACHE_MAX_FILENAME_LENGTH",Q="MIDSCENE_REPLANNING_CYCLE_LIMIT",L="MIDSCENE_RUN_DIR",Z="MIDSCENE_INSIGHT_MODEL_NAME",X="MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY",J="MIDSCENE_INSIGHT_MODEL_HTTP_PROXY",U="MIDSCENE_INSIGHT_MODEL_BASE_URL",F="MIDSCENE_INSIGHT_MODEL_API_KEY",q="MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON",V="MIDSCENE_INSIGHT_MODEL_TIMEOUT",G="MIDSCENE_INSIGHT_MODEL_TEMPERATURE",H="MIDSCENE_INSIGHT_MODEL_RETRY_COUNT",W="MIDSCENE_INSIGHT_MODEL_RETRY_INTERVAL",Y="MIDSCENE_INSIGHT_MODEL_FAMILY",_="MIDSCENE_INSIGHT_MODEL_REASONING_EFFORT",$="MIDSCENE_INSIGHT_MODEL_REASONING_ENABLED",ee="MIDSCENE_INSIGHT_MODEL_REASONING_BUDGET",eA="MIDSCENE_PLANNING_MODEL_NAME",et="MIDSCENE_PLANNING_MODEL_SOCKS_PROXY",er="MIDSCENE_PLANNING_MODEL_HTTP_PROXY",en="MIDSCENE_PLANNING_MODEL_BASE_URL",eo="MIDSCENE_PLANNING_MODEL_API_KEY",ei="MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON",ea="MIDSCENE_PLANNING_MODEL_TIMEOUT",es="MIDSCENE_PLANNING_MODEL_TEMPERATURE",el="MIDSCENE_PLANNING_MODEL_RETRY_COUNT",ec="MIDSCENE_PLANNING_MODEL_RETRY_INTERVAL",ed="MIDSCENE_PLANNING_MODEL_FAMILY",eu="MIDSCENE_PLANNING_MODEL_REASONING_EFFORT",ep="MIDSCENE_PLANNING_MODEL_REASONING_ENABLED",eg="MIDSCENE_PLANNING_MODEL_REASONING_BUDGET",ef="MIDSCENE_MODEL_FAMILY",em=[a,o,i,L],eh=[j,"MIDSCENE_MCP_USE_PUPPETEER_MODE","MIDSCENE_MCP_ANDROID_MODE",s,l,B],ey=[g,z,Q],eE=[g,R,"MIDSCENE_ADB_PATH","MIDSCENE_ADB_REMOTE_HOST","MIDSCENE_ADB_REMOTE_PORT","MIDSCENE_ANDROID_IME_STRATEGY","MIDSCENE_IOS_DEVICE_UDID","MIDSCENE_IOS_SIMULATOR_UDID",K,D,M,"MIDSCENE_MCP_CHROME_PATH","DOCKER_CONTAINER"],ev=[...eh,...ey,...eE],eb=[n,r,u,p,c,d,f,m,h,y,E,v,b,w,P,O,N,T,"MIDSCENE_USE_VL_MODEL",k,C,S,I,x,Z,X,J,U,F,q,V,G,H,W,Y,_,$,ee,eA,et,er,en,eo,ei,ea,es,el,ec,ed,eu,ep,eg,ef],ek=["MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",...em,...ev,...eb],eC=["doubao-vision","doubao-seed","gemini","qwen2.5-vl","qwen3-vl","qwen3.5","vlm-ui-tars","vlm-ui-tars-doubao","vlm-ui-tars-doubao-1.5","glm-v","auto-glm","auto-glm-multilingual","gpt-5"];var eS,eI=((eS={}).V1_0="1.0",eS.V1_5="1.5",eS.DOUBAO_1_5_15B="doubao-1.5-15B",eS.DOUBAO_1_5_20B="doubao-1.5-20B",eS)},4565(e,A,t){"use strict";t.d(A,{Nw:()=>m,aZ:()=>function e(A,t){let r=`${p}:${A}`,o=(null==t?void 0:t.console)??!1,a=o?`${r}:withConsole`:r;if(!f.has(a))if(o){let t=e(A);f.set(a,function(){for(var e=arguments.length,A=Array(e),r=0;r<e;r++)A[r]=arguments[r];t(...A),console.warn("[Midscene]",...A)})}else{let e=c()(r);f.set(a,function(){for(var t=arguments.length,r=Array(t),o=0;o<t;o++)r[o]=arguments[o];u.$9&&function(e,A){if(!u.$9)return;let t=function(e){let A=e.replace(/:/g,"-");if(!g.has(A)){let e=i().join((0,d.ZH)("log"),`${A}.log`),t=n().createWriteStream(e,{flags:"a"});g.set(A,t)}return g.get(A)}(e),r=new Date,o=r.toLocaleDateString("sv-SE"),a=r.toLocaleTimeString("sv-SE"),s=r.getMilliseconds().toString().padStart(3,"0"),l=r.getTimezoneOffset(),c=Math.floor(Math.abs(l)/60).toString().padStart(2,"0"),p=(Math.abs(l)%60).toString().padStart(2,"0"),f=`${l<=0?"+":"-"}${c}:${p}`,m=`${o}T${a}.${s}${f}`;t.write(`[${m}] ${A}
12
+ `)}(A,s().format(...r)),e(...r)})}return f.get(a)}});var r=t(3244),n=t.n(r),o=t(3078),i=t.n(o),a=t(1344),s=t.n(a),l=t(7617),c=t.n(l),d=t(3198),u=t(9152);let p="midscene",g=new Map,f=new Map;function m(e){u.$9||c().enable(`${p}:${e}`)}},9152(e,A,t){"use strict";t.d(A,{$9:()=>l,NB:()=>E,Qd:()=>k,gQ:()=>g,gV:()=>b,ht:()=>a,rS:()=>s,tD:()=>u,uR:()=>c,vA:()=>p,x3:()=>v});var r,n=t(7086),o=t(3961),i=t(5409);let a="undefined"!=typeof window,s="undefined"!=typeof WorkerGlobalScope,l=void 0!==i&&(null==(r=i.versions)?void 0:r.node);function c(){return(0,o.A)()}let d={};function u(e){let A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=JSON.stringify({content:A,rect:e}),r=5,o="",i=n.sha256.create().update(t).hex().split("").map(e=>String.fromCharCode(97+Number.parseInt(e,16)%26)).join("");for(;r<i.length-1;){if(d[o=i.slice(0,r)]&&d[o]!==t){r++;continue}d[o]=t;break}return o}function p(e,A){if(!e)throw Error(A||"Assertion failed")}function g(){for(var e=arguments.length,A=Array(e),t=0;t<e;t++)A[t]=arguments[t];console.log(...A)}let f=/</g,m=/>/g,h="__midscene_lt__",y="__midscene_gt__",E=e=>e.replace(f,h).replace(m,y),v=e=>{let A=RegExp(h,"g"),t=RegExp(y,"g");return e.replace(A,"<").replace(t,">")};function b(e){return e.replace(/[:*?"<>|# ]/g,"-")}function k(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}},4678(e){"use strict";if("undefined"==typeof sharp){var A=Error("Cannot find module 'sharp'");throw A.code="MODULE_NOT_FOUND",A}e.exports=sharp},6122(){},7407(){},9140(){},3009(){},2801(){},6970(){},3612(){},3244(){},5592(){}},s={};function l(e){var A=s[e];if(void 0!==A)return A.exports;var t=s[e]={exports:{}};return a[e].call(t.exports,t,t.exports,l),t.exports}l.m=a,l.n=e=>{var A=e&&e.__esModule?()=>e.default:()=>e;return l.d(A,{a:A}),A},A=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(t,r){if(1&r&&(t=this(t)),8&r||"object"==typeof t&&t&&(4&r&&t.__esModule||16&r&&"function"==typeof t.then))return t;var n=Object.create(null);l.r(n);var o={};e=e||[null,A({}),A([]),A(A)];for(var i=2&r&&t;("object"==typeof i||"function"==typeof i)&&!~e.indexOf(i);i=A(i))Object.getOwnPropertyNames(i).forEach(e=>{o[e]=()=>t[e]});return o.default=()=>t,l.d(n,o),n},l.d=(e,A)=>{for(var t in A)l.o(A,t)&&!l.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:A[t]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce((A,t)=>(l.f[t](e,A),A),[])),l.u=e=>"static/js/async/"+e+"."+({195:"0366f6e8",271:"72510be8",467:"710fa05a",985:"b167d918"})[e]+".js",l.miniCssF=e=>""+e+".css",l.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),l.o=(e,A)=>Object.prototype.hasOwnProperty.call(e,A),t={},l.l=function(e,A,r,n){if(t[e])return void t[e].push(A);if(void 0!==r)for(var o,i,a=document.getElementsByTagName("script"),s=0;s<a.length;s++){var c=a[s];if(c.getAttribute("src")==e||c.getAttribute("data-rspack")=="playground:"+r){o=c;break}}o||(i=!0,(o=document.createElement("script")).timeout=120,l.nc&&o.setAttribute("nonce",l.nc),o.setAttribute("data-rspack","playground:"+r),o.src=e),t[e]=[A];var d=function(A,r){o.onerror=o.onload=null,clearTimeout(u);var n=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),n&&n.forEach(function(e){return e(r)}),A)return A(r)},u=setTimeout(d.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=d.bind(null,o.onerror),o.onload=d.bind(null,o.onload),i&&document.head.appendChild(o)},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r=[],l.O=(e,A,t,n)=>{if(A){n=n||0;for(var o=r.length;o>0&&r[o-1][2]>n;o--)r[o]=r[o-1];r[o]=[A,t,n];return}for(var i=1/0,o=0;o<r.length;o++){for(var[A,t,n]=r[o],a=!0,s=0;s<A.length;s++)(!1&n||i>=n)&&Object.keys(l.O).every(e=>l.O[e](A[s]))?A.splice(s--,1):(a=!1,n<i&&(i=n));if(a){r.splice(o--,1);var c=t();void 0!==c&&(e=c)}}return e},l.p="/",l.b=document.baseURI||self.location.href,n={410:0},l.f.j=function(e,A){var t=l.o(n,e)?n[e]:void 0;if(0!==t)if(t)A.push(t[2]);else{var r=new Promise((A,r)=>t=n[e]=[A,r]);A.push(t[2]=r);var o=l.p+l.u(e),i=Error();l.l(o,function(A){if(l.o(n,e)&&(0!==(t=n[e])&&(n[e]=void 0),t)){var r=A&&("load"===A.type?"missing":A.type),o=A&&A.target&&A.target.src;i.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",i.name="ChunkLoadError",i.type=r,i.request=o,t[1](i)}},"chunk-"+e,e)}},l.O.j=e=>0===n[e],o=(e,A)=>{var t,r,[o,i,a]=A,s=0;if(o.some(e=>0!==n[e])){for(t in i)l.o(i,t)&&(l.m[t]=i[t]);if(a)var c=a(l)}for(e&&e(A);s<o.length;s++)r=o[s],l.o(n,r)&&n[r]&&n[r][0](),n[r]=0;return l.O(c)},(i=self.webpackChunkplayground=self.webpackChunkplayground||[]).forEach(o.bind(null,0)),i.push=o.bind(null,i.push.bind(i));var c=l.O(void 0,["783","148"],()=>l(7762));c=l.O(c)})();
13
+ //# sourceMappingURL=index.5f858f26.js.map