@midscene/playground 1.0.3 → 1.0.4-beta-20251223105123.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/static/index.html +1 -1
- package/static/static/js/index.fb126448.js +10 -0
- package/static/static/js/{index.53e8ac1f.js.map → index.fb126448.js.map} +1 -1
- package/static/static/js/index.53e8ac1f.js +0 -10
- /package/static/static/js/{index.53e8ac1f.js.LICENSE.txt → index.fb126448.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/*! For license information please see index.fb126448.js.LICENSE.txt */
|
|
2
|
+
(()=>{var A,e,t,r,o,n,i,a={5737(A){function e(A){return Promise.resolve().then(function(){var e=Error("Cannot find module '"+A+"'");throw e.code="MODULE_NOT_FOUND",e})}e.keys=()=>[],e.resolve=e,e.id=5737,A.exports=e},9998(A){function e(A){return Promise.resolve().then(function(){var e=Error("Cannot find module '"+A+"'");throw e.code="MODULE_NOT_FOUND",e})}e.keys=()=>[],e.resolve=e,e.id=9998,A.exports=e},3348(A){function e(A){return Promise.resolve().then(function(){var e=Error("Cannot find module '"+A+"'");throw e.code="MODULE_NOT_FOUND",e})}e.keys=()=>[],e.resolve=e,e.id=3348,A.exports=e},1560(A){function e(A){return Promise.resolve().then(function(){var e=Error("Cannot find module '"+A+"'");throw e.code="MODULE_NOT_FOUND",e})}e.keys=()=>[],e.resolve=e,e.id=1560,A.exports=e},7517(A,e,t){"use strict";var r,o,n=t(5723),i=t(2155),a=t(8997),l=t(3244),s=t.n(l),c=t(3078),d=t.n(c),u=t(1344),p=t.n(u),g=t(7617),f=t.n(g),m=t(5207);let y="MIDSCENE_MODEL_INIT_CONFIG_JSON",h="MIDSCENE_MODEL_NAME",E="MIDSCENE_DEBUG_MODEL_PROFILE",v="MIDSCENE_DEBUG_MODEL_RESPONSE",C="MIDSCENE_MODEL_SOCKS_PROXY",b="MIDSCENE_MODEL_HTTP_PROXY",k="MIDSCENE_MODEL_API_KEY",S="MIDSCENE_MODEL_BASE_URL",I="MIDSCENE_MODEL_TIMEOUT",R="OPENAI_API_KEY",x="OPENAI_BASE_URL",P="MIDSCENE_OPENAI_INIT_CONFIG_JSON",j="MIDSCENE_OPENAI_HTTP_PROXY",w="MIDSCENE_OPENAI_SOCKS_PROXY",O="MIDSCENE_USE_VLM_UI_TARS",N="MIDSCENE_USE_QWEN_VL",K="MIDSCENE_USE_QWEN3_VL",B="MIDSCENE_USE_DOUBAO_VISION",T="MIDSCENE_USE_GEMINI",M="MATCH_BY_POSITION",z="MIDSCENE_RUN_DIR",D="MIDSCENE_INSIGHT_MODEL_NAME",Q="MIDSCENE_INSIGHT_MODEL_SOCKS_PROXY",Z="MIDSCENE_INSIGHT_MODEL_HTTP_PROXY",L="MIDSCENE_INSIGHT_MODEL_BASE_URL",X="MIDSCENE_INSIGHT_MODEL_API_KEY",J="MIDSCENE_INSIGHT_MODEL_INIT_CONFIG_JSON",U="MIDSCENE_INSIGHT_MODEL_TIMEOUT",F="MIDSCENE_PLANNING_MODEL_NAME",V="MIDSCENE_PLANNING_MODEL_SOCKS_PROXY",q="MIDSCENE_PLANNING_MODEL_HTTP_PROXY",G="MIDSCENE_PLANNING_MODEL_BASE_URL",H="MIDSCENE_PLANNING_MODEL_API_KEY",W="MIDSCENE_PLANNING_MODEL_INIT_CONFIG_JSON",Y="MIDSCENE_PLANNING_MODEL_TIMEOUT",_="MIDSCENE_MODEL_FAMILY",$=["MIDSCENE_DEBUG_MODE",E,v,z],AA=["MIDSCENE_CACHE","MIDSCENE_FORCE_DEEP_THINK","MIDSCENE_MCP_USE_PUPPETEER_MODE","MIDSCENE_MCP_ANDROID_MODE","MIDSCENE_LANGSMITH_DEBUG","MIDSCENE_LANGFUSE_DEBUG"],Ae=["MIDSCENE_CACHE_MAX_FILENAME_LENGTH","MIDSCENE_REPLANNING_CYCLE_LIMIT"],At=["MIDSCENE_MODEL_MAX_TOKENS","OPENAI_MAX_TOKENS","MIDSCENE_ADB_PATH","MIDSCENE_ADB_REMOTE_HOST","MIDSCENE_ADB_REMOTE_PORT","MIDSCENE_ANDROID_IME_STRATEGY","MIDSCENE_IOS_DEVICE_UDID","MIDSCENE_IOS_SIMULATOR_UDID","MIDSCENE_REPORT_TAG_NAME","MIDSCENE_PREFERRED_LANGUAGE",M,"MIDSCENE_MCP_CHROME_PATH","DOCKER_CONTAINER"],Ar=[...AA,...Ae,...At],Ao=[h,y,k,S,C,b,I,O,N,K,B,T,"MIDSCENE_USE_VL_MODEL",R,x,P,j,w,D,Q,Z,L,X,J,U,F,V,q,G,H,W,Y,_],An=["MIDSCENE_DANGEROUSLY_PRINT_ALL_CONFIG",...$,...Ar,...Ao],Ai=["doubao-vision","gemini","qwen2.5-vl","qwen3-vl","vlm-ui-tars","vlm-ui-tars-doubao","vlm-ui-tars-doubao-1.5"];var Aa=((r={}).V1_0="1.0",r.V1_5="1.5",r.DOUBAO_1_5_15B="doubao-1.5-15B",r.DOUBAO_1_5_20B="doubao-1.5-20B",r),Al=t(5409);let As=A=>{if(!$.includes(A))throw Error(`getBasicEnvValue with key ${A} is not supported.`);return Al.env[A]};t(7086);var Ac=t(3961),Ad=t(5409);let Au=void 0!==Ad&&(null==(o=Ad.versions)?void 0:o.node);var Ap=t(5409);let Ag="midscene_run",Af="midscene",Am=new Map,Ay=new Map;function Ah(A){let e=`${Af}:${A}`;if(!Ay.has(e)){let t=f()(e);Ay.set(e,function(){for(var e=arguments.length,r=Array(e),o=0;o<e;o++)r[o]=arguments[o];Au&&function(A,e){if(!Au)return;let t=function(A){let e=A.replace(/:/g,"-");if(!Am.has(e)){let A=d().join((A=>{if(!Au)return"";let e=(()=>{if(!Au)return"";let A=d().resolve(Ap.cwd(),Au?As(z)||Ag:"");if(!(0,l.existsSync)(A))try{(0,l.mkdirSync)(A,{recursive:!0})}catch(e){A=d().join((0,m.tmpdir)(),Ag),(0,l.mkdirSync)(A,{recursive:!0})}return A})(),t=d().join(e,A);return(0,l.existsSync)(t)||(0,l.mkdirSync)(t,{recursive:!0}),t})("log"),`${e}.log`),t=s().createWriteStream(A,{flags:"a"});Am.set(e,t)}return Am.get(e)}(A),r=new Date,o=r.toLocaleDateString("sv-SE"),n=r.toLocaleTimeString("sv-SE"),i=r.getMilliseconds().toString().padStart(3,"0"),a=r.getTimezoneOffset(),c=Math.floor(Math.abs(a)/60).toString().padStart(2,"0"),u=(Math.abs(a)%60).toString().padStart(2,"0"),p=`${a<=0?"+":"-"}${c}:${u}`,g=`${o}T${n}.${i}${p}`;t.write(`[${g}] ${e}
|
|
3
|
+
`)}(A,p().format(...r)),t(...r)})}return Ay.get(e)}let AE=()=>{var A;let e=As(E),t="";e&&(console.warn("MIDSCENE_DEBUG_MODEL_PROFILE is deprecated, use DEBUG=midscene:ai:profile instead"),t="ai:profile"),As(v)&&(console.warn("MIDSCENE_DEBUG_MODEL_RESPONSE is deprecated, use DEBUG=midscene:ai:response instead"),t=t?"ai:*":"ai:call"),t&&(A=t,Au||f().enable(`${Af}:${A}`))};var Av=t(5409);function AC(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}let Ab=function(A){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"*";if("string"!=typeof A||0===A.length)return A;if(A.length<=6)return A;let t=A.substring(0,3),r=A.substring(A.length-3),o=A.length-6,n=e.repeat(o);return`${t}${n}${r}`},Ak=A=>Object.fromEntries(Object.entries(A).map(A=>{let[e,t]=A;if(!t)return[e,t];if("string"==typeof t&&/key/i.test(e))return[e,Ab(t)];if("object"==typeof t){let A=JSON.stringify(t);if(/key/i.test(A))return[e,Ab(A)]}return[e,t]})),AS={insight:{modelName:D,socksProxy:Q,httpProxy:Z,openaiBaseURL:L,openaiApiKey:X,openaiExtraConfig:J,modelFamily:"THERE_IS_NO_MODEL_FAMILY_FOR_INSIGHT",timeout:U},planning:{modelName:F,socksProxy:V,httpProxy:q,openaiBaseURL:G,openaiApiKey:H,openaiExtraConfig:W,modelFamily:"THERE_IS_NO_MODEL_FAMILY_FOR_PLANNING",timeout:Y},default:{modelName:h,socksProxy:C,httpProxy:b,openaiBaseURL:S,openaiApiKey:k,openaiExtraConfig:y,modelFamily:_,timeout:I}},AI=(A,e)=>{let t=Ah("ai:config");t("will decideModelConfig base on agent.modelConfig()",A,Ak(e));let r=AS[A];if(!e[r.modelName])return void t("no modelName found for intent",A);let o=(A=>{let{keys:e,provider:t,useLegacyLogic:r=!1}=A;AE(),Ah("ai:config")("enter parseOpenaiSdkConfig with keys:",e);let o=r?t[R]:void 0,n=r?t[x]:void 0,i=r?t[w]:void 0,a=r?t[j]:void 0,l=r?t[P]:void 0,s=r?(A=>{let e=A[B],t=A[N],r=A[K],o=A[O],n=A[T],i=[e&&B,t&&N,r&&K,o&&O,n&&T].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(e)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"})(t):void 0,c=t[e.modelFamily]||s,d=t[e.openaiApiKey]||o,u=t[e.openaiBaseURL]||n,p=t[e.socksProxy]||i,g=t[e.httpProxy]||a,f=t[e.modelName],m=t[e.openaiExtraConfig],y=((A,e)=>{if(e)try{return JSON.parse(e)}catch(e){throw Error(`Failed to parse ${A} as a JSON. ${e.message}`,{cause:e})}})(e.openaiExtraConfig,m||l),{vlMode:h,uiTarsVersion:E}=(A=>{if(!A)return{vlMode:void 0,uiTarsVersion:void 0};if("vlm-ui-tars"===A)return{vlMode:"vlm-ui-tars",uiTarsVersion:Aa.V1_0};if("vlm-ui-tars-doubao"===A||"vlm-ui-tars-doubao-1.5"===A)return{vlMode:"vlm-ui-tars",uiTarsVersion:Aa.DOUBAO_1_5_20B};if(!Ai.includes(A))throw Error(`Invalid MIDSCENE_MODEL_FAMILY value: ${A}`);return{vlMode:A,uiTarsVersion:void 0}})(c),v=((A,e)=>{if(A)if(e)return`UI-TARS=${e}`;else return`${A} mode`;return""})(h,E);return{socksProxy:p,httpProxy:g,vlModeRaw:h,openaiBaseURL:u,openaiApiKey:d,openaiExtraConfig:y,vlMode:h,uiTarsModelVersion:E,modelName:f,modelDescription:v,intent:"-",timeout:t[e.timeout]?Number(t[e.timeout]):void 0}})({keys:r,provider:e,useLegacyLogic:"default"===A});o.intent=A,t("decideModelConfig result by agent.modelConfig() with intent",A,Ak({...o}));var n=o.openaiBaseURL,i=`failed to get base URL of model (intent=${A}). See https://midscenejs.com/model-strategy`;if(!n)throw Error(i||"Assertion failed");return o.modelName||console.warn(`modelName is not set for intent ${A}, this may cause unexpected behavior. See https://midscenejs.com/model-strategy`),o};function AR(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}let Ax=new class{initialize(){var A;let e;if(this.isInitialized)return;this.modelConfig?(this.isolatedMode=!0,e=this.normalizeModelConfig(this.modelConfig)):e=(null==(A=this.globalConfigManager)?void 0:A.getAllEnvConfig())||{};let t=AI("default",e);if(!t)throw Error("default model config is not found, which should not happen");let r=AI("insight",e),o=AI("planning",e);this.modelConfigMap={default:{...t,createOpenAIClient:this.createOpenAIClientFn},insight:{...r||t,createOpenAIClient:this.createOpenAIClientFn},planning:{...o||t,createOpenAIClient:this.createOpenAIClientFn}},this.isInitialized=!0}normalizeModelConfig(A){return Object.entries(A).reduce((A,e)=>{let[t,r]=e;return null==r||(A[t]=String(r)),A},Object.create(null))}clearModelConfigMap(){if(this.isolatedMode)throw Error("ModelConfigManager work in isolated mode, so clearModelConfigMap should not be called");this.isInitialized=!1}getModelConfig(A){if(this.isInitialized||this.initialize(),!this.modelConfigMap)throw Error("modelConfigMap is not initialized, which should not happen");return this.modelConfigMap[A]}getUploadTestServerUrl(){let{openaiExtraConfig:A}=this.getModelConfig("default");return null==A?void 0:A.REPORT_SERVER_URL}registerGlobalConfigManager(A){this.globalConfigManager=A}throwErrorIfNonVLModel(){if(!this.getModelConfig("default").vlMode)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(A,e){AR(this,"modelConfigMap",void 0),AR(this,"isInitialized",!1),AR(this,"isolatedMode",!1),AR(this,"globalConfigManager",void 0),AR(this,"modelConfig",void 0),AR(this,"createOpenAIClientFn",void 0),this.modelConfig=A,this.createOpenAIClientFn=e}},AP=new class{getAllEnvConfig(){let A=An.reduce((A,e)=>(A[e]=Av.env[e],A),Object.create(null));if(!this.override)return A;{let{newConfig:e,extendMode:t}=this.override;return t?{...A,...e}:{...e}}}getEnvConfigValue(A){let e=this.getAllEnvConfig();if(A===M)throw Error("MATCH_BY_POSITION is discarded, use MIDSCENE_MODEL_FAMILY instead");if(!At.includes(A))throw Error(`getEnvConfigValue with key ${A} is not supported.`);let t=e[A];return(this.keysHaveBeenRead[A]=!0,"string"==typeof t)?t.trim():t}getEnvConfigInNumber(A){let e=this.getAllEnvConfig();if(!Ae.includes(A))throw Error(`getEnvConfigInNumber with key ${A} is not supported`);let t=e[A];return this.keysHaveBeenRead[A]=!0,Number(t||"")}getEnvConfigInBoolean(A){let e=this.getAllEnvConfig();if(!AA.includes(A))throw Error(`getEnvConfigInBoolean with key ${A} is not supported`);let t=e[A];return this.keysHaveBeenRead[A]=!0,!!t&&(!!/^(true|1)$/i.test(t)||!/^(false|0)$/i.test(t)&&!!t.trim())}registerModelConfigManager(A){this.globalModelConfigManager=A}overrideAIConfig(A){var e;let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(let e in A){if(![...Ar,...Ao].includes(e))throw Error(`Failed to override AI config, invalid key: ${e}`);let t=A[e];if("string"!=typeof t)throw Error(`Failed to override AI config, value for key ${e} must be a string, but got with type ${typeof t}`);this.keysHaveBeenRead[e]&&console.warn(`Warning: try to override AI config with key ${e} ,but it has been read.`)}let r=t?{...null==(e=this.override)?void 0:e.newConfig,...A}:A;if(this.override={newConfig:{...r},extendMode:t},!this.globalModelConfigManager)throw Error("globalModelConfigManager is not registered, which should not happen");this.globalModelConfigManager.clearModelConfigMap()}constructor(){AC(this,"override",void 0),AC(this,"keysHaveBeenRead",{}),AC(this,"globalModelConfigManager",void 0),AE()}};AP.registerModelConfigManager(Ax),Ax.registerGlobalConfigManager(AP);let Aj=function(A){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];AP.overrideAIConfig(A,e)};t(6990),t(5678),t(6732),t(8963),t(5592),t(8408),Ah("img");var Aw=t(6244);Ah("ai:common");let AO=Aw.z.object({left:Aw.z.number(),top:Aw.z.number()}),AN=Aw.z.object({width:Aw.z.number(),height:Aw.z.number(),dpr:Aw.z.number().optional()}),AK=AO.and(AN).and(Aw.z.object({zoom:Aw.z.number().optional()})),AB=Aw.z.object({images:Aw.z.array(Aw.z.object({name:Aw.z.string(),url:Aw.z.string()})).optional(),convertHttpImage2Base64:Aw.z.boolean().optional()}),AT=Aw.z.union([Aw.z.string(),Aw.z.object({prompt:Aw.z.string()}).and(AB.partial())]),AM="midscene_location_field_flag",Az=Aw.z.object({prompt:AT,deepThink:Aw.z.boolean().optional(),cacheable:Aw.z.boolean().optional(),xpath:Aw.z.union([Aw.z.string(),Aw.z.boolean()]).optional()}).passthrough();Aw.z.object({[AM]:Aw.z.literal(!0),prompt:AT,deepThink:Aw.z.boolean().optional(),cacheable:Aw.z.boolean().optional(),xpath:Aw.z.boolean().optional(),center:Aw.z.tuple([Aw.z.number(),Aw.z.number()]),rect:AK}).passthrough();let AD=(A,e)=>{var t;return A&&(null==(t=A._def)?void 0:t.typeName)==="ZodObject"&&A.shape?Object.keys(A.shape).filter(t=>{var r;let o=A.shape[t];return!!(A=>{var e,t;let r=A;if((null==(e=r._def)?void 0:e.typeName)==="ZodOptional"&&(r=r._def.innerType),(null==(t=r._def)?void 0:t.typeName)==="ZodObject"){let A=r._def.shape();if(AM in A||"prompt"in A&&A.prompt)return!0}return!1})(o)&&(!e||(null==(r=o._def)?void 0:r.typeName)!=="ZodOptional")}):[]};Ah("ai:inspect"),Ah("ai:section"),Ah("planning");var AQ=t(5409);let AZ={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(AZ).reduce((A,e)=>{let[t,r]=e,o=t.toLowerCase();return o!==t&&(A[o]=r),A},{});let AL="undefined"!=typeof window?/Mac|iPod|iPhone|iPad/.test(window.navigator.platform):"darwin"===AQ.platform;AZ.Enter.key,AZ.Enter.key,AL?AZ.Meta.key:AZ.Control.key,AZ.Shift.key,AZ.Alt.key,AZ.Space.key,AZ.PageDown.key,AZ.PageDown.key,AZ.PageUp.key,AZ.PageUp.key,t(2788),Ah("ui-tars-planning"),t(3612),t(9383),t(5409);let AX=Ah("yaml:utils");function AJ(A,e){let t;AX("will call buildDetailedLocateParam",A,e);let r=A||(null==e?void 0:e.prompt)||(null==e?void 0:e.locate),o=!1,n=!0;return("object"==typeof e&&null!==e&&(o=e.deepThink??!1,n=e.cacheable??!0,t=e.xpath,A&&e.prompt&&A!==e.prompt&&console.warn("conflict prompt for item",A,e,"maybe you put the prompt in the wrong place"),r=r||e.prompt),r)?{prompt:r,deepThink:o,cacheable:n,xpath:t}:void AX("no prompt, will return undefined in buildDetailedLocateParam",e)}t(5409),Ah("yaml-player");let AU=["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert","aiWaitFor"];async function AF(A,e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!(null==A?void 0:A.paramSchema)||!("shape"in A.paramSchema))return[e.prompt||"",t];let r=A.paramSchema,o=r&&"shape"in r?Object.keys(r.shape):[],{deviceOptions:n,...i}=t,a={...i,...t.deviceOptions||{}};return o.forEach(A=>{void 0!==e[A]&&null!==e[A]&&""!==e[A]&&(a[A]=e[A])}),r&&AD(r).forEach(A=>{let r=e[A];if(r&&"string"==typeof r){let e=AJ(r,{deepThink:t.deepThink,cacheable:!0});e&&(a[A]=e)}}),[a]}async function AV(A,e,t,r,o){let n=null==t?void 0:t.find(A=>A.interfaceAlias===e||A.name===e);if(n&&"function"==typeof A.callActionInActionSpace)if(r.params){let e=await AF(n,r.params,o);return await A.callActionInActionSpace(n.name,e[0])}else{let e=r.prompt?AJ(r.prompt,{deepThink:o.deepThink,cacheable:!0}):void 0,{deviceOptions:t,...i}=o,a={locate:e,...i,...o.deviceOptions||{}};return await A.callActionInActionSpace(n.name,a)}{let t=r.prompt;if("aiAssert"===e){var i;let{pass:e,thought:r}=await (null==A||null==(i=A.aiAssert)?void 0:i.call(A,t||"",void 0,{keepRawResponse:!0,...o}))||{};return{pass:e||!1,thought:r||""}}if(A&&"function"==typeof A[e])return await A[e](t,o);throw Error(`Unknown action type: ${e}`)}}class Aq{async getActionSpace(A){return[]}validateParams(A,e){if(!(null==e?void 0:e.paramSchema)||!this.actionNeedsStructuredParams(e))return{valid:!0};if(!A.params)return{valid:!1,errorMessage:"Parameters are required"};try{let t=this.prepareParamsForValidation(A.params,e);return e.paramSchema.parse(t),{valid:!0}}catch(A){return this.handleValidationError(A)}}createDisplayContent(A,e,t){return e&&A.params&&(null==t?void 0:t.paramSchema)?this.buildParamsDisplayList(A.params,t).join("\n")||A.prompt||"":A.prompt||""}formatBasicErrorMessage(A){return(null==A?void 0:A.message)||"Unknown error"}getSchemaKeys(A){if(!(null==A?void 0:A.paramSchema)||!("shape"in A.paramSchema))return[];let e=A.paramSchema;return e&&"shape"in e?Object.keys(e.shape):[]}filterValidParams(A){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t={};return Object.keys(A).forEach(r=>{e.includes(r)||void 0===A[r]||null===A[r]||""===A[r]||(t[r]=A[r])}),t}actionNeedsStructuredParams(A){return"object"!=typeof A.paramSchema||!("shape"in A.paramSchema)||Object.keys(A.paramSchema.shape||{}).length>0}prepareParamsForValidation(A,e){let t={...A};return e.paramSchema&&AD(e.paramSchema).forEach(A=>{"string"==typeof t[A]&&(t[A]={midscene_location_field_flag:!0,prompt:t[A],center:[0,0],rect:{left:0,top:0,width:0,height:0}})}),t}handleValidationError(A){if(A.errors&&A.errors.length>0){let e=A.errors.filter(A=>{let e=A.path.join(".");return!e.includes("center")&&!e.includes("rect")&&!e.includes("midscene_location_field_flag")}).map(A=>{let e=A.path.join(".");return`${e}: ${A.message}`});if(e.length>0)return{valid:!1,errorMessage:`Validation error: ${e.join(", ")}`}}let e=A instanceof Error?A.message:"Unknown validation error";return{valid:!1,errorMessage:`Parameter validation failed: ${e}`}}buildParamsDisplayList(A,e){let t=[],r=e.paramSchema;if(!(r&&"shape"in r))return t;let o=AD(r);return Object.keys(r.shape).forEach(e=>{let r=A[e];if(this.isValidParamValue(r)){let A=this.capitalizeFirstLetter(e),n=this.formatParamValue(e,r,o.includes(e));t.push(`${A}: ${n}`)}}),t}isValidParamValue(A){return null!=A&&""!==A}capitalizeFirstLetter(A){return A.charAt(0).toUpperCase()+A.slice(1)}formatParamValue(A,e,t){return t||"string"==typeof e?`"${e}"`:"number"==typeof e&&"distance"===A?`${e}px`:`${e}`}}function AG(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}class AH extends Aq{get id(){return this._id}onDumpUpdate(A){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=A}setProgressCallback(A){this.progressCallback=void 0,this.progressCallback=A}async parseStructuredParams(A,e,t){return await AF(A,e,t)}formatErrorMessage(A){return((null==A?void 0:A.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(A)}async getActionSpace(A){var e;if(null==(e=this.agent)?void 0:e.getActionSpace)return await this.agent.getActionSpace();if(this.agent&&"interface"in this.agent&&"object"==typeof this.agent.interface){let A=this.agent.interface;if(null==A?void 0:A.actionSpace)return A.actionSpace()}return A&&"object"==typeof A&&"actionSpace"in A?A.actionSpace():[]}async checkStatus(){return!0}async overrideConfig(A){Aj(A)}async detachDebuggerSafely(){try{var A,e;let t=null==(A=this.agent)?void 0:A.interface;await (null==t||null==(e=t.detachDebugger)?void 0:e.call(t))}catch(A){console.warn("Failed to detach debugger:",A)}}async executeAction(A,e,t){var r,o,n;let i,a=await this.getActionSpace();try{null==(r=(o=this.agent).resetDump)||r.call(o)}catch(A){console.warn("Failed to reset dump before execution:",A)}t.requestId&&this.agent&&(this.currentRequestId=t.requestId,i=this.agent.addDumpUpdateListener((A,e)=>{this.currentRequestId===t.requestId&&this.dumpUpdateCallback&&this.dumpUpdateCallback(A,e)}));try{let r=null,o=null;try{r=await AV(this.agent,A,a,e,t)}catch(A){o=A}let i={result:r,dump:null,reportHTML:null,error:o?o instanceof Error?o.message:String(o):null};try{if(this.agent.dumpDataString){let A=this.agent.dumpDataString();A&&(i.dump=(null==(n=JSON.parse(A).executions)?void 0:n[0])||null)}this.agent.reportHTMLString&&(i.reportHTML=this.agent.reportHTMLString()||null),this.agent.writeOutActionDumps&&this.agent.writeOutActionDumps()}catch(A){console.error("Failed to get dump/reportHTML from agent:",A)}return i}finally{i&&i()}}async cancelTask(A){if(!this.agent)return{error:"No active agent found for this requestId"};try{var e,t;return await (null==(e=(t=this.agent).destroy)?void 0:e.call(t)),{success:!0}}catch(e){let A=e instanceof Error?e.message:"Unknown error";return console.error(`Failed to cancel agent: ${A}`),{error:`Failed to cancel: ${A}`}}}async getCurrentExecutionData(){let A={dump:null,reportHTML:null};try{if(this.agent.dumpDataString){let t=this.agent.dumpDataString();if(t){var e;A.dump=(null==(e=JSON.parse(t).executions)?void 0:e[0])||null}}this.agent.reportHTMLString&&(A.reportHTML=this.agent.reportHTMLString()||null)}catch(A){console.error("Failed to get current execution data:",A)}return A}async getInterfaceInfo(){var A,e,t;if(!(null==(A=this.agent)?void 0:A.interface))return null;try{let A=this.agent.interface.interfaceType||"Unknown",r=(null==(e=(t=this.agent.interface).describe)?void 0:e.call(t))||void 0;return{type:A,description:r}}catch(A){return console.error("Failed to get interface info:",A),null}}constructor(A){super(),AG(this,"agent",void 0),AG(this,"dumpUpdateCallback",void 0),AG(this,"progressCallback",void 0),AG(this,"_id",void 0),AG(this,"currentRequestId",void 0),this.agent=A,this._id=(0,Ac.A)()}}function AW(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}class AY extends Aq{onDumpUpdate(A){this.dumpUpdateCallback=void 0,this.dumpUpdateCallback=A}get id(){return this._id}validateParams(A,e){if(!(null==e?void 0:e.paramSchema)||!this.actionNeedsStructuredParams(e))return{valid:!0};if(!A.params)return{valid:!1,errorMessage:"Parameters are required"};if(e.paramSchema&&"object"==typeof e.paramSchema){let t=e.paramSchema;if(t.shape||"ZodObject"===t.type){let e=t.shape||{},r=Object.keys(e).filter(t=>{var r,o;let n=e[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===A.params[t]||""===A.params[t])});if(r.length>0)return{valid:!1,errorMessage:`Missing required parameters: ${r.join(", ")}`}}}return{valid:!0}}async parseStructuredParams(A,e,t){return await AF(A,e,t)}formatErrorMessage(A){let e=(null==A?void 0:A.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(A=>{let{keyword:t}=A;return e.includes(t)});return t?t.message:this.formatBasicErrorMessage(A)}async executeAction(A,e,t){if(this.serverUrl&&"undefined"!=typeof window)return this.executeViaServer(A,e,t);throw Error("Remote execution adapter requires server URL for execution")}async executeViaServer(A,e,t){let r={type:A,prompt:e.prompt,...this.buildOptionalPayloadParams(t,e)};t.context&&(r.context=t.context),t.requestId&&this.dumpUpdateCallback&&this.startProgressPolling(t.requestId);try{let A=await fetch(`${this.serverUrl}/execute`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!A.ok){let e=await A.text().catch(()=>"Unknown error");throw Error(`Server request failed (${A.status}): ${e}`)}return await A.json()}catch(A){throw console.error("Execute via server failed:",A),A}finally{this.stopProgressPolling()}}buildOptionalPayloadParams(A,e){let t={};return[{key:"requestId",value:A.requestId},{key:"deepThink",value:A.deepThink},{key:"screenshotIncluded",value:A.screenshotIncluded},{key:"domIncluded",value:A.domIncluded},{key:"deviceOptions",value:A.deviceOptions},{key:"params",value:e.params}].forEach(A=>{let{key:e,value:r}=A;null!=r&&""!==r&&(t[e]=r)}),t}async getActionSpace(A){if(this.serverUrl&&"undefined"!=typeof window)try{let e=await fetch(`${this.serverUrl}/action-space`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({context:A})});if(!e.ok)throw Error(`Failed to get action space: ${e.statusText}`);let t=await e.json();return Array.isArray(t)?t:[]}catch(A){console.error("Failed to get action space from server:",A)}if(A&&"object"==typeof A&&"actionSpace"in A)try{let e=A.actionSpace,t=await e();return Array.isArray(t)?t:[]}catch(A){console.error("Failed to get action space from context:",A)}return[]}async checkStatus(){if(!this.serverUrl)return!1;try{let A=await fetch(`${this.serverUrl}/status`);if(200===A.status){try{let e=await A.json();e.id&&"string"==typeof e.id&&(this._id=e.id)}catch(A){console.debug("Failed to parse status response:",A)}return!0}return!1}catch(A){return console.warn("Server status check failed:",A),!1}}async overrideConfig(A){if(!this.serverUrl)throw Error("Server URL not configured");try{let e=await fetch(`${this.serverUrl}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({aiConfig:A})});if(!e.ok)throw Error(`Failed to override server config: ${e.statusText}`)}catch(A){throw console.error("Failed to override server config:",A),A}}async getTaskProgress(A){if(!this.serverUrl)return{};if(!(null==A?void 0:A.trim()))return console.warn("Invalid requestId provided for task progress"),{};try{let e=await fetch(`${this.serverUrl}/task-progress/${encodeURIComponent(A)}`);if(!e.ok)return console.warn(`Task progress request failed: ${e.statusText}`),{};return await e.json()}catch(A){return console.error("Failed to poll task progress:",A),{}}}startProgressPolling(A){this.stopProgressPolling(),this.pollingIntervalId=setInterval(async()=>{try{let e=await this.getTaskProgress(A);e.executionDump&&this.dumpUpdateCallback&&this.dumpUpdateCallback("",e.executionDump)}catch(A){console.error("Error polling task progress:",A)}},500)}stopProgressPolling(){this.pollingIntervalId&&(clearInterval(this.pollingIntervalId),this.pollingIntervalId=void 0)}async cancelTask(A){if(!this.serverUrl)return{error:"No server URL configured"};if(!(null==A?void 0:A.trim()))return{error:"Invalid request ID"};try{let e=await fetch(`${this.serverUrl}/cancel/${encodeURIComponent(A)}`,{method:"POST"});if(!e.ok)return{error:`Cancel request failed: ${e.statusText}`};let t=await e.json();return{success:!0,...t}}catch(A){return console.error("Failed to cancel task:",A),{error:"Failed to cancel task"}}}async getScreenshot(){if(!this.serverUrl)return null;try{let A=await fetch(`${this.serverUrl}/screenshot`);if(!A.ok)return console.warn(`Screenshot request failed: ${A.statusText}`),null;return await A.json()}catch(A){return console.error("Failed to get screenshot:",A),null}}async getInterfaceInfo(){if(!this.serverUrl)return null;try{let A=await fetch(`${this.serverUrl}/interface-info`);if(!A.ok)return console.warn(`Interface info request failed: ${A.statusText}`),null;return await A.json()}catch(A){return console.error("Failed to get interface info:",A),null}}constructor(A){super(),AW(this,"serverUrl",void 0),AW(this,"_id",void 0),AW(this,"dumpUpdateCallback",void 0),AW(this,"pollingIntervalId",void 0),this.serverUrl=A}}class A_{createAdapter(A,e,t){switch(A){case"local-execution":if(!t)throw Error("Agent is required for local execution");return new AH(t);case"remote-execution":return new AY(e||("undefined"!=typeof window&&window.location.protocol.includes("http")?window.location.origin:"http://localhost:5800"));default:throw Error(`Unsupported execution type: ${A}`)}}async executeAction(A,e,t){return await this.adapter.executeAction(A,e,t)}async getActionSpace(A){return this.adapter.getActionSpace(A)}validateStructuredParams(A,e){return this.adapter.validateParams(A,e)}formatErrorMessage(A){return this.adapter.formatErrorMessage(A)}createDisplayContent(A,e,t){return this.adapter.createDisplayContent(A,e,t)}get id(){if(this.adapter instanceof AY||this.adapter instanceof AH)return this.adapter.id}async checkStatus(){return!(this.adapter instanceof AY)||this.adapter.checkStatus()}async overrideConfig(A){if(this.adapter instanceof AY)return this.adapter.overrideConfig(A)}async getTaskProgress(A){return this.adapter instanceof AY?this.adapter.getTaskProgress(A):{}}async cancelTask(A){return this.adapter instanceof AY?this.adapter.cancelTask(A):{error:"Cancel task not supported in local execution mode"}}onDumpUpdate(A){this.adapter instanceof AH?this.adapter.onDumpUpdate(A):this.adapter instanceof AY&&this.adapter.onDumpUpdate(A)}onProgressUpdate(A){this.adapter instanceof AH&&this.adapter.setProgressCallback(A)}async cancelExecution(A){if(this.adapter instanceof AY){let e=await this.adapter.cancelTask(A);if(e.success)return{dump:e.dump||null,reportHTML:e.reportHTML||null}}else this.adapter instanceof AH&&console.warn("Local execution cancellation not fully implemented");return null}async getCurrentExecutionData(){return this.adapter instanceof AH&&this.adapter.getCurrentExecutionData?await this.adapter.getCurrentExecutionData():{dump:null,reportHTML:null}}async getScreenshot(){return this.adapter instanceof AY?this.adapter.getScreenshot():null}async getInterfaceInfo(){return this.adapter instanceof AH||this.adapter instanceof AY?this.adapter.getInterfaceInfo():null}getServiceMode(){return this.adapter instanceof AH?"In-Browser-Extension":"Server"}constructor(A){!function(A,e,t){e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t}(this,"adapter",void 0),this.adapter=this.createAdapter(A.type,A.serverUrl,A.agent)}}let A$=["#01204E"];function A0(A){return"searchArea"===A?"#028391":"#fd5907"}function A1(){return{token:{colorPrimary:"#2B83FF"},components:{Layout:{headerHeight:60,headerPadding:"0 30px",headerBg:"#FFF",bodyBg:"#FFF"}}}}let A3=A=>{let{hideLogo:e=!1}=A,{isDarkMode:t}=function(){let[A,e]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{let A=()=>{var A;e("dark"===(null==(A=document.querySelector("[data-theme]"))?void 0:A.getAttribute("data-theme")))};A();let t=new MutationObserver(A),r=document.querySelector("[data-theme]")||document.documentElement;return t.observe(r,{attributes:!0,attributeFilter:["data-theme"]}),()=>t.disconnect()},[]),{isDarkMode:A}}();return e?null:(0,n.jsx)("div",{className:"logo",children:(0,n.jsx)("a",{href:"https://midscenejs.com/",target:"_blank",rel:"noreferrer",children:(0,n.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 A5=t(4177),A7=t(6766),A9=t(6419),A2=t(8594),A6=t(89),A8=t(894),A4=t(4174),eA=t(8926),ee={};ee.d=(A,e)=>{for(var t in e)ee.o(e,t)&&!ee.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},ee.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e),ee.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var et={};ee.r(et),ee.d(et,{create:()=>eA.vt});let{create:er}=et,eo="midscene-auto-zoom",en="midscene-background-visible",ei="midscene-elements-visible",ea="midscene-model-call-details",el="midscene-dark-mode",es=A=>{if("undefined"==typeof window)return;var e=new URLSearchParams(window.location.search).get(A);if(null===e)return;let t=e.trim().toLowerCase();return!!["1","true","yes","on"].includes(t)||!["0","false","no","off"].includes(t)&&void 0},ec=er(A=>{let e="false"!==localStorage.getItem(eo),t="false"!==localStorage.getItem(en),r="false"!==localStorage.getItem(ei),o="true"===localStorage.getItem(ea),n="true"===localStorage.getItem(el),i=es("focusOnCursor"),a=es("showElementMarkers"),l=es("darkMode"),s=void 0===l?n:l;return void 0!==l&&localStorage.setItem(el,s.toString()),{backgroundVisible:t,elementsVisible:void 0===a?r:a,autoZoom:void 0===i?e:i,modelCallDetailsEnabled:o,darkModeEnabled:s,setBackgroundVisible:e=>{A({backgroundVisible:e}),localStorage.setItem(en,e.toString())},setElementsVisible:e=>{A({elementsVisible:e}),localStorage.setItem(ei,e.toString())},setAutoZoom:e=>{A({autoZoom:e}),localStorage.setItem(eo,e.toString())},setModelCallDetailsEnabled:e=>{A({modelCallDetailsEnabled:e}),localStorage.setItem(ea,e.toString())},setDarkModeEnabled:e=>{A({darkModeEnabled:e}),localStorage.setItem(el,e.toString())}}}),ed="midscene-env-config",eu="midscene-service-mode",ep="midscene-tracking-active-tab",eg="midscene-deep-think",ef="midscene-screenshot-included",em="midscene-dom-included",ey="midscene-ime-strategy",eh="midscene-auto-dismiss-keyboard",eE="midscene-keyboard-dismiss-strategy",ev="midscene-always-refresh-screen-info",eC=()=>localStorage.getItem(ed)||"",eb=A=>{let e=A.split("\n"),t={};return e.forEach(A=>{let e=A.trim();if(e.startsWith("#"))return;let r=e.replace(/^export\s+/i,"").replace(/;$/,"").trim().match(/^(\w+)=(.*)$/);if(r){let[,A,e]=r,o=e.trim();(o.startsWith("'")&&o.endsWith("'")||o.startsWith('"')&&o.endsWith('"'))&&(o=o.slice(1,-1)),t[A]=o}}),t},ek=er((A,e)=>{let t=eC(),r=eb(t),o=window.location.href.startsWith("chrome-extension"),n=localStorage.getItem(eu),i="false"!==localStorage.getItem(ep),a="true"===localStorage.getItem(eg),l="false"!==localStorage.getItem(ef),s=localStorage.getItem(em)||"false";return{serviceMode:o?"In-Browser-Extension":n||"Server",setServiceMode:e=>{if(o)throw Error("serviceMode cannot be set in extension");A({serviceMode:e}),localStorage.setItem(eu,e)},config:r,configString:t,setConfig:e=>A({config:e}),loadConfig:e=>{A({config:eb(e),configString:e}),localStorage.setItem(ed,e)},syncFromStorage:()=>{let e=eC();A({config:eb(e),configString:e})},forceSameTabNavigation:i,setForceSameTabNavigation:e=>{A({forceSameTabNavigation:e}),localStorage.setItem(ep,e.toString())},deepThink:a,setDeepThink:e=>{A({deepThink:e}),localStorage.setItem(eg,e.toString())},screenshotIncluded:l,setScreenshotIncluded:e=>{A({screenshotIncluded:e}),localStorage.setItem(ef,e.toString())},domIncluded:"visible-only"===s?"visible-only":"true"===s,setDomIncluded:e=>{A({domIncluded:e}),localStorage.setItem(em,e.toString())},popupTab:"playground",setPopupTab:e=>{A({popupTab:e})},imeStrategy:localStorage.getItem(ey)||"yadb-for-non-ascii",setImeStrategy:e=>{A({imeStrategy:e}),localStorage.setItem(ey,e)},autoDismissKeyboard:"false"!==localStorage.getItem(eh),setAutoDismissKeyboard:e=>{A({autoDismissKeyboard:e}),localStorage.setItem(eh,e.toString())},keyboardDismissStrategy:localStorage.getItem(eE)||"esc-first",setKeyboardDismissStrategy:e=>{A({keyboardDismissStrategy:e}),localStorage.setItem(eE,e)},alwaysRefreshScreenInfo:"true"===localStorage.getItem(ev),setAlwaysRefreshScreenInfo:e=>{A({alwaysRefreshScreenInfo:e}),localStorage.setItem(ev,e.toString())}}});function eS(A){let{showTooltipWhenEmpty:e=!0,showModelName:t=!0,tooltipPlacement:r="bottom",mode:o="icon"}=A,{config:a,configString:l,loadConfig:s,syncFromStorage:c}=ek(),[d,u]=(0,i.useState)(!1),[p,g]=(0,i.useState)(l),f=a.MIDSCENE_MODEL_NAME,m=(0,i.useRef)(null),y=A=>{c(),u(!0),A.preventDefault(),A.stopPropagation()};return(0,i.useEffect)(()=>{d&&g(l)},[d,l]),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"10px",alignItems:"center",height:"100%",minHeight:"32px"},ref:m,children:[t?f:null,(0,n.jsx)(A6.A,{title:"Please set up your environment variables before using.",placement:r,align:{offset:[-10,5]},getPopupContainer:()=>m.current,open:!d&&(e?0===Object.keys(a).length:void 0),children:"icon"===o?(0,n.jsx)(A2.A,{onClick:y}):(0,n.jsx)("span",{onClick:y,style:{color:"#006AFF",cursor:"pointer"},children:"set up"})}),(0,n.jsxs)(A8.A,{title:"Model Env Config",open:d,onOk:()=>{u(!1),s(p)},onCancel:()=>{u(!1)},okText:"Save",style:{width:"800px",height:"100%",marginTop:"10%"},destroyOnClose:!0,maskClosable:!0,centered:!0,children:[(0,n.jsx)(A4.A.TextArea,{rows:7,placeholder:"OPENAI_API_KEY=sk-...\nMIDSCENE_MODEL_NAME=gpt-4o-2024-08-06\n...",value:p,onChange:A=>g(A.target.value),style:{whiteSpace:"nowrap",wordWrap:"break-word"}}),(0,n.jsxs)("div",{children:[(0,n.jsx)("p",{children:"The format is KEY=VALUE and separated by new lines."}),(0,n.jsxs)("p",{children:["These data will be saved ",(0,n.jsx)("strong",{children:"locally in your browser"}),"."]})]})]})]})}function eI(A){let{showEnvConfig:e=!0,showTooltipWhenEmpty:t=!1,showModelName:r=!1,githubUrl:o="https://github.com/web-infra-dev/midscene",helpUrl:i="https://midscenejs.com/quick-experience.html",className:a=""}=A;return(0,n.jsxs)("div",{className:`nav-actions ${a}`,children:[(0,n.jsx)(A9.A.Link,{href:o,target:"_blank",children:(0,n.jsx)(A5.A,{className:"nav-icon"})}),(0,n.jsx)(A9.A.Link,{href:i,target:"_blank",children:(0,n.jsx)(A7.A,{className:"nav-icon"})}),e&&(0,n.jsx)(eS,{showTooltipWhenEmpty:t,showModelName:r})]})}var eR=t(4707),ex=t(9870),eP=t(9877),ej=t(3147),ew=t(6620),eO=t(5810),eN=t(5359),eK=t(5584),eB=t(638);function eT(A){return A.subType||A.type}function eM(A){if(!A)return"";if("string"==typeof A)return A;if("object"==typeof A){if("object"==typeof A.prompt&&null!==A.prompt&&A.prompt.prompt)return A.prompt.prompt;if("string"==typeof A.prompt)return A.prompt;if("string"==typeof A.description)return A.description}return""}function ez(A){var e,t,r,o,n,i,a,l,s,c;let d;if("Planning"===A.type&&(d="Locate"===A.subType?eM(null==A?void 0:A.param):(null==(e=A.output)?void 0:e.log)||(null==(t=A.param)?void 0:t.userInstruction)),"Insight"===A.type&&(d=function(A){if(!A)return{content:""};let e=A=>{var e;return(null==A||null==(e=A.multimodalPrompt)?void 0:e.images)&&Array.isArray(A.multimodalPrompt.images)?A.multimodalPrompt.images:void 0},t=A=>"string"==typeof A?A:JSON.stringify(A);if(A.demand)return{content:t(A.demand),images:e(A)};if(A.assertion)return{content:t(A.assertion),images:e(A)};if(A.dataDemand){let{dataDemand:r}=A;if("string"==typeof r)return{content:r};if("object"==typeof r)return{content:t(r.demand||r),images:e(r)}}return{content:""}}(null==A?void 0:A.param).content),"Action Space"===A.type){let e=null==A||null==(r=A.param)?void 0:r.locate,t=e?eM(e):"";(d=A.thought||"","number"==typeof(null==A||null==(o=A.param)?void 0:o.timeMs))?d=`${null==A||null==(n=A.param)?void 0:n.timeMs}ms`:"string"==typeof(null==A||null==(i=A.param)?void 0:i.scrollType)?d=(c=null==A?void 0:A.param)?`${c.direction||"down"}, ${c.scrollType||"singleAction"}, ${c.distance||"distance-not-set"}`:"":"string"==typeof(null==A||null==(a=A.param)?void 0:a.direction)&&(null==A?void 0:A.subType)==="AndroidPull"?d=function(A){if(!A)return"";let e=[];return e.push(`direction: ${A.direction||"down"}`),A.distance&&e.push(`distance: ${A.distance}`),A.duration&&e.push(`duration: ${A.duration}ms`),e.join(", ")}(null==A?void 0:A.param):void 0!==(null==A||null==(l=A.param)?void 0:l.value)?d=null==A||null==(s=A.param)?void 0:s.value:(null==A?void 0:A.param)&&"object"==typeof(null==A?void 0:A.param)&&Object.keys((null==A?void 0:A.param)||{}).length>0&&(d=null==A?void 0:A.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 A=eM(d);return A||JSON.stringify(d,void 0,2)}return String(d)}Ah("ai:service"),Ah("task-runner"),t(3009),t(6970),t(8963).Buffer,t(5409),Aw.z.object({locate:Az.describe("The element to be tapped")}),Aw.z.object({locate:Az.describe("The element to be right clicked")}),Aw.z.object({locate:Az.describe("The element to be double clicked")}),Aw.z.object({locate:Az.describe("The element to be hovered")}),Aw.z.object({value:Aw.z.union([Aw.z.string(),Aw.z.number()]).transform(A=>String(A)).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:Az.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:Aw.z.enum(["replace","clear","append"]).default("replace").optional().describe('Input mode: "replace" (default) - clear the field and input the value; "append" - append the value to existing content; "clear" - clear the field without inputting new text.')}),Aw.z.object({locate:Az.describe("The element to be clicked before pressing the key").optional(),keyName:Aw.z.string().describe("The key to be pressed. Use '+' for key combinations, e.g., 'Control+A', 'Shift+Enter'")}),Aw.z.object({direction:Aw.z.enum(["down","up","right","left"]).default("down").describe("The direction to scroll"),scrollType:Aw.z.enum(["singleAction","scrollToBottom","scrollToTop","scrollToRight","scrollToLeft"]).default("singleAction").describe('The scroll behavior: "singleAction" for a single scroll action, "scrollToBottom" for scrolling to the bottom, "scrollToTop" for scrolling to the top, "scrollToRight" for scrolling to the right, "scrollToLeft" for scrolling to the left'),distance:Aw.z.number().nullable().optional().describe("The distance in pixels to scroll"),locate:Az.optional().describe("The target element to be scrolled")}),Aw.z.object({from:Az.describe("The position to be dragged"),to:Az.describe("The position to be dropped")}),Aw.z.object({locate:Az.describe("The element to be long pressed"),duration:Aw.z.number().default(500).optional().describe("Long press duration in milliseconds")}),Aw.z.object({start:Az.optional().describe("Starting point of the swipe gesture, if not specified, the center of the page will be used"),direction:Aw.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:Aw.z.number().optional().describe("The distance in pixels to swipe (mutually exclusive with end)"),end:Az.optional().describe("Ending point of the swipe gesture (mutually exclusive with distance)"),duration:Aw.z.number().default(300).describe("Duration of the swipe gesture in milliseconds"),repeat:Aw.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)")}),Aw.z.object({locate:Az.describe("The input field to be cleared")}),Aw.z.object({condition:Aw.z.string().describe("The condition of the assertion"),thought:Aw.z.string().describe('The thought of the assertion, like "I can see there are A, B, C elements on the page, which means ... , so the assertion is true"'),result:Aw.z.boolean().describe("The result of the assertion, true or false")}),t(9140),t(8586),t(9300),t(5409),Ah("web:tool:profile"),t(8963).Buffer,Ah("cache"),Ah("agent:task-builder"),Ah("device-task-executor"),Ah("agent"),["read-only","read-write","write-only"].map(A=>`"${A}"`).join(", ");let eD="Auto dismiss keyboard",eQ={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"}},eZ=["aiAct","aiTap","aiQuery","aiAssert"],eL={type:"system",content:`
|
|
4
|
+
Welcome to Midscene.js Playground!
|
|
5
|
+
|
|
6
|
+
This is a panel for experimenting and testing Midscene.js features. You can use natural language instructions to operate the web page, such as clicking buttons, filling in forms, querying information, etc.
|
|
7
|
+
|
|
8
|
+
Please enter your instructions in the input box below to start experiencing.
|
|
9
|
+
`,loading:!1,result:void 0,replayScriptsInfo:null,replayCounter:0,loadingProgressText:"",verticalMode:!1},eX={result:void 0,dump:null,reportHTML:null,error:null},eJ="data:image/png;base64,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",eU="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAhGVYSWZNTQAqAAAACAAFARIAAwAAAAEAAQAAARoABQAAAAEAAABKARsABQAAAAEAAABSASgAAwAAAAEAAgAAh2kABAAAAAEAAABaAAAAAAAAAEgAAAABAAAASAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAYKADAAQAAAABAAAAYAAAAABaCTJNAAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgoZXuEHAAAZfUlEQVR4Ae1da5Ac1XXue7tnHzMrYSMMEqyMYB/CCOyEhTjxH9YYk0p4GEsBJxTgFNjalYDEruCHMAkjEsd2gsu4AD1DUrYpUoZgy4iEAhNbqiRQDpIxGAGSdnmYt4wgknZmd2em++b7TnfPzvZ0z660u3rNXGmnu2/f53fOPffccx9tWQ3XQKCBwEFAwFiWOgjZNLKIQ8BkLR3nf7j6mcss+0grcxWW5HipSMD5ZumpxxyJlWIdqio3jR4zwpksNOSNUfdbLq/5ZZ2/n9fq+jffOLFlGss+I0mRcYb7O1fl+zuu5z3rYLK9zkwxz7TLZRZUZS2Phc8v6zhLGbXC0WpJCT6uZX1m1pqB+4RAqNiMIHiAiYblHlreeUGLUo/YWln5krfBuN7ftK178ddMdibKPW0twBiInAD8kWULF4KDbkqn7C2tjlpS9IxhhZDZZXuXdh9Hrsoepv2C8qwbUVRruOgV0yl9qdL66Vx/11/nb+hs91uDpVnXA6RzVbRpIYBwhoLIAefn+zr/xDXuf6MBrEQlyEXkdDQI/LesT2lV+ghvbtk2fZVgelNxFDEsO4C+COmcP1IyLK2TL7gUoSrdpG41RevxfF/XYoZTqCvrPJU8w7hTJkDYLFmJXF9Xv6esu1tsdRwy0MZjPRQLqiGC3CZbpbSyV5ilPamQm8KCHKorC6iymwA5GcL0pZu0wn0J5SH2Nu5NvuCVUPb5tm09kO/v+jLLKuWfBiJMqSmF4O9Z3tFpe2p9Jm335vMi2j2/AuO43HM0CWG9Aw5anl49cL9UPmgarNShcKHYHOrr+mSTbT0KccmyxzGmC9FkQ/yQqx6ybe+vWu56cUeIwYGWPS6jSaUlzRayfN/nOxfZrvr3TJPuzefcQhCZ6UaJK60AHHYcuoTFUvFDDD7LSpEiV+V9AQxSy9nQI4i/l27WF3muepB191tyr1MrYq13tbNMiLmFIgTNdmRZ9/kQME8026qbzRSQNyVECbyVGkW/0Kz1n+be7ryCniRE7Tgz9zbMO7es68J0k/3HwyUDCVrT8bXKj3rFlK0Xatt6XDAAFsSkZsyEl/tdeXL+2eu2FpkxWutPIDJnFfxmW4sLwDiWm3aUhrDdPeqZzZC0m6VMWb93TijfzHrfEuSt3F35orcRHZSGrCcmbBXSMmIKQCKkCq7xEH42MSAWxITYxISv6TUBwcfHlc4TGQ2R8433IPT7VnSuSTIzjFxEJilUzBpxzbvo4a5Jv9v8sLp/WyiuwnCH5EqVUrQatMShtzp6taXWQv3sHEVn5RohQi0mRb8GpvLMsFH6krbVOx4LMZpsZSZNAJH5aGq55aeeozy9GXo9wKeKKVpOfH7KKkHmO6MFzwLnr8jMbb+NoouB0SRQ70PI/RUlruxI74Nmc+Gcjq8qS33Nr6OhVlFD5TSuo7XtkgjaOzez6sUnQ6wqski8nRQBWKjL0eFygAVtcgNk/mng5loFo8gxUEf1qGv+x1M6S+5gKchxK1ei7ws6v8SSHeQXZAjrMozigxH60NJTz8Qg7F4w0BkQTyWwComQhJeLutqo6wtQsy9tWb19e6hdTVSNpATL8ULuGLnu1O6SpzdmHN2NAiWDzzEMBioouEa4DWn3mMtVIB9D7i8nfpjehHUe+twpJyjHXoe6XAIlg6KWeCVh5kJ02bmCt8PT7iWzV7+0PUynVjVryTfh1pAjXFd/G6omwafsTmqS5HwLBdEYBd+TzqSvJPjbLlvUdKSAz/KLagmtpu2fXno7nUtfIXVBnQKBKXVkuIiz2VIyKdWtjb1x73WnzfFV1NpaXk0CWBAVzISjP9xcBPWLXJCkbonYSbdolSu6/4CB1lXqtmdybIqLDpMONwJYzUdptRC96gfP5FgXqRPqhkhSz4TITr5kCplWu8v2ikskzAQml6TmVLb80f7BITgGTzRxMvPqOPBHj+q1NqMJjnjfals78FVmHmoYUpAj9KeyDkN9nd/MtOiv5EeAhI9CNRZBPfFin1Hm6szqwQ21RFFsCwgjDC1fMBeJ3E66+9bkGPDJEZD5BH+44IMPKvmWUfgfobiXix2qqKwTGSs3itaNwQ8CsG5J9fNgBZ4Fs90dxFBEUYLdqIoAzGjlIj9hbVI3YfA0v+DW6HRRCJH5AB9NVTjfytLAlTiQKVfuSLmRuqBOLG/bmsGvDJfQv0HJwGMSATREUSmdUu3EUOp5vz9HIvcVP5JoxXNZ9OT6Tj0bw/Mn8wU2QglRFRa+yERD7nkbMqsHPs1QJCACJhVMEjpSf0JxZG78cCa/L39PS0pdOiLm9tixkAhsmLIVzNrnZNa+uCWULJX1r2oBbC7U+wHjTQIjZDsiJINfdF/2RqylTJTxjlbwWb9QHFG5wGj+M6MlsxlMyjoX+T7iMJYLpYBawXfENhJmvIpECjEARoLXpB39aTQjgl+tcvqdrjPqeszh2ln/MvBbDsE5WItmcLQ9UxztvKGzWUwpRq1l/dDciVFcq4dqaizHVosL/Z2/K2EjxsdyCxDRAQDNF9tbQavr0OkmO3Su7IdgLlkxa83gz2ToDX0/OcLR9abrjoFRqtfptTv/FQO0LLBI7A/QOlxihcHT1ytQKEuU8k1ov8j1d3y+2dbrMKwORU85TJCAR6tmrmgehVbwhxWJ1tWtMCy4nlIjP6dzFzA5NpAYZaYWQCAtbFj4YNjLK22uSa8a/GEYl+8lsHQuMJLtuXbRseD+Pgo1po2fKPjSLmDS56vb+BuKLd7XkwMwhq1A5DosvLmS2c0ZP2Ag6JSxQE8A8KmspD1PrTBfWPA+xoUtTLD3qXW5/5BqGu3GbE8PVSgAXC37adOH+oVpu4cya3eKcc2CelXOrM5uVgb1Tc9rfhhM/iub+p/PuFEkaKbgZM+H86N2B1+eHoyQfQLc54MI9j7P70oMU4o6emKlAHsHtRb34ACsJsA1GrBenmnRFdUyuw2ouN+A2C7SNI36R5lS4JIBnLGuJz6hwqKJJtWrfH/3SZgs+QtOGcLLJwxDjjnTmkI6lvVYZs3Oh6T5Bbb9sSD1dxcOWj3jPA10NtBkAydAjUdD6QK0Frz6RKW/5qiVHp5yz8cExAmQV3RVCcAD5mVDxVRkv4Rq/FhhK5i9bsc7rjEP+GKoGj9iSvwxgzYfxk0x1JGJtRXIImX0xylP4KLNh34GEXndljlxQGT/0WRqYMWm4sIBVlvR+Q/0j7t8JSZWNHNtFCyX5kuSH7CXXnxvX+cfQFtazNVJCc5L+dL+lw3g4xESkfzP2/eBV29ubhIJHjcoVZi6ZK95ItdSkXASMqXUQkypzQom2KPih52vjUmJnNHu7cyemcUXo459A0li22YzzNWctHIIVQQRhY6aXvNTRsnIWID0lOm2U2WqRQlQam2xofKY+9tWv/SMgJ+tSjiSTx0+Bup4c1PhVXAsbERlPCvBoKJaSLfaXHHxO3whoaD9tFN9jSIvMcWkBKp5agufn9u2qK5VT8Ek5gfYYVSMqdfvvDYMPDfEBBEvEEdziQi61LNp9tH55R3zgfxHS/AEzNHBFz0dTEVSDO1iCqcv+kBcJ52UX535bxO5j0HZsxgv7UF/6wC/8WIIfA5pQuF0rJVLZ7CgBTM3xjoFK70IVrQRcGkJfQc9p/RfPpqbGgSYgK1c29oLNEc1BU50VhDMjyU9NG1/aNQuztEFS50GGZ9CmjA/VBNA++pnrm3Vy28hUYVxg1BqgjLU52vOegHbtlU7fwXo30z5+uh4vCDSEabU2mxnisY5A/h6FxgZocVqNqAf45unBNFsL5Mcn2B9Qh1ba8FmZa8vxpW1xceuiqkZVxNzrHP5BDrhWKObnwGoSckEou0Wj22bGuD7yNT4DUS0Mb+gqIETRSc+gkqTACcmTb5ATikmAjpskgSCyfr4xBq+4xAwyrecjfMc/4ANRAW0AnOyT6iYpsI+BBNfReW9KVFvaYif8RBWP60MvLRtngeu8fsNwNGU+uD+0zmZNgSc4yU7WxB6bW3Z6SDdxmUCBG4JmNS4akTQE3AjkQI/XFrYAj4IKx4FfZWjFgVXShn9qtzFhBH/xs8YAgFGBdd+C57cZRnriDn+nahtrecliaAgstsyd+5rTAXPjU44Fs4xzxCjY3QbMUsigGK/C9P1PO7uiJdTFWm+Pfh889hj4246EUALqKUmSVbmhNZ2WvcabhIIhMJ8ROdOQnDuM45zhuNbjNre1J5ntoMIdFVhA5tD6j373Q8FAQKpJOEbP3EIBChCc5yP146MY6PhEMafOVOvYk5YjdDgmewMtoun/FNOqkiUHKve32CLXx6werHQhh0F9lqQ99/wTRbVLcD3UbajvLkC6MrY5Ood6/H1DzCC5jgP3E9raKLDK9kb/rpvb6sOx7gkDvbFtFe/bfjEIhDOsSvrXFqSRdusDog5dmqV5llcMGSoDhD6eJxEBoF6xCNIPHzZuCYjAB3/eJEsUXO0RDFGrMxK/a/GDMIjwuaxqyEM9h9LD7FQ4r2/x++uk/NtvAkxMlYHORcMHiOEMGeGV8D+dYyE1Vs0+OA5LqByxRhntQ9/buEp/nbTCdXWuiUCAFTE6LfXLOQk1/uMWDkDe0IMKrbRr+gmY+3Kj7hvYFEWJ2Wis11KViJa1jzPds9gGps29TZaQQyY9Nq6tIcrIazZTd4FgH0RDv/g43gJD9mEd5jmdfOYms9jRkzvQaA3/EURVa2AEmw0nXGakMxZTK39zNei88b0bjgg0PPeVmFgbKs/A5v0iAnniMcTAKopO2f8e67JTr2puaQODecJnGXFCNEWAHJhoh5nPSBGj/nzBS2yOSGaKGPWuRPxM7ZD6MzkfhUmamANXDequ17YHYgT8xhOumJ7oRiSdlPGE+boIl8Zc2bOUceIfzZC1XLgOr4JMMkv7foo0PoktuwSSRFJFagQW9v134mBUwjgKvMO3uyRUQGDjHfcD1BKtzgLQLlPjX/VeIoi4GpzVqbFng3dhwdYjRc/IAk3cYy43nvQg55nXFypA1km19+5Bbs4erCRgHKrSs5To0KnvmskZXXNuWNgbzTjxrOPQK6v88EWR12MqVyK84jCYnCgh81lnk+k1wx8jPsrNI9oYVQopnfiBW+rwKcnNSqcEHV8U8H8EZ/rdWsS6x514VrZERz6CsMmwWeQCPjgdPK6PzT+uaSBRQ463GKktfef9Iy2GQno/0Ct5ZI6tWRff8fxXNmLxxrBK2LWyS127d6Is5RYW+HkSLW5WY876H+DyfjvyjusI6JkEXJh996rwPPHrb42RDEUddRf4cxiR9vd8jJcAxMNWUfP/u7SsUNfY3V/Hw9DEzSawCvY2ivLPIm9NBPZGY9AOAPrVvQBDE6ohTB8CBzP/Cymm20cz+VdKH51vk4IAPmHvmYpbqKHvoawhVf/+GYYd75Hn1BsCQGeC9b7ZJzRV/DuKR6+gWt1K4BaxfPf4Jbv4zG+FEOSOb3q0AX9Jw/7Q/94UXCqVkwfis4XYgPMvTVftO+rRIqcLk6oCcIM9XVcjV17d0M2OTBDU8qXwwRBeRQL94u9m3l3wO8LyAnVLSYIfnRfgo3aL0D246RF6RWjeFGSGLzH+Xne0syawfXhpngiIy1AIAqoaTveZoT314JGk5KAluYBp0jwWOwQv1m8slVE8kMexb8EkdUbmdP5JUiMTjlZoJpZGcSQYfH+6XTr6D30sLKbytKlTABfnPQ6rXe99AqCrJdl6clcTSOdh10gWZyo9WfcN8YDLCTxOviRjRjYogtt8Dw0/W9U9JvVtYcM8bVScxc3b8i+4gpcywRgzPBgPdPsPQh16Sc8EwLecSoVRY5PRWX6WKDwAIvqEhxdPgIgzsAz+A4CwLm7WcwHsUv7WXGv2VGqUDLbcHjT9+lBRuc1dOMIQE9m0Pbdl962jPd3AeWi2pDEhWeK5+sjg3Pzx47+kIcYsSUczWMD1k0kxVU4sEl7d2NUuwDcz30VUZuPQAmMBF+sQfl7FZywIuBV/FQRgAMzEoEnPGHXzL3pVoe9esK6IGXjYwc8TfzS4Vx+DdNF05BDLCryOCpuqe2xbqzMcFt+DcTvJfmiS26OAx/exsvAJA3Zf2fb6p33ImLs5pYqAkC0GGtRr3S/yHAdrKQFaERN8JXMWYCIw5FcHjQjfeVQf8e35F326CKCqNqoE+vGOrKuvsoZe6QDg8HmD7WzZF41uvR1esipvMQ24gToiJ88+rIO3wfAtnpHmX9LUEnDqEIeOTO0cWwlYYawwpJPoy/HoU4/CrEMwaq8VrWA8GU4yJq1ZucD6IVvxd5WEqsYvo9cRQHjwa48VzNsCSKOgmPQIuGPiMdKscM6yZmhPLzWZ9sk5i36WKnvCfhBv5FU4UQCVEZIO9a3h0fcndCKOGHDTifOsUCKh5pmUvaX8e2wHxh0VkJIaElxEQ5nPzkXjkoFT0hEXaROPLCVstz/iyt+Cf1hKjfs/hxm+y9KgCQyBbFrEkC0GnAwevC9JeVejGPKdmDQwU5nnCpVURLJDpqBB6PelflM/l6qazzgLhy4VIQ9LG+BsBw6K2o1GIfHU0pdUKcJON/D2XAOTg7e4dpmKedMRPTEyP3Kik9AHz+oNEVww/4dXw/tCJMP0BRehgi7lof7MTUWipoWMq7qkCoLdijuw3oybw4wQYo+qtnU9OBFrJLwIvgag9O9mM762Kz1A9tqyX2mH7qkBMP35Wtovygs7z4HH274GeR7GxokW0KM8akcTQ525dcooEOvaNk98I/hQCRMrxzyEN3IuIVmdVh2fXEph/DdzFE+i8SxDnCvVUcXvSM/8LMP5wksaVu786eTBZ/pT5oADBx+niO3rONSTOvjcCJLY7BG7qglymSgAtFlQTQNgBR9bXMHN4l4g27NdHnP68F2UaB4UDnKt552LppaUB7+Jej5Ulr5tBXAh3gyS+Sgbn7gaD+O8Nw/AgArRPCPajyu42J8J/L7MMOGH/GpRQSKG7EIshvjoX9Iai2PPpNq8GVADCvLFRszI54o35G+1DkkOmf3OMHEOQ68WAbD2TE0NqJIDCdhwzJGruFXM4ZwANNV6XcGN0oLQhxEmrR4rZVBJL/qR378TGGMAPk3GxyTNCQfiyj6cfB1DUTAi8cwTXdby6qBR8cCofToJ7ZijWXPuq2l/alMZRrhPQnL1XxcUMaONfTffUPnbM5vc4oVOS7mRBPnOibRopmEiFbMob+AVbZXZ1bteDJMd3+vB0QA4SQsw2NTk4+ZaetH0JG7+X0tFCBVqxBEHZkSWIerxzBUtzCXuhG98sP4Gt8v0+t2/qIyPsWeFaw4szhxdEvAXUgA/8ucJmXi08qAa7mSG0SsFAdcWMa1TbK8xqi/5SIDMV6xQJjtQ2oOYuGppitSHadGiJZziXwvhmU8QGaZKLOaJQllqHzK0FXr8OWIj+eHgahvM6klkpgu4eKfpulbo4/Ijbh7UaCfwu/XQOLZvQX96AfkGDD4HKDjomJZ18qllVxmjwVmXOM0MurKSg8kWy5HzSz81mulUViOiaiWy3dieHTnFE6PnBIBWOCQCGzSLUXrO/D5LO0gWHxE7YFEmEwe0uFBeDqtPGkKNOTkNjQU8vH/4W8QjLkLz5u5a58bx7l3mdtnuYOTmwi5j41bqbibBxp7O+xXPch4IdBtRxnmyfpWiBiu8uNCM7zjBrrJlI3V9O1huEFBb+XAlGMjirewL2GgA3GTLUDNtEMiMBA1CX51A810Po7zZQ0J7kStwU/f5zL2JQxvIw3cMQWIKaBFcYUE+Ukpvmc4qsGsA15Q9LH/VnKePDeWcG8Dl9dLd4NFxghEdZJxJ1ceKbsxtAjTKInv2F5B0wzilxmP91NxLPy0OIGGPxA/8tkOz/ka1Dk5JTaYKyVIzG+yeTI8/sD3kip+KJ+D2NGEgsB+DL9GIHwQd//zZQoGDKCpKoDw9yLvda2rBzaT6/lyqpzPNOgmC4YfehK/la1haFnXFdgSflOToxaBISlWQlBqDWwmkYsfhKBPYwXYXHHYFbaWIl32S5wV5MQU50aYY2Xd+DwdbhrLP1YcFjQ0NxjMFWMFxdWA6jq0iI+QEPzKNlhZ1qUi1oyUYaw0k7pzKdYw+lX+DJcsSljPqVnODkp9MEcylc42qRQzVnlwkQx6wqbKEwLzw81XwrsPo+IeHmDKtY38CId0t9iNFpBixsoUgMCehqVj30R+sLgaEMDz9VM4UO92rgwJFicI14fMxADT7Wa6slLeyqbL/VPplHs5+P+zaPMnQ85+kCIeX2qiLk4U2LFiBwP+yhJ/ytVmuoSd1xTn0ZswAsTXkMQX5fgxVwVyYZpa/Zv3mNvBslUdFAJIhaRF9NqVzZhmAKD8l3h/HtgSp/fq99tQQw24UU7q4hp7caLdsKzR8lY+E2C68Mp7Ao7d0MoBk1sKyHOcggB7QPNBAH8nFyVzXSzD0eHduI96+r4z91tZgZnLpSLlJC0iz/OrcZQjqt+OzuFiEOR0mAf8g6KACs60YAsRx0ITRsou3EodwNC4gVkST9RcfU/eoDPFJkSEewP3TwDix9ySeWf2+sHHJbHgh+tjuUQzm/WJVvluJu+lnDOZQa20Q27jIoDKlmHwIcyCW5znYijgKu9kaCYnQaP8PXDsGSgwW0URQM7nWUc8bgegQ1002/Gep1QR7NfxnnbkRzA0eIs7QbkZUfbDBQUq532I5yb+H8lGaZooTb2GAAAAAElFTkSuQmCC",eF=(A,e,t)=>{let r,o=(r=A.width/A.height>=e/t?A.width:A.height/t*e)>400?.1:r>50?.2:.3,n=Math.min(e,r+e*o*2),i=Math.min(A.left-e*o,e-n);i=Math.max(i,0);let a=Math.min(A.top-t*o,t-t/e*n);return{left:Math.round(i),top:Math.round(a=Math.max(a,0)),width:Math.round(n)}};function eV(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function eq(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){eV(n,r,o,i,a,"next",A)}function a(A){eV(n,r,o,i,a,"throw",A)}i(void 0)})}}function eG(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}function eH(A,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(e)).forEach(function(t){Object.defineProperty(A,t,Object.getOwnPropertyDescriptor(e,t))}),A}function eW(A){if(!A)return"";if("string"==typeof A)return A;if(A.message)return String(A.message);try{return JSON.stringify(A)}catch(e){return String(A)}}function eY(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}class e_{initDB(){return new Promise((A,e)=>{let t=indexedDB.open(this.dbName,this.version);t.onerror=()=>e(t.error),t.onsuccess=()=>A(t.result),t.onupgradeneeded=A=>{let e=A.target.result;this.storeConfigs.forEach(A=>{let{name:t,keyPath:r}=A;e.objectStoreNames.contains(t)||e.createObjectStore(t,{keyPath:r}).createIndex("timestamp","timestamp",{unique:!1})})}})}async withTransaction(A,e,t){let r=(await this.dbPromise).transaction(A,e);return t(Array.isArray(A)?A.map(A=>r.objectStore(A)):r.objectStore(A))}promisifyRequest(A){return new Promise((e,t)=>{A.onsuccess=()=>e(A.result),A.onerror=()=>t(A.error)})}async put(A,e){await this.withTransaction(A,"readwrite",async A=>{await this.promisifyRequest(A.put(e))})}async get(A,e){return this.withTransaction(A,"readonly",async A=>this.promisifyRequest(A.get(e)))}async getAll(A){let e=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return this.withTransaction(A,"readonly",async A=>{let t=e?await this.promisifyRequest(A.index("timestamp").getAll()):await this.promisifyRequest(A.getAll());return e?t.sort((A,e)=>A.timestamp-e.timestamp):t})}async clear(A){await this.withTransaction(A,"readwrite",async A=>{await this.promisifyRequest(A.clear())})}async delete(A,e){await this.withTransaction(A,"readwrite",async A=>{await this.promisifyRequest(A.delete(e))})}async count(A){return this.withTransaction(A,"readonly",async A=>this.promisifyRequest(A.count()))}getDBPromise(){return this.dbPromise}constructor(A,e,t){eY(this,"dbPromise",void 0),eY(this,"dbName",void 0),eY(this,"version",void 0),eY(this,"storeConfigs",void 0),this.dbName=A,this.version=e,this.storeConfigs=t,this.dbPromise=this.initDB()}}let e$=async(A,e,t,r)=>{try{return await A()}catch(A){return console.error(e,A),A instanceof Error&&"QuotaExceededError"===A.name&&r&&(console.log("Storage quota exceeded, running cleanup..."),await r()),t}},e0=(A,e,t)=>async()=>{try{let r=await A.getAll(e);if(r.length>t){let o=r.sort((A,e)=>A.timestamp-e.timestamp).slice(0,r.length-t);await Promise.all(o.map(t=>A.delete(e,t.id)))}}catch(A){console.error(`Failed to cleanup ${e}:`,A)}};function e1(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function e3(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){e1(n,r,o,i,a,"next",A)}function a(A){e1(n,r,o,i,a,"throw",A)}i(void 0)})}}function e5(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}function e7(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){e5(A,e,t[e])})}return A}function e9(A,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(e)).forEach(function(t){Object.defineProperty(A,t,Object.getOwnPropertyDescriptor(e,t))}),A}let e2="playground_messages",e6="playground_results";class e8{saveMessages(A){return e3(function*(){yield e$(()=>e3(function*(){yield this.dbManager.clear(e2);let e=A.slice(-100);yield Promise.all(e.map((A,e)=>{let t=e9(e7({},A),{result:"result"===A.type?void 0:A.result}),r={id:A.id||`msg-${e}`,data:t,timestamp:A.timestamp?A.timestamp.getTime():Date.now()+e};return this.dbManager.put(e2,r)}))}).call(this),"Failed to save messages to IndexedDB",void 0,this.messagesCleanup)}).call(this)}loadMessages(){return e3(function*(){return(yield e$(()=>e3(function*(){let A=yield this.dbManager.getAll(e2,!0);return 0===A.length?[]:Promise.all(A.map(A=>e3(function*(){let e=A.data,t=e9(e7({},e),{timestamp:new Date(e.timestamp)});if("result"===e.type&&e.id){let A=yield this.loadResult(e.id);A&&(t.result=A.result,t.replayScriptsInfo=A.replayScriptsInfo,t.replayCounter=A.replayCounter,t.verticalMode=A.verticalMode)}return t}).call(this)))}).call(this),"Failed to load messages from IndexedDB",[],this.messagesCleanup))||[]}).call(this)}clearMessages(){return e3(function*(){yield e$(()=>e3(function*(){yield Promise.all([this.dbManager.clear(e2),this.dbManager.clear(e6)])}).call(this),"Failed to clear messages from IndexedDB")}).call(this)}saveResult(A,e){return e3(function*(){yield e$(()=>e3(function*(){let t=this.compressResultForStorage(e),r={id:A,data:t,timestamp:Date.now(),size:JSON.stringify(t).length};yield this.dbManager.put(e6,r)}).call(this),"Failed to save result to IndexedDB",void 0,this.resultsCleanup)}).call(this)}loadResult(A){return e3(function*(){return(yield e$(()=>e3(function*(){let e=yield this.dbManager.get(e6,A);return(null==e?void 0:e.data)||null}).call(this),"Failed to load result from IndexedDB",null))||null}).call(this)}compressResultForStorage(A){var e,t;if(!(null==(t=A.result)||null==(e=t.dump)?void 0:e.tasks))return A;let r=A.result.dump.tasks.map(A=>{var e,t;return e9(e7({},A),{uiContext:A.uiContext?e9(e7({},A.uiContext),{screenshotBase64:null!=(t=this.compressScreenshotIfNeeded(A.uiContext.screenshotBase64))?t:A.uiContext.screenshotBase64}):A.uiContext,recorder:null==(e=A.recorder)?void 0:e.map(A=>e9(e7({},A),{screenshot:this.compressScreenshotIfNeeded(A.screenshot)}))})});return e9(e7({},A),{result:e9(e7({},A.result),{dump:e9(e7({},A.result.dump),{tasks:r})})})}compressScreenshotIfNeeded(A){if(!A)return A;if(A.length>1048576){let e=Math.round(A.length/1024);return`[COMPRESSED: ${e}KB screenshot removed for storage]`}return A}getStorageStats(){return e3(function*(){return(yield e$(()=>e3(function*(){let[A,e]=yield Promise.all([this.dbManager.count(e2),this.dbManager.count(e6)]);return{messageCount:A,resultCount:e}}).call(this),"Failed to get storage statistics",{messageCount:0,resultCount:0}))||{messageCount:0,resultCount:0}}).call(this)}cleanup(){return e3(function*(){yield Promise.all([this.messagesCleanup(),this.resultsCleanup()])}).call(this)}constructor(A="playground"){e5(this,"dbManager",void 0),e5(this,"namespace",void 0),e5(this,"messagesCleanup",void 0),e5(this,"resultsCleanup",void 0),this.namespace=A,this.dbManager=new e_(`midscene_playground_${A}`,1,[{name:e2,keyPath:"id"},{name:e6,keyPath:"id"}]),this.messagesCleanup=e0(this.dbManager,e2,100),this.resultsCleanup=e0(this.dbManager,e6,50)}}function e4(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function tA(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){e4(n,r,o,i,a,"next",A)}function a(A){e4(n,r,o,i,a,"throw",A)}i(void 0)})}}function te(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}function tt(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){te(A,e,t[e])})}return A}function tr(A,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(e)).forEach(function(t){Object.defineProperty(A,t,Object.getOwnPropertyDescriptor(e,t))}),A}class to{checkStorageSpace(){try{let A="storage-test",e="x".repeat(102400);return localStorage.setItem(A,e),localStorage.removeItem(A),!0}catch(A){return!1}}saveMessages(A){return tA(function*(){try{this.checkStorageSpace()||(console.warn("Low storage space detected, clearing old data..."),yield this.handleQuotaExceeded());let e=A.slice(-this.maxStorageItems).map(A=>tr(tt({},A),{result:"result"===A.type?void 0:A.result})),t=JSON.stringify(e);localStorage.setItem(this.messagesKey,t)}catch(e){if(e instanceof DOMException&&"QuotaExceededError"===e.name){console.warn("LocalStorage quota exceeded, attempting to clear old data and retry..."),yield this.handleQuotaExceeded();try{let e=A.slice(-10).map(A=>tr(tt({},A),{result:"result"===A.type?void 0:A.result})),t=JSON.stringify(e);localStorage.setItem(this.messagesKey,t),console.info("Successfully saved recent messages after clearing storage")}catch(A){console.error("Failed to save even after clearing storage:",A),yield this.clearMessages()}}else console.error("Failed to save messages to localStorage:",e)}}).call(this)}loadMessages(){return tA(function*(){try{let A=localStorage.getItem(this.messagesKey);if(!A)return[];let e=JSON.parse(A);return yield Promise.all(e.map(A=>tA(function*(){if("result"===A.type&&A.id){let e=`${this.resultsKey}-${A.id}`,t=localStorage.getItem(e);if(t)try{let e=JSON.parse(t);return tt({},A,e)}catch(A){console.warn("Failed to parse stored result:",A)}}return A}).call(this)))}catch(A){return console.error("Failed to load messages from localStorage:",A),[]}}).call(this)}clearMessages(){return tA(function*(){try{localStorage.removeItem(this.messagesKey),Object.keys(localStorage).forEach(A=>{A.startsWith(this.resultsKey)&&localStorage.removeItem(A)})}catch(A){console.error("Failed to clear messages from localStorage:",A)}}).call(this)}saveResult(A,e){return tA(function*(){try{let t=`${this.resultsKey}-${A}`;localStorage.setItem(t,JSON.stringify(e))}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}-${A}`;localStorage.setItem(t,JSON.stringify(e))}catch(A){console.error("Failed to save result even after clearing storage:",A)}}else console.error("Failed to save result to localStorage:",t)}}).call(this)}handleQuotaExceeded(){return tA(function*(){try{let A=Object.keys(localStorage),e=A.filter(A=>A.startsWith(this.resultsKey)),t=e.slice(0,Math.max(1,Math.floor(e.length/2)));t.forEach(A=>{localStorage.removeItem(A)}),console.info(`Cleared ${t.length} old result entries to free up storage space`);let r=A.filter(A=>A.includes("playground")||A.includes("agent")||A.startsWith("midscene"));if(r.length>10){let A=r.slice(0,Math.floor(r.length/3));A.forEach(A=>{A!==this.messagesKey&&localStorage.removeItem(A)}),console.info(`Cleared ${A.length} additional playground-related entries`)}}catch(A){console.error("Failed to handle quota exceeded:",A)}}).call(this)}constructor(A="playground"){te(this,"messagesKey",void 0),te(this,"resultsKey",void 0),te(this,"maxStorageItems",50),this.messagesKey=`${A}-messages`,this.resultsKey=`${A}-results`}}class tn{saveMessages(A){return tA(function*(){this.messages=[...A]}).call(this)}loadMessages(){return tA(function*(){return[...this.messages]}).call(this)}clearMessages(){return tA(function*(){this.messages=[],this.results.clear()}).call(this)}saveResult(A,e){return tA(function*(){this.results.set(A,e)}).call(this)}constructor(){te(this,"messages",[]),te(this,"results",new Map)}}class ti{saveMessages(A){return tA(function*(){})()}loadMessages(){return tA(function*(){return[]})()}clearMessages(){return tA(function*(){})()}saveResult(A,e){return tA(function*(){})()}}function ta(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"indexeddb",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"playground";switch(A){case"indexeddb":if("undefined"!=typeof indexedDB)return new e8(e);return console.warn("IndexedDB not available, falling back to localStorage"),ta("localStorage",e);case"localStorage":if("undefined"!=typeof localStorage)return new to(e);return console.warn("localStorage not available, falling back to memory storage"),ta("memory",e);case"memory":return new tn;case"none":return new ti;default:throw Error(`Unknown storage type: ${A}`)}}function tl(){if("undefined"!=typeof indexedDB)try{return indexedDB.open("test",1).onerror=()=>{},"indexeddb"}catch(A){}if("undefined"!=typeof localStorage)try{return localStorage.setItem("test","test"),localStorage.removeItem("test"),"localStorage"}catch(A){}return"memory"}function ts(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function tc(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){ts(n,r,o,i,a,"next",A)}function a(A){ts(n,r,o,i,a,"throw",A)}i(void 0)})}}function td(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}function tu(A,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(A,Object.getOwnPropertyDescriptors(e)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(e)).forEach(function(t){Object.defineProperty(A,t,Object.getOwnPropertyDescriptor(e,t))}),A}t(2982);var tp=t(565),tg=t(8513);function tf(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}let tm=(A,e,t)=>{let r,{left:o,top:n,width:i,height:a}=A;r="element"===t?A$[function(A){A||(A="unnamed");let e=5381;for(let t=0;t<A.length;t++)e=(e<<5)+e+A.charCodeAt(t);return e>>>0}(e)%A$.length]:"searchArea"===t?A0("searchArea"):A0("element");let l=new tp.A1g;if(l.beginFill(r,.4),l.lineStyle(1,r,1),l.drawRect(o,n,i,a),l.endFill(),l.filters=[new tg.GD({blur:2,quality:3,alpha:.4,offset:{x:4,y:4},color:3355443})],!e)return[l];let s=new tp.EYj(e,{fontSize:18,fill:0});return s.x=o,s.y=Math.max(n-22,0),[l,s]},ty=A=>{let e=A.highlightElements||[];e.map(A=>A.id);let t=A.highlightRect,r=A.highlightPoints,{size:o,screenshotBase64:a}=A.uiContext,l=o.width,s=o.height,c=(0,i.useRef)(null),d=(0,i.useMemo)(()=>new tp.lgM,[]),[u,p]=(0,i.useState)(!1),g=(0,i.useMemo)(()=>new tp.mcf,[]),f=(0,i.useMemo)(()=>new tp.mcf,[]),[m,y]=(0,i.useState)(null),h=(0,i.useRef)(void 0),E=(0,i.useRef)(null),v=(0,i.useRef)([]),C=(0,i.useRef)([]);(0,i.useEffect)(()=>{var A;return Promise.resolve((A=function*(){if(!c.current||!l)return;yield d.init({width:l,height:s,background:0xffffff});let A=c.current;c.current.appendChild(d.canvas);let{clientWidth:e}=c.current.parentElement,t=.6*window.innerHeight;if(l/s<=e/t){let e=t/s;A.style.width=`${Math.floor(l*e)}px`,A.style.height=`${Math.floor(s*e)}px`}d.stage.addChild(g),d.stage.addChild(f),p(!0)},function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){tf(n,r,o,i,a,"next",A)}function a(A){tf(n,r,o,i,a,"throw",A)}i(void 0)})})()),()=>{console.log("will destroy"),null!==E.current&&(cancelAnimationFrame(E.current),E.current=null);try{d.destroy(!0,{children:!0,texture:!0})}catch(A){console.warn("destroy failed",A)}}},[d,l,s]),(0,i.useEffect)(()=>u?(d.stage.eventMode="static",d.stage.hitArea=new tp.M_G(0,0,l,s),d.stage.on("click",e=>{var t;console.log("pixi click",e);let{x:r,y:o}=e.data.global;null==(t=A.onCanvasClick)||t.call(A,[Math.round(r),Math.round(o)])}),()=>{var A;null==d||null==(A=d.stage)||A.off("click")}):void 0,[u,A.onCanvasClick,l,s]),(0,i.useEffect)(()=>{if(!u)return;let A=new Image;A.onload=()=>{if(!d.stage)return;let e=tp.gPd.from(A),t=new tp.kxk(e);t.x=0,t.y=0,t.width=l,t.height=s,t.eventMode="passive",d.stage.addChildAt(t,0),h.current=t,t.visible=!0},A.onerror=A=>{console.error("load screenshot failed",A)},A.src=a},[d.stage,u,l,s]);let{highlightElementRects:b}=(0,i.useMemo)(()=>{if(g.removeChildren(),f.removeChildren(),g.eventMode="passive",f.eventMode="passive",v.current=[],C.current=[],t){let[A]=tm(t,"Search Area","searchArea");g.addChild(A)}return e.length&&e.forEach(A=>{let{rect:e,content:t,id:r}=A,o=tm(e,t,"highlight"),n=o[0],i=new tg.qx({distance:30,outerStrength:3,innerStrength:0,color:0xfd5907,quality:.5}),a=n.filters;Array.isArray(a)?n.filters=[...a,i]:a?n.filters=[a,i]:n.filters=[i],o.forEach(A=>g.addChild(A)),v.current.push(n),C.current.push(i)}),(null==r?void 0:r.length)&&r.forEach(A=>{let e=((A,e)=>{let[t,r]=A,o=A0("element"),n=new tp.A1g;return n.beginFill(o,.4),n.drawCircle(t,r,10),n.endFill(),n})(A,0),t=new tg.qx({distance:25,outerStrength:2.5,innerStrength:0,color:0xfd5907,quality:.5});e.filters=[t],g.addChild(e),v.current.push(e),C.current.push(t)}),f.visible=!0,{highlightElementRects:[]}},[d,u,e,m,t,r]);(0,i.useEffect)(()=>{if(!u||0===v.current.length)return void console.log("Animation skipped:",{appInitialed:u,graphicsCount:v.current.length});console.log("Starting pulsing animation for",v.current.length,"graphics");let A=v.current,e=C.current,t=performance.now(),r=()=>{let o=(Math.sin((performance.now()-t)%1200/1200*Math.PI*2)+1)/2,n=.4+.6*o,i=2+3*o;A.forEach((A,t)=>{A.alpha=n,e[t]&&(e[t].outerStrength=i)}),E.current=requestAnimationFrame(r)};return r(),()=>{console.log("Stopping pulsing animation"),null!==E.current&&(cancelAnimationFrame(E.current),E.current=null)}},[u,e,r]);let k=null;return 1===b.length?k=(0,n.jsx)("div",{className:"bottom-tip",children:(0,n.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(b[0])]})}):b.length>1&&(k=(0,n.jsx)("div",{className:"bottom-tip",children:(0,n.jsxs)("div",{className:"bottom-tip-item",children:["Element: ",JSON.stringify(b)]})})),(0,n.jsxs)("div",{className:"blackboard",children:[(0,n.jsx)("div",{className:"blackboard-main-content",style:{width:"100%"},ref:c}),(0,n.jsx)("div",{className:"bottom-tip",style:{display:A.hideController?"none":"block"},children:k})]})};var th=t(9783),tE=t(7294),tv=t(4985),tC=t(1090),tb=t(2946),tk=t(90),tS=t(3776);let tI=A=>{let{text:e,disabled:t=!1,speed:r=5,className:o="",colorTheme:i="blue"}=A,a={"--animation-duration":`${r}s`},l=`theme-${i}`;return(0,n.jsx)("div",{className:`shiny-text ${l} ${t?"disabled":""} ${o}`,style:a,children:e})},tR=(0,n.jsxs)("span",{children:["Don't worry, just one more step to launch the playground server.",(0,n.jsx)("br",{}),"Please run one of the commands under the midscene project directory:",(0,n.jsx)("br",{}),"a. ",(0,n.jsx)("strong",{children:"npx midscene-playground"}),(0,n.jsx)("br",{}),"b. ",(0,n.jsx)("strong",{children:"npx --yes @midscene/web"})]}),tx=function(){let A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:tR;return(0,n.jsx)("div",{className:"server-tip",children:(0,n.jsx)(ew.A,{message:"Playground Server Not Ready",description:A,type:"warning"})})},tP=(0,n.jsx)("div",{className:"result-empty-tip",style:{textAlign:"center"},children:(0,n.jsx)(tI,{disabled:!0,text:"The result will be shown here"})});var tj=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++MEPZlPvfe9706lv37752Mc+luXLl6dLly5pamrKxr761a9mY3vvvXc+8YlPZGNHHXVUNtba2prW1tYsW7YsPXv2TFEUAQAAAHip6gMAALClPfFEMmFC8sQTeSVaWlryP+nRo0deTFEUaWlpyaupubk5r7aWlpYAAAAAvFz1AQAA2NLmz0/OPz8AAAAAvLqKAAAAAAAAAFAK9QEAANhcqtW8bJVKAAAAAHhligAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUAr1AQAA2MqtWbMmAFuDpqamAAAAbM2KAAAAAAAAAFAK9QEAANjKNTU1BQAAAID/XREAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSqA8AAMDWplIJAAAAAC9ffQAAALYm1WoAAAAAeGWKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhPgAAAFuTSiUArynVagAAALYW9QEAANjaVKsBeE2oVAIAALA1KQIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAKRQAAAAAAAAAohSIAAAAAAAAAlEIRAAAAAAAAAEqhCAAAAAAAAAClUAQAAAAAAACAUigCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAfAACAzaVSCQAAAABbThEAAAC2Gm1tbWlrawsAAADAK1EfAACALWHs2OScc1JtaUlNZdmyZMKE5KGH8lJcfPHFWb9+fWoaGhqy00475YADDki/fv1SJtdff30aGxtz7LHHBgAAAODlKgIAALC5tbQkkyYlgwalMmVKKlOmpNrSklxxRdLSkpdiwYIFGTNmTE466aS88Y1vTFtbWy6++OI8//zzAQAAAOC/1AcAAGBzmzAh6dUrOeywZNmy1FTGjk0mT07OPDP5xjfyUvTp0ycDBgzIgAEDsueee+axxx7LnDlzcsghhwQAAACApD4AAACb24wZyTnnJMuW5f81ZUr+plevvFLbb799li9fnprHH388v/71r/PXv/41vXv3zpgxY7Lffvulpq2tLddff33mzp2bbt26Zfjw4TnyyCNT09bWluuvvz5z585Nt27dMnz48Bx55JF5/PHHc/vtt+ess85KzdNPP52rrroqRx99dIYNG5aaa6+9NoMGDcp+++2X+fPn57e//W2efPLJ9O7dO62trRkzZkxqOjo6ctFFF+Xtb397brnllqxduzYf+tCHsmzZstx000157LHH0qVLl4wePTrVajUAAAAAr1R9AAAANrcf/Sj/P8cfn7+ZPDkvV3t7e+bNm5dHHnkkb3jDG7Jy5cpccsklOeGEE9La2ponn3wyP/zhD9OvX7/ssssuueuuu/LMM8/kvPPOS1tbWy699NIMHDgwQ4cOzV133ZVnnnkm5513Xtra2nLppZdm4MCBGTx4cJ544ok8//zz6dOnT2bNmpU1a9ZkxowZGTZsWNrb2zNjxoyMGTMmCxYsyA9/+MOMGzcup512WhYtWpQrr7wy7e3tGTt2bKrVahYtWpRf/OIXOeSQQ7LTTjtl7dq1ueSSS7Lbbrvl7LPPTrVaza233pqZM2fmoIMOCgAAAMArUR8AAIAtbeTI5IorkhkzkilT8lJdccUVqaurS1tbW7bbbruMHz8+gwcPzurVq/P+978/AwcOzPLly9OrV6/suOOOeeyxx7LLLrukZuXKlVm4cGF22223nHvuualWq+m0cuXKLFy4MLvttlvOPffcVKvV1NfXZ/DgwfnTn/6U17/+9ZkzZ07Gjx+fa665Ju3t7Xn88cfTvXv39O/fPzfeeGOGDh2a/fffPzU777xzjjvuuNxwww0ZO3ZsOo0dOzb77rtvah5++OFs2LAh48ePT6VSSc1JJ52UP//5zwEAAAB4peoDAACwJY0cmUyenOqSJamceWZejlNPPTUDBw5Mly5dUldXl05dunTJvffemyuvvDLbbbdd6urq8uyzz2bNmjWpOeSQQ7Jhw4bccMMNWbJkSfbcc8+MGzcu2223XQ455JBs2LAhN9xwQ5YsWZI999wz48aNy3bbbZchQ4Zk7ty5GTZsWJYuXZohQ4akf//+mTdvXh599NEMGTIkNQsWLMjQoUOzsQEDBmTJkiVZs2ZNunbtmpr+/fun09NPP50BAwakUqmkU1EU2XHHHQMAAADwStUHAABgSxk7Npk0KXniiVQOOyxZtiwvR9euXdPY2JhNzZw5M48//ng+9rGPpUuXLqn51re+lU5Lly7NmDFjcvjhh2fNmjW5+uqrc/PNN+fUU0/N0qVLM2bMmBx++OFZs2ZNrr766tx888059dRTM3To0PzqV7/KzJkzs/fee6coigwdOjSzZs3K/Pnzc8wxx6SmX79+efbZZ7OxRYsWpbm5OU1NTWlvb09NXV1dOvXr1y8PPfRQNrVo0aL07ds3AAAAAK9EEQAAgC3hHe9IJk9OJk1KDjssWbYsr5b169envb097e3tqbn//vuzcOHCdLr11ltz9dVXp729PU1NTenVq1fa29tTc+utt+bqq69Oe3t7mpqa0qtXr7S3t6emubk5/fr1y6233pphw4alZtiwYbn//vuzePHi7L777qkZOXJkHnrooTz66KOpWb58eW6++ea0trbmxQwePDjr1q3L7bffng0bNmTDhg255ZZbsnTp0gAAAAC8UvUBAADY3EaOTK64IrniiuSd78yrrbW1NbNnz84XvvCFNDQ0ZIcddsh+++2XTuPGjcvEiRNz/vnnp6GhIQ0NDTnjjDNSM27cuEycODHnn39+Ghoa0tDQkDPOOCOdhg4dmmeeeSZ77rlnavr06ZM+ffqkX79+qaurS83uu++e8ePH55prrsn69evT0dGR1tbWHHXUUXkx3bt3z7vf/e78/Oc/z5QpU1KtVjN06NAceOCBAQAAAHilKos3rK4GAGAzqS5bk969ewfYRlUq+ZvLL0/OPDMvaMKE5Pzz899Uq3kl1q5dm7a2tjQ3N+eFrFu3Lm1tbenZs2c2tW7durS1taVnz575eyxfvjw9e/ZMpVLJS7V69eoURZHGxsYArzGVSlKtBuClWrx4cSotTQEA2FzqAwAAsLk98UQyYUJe0OTJebU0NjamsbExL6ahoSENDQ15IQ0NDWloaMjfq7m5OS9Xt27dAgAAAPBqqA8AAMDmdv75AQAAAGDzKwIAAAAAAABAKdQHAABgc6lW87JVKgEAAADglSkCAAAAAAAAQCkUAQAAAAAAAKAUigAAAAAAAABQCkUAAAAAAAAAKIUiAAAAAAAAAJRCEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEAp1AcAAGArt3jx4gBsDXr37h0AAICtWX0AAAC2NpVKNtY7AAAAALwU9QEAANjaVKsBeE2oVAIAALA1KQIAAAAAAABAKRQBAAAAAAAAoBSKAAAAAAAAAFAK9QEAANjaVCoBAAAA4OWrDwAAwNamWg3Aa0KlEgAAgK1JEQAAAAAAAABKoQgAAAAAAAAApVAEAAAAAAAAgFIoAgAAAAAAAEApFAEAAAAAAACgFIoAAAAAAAAAUApFAAAAAAAAACiFIgAAAAAAAACUQhEAAAAAAAAASqEIAAAAAAAAAKVQBAAAAAAAAIBSKAIAAAAAAABAKRQBAAAAAAAAoBTqAwAAsLlUKgEAAABgyykCAAAAAAAAQCnUBwAAYEsZOTI588xUR45MTeVHP0p+9KMAAAAA8OqoDwAAwJaw667JjBnJjBmpTJqUv7niiqRXr+Qb3wgAAAAAf7/6AAAAbAkTJiRLlyajRqVTdezYVM48M/nGNwIAAADA368IAADAlnDFFcm++2ZjlSlTkkGDAgAAAMCroz4AAABbwpQp+W+OPz4555zknHMCAAAAwKujPgAAAFvSrrsmTzyRv5kxI1m6NAAAAAC8OooAAABsSfPnJ716JYcdlsyYkUyalLS0BAAAAIC/XxEAAIAtbdmyZMqU5Otfz98cdlgAAAAA+PsVAQAA2BI+85lk7Nj8Nw89lL/Zd98AAAAA8PcrAgAAsAVU3/GOVD/zmfw3Y8fmbyZPDgAA/w978AGedWEobP9+/klIAIEEWWEjEEwgbAgQZLlwa6tWUVzUhQpOfGvtcbQ9ra2tgqMVVIaNOGjVFo+jiKAispcIBNmEQDAkjGDIet7vf67r+S6uHHve4qmKz7l/P0mSpP+5RCRJkiTpWxB56CGYNg1WrIDXX+c/3X470fffJzJ/PpIkSZIkSfqfS0SSJEmSvg3Tp8PWrUQfeACGDiUUefBBItOmIUmSJEmSpH+NRCRJkiTp2zJ/PpERI5AkSZIkSdI3I0CSJEmSJEmSJEmSFBcSkSRJkqRvSjTKMYtEkCRJkiRJ0tcTIEmSJEmSJEmSJEmKCwGSJEmSJEmSJEmSpLgQIEmSJEmSJEmSJEmKCwGSJEmSJEmSJEmSpLgQIEmSJEmSJEmSJEmKCwGSJEmSJEmSJEmSpLgQIEmSJEmSJEmSJEmKCwGSJEmSJEmSJEmSpLgQIEmSJEmSJEmSJEmKCwGSJEmSJEmSJEmSpLgQIEmSJEmSJEmSJEmKCwGSJEmSJEmSJEmSpLgQIEmSJEmSJEmSJEmKC4lIkiRJ0vEmEkGSJEmSJEnHLhFJkiRJOt5Eo0jS90IkgiRJkiQdTwIkSZIkSZIkSZIkSXEhQJIkSZIkSZIkSZIUFxKRJEmSpONNJIIkSZIkSZKOXSKSJEmSdLyJRqkt/8heppZ8wsdlW4kSRZK+DREiDKrfnmvTBpCR3JT/IhJBkiRJko4niUiSJEnScS7/yF6u3/kSUaJI0rcpSpQFZVv4uGwrU1pfRkZyUyRJkiTpeBYgSZIkSce5qSWfECWKJH1XokSZWvIJkiRJknS8C5AkSZKk49zHZVuRpO/ax2VbkSRJkqTjXYAkSZIkHeeiRJGk71qUKJIkSZJ0vAuQJEmSJEmSJEmSJMWFAEmSJEmSJEmSJElSXAiQJEmSJEmSJEmSJMWFAEmSJEmSJEmSJElSXAiQJEmSJEmSJEmSJMWFAEmSJEmSJEmSJElSXAiQJEmSJEmSJEmSJMWFAEmSJEmSJEmSJElSXAiQJEmSJEmSJEmSJMWFAEmSJEmSJEmSJElSXAiQJEmSJEmSJEmSJMWFAEmSJEmSJEmSJElSXEhEkiRJkr4pkQiSJEmSJEn69gRIkiRJkvS/XM3hCg4u2ES0ugZJkiRJkr7PAiRJkiTp29aoEZSUwAMPIP13Di7awmdnTqSmvJJv0v73N7Dj4dl8+VkhkiRJkiR9nyUiSZIkSd+2adMgNRXpeNFoeBcSUutSNysdSZIkSZK+zxKRJEmSpG/T+PFEe/QggnT8COrVoWFuJyRJkiRJ+r5LRJIkSZK+LT16wIMPErnwQpg3D+lfIXqkiqLpCylbsZ3KLw5Rr2tL0s7tzgl92xFTc7iC3X+YT9nKHUSraqjaV0biifVJbFSXlneeTjQapfCxObR75IckNEzh4MLNlL69lmbXDmLPlA/5cv1uklo05MSLetHotEwkSZIkSTpeBUiSJEnSt2XaNJg2DebPR/pXiB6pYvsDf+XQkq00vXog7X79A5I7NGHHA3/j4MLNxOx4+E0qdpbQ6p4zafNv55DQqC5VxWW0vOdM6rRtTE15JeWbvyBaXUOo+mA5Zat3UvDI26SO7Erbf7+QuhnNKXj075St3IEkSZIkScerRCRJkiTp2/DAA0QbNSLy4INI/yoHF23h8JpddP7TdSSm1SOU0rEpNV9WUPTcRzQYeBI1hysoW7mDtr+4gHrdWxFq88C5bL3zVRIbphAkJ/JVag5X0GzMYE7o245Q3YzmHFiwiUNLt1G/ZxskSZIkSToeBUiSJEnSN61HD3jwQSLXXgv79yP9qxxeU0BKp6YkptXjaCf0bc+RHSVUlR4mqJtEQoNkjmwrJubItn1EkhNJaFSXfygSoV52K/5/kQj1e7SmYkcJkiRJkiQdrxKRJEmSpG9Y9LXXYMsWIsOGwbBhxESHDiXywAPw0ENIX0fNkSoiSQnUFklKIBStqoFIhCaX9WPP5A8pW76dSGICh1Zsp/m1g4gkJfCPROokECQncrRIUgI15ZVIkiRJknS8SkSSJEmSvmlbtxKKDh1KTIT/T/v2RIEI0tdTr1tLDszbQM2XlQR1k4gpW7mDOumNSGpyAlWlhyl99zPqZqbTYOBJhJpdM5DkDk2QJEmSJCneJCJJkiRJ37DIiBH8F9EokenT4aGHkP5fqg8dIVpZzdGCenVoMKgjxa8sZccDf6XFbSNIalKfA/M3UvzKUlrcOpzQoUVbOLK1mHpdW1K55yCJTU+gprySaGU1kaQEJEmSJEmKJ4lIkiRJknSc23jFc9TW7pEfUL9nG9o98kMKfvsum2/OI1pVTZ0WjWgxdhhpZ3Uj1HBIBkXTFnJ47S5SOjbl4Meb2TPlQ5KaNaTdry8iqWkDJEmSJEmKF4lIkiRJ0nfhwQdh3jyk/06DnA5kvTOe/07iifVp9+uLiB6povpgOYlNTuBo+15bQcIJyWTkjYEgQqjmcAUbr57K/r+vo8mo/tTv3pqsd8YTk3pGFqlnZFFbqwlnIkmSJEnS8SwRSZIkSfouPPQQ0r9SJDmRxOQTqK2moor/FIkQE6QkEdStQyQpAUmSJEmS4kkikiRJkiTFsUYjTqZk9hq23vkKJww4CSJw8ONNRBICGo04GUmSJEmS4kkikiRJkvRNiUY5ZpEI0r9SctvGdJwymtK3P+XI9n1EggiNRpxMo2FdSGiYgiRJkiRJ8SQRSZIkSZLiXGJaPZpc3h9JkiRJkuJdgCRJkiRJkiRJkiQpLgRIkiRJkiRJkiRJkuJCgCRJkiRJkiRJkiQpLgRIkiRJkiRJkiRJkuJCgCRJkiRJkiRJkiQpLgRIkiRJkiRJkiRJkuJCgCRJkiRJkiRJkiQpLgRIkiRJkiRJkiRJkuJCgCRJkiRJkiRJkiQpLgRIkiRJkiRJkiRJkuJCgCRJkiQd5yJEkKTvWoQIkiRJknS8C5AkSZKk49yg+u2RpO/aoPrtkSRJkqTjXYAkSZIkHeeuTRtAhAiS9F2JEOHatAFIkiRJ0vEuQJIkSZKOcxnJTZnS+jJy63cgQgRJ+rZEiJBbvwNTWl9GRnJTJEmSJOl4l4gkSZIkfQ9kJDflVy3OQ5IkSZIkSf9YgCRJkiRJkiRJkiQpLgRIkiRJkiRJkiRJkuJCgCRJkiRJkiRJkiQpLiQiSZIkScebSARJkiRJkiQdu0QkSZIk6XgSjSJJkiRJkqSvJ0CSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcCJEmSJEmSJEmSJElxIUCSJEmSJEmSJEmSFBcSkSRJ+obt27cPSZIkSZIkSdI3L0CSJEmSJEmSJEmSFBcSkSRJ+oZl9O+HJEmSJAnyFy9BkiTpmxQgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLAZIkSZIkSZIkSZKkuBAgSZIkSZIkSZIkSYoLiUiSJP0vMKBfP4YMHERo0uRnKC8vR9A1M5N/v/9nVFRWcMk11yBJ8axRw4bceM21HG1HwU6WrlzJxk2bEHTNzOTf7/8ZFZUVXHLNNXwdvbp35/yRZ9G9a1eSkhJZsGgxj0x8nOPZReecw7VXXEFo246dvDhrFguXLKa2l5+fSt2UZCoqKlmwaBFTZkznUFkZkiRJknQ8SUSSJOl/gXHX38AZI0YQWvnpGt6dO5fvk66ZmaQ2bMjiZcuorKriX6VRg4bk5uRQUVmJJMW7Rg0bMmHcOL7K4uXLufzHY9h/4AD/mzVq0JDcnBwqKiv5OpqceCJ/e3EmKSkpxBTvK+F41zK9JYP65xAa1D+Hi845h4x+/Tj85WGONrBfX+rVrUdo2ODBJCUl8ZtJE5EkSZKk40kikiRJca5OUhLDTjmFmDOHj+DduXP5Pnl+0hN07NCBjL592FdaiiTpf+bp557lUNlhBvTtyykDB9K/d2/uuW0c9//yF+jr69KpEykpKVRVVzP27rvYU1RE8b59HO9ef3M2K9esJikpiVnTppOSkkL7tm34bMMGjnbpddeREASMGT2a80eeRVaXLkiSJEnS8SYRSZKkODckN5c6SUnEnHnqCO76Gf9FEAQMHzyYzC5d2LhpM3Pmz6O6upra6terxxkjRpDerDlLV65g8fLlfJV+vXrRr3cftmzbypx586isqiKmS6dONDnxRNbn55OSksIZI0ZQtHcvH3z8MQcPHSKUkpJCnx49OKH+CXRo145Q/z59OXjoIKFVn37KobIyYhISEhgxZAgZHTuxdMVyFi1bRm1BENC7ew/69erFijWr+bo6duhAi2bNKPriCzZu2kSoTp069OvVi9CSFSuoqKggFAQBpwwcSLfMLHYX7WHeRx9RvG8ftSUkJDBiyBAyOnZi6YrlLFq2jKN1OukkmjdtSnn5EZavXkUQBOT06UvfXj1JSU5m4jPPUDclha4nn0xJaSmfb97M4AEDOTkjg8XLlrF05Qpqa9igAacOHUqr9HS27djB3A8+oOzwYUJ9evQkJSWZ1WvXcsFZZ7Ng8SK2bNvGgL596dK5M3/+6185VFZGTEJCAiOGDCGjYyeWrljOomXL+CpdMzPJ7d+f8iNHWLBoEZu2bOHratigAacOHUqr9HS27djB3A8+oOzwYWL69OhJSkoyu4uK2LRlC/Xq1mPIoEF0yzyZvcXFTJ85k5iEhARGDBlCRsdOLF2xnEXLlvFVMjp24vFf/YoT6tfnjvvuY9mqlUjfR08++yxFe/cSmjBuHBPGjWf4KadwtIYNGnDq0KG0Sk9n244dzP3gA8oOH6a2rpmZ5PbvT/mRIyxYtIhNW7ZQW7269Rh+ymA6dujA+o0bmffRR1RUVBA6uXNnTmzcmJ27drFtxw569+hB3ZQUtmzbxq7du8np04fExETWrl9P6f79hDp37MipQ4awZ+9e/v7++xwqKyOmaZMmZHTsSDQKS1euoKKigqwuXcjNySEtNZXX3nyTjZs2EQqCgN7de9CvVy9WrFnN13ViWhonZ2TQv3cfQmVlZewpKuIf6dyxI6cOGcKevXv5+/vvc6isjJimTZqQ0bEj0SgsXbmCiooKsrp0ITcnh7TUVF578002btrEsYhEIpw6dCiZGRnsKdrLgkWfUFBYSExBYSEFhYUkJSYSk5SURG2fLFlCaNjgwYTqJCXxdfXu0YO6KSls3LyZor17CTVt0oSMjh0pLz/CslUrialXtx7DTxlMxw4dWL9xI/M++oiKigpqS0hIYMSQIWR07MTSFctZtGwZR+vToycpKcnsLipi05Yt1KtbjyGDBtEt82T2FhczfeZMYlq2aMGQQYNonNaY5atX8cmSJXyVjI6dePxXv+KE+vW54777WLZqJZIkSZK+W4lIkiTFuTOHjyA0Z/58Th0yhBbNmtM1M5O169YR06ZVK/70zGS6nnwyMZ9t2MDlPx5DQWEhMUNzc5kycRKNU1OJeW32bMbefReVVVWEGjZowPNPPMmwwYOJ2bJtGxdfczXbduwgdPdt47jonHP4ZMkScvr2JRKJEDpw8CDnjbqctevWkd68OW/kvcjR/vTMM8Sc/oOLWLF6NaEunTqRN3kK7du2JWbOvHlcc+stlJeXE6pTpw6vPD+VwQMGEFO4Zw+haE0Nx+Lma6/jmlGjmPnnP3PbvRMInZiWxht5LxLqPjiXXbt30+TEE3kj70W6dOpEzJEjR7j13gm8Nns2MV06dSJv8hTat21LzJx587jm1lsoLy8ndOv113PlJZcS+nzzZvI3beLs008nZvL06XTv2pW/zHiBbTt3UCepDunNmxPzyMTH+e0TTxDTMzubvGcm07xZM2IKCgu5aPSVbN66lT/+/vd0aNeO3UV7aNGsOTU1Nbz57rucN3IkodGX/ojTf3AR0WiULp06kTd5Cu3btiVmzrx5XHPrLZSXlxNKSEhg8uOPc8FZZ3O0ydOnc9/PH+ZY9czOJu+ZyTRv1oyYgsJCLhp9JZu3biX0zGOP0b5tW0Kv/8eb9O7eg7atWxNau24d02fOJNSlUyfyJk+hfdu2xMyZN49rbr2F8vJyjnbtFVfQv3dvQmN/PIYxt92G9H23dfsOQg0bNCCmZ3Y2ec9MpnmzZsQUFBZy0egr2bx1K6GEhAQmP/44F5x1NkebPH069/38YWL69+5N3uQppKWmElO4Zw8Xjb6Szzdv5tILL2LcjTfyyuuvceuECfw170VSUlKYMmMGD//2N7z58iuE+gwbRllZGY/+/BdcccklxJSUlnLzXXcyZ/58QsMHn8LTjz5K6MDBg7w2ezZXX345MWvXr2fjpk3UqVOHV56fyuABA4gp3LOHULSmhmMxoF8/pj/9B2IaNWzIG3kvEpr9zjtcc8tYQkmJiTz6819wxSWXEFNSWsrNd93JnPnzCQ0ffApPP/oooQMHD/La7NlcffnlxKxdv56Nmzbxz0pt1IiXnnuOvj17EVNeXs71t4/nrTlz+K489Zvf0rljR26dcA8v/eUvhIbm5vLH3/2eLdu20e/UEYT69+5N3uQppKWmElO4Zw8Xjb6SzzdvJqZLp07kTZ5C+7ZtiZkzbx7X3HoL5eXlhJ557DHat21L6PX/eJPe3XvQtnVrQmvXrWP6zJmEbr72Oh74P/+HxIQEYj5ZupRLr72Ww18e5mjXXnEF/Xv3JjT2x2MYc9ttSJIkSfpuBUiSJMW5kaedRui12X9j6cqVhM469VRiGjVsyOt5eXQ9+WSOHDnCqk8/paKykqwuXXj+ySeJ6dW9Oy899zyNU1MpKS3lsw0biEajXHTuufzkjjsJJSQk8PLzUxk2eDAHDh7khZdfIn/T53Ro147X/5RHwwYN+E/RKKEB/fpRXVPD+o0bCTVs0IA//fEZ6iQlUV5ezoJFi1i2aiUxi5YtY8GiRSxYtIhDZWWEWqWn8+bLr9C+bVu2bNvG1Lw8vigu5rRhw3hu0iRixl43hsEDBhDaXbSH4pIS0ps35+uIRCLUFolEiIlEIoRuuPpqunTqRPG+fUyZMYNFy5aRnJzMow//nCAICLVKT+fNl1+hfdu2bNm2jal5eXxRXMxpw4bx3KRJxGzasoWPFy+ipqaGTiedxNmnn84/0q51G9KbN2fz1q1UVVcTuuvW22jZogWh+vXq8fJzz9O8WTMWLlnM9JkzKS8vp1V6Or/86f0crWjvF3y67jOCIODMESN46S9/IdQzO5t2bdrQKj2dN19+hfZt27Jl2zam5uXxRXExpw0bxnOTJhEzeMAALjjrbKqrq3lx1iz++vZbRKNRbrj6arplZnEs6terx8vPPU/zZs1YuGQx02fOpLy8nFbp6fzyp/cTs3zVKlavXUvowrPPoW3r1tTWKj2dN19+hfZt27Jl2zam5uXxRXExpw0bxnOTJlHb7Hfe5siRI1RVV/Pa7NlI31f9e/cmNyeHYYMHM2b0lYTWrF1LqH69erz83PM0b9aMhUsWM33mTMrLy2mVns4vf3o/MYMHDOCCs86murqaF2fN4q9vv0U0GuWGq6+mW2YWMf824V7SUlNZv3Ejz0ybxtbt20lv3px/u2cCoaUrVxDKzOhCZpcupKSkEOrVPZvMjAxCxSUlbNu5gyce+Q1XXHIJ0WiUDZ9/zr7SUtJSU8mbPIUB/foR2vvFFyxYtIiS0lIaNmjA1ZdfzlcZe90YBg8YQGh30R6KS0pIb96cr6N43z4+XryIdfn5hCqrqvh48SI+XryIdfn5xDzxyG+44pJLiEajbPj8c/aVlpKWmkre5CkM6NeP0N4vvmDBokWUlJbSsEEDrr78cv4nnvrtb+nbsxefb97M5OnT2VNUREpKCk/99lHqJCXxXYlEItQWIUIoCAJi/m3CvaSlprJ+40aemTaNrdu3k968Of92zwRiWqWn8+bLr9C+bVu2bNvG1Lw8vigu5rRhw3hu0iRilq9axeq1awldePY5tG3dmtrq1KnDQz/5CYkJCcxfsICpeXnsP3CAAX37MvpHl1Lb7Hfe5siRI1RVV/Pa7NlIkiRJ+u4lIkmSFMe6nnwy6c2bE5ozfz7t2rShX69enDF8BI8++SShUT+8mHat27D3iy8YfNZIiktKaNu6NYvfm0ufHj3pmZ3NyjVruOuWW0hKTGTuhx9w+Y9/THV1NZdccCF/+N3vuOqyy/jVY79nyKBB9OvVi8qqKu66/6cUffEFf/7b33jqt4/SplUrLr3wIp59YQZEIoQK9+xh2HnnUrxvH4MHDOD1P+XRplUrThk4kPc++IALrhjFSe3bs3jOe4SuuulGiktKONqYK0eT2qgRBYWF3PWz+6murubDhQuZMnEiZ444lcyMDNbl5zNm9GhCTz//HA/++tckBAG/+8UvGXXxxXxTTkxrTGhdfj5/nPo8Bbt2cecttxJqcMIJ7D9wgDFXjia1USMKCgu562f3U11dzYcLFzJl4kTOHHEqmRkZrMvP54nJk3li8mQWvvMunTt2ZNOWLdx8910sX7WKrzL+J/+HvFdfpV3rNnz01lvUrVuXntnZ7Nq9m+ysLNZv3EhZWRmjbrie0MdLFvPM7x+jZ3Y2R/v1xMdp07IVjzz4IKs/W8utE+7h3DPP5IT69TkxrTHnnHEGqY0aUVBYyF0/u5/q6mo+XLiQKRMncuaIU8nMyGBdfj6N09IIlR44wPN5f2LNZ59x+Q9+SMv0dI5VdlYW6zdupKysjFE3XE/o4yWLeeb3j9EzO5uYG+64nWZNm/LZwk8IvTP3Pe598EF27tpFzJgrR5PaqBEFhYXc9bP7qa6u5sOFC5kycSJnjjiVzIwM1uXnE7Ng0SKyBg4gOTmZor17kb6vpj31NEcrO3yYh37zCKHsrCzWb9xIWVkZo264ntDHSxbzzO8fo2d2NjGN09IIlR44wPN5f2LNZ59x+Q9+SMv0dI7WpHFjQnM/mM9jf/gDU2ZM59ILL+LAwQOEFi1dSqhL58706dGDmB7dsul6ciahpSuWc3Lnzlx8wQWELv/xGObMn08QBDw36QnOGzmS++64g/NHjeL9jz7k/Y8+5NGHf841o0ZRVV3NmNtu5Z333qOqupqYMaNHE3r6+ed48Ne/JiEI+N0vfsmoiy/mWH2ydCnnjxrFWaedxgt/fIYDBw5w/qhRHO3kzp25+IILCF3+4zHMmT+fIAh4btITnDdyJPfdcQfnjxrF+x99yPsffcijD/+ca0aNoqq6mjG33co7771HVXU1x+KE+vU5of4JLFi0iHH33su2nTuY9MwzfPrxxzRs0ID2bduRv+lzjmdNGjcmNPeD+Tz2hz8wZcZ0Lr3wIg4cPEDMmCtHk9qoEQWFhdz1s/uprq7mw4ULmTJxImeOOJXMjAzW5edzwx2306xpUz5b+Amhd+a+x70PPsjOXbuISW3UiCAICP3plZd56733+Ns7bzOgbz92FBRQ24JFi8gaOIDk5GSK9u5FkiRJ0ncvEUmSpDh2+rDhhAoKCzm5c2f2HzhAqHePHjQ58US+KC6me7euhGa/8w7FJSWEtu/cSYsuGRyte9duhF58dRbV1dWEXn3jdV5943VisrO6EkpKTGTKxEnU1jXzZI7217feonjfPkIfffIJO3ftonXLlrRp3Zp/VnbXLEKt0tP5y4wXqK1bZha7i4pIb96c0MxZs6ipqaGmpoZX33idURdfTCQI+CbMePklLr3wQgYPGMCy9+exp6iI/E2bePWN19l/4ACh7K5ZhFqlp/OXGS9QW7fMLNbl51Pb9JkzWb5qFV+lurqamX/+M6FtO3fw+ZYtZGdlkd68BaFPli7l148/zvgbb2Tj0mWkpaYS07RJE0KRSIRQTU0NNdEaQtXVNYRqamoIRSIRsrtmEWqVns5fZrxAbd0ys1iXn8/cDz5g05YtdOzQgTmvvU7Z4cOsXvspK1avZsPGfI7FJ0uX8uvHH2f8jTeyceky0lJTiWnapAn/yCMTJ7Jz1y6Olt01i1Cr9HT+MuMFauuWmcW6/HyOtv/AAaR4UVBYyIrVq5n4zB/Z8PnnhD5ZupRfP/4442+8kY1Ll5GWmkpM0yZNiJn7wQds2rKFjh06MOe11yk7fJjVaz9lxerVbNiYT8wfpj7P737+C8aO+TFjx/yYdfn5FBQW8tjTTxEqLilhR0EBbVq14ofnnU9MUmIiPzzvPEJLV6wkO6sroa3btzNn/nxCNTU1TH0xj/NGjqRHt2y+ypx57/Pmu+9ytLTUVNKbNyc0c9YsampqqKmp4dU3XmfUxRcTCQL+1bKzuhLaun07c+bPJ1RTU8PUF/M4b+RIenTL5qvMmfc+b777Ll/HobIyxt17L/eMG8freXm0btmSSCRCTJMTTyR/0+ccz/4w9Xl+9/NfMHbMjxk75sesy8+noLCQx55+ipjsrlmEWqWn85cZL1Bbt8ws1uXnU9sjEyeyc9cujla0dy9/ffstzh95FlMmTqKquppVn65h67btzHjpJb7K/gMHkCRJknT8SESSJCmOnTFiBKFW6em8kfciRztj+HBenDWLaDRKKEqU/040GuX/pSZaQ2j/gQN8um4dtW3dvp2jBUHA0aLRKKGamhr+WdXVNYS279zJjoICattXso9oNEpMJBIhJhqN8nXU1NQQSkgIiElJSSEmGo0SWvXpp5z9o0u5+9bbSG/enJ7Z2TRv1oxTBg5k1aefsnb9eqqrawht37mTHQUF1LavZB9HC4KAUMn+Uv6R8iNHqKmpIaa6uppQEEQItWvThlnTppGcnMzuoj0sWLSIxmlpZGZkcKyqq2sIbd+5kx0FBdS2r2Qfof0HDjDykov52d330LnjSfTsls3Afv0Z2K8/u3bv5o9Tp/LPatemDbOmTSM5OZndRXtYsGgRjdPSyMzIoLZIJEJM6f791FZdXUNo+86d7CgooLZ9JfuQ4kWECDFZAwdQtHcvX6VdmzbMmjaN5ORkdhftYcGiRTROSyMzI4Oj7T9wgJGXXMzP7r6Hzh1Pome3bAb268/Afv3ZtXs3f5w6ldD0mTMpKSll9GU/omWLdDIzMsjMyKBXdjbZuYOoqKxk2aqVtGnVitycHEJTZszg+quuYvCAAYSWrVpJi2bNCdWpU4ejRSIRQkEkwtGCICBUuv8AtUWjUWIikQgx0WiUb0okEiFUp04djhaJRAgFkQhHC4KAUOn+A3xdSYmJvDJ1Kh07dODgoUMsWraM0IC+ffmu1URrCCUkJBCTkpJCqKamhpjpM2dSUlLK6Mt+RMsW6WRmZJCZkUGv7GyycwdRUVlJdXUNoe07d7KjoIDa9pXsIyYSiRBTun8/X+X68eNZe9M6hgzKpUunTvTp0ZM+PXpSt25drrr5JiRJkiQd3xKRJEmKU41TU+nbsyehF155mcLdewidffppdMvM4ozhI3hx1izWrt9A6LwzR/LI449TXFJCu9ZtWPTeeyQmJHDJNdfw/kcf8tn69bRKT+eKSy/hzXffobKqiksuuJA//O53VFRWktG3D5+tX08oEolw9dibKd2/n9DTjz5Kq/SWrPr0U452zhln8ItHf0vZ4cP06dGTNq1aEcr//HNiKisriYkEAbWt27CB04YOZXdRERdcMYpQWmoq0556mtDKNWvYf+AAJaWlpKWmcuE55/DZhg2Efnj++YSiNTUci73FxYS6dOpMzDlnnEFtU598isZpaTz65BN8uHAhrVu25L03/sqJaWn0yu7O2vXrWbdhA6cNHcruoiIuuGIUobTUVKY99TShlWvW8K/2g3PPIzk5mfUbNzL4rJGEfnLHnWRmZHCs1m3YwGlDh7K7qIgLrhhFKC01lWlPPU1o5Zo1hO665RaGDMrlnffe4877f0r9evX40zOTOWXgQLp37cqx+MG555GcnMz6jRsZfNZIQj+5404yMzI4Vus2bOC0oUPZXVTEBVeMIpSWmsq0p54mtHLNGo6W0bETt998E8nJyTz17LMsX7UKKd784NzzSE5OZv3GjQw+ayShn9xxJ5kZGRztrltuYcigXN557z3uvP+n1K9Xjz89M5lTBg6ke9euhFqlp/P0o78jdM0tYykpLeW0YcN46dnnOLFxY1qmp7N1+3aWrVjJhWefQ2j7zp3Mmfc+1191FTErVq+mVXo6oZYtWjA0N5f5CxYQBAHXjrqC0Io1q/ln7T9wgJLSUtJSU7nwnHP4bMMGQj88/3xC0Zoa/tVWr/2UUMsWLRiam8v8BQsIgoBrR11BaMWa1fyr9erenY4dOhDqM2wo+0pLGZqby5+nz+C79kVxMRkdO9GlUydCQRBw9mmncbRW6ek8/ejvCF1zy1hKSks5bdgwXnr2OU5s3JiW6els3b6ddRs2cNrQoewuKuKCK0YRSktNZdpTTxNauWYN/6wzR5zK2DFjKCjcxQVXjCIIAu6/627G3XgjPbp1o7aMjp24/eabSE5O5qlnn2X5qlVIkiRJ+m4lIkmSFKdOHz6cIAioqKzk3gceoKKyktCevUX87ue/4NQhQ6iTlMSLs17l9ptuommTJiz8+xzWbdhAt8xMEhMS2LlrFx8s/JjQE1OmcPrw4QwffAoL3/07u/fsoV/v3oRemz2bQ2VlvP/RR6xdt46umZnMmjadd9+fS1aXkzn3zDPZtnMHnyxdyn+KRgm1bNGCD978D3bu2kV2Vhah3UV7WLJiBTG7du/myJEjJCcn8+ZLL7O7qIjQuHvvZdvOHTz7wgyuv+oq+vfuzfNPPsn6/HzOPv10umVm8drs2RSXlBD629tvc9Vll3Hn2FvIzRlAUmIivXv04OtYsnw5oR7duvH3v7zGkSNHGNCvH7VVVlaSm5NDh3bteHHWLE5MS6NxaiqhTVu3Enr2hRlcf9VV9O/dm+effJL1+fmcffrpdMvM4rXZsykuKSH0m4ceokunzrRs0YLQuBtu5LIf/JAdBQXcOuEejkXJ/lJCnU86iYfvu4/Kikpuvu46vo5nX5jB9VddRf/evXn+ySdZn5/P2aefTrfMLF6bPZvikhJCe4uLyc3JoV+vXrRMT+fwl4fJzsoitHX7do5Fyf5SQp1POomH77uPyopKbr7uOo6WlJjIrOkzSEpKImby449z5EgFb835O3+cOpXQsy/M4PqrrqJ/7948/+STrM/P5+zTT6dbZhavzZ5NcUkJRxsz+kouvfAiQpFIhOtuvRUp3pTsLyXU+aSTePi++6isqOTm666jtr3FxeTm5NCvVy9apqdz+MvDZGdlEdq6fTuhgsJCTmrfnvTmzXlxyrO8/+EH9MruTujgoUMU79tHaNmqlcSs/HQNS1asIGbD559z8NAh1m/cyLtz53LGiBHMfPY5lixfTssWLejQrh2hSZMnExr9o8u4+Pzz6dihPaERp5zCG3kvErp67M2U7t9PNBrlb2+/zVWXXcadY28hN2cASYmJ9O7Rg2/K+o0beXfuXM4YMYKZzz7HkuXLadmiBR3atSM0afJkQqN/dBkXn38+HTu0JzTilFN4I+9FQlePvZnS/fv5Z5XuP0DMIw89zMZNn3PlpT+itnvH305uTn8ikQgxv//FLyk7XEbh7j3ceOcdtGvdhid+8wihtq3bEOrbuzd/ffFFQr9/+mnmffQR/6zFy5czqH8ON1xzLT2zs0ltlEpWly4craCwkJPatye9eXNenPIs73/4Ab2yuxM6eOgQxfv2EXr2hRlcf9VV9O/dm+effJL1+fmcffrpdMvM4rXZsykuKSEpMZFZ02eQlJREzOTHH+fIkQremvN3/jh1KqFNW7eQm5NDKCFIYNPWLZx56qmEtm7fTm1jRl/JpRdeRCgSiXDdrbciSZIk6bsVIEmSFKdOHz6c0NwP5lNRWUnM399/n1DdunUZlJNDSWkpN95xB19++SWNU1PJzcmhUcOGFJeUcM0tY6murib08eJF/Oqx3xNq37YtA/r1IyEhgU/XfcZPf/FzQtXV1dxwx+0U7d1Lz+xsJowbz7lnnklBYSFX3nAD5eXl1NauTRtyc3Jo2KABh8rKuG3CvVRXVxNTXV3NI5MmEurYoQO5OTnk5uRQv349QgWFhYy9+24qq6o4f+RZTBg3nm6ZWSxcspjb7/sJMb+ZNInPN28mlNOnD7179GDJihV8He9/9CFvvzeHUK/u3RnQrx+r166l7PBhjvZvv/oVm7dupWWLFtx9661ce8UVVFZVcdfP7mfhksWECgoLGXv33VRWVXH+yLOYMG483TKzWLhkMbff9xNiunftSm5ODnXr1iXUuWNHcnNy6N2jO8cq75VXeGfueyQkJDD2ujGMv+km1qz7jGg0yrEqKCxk7N13U1lVxfkjz2LCuPF0y8xi4ZLF3H7fT4jJe/VV3pozhzp16nDTtddy59hbSG3UiBdefonHnn6aY5H3yiu8M/c9EhISGHvdGMbfdBNr1n1GNBolJhIE5Obk0L93b2L69uxFbk4OHdt3IKagsJCxd99NZVUV5488iwnjxtMtM4uFSxZz+30/obY1az8jZvWna5G+T6JE+WfkvfIK78x9j4SEBMZeN4bxN93EmnWfEY1GOVreq6/y1pw51KlTh5uuvZY7x95CaqNGvPDySzz29NPE3HLP3Rw8dIh+vXoxYdx4Th8+nMI9e7hszHUcPHSI0IrVq6msqiK0fNUqDhw8yI6CAkJLV6wg5vaf3sf6jRupk5REbk4OHdq1I/Tok08yZ948Qu3btCE3J4cWzZoTata0Kbk5OeTm5JCYmEjMbyZN4vPNmwnl9OlD7x49WLJiBd+k2396H+s3bqROUhK5OTl0aNeO0KNPPsmcefMItW/ThtycHFo0a06oWdOm5ObkkJuTQ2JiIscif9PnPPjIrwlddM45TBg3nqTERLbt2MHRTu7cmUH9cxjYrz8xPbp1Y1D/HPr26kWoXr26DOqfw6D+ObRu2ZJQ49RUBvXPYVD/HJo1acqx+OPUqWzbuYPEhAQG9c8hq0sXFi5ZTG233HM3Bw8dol+vXkwYN57Thw+ncM8eLhtzHQcPHSJUUFjI2LvvprKqivNHnsWEcePplpnFwiWLuf2+nxCKBAG5OTn0792bmL49e5Gbk0PH9h2I+XzzZh7+7W+oqq7mh+efz4Rx4+nSqRNLVqzg+tvHU9uatZ8Rs/rTtUiSJEn67kX2VR2OIkmS9A2J7v+SjP79+C706dGTlJRkdhQUsH3nTo6W06cPiYmJbN2+nYLCQkJtWrXikgsupKamhs/yNzDvo4+oqKigtn69ejH8lCEcOnSIFWvWsHDJYmpLbdSIUT+8mHr16rJ52zbenTuXQ2VlxEyZOImLzjmHP0x9nukzZ3LGsOEk1Uki79VX+aK4mK+S1aULaampxKxYvYbDXx4m5qT27fnBuedSVVXN6rVref+jD4lGoxwtKTGRUZdcQpPGjflk6VIWLlnCwH79qKmJsnDJYo5FJBLh1CFDODkjg2UrV7F4+TJ6dssmJSWZJStWUFFRQej/socncDYXDB/3/zm/cxgzgzNmjLGMGfuSXSFEV6mQVLYoW9mXLNnF2EdMspSLXDUqQ4NQWYpKdmGE7AzDNGQWs2/MnOV5nf//dV7PPG5100XXfU3f99swDFo0bUr9R+rwW3w8uw/sJy09nTtVqVSJzi+8gM1m5+SZM+zavw+n04lb/Tp1KFG8OHfKyc3l+MmTuPhYrdSpVQu7w8GhqCjc6tepQ4nixYm5epUbCQm4NaxXjxZNmnLq3FkOHjlCk0aNMJvNHDh8mEcbNKRYMQ/OXriAR1EPqlauREZmJqfOnuXxxx7DbDZz8swZMrOycKlSqRKdX3gBm83OyTNn2LV/H06nkzs9UrMmTRo3xmQysWvvPmKvxfFnNaxXjxZNmnLq3FkOHjlCk0aNMJvNHDh8GMMwaN6kCXdzIyGBmKtXKahKpUp0fuEFbDY7J8+cYdf+fTidTu7msYaNsFjMHDl2DIfDgch/Cw8PDx5r2BCXqGPHyMvP5480rFePFk2acurcWQ4eOUKTRo0wm80cOHyYgh6pWZMmjRtjMpnYtXcfsdfiuJOXpxdPtmxB1cqVOXPuPAcOHyIvP5+CHmvYCA+PopyPjiY5JYU6tWvjU7IksXFxXPvtN9yKFi1Kz27d8PcrjcuPe/dy9MRx3IIrViSwfHnu5sjPP5Nvs+FWxGLhtW7dKO3ry6GjR/kpKormTZrgcDj5KeoI96v9M88Q8eEKklNSqNm0CXdTtGhRenbrhr9faVx+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 tw=A=>{let{uiContextPreview:e,setUiContextPreview:t,showContextPreview:r}=A;return r?(0,n.jsxs)("div",{className:"form-part context-panel",children:[(0,n.jsx)("h3",{children:"UI Context"}),e?(0,n.jsx)(ty,{uiContext:e,hideController:!0}):(0,n.jsxs)("div",{children:[(A=>{switch(A){case"finished":case"passed":case"success":case"connected":return(0,n.jsx)("span",{style:{color:"#00AD4B"},children:(0,n.jsx)(th.A,{})});case"finishedWithWarning":return(0,n.jsx)("span",{style:{color:"#f7bb05"},children:(0,n.jsx)(tE.A,{})});case"failed":case"closed":case"timedOut":case"interrupted":return(0,n.jsx)("span",{style:{color:"#FF0A0A"},children:(0,n.jsx)(tv.A,{})});case"pending":return(0,n.jsx)(tC.A,{});case"cancelled":case"skipped":return(0,n.jsx)(tb.A,{});case"running":return(0,n.jsx)(tk.A,{});default:return(0,n.jsx)(tS.A,{})}})("failed")," No UI context",(0,n.jsx)(eK.Ay,{type:"link",onClick:A=>{A.preventDefault(),t(tj)},children:"Load Demo"}),(0,n.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 tO=t(4291);let tN=A=>{let{className:e=""}=A,{config:t}=ek();return Object.keys(t||{}).length>=1?null:(0,n.jsxs)("div",{className:`env-config-reminder ${e}`,children:[(0,n.jsx)(tO.A,{className:"reminder-icon"}),(0,n.jsx)("span",{className:"reminder-text",children:"Please set up your environment variables before using."}),(0,n.jsx)(eS,{mode:"text",showTooltipWhenEmpty:!1})]})};var tK=t(6921),tB=t(2297),tT=t(7062),tM=t(5862),tz=t(1879),tD=t(1269);let tQ=A=>{var e,t;return(0,n.jsx)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},A),t=t={children:(0,n.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(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))},tZ=A=>{var e,t;return(0,n.jsxs)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"none",viewBox:"0 0 16 16"},A),t=t={children:[(0,n.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,n.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(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))};function tL(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}let tX=new Map,tJ=A=>{var e;return(e=function*(){if(!tX.has(A))return tp.sP.load(A).then(e=>{tX.set(A,e)})},function(){var A=this,t=arguments;return new Promise(function(r,o){var n=e.apply(A,t);function i(A){tL(n,r,o,i,a,"next",A)}function a(A){tL(n,r,o,i,a,"throw",A)}i(void 0)})})()};function tU(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function tF(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){tU(n,r,o,i,a,"next",A)}function a(A){tU(n,r,o,i,a,"throw",A)}i(void 0)})}}function tV(A,e,t){return e in A?Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):A[e]=t,A}function tq(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){tV(A,e,t[e])})}return A}let tG=A=>new Promise(e=>setTimeout(e,A)),tH="frame cancel (this is an error on purpose)";class tW{start(){let A=new MediaRecorder(this.canvas.captureStream(60),{mimeType:"video/webm"});return A.ondataavailable=A=>{A.data.size>0&&this.chunks.push(A.data)},A.onerror=A=>{console.error("MediaRecorder error:",A),eN.Ay.error("Video recording failed. Please try again."),this.recording=!1,this.mediaRecorder=null},this.mediaRecorder=A,this.recording=!0,this.mediaRecorder.start()}stop(){this.recording&&this.mediaRecorder?(this.mediaRecorder.onstop=()=>{if(0===this.chunks.length){console.error("No video data captured"),eN.Ay.error("Video export failed: No data captured.");return}let A=new Blob(this.chunks,{type:"video/webm"});if(0===A.size){console.error("Video blob is empty"),eN.Ay.error("Video export failed: Empty file.");return}let e=URL.createObjectURL(A),t=document.createElement("a");t.href=e,t.download="midscene_replay.webm",t.click(),URL.revokeObjectURL(e)},this.mediaRecorder.stop(),this.recording=!1,this.mediaRecorder=null):console.warn("not recording")}constructor(A){tV(this,"canvas",void 0),tV(this,"mediaRecorder",null),tV(this,"chunks",void 0),tV(this,"recording",!1),this.canvas=A,this.chunks=[]}}function tY(A){var e;let t,[r,o]=(0,i.useState)(""),[a,l]=(0,i.useState)(""),{autoZoom:s,setAutoZoom:c}=ec();(0,i.useEffect)(()=>{(null==A?void 0:A.autoZoom)!==void 0&&c(A.autoZoom)},[null==A?void 0:A.autoZoom,c]);let d=null==A?void 0:A.replayScripts,u=(null==A?void 0:A.imageWidth)||1920,p=(null==A?void 0:A.imageHeight)||1080,g=(null==A?void 0:A.fitMode)||"height",f=(0,i.useRef)((null==d||null==(e=d[0])?void 0:e.img)||null),m=(0,i.useRef)(null),y=(0,i.useMemo)(()=>new tp.lgM,[]),h=(0,i.useRef)(null),E=(0,i.useRef)(null),[v,C]=(0,i.useState)(0),b=()=>{C(Date.now())},k=(0,i.useMemo)(()=>new tp.mcf,[]),S=(0,i.useMemo)(()=>{let A=new tp.mcf;return A.zIndex=1,A},[]),I={left:0,top:0,width:u,pointerLeft:Math.round(u/2),pointerTop:Math.round(p/2)},[R,x]=(0,i.useState)(-1),P=(0,i.useRef)(!1);(0,i.useEffect)(()=>(P.current=!1,()=>{P.current=!0}),[]);let j=(0,i.useRef)(tq({},I)),w=(A,e)=>tF(function*(){let t=f.current;if(!t)return void console.warn("no image to update");let r=A||u,o=e||p;yield tF(function*(){if(y.screen.width!==r||y.screen.height!==o){if(y.renderer.resize(r,o),m.current){let A=r/o;m.current.style.setProperty("--canvas-aspect-ratio",A.toString())}j.current={left:0,top:0,width:r,pointerLeft:Math.round(r/2),pointerTop:Math.round(o/2)}}})(),tX.get(t)||(console.warn("image not loaded",t),yield tJ(t));let n=tX.get(t);if(!n)throw Error("texture not found");let i=tp.kxk.from(n);if(!i)throw Error("sprite not found");let a="main-img",l=k.getChildByLabel(a);l&&k.removeChild(l),i.label=a,i.zIndex=0,i.width=r,i.height=o,k.addChild(i)})(),O=A=>{var e,t;let r;E.current||(E.current=tp.kxk.from(eU),E.current.zIndex=3,E.current.anchor.set(.5,.5),E.current.scale.set(.5),E.current.label="spinning-pointer"),E.current.x=(null==(e=h.current)?void 0:e.x)||0,E.current.y=(null==(t=h.current)?void 0:t.y)||0,k.addChild(E.current);let o=!1,n=e=>{if(o)return;r||(r=e);let t=(Math.sin((e-r)/500-Math.PI/2)+1)/2*Math.PI*2;E.current&&(E.current.rotation=t),A(n)};return A(n),()=>{E.current&&k.removeChild(E.current),o=!0}},N=(A,e,t)=>tF(function*(){var r,o;tX.get(A)||(console.warn("image not loaded",A),yield tJ(A));let n=tX.get(A);if(!n)throw Error("texture not found");let i=tp.kxk.from(n),a=null==(r=h.current)?void 0:r.x,l=null==(o=h.current)?void 0:o.y;if("number"==typeof e&&(a=e),"number"==typeof t&&(l=t),void 0===a||void 0===l)return void console.warn("invalid pointer position",e,t);if(h.current){let A=k.getChildByLabel("pointer");A&&k.removeChild(A)}h.current=i,h.current.x=a,h.current.y=l,h.current.label="pointer",h.current.zIndex=2,k.addChild(h.current)})(),K=(A,e)=>{j.current=A;let t=e||y.screen.width||u,r=s?Math.max(1,t/A.width):1;k.scale.set(r),k.x=s?Math.round(0-A.left*r):0,k.y=s?Math.round(0-A.top*r):0;let o=k.getChildByLabel("pointer");o&&(o.scale.set(1/r),"number"==typeof A.pointerLeft&&"number"==typeof A.pointerTop&&(o.x=A.pointerLeft,o.y=A.pointerTop))},B=(A,e,t)=>tF(function*(){let r=y.screen.width||u,o=y.screen.height||p;if(!s){let o=tq({},j.current),n=o.pointerLeft,i=o.pointerTop,a=performance.now();if("number"!=typeof A.pointerLeft||"number"!=typeof A.pointerTop||A.pointerLeft===n&&A.pointerTop===i)return;yield new Promise(l=>{let s=c=>{var d,u;let p=c-a,g=Math.min(p/e,1);K((d=tq({},o),u=u={pointerLeft:n+(A.pointerLeft-n)*g,pointerTop:i+(A.pointerTop-i)*g},Object.getOwnPropertyDescriptors?Object.defineProperties(d,Object.getOwnPropertyDescriptors(u)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(u)).forEach(function(A){Object.defineProperty(d,A,Object.getOwnPropertyDescriptor(u,A))}),d),r),p<e?t(s):l()};t(s)});return}let n=tq({},j.current),i=n.left,a=n.top,l=n.pointerLeft,c=n.pointerTop,d=n.width/r,g=performance.now(),f="number"==typeof A.pointerLeft&&"number"==typeof A.pointerTop&&(A.pointerLeft!==l||A.pointerTop!==c),m=f?.375*e:0,h=e-m;yield new Promise(n=>{let s=u=>{let p=tq({},j.current),y=u-g;if(f)if(y<=m){let e=Math.min(y/m,1);p.pointerLeft=l+(A.pointerLeft-l)*e,p.pointerTop=c+(A.pointerTop-c)*e}else p.pointerLeft=A.pointerLeft,p.pointerTop=A.pointerTop;if(y>m){let e=Math.min((y-m)/h,1),t=d+(A.width/r-d)*e,n=r*t;p.width=n;let l=i+(A.left-i)*e,s=a+(A.top-a)*e,c=l+n-r,u=s+o*t-o;p.left=c>0?l+c:l,p.top=u>0?s+u:s}K(p,r),y<e?t(s):n()};t(s)})})(),T=function(A,e,t){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return new Promise(o=>{let n=performance.now(),i=a=>{let l=a-n,s=Math.min(l/e,1);A.alpha=0===r?1-s:s,l<e?t(i):o()};t(i)})},M=(A,e,t)=>tF(function*(){return T(A,e,t,0)})(),z=(A,e,t,r,o)=>tF(function*(){S.removeChildren();let n=[...A],i=n.length,a=0;yield new Promise(A=>{let l=performance.now(),s=c=>{var d;let u,p=c-l,g=Math.floor((0*(u=1-(d=Math.min(p/r,1)))*u*u+1.5*d*u*u+1.5*d*d*u+d*d*d)*i);for(;a<g;){let A=Math.floor(Math.random()*n.length),e=n.splice(A,1)[0];if(e){let[A]=tm(e.rect,e.content,"element");A.alpha=0,S.addChild(A),a++,T(A,80,o)}}if(p<r)o(s);else{for(;n.length>0;){let A=Math.floor(Math.random()*n.length),e=n.splice(A,1)[0],[t]=tm(e.rect,e.content,"element");t.alpha=1,S.addChild(t)}if(t){let[A]=tm(t,"Search Area","searchArea");A.alpha=1,S.addChild(A)}e.map(A=>{let[e]=tm(A.rect,A.content||"","highlight");e.alpha=1,S.addChild(e)}),A()}};o(s)})})(),[D,Q]=(0,i.useState)(!1),Z=(0,i.useRef)(null),L=(0,i.useRef)(null);(0,i.useEffect)(()=>(Promise.resolve(tF(function*(){if(yield tF(function*(){m.current&&d&&(yield y.init({width:u,height:p,background:0xf4f4f4,autoDensity:!0,antialias:!0}),m.current&&(m.current.appendChild(y.canvas),k.x=0,k.y=0,y.stage.addChild(k),S.x=0,S.y=0,k.addChild(S)))})(),m.current&&u&&p){let A=u/p;m.current.style.setProperty("--canvas-aspect-ratio",A.toString()),m.current.setAttribute("data-fit-mode",g);let e=m.current.closest(".player-container");e&&e.setAttribute("data-fit-mode",g)}b()})()),()=>{try{y.destroy(!0,{children:!0,texture:!0})}catch(A){console.warn("destroy failed",A)}}),[u,p,g]),(0,i.useEffect)(()=>{if(v){let A;return Promise.resolve(tF(function*(){let e;if(!y)throw Error("app is not initialized");if(!d)throw Error("scripts is required");let{frame:t,cancel:r,timeout:n}=(e=!1,{frame:A=>{if(e)throw Error(tH);requestAnimationFrame(()=>{if(e)throw Error(tH);A(performance.now())})},timeout:(A,t)=>{if(e)throw Error(tH);setTimeout(()=>{if(e)throw Error(tH);A()},t)},cancel:()=>{e=!0}});A=r,L.current=r;let i=d.filter(A=>!!A.img).map(A=>A.img);yield Promise.all([...i,eU,eJ].map(tJ)),S.removeChildren(),yield N(eJ,u/2,p/2),yield w(),yield K(tq({},I));let a=d.reduce((A,e)=>A+e.duration+(e.camera&&e.insightCameraDuration?e.insightCameraDuration:0),0),s=performance.now();x(0);let c=()=>{let A=Math.min((performance.now()-s)/a,1);if(x(A),A<1)return n(c,200)};for(let A in t(c),Z.current&&Z.current.start(),d){let e=d[A];if(o(e.title||""),l(e.subTitle||""),"sleep"===e.type)yield tG(e.duration);else if("insight"===e.type){if(!e.img)throw Error("img is required");f.current=e.img,yield w(e.imageWidth,e.imageHeight);let A=e.highlightElement?[e.highlightElement]:[];if(yield z([],A,e.searchArea,e.duration,t),e.camera){if(!e.insightCameraDuration)throw Error("insightCameraDuration is required");yield B(e.camera,e.insightCameraDuration,t)}}else if("clear-insight"===e.type)yield M(S,e.duration,t),S.removeChildren(),S.alpha=1;else if("img"===e.type)e.img&&e.img!==f.current&&(f.current=e.img,yield w(e.imageWidth,e.imageHeight)),e.camera?yield B(e.camera,e.duration,t):yield tG(e.duration);else if("pointer"===e.type){if(!e.img)throw Error("pointer img is required");yield N(e.img)}else if("spinning-pointer"===e.type){let A=O(t);yield tG(e.duration),A()}}Z.current&&(yield tG(1200),Z.current.stop(),Z.current=null,Q(!1))})().catch(A=>{if(console.error("player error",A),(null==A?void 0:A.message)===tH)return void console.log("Animation cancelled (expected behavior)");let e=!!Z.current;if(Z.current){try{Z.current.stop()}catch(A){console.error("Error stopping recorder:",A)}Z.current=null}Q(!1),e&&eN.Ay.error("Failed to export video. Please try again.")})),()=>{null==A||A(),L.current=null}}},[v]);let[X,J]=(0,i.useState)(!1),[U,F]=(0,i.useState)(!1),V=Math.round(100*R),q=1===R;(0,i.useEffect)(()=>{if(q){let A=A=>{" "===A.key&&b()};return window.addEventListener("keydown",A),()=>{window.removeEventListener("keydown",A)}}},[q]);let G=()=>{};return R<1?t=(0,n.jsx)(tK.A,{indicator:(0,n.jsx)(ex.A,{spin:!0,color:"#333"}),size:"default"}):X?(t=(0,n.jsx)(tK.A,{indicator:(0,n.jsx)(tB.A,{color:"#333"}),size:"default"}),G=()=>b()):t=(0,n.jsx)(tK.A,{indicator:(0,n.jsx)(tB.A,{color:"#333"}),size:"default"}),(0,n.jsxs)("div",{className:"player-container",children:[(0,n.jsx)("div",{className:"canvas-container",ref:m}),(0,n.jsx)("div",{className:"player-timeline-wrapper",children:(0,n.jsx)("div",{className:"player-timeline",children:(0,n.jsx)("div",{className:"player-timeline-progress",style:{width:`${V}%`,transition:0===R?"none":"0.3s"}})})}),(0,n.jsx)("div",{className:"player-tools-wrapper",children:(0,n.jsx)("div",{className:"player-tools",children:(0,n.jsxs)("div",{className:"player-control",children:[(0,n.jsxs)("div",{className:"status-text",children:[(0,n.jsx)("div",{className:"title",children:r}),(0,n.jsx)(A6.A,{title:a,children:(0,n.jsx)("div",{className:"subtitle",children:a})})]}),D?null:(0,n.jsx)("div",{className:"status-icon",onMouseEnter:()=>J(!0),onMouseLeave:()=>J(!1),onClick:G,children:t}),(null==A?void 0:A.reportFileContent)&&(null==A?void 0:A.canDownloadReport)!==!1?(0,n.jsx)(A6.A,{title:"Download Report",children:(0,n.jsx)("div",{className:"status-icon",onMouseEnter:()=>J(!0),onMouseLeave:()=>J(!1),onClick:()=>{let e,t,r;return e=new Blob([A.reportFileContent],{type:"text/html"}),t=URL.createObjectURL(e),void((r=document.createElement("a")).href=t,r.download="midscene_report.html",r.click())},children:(0,n.jsx)(tT.A,{color:"#333"})})}):null,(0,n.jsx)(A6.A,{title:D?"Generating...":"Export Video",children:(0,n.jsx)("div",{className:"status-icon",onClick:D?void 0:()=>tF(function*(){Z.current?console.warn("recorderSession exists"):y.canvas?(L.current&&(L.current(),L.current=null,yield new Promise(A=>setTimeout(A,100))),Z.current=new tW(y.canvas),Q(!0),b()):console.warn("canvas is not initialized")})(),style:{opacity:D?.5:1,cursor:D?"not-allowed":"pointer"},children:D?(0,n.jsx)(tK.A,{size:"default",percent:V}):(0,n.jsx)(tM.A,{})})}),(0,n.jsx)(tz.A,{trigger:["hover","click"],placement:"bottomRight",overlayStyle:{minWidth:"148px"},dropdownRender:A=>(0,n.jsx)("div",{style:{borderRadius:"8px",border:"1px solid rgba(0, 0, 0, 0.08)",backgroundColor:"#fff",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.08)",overflow:"hidden"},children:A}),menu:{style:{borderRadius:"8px",padding:0},items:[{key:"autoZoom",style:{height:"39px",margin:0,padding:"0 12px"},label:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",width:"100%",height:"39px"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[(0,n.jsx)(tQ,{style:{width:"16px",height:"16px"}}),(0,n.jsx)("span",{style:{fontSize:"12px",marginRight:"16px"},children:"Focus on cursor"})]}),(0,n.jsx)(tD.A,{size:"small",checked:s,onChange:A=>{c(A),b()},onClick:(A,e)=>{var t;return null==e||null==(t=e.stopPropagation)?void 0:t.call(e)}})]})}]},children:(0,n.jsx)("div",{className:"status-icon",onMouseEnter:()=>F(!0),onMouseLeave:()=>F(!1),style:{cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",opacity:U?1:.7,transition:"opacity 0.2s"},children:(0,n.jsx)(tZ,{style:{width:"16px",height:"16px"}})})})]})})})]})}let t_=A=>{let{result:e,loading:t,serverValid:r,serviceMode:o,replayScriptsInfo:i,replayCounter:a,loadingProgressText:l,verticalMode:s=!1,notReadyMessage:c,fitMode:d,autoZoom:u,actionType:p,canDownloadReport:g}=A,f="result-wrapper";s&&(f+=" vertical-mode-result"),i&&s&&(f+=" result-wrapper-compact");let m=tP,y=p&&AU.includes(p);if(r||"Server"!==o)if(t)m=(0,n.jsxs)("div",{className:"loading-container",children:[(0,n.jsx)(tK.A,{spinning:t,indicator:(0,n.jsx)(ex.A,{spin:!0})}),(0,n.jsx)("div",{className:"loading-progress-text loading-progress-text-progress",children:(0,n.jsx)(tI,{text:l,speed:3})})]});else if(null==e?void 0:e.error){let A=(0,n.jsx)("pre",{style:{color:"#ff4d4f",whiteSpace:"pre-wrap"},children:null==e?void 0:e.error});m=e.reportHTML||i?(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,n.jsxs)("div",{style:{flex:"0 0 auto",maxHeight:"40%",overflow:"auto"},children:[(0,n.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Error:"}),A]}),(0,n.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,n.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,n.jsx)(tY,{replayScripts:null==i?void 0:i.scripts,imageWidth:null==i?void 0:i.width,imageHeight:null==i?void 0:i.height,reportFileContent:e.reportHTML||null,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]}):A}else if(y&&(null==e?void 0:e.result)!==void 0&&i){let A="string"==typeof(null==e?void 0:e.result)?(0,n.jsx)("pre",{children:null==e?void 0:e.result}):(0,n.jsx)("pre",{children:JSON.stringify(null==e?void 0:e.result,null,2)}),t=(null==e?void 0:e.reportHTML)||null;m=(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,n.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,n.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),A]}),(0,n.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,n.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,n.jsx)(tY,{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 A=(null==e?void 0:e.reportHTML)||null;m=(0,n.jsx)(tY,{replayScripts:i.scripts,imageWidth:i.width,imageHeight:i.height,reportFileContent:A,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)}else if(y&&(null==e?void 0:e.result)!==void 0&&(null==e?void 0:e.reportHTML)){let A="string"==typeof(null==e?void 0:e.result)?(0,n.jsx)("pre",{children:null==e?void 0:e.result}):(0,n.jsx)("pre",{children:JSON.stringify(null==e?void 0:e.result,null,2)});m=(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"16px",height:"100%"},children:[(0,n.jsxs)("div",{style:{flex:"0 0 auto"},children:[(0,n.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Output:"}),A]}),(0,n.jsxs)("div",{style:{flex:"1 1 auto",minHeight:0},children:[(0,n.jsx)("div",{style:{fontWeight:"bold",marginBottom:"8px"},children:"Report:"}),(0,n.jsx)(tY,{reportFileContent:e.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a)]})]})}else y&&(null==e?void 0:e.result)!==void 0?m="string"==typeof(null==e?void 0:e.result)?(0,n.jsx)("pre",{children:null==e?void 0:e.result}):(0,n.jsx)("pre",{children:JSON.stringify(null==e?void 0:e.result,null,2)}):(null==e?void 0:e.reportHTML)?m=(0,n.jsx)(tY,{reportFileContent:e.reportHTML,fitMode:d,autoZoom:u,canDownloadReport:null!=g?g:"In-Browser"!==o},a):(null==e?void 0:e.result)!==void 0&&(m="string"==typeof(null==e?void 0:e.result)?(0,n.jsx)("pre",{children:null==e?void 0:e.result}):(0,n.jsx)("pre",{children:JSON.stringify(null==e?void 0:e.result,null,2)}));else m=tx(c);return(0,n.jsx)("div",{className:f,style:{height:"100%",display:"flex",flexDirection:"column",flex:"1 1 auto",justifyContent:"center"},children:m})},t$=A=>{var e,t;return(0,n.jsxs)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,fill:"none","aria-label":"Playground",viewBox:"0 0 20 20"},A),t=t={children:[(0,n.jsx)("rect",{width:20,height:20,fill:"#2B83FF",rx:10}),(0,n.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(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))};var t0=t(8460),t1=t(3896),t3=t(1631),t5=t(4665),t7={};t7.d=(A,e)=>{for(var t in e)t7.o(e,t)&&!t7.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},t7.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e),t7.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})};var t9={};function t2(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}t7.r(t9),t7.d(t9,{create:()=>eA.vt});let{create:t6}=t9,t8="midscene-prompt-history-v2",t4="midscene-last-selected-type",rA=t6((A,e)=>{let t;return{history:(t=localStorage.getItem(t8))?JSON.parse(t):{},lastSelectedType:localStorage.getItem(t4)||"aiAct",clearHistory:t=>{let r=t2({},e().history);delete r[t],A({history:r}),localStorage.setItem(t8,JSON.stringify(r))},addHistory:t=>{var r,o;let{type:n}=t,i=e().history,a=i[n]||[],l=JSON.stringify({prompt:t.prompt,params:t.params}),s=[t,...a.filter(A=>JSON.stringify({prompt:A.prompt,params:A.params})!==l)];s.length>10&&(s.length=10);let c=(r=t2({},i),o=o={[n]:s},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(o)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(o)).forEach(function(A){Object.defineProperty(r,A,Object.getOwnPropertyDescriptor(o,A))}),r);A({history:c}),localStorage.setItem(t8,JSON.stringify(c))},getHistoryForType:A=>e().history[A]||[],setLastSelectedType:e=>{A({lastSelectedType:e}),localStorage.setItem(t4,e)}}}),re="ZodOptional",rt="ZodDefault",rr="ZodNullable",ro="ZodObject",rn="midscene_location_field_flag",ri=A=>"object"==typeof A&&null!==A&&("shape"in A||"ZodObject"===A.type),ra=A=>{var e,t,r;if((null==(e=A._def)?void 0:e.typeName)===ro){let e;if(A._def.shape&&(e="function"==typeof A._def.shape?A._def.shape():A._def.shape),!e&&A.shape&&(e=A.shape),e&&rn in e)return!0;let r=(null==(t=A._def)?void 0:t.description)||A.description||"";if("string"==typeof r&&r.toLowerCase().includes("input field"))return!0}if("object"==typeof A&&null!==A){let e=A.description||(null==(r=A._def)?void 0:r.description)||"";if("string"==typeof e){let A=e.toLowerCase();if(A.includes("input field")||A.includes("element")||A.includes("locate"))return!0}if("ZodObject"===A.typeName||"ZodObject"===A.type)return"string"==typeof e&&e.toLowerCase().includes("input field")}return!1},rl=A=>{var e,t,r,o,n;let i=A,a=!1,l=!1;for(;(null==(e=i._def)?void 0:e.typeName)===re||(null==(t=i._def)?void 0:t.typeName)===rt||(null==(r=i._def)?void 0:r.typeName)===rr;)(null==(o=i._def)?void 0:o.typeName)===re&&(a=!0),(null==(n=i._def)?void 0:n.typeName)===rt&&(l=!0),i=i._def.innerType||i;return{actualField:i,isOptional:a,hasDefault:l}},rs=A=>{let e=A.startsWith("ai")?A.slice(2):A;if(e.startsWith("IOS"))return e.substring(3).replace(/([A-Z])/g," $1").replace(/^/,"IOS").trim();let t=e.replace(/([A-Z])/g," $1").trim(),r=t.split(" ");return r.length>3?r.slice(-3).join(" "):t};var rc=t(6356);let rd=A=>{var e,t;return(0,n.jsx)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:27,height:27,fill:"none",viewBox:"0 0 27 27"},A),t=t={children:(0,n.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(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))},ru=A=>{let e,{showDeepThinkOption:t=!1,enableTracking:r=!1,showDataExtractionOptions:o=!1,hideDomAndScreenshotOptions:i=!1,deviceType:a}=A,l=ek(A=>A.forceSameTabNavigation),s=ek(A=>A.setForceSameTabNavigation),c=ek(A=>A.deepThink),d=ek(A=>A.setDeepThink),u=ek(A=>A.screenshotIncluded),p=ek(A=>A.setScreenshotIncluded),g=ek(A=>A.domIncluded),f=ek(A=>A.setDomIncluded),m=ek(A=>A.imeStrategy),y=ek(A=>A.setImeStrategy),h=ek(A=>A.autoDismissKeyboard),E=ek(A=>A.setAutoDismissKeyboard),v=ek(A=>A.keyboardDismissStrategy),C=ek(A=>A.setKeyboardDismissStrategy),b=ek(A=>A.alwaysRefreshScreenInfo),k=ek(A=>A.setAlwaysRefreshScreenInfo);if(!r&&!t&&!o&&"android"!==a&&"ios"!==a)return null;let S=(e=[],r&&e.push({label:(0,n.jsx)(rc.A,{onChange:A=>s(A.target.checked),checked:l,children:"limit popup to current tab"}),key:"track-config"}),t&&e.push({label:(0,n.jsx)(rc.A,{onChange:A=>{d(A.target.checked)},checked:c,children:"deep think"}),key:"deep-think-config"}),o&&!i&&(e.push({label:(0,n.jsx)(rc.A,{onChange:A=>{p(A.target.checked)},checked:u,children:"include screenshot in request"}),key:"screenshot-included-config"}),e.push({label:(0,n.jsxs)("div",{style:{padding:"4px 0"},children:[(0,n.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"include DOM info in request"}),(0,n.jsxs)(t5.A.Group,{size:"small",value:g,onChange:A=>f(A.target.value),children:[(0,n.jsx)(t5.A,{value:!1,children:"Off"}),(0,n.jsx)(t5.A,{value:!0,children:"All"}),(0,n.jsx)(t5.A,{value:"visible-only",children:"Visible only"})]})]}),key:"dom-included-config"})),"android"===a&&(e.push({label:(0,n.jsxs)("div",{style:{padding:"4px 0"},children:[(0,n.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"IME strategy"}),(0,n.jsxs)(t5.A.Group,{size:"small",value:m,onChange:A=>y(A.target.value),children:[(0,n.jsx)(t5.A,{value:"always-yadb",children:"Always YADB"}),(0,n.jsx)(t5.A,{value:"yadb-for-non-ascii",children:"YADB for non-ASCII"})]})]}),key:"ime-strategy-config"}),e.push({label:(0,n.jsx)(rc.A,{onChange:A=>E(A.target.checked),checked:h,children:eD}),key:"auto-dismiss-keyboard-config"}),e.push({label:(0,n.jsxs)("div",{style:{padding:"4px 0"},children:[(0,n.jsx)("div",{style:{marginBottom:"4px",fontSize:"14px"},children:"Keyboard dismiss strategy"}),(0,n.jsxs)(t5.A.Group,{size:"small",value:v,onChange:A=>C(A.target.value),children:[(0,n.jsx)(t5.A,{value:"esc-first",children:"ESC first"}),(0,n.jsx)(t5.A,{value:"back-first",children:"Back first"})]})]}),key:"keyboard-dismiss-strategy-config"}),e.push({label:(0,n.jsx)(rc.A,{onChange:A=>k(A.target.checked),checked:b,children:"Always refresh screen info"}),key:"always-refresh-screen-info-config"})),"ios"===a&&e.push({label:(0,n.jsx)(rc.A,{onChange:A=>E(A.target.checked),checked:h,children:eD}),key:"auto-dismiss-keyboard-config"}),e);return(0,n.jsx)("div",{className:"selector-trigger",children:(0,n.jsx)(tz.A,{menu:{items:S},trigger:["click"],children:(0,n.jsx)(rd,{width:24,height:24})})})};var rp=t(9076),rg=t(5932);let{TextArea:rf}=A4.A,rm=(A,e)=>`${A}${e?" (Optional)":""}`,ry=A=>{let{name:e,label:t,isRequired:r,marginBottom:o,placeholder:i}=A,a=i||`Enter ${e}`;return(0,n.jsx)(eO.A.Item,{name:["params",e],label:rm(t,!r),rules:r?[{required:!0,message:`Please input ${e}`}]:[],style:{marginBottom:o},colon:!1,children:(0,n.jsx)(A4.A,{placeholder:a})},e)},rh=A=>{let{name:e,label:t,isRequired:r,marginBottom:o,placeholder:i}=A,a=i||`Describe the ${e}, use natural language`;return(0,n.jsx)(eO.A.Item,{name:["params",e],label:rm(t,!r),rules:r?[{required:!0,message:`The ${e} is required`}]:[],style:{marginBottom:o},colon:!1,children:(0,n.jsx)(rf,{rows:2,placeholder:a})},e)},rE=A=>{var e;let{name:t,label:r,fieldSchema:o,isRequired:i,marginBottom:a,placeholder:l}=A,s=((null==(e=o._def)?void 0:e.values)||[]).map(A=>({value:A,label:A.charAt(0).toUpperCase()+A.slice(1)}));return(0,n.jsx)(eO.A.Item,{name:["params",t],label:r,rules:i?[{required:!0,message:`Please select ${t}`}]:[],style:{marginBottom:a},colon:!1,children:(0,n.jsx)(rp.A,{placeholder:l||`Select ${t}`,options:s})},t)},rv=A=>{let{name:e,label:t,isRequired:r,marginBottom:o,placeholder:i}=A,a=500*("distance"===e),l=i&&Number(i)||a,s="distance"===e?1e4:void 0;return(0,n.jsx)(eO.A.Item,{name:["params",e],label:`${t}${"distance"===e?" (px)":""}`,rules:r?[{required:!0,message:`Please input ${e}`},{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"===e?1:void 0,marginBottom:o},colon:!1,children:(0,n.jsx)(rg.A,{placeholder:l.toString(),min:0,max:s,step:"distance"===e?10:1,style:{width:"100%"}})},e)},rC=A=>{let{name:e,label:t,isRequired:r,marginBottom:o,placeholder:i}=A;return(0,n.jsx)(eO.A.Item,{name:["params",e],label:rm(t,!r),rules:r?[{required:!0,message:`Please select ${e}`}]:[],style:{marginBottom:o},colon:!1,children:(0,n.jsx)(rp.A,{placeholder:i||`Select ${e}`,options:[{value:!0,label:"True"},{value:!1,label:"False"}]})},e)},rb=A=>{var e,t;return(0,n.jsx)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:18,height:16,fill:"none",viewBox:"0 0 18 16"},A),t=t={children:(0,n.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(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))},rk=A=>{var e,t;return(0,n.jsxs)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:25,height:25,fill:"none",viewBox:"0 0 25 25"},A),t=t={children:[(0,n.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,n.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(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))},rS=A=>{var e,t;return(0,n.jsxs)("svg",(e=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({xmlns:"http://www.w3.org/2000/svg",width:19,height:19,fill:"none",viewBox:"0 0 19 19"},A),t=t={children:[(0,n.jsxs)("g",{stroke:"currentColor",strokeLinejoin:"round",strokeOpacity:.65,strokeWidth:1.5,clipPath:"url(#magnifying-glass_svg__a)",children:[(0,n.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,n.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,n.jsx)("defs",{children:(0,n.jsx)("clipPath",{id:"magnifying-glass_svg__a",children:(0,n.jsx)("path",{fill:"#fff",d:"M.522.04h18v18h-18z"})})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(t)).forEach(function(A){Object.defineProperty(e,A,Object.getOwnPropertyDescriptor(t,A))}),e))},{Text:rI}=A9.A,rR=A=>{let{onSelect:e,history:t,currentType:r}=A,[o,a]=(0,i.useState)(!1),[l,s]=(0,i.useState)(""),c=rA(A=>A.clearHistory),d=(0,i.useRef)(null),u=(0,i.useMemo)(()=>{let A=Date.now(),e=A-6048e5,r=A-31536e6,o=t.filter(A=>A.prompt.toLowerCase().includes(l.toLowerCase()));return{recent7Days:o.filter(A=>A.timestamp>=e),recent1Year:o.filter(A=>A.timestamp<e&&A.timestamp>=r),older:o.filter(A=>A.timestamp<r)}},[t,l]);(0,i.useEffect)(()=>{if(!o)return;let A=A=>{d.current&&!d.current.contains(A.target)&&a(!1)},e=setTimeout(()=>{document.addEventListener("click",A)},100);return()=>{clearTimeout(e),document.removeEventListener("click",A)}},[o]);let p=(A,t)=>0===t.length?null:(0,n.jsxs)("div",{className:"history-group",children:[(0,n.jsx)("div",{className:"history-group-title",children:A}),t.map((A,t)=>(0,n.jsx)("div",{className:"history-item",onClick:()=>{e(A),a(!1)},children:A.prompt},`${A.timestamp}-${t}`))]},A);return(0,n.jsxs)("div",{className:"history-selector-wrapper",children:[(0,n.jsx)("div",{className:"selector-trigger",onClick:()=>a(!0),children:(0,n.jsx)(rk,{width:24,height:24})}),o&&(0,n.jsx)("div",{className:"history-modal-overlay",ref:d,children:(0,n.jsxs)("div",{className:"history-modal-container",children:[(0,n.jsxs)("div",{className:"history-modal-header",children:[(0,n.jsxs)(rI,{strong:!0,style:{fontSize:"16px"},children:["History (",t.length,")"]}),(0,n.jsx)(eK.Ay,{size:"small",type:"text",icon:(0,n.jsx)(rb,{width:16,height:16}),onClick:()=>a(!1),className:"close-button"})]}),(0,n.jsx)("div",{className:"history-search-section",children:(0,n.jsxs)("div",{className:"search-input-wrapper",children:[(0,n.jsx)(A4.A,{placeholder:"Search",value:l,onChange:A=>s(A.target.value),prefix:(0,n.jsx)(rS,{width:18,height:18}),className:"search-input",allowClear:!0}),(0,n.jsx)(eK.Ay,{type:"link",onClick:()=>{c(r),s(""),a(!1)},className:"clear-button",disabled:0===t.length,children:"Clear"})]})}),(0,n.jsx)("div",{className:"history-content",children:0===t.length?(0,n.jsx)("div",{className:"no-results",children:(0,n.jsx)(rI,{type:"secondary",children:"No history record"})}):(0,n.jsxs)(n.Fragment,{children:[p("Last 7 days",u.recent7Days),p("Last 1 year",u.recent1Year),p("Earlier",u.older),l&&0===u.recent7Days.length&&0===u.recent1Year.length&&0===u.older.length&&(0,n.jsx)("div",{className:"no-results",children:(0,n.jsx)(rI,{type:"secondary",children:"No matching history record"})})]})})]})})]})};function rx(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}let{TextArea:rP}=A4.A,rj=A=>{let e,t,r,o,a,l,{runButtonEnabled:s,form:c,serviceMode:d,selectedType:u,dryMode:p,stoppable:g,loading:f,onRun:m,onStop:y,clearPromptAfterRun:h=!0,actionSpace:E,hideDomAndScreenshotOptions:v=!1,deviceType:C}=A,[b,k]=(0,i.useState)(!1),[S,I]=(0,i.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,i.useRef)(null),P=(0,i.useRef)(null),j=eO.A.useWatch("params",c),w=(0,i.useRef)(null),O=rA(A=>A.history),N=rA(A=>A.lastSelectedType),K=rA(A=>A.addHistory),B=rA(A=>A.setLastSelectedType),T=(0,i.useMemo)(()=>O[u]||[],[O,u]),M=(0,i.useMemo)(()=>{if(E){let A=E.find(A=>A.interfaceAlias===u||A.name===u);return!!(null==A?void 0:A.paramSchema)&&(!ri(A.paramSchema)||Object.keys(A.paramSchema.shape||{}).length>0)}return!1},[u,E]),z=(0,i.useMemo)(()=>{if(E&&E.length>0){let A=E.find(A=>A.interfaceAlias===u||A.name===u);if(A){if(A.paramSchema&&ri(A.paramSchema)){let e=A.paramSchema.shape||{};return Object.keys(e).some(A=>{let{isOptional:t}=rl(e[A]);return!t})}return!!A.paramSchema}}return!0},[u,E]),D=(0,i.useMemo)(()=>["aiQuery","aiBoolean","aiNumber","aiString","aiAsk","aiAssert"].includes(u),[u]),Q=(0,i.useMemo)(()=>{if("aiLocate"===u)return!0;if(E){let A=E.find(A=>A.interfaceAlias===u||A.name===u);if((null==A?void 0:A.paramSchema)&&ri(A.paramSchema)){let e=A.paramSchema.shape||{};return Object.keys(e).some(A=>{let{actualField:t}=rl(e[A]);return ra(t)})}}return!1},[u,E]),Z=(0,i.useMemo)(()=>{let A=D&&!v,e="android"===C||"ios"===C;return"In-Browser-Extension"===d||Q||A||e},[d,Q,D,v,C]),L=(0,i.useMemo)(()=>{let A=Object.keys(eQ);if(!E||0===E.length)return A;let e=E.map(A=>A.interfaceAlias||A.name),t=new Set;return A.forEach(A=>{let r=eQ[A];(null==r?void 0:r.group)==="extraction"||(null==r?void 0:r.group)==="validation"?t.add(A):e.includes(A)&&t.add(A)}),e.forEach(A=>{t.add(A)}),Array.from(t)},[E]),X=(0,i.useCallback)(()=>{if(!M||!E)return{};let A=E.find(A=>A.interfaceAlias===u||A.name===u);if((null==A?void 0:A.paramSchema)&&ri(A.paramSchema)){let e={},t=A.paramSchema.shape||{};return Object.keys(t).forEach(A=>{let r=(A=>{var e;let t=A;for(;null==(e=t._def)?void 0:e.innerType;){if(t._def.typeName===rt&&t._def.defaultValue)return t._def.defaultValue();t=t._def.innerType}})(t[A]);void 0!==r&&(e[A]=r)}),e}return{}},[u,M,E]);(0,i.useEffect)(()=>{!c.getFieldValue("type")&&N&&c.setFieldValue("type",N)},[c,N]),(0,i.useEffect)(()=>{u&&u!==N&&B(u)},[u,N,B]);let J=(0,i.useCallback)(()=>{let A=P.current;if(!A)return;let e=null,t=A.querySelector(".ant-radio-button-wrapper-checked"),r=A.querySelector(".more-apis-button.selected-from-dropdown");if(t?e=t:r&&(e=r),e){let t=A.getBoundingClientRect(),r=e.getBoundingClientRect(),o=r.left-t.left+A.scrollLeft,n=r.width,i=t.width;A.scrollTo({left:Math.max(0,o-(i-n)/2),behavior:"smooth"})}},[]);(0,i.useEffect)(()=>{let A=T[0];if(!A||!w.current||A.timestamp!==w.current.timestamp)if(A)c.setFieldsValue({type:A.type,prompt:A.prompt||"",params:A.params}),I(A.prompt||""),w.current=A;else{let A=X();c.setFieldsValue({prompt:"",params:A}),I(""),w.current=null}},[u,T,c,X]),(0,i.useEffect)(()=>{let A=setTimeout(()=>{J()},100);return()=>clearTimeout(A)},[u,J]);let U=eO.A.useWatch("prompt",c);(0,i.useEffect)(()=>{U!==S&&I(U||"")},[U,S]);let F=(0,i.useCallback)(A=>{c.setFieldsValue({prompt:A.prompt,type:A.type,params:A.params}),I(A.prompt)},[c]),V=(0,i.useCallback)(A=>{I(A.target.value)},[]),q=(0,i.useMemo)(()=>{if(!M||!E)return!1;let A=E.find(A=>A.interfaceAlias===u||A.name===u);return!!((null==A?void 0:A.paramSchema)&&ri(A.paramSchema))&&1===Object.keys(A.paramSchema.shape||{}).length},[u,M,E]),G=(0,i.useMemo)(()=>((A,e,t,r,o,n)=>{if(!A)return!1;if(!(()=>{if(r){let A=r.find(A=>A.interfaceAlias===o||A.name===o);if(A){if(!A.paramSchema)return!1;if("object"==typeof A.paramSchema&&"shape"in A.paramSchema)return Object.keys(A.paramSchema.shape||{}).length>0}}return!0})())return!0;if(e){let A=t||{},e=null==r?void 0:r.find(A=>A.interfaceAlias===o||A.name===o);if((null==e?void 0:e.paramSchema)&&ri(e.paramSchema)){let t=e.paramSchema.shape||{};return Object.keys(t).every(e=>{let{isOptional:r}=rl(t[e]),o=A[e];return r||void 0!==o&&""!==o&&null!==o})}return!0}return n.trim().length>0})(s,!!M,j,E,u,S),[s,M,u,E,S,j]),H=(0,i.useCallback)(()=>{let A=c.getFieldsValue(),e="";if(M&&A.params&&E){let t=E.find(A=>A.interfaceAlias===u||A.name===u);if((null==t?void 0:t.paramSchema)&&ri(t.paramSchema)){let r="",o=[],n=t.paramSchema.shape||{};Object.keys(n).forEach(e=>{var t;let i=null==(t=A.params)?void 0:t[e];if(null!=i&&""!==i){let{actualField:A}=rl(n[e]);ra(A)?r=String(i):"distance"===e?o.push(`${i}`):o.push(String(i))}});let i=o.join(" ");e=r?`${r} - ${i}`:i}else e=A.prompt||""}else e=A.prompt||"";let t={type:A.type,prompt:e,params:A.params,timestamp:Date.now()};if(K(t),m(),h)if(w.current=t,I(""),M){let A=X();c.setFieldValue("params",A)}else c.setFieldValue("prompt","")},[c,K,m,M,u,h,E,X]),W=(0,i.useCallback)(A=>{"Enter"===A.key&&A.metaKey&&G?(H(),A.preventDefault(),A.stopPropagation()):"Enter"===A.key&&setTimeout(()=>{if(x.current){var A;let e=null==(A=x.current.resizableTextArea)?void 0:A.textArea;if(e){let A=e.selectionStart,t=e.value.lastIndexOf("\n");(-1===t||A>t)&&(e.scrollTop=e.scrollHeight)}}},0)},[H,G]),Y=(0,i.useCallback)(A=>{"Enter"===A.key&&A.metaKey&&G&&(H(),A.preventDefault(),A.stopPropagation())},[H,G]),_=(0,i.useCallback)(()=>{if(!M)return null;if(E){let A=E.find(A=>A.interfaceAlias===u||A.name===u);if((null==A?void 0:A.paramSchema)&&ri(A.paramSchema)){let e=A.paramSchema.shape||{},t=Object.keys(e);if(1===t.length){let A=t[0],{actualField:r}=rl(e[A]),o=ra(r),i=(()=>{var e,t;if(null==(e=r._def)?void 0:e.description)return r._def.description;if(r.description)return r.description;if(E){let e=E.find(A=>A.interfaceAlias===u||A.name===u);if((null==e?void 0:e.paramSchema)&&"object"==typeof e.paramSchema&&"shape"in e.paramSchema){let r=(e.paramSchema.shape||{})[A];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"===A?"Enter key name or text to type":"value"===A?"Enter text to input":`Enter ${A}`})();return(0,n.jsx)(eO.A.Item,{name:["params",A],style:{margin:0},children:(0,n.jsx)(A4.A.TextArea,{className:"main-side-console-input-textarea",rows:3,placeholder:i,autoFocus:!0,onKeyDown:Y})})}let r=[],o=t.sort((A,t)=>{let r=e[A],o=e[t],{isOptional:n}=rl(r),{isOptional:i}=rl(o);return!n&&i?-1:n&&!i?1:0});if(o.forEach((A,t)=>{var i,a,l;let{actualField:s,isOptional:c}=rl(e[A]),d=ra(s),p=A.charAt(0).toUpperCase()+A.slice(1),g=12*(t!==o.length-1),f=(()=>{var e,t;if(null==(e=s._def)?void 0:e.description)return s._def.description;if(s.description)return s.description;if(E){let e=E.find(A=>A.interfaceAlias===u||A.name===u);if((null==e?void 0:e.paramSchema)&&"object"==typeof e.paramSchema&&"shape"in e.paramSchema){let r=(e.paramSchema.shape||{})[A];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:A,label:p,fieldSchema:s,isRequired:!c,marginBottom:g,placeholder:f};d?r.push((0,n.jsx)(rh,rx({},m),A)):(null==(i=s._def)?void 0:i.typeName)==="ZodEnum"?r.push((0,n.jsx)(rE,rx({},m),A)):(null==(a=s._def)?void 0:a.typeName)==="ZodNumber"?r.push((0,n.jsx)(rv,rx({},m),A)):(null==(l=s._def)?void 0:l.typeName)==="ZodBoolean"?r.push((0,n.jsx)(rC,rx({},m),A)):r.push((0,n.jsx)(ry,rx({},m),A))}),"aiScroll"===u){let A=r.find(A=>i.isValidElement(A)&&"direction"===A.props.name),e=r.find(A=>i.isValidElement(A)&&"distance"===A.props.name),t=r.filter(A=>i.isValidElement(A)&&"direction"!==A.props.name&&"distance"!==A.props.name);if(A&&e)return(0,n.jsxs)("div",{className:"structured-params",children:[(0,n.jsxs)("div",{style:{display:"flex",gap:12,marginBottom:12},children:[A,e]}),t]})}return(0,n.jsx)("div",{className:"structured-params",children:r})}}return null},[u,M,E,Y]),$=(0,i.useCallback)(()=>{k(!0)},[]),AA=(0,i.useCallback)(()=>{k(!1)},[]),Ae=(0,i.useCallback)(()=>{let A=A=>(0,n.jsx)(eK.Ay,{type:"primary",icon:(0,n.jsx)(t0.A,{}),style:{borderRadius:20,zIndex:999},onClick:H,disabled:!G,loading:f,children:A});return p?"aiAct"===u?(0,n.jsx)(A6.A,{title:"Start executing until some interaction actions need to be performed. You can see the process of planning and locating.",children:A("Dry Run")}):A("Run"):g?(0,n.jsx)(eK.Ay,{icon:(0,n.jsx)(t1.A,{}),onClick:y,style:{borderRadius:20,zIndex:999},children:"Stop"}):A("Run")},[p,f,H,y,G,u,g]);return(0,n.jsxs)("div",{className:"prompt-input-wrapper",children:[(0,n.jsxs)("div",{className:"mode-radio-group-wrapper",children:[(0,n.jsxs)("div",{className:"mode-radio-group",ref:P,children:[(0,n.jsx)(eO.A.Item,{name:"type",style:{margin:0},children:(0,n.jsx)(t5.A.Group,{buttonStyle:"solid",disabled:!s,children:eZ.map(A=>{var e;return(0,n.jsx)(A6.A,{title:(null==(e=eQ[A])?void 0:e.title)||"",children:(0,n.jsx)(t5.A.Button,{value:A,children:rs(A)})},A)})})}),(0,n.jsx)(tz.A,{menu:(e=L.filter(A=>!eZ.includes(A)),t=[],(r=e.filter(A=>{var e;return(null==(e=eQ[A])?void 0:e.group)==="interaction"})).length>0&&t.push({key:"interaction-group",type:"group",label:"Interaction APIs",children:r.map(A=>{var e;return{key:A,label:rs(A),title:(null==(e=eQ[A])?void 0:e.title)||"",onClick:()=>{c.setFieldValue("type",A)}}})}),(o=e.filter(A=>{var e;return(null==(e=eQ[A])?void 0:e.group)==="extraction"})).length>0&&t.push({key:"extraction-group",type:"group",label:"Data Extraction APIs",children:o.map(A=>{var e;return{key:A,label:rs(A),title:(null==(e=eQ[A])?void 0:e.title)||"",onClick:()=>{c.setFieldValue("type",A)}}})}),(a=e.filter(A=>{var e;return(null==(e=eQ[A])?void 0:e.group)==="validation"})).length>0&&t.push({key:"validation-group",type:"group",label:"Validation APIs",children:a.map(A=>{var e;return{key:A,label:rs(A),title:(null==(e=eQ[A])?void 0:e.title)||"",onClick:()=>{c.setFieldValue("type",A)}}})}),(l=e.filter(A=>!eQ[A])).length>0&&t.push({key:"device-specific-group",type:"group",label:"Device-Specific APIs",children:l.map(A=>({key:A,label:rs(A),title:"",onClick:()=>{c.setFieldValue("type",A)}}))}),{items:t}),placement:"bottomLeft",trigger:["click"],disabled:!s,overlayClassName:"more-apis-dropdown",children:(0,n.jsxs)(eK.Ay,{className:`more-apis-button ${!eZ.includes(u)?"selected-from-dropdown":""}`,children:[u&&!eZ.includes(u)?rs(u):"more",(0,n.jsx)(t3.A,{style:{fontSize:"10px",marginLeft:"2px"}})]})})]}),(0,n.jsxs)("div",{className:"action-icons",children:[Z&&(0,n.jsx)("div",{className:b?"settings-wrapper settings-wrapper-hover":"settings-wrapper",onMouseEnter:$,onMouseLeave:AA,children:(0,n.jsx)(ru,{enableTracking:"In-Browser-Extension"===d,showDeepThinkOption:Q,showDataExtractionOptions:D,hideDomAndScreenshotOptions:v,deviceType:C})}),(0,n.jsx)(rR,{onSelect:F,history:T,currentType:u})]})]}),(0,n.jsxs)("div",{className:`main-side-console-input ${!s?"disabled":""} ${f?"loading":""}`,children:[z?M?q?_():(0,n.jsx)("div",{className:"structured-params-container",children:_()}):(0,n.jsx)(eO.A.Item,{name:"prompt",style:{margin:0},children:(0,n.jsx)(rP,{className:"main-side-console-input-textarea",disabled:!s,rows:3,placeholder:R,autoFocus:!0,onKeyDown:W,onChange:V,ref:x})}):(0,n.jsxs)("div",{className:"no-input-method",style:{padding:"20px",textAlign:"center",color:"#666",fontSize:"14px"},children:['Click "Run" to execute ',rs(u)]}),(0,n.jsx)("div",{className:"form-controller-wrapper",children:Ae()})]})]})};function rw(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function rO(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){rw(n,r,o,i,a,"next",A)}function a(A){rw(n,r,o,i,a,"throw",A)}i(void 0)})}}let{Text:rN}=A9.A;function rK(A){let{error:e}=A;if(!e)return null;let t=e.replace(/^(Error:\s*)+/,"Error: ");return(0,n.jsx)(ew.A,{message:(0,n.jsx)("span",{style:{color:"#ff4d4f"},children:t}),type:"error",showIcon:!0})}function rB(A){let{playgroundSDK:e,storage:t,contextProvider:r,config:o={},branding:a={},className:l="",dryMode:s=!1,showContextPreview:c=!0}=A,[d]=eO.A.useForm(),{config:u}=ek(),[p,g]=(0,i.useState)(!1);(0,i.useEffect)(()=>{d.setFieldsValue({type:eZ["0"]})},[d]),(0,i.useEffect)(()=>{rO(function*(){if(e&&"function"==typeof e.checkStatus)try{yield e.checkStatus(),g(!0)}catch(A){console.warn("Failed to initialize SDK, using default namespace:",A),g(!0)}else g(!0)})()},[e]);let f=(0,i.useMemo)(()=>{if(t)return t;if(!p)return null;let A=o.storageNamespace||(e&&e.id&&"string"==typeof e.id?`agent-${e.id}`:"playground-default"),r=tl();return console.log(`Using ${r} storage for namespace: ${A}`),ta(r,A)},[t,p,o.storageNamespace,e]),{loading:m,setLoading:y,infoList:h,setInfoList:E,actionSpace:v,actionSpaceLoading:C,uiContextPreview:b,setUiContextPreview:k,showScrollToBottomButton:S,verticalMode:I,replayCounter:R,setReplayCounter:x,infoListRef:P,currentRunningIdRef:j,interruptedFlagRef:w,clearInfoList:O,handleScrollToBottom:N}=function(A,e,t){let[r,o]=(0,i.useState)(!1),[n,a]=(0,i.useState)([]),[l,s]=(0,i.useState)([]),[c,d]=(0,i.useState)(!0),[u,p]=(0,i.useState)(),[g,f]=(0,i.useState)(!1),[m,y]=(0,i.useState)(!1),[h,E]=(0,i.useState)(0),v=(0,i.useRef)(null),C=(0,i.useRef)(null),b=(0,i.useRef)({}),k=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let A=()=>tc(function*(){let A=tu(td({},eL),{id:"welcome",timestamp:new Date});if(null==e?void 0:e.loadMessages)try{let t=yield e.loadMessages();0===t.length&&(t=yield tc(function*(){let A=ta(tl(),"playground-default");try{if(null==A?void 0:A.loadMessages){let t=yield A.loadMessages();if(t.length>1)return console.log("Found data in old namespace, migrating..."),(null==e?void 0:e.saveMessages)&&(yield e.saveMessages(t)),A.clearMessages&&(yield A.clearMessages()),t}}catch(A){console.debug("No data found in old namespace:",A)}return[]})()),t.some(A=>"welcome"===A.id)?a(t):a([A,...t])}catch(e){console.error("Failed to load messages:",e),a([A])}else a([A])})();e&&!k.current?(k.current=!0,A()):e||0!==n.length||A()},[e]),(0,i.useEffect)(()=>{(null==e?void 0:e.saveMessages)&&n.length>1&&e.saveMessages(n).catch(A=>{A instanceof DOMException&&"QuotaExceededError"===A.name?console.warn("Storage quota exceeded - some messages may not be saved persistently"):console.error("Failed to save messages:",A)})},[n,e]),(0,i.useEffect)(()=>{(null==t?void 0:t.getUIContext)&&!u&&t.getUIContext().then(A=>p(A)).catch(A=>{console.error("Failed to get UI context:",A)})},[t,u]),(0,i.useEffect)(()=>{tc(function*(){d(!0);try{var e;if(!A)return void s([]);let r=u||(yield null==t||null==(e=t.getUIContext)?void 0:e.call(t)),o=yield A.getActionSpace(r);s(o||[])}catch(A){console.error("Failed to load action space:",A),s([])}finally{d(!1)}})()},[A,u,t]),(0,i.useEffect)(()=>{y(window.innerWidth<750);let A=()=>{y(window.innerWidth<750)};return window.addEventListener("resize",A),()=>window.removeEventListener("resize",A)},[]);let S=(0,i.useCallback)(()=>{setTimeout(()=>{v.current&&(v.current.scrollTop=v.current.scrollHeight)},100)},[]),I=(0,i.useCallback)(()=>{if(v.current){let{scrollTop:A,scrollHeight:e,clientHeight:t}=v.current;f(!(A+t>=e-10))}},[]),R=(0,i.useCallback)(()=>{v.current&&(v.current.scrollTo({top:v.current.scrollHeight,behavior:"smooth"}),f(!1))},[]);(0,i.useEffect)(()=>{n.length>0&&S()},[n,S]),(0,i.useEffect)(()=>{let A=v.current;if(A)return A.addEventListener("scroll",I),I(),()=>{A.removeEventListener("scroll",I)}},[I]);let x=(0,i.useCallback)(()=>tc(function*(){if(a([tu(td({},eL),{id:"welcome",timestamp:new Date})]),null==e?void 0:e.clearMessages)try{yield e.clearMessages()}catch(A){console.error("Failed to clear stored messages:",A)}})(),[e]),P=(0,i.useCallback)(()=>tc(function*(){if(null==t?void 0:t.refreshContext)try{let A=yield t.refreshContext();p(A)}catch(A){console.error("Failed to refresh context:",A)}})(),[t]);return{loading:r,setLoading:o,infoList:n,setInfoList:a,actionSpace:l,actionSpaceLoading:c,uiContextPreview:u,setUiContextPreview:p,showScrollToBottomButton:g,verticalMode:m,replayCounter:h,setReplayCounter:E,infoListRef:v,currentRunningIdRef:C,interruptedFlagRef:b,clearInfoList:x,refreshContext:P,handleScrollToBottom:R,scrollToBottom:S}}(e,f,r),{handleRun:K,handleStop:B,canStop:T}=function(A,e,t,r,o,n,a,l,s,c,d){let{deepThink:u,screenshotIncluded:p,domIncluded:g}=ek(),f=(0,i.useCallback)(t=>eq(function*(){if(!A)return void console.warn("PlaygroundSDK is not available");let r=Date.now(),i=t.type,f=`${t.type}: ${t.prompt||JSON.stringify(t.params)}`,m={id:`user-${Date.now()}`,type:"user",content:f,timestamp:new Date};n(A=>[...A,m]),o(!0);let y=eG({},eX),h={id:`system-${r}`,type:"system",content:"",timestamp:new Date,loading:!0,loadingProgressText:""};n(A=>[...A,h]);try{if(c.current=r,d.current[r]=!1,A.onDumpUpdate&&A.onDumpUpdate((A,e)=>{var t;if(d.current[r]||!(null==e||null==(t=e.tasks)?void 0:t.length))return;let o=e.tasks.map((A,e)=>{var t;let o,n;return{id:`progress-${r}-task-${e}`,type:"progress",content:(o=eT(A),(n=ez(A))?`${o} - ${n}`:o),timestamp:new Date((null==(t=A.timing)?void 0:t.start)||Date.now()),result:A.error?{error:eW(A.error),result:null}:void 0}});n(A=>{let e=A.findIndex(A=>A.id===`system-${r}`);if(-1===e)return A;let t=A.filter(A=>!("progress"===A.type&&A.id.startsWith(`progress-${r}-`)));return[...t.slice(0,e+1),...o,...t.slice(e+1)]})}),y.result=yield A.executeAction(i,t,{requestId:r.toString(),deepThink:u,screenshotIncluded:p,domIncluded:g}),"object"==typeof y.result&&null!==y.result){let A=y.result;A.dump&&(y.dump=A.dump),A.reportHTML&&(y.reportHTML=A.reportHTML),A.error&&(y.error=eW(A.error)),void 0!==A.result&&(y.result=A.result)}}catch(A){y.error=eW(A),console.error("Playground execution error:",A),"object"==typeof A&&null!==A&&(A.dump&&(y.dump=A.dump),A.reportHTML&&(y.reportHTML=A.reportHTML))}if(d.current[r])return;o(!1),c.current=null;let E=null,v=a;if((null==y?void 0:y.dump)&&y.dump.tasks&&Array.isArray(y.dump.tasks)){var C;let A,e=(A=>{var e,t,r;let o,n;if(!A)return console.warn("[allScriptsFromDump] dump is empty"),{scripts:[],modelBriefs:[]};let i=Array.isArray(A.executions)?A:{sdkVersion:"",groupName:"Execution",modelBriefs:[],executions:[A]},a=new Set,l=i.sdkVersion,s=new Set;if(null==(e=i.executions)||e.filter(Boolean).forEach(A=>{A.tasks.forEach(A=>{var e,t;if(null==(t=A.uiContext)||null==(e=t.size)?void 0:e.width){let e=A.uiContext.size.width,t=A.uiContext.size.height;o||(o=e,n=t),a.add(`${e}x${t}`)}})}),!o||!n)return console.warn("width or height is missing in dump file"),{scripts:[],sdkVersion:l,modelBriefs:[]};let c=[];null==(t=i.executions)||t.filter(Boolean).forEach(A=>{let e=((A,e,t,r)=>{let o;if(!A||!A.tasks.length||0===t||0===r)return null;let n=[];if(-1===e)n=A.tasks;else{let t=A.tasks.findIndex(A=>A===e);if(-1===t)return console.error("task not found, cannot generate animation scripts"),null;if(t===A.tasks.length-1)return null;for(let e=t;e<A.tasks.length&&(!(e>t)||"Planning"!==A.tasks[e].type);e++)n.push(A.tasks[e])}if(0===n.length)return null;let i=eF({left:0,top:0,width:t,height:r},t,r),a=[],l=!1;n.length;let s="",c=!1;return n.forEach((A,e)=>{var n,d,u,p,g,f,m,y,h,E,v,C,b,k,S,I,R,x,P,j,w,O,N,K,B,T;if(!c){if(0===e&&(s=ez(A)),"Planning"===A.type){let e=[];if("Plan"===A.subType){let t=(null==(d=A.output)?void 0:d.actions)||[];if(t.length>0){let A=t[0],r=["locate","start","end"];if(A.param)for(let t in r.forEach(t=>{A.param[t]&&"object"==typeof A.param[t]&&"center"in(A.param[t]||{})&&e.push(A.param[t])}),A.param)!r.includes(t)&&"object"==typeof A.param[t]&&"center"in(A.param[t]||{})&&e.push(A.param[t])}}else"Locate"===A.subType&&(null==(n=A.output)?void 0:n.element)&&(e=[A.output.element]);let i=eT(A),s=ez(A),c=A.uiContext;if(null==c?void 0:c.screenshotBase64){let n=(null==(u=c.size)?void 0:u.width)||t,d=(null==(p=c.size)?void 0:p.height)||r;a.push({type:"img",img:c.screenshotBase64,duration:300,title:i,subTitle:s,imageWidth:n,imageHeight:d}),e.forEach(e=>{var u,p,g,f,m,y;m=function(A){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},r=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(t).filter(function(A){return Object.getOwnPropertyDescriptor(t,A).enumerable}))),r.forEach(function(e){var r;r=t[e],e in A?Object.defineProperty(A,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):A[e]=r})}return A}({},eF(e.rect,n,d)),y=y={pointerLeft:e.center[0],pointerTop:e.center[1]},Object.getOwnPropertyDescriptors?Object.defineProperties(m,Object.getOwnPropertyDescriptors(y)):(function(A,e){var t=Object.keys(A);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(A);t.push.apply(t,r)}return t})(Object(y)).forEach(function(A){Object.defineProperty(m,A,Object.getOwnPropertyDescriptor(y,A))}),o=m,a.push({type:"insight",img:c.screenshotBase64,context:c,camera:o,highlightElement:e,searchArea:null==(p=A.log)||null==(u=p.taskInfo)?void 0:u.searchArea,duration:400,insightCameraDuration:800,title:i,subTitle:e.description||s,imageWidth:(null==(g=c.size)?void 0:g.width)||t,imageHeight:(null==(f=c.size)?void 0:f.height)||r}),l=!0})}A.recorder&&A.recorder.length>0&&a.push({type:"img",img:null==(f=A.recorder)||null==(g=f[0])?void 0:g.screenshot,duration:900,title:eT(A),subTitle:ez(A),imageWidth:(null==(y=A.uiContext)||null==(m=y.size)?void 0:m.width)||t,imageHeight:(null==(E=A.uiContext)||null==(h=E.size)?void 0:h.height)||r})}else if("Action Space"===A.type){let e=eT(A),o=ez(A);a.push({type:"spinning-pointer",duration:300,title:e,subTitle:o}),l&&(a.push({type:"clear-insight",duration:200,title:e,subTitle:o}),l=!1),a.push({type:"pointer",img:eJ,duration:0,title:e,subTitle:o}),a.push({type:"img",img:null==(C=A.recorder)||null==(v=C[0])?void 0:v.screenshot,duration:500,camera:"Sleep"===A.subType?i:void 0,title:e,subTitle:o,imageWidth:(null==(k=A.uiContext)||null==(b=k.size)?void 0:b.width)||t,imageHeight:(null==(I=A.uiContext)||null==(S=I.size)?void 0:S.height)||r})}else{let e=eT(A),o=ez(A),n=null==(x=A.recorder)||null==(R=x[A.recorder.length-1])?void 0:R.screenshot;n&&a.push({type:"img",img:n,duration:900,camera:i,title:e,subTitle:o,imageWidth:(null==(j=A.uiContext)||null==(P=j.size)?void 0:P.width)||t,imageHeight:(null==(O=A.uiContext)||null==(w=O.size)?void 0:w.height)||r})}if("finished"!==A.status){c=!0;let e=eT(A),o=A.errorMessage||"unknown error",n=o.indexOf("NOT_IMPLEMENTED_AS_DESIGNED")>0?"Further actions cannot be performed in the current environment":o;a.push({type:"img",img:A.recorder&&A.recorder.length>0?A.recorder[A.recorder.length-1].screenshot:"",camera:i,duration:900,title:e,subTitle:n,imageWidth:(null==(K=A.uiContext)||null==(N=K.size)?void 0:N.width)||t,imageHeight:(null==(T=A.uiContext)||null==(B=T.size)?void 0:B.height)||r});return}}}),c||a.push({title:"Done",subTitle:s,type:"img",duration:200,camera:i}),a})(A,-1,o,n);e&&c.push(...e),A.tasks.forEach(A=>{if(A.usage){let{model_name:e,model_description:t,intent:r}=A.usage;r&&e&&s.add(t?`${r}/${e}(${t})`:`${r}/${e}`)}})});let d=c.filter((A,e)=>e===c.length-1||"Done"!==A.title),u=(null==(r=i.modelBriefs)?void 0:r.length)?i.modelBriefs:[],p=(()=>{var A;let e=u.length?u:[...s];if(!e.length)return e;let t=null==(A=e[0])?void 0:A.split("/",2)[1];return t&&e.slice(1).every(A=>(null==A?void 0:A.split("/",2)[1])===t)?[t]:e})();return{scripts:d,width:o,height:n,sdkVersion:l,modelBriefs:p}})((C=y.dump,A=new Set,(null==C?void 0:C.tasks)&&Array.isArray(C.tasks)?C.tasks.forEach(e=>{if(e.usage){let{model_name:t,model_description:r,intent:o}=e.usage;o&&t&&A.add(r?`${o}/${t}(${r})`:`${o}/${t}`)}}):console.warn("[wrapExecutionDumpForReplay] Invalid dump structure:",C),{sdkVersion:"",groupName:"Playground Execution",modelBriefs:[...A],executions:[C]}));l(A=>A+1),E=e,v=a+1}n(A=>A.map(A=>A.id===`system-${r}`?eH(eG({},A),{content:"",loading:!1,loadingProgressText:""}):A));let b={id:`result-${r}`,type:"result",content:"Execution result",timestamp:new Date,result:y,loading:!1,replayScriptsInfo:E,replayCounter:v,loadingProgressText:"",verticalMode:s,actionType:i};if(n(A=>[...A,b]),null==e?void 0:e.saveResult)try{yield e.saveResult(b.id,b)}catch(A){console.error("Failed to save result:",A)}let k={id:`separator-${r}`,type:"separator",content:"New Session",timestamp:new Date};n(A=>[...A,k])})(),[A,e,t,o,n,a,l,s,c,d,u,p,g]),m=(0,i.useCallback)(()=>eq(function*(){let e=c.current;if(e&&A&&A.cancelExecution)try{let t=yield A.cancelExecution(e.toString()),r=null;if(t)r=t;else if(A.getCurrentExecutionData)try{r=yield A.getCurrentExecutionData()}catch(A){console.error("Failed to get execution data before stop:",A)}if(d.current[e]=!0,o(!1),A.onProgressUpdate&&A.onProgressUpdate(()=>{}),A.onDumpUpdate&&A.onDumpUpdate(()=>{}),n(A=>A.map(A=>A.id===`system-${e}`?eH(eG({},A),{content:"",loading:!1,loadingProgressText:""}):A)),r&&(r.dump||r.reportHTML)){let A={id:`stop-result-${e}`,type:"result",content:"Execution stopped by user",timestamp:new Date,result:{result:null,dump:r.dump,reportHTML:r.reportHTML,error:null},loading:!1,verticalMode:s,replayCounter:a};n(e=>[...e,A])}else{let A={id:`stop-${e}`,type:"system",content:"Operation stopped",timestamp:new Date,loading:!1};n(e=>[...e,A])}let i={id:`separator-${e}`,type:"separator",content:"New Session",timestamp:new Date};n(A=>[...A,i])}catch(A){console.error("Failed to stop execution:",A)}})(),[A,c,d,o,n,s,a]);return{handleRun:f,handleStop:m,canStop:r&&!!c.current&&!!A&&!!A.cancelExecution}}(e,f,v,m,y,E,R,x,I,j,w);(0,i.useEffect)(()=>{(null==e?void 0:e.overrideConfig)&&u&&e.overrideConfig(u).catch(A=>{console.error("Failed to override SDK config:",A)})},[e,u]);let M=(0,i.useCallback)(()=>rO(function*(){try{let A=d.getFieldsValue();yield K(A)}catch(A){eN.Ay.error((null==A?void 0:A.message)||"Execution failed")}})(),[d,K]),z=Object.keys(u||{}).length>=1,D=o.serverMode||!s&&!C&&z,Q=eO.A.useWatch("type",d),Z=(0,i.useMemo)(()=>e&&"function"==typeof e.getServiceMode?e.getServiceMode():"Server",[e]),L=c&&!1!==o.showContextPreview,X=o.layout||"vertical",J=!1!==o.showVersionInfo,U=o.deviceType;return(0,n.jsx)("div",{className:`playground-container ${X}-mode ${l}`.trim(),children:(0,n.jsxs)(eO.A,{form:d,onFinish:M,className:"command-form",children:[L&&(0,n.jsx)("div",{className:"context-preview-section",children:(0,n.jsx)(tw,{uiContextPreview:b,setUiContextPreview:k,showContextPreview:L})}),(0,n.jsxs)("div",{className:"middle-dialog-area",children:[h.length>1&&(0,n.jsx)("div",{className:"clear-button-container",children:(0,n.jsx)(eK.Ay,{size:"small",icon:(0,n.jsx)(eR.A,{}),onClick:O,type:"text",className:"clear-button"})}),(0,n.jsx)("div",{ref:P,className:"info-list-container",children:(0,n.jsx)(eB.A,{itemLayout:"vertical",dataSource:h,renderItem:A=>{var e,t,r,o;let i,l,s,c,d,u;return(0,n.jsx)(eB.A.Item,{className:"list-item",children:"user"===A.type?(0,n.jsx)("div",{className:"user-message-container",children:(0,n.jsx)("div",{className:"user-message-bubble",children:A.content})}):"progress"===A.type?(0,n.jsx)("div",{children:(l=null==(e=(i=A.content.split(" - "))[0])?void 0:e.trim(),s=i.slice(1).join(" - ").trim(),c=h.findIndex(e=>e.id===A.id),d=h.slice(c+1).some(A=>"progress"===A.type),u=m&&!d,(0,n.jsxs)(n.Fragment,{children:[l&&(0,n.jsxs)("span",{className:"progress-action-item",children:[l,(0,n.jsx)("span",{className:`progress-status-icon ${u?"loading":(null==(t=A.result)?void 0:t.error)?"error":"completed"}`,children:u?(0,n.jsx)(ex.A,{spin:!0}):(null==(r=A.result)?void 0:r.error)?"✗":"✓"})]}),s&&(0,n.jsx)("div",{children:(0,n.jsx)(tI,{text:s,className:"progress-description",disabled:!u})}),(null==(o=A.result)?void 0:o.error)&&(0,n.jsx)(rK,{error:A.result.error})]}))}):"separator"===A.type?(0,n.jsxs)("div",{className:"new-conversation-separator",children:[(0,n.jsx)("div",{className:"separator-line"}),(0,n.jsx)("div",{className:"separator-text-container",children:(0,n.jsx)(rN,{type:"secondary",className:"separator-text",children:A.content})})]}):(0,n.jsxs)("div",{className:"system-message-container",children:[(0,n.jsxs)("div",{className:"system-message-header",children:[(0,n.jsx)(eP.A,{component:a.icon||t$,style:{fontSize:20}}),(0,n.jsx)("span",{className:"system-message-title",children:a.title||"Playground"})]}),(A.content||A.result)&&(0,n.jsx)("div",{className:"system-message-content",children:"result"===A.type?(0,n.jsx)(t_,{result:A.result||null,loading:A.loading||!1,serverValid:!0,serviceMode:Z,replayScriptsInfo:A.replayScriptsInfo||null,replayCounter:A.replayCounter||0,loadingProgressText:A.loadingProgressText||"",verticalMode:A.verticalMode||!1,fitMode:"width",actionType:A.actionType}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"system-message-text",children:A.content}),A.loading&&A.loadingProgressText&&(0,n.jsx)("div",{className:"loading-progress-text",children:(0,n.jsx)("span",{children:A.loadingProgressText})})]})})]})},A.id)}})}),S&&!1!==o.enableScrollToBottom&&(0,n.jsx)(eK.Ay,{className:"scroll-to-bottom-button",type:"primary",shape:"circle",icon:(0,n.jsx)(ej.A,{}),onClick:N,size:"large"})]}),(0,n.jsxs)("div",{className:"bottom-input-section",children:[o.showEnvConfigReminder?(0,n.jsx)(tN,{}):null,(0,n.jsx)(rj,{runButtonEnabled:D,form:d,serviceMode:Z,selectedType:Q,dryMode:s,stoppable:T,loading:m,onRun:M,onStop:B,actionSpace:v,deviceType:U})]}),J&&a.version&&(0,n.jsx)("div",{className:"version-info-section",children:(0,n.jsxs)("span",{className:"version-text",children:["Midscene.js version: ",a.version]})})]})})}var rT=t(1352),rM=t(955);function rz(A,e,t,r,o,n,i){try{var a=A[n](i),l=a.value}catch(A){t(A);return}a.done?e(l):Promise.resolve(l).then(r,o)}function rD(A){return function(){var e=this,t=arguments;return new Promise(function(r,o){var n=A.apply(e,t);function i(A){rz(n,r,o,i,a,"next",A)}function a(A){rz(n,r,o,i,a,"throw",A)}i(void 0)})}}function rQ(A){let{getScreenshot:e,getInterfaceInfo:t,serverOnline:r,isUserOperating:o=!1}=A,[a,l]=(0,i.useState)(null),[s,c]=(0,i.useState)(!1),[d,u]=(0,i.useState)(null),[p,g]=(0,i.useState)(0),[f,m]=(0,i.useState)(null),y=(0,i.useRef)(null),h=(0,i.useRef)(!1),E=(0,i.useCallback)(function(){let A=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return rD(function*(){if(r){c(!0),A&&u(null);try{let A=yield e();if(console.log("Screenshot API response:",A),null==A?void 0:A.screenshot){let e=A.screenshot.toString().trim();e?(l(e),u(null),g(Date.now())):u("Empty screenshot data received")}else u("No screenshot data in response")}catch(A){console.error("Screenshot fetch error:",A),u(A instanceof Error?A.message:"Failed to fetch screenshot")}finally{c(!1)}}})()},[e,r]),v=(0,i.useCallback)(()=>rD(function*(){if(r&&t)try{let A=yield t();A&&m(A)}catch(A){console.error("Interface info fetch error:",A)}})(),[t,r]),C=(0,i.useCallback)(()=>{y.current&&clearInterval(y.current),console.log("Starting screenshot polling (5s interval)"),y.current=setInterval(()=>{!h.current&&r&&E(!1)},5e3)},[E,r]),b=(0,i.useCallback)(()=>{y.current&&(console.log("Stopping screenshot polling"),clearInterval(y.current),y.current=null)},[]),k=(0,i.useCallback)(()=>{console.log("Pausing screenshot polling"),h.current=!0},[]),S=(0,i.useCallback)(()=>{console.log("Resuming screenshot polling"),h.current=!1},[]),I=(0,i.useCallback)(()=>{E(!0)},[E]);return((0,i.useEffect)(()=>{if(!r){l(null),u(null),m(null),b();return}return E(!1),v(),C(),()=>{b()}},[r,C,b,E,v]),(0,i.useEffect)(()=>{r&&(o?k():(S(),E(!1)))},[o,k,S,E,r]),(0,i.useEffect)(()=>()=>{b()},[b]),r)?s&&!a?(0,n.jsxs)("div",{className:"screenshot-viewer loading",children:[(0,n.jsx)(tK.A,{size:"large"}),(0,n.jsx)("p",{children:"Loading screenshot..."})]}):d&&!a?(0,n.jsx)("div",{className:"screenshot-viewer error",children:(0,n.jsxs)("div",{className:"screenshot-placeholder",children:[(0,n.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,n.jsx)("p",{className:"error-message",children:d})]})}):(0,n.jsxs)("div",{className:"screenshot-viewer",children:[(0,n.jsx)("div",{className:"screenshot-header",children:(0,n.jsx)("div",{className:"screenshot-title",children:(0,n.jsx)("h3",{children:(null==f?void 0:f.type)?f.type:"Device Name"})})}),(0,n.jsxs)("div",{className:"screenshot-container",children:[(0,n.jsxs)("div",{className:"screenshot-overlay",children:[(0,n.jsxs)("div",{className:"device-name-overlay",children:["Device Name",(0,n.jsx)(A6.A,{title:null==f?void 0:f.description,children:(0,n.jsx)(rT.A,{size:16,className:"info-icon"})})]}),(0,n.jsxs)("div",{className:"screenshot-controls",children:[p>0&&(0,n.jsxs)("span",{className:"last-update-time",children:["Last updated ",(A=>{if(!A)return"";let e=Math.floor((Date.now()-A)/1e3);return e<60?`${e}s ago`:e<3600?`${Math.floor(e/60)}m ago`:new Date(A).toLocaleTimeString()})(p)]}),(0,n.jsx)(A6.A,{title:"Refresh screenshot",children:(0,n.jsx)(eK.Ay,{icon:(0,n.jsx)(rM.A,{}),onClick:I,loading:s,size:"small"})}),o&&(0,n.jsxs)("span",{className:"operation-indicator",children:[(0,n.jsx)(tK.A,{size:"small"})," Operating..."]})]})]}),(0,n.jsx)("div",{className:"screenshot-content",children:a?(0,n.jsx)("img",{src:a.startsWith("data:image/")?a:`data:image/png;base64,${a}`,alt:"Device Screenshot",className:"screenshot-image",onLoad:()=>console.log("Screenshot image loaded successfully"),onError:A=>{console.error("Screenshot image load error:",A),console.error("Screenshot data preview:",a.substring(0,100)),u("Failed to load screenshot image")}}):(0,n.jsx)("div",{className:"screenshot-placeholder",children:(0,n.jsx)("p",{children:"No screenshot available"})})})]})]}):(0,n.jsx)("div",{className:"screenshot-viewer offline",children:(0,n.jsxs)("div",{className:"screenshot-placeholder",children:[(0,n.jsx)("h3",{children:"\uD83D\uDCF1 Screen Preview"}),(0,n.jsx)("p",{children:"Start the playground server to see real-time screenshots"})]})})}var rZ=t(6453),rL=t(2770),rX=t(4458);let rJ=t.p+"static/svg/server-offline-foreground.6e892230.svg",{Content:rU}=rZ.A,rF=document.getElementById("root");if(!rF)throw Error("Root element not found");(0,a.createRoot)(rF).render((0,n.jsx)(i.StrictMode,{children:(0,n.jsx)(function(){let[A,e]=(0,i.useState)(!1),[t,r]=(0,i.useState)(!1),[o,a]=(0,i.useState)(!1),[l,s]=(0,i.useState)("web"),c=(0,i.useMemo)(()=>{let A=new A_({type:"remote-execution",serverUrl:""});return console.log("\uD83C\uDF10 Connecting to playground server:",""),A.onProgressUpdate(A=>{r(!!A)}),A},[]);return((0,i.useEffect)(()=>{let A=async()=>{try{let A=await c.checkStatus();if(e(A),A)try{let A=await c.getInterfaceInfo();if(null==A?void 0:A.type){let e=A.type.toLowerCase();("android"===e||"ios"===e||"web"===e)&&s(e)}}catch(A){console.warn("Failed to get interface info:",A)}}catch(A){console.error("Failed to check server status:",A),e(!1)}};A();let t=setInterval(A,5e3);return()=>clearInterval(t)},[c]),(0,i.useEffect)(()=>{let A=()=>{a(window.innerWidth<=1024)};return A(),window.addEventListener("resize",A),()=>window.removeEventListener("resize",A)},[]),A)?(0,n.jsx)(rL.Ay,{theme:A1(),children:(0,n.jsx)(rZ.A,{className:"app-container playground-container",children:(0,n.jsx)(rU,{className:"app-content",children:(0,n.jsxs)(rX.YZ,{autoSaveId:"playground-layout",direction:o?"vertical":"horizontal",children:[(0,n.jsx)(rX.Zk,{defaultSize:o?67:32,maxSize:o?85:60,minSize:o?67:25,className:"app-panel left-panel",children:(0,n.jsxs)("div",{className:"panel-content left-panel-content",children:[(0,n.jsx)("div",{className:"playground-panel-header",children:(0,n.jsxs)("div",{className:"header-row",children:[(0,n.jsx)(A3,{}),(0,n.jsx)(eI,{showTooltipWhenEmpty:!1,showModelName:!1})]})}),(0,n.jsx)("div",{className:"playground-panel-playground",children:(0,n.jsx)(rB,{playgroundSDK:c,config:{showContextPreview:!1,layout:"vertical",showVersionInfo:!0,enableScrollToBottom:!0,serverMode:!0,showEnvConfigReminder:!0,deviceType:l},branding:{title:"Playground",version:"1.0.4-beta-20251223105123.0"},className:"playground-container"})})]})}),(0,n.jsx)(rX.TW,{className:`panel-resize-handle ${o?"vertical":"horizontal"}`}),(0,n.jsx)(rX.Zk,{className:"app-panel right-panel",children:(0,n.jsx)("div",{className:"panel-content right-panel-content",children:(0,n.jsx)(rQ,{getScreenshot:()=>c.getScreenshot(),getInterfaceInfo:()=>c.getInterfaceInfo(),serverOnline:A,isUserOperating:t})})})]})})})}):(0,n.jsx)(rL.Ay,{theme:A1(),children:(0,n.jsx)("div",{className:"server-offline-container",children:(0,n.jsxs)("div",{className:"server-offline-message",children:[(0,n.jsx)(A3,{}),(0,n.jsxs)("div",{className:"server-offline-content",children:[(0,n.jsxs)("div",{className:"server-offline-icon",children:[(0,n.jsx)("img",{src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAwIiBoZWlnaHQ9IjI4MyIgdmlld0JveD0iMCAwIDQwMCAyODMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cmVjdCB5PSIyODMiIHdpZHRoPSIyODMiIGhlaWdodD0iNDAwIiB0cmFuc2Zvcm09InJvdGF0ZSgtOTAgMCAyODMpIiBmaWxsPSJ1cmwoI3BhdHRlcm4wXzQ2MjRfMjg5NikiIGZpbGwtb3BhY2l0eT0iMC43Ii8+CjxyZWN0IHdpZHRoPSI0MDAiIGhlaWdodD0iMjgzIiBmaWxsPSJ1cmwoI3BhaW50MF9yYWRpYWxfNDYyNF8yODk2KSIvPgo8ZGVmcz4KPHJhZGlhbEdyYWRpZW50IGlkPSJwYWludDBfcmFkaWFsXzQ2MjRfMjg5NiIgY3g9IjAiIGN5PSIwIiByPSIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgyMDAgMTQxLjUpIHJvdGF0ZSg5MCkgc2NhbGUoMTE1LjUgMTYzLjI1MSkiPgo8c3RvcCBzdG9wLWNvbG9yPSIjRjJGNEY3IiBzdG9wLW9wYWNpdHk9IjAiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjRjJGNEY3Ii8+CjwvcmFkaWFsR3JhZGllbnQ+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMF80NjI0XzI4OTYiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09Im1hdHJpeCgxOCAwIDAgMTggMCAyODMpIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIiB2aWV3Qm94PSIwIDAgMTIgMTIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8ZyBpZD0icGF0dGVybjBfNDYyNF8yODk2X2lubmVyIj4KPHJlY3QgeD0iMC4xIiB5PSIwLjEiIHdpZHRoPSIxMS44IiBoZWlnaHQ9IjExLjgiIHN0cm9rZT0iI0ExQTFBMSIgc3Ryb2tlLXdpZHRoPSIwLjIiLz4KPC9nPgo8L3BhdHRlcm4+PC9kZWZzPgo8L3N2Zz4K",className:"icon-background",alt:""}),(0,n.jsx)("img",{src:rJ,className:"icon-foreground",alt:""})]}),(0,n.jsx)("h1",{children:"Midscene Playground"}),(0,n.jsx)("p",{className:"connection-status",children:"Server offline..."})]})]})})})},{})}))},4678(A){"use strict";if("undefined"==typeof sharp){var e=Error("Cannot find module 'sharp'");throw e.code="MODULE_NOT_FOUND",e}A.exports=sharp},6122(){},7407(){},9140(){},3009(){},6970(){},3612(){},3244(){},5592(){}},l={};function s(A){var e=l[A];if(void 0!==e)return e.exports;var t=l[A]={exports:{}};return a[A].call(t.exports,t,t.exports,s),t.exports}s.m=a,s.n=A=>{var e=A&&A.__esModule?()=>A.default:()=>A;return s.d(e,{a:e}),e},e=Object.getPrototypeOf?A=>Object.getPrototypeOf(A):A=>A.__proto__,s.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);s.r(o);var n={};A=A||[null,e({}),e([]),e(e)];for(var i=2&r&&t;("object"==typeof i||"function"==typeof i)&&!~A.indexOf(i);i=e(i))Object.getOwnPropertyNames(i).forEach(A=>{n[A]=()=>t[A]});return n.default=()=>t,s.d(o,n),o},s.d=(A,e)=>{for(var t in e)s.o(e,t)&&!s.o(A,t)&&Object.defineProperty(A,t,{enumerable:!0,get:e[t]})},s.f={},s.e=A=>Promise.all(Object.keys(s.f).reduce((e,t)=>(s.f[t](A,e),e),[])),s.u=A=>"static/js/async/"+A+"."+({195:"0366f6e8",199:"f31e52e7",221:"591b048e",271:"15d46ff8",35:"2b64fb0f",467:"710fa05a",652:"b5a7c7b4",856:"be9fd814",860:"b56301d9",990:"82a78a53"})[A]+".js",s.miniCssF=A=>""+A+".css",s.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(A){if("object"==typeof window)return window}})(),s.o=(A,e)=>Object.prototype.hasOwnProperty.call(A,e),t={},s.l=function(A,e,r,o){if(t[A])return void t[A].push(e);if(void 0!==r)for(var n,i,a=document.getElementsByTagName("script"),l=0;l<a.length;l++){var c=a[l];if(c.getAttribute("src")==A||c.getAttribute("data-rspack")=="playground:"+r){n=c;break}}n||(i=!0,(n=document.createElement("script")).timeout=120,s.nc&&n.setAttribute("nonce",s.nc),n.setAttribute("data-rspack","playground:"+r),n.src=A),t[A]=[e];var d=function(e,r){n.onerror=n.onload=null,clearTimeout(u);var o=t[A];if(delete t[A],n.parentNode&&n.parentNode.removeChild(n),o&&o.forEach(function(A){return A(r)}),e)return e(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)},s.r=A=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})},r=[],s.O=(A,e,t,o)=>{if(e){o=o||0;for(var n=r.length;n>0&&r[n-1][2]>o;n--)r[n]=r[n-1];r[n]=[e,t,o];return}for(var i=1/0,n=0;n<r.length;n++){for(var[e,t,o]=r[n],a=!0,l=0;l<e.length;l++)(!1&o||i>=o)&&Object.keys(s.O).every(A=>s.O[A](e[l]))?e.splice(l--,1):(a=!1,o<i&&(i=o));if(a){r.splice(n--,1);var c=t();void 0!==c&&(A=c)}}return A},s.p="/",s.b=document.baseURI||self.location.href,o={410:0},s.f.j=function(A,e){var t=s.o(o,A)?o[A]:void 0;if(0!==t)if(t)e.push(t[2]);else{var r=new Promise((e,r)=>t=o[A]=[e,r]);e.push(t[2]=r);var n=s.p+s.u(A),i=Error();s.l(n,function(e){if(s.o(o,A)&&(0!==(t=o[A])&&(o[A]=void 0),t)){var r=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src;i.message="Loading chunk "+A+" failed.\n("+r+": "+n+")",i.name="ChunkLoadError",i.type=r,i.request=n,t[1](i)}},"chunk-"+A,A)}},s.O.j=A=>0===o[A],n=(A,e)=>{var t,r,[n,i,a]=e,l=0;if(n.some(A=>0!==o[A])){for(t in i)s.o(i,t)&&(s.m[t]=i[t]);if(a)var c=a(s)}for(A&&A(e);l<n.length;l++)r=n[l],s.o(o,r)&&o[r]&&o[r][0](),o[r]=0;return s.O(c)},(i=self.webpackChunkplayground=self.webpackChunkplayground||[]).forEach(n.bind(null,0)),i.push=n.bind(null,i.push.bind(i));var c=s.O(void 0,["783","430"],()=>s(7517));c=s.O(c)})();
|
|
10
|
+
//# sourceMappingURL=index.fb126448.js.map
|