nexsys4 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -50
- package/dist/nexSys4.nxs +1 -1
- package/dist/nexsys4.min.js +21 -21
- package/package.json +1 -1
package/dist/nexsys4.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,t){var n=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),__copyProps=(e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var c,u=i(t),d=0,p=u.length;d<p;d++)c=u[d],l.call(e,c)||c===n||a(e,c,{get:(e=>t[e]).bind(null,c),enumerable:!(s=o(t,c))||s.enumerable});return e},__toESM=(e,t,o)=>(o=null!=e?n(s(e)):{},__copyProps(!t&&e&&e.__esModule?o:a(o,"default",{value:e,enumerable:!0}),e));let c=__toESM(e,1);e=__toESM(e);let u=__toESM(t,1);t=__toESM(t);var d,p=Symbol.for("nexsys4.nexusClientOverrides.installed"),m=Symbol.for("nexsys4.nexusClientOverrides.originals"),g=200,resolveOverrideTargets=e=>({buffer:"function"==typeof e?.buffer?e.buffer():null,platform:"function"==typeof e?.platform?e.platform():null,datahandler:"function"==typeof e?.datahandler?e.datahandler():null}),getActiveNexSys=()=>globalThis.nexSys&&"object"==typeof globalThis.nexSys?globalThis.nexSys:null,getSystemSettings=(e=getActiveNexSys())=>e?.state?.system?.settings||e?.sys?.settings||{},isOverrideTabEnabled=(e=getActiveNexSys())=>Boolean(getSystemSettings(e).overrideTab),normalizeTargetQuery=e=>{const t=String(e??"").trim();return t?`${t.charAt(0).toUpperCase()}${t.slice(1).toLowerCase()}`:""},getInputArea=()=>globalThis.document?.getElementsByTagName?.("textarea")?.[0]??null,createTabCompletion=()=>({txt:null,qry:null,vals:null,index:0,reset(){this.txt=null,this.qry=null,this.vals=null,this.index=0},tc(){const e=getInputArea();if(!e)return;if(this.txt??=String(e.value??"").split(" "),this.qry??=normalizeTargetQuery(this.txt.at(-1)),!this.qry)return;const t=Array.isArray(globalThis.nexGui?.colors?.enemies)?globalThis.nexGui.colors.enemies:[],n=Array.isArray(globalThis.GMCP?.WhoList)?globalThis.GMCP.WhoList:[];this.vals??=[...new Set([...t.map(e=>String(e)),...n.map(e=>String(e?.name??"")).filter(e=>e.startsWith(this.qry))])],this.vals.length&&(this.index>this.vals.length-1?(this.txt[this.txt.length-1]=this.qry,this.index=0):(this.txt[this.txt.length-1]=this.vals[this.index],this.index+=1),e.value=this.txt.join(" "))}}),ensureTabCompletion=(e=getActiveNexSys())=>{if(e?.tabCompletion?.tc&&e?.tabCompletion?.reset)return e.tabCompletion;const t=createTabCompletion();return e&&"object"==typeof e&&(e.tabCompletion=t),t},renderCustomPrompt=(e,t={})=>{const n=e?.api?.prompt,a=t?.line;try{const e="function"==typeof n?.getCustomPrompt?n.getCustomPrompt():"function"==typeof n?.render?n.render(t):null;return"string"!=typeof e?null:(a?.parsed_line&&"object"==typeof a.parsed_line&&(a.parsed_line.formatted=()=>e),e)}catch(o){return console.error("nexSys4 custom prompt render failed",o),null}},createAddBlockOverride=()=>function add_block(e=[]){const t=getActiveNexSys();t?.prepend_line&&(e.unshift(t.prepend_line),t.prepend_line=!1);const n=Boolean(getSystemSettings(t).customPrompt);let a=0;for(let i=0;i<e.length;i+=1){const o=e[i];if(!o||o.gag)continue;if(!o.parsed_line&&!o.html_line)continue;const s=Boolean(o.is_prompt&&n&&o.parsed_line)?renderCustomPrompt(t,{line:o,source:"nexus-client-override"}):null;o.is_prompt&&0===a&&null===s?o.gag=!0:(!o.parsed_line||"function"!=typeof o.parsed_line.text||o.parsed_line.text()||0!==a&&i!==e.length-1||null!==s)&&("function"==typeof this._fill_tab_completion&&this._fill_tab_completion(o),a+=1,this.lineid+=1,o.id=this.lineid,this.lines.push(o),this.unread=!0)}const o=this.prune_lines?.()??!1;(a||o)&&this.on_lines_changed?.()},createProcessLinesOverride=()=>function process_lines(e=[]){if(this.gagged)return;if(!e.length)return;this.current_block=e;const t=this.reflexes?.();for(let n=0;n<e.length&&!(n>=1e3);n+=1)if(this.current_line=e[n],this.current_line.index=n,e[n]?.line&&String(e[n].line).indexOf(String.fromCharCode(7))>=0&&this.platform?.()?.beep?.(),!this.fullstop&&"function"==typeof t?.handle_triggers){const a=t.handle_triggers(e,n);Array.isArray(a)&&(e=a)}t?.run_function?.("onBlock",e,"ALL"),this.buffer?.()?.add_block?.(e),this.current_line=void 0,this.current_block=void 0},createOnKeyUpOverride=()=>function on_key_up(e){if(!this._nexus?.datahandler?.()?.is_connected?.())return!0;if(this.dialog_has_focus?.())return!0;const t=getActiveNexSys(),n=isOverrideTabEnabled(t),a=n?ensureTabCompletion(t):null;return this.tab_pressed?9!==e||(this.tab_pressed=!1,n?(a?.tc?.(),!1):(this.player_targetted||this._nexus?.datahandler?.()?.tab_target?.(!1),this.player_targetted=!1,!1)):(a?.reset?.(),!0)},createSendCommandOverride=e=>function send_command(t){const n=getActiveNexSys(),a=Date.now();if(n&&"object"==typeof n&&(n.sentCommands=[...(Array.isArray(n.sentCommands)?n.sentCommands:[]).slice(0,g-1),{cmd:t,time:a}]),"function"==typeof e)return e.call(this,t);this._socket&&(this._socket.send(`${t}\r\n`),this.last_send=a)},installNexusClientOverrides=({nexusclient:e=globalThis.nexusclient}={})=>{if(!e||e[p])return Boolean(e);const{buffer:t,platform:n,datahandler:a}=resolveOverrideTargets(e);return!!(t&&n&&a)&&(e[m]={buffer:t,platform:n,datahandler:a,process_lines:e.process_lines,add_block:t.add_block,on_key_up:n.on_key_up,send_command:a.send_command},e.process_lines=createProcessLinesOverride(),t.add_block=createAddBlockOverride(),n.on_key_up=createOnKeyUpOverride(),a.send_command=createSendCommandOverride(a.send_command),e[p]=!0,!0)},uninstallNexusClientOverrides=({nexusclient:e=globalThis.nexusclient}={})=>{if(!e?.[p])return!1;const t=e[m];if(!t)return delete e[p],!1;const n=t.buffer||resolveOverrideTargets(e).buffer,a=t.platform||resolveOverrideTargets(e).platform,o=t.datahandler||resolveOverrideTargets(e).datahandler;return e.process_lines=t.process_lines,n&&(n.add_block=t.add_block),a&&(a.on_key_up=t.on_key_up),o&&(o.send_command=t.send_command),delete e[m],delete e[p],!0},h=["send","sendGmcp","on","off","notice","getCommandSeparator","now","setTimeout","clearTimeout","getVariable","setVariable","emitLocal","raiseToEventStream"],b=Object.freeze({promptRender:["renderPrompt"],separatorProbe:["addOnceTrigger","setSeparator"],gmcpSnapshot:["getGMCP"],debugToggle:["setDebugEnabled","isDebugEnabled"],destroy:["destroy"]}),resolveAdapterCapabilities=e=>{const t=e?.capabilities&&"object"==typeof e.capabilities?e.capabilities:{},n={};return Object.entries(b).forEach(([a,o])=>{const i=Object.prototype.hasOwnProperty.call(t,a)?Boolean(t[a]):o.every(t=>"function"==typeof e?.[t]);if(i){const t=o.filter(t=>"function"!=typeof e?.[t]);if(t.length)throw new Error(`nexSys4 adapter capability "${a}" requires methods: ${t.join(", ")}`)}n[a]=i}),Object.freeze(n)},assertAdapterContract=e=>{const t=h.filter(t=>"function"!=typeof e?.[t]);if(t.length)throw new Error(`nexSys4 adapter missing required methods: ${t.join(", ")}`);return resolveAdapterCapabilities(e),e},y=["Char.Vitals","Char.Status","Char.Afflictions.List","Char.Afflictions.Add","Char.Afflictions.Remove","Char.Defences.List","Char.Defences.Add","Char.Defences.Remove","Char.Items.Add","Char.Items.Remove","Char.Items.Update","Char.Items.List","IRE.Rift.List","IRE.Rift.Change","Room.Info","IRE.Target.Info"],registerEventStreamBindings=({eventBus:e,emit:t,pushTrace:n,eventRegistrations:a})=>{if(!e?.registerEvent)return;const registerBinding=(t,o)=>{const i=`nexsys4-${t.replace(/\W+/g,"-")}`,callback=e=>o(e);e.registerEvent(t,callback,{id:i,tags:["nexsys4"]}),a.push({eventName:t,id:i}),n("register:eventStream",{eventName:t,id:i})};y.forEach(e=>{registerBinding(e,n=>{t("GmcpEvent",{tag:e,payload:n??null,rawTag:e})})}),registerBinding("PromptEvent",e=>{t("PromptEvent",{source:"eventstream-prompt",payload:e??null})})},registerStartupGag=({onLocalEvent:e,client:t,notice:n,isDebugEnabled:a})=>{if("function"!=typeof e)return;const gagBlock=()=>{a()||t?.current_block?.forEach(e=>e.gag=!0)};let o=null,i=null,s=null;i=e("CuringStartupBeginEvent",()=>{i?.(),i=null,o||(o=e("PromptEvent",gagBlock))}),s=e("CuringStartupCompleteEvent",()=>{s?.(),s=null,gagBlock(),o?.(),o=null,n("nexSys loaded using startup spam gag.")})},escapeRegExp$2=e=>String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),createTriggerRegex=e=>e.regex instanceof RegExp?e.regex:new RegExp(`^${escapeRegExp$2(e.text)}$`,"i"),resolveTriggerReason=(e,t={})=>"function"==typeof e.resolveReason?e.resolveReason(t):e.reason,resolveTriggerPayload=(e,t,n={})=>{const a={id:e,source:"text"},o=resolveTriggerReason(t,n);return void 0!==t.have&&(a.have=t.have),void 0!==o&&(a.reason=o),"function"==typeof t.resolvePayload&&Object.assign(a,t.resolvePayload(n,a)||{}),a},createBalanceTextTrigger=(e,t)=>({name:`${e}-${t.name}`,regex:createTriggerRegex(t),action:({args:n,emit:a})=>{a("BalanceStateTextEvent",resolveTriggerPayload(e,t,n.groups))}}),createBalanceTextTriggersFromFamilies=(e=[])=>e.flatMap(({id:e,entries:t=[]})=>t.map(t=>createBalanceTextTrigger(e,t))),v=["a dolomite grain","a calcite mote","a bisemutum chip","an azurite mote","a magnesium chip","an aurum flake","a plumbum flake","a stannum flake","an arsenic pellet","a ferrum flake","an antimony flake","a cuprum flake","an argentum flake","a calamine crystal","a pinch of ground cinnabar","a pinch of realgar crystals","a quartz grain","a pinch of ground malachite","a quicksilver droplet","a potash crystal","a gypsum crystal"],S=["dolomite grains","calcite motes","bisemutum chips","azurite motes","magnesium chips","aurum flakes","plumbum flakes","stannum flakes","arsenic pellets","ferrum flakes","antimony flakes","cuprum flakes","argentum flakes","calamine crystals","pinches of ground cinnabar","pinches of ground realgar","quartz grains","pinches of ground malachite","quicksilver droplets","potash crystals","gypsum crystals"],x=["a bloodroot leaf","a piece of kelp","a goldenseal root","some prickly ash bark","some bayberry bark","a ginseng root","a ginger root","a bellwort flower","a lobelia seed","a hawthorn berry","a valerian leaf","a skullcap flower","slippery elm","a kola nut","sileris berry","some irid moss","a black cohosh root","a prickly pear","some myrrh gum","an echinacea root"],w=["bloodroot leaves","pieces of kelp","goldenseal roots","pieces of prickly ash bark","pieces of bayberry bark","ginseng roots","ginger roots","bellwort flowers","lobelia seeds","hawthorn berries","valerian leaves","skullcap flowers","slippery elms","kola nuts","sileris berries","pieces of irid moss","cohosh roots","prickly pears","myrrh gums","echinacea roots"],C={"a dolomite grain":"dolomite","a calcite mote":"calcite","a bisemutum chip":"bisemutum","an azurite mote":"azurite","a magnesium chip":"magnesium","an aurum flake":"aurum","a plumbum flake":"plumbum","a stannum flake":"stannum","an arsenic pellet":"arsenic","a ferrum flake":"ferrum","an antimony flake":"antimony","a cuprum flake":"cuprum","an argentum flake":"argentum","a calamine crystal":"calamine","a pinch of ground cinnabar":"cinnabar","a pinch of realgar crystals":"realgar","a quartz grain":"quartz","a pinch of ground malachite":"malachite","a quicksilver droplet":"quicksilver","a potash crystal":"potash","a gypsum crystal":"gypsum","a bloodroot leaf":"bloodroot","a piece of kelp":"kelp","a goldenseal root":"goldenseal","some prickly ash bark":"ash","some bayberry bark":"bayberry","a ginseng root":"ginseng","a ginger root":"ginger","a bellwort flower":"bellwort","a lobelia seed":"lobelia","a hawthorn berry":"hawthorn","a valerian leaf":"valerian","a skullcap flower":"skullcap","slippery elm":"elm","a kola nut":"kola","sileris berry":"sileris","some irid moss":"moss","a black cohosh root":"cohosh","a prickly pear":"pear","some myrrh gum":"myrrh","an echinacea root":"echinacea","dolomite grains":"dolomite","calcite motes":"calcite","bisemutum chips":"bisemutum","azurite motes":"azurite","magnesium chips":"magnesium","aurum flakes":"aurum","plumbum flakes":"plumbum","stannum flakes":"stannum","arsenic pellets":"arsenic","ferrum flakes":"ferrum","antimony flakes":"antimony","cuprum flakes":"cuprum","argentum flakes":"argentum","calamine crystals":"calamine","pinches of ground cinnabar":"cinnabar","pinches of ground realgar":"realgar","quartz grains":"quartz","pinches of ground malachite":"malachite","quicksilver droplets":"quicksilver","potash crystals":"potash","gypsum crystals":"gypsum","bloodroot leaves":"bloodroot","pieces of kelp":"kelp","goldenseal roots":"goldenseal","pieces of prickly ash bark":"ash","pieces of bayberry bark":"bayberry","ginseng roots":"ginseng","ginger roots":"ginger","bellwort flowers":"bellwort","lobelia seeds":"lobelia","hawthorn berries":"hawthorn","valerian leaves":"valerian","skullcap flowers":"skullcap","slippery elms":"elm","kola nuts":"kola","sileris berries":"sileris","pieces of irid moss":"moss","cohosh roots":"cohosh","prickly pears":"pear","myrrh gums":"myrrh","echinacea roots":"echinacea"},k={antimony:"ginger",argentum:"lobelia",arsenic:"bayberry",aurum:"kelp",bisemutum:"myrrh",calamine:"hawthorn",calcite:"pear",cinnabar:"elm",cuprum:"bellwort",dolomite:"echinacea",ferrum:"ginseng",gypsum:"cohosh",magnesium:"bloodroot",malachite:"skullcap",plumbum:"goldenseal",potash:"moss",quartz:"kola",quicksilver:"sileris",realgar:"valerian",stannum:"ash"},E={ash:"stannum",bayberry:"arsenic",bellwort:"cuprum",bloodroot:"magnesium",cohosh:"gypsum",echinacea:"dolomite",elm:"cinnabar",ginseng:"ferrum",ginger:"antimony",goldenseal:"plumbum",hawthorn:"calamine",kelp:"aurum",kola:"quartz",lobelia:"argentum",moss:"potash",myrrh:"bisemutum",pear:"calcite",sileris:"quicksilver",skullcap:"malachite",valerian:"realgar"},P={azurite:0,bisemutum:0,magnesium:0,plumbum:0,arsenic:0,potash:0,stannum:0,malachite:0,realgar:0,cinnabar:0,antimony:0,ferrum:0,quartz:0,quicksilver:0,aurum:0,calamine:0,cuprum:0,argentum:0,gypsum:0,calcite:0,dolomite:0,ginseng:0,bloodroot:0,kelp:0,hawthorn:0,lobelia:0,bellwort:0,ginger:0,bayberry:0,ash:0,goldenseal:0,moss:0,valerian:0,elm:0,skullcap:0,sileris:0,kola:0,cohosh:0,pear:0,myrrh:0,echinacea:0},escapeRegExp$1=e=>String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),buildAlternation=(e=[])=>e.map(e=>String(e||"").trim().toLowerCase()).filter(Boolean).map(escapeRegExp$1).join("|"),exactEntry=(e,t,n,a)=>({name:e,text:t,have:n,reason:a}),regexEntry=(e,t,n,a)=>({name:e,regex:t,have:n,reason:a}),dynamicReasonEntry=(e,t,n,a)=>({name:e,regex:t,have:n,resolveReason:a}),dynamicPayloadEntry=(e,t,n)=>({name:e,regex:t,resolvePayload:n}),T=[...x,...v].filter(e=>"some irid moss"!==e&&"a potash crystal"!==e),R=new RegExp(`^You eat (?<item>${buildAlternation(T)})\\.$`,"i"),M=/^Balance used: (?<duration>\d+\.\d{1,2})s\.$/i,D=/^Equilibrium used: (?<duration>\d+\.\d{1,2})s\.$/i,normalizeConsumedHerb=e=>{const t=String(e||"").trim().toLowerCase();return C[t]||t},parseObservedDurationSeconds=(e={})=>Number.parseFloat(String(e.duration||"")),O=[{id:"balance",entries:[exactEntry("ready","You have recovered balance on all limbs.",!0,"ready"),dynamicPayloadEntry("used",M,e=>({have:!1,reason:"used",durationSeconds:parseObservedDurationSeconds(e)}))]},{id:"equilibrium",entries:[exactEntry("ready","You have recovered equilibrium.",!0,"ready"),dynamicPayloadEntry("used",D,e=>({have:!1,reason:"used",durationSeconds:parseObservedDurationSeconds(e)}))]},{id:"herb",entries:[exactEntry("ready","You may eat another plant or mineral.",!0,"ready"),dynamicReasonEntry("use",R,!1,e=>normalizeConsumedHerb(e?.item))]},{id:"focus",entries:[exactEntry("ready","Your mind is able to focus once again.",!0,"ready"),exactEntry("use","You focus your mind intently on curing your mental maladies.",!1,"focus"),regexEntry("shriek",/^A diminutive homunculus resembling \w+ turns its head towards you, its jaws opening wider than what seems possible\. The homunculus stares intently at you and lets out an ear-piercing shriek that disrupts your thoughts\.$/i,!1,"shriek"),regexEntry("concussion",/^(?:The blow sets your head to spinning - you cannot concentrate on anything\.|\w+ swings (?:his|her) shield around, smashing your temple with a backhanded blow\.)$/i,!1,"concussion"),exactEntry("failed","You concentrate, but your mind is too tired to focus.",!1,"failed")]},{id:"sip",entries:[exactEntry("ready","You may drink another health or mana elixir.",!0,"ready"),exactEntry("health","The elixir heals and soothes you.",!1,"health"),exactEntry("mana","Your mind feels stronger and more alert.",!1,"mana"),regexEntry("apply",/^You take some elixir from .+ and rub it into your .+\.$/i,!1,"apply"),regexEntry("failed",/^(?:The elixir flows down your throat without effect\.|The health elixir fizzles away without any discernable effect\.)$/i,!1,"failed")]},{id:"moss",entries:[exactEntry("ready","You may eat another bit of irid moss or potash.",!0,"ready"),exactEntry("use","You feel your health and mana replenished.",!1,"consume"),exactEntry("failed","The potash slides down without effect.",!1,"failed")]},{id:"tree",entries:[exactEntry("ready","You may utilise the tree tattoo again.",!0,"ready"),exactEntry("use","You touch the tree of life tattoo.",!1,"touch"),exactEntry("failed","Your tree of life tattoo glows faintly for a moment then fades, leaving you unchanged.",!1,"failed")]},{id:"salve",entries:[exactEntry("ready","You may apply another salve to yourself.",!0,"ready"),exactEntry("failed","The salve dissolves and quickly disappears after you apply it.",!1,"failed"),regexEntry("restoration",/^\[Curing\]: APPLY RESTORATION TO \w+$/i,!1,"restoration"),regexEntry("apply",/^(?:\[Curing\]: APPLY (?:MENDING|EPIDERMAL|CALORIC).*$|You take out some salve and quickly rub it on your(?:\s\w+)+\.)$/i,!1,"apply")]},{id:"immunity",entries:[exactEntry("ready","Your system is able to absorb antidotes once again.",!0,"ready"),exactEntry("failed","The liquid reacts with the substance still present in your system, cancelling itself out.",!1,"failed"),exactEntry("use","[Curing]: SIP IMMUNITY",!1,"immunity")]},{id:"rebounding",entries:[exactEntry("aura","You feel an aura of rebounding surround you.",!0,"aura"),exactEntry("discharged","Your aura of weapons rebounding disappears.",!0,"discharged"),exactEntry("already-on","You puff on the pipe, but your existing aura of weapons rebounding negates any effect.",!0,"already-on"),regexEntry("malachite",/^You take a long drag of malachite off your pipe\.?$/i,!1,"malachite"),regexEntry("skullcap",/^You take a long drag of skullcap off your pipe\.$/i,!1,"skullcap")]},{id:"smoke",entries:[exactEntry("ready","Your lungs have recovered enough to smoke another mineral or plant.",!0,"ready"),exactEntry("failed","Your lungs have not yet recovered enough to allow you to smoke.",!1,"failed"),regexEntry("use",/^You take a long drag of/i,!1,"smoke")]},{id:"dragonbreath",entries:[regexEntry("ready",/^Your \w+ summoning is complete\.$/i,!0,"ready"),exactEntry("failed","You already have your breath summoned, Wyrm.",!1,"failed"),exactEntry("lightning","You feel your eyes begin to blaze as you summon lightning to your belly.",!1,"lightning"),exactEntry("fire","With an almost inaudible growl, you begin summoning a fiery inferno into your belly.",!1,"fire"),exactEntry("acid","With a great effort, you begin to summon caustic hell to your innards.",!1,"acid"),exactEntry("cold","Flaring your wings and head back, you begin summoning forth the icy cold of the pure, endless void into your belly.",!1,"cold"),exactEntry("venom","With a great shudder, you begin to summon forth the defiling, deadly wyrmvenom of legend.",!1,"venom"),exactEntry("psi","Calling upon the vast well of mental power at your disposal, you begin to summon a mind-rending blast of psi energy.",!1,"psi")]},{id:"deafness",entries:[exactEntry("ready","The aural world fades to silence.",!0,"ready"),exactEntry("calamine","You eat a calamine crystal.",!1,"calamine"),exactEntry("hawthorn","You eat a hawthorn berry.",!1,"hawthorn")]},{id:"deaf",entries:[exactEntry("already-on","You are already deaf.",!0,"already-on"),exactEntry("trance","The world about you falls silent as the deafness trance sinks upon you.",!0,"trance"),exactEntry("use","You stare straight ahead and concentrate on a distant focal point.",!1,"deaf")]},{id:"blind",entries:[exactEntry("already-on","You are already blind.",!0,"already-on"),exactEntry("ready","You open your eyes once more, and the world about you is darkness.",!0,"ready"),exactEntry("use","You close your eyes for a moment.",!1,"blind")]},{id:"speed",entries:[exactEntry("ready","Tiny tremours spread through your body as the world seems to slow down.",!0,"ready"),exactEntry("use","[Curing]: SIP SPEED",!1,"speed")]},{id:"sileris",entries:[exactEntry("quicksilver-ready","The quicksilver hardens into a supple metallic shell.",!0,"quicksilver"),exactEntry("berry-ready","The sileris berry juice hardens into a supple purple shell.",!0,"sileris"),exactEntry("quicksilver-use","You apply a quicksilver droplet to yourself.",!1,"quicksilver"),exactEntry("berry-use","You apply a sileris berry to yourself.",!1,"sileris")]},{id:"voice",entries:[exactEntry("ready","You have recovered voice balance.",!0,"ready")]},{id:"tremolo",entries:[exactEntry("ready","You may mangle a limb with the vibrato or tremolo once again.",!0,"ready"),regexEntry("arm-use",/^With a trilling vibrato you attack \w+'s broken (?:left|right) arm\. (?:He|She) screams in pain\.$/i,!1,"arm"),regexEntry("leg-use",/^Using a heavy tremolo you brutally punish \w+'s already shattered (?:left|right) leg\.$/i,!1,"leg")]},{id:"homunculus",entries:[exactEntry("ready","You may order your homunculus once more.",!0,"ready"),exactEntry("failed","You are unable to order your homunculus again so soon.",!1,"failed"),regexEntry("use",/^Focusing your mind on a diminutive homunculus resembling (?:\w+), you command it to disrupt (?:\w+)'s focus\. The homunculus turns towards (?:him|her) before letting out an ear-piercing shriek\.$/i,!1,"shriek")]},{id:"fitness",entries:[exactEntry("ready","You may purge your lungs once again.",!0,"ready"),exactEntry("use","You inhale deeply, purging yourself of your asthmatic condition.",!1,"fitness"),exactEntry("failed","You may not purge your lungs again as of this time.",!1,"failed")]},{id:"bloodboil",entries:[exactEntry("ready","You may boil your blood once again.",!0,"ready"),exactEntry("use","You summon spirits of fire to burn off that which afflicts you.",!1,"bloodboil"),exactEntry("failed","You have not recovered enough to boil your blood again as of yet.",!1,"failed")]},{id:"dragonheal",entries:[exactEntry("ready","You may purge your great form of afflictions once again.",!0,"ready"),exactEntry("use","You let out a great keening, and cast the impurities from your form.",!1,"dragonheal"),exactEntry("failed-recovery","You have not yet recovered enough to purge your great form of afflictions.",!1,"failed"),exactEntry("failed-disjointed","Your mind and body are too disjointed to invoke your healing powers, wyrm.",!1,"failed")]},{id:"rage",entries:[exactEntry("ready","You may channel your rage to cure your afflictions once again.",!0,"ready"),exactEntry("use","You allow your pent-up rage to vent and your eyes flash dangerously.",!1,"rage")]},{id:"salt",entries:[exactEntry("use","Directing the energy of salt, you surround yourself with a primal aura, purging yourself of ailments.",!1,"salt"),exactEntry("ready","You may channel alchemical energy to heal yourself once again.",!0,"ready"),exactEntry("failed","You have not recovered enough to heal yourself with alchemical energy once again.",!1,"failed")]},{id:"shrugging",entries:[exactEntry("ready","Your body has recovered enough to shrug afflictions once again.",!0,"ready"),exactEntry("use","Focusing inward, you purge your body of afflictions.",!1,"shrugging"),exactEntry("failed","You may not shrug again so soon.",!1,"failed")]},{id:"fool",entries:[exactEntry("ready","You may heal another affliction.",!0,"ready"),exactEntry("use","You press the Fool tarot to your forehead.",!1,"fool"),exactEntry("failed","The Fool has no effect on you.",!1,"failed")]},{id:"writhe",entries:[regexEntry("free",/^You have writhed free\b/i,!0,"ready"),exactEntry("no-affliction","You begin to writhe helplessly, throwing your body off balance.",!0,"no-affliction"),exactEntry("entangled","You begin to struggle free of your entanglement.",!1,"entangled"),exactEntry("transfixation","You begin trying to wrest your mind free of that which has transfixed it.",!1,"transfixation"),exactEntry("failed-entangled","You twist and turn as you attempt to escape from your entanglement.",!1,"failed"),exactEntry("failed-transfixation","You continue trying to wrest your mind free.",!1,"failed")]},{id:"impalewrithe",entries:[exactEntry("free-direct","With an heroic effort you manage to writhe yourself free from the weapon that impaled you.",!0,"impale"),exactEntry("use","You begin to writhe furiously to escape the blade that has impaled you.",!1,"impale"),regexEntry("free-swathe",/^With a vicious snarl \w+ carves a merciless swathe through your steaming guts\. You gurgle and choke as s?he withdraws (?:his|her) dripping blade, glistening with gore\.$/i,!0,"impale"),regexEntry("free-wrench",/^Searing pain tears through your midsection as you wrench away from [A-Z][a-z]+, (?:his|her) weapon ripping unceremoniously through your innards\.$/i,!0,"impale"),regexEntry("free-slide",/^With a snarl of contempt, \w+ allows you to slide free of (?:her|his) weapon\.$/i,!0,"impale")]},{id:"alleviate",entries:[exactEntry("ready","You may purge your body of afflictions once again.",!0,"ready"),exactEntry("use","Applying your knowledge of anatomy, you massage pressure points with your fingers, and a flood of relief courses through your body.",!1,"alleviate"),exactEntry("no-afflictions","There are no pesky afflictions keeping you from your destiny, Warrior.",!1,"no-afflictions"),exactEntry("failed","You are too exhausted to purge your body of afflictions.",!1,"failed")]},{id:"slough",entries:[exactEntry("use","You allow your outer layers to slough away, their fires extinguished along with the impurities contaminating them.",!1,"slough"),exactEntry("ready","You may slough off the impurities that plague you once again.",!0,"ready"),exactEntry("failed","You may not slough off the impurities again quite yet.",!1,"failed")]}],parsePositiveInteger=(e,t=1)=>{const n=Number.parseInt(String(e??""),10);return Number.isFinite(n)&&n>0?n:t},cleanItemText=e=>String(e||"").trim(),emitInventoryDelta=({emit:e,item:t,delta:n,source:a="text-trigger"})=>{e("CacheInventoryDeltaTextEvent",{item:cleanItemText(t),delta:n,source:a})},normalizeTextValue=e=>String(e||"").trim(),parseDelimitedEntries=e=>String(e||"").split(/[|,]/).map(e=>e.trim().toLowerCase().replace(/^,+|,+$/g,"")).filter(Boolean),parseSpaceDelimitedEntries=e=>String(e||"").replace(/\s+\((\d+)\)/g,"($1)").trim().split(/\s+/).map(e=>e.trim().toLowerCase().replace(/^,+|,+$/g,"")).filter(Boolean),buildLimbPayload=({args:e,client:t,source:n="text-trigger"})=>({limb:normalizeTextValue(e.groups?.limb),raw:normalizeTextValue(t?.current_line?.line),source:n}),normalizeTag=e=>String(e||"").trim().toLowerCase(),normalizeCommandSeparator=e=>String(e??"").trim(),toNumber=(e,t=0)=>{const n=Number(e);return Number.isFinite(n)?n:t},toOptionalBooleanFromYesNo=e=>{if(null==e||""===e)return;if("boolean"==typeof e)return e;if("number"==typeof e)return 0!==e;const t=String(e).trim().toLowerCase();return!!["yes","1","true","on"].includes(t)||!["no","0","false","off"].includes(t)&&void 0},boolWord=e=>e?"on":"off",nowMs=()=>Date.now(),$={classQueue:{name:"class",type:"c!p!t!w",pre:["touch soul","stand"],post:[],exclusions:["fullQueue"]},freeQueue:{name:"free",type:"free",pre:["touch soul","stand"],post:[],exclusions:["fullQueue","shieldQueue"]},fullQueue:{name:"full",type:"ebc!w!p!t",pre:["touch soul","stand"],post:[],exclusions:["freeQueue","shieldQueue","classQueue"]},shieldQueue:{name:"shield",type:"eb!w!t",pre:["touch soul","stand"],post:[],exclusions:["freeQueue","fullQueue"]},shipQueue:{name:"ship",type:"s!w!t",pre:["touch soul","stand"],post:[],exclusions:[]},bloodcloakQueue:{name:"bloodcloak",type:"!teb",pre:["touch soul"],post:[],exclusions:["fullQueue","freeQueue"]},battlerageQueue:{name:"battlerage",type:"!p!t!wu",pre:["touch soul"],post:[],exclusions:[]},stunQueue:{name:"stun",type:"!t",pre:["touch soul"],post:[],exclusions:[]}},escapeRegExp=e=>String(e).replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),normalizeTriggerName=e=>String(e||"").replace(/[^A-Za-z0-9_-]+/g,"-").replace(/^-+|-+$/g,""),resolveSeparator=e=>normalizeCommandSeparator(e?.settings?.command_separator??e?.settings?.commandSeparator)||"|",splitCommands=(e,t)=>String(e||"").split(String(t||"|")||"|").map(e=>e.trim()).filter(Boolean),createQueueSentTrigger=([e,t])=>({name:`sent-${normalizeTriggerName(e)}`,regex:new RegExp(`^\\[System\\]: Added (?<commands>.+) to your ${escapeRegExp(t.type)} queue\\.$`,"i"),action:({args:n,client:a,emit:o})=>{const i=resolveSeparator(a),s=normalizeTextValue(n.groups?.commands);o("QueueSentTextEvent",{raw:normalizeTextValue(a?.current_line?.line),queueId:e,queueName:t.name,queueType:t.type,rawCommands:s,commands:splitCommands(s,i),separator:i,source:"text-trigger"})}}),createAffPrioritySnapshotTriggers=()=>({group:"serverside/affPrioritySnapshot",session:{name:"affPriorities",completionEvent:"ServersideAffPrioSnapshotCompleteTextEvent",fallbackCloseEvents:[{event:"PromptEvent",reason:"prompt"},{event:"CuringStartupCompleteEvent",reason:"startup-complete"}],resetEvents:[{event:"CuringStartupBeginEvent",reason:"startup-begin"}]},triggers:[{name:"open",opener:!0,openReason:"aff-priority-header",regex:/^Your affliction curing priorities(?::| for the priority set \w+:)$/,action:({emit:e})=>{e("ServersideAffPrioSnapshotOpenTextEvent",{topic:"affPriorities",reason:"aff-priority-header"})}},{name:"line",regex:/^(?<prio>\d+):\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{const n=parseSpaceDelimitedEntries(e.groups.entries);return!!n.length&&(n.forEach(n=>{t("ServersideAffPrioTextEvent",{aff:n,prio:Number(e.groups.prio)})}),!0)}},{name:"close",closer:!0,closeReason:"aff-priority-terminal-line",regex:/^Affs with priority 26 are ignored\.$/i}]}),emitStatus$1=(e,t,n)=>{e("ServersideStatusTextEvent",{key:t,value:n})},emitStatus=(e,t,n)=>{e("ServersideStatusTextEvent",{key:t,value:n})},I=[()=>({group:"system/systemEvent",triggers:[{name:"line",regex:/^SystemEvent (?<eventName>.+)$/,action:({args:e,client:t,emit:n})=>{const a=normalizeTextValue(e.groups?.eventName);if(!a)return;const o=normalizeTextValue(t?.current_line?.line);n(a,{raw:o});const i=a.match(/^(?<queueName>[A-Za-z]+)QueueFired$/);i?.groups?.queueName&&n("QueueFiredTextEvent",{raw:o,queueName:i.groups.queueName})}},{name:"all-queues-cleared",regex:/^\[System\]: All queued commands cleared\.$/,action:({client:e,emit:t})=>{t("AllQueuesClearedTextEvent",{raw:normalizeTextValue(e?.current_line?.line)})}}]}),()=>({group:"system/separatorChanged",triggers:[{name:"separator-changed",regex:/^Your command separator is now:\s*(?<sep>\S+)\s*$/,action:({args:e,emit:t})=>{const n=String(e.groups?.sep||"").trim();n&&t("CommandSeparatorChangedTextEvent",{separator:n})}}]}),()=>({group:"balance/text",triggers:createBalanceTextTriggersFromFamilies(O)}),()=>({group:"cache/text",triggers:[{name:"rift-out",regex:/^You remove (?<amount>\d+) (?<item>.+?), bringing the total in the rift to (?<riftAmount>\d+)\.$/i,action:({args:e,emit:t})=>{const n=e?.groups||{};t("CacheRiftOutTextEvent",{item:cleanItemText(n.item),amount:parsePositiveInteger(n.amount),riftAmount:parsePositiveInteger(n.riftAmount,0),source:"text-trigger"})}},{name:"curative-consume",regex:/^You eat (?<item>.+?)\.$/i,action:({args:e,emit:t})=>{t("CacheCurativeConsumedTextEvent",{item:cleanItemText((e?.groups||{}).item),amount:1,source:"text-trigger"})}},{name:"rift-in",regex:/^You store (?<amount>\d+) (?<item>.+?), bringing the total in the rift to (?<riftAmount>\d+)\.$/i,action:({args:e,emit:t})=>{const n=e?.groups||{};t("CacheRiftInTextEvent",{item:cleanItemText(n.item),amount:parsePositiveInteger(n.amount),riftAmount:parsePositiveInteger(n.riftAmount,0),source:"text-trigger"})}},{name:"inventory-empty",regex:/^You have no (?<item>.+?) in your inventory\.$/i,action:({args:e,emit:t})=>{t("CacheInventoryEmptyTextEvent",{item:cleanItemText((e?.groups||{}).item),source:"text-trigger"})}},{name:"give-away",regex:/^You give (?<item>.+?) to .+\.$/i,action:({args:e,emit:t})=>{emitInventoryDelta({emit:t,item:e?.groups?.item,delta:-1})}},{name:"receive",regex:/^.+ gives (?<item>.+?) to you\.$/i,action:({args:e,emit:t})=>{emitInventoryDelta({emit:t,item:e?.groups?.item,delta:1})}},{name:"drop",regex:/^You drop (?<item>.+?)\.$/i,action:({args:e,emit:t})=>{emitInventoryDelta({emit:t,item:e?.groups?.item,delta:-1})}}]}),()=>({group:"limb/selfDamage",triggers:[{name:"carve-hit",regex:/^As .+? carves into you, you perceive that \w+ has dealt (?<amount>[\d.]+)% damage to your (?<limb>.+)\.$/,action:({args:e,client:t,emit:n})=>{n("LimbDamageTextEvent",{...buildLimbPayload({args:e,client:t}),amount:Number(e.groups?.amount)})}},{name:"crunch-hit",regex:/^As .+?'s? blow crunches into you, you perceive that \w+ has dealt (?<amount>[\d.]+)% damage to your (?<limb>.+)\.$/,action:({args:e,client:t,emit:n})=>{n("LimbDamageTextEvent",{...buildLimbPayload({args:e,client:t}),amount:Number(e.groups?.amount)})}},{name:"pain-subsides",regex:/^The pain plaguing your (?<limb>.+) subsides\.$/,action:({args:e,client:t,emit:n})=>{n("LimbResetTextEvent",buildLimbPayload({args:e,client:t}))}}]}),()=>({group:"queue/text",triggers:Object.entries($).map(createQueueSentTrigger)}),()=>({group:"serverside/statusSnapshot",session:{name:"status",completionEvent:"ServersideStatusSnapshotCompleteTextEvent",fallbackCloseEvents:[{event:"PromptEvent",reason:"prompt"},{event:"CuringStartupCompleteEvent",reason:"startup-complete"}],resetEvents:[{event:"CuringStartupBeginEvent",reason:"startup-begin"}]},triggers:[{name:"open",opener:!0,openReason:"status-header",regex:/^Curing Status:$/},{name:"enabled",regex:/^Enabled:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"enabled",/^yes$/i.test(e.groups.value))}},{name:"reporting",regex:/^Reporting commands:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"reporting",/^yes$/i.test(e.groups.value))}},{name:"sipping",regex:/^Sipping:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"sipping",/^yes$/i.test(e.groups.value))}},{name:"afflictions",regex:/^Affliction Curing:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"afflictions",/^yes$/i.test(e.groups.value))}},{name:"defences",regex:/^Defence Upkeep:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"defences",/^yes$/i.test(e.groups.value))}},{name:"transmutation",regex:/^Curing Method:\s+(?<value>\w+)$/,action:({args:e,emit:t})=>{emitStatus(t,"transmutation","transmutation"===String(e.groups.value||"").toLowerCase())}},{name:"fallback",regex:/^Fallback Curing:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"fallback",/^yes$/i.test(e.groups.value))}},{name:"custom-aff-priority",regex:/^Custom Curing Priority:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"customAffPriority",/^yes$/i.test(e.groups.value))}},{name:"custom-def-priority",regex:/^Custom Defence Priority:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"customDefPriority",/^yes$/i.test(e.groups.value))}},{name:"sip-priority",regex:/^Health\/Mana Priority:\s+(?<value>Health|Mana)$/,action:({args:e,emit:t})=>{emitStatus(t,"sipPriority",String(e.groups.value||"").toLowerCase())}},{name:"sip-health-at",regex:/^Sip health at:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"sipHealthAt",Number(e.groups.value))}},{name:"sip-mana-at",regex:/^Sip mana at:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"sipManaAt",Number(e.groups.value))}},{name:"moss-health-at",regex:/^Eat moss below health:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"mossHealthAt",Number(e.groups.value))}},{name:"moss-mana-at",regex:/^Eat moss below mana:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"mossManaAt",Number(e.groups.value))}},{name:"focus",regex:/^Use focus:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"focus",/^yes$/i.test(e.groups.value))}},{name:"focus-over-herbs",regex:/^Focus over herbs:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"focusOverHerbs",/^yes$/i.test(e.groups.value))}},{name:"clot",regex:/^Use clot:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"clot",/^yes$/i.test(e.groups.value))}},{name:"tree",regex:/^Use tree:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"tree",/^yes$/i.test(e.groups.value)?"on":"off")}},{name:"clot-at",regex:/^Clot at:\s+(?<value>\d+) bleeding$/,action:({args:e,emit:t})=>{emitStatus(t,"clotAt",Number(e.groups.value))}},{name:"insomnia",regex:/^Use insomnia:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"insomnia",/^yes$/i.test(e.groups.value))}},{name:"fractures-above",regex:/^Will cure fractures above:\s+(?<value>\d+)% health$/,action:({args:e,emit:t})=>{emitStatus(t,"fracturesAbove",Number(e.groups.value))}},{name:"mana-threshold",regex:/^Will use mana above:\s+(?<value>\d+)% mana$/,action:({args:e,emit:t})=>{emitStatus(t,"manaThreshold",Number(e.groups.value))}},{name:"clot-health",regex:/^Will clot health until:\s+(?<value>\d+)% health$/,action:({args:e,emit:t})=>{emitStatus(t,"clotAbove",Number(e.groups.value))}},{name:"batch",regex:/^Batch actions:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"batch",/^yes$/i.test(e.groups.value))}},{name:"kaido-transmute",closer:!0,closeReason:"status-terminal-line",regex:/^Use Kaido Transmute:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"kaidoTransmute",/^yes$/i.test(e.groups.value))}}]}),createAffPrioritySnapshotTriggers,()=>({group:"serverside/defPrioritySnapshot",session:{name:"defPriorities",completionEvent:"ServersideDefPrioSnapshotCompleteTextEvent",fallbackCloseEvents:[{event:"PromptEvent",reason:"prompt"},{event:"CuringStartupCompleteEvent",reason:"startup-complete"}],resetEvents:[{event:"CuringStartupBeginEvent",reason:"startup-begin"}]},triggers:[{name:"open",opener:!0,openReason:"def-priority-header",regex:/^Your defence priorities(?::| for curing set .+:)$/,action:({emit:e})=>{e("ServersideDefPrioSnapshotOpenTextEvent",{topic:"defPriorities",reason:"def-priority-header"})}},{name:"line",regex:/^(?<def>\w+)\s*: (?<prio>\d+)$/,action:({args:e,emit:t})=>{t("ServersideDefPrioTextEvent",{def:String(e.groups.def||"").toLowerCase(),prio:Number(e.groups.prio)})}}]}),()=>({group:"serverside/liveStatusConfirmations",triggers:[{name:"enabled",regex:/^Curing (?<value>activated|disabled)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"enabled",/^activated$/.test(e.groups.value))}},{name:"transmutation-on",regex:/^You will now use transmutation cures\.$/,action:({emit:e})=>{emitStatus$1(e,"transmutation",!0)}},{name:"transmutation-off",regex:/^You will now use concoction-based cures\.$/,action:({emit:e})=>{emitStatus$1(e,"transmutation",!1)}},{name:"sip-priority",regex:/^Curing will now prioritise (?<value>mana|health) over (?<other>mana|health)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"sipPriority",String(e.groups.value||"").toLowerCase())}},{name:"sip-threshold",regex:/^(?<kind>Health|Mana) curing threshold set to (?<value>\d+)%\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"health"===String(e.groups.kind||"").toLowerCase()?"sipHealthAt":"sipManaAt",Number(e.groups.value))}},{name:"moss-threshold",regex:/^Moss (?<kind>health|mana) curing threshold set to (?<value>\d+)%\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"health"===String(e.groups.kind||"").toLowerCase()?"mossHealthAt":"mossManaAt",Number(e.groups.value))}},{name:"focus",regex:/^Automatic usage of focusing (?<value>activated|disabled)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"focus",/^activated$/.test(e.groups.value))}},{name:"focus-over-herbs",regex:/^You will now prioritise (?<value>focus|herbs) over (?<other>focus|herbs)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"focusOverHerbs",/^focus$/.test(e.groups.value))}},{name:"tree",regex:/^Automatic usage of the tree tattoo (?<value>activated|disabled)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"tree",/^activated$/.test(e.groups.value)?"on":"off")}},{name:"clot-on",regex:/^You will now attempt to clot your wounds\.$/,action:({emit:e})=>{emitStatus$1(e,"clot",!0)}},{name:"clot-off",regex:/^You will no longer attempt to clot your wounds\.$/,action:({emit:e})=>{emitStatus$1(e,"clot",!1)}},{name:"clot-at",regex:/^Will clot above (?<value>\d+) bleeding\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"clotAt",Number(e.groups.value))}},{name:"insomnia-on",regex:/^You will now use the insomnia ability\.$/,action:({emit:e})=>{emitStatus$1(e,"insomnia",!0)}},{name:"insomnia-off",regex:/^You will now not use the insomnia ability\.$/,action:({emit:e})=>{emitStatus$1(e,"insomnia",!1)}},{name:"fractures-above",regex:/^Will cure health based afflictions above (?<value>\d+)%\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"fracturesAbove",Number(e.groups.value))}},{name:"mana-threshold",regex:/^You will now use mana if above (?<value>\d+)% of your maximum mana reserves\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"manaThreshold",Number(e.groups.value))}},{name:"batch-on",regex:/^You will now attempt to cure multiple things at once\.$/,action:({emit:e})=>{emitStatus$1(e,"batch",!0)}},{name:"batch-off",regex:/^You will now cure one thing at a time\.$/,action:({emit:e})=>{emitStatus$1(e,"batch",!1)}},{name:"clot-above",regex:/^You will now use corrupted clotting if above (?<value>\d+)% of your maximum health reserves\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"clotAbove",Number(e.groups.value))}}]}),()=>({group:"serverside/livePriorityConfirmations",triggers:[{name:"aff-set",regex:/^You have set the '(?<aff>[^']+)' affliction to the (?<prio>\d+) priority\.$/,action:({args:e,emit:t})=>{t("ServersideAffPrioTextEvent",{aff:String(e.groups.aff||"").toLowerCase(),prio:Number(e.groups.prio),source:"live-confirmation"})}},{name:"def-set",regex:/^You have set the '(?<def>\w+)' defence to the (?<prio>\d+) priority\.$/,action:({args:e,emit:t})=>{t("ServersideDefPrioTextEvent",{def:String(e.groups.def||"").toLowerCase(),prio:Number(e.groups.prio),source:"live-confirmation"})}}]}),()=>({group:"serverside/queuePredictionCuringSets",triggers:[{name:"queue-line",regex:/^CURING QUEUE(?:\s+LIST)?\s*:\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{t("ServersideQueueListTextEvent",{queue:parseDelimitedEntries(e.groups.entries)})}},{name:"predictions-line",regex:/^CURING PREDICTIONS?\s*:\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{t("ServersidePredictionsTextEvent",{predictions:parseDelimitedEntries(e.groups.entries).reduce((e,t)=>(e[t]=!0,e),{})})}},{name:"curingset-active-line",regex:/^ACTIVE CURINGSET\s*:\s*(?<name>.+)$/,action:({args:e,emit:t})=>{t("ServersideCuringSetsTextEvent",{sets:[],activeSet:normalizeTextValue(e.groups.name).toLowerCase()})}},{name:"curingset-list-line",regex:/^CURINGSETS?\s*:\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{t("ServersideCuringSetsTextEvent",{sets:parseDelimitedEntries(e.groups.entries).map(e=>e.replace(/^\*/,"")),activeSet:""})}}]})],createTriggerCatalog=()=>I.map(e=>e()),registerTextTriggers=({triggerApi:e,client:t,emit:n,onLocalEvent:a,pushTrace:o,triggerIds:i,registerCleanup:s,registerTriggerGroupActivity:l,triggerSessions:c})=>{if(!e?.triggers?.add)return void o("register:nexAction:skipped",{reason:"trigger-api-unavailable"});const u="function"==typeof e.triggers.enable&&"function"==typeof e.triggers.disable,sessionToggleTag=e=>`session:${e}`,setSessionTriggers=(t,n)=>{if(!u)return;const a=sessionToggleTag(t);n?e.triggers.enable([a]):e.triggers.disable([a]),o(n?"session:enable":"session:disable",{session:t,tag:a})},resetSession=(e,t={})=>{const n=c[e];return!!n&&(n.active=!1,n.hasLines=!1,n.lastReason=String(t.reason||"reset"),n.lastClosedAt=Date.now(),setSessionTriggers(e,!1),o("session:reset",{session:e,...t}),!0)},beginSession=(e,t={})=>{const n=c[e];return!!n&&(setSessionTriggers(e,!0),n.active?(o("session:reopen",{session:e,...t}),!1):(n.active=!0,n.hasLines=!1,n.lastReason=String(t.reason||t.source||"begin"),n.lastOpenedAt=Date.now(),o("session:begin",{session:e,...t}),!0))},markSessionHasData=e=>{const t=c[e];t?.active&&!t.hasLines&&(t.hasLines=!0)},completeSession=(e,t={})=>{const a=c[e];if(!a?.active)return!1;const i=a.hasLines;return a.active=!1,a.hasLines=!1,a.lastReason=String(t.reason||"complete"),a.lastClosedAt=Date.now(),setSessionTriggers(e,!1),o("session:complete",{session:e,reason:a.lastReason,hadLines:i,completionEvent:t.completionEvent||""}),t.completionEvent&&n(t.completionEvent,{topic:e,reason:a.lastReason}),!0},registerTextTrigger=({id:a,group:s,regex:c,action:u,enabled:d=!0,tags:p=[],once:m,duration:g,fg:h,bg:b,lines:y,prompt:v,finalAction:S,onRemove:x,onDisable:w,onEnable:C})=>{e.triggers.add({id:a,regex:c,enabled:d,tags:p,once:m,duration:g,fg:h,bg:b,lines:y,prompt:v,finalAction:S,onRemove:x,onDisable:w,onEnable:C,action:e=>u({args:e,client:t,emit:n,pushTrace:o})}),i.push(a),l(s,"triggerCount"),o("register:nexAction",{id:a,group:s,enabled:d,regex:c instanceof RegExp?c.source:String(c)})};createTriggerCatalog().forEach(e=>{const t=e.session;t&&"function"==typeof a&&((t.resetEvents||[]).forEach(({event:n,reason:o})=>{s(a(n,()=>resetSession(t.name,{reason:o,event:n}))),l(e.group,"hookCount")}),(t.fallbackCloseEvents||[]).forEach(({event:n,reason:o})=>{s(a(n,()=>completeSession(t.name,{reason:o,completionEvent:t.completionEvent}))),l(e.group,"hookCount")})),e.triggers.forEach(n=>{const a=t?.name,o=Boolean(a&&!0===n.opener),i=Boolean(a&&!0===n.closer),s=["nexsys4","adapter","text",`group:${e.group}`],l=Boolean(a)&&!o,d=l?[sessionToggleTag(a)]:[],p=(!l||!u)&&(n.enabled??!0);registerTextTrigger({id:`nexsys4-${e.group.replace(/[\\/]+/g,"-")}-${n.name}`,group:e.group,regex:n.regex,enabled:p,tags:[...s,...d,...n.tags||[]],once:n.once,duration:n.duration,fg:n.fg,bg:n.bg,lines:n.lines,prompt:n.prompt,finalAction:n.finalAction,onRemove:n.onRemove,onDisable:n.onDisable,onEnable:n.onEnable,action:s=>{if(o)beginSession(a,{group:e.group,trigger:n.name,reason:n.openReason||"open"});else if(a&&!c[a]?.active)return;const l="function"==typeof n.action?n.action(s):void 0;return!a||o||i||!1===l||markSessionHasData(a),i&&completeSession(a,{reason:n.closeReason||"close",completionEvent:t.completionEvent}),l}})})})},N="",L=Object.freeze({fg:"white",bg:N}),j=Object.freeze({default:Object.freeze({default:Object.freeze({message:L})}),affGot:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" +aff ",fg:"orange",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),affLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" -aff ",fg:"orange",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),defGot:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" +def ",fg:"purple",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),defLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" -def ",fg:"purple",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),balanceRecovered:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" onBal ",fg:"brown",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),balanceLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" offBal ",fg:"brown",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),trackableGot:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" + ",fg:"white",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),trackableLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" - ",fg:"white",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),priority:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:"priority change: ",fg:"yellow",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),output:Object.freeze({default:Object.freeze({message:Object.freeze({fg:"red",bg:N})})})}),escapeHtml$1=e=>String(e||"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),normalizeNoticeToken=(e,t="")=>String(e||t).trim().toLowerCase(),resolveNoticeStyle=(e={})=>{const t=String(e.category||"default").trim(),n=normalizeNoticeToken(e.action,"default"),a=j[t]||j.default;return a[n]||a.default||j.default.default},normalizeNoticePart=(e,t=L)=>"string"==typeof e?{text:e,fg:t.fg,bg:t.bg}:{text:String(e?.text||""),fg:String(e?.fg??t.fg??L.fg),bg:String(e?.bg??t.bg??L.bg)},buildNoticeParts=(e,t={})=>{const n=resolveNoticeStyle(t),a=n.message||L;if(Array.isArray(t.parts)&&t.parts.length)return t.parts.map(e=>normalizeNoticePart(e,a)).filter(e=>e.text);if(t.title)return[normalizeNoticePart({text:String(t.title),fg:t.titleFg??a.fg,bg:t.titleBg??a.bg},a),normalizeNoticePart({text:String(e),fg:t.fg??a.fg,bg:t.bg??a.bg},a)].filter(e=>e.text);const o=[];return n.prefix?.text&&o.push(normalizeNoticePart(n.prefix,a)),o.push(normalizeNoticePart({text:String(e),fg:t.fg??a.fg,bg:t.bg??a.bg},a)),o.filter(e=>e.text)},renderSpanStyle=e=>["white-space:pre-wrap",e.fg?`color:${escapeHtml$1(e.fg)}`:"",e.bg?`background-color:${escapeHtml$1(e.bg)}`:""].filter(Boolean).join(";"),renderNoticeHtml=(e,t={},n=[])=>t.html?String(t.html):`<span class="nexsys4-notice" style="white-space:pre-wrap;">${(n.length?n:buildNoticeParts(e,t)).map(e=>`<span style="${renderSpanStyle(e)}">${escapeHtml$1(e.text)}</span>`).join("")}</span>`,createNoticeTransport=({client:e,emit:t,pushTrace:n})=>({notice(a,o={}){const i=String(a),s=buildNoticeParts(i,o);let l="none";e?.add_html_line?(e.add_html_line(renderNoticeHtml(i,o,s)),l="add_html_line"):e?.display_notice?(e.display_notice(...s.flatMap(e=>[e.text,e.fg,e.bg])),l="display_notice"):e?.send_commands&&(e.send_commands(`echo ${i}`),l="echo"),n("notice",{message:i,context:o,delivery:l,parts:s}),t("NoticeEvent",{message:i,context:o,delivery:l,parts:s})}}),createTriggerSessionState=()=>({active:!1,hasLines:!1,lastReason:"idle",lastOpenedAt:0,lastClosedAt:0}),createAdapterDebugState=({debug:e=!1,traceLimit:t=200,now:n=()=>Date.now(),logLabel:a="nexSys4.adapter"}={})=>{let o=Boolean(e);const i=Math.max(1,Number(t||200)),s=[],l=new Map,c={status:createTriggerSessionState(),affPriorities:createTriggerSessionState(),defPriorities:createTriggerSessionState()},pushTrace=(e,t={})=>{if(!o)return null;const l={at:n(),type:e,detail:t};return s.push(l),s.length>i&&s.splice(0,s.length-i),console.log(`[${a}] ${e}`,t),l};return{pushTrace,triggerSessions:c,registerTriggerGroupActivity:(e,t="triggerCount")=>{const n=String(e||"").trim();if(!n)return null;const a=l.get(n)||{name:n,triggerCount:0,hookCount:0};return a[t]=Number(a[t]||0)+1,l.set(n,a),a},setDebugEnabled(e){o=Boolean(e),pushTrace("debug",{enabled:o})},isDebugEnabled:()=>o,snapshotTriggerGroups:()=>[...l.values()].map(e=>({...e})).sort((e,t)=>e.name.localeCompare(t.name)),snapshotTriggerSessions:()=>Object.entries(c).reduce((e,[t,n])=>(e[t]={...n},e),{}),snapshotRecentTrace:()=>[...s]}},createAdapterEventHub=({pushTrace:e=()=>{},errorLabel:t="nexSys4 adapter listener failed"}={})=>{const n=new Map,normalizeEventName=e=>String(e||"").trim(),emit=(a,o)=>{const i=normalizeEventName(a),s=n.get(i);if(!i||!s?.size)return i&&e("emit",{event:i,listenerCount:0,payload:o}),0;const l=[...s];return e("emit",{event:i,listenerCount:l.length,payload:o}),l.forEach(e=>{if(n.get(i)?.has(e))try{e(o)}catch(a){console.error(t,{event:i,error:a})}}),l.length},on=(t,a)=>{const o=normalizeEventName(t);if(!o||"function"!=typeof a)return()=>{};let i=n.get(o);return i||(i=new Set,n.set(o,i)),i.add(a),e("on",{event:o,listenerCount:i.size}),()=>off(o,a)},off=(t,a)=>{const o=normalizeEventName(t),i=n.get(o);if(!o||!i)return!1;const s=i.delete(a);return i.size||n.delete(o),e("off",{event:o,removed:s,listenerCount:i.size}),s};return{emit,on,off,clear(){n.clear()}}},createAdapterLifecycle=({eventBus:e,triggerApi:t,pushTrace:n=()=>{},clearListeners:a=()=>{}}={})=>{const o=[],i=[],s=[],destroy=()=>{const l=s.length,c=o.length,u=[...i];s.splice(0).forEach(e=>{try{e()}catch(t){console.error("nexSys4 adapter cleanup failed",{error:t})}}),e?.removeListener&&o.forEach(({eventName:t,id:n})=>{e.removeListener(t,n)}),t?.triggers?.remove&&i.forEach(e=>t.triggers.remove(e)),n("destroy",{eventRegistrations:c,triggerIds:u,internalCleanupCount:l}),a()};return{eventRegistrations:o,triggerIds:i,registerCleanup:e=>"function"==typeof e?(s.push(e),e):()=>{},destroy}},summarizePromptContext=(e={})=>({source:e.source||"",hasLine:Boolean(e.line)}),createAdapterPromptSink=({emit:e,pushTrace:t})=>{const renderPrompt=(n,a={})=>{const o=String(n??""),i=a?.line;return i?.parsed_line&&"object"==typeof i.parsed_line&&(i.parsed_line.formatted=()=>o),e("PromptRendered",{prompt:o,context:a}),t("renderPrompt",{promptLength:o.length,context:summarizePromptContext(a)}),o};return{renderPrompt}},normalizeOutboundCommands=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0):"string"==typeof e&&e?[e]:[],normalizeGmcpRequests=e=>Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)],createAdapterTransport=({client:e,emit:t,pushTrace:n,resolveSeparator:a}={})=>({send(o=[],i={}){const s=normalizeOutboundCommands(o);if(!s.length)return[];const l=s.join(a()||"|");return e?.send_commands&&e.send_commands(l,!1),n("send",{commands:s,payload:l,context:i}),t("OutboundCommandsEvent",{commands:s,payload:l,context:i}),s},sendGmcp(a=[],o={}){const i="function"==typeof e?.datahandler?e.datahandler():null;if("function"!=typeof i?.send_GMCP)return[];const s=normalizeGmcpRequests(a);if(!s.length)return[];const l=[];return s.forEach(e=>{try{i.send_GMCP(e),l.push(e)}catch(t){console.error("nexSys4 GMCP request failed",{request:e,error:t})}}),l.length&&(n("sendGmcp",{requests:l,context:o}),t("AdapterGmcpRequest",{requests:l,context:o})),l},getVariable(t){if(!e?.variables)return;const n=e.variables();return"function"==typeof n?.get?n.get(t):n?.vars?.[t]},setVariable(t,n){if(!e?.variables)return n;const a=e.variables();return"function"==typeof a?.set?(a.set(t,n),n):a?.vars?(a.vars[t]=n,n):n}}),createNexusAdapter=(e={})=>{const t=e.nexusclient||globalThis.nexusclient,monotonicNowMs=()=>globalThis.performance?.now?globalThis.performance.now():Date.now();let n=null;const resolveSeparator=()=>n||normalizeCommandSeparator(e.separator??t?.settings?.command_separator??t?.settings?.commandSeparator),a=e.eventStream||globalThis.eventStream,o=e.nexAction||globalThis.nexAction,getGMCP=()=>e.GMCP||globalThis.GMCP,{pushTrace:i,triggerSessions:s,registerTriggerGroupActivity:l,setDebugEnabled:c,isDebugEnabled:u,snapshotTriggerGroups:d,snapshotTriggerSessions:p,snapshotRecentTrace:m}=createAdapterDebugState({debug:e.debug,traceLimit:e.traceLimit}),{emit:g,on:h,off:b,clear:y}=createAdapterEventHub({pushTrace:i}),{eventRegistrations:v,triggerIds:S,registerCleanup:x,destroy:w}=createAdapterLifecycle({eventBus:a,triggerApi:o,pushTrace:i,clearListeners:y}),{send:C,sendGmcp:k,getVariable:E,setVariable:P}=createAdapterTransport({client:t,emit:g,pushTrace:i,resolveSeparator}),normalizeEventName=e=>String(e||"").trim(),{notice:T}=createNoticeTransport({client:t,emit:g,pushTrace:i}),{renderPrompt:R}=createAdapterPromptSink({emit:g,pushTrace:i}),emitLocal=(e,t)=>{const n=normalizeEventName(e);return!!n&&(g(n,t),i("emit:local",{event:n,payload:t}),!0)},raiseToEventStream=(e,t)=>{const n=normalizeEventName(e);return!(!n||!a?.raiseEvent)&&(a.raiseEvent(n,t),i("emit:eventstream",{topic:n,payload:t}),!0)};o?.triggers?.remove&&o.triggers.remove(["nexsys4"]),a?.removeByTag&&a.removeByTag(["nexsys4"]),registerEventStreamBindings({eventBus:a,emit:g,pushTrace:i,eventRegistrations:v}),registerTextTriggers({triggerApi:o,client:t,emit:g,onLocalEvent:h,pushTrace:i,triggerIds:S,registerCleanup:x,registerTriggerGroupActivity:l,triggerSessions:s}),!1!==e.startupGag&®isterStartupGag({onLocalEvent:h,client:t,notice:T,isDebugEnabled:u});const addOnceTrigger=({id:e,regex:n,action:a})=>o?.triggers?.add?(o.triggers.add({id:e,regex:n,enabled:!0,once:!0,tags:["nexsys4","probe",`probe:${e}`],action:e=>a({args:e,client:t,emit:g,pushTrace:i})}),S.push(e),i("probe-trigger:add",{id:e,regex:n instanceof RegExp?n.source:String(n)}),()=>{o?.triggers?.remove&&o.triggers.remove(e),i("probe-trigger:remove",{id:e})}):()=>{};return{capabilities:Object.freeze({promptRender:!0,separatorProbe:!0,gmcpSnapshot:!0,debugToggle:!0,destroy:!0}),send:C,sendGmcp:k,on:h,off:b,notice:T,getCommandSeparator:()=>resolveSeparator(),setSeparator(e){n=normalizeCommandSeparator(e)||null},addOnceTrigger,now:monotonicNowMs,setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),renderPrompt:R,getVariable:E,setVariable:P,emitLocal,raiseToEventStream,destroy:w,getGMCP,setDebugEnabled:c,isDebugEnabled:u,debugInfo:()=>({debugEnabled:u(),separator:resolveSeparator(),eventRegistrations:v.map(e=>({...e})),triggerIds:[...S],triggerGroups:d(),triggerSessions:p(),hasEventStream:Boolean(a?.registerEvent),hasNexActionTriggers:Boolean(o?.triggers?.add),recentTrace:m()})}},createMockAdapter=(e={})=>{const t=new Map,n=new Map,a=new Map;let o=normalizeCommandSeparator(e.separator??"|");const i=[],s=[],l=[],c=[],u=[],d=[];let p=Boolean(e.debug);const m=Math.max(1,Number(e.traceLimit||200)),g=[],pushTrace=(e,t={})=>{const n={at:nowMs(),type:e,detail:t};g.push(n),g.length>m&&g.splice(0,g.length-m),p&&console.log(`[nexSys4.mockAdapter] ${e}`,t)},normalizeEventName=e=>String(e||"").trim(),emit=(e,n)=>{const a=normalizeEventName(e),o=t.get(a);if(!a||!o?.size)return a&&pushTrace("emit",{event:a,listenerCount:0,payload:n}),0;const i=[...o];return pushTrace("emit",{event:a,listenerCount:i.length,payload:n}),i.forEach(e=>{if(t.get(a)?.has(e))try{e(n)}catch(o){console.error("nexSys4 mock adapter listener failed",{event:a,error:o})}}),i.length},on=(e,n)=>{const a=normalizeEventName(e);if(!a||"function"!=typeof n)return()=>{};let o=t.get(a);return o||(o=new Set,t.set(a,o)),o.add(n),pushTrace("on",{event:a,listenerCount:o.size}),()=>off(a,n)},off=(e,n)=>{const a=normalizeEventName(e),o=t.get(a);if(!a||!o)return!1;const i=o.delete(n);return o.size||t.delete(a),pushTrace("off",{event:a,removed:i,listenerCount:o.size}),i},removeOnceTrigger=e=>{const t=String(e||"").trim();if(!t)return!1;const n=a.delete(t);return pushTrace("probe-trigger:remove",{id:t,removed:n}),n},addOnceTrigger=({id:e,regex:t,action:n}={})=>{const o=String(e||"").trim();return o&&t instanceof RegExp&&"function"==typeof n?(a.set(o,{regex:t,action:n}),pushTrace("probe-trigger:add",{id:o,regex:t.source}),()=>removeOnceTrigger(o)):()=>{}},fireText=(e,t={})=>{const n=String(e??"");pushTrace("fireText",{text:n,detail:t,triggerCount:a.size});const o=[];return[...a.entries()].forEach(([e,i])=>{i.regex.lastIndex=0;const s=i.regex.exec(n);s&&(a.delete(e),o.push(e),i.action({args:{raw:n,line:n,text:n,groups:s.groups||{},matches:[...s]},detail:t}))}),o};return{capabilities:Object.freeze({promptRender:!0,separatorProbe:!0,gmcpSnapshot:!0,debugToggle:!0,destroy:!0}),send(e=[],t={}){const n=Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0):"string"==typeof e&&e?[e]:[];return n.length?(i.push({commands:n,context:t}),pushTrace("send",{commands:n,context:t}),emit("OutboundCommandsEvent",{commands:n,context:t}),n):[]},sendGmcp(e=[],t={}){const n=Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)];return n.length?(u.push(...n),pushTrace("sendGmcp",{requests:n,context:t}),emit("AdapterGmcpRequest",{requests:n,context:t}),n):[]},on,off,emit,notice(e,t={}){s.push({message:String(e),context:t}),pushTrace("notice",{message:String(e),context:t})},getCommandSeparator:()=>o,setSeparator:e=>(o=normalizeCommandSeparator(e),pushTrace("setSeparator",{separator:o}),o),addOnceTrigger,fireText,now:()=>"function"==typeof e.now?e.now():nowMs(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout(e){clearTimeout(e)},renderPrompt(e,t={}){const n=String(e??""),a={prompt:n,context:t};return d.push(a),pushTrace("renderPrompt",{promptLength:n.length,source:t.source||"",hasLine:Boolean(t.line)}),emit("PromptRendered",a),n},getVariable:e=>n.get(e),setVariable:(e,t)=>(n.set(e,t),t),emitLocal(e,t){const n=String(e||"").trim();if(!n)return!1;const a={event:n,payload:t};return l.push(a),pushTrace("emit:local",a),emit(n,t),!0},raiseToEventStream(e,t){const n=String(e||"").trim();if(!n)return!1;const a={topic:n,payload:t};return c.push(a),pushTrace("emit:eventstream",a),!0},destroy(){t.clear(),a.clear()},getSentBatches:()=>i,getNotices:()=>s,getLocalEvents:()=>l,getEventStreamEvents:()=>c,getGmcpRequests:()=>u,getRenderedPrompts:()=>d,getGMCP:()=>e.gmcp||{},setDebugEnabled(e){p=Boolean(e),pushTrace("debug",{enabled:p})},isDebugEnabled:()=>p,debugInfo:()=>({debugEnabled:p,separator:o,recentTrace:[...g],sentBatchCount:i.length,gmcpRequests:[...u],renderedPromptCount:d.length})}},B={list:["accentato","addiction","aeon","agoraphobia","airfisted","amnesia","anorexia","asphyxiating","asthma","betrayal","blackout","blindness","blistered","bloodfire","bound","breathless","brokenleftarm","brokenrightarm","brokenleftleg","brokenrightleg","bruisedribs","burning","cadmuscurse","calcifiedskull","calcifiedtorso","claustrophobia","clumsiness","coldfate","concussion","condemned","conflagration","confusion","constricted","convergence","corruption","crackedribs","cremated","crescendo","crushedthroat","daeggerimpale","damagedhead","damagedleftarm","damagedleftleg","damagedrightarm","damagedrightleg","darkshade","dazed","dazzled","deadening","deafness","death","deathsickness","deepsleep","degenerate","dehydrated","dementia","demonstain","depression","deteriorate","diminished","disloyalty","disrupted","dissonance","dizziness","earworm","empoweredmannaz","empoweredloshre","enlightenment","enmesh","ensorcelled","entangled","epilepsy","fear","flamefisted","flushings","fratricide","frostbite","frozen","fulminated","generosity","grievouswounds","guilt","hamstrung","haemophilia","hallucinations","hatred","healthleech","heartseed","hecatecurse","hellsight","hindered","homunculusmercury","horror","hypersomnia","hypochondria","hypothermia","icebound","icefisted","impaled","impatience","indifference","inquisition","insomnia","internalbleeding","isolation","itching","justice","kaisurge","kkractlebrand","laceratedthroat","lapsingconsciousness","latched","lethargy","lightbind","loneliness","lovers","lovestruck","lullaby","manaleech","masochism","mildtrauma","mangledleftarm","mangledleftleg","mangledrightarm","mangledrightleg","mangledhead","mindclamp","mindravaged","muddled","mycalium","nausea","numbedleftarm","numbedrightarm","pacified","palpatarfeed","paralysis","paranoia","parasite","peace","penitence","petrified","phlogisticated","pinshot","pressure","prone","pyramides","pyre","rebbies","recklessness","reeling","retribution","revealed","sandfever","scalded","scrambledbrains","scytherus","selarnia","sensitivity","serioustrauma","shadowmadness","shivering","shyness","silenced","silver","skullfractures","slashedthroat","sleeping","slickness","slimeobscure","snared","solarburn","speechless","spiritburn","stridulating","stun","stupidity","stuttering","succumbed","temperedcholeric","temperedmelancholic","temperedphlegmatic","temperedsanguine","tenderskin","tension","timeflux","timeloop","tonguetied","torntendons","transfixation","trueblind","unweavingbody","unweavingmind","unweavingspirit","vertigo","vinewreathed","vitiated","vitrified","voidfisted","voyria","waterbonds","weakenedmind","weariness","webbed","woeconstrained","whisperingmadness","wristfractures","unconsciousness","harmonic","bop","spiritwrack","bedevil","loki","moon","evileye","dragoncurse","swiftcurse"],prios:{aeon:2,concussion:2,crushedthroat:2,paralysis:2,peace:2,sleeping:3,grievouswounds:3,latched:3,dazzled:3,unweavingbody:3,unweavingmind:3,unweavingspirit:3,weariness:3,prone:3,timeloop:3,fulminated:3,spiritburn:4,heartseed:4,guilt:4,tenderskin:4,pyramides:4,parasite:4,hypochondria:4,pacified:4,depression:4,confusion:4,mindravaged:4,retribution:4,shadowmadness:4,whisperingmadness:4,hellsight:4,anorexia:5,scalded:5,mycalium:5,frostbite:5,flushings:5,rebbies:5,sandfever:5,asthma:5,healthleech:5,impatience:6,itching:6,fratricide:6,scytherus:6,clumsiness:6,kkractlebrand:6,damagedleftleg:6,darkshade:6,slickness:6,recklessness:6,dementia:6,icebound:6,bound:7,daeggerimpale:7,entangled:7,sensitivity:7,transfixation:7,webbed:7,tonguetied:7,haemophilia:7,lethargy:7,manaleech:7,dissonance:7,pyre:7,skullfractures:8,damagedrightleg:8,hypersomnia:8,earworm:0,crescendo:0,diminished:0,torntendons:9,brokenleftleg:9,brokenrightleg:9,hallucinations:9,calcifiedskull:10,calcifiedtorso:10,mangledleftleg:10,mangledrightleg:10,disrupted:10,mangledhead:10,voyria:10,crackedribs:10,hypothermia:11,impaled:11,brokenleftarm:11,brokenrightarm:11,indifference:11,addiction:11,nausea:11,deadening:11,frozen:11,shivering:11,mildtrauma:11,internalbleeding:11,stupidity:12,wristfractures:12,damagedleftarm:12,disloyalty:12,tension:13,damagedhead:13,dazed:13,burning:13,lovers:14,pressure:14,damagedrightarm:14,temperedcholeric:14,temperedmelancholic:14,temperedphlegmatic:14,temperedsanguine:14,mangledleftarm:15,mangledrightarm:15,agoraphobia:16,claustrophobia:16,generosity:16,justice:16,loneliness:16,vertigo:16,paranoia:17,serioustrauma:18,epilepsy:18,laceratedthroat:20,slashedthroat:20,stuttering:20,selarnia:21,fear:21,masochism:21,dizziness:23,shyness:23,stridulating:24,horror:26,bleeding:30,amnesia:30,blackout:30,insomnia:0,deafness:0,blindness:0,harmonic:100,bop:100,spiritwrack:100,bedevil:100,loki:100,moon:100,evileye:100,dragoncurse:100,swiftcurse:100},types:{countable:{pressure:{min:0,max:5},crescendo:{min:0,max:5},unweavingbody:{min:0,max:5},unweavingspirit:{min:0,max:5},unweavingmind:{min:0,max:5},burning:{min:0,max:5},horror:{min:0,max:5},pyre:{min:0,max:3},temperedcholeric:{min:0,max:8},temperedmelancholic:{min:0,max:8},temperedphlegmatic:{min:0,max:8},temperedsanguine:{min:0,max:8},torntendons:{min:0,max:6},crackedribs:{min:0,max:6},skullfractures:{min:0,max:6},wristfractures:{min:0,max:6}},nonServerside:{accentato:0,airfisted:0,asphyxiating:0,blistered:0,bloodfire:0,bruisedribs:0,cadmuscurse:0,coldfate:0,condemned:0,conflagration:0,constricted:0,convergence:0,corruption:0,cremated:0,death:0,deathsickness:0,deepsleep:0,degenerate:0,dehydrated:0,demonstain:0,deteriorate:0,empoweredloshre:0,empoweredmannaz:0,enlightenment:0,enmesh:0,ensorcelled:0,flamefisted:0,hamstrung:0,hatred:0,hecatecurse:0,hindered:0,homunculusmercury:0,icefisted:0,inquisition:0,isolation:0,kaisurge:0,lightbind:0,lullaby:0,mindclamp:0,muddled:0,numbedleftarm:0,numbedrightarm:0,palpatarfeed:0,petrified:0,phlogisticated:0,pinshot:0,revealed:0,scrambledbrains:0,silenced:0,silver:0,slimeobscure:0,solarburn:0,stun:0,timeflux:0,trueblind:0,vinewreathed:0,vitiated:0,vitrified:0,voidfisted:0,waterbonds:0,weakenedmind:0,unconsciousness:0},timed:{accentato:{length:20},aeon:{length:16},airfisted:{length:16},betrayal:{length:15},blackout:{length:20},blistered:{length:20},breathless:{length:3},bruisedribs:{length:30},cadmuscurse:{length:20},condemned:{length:20},constricted:{length:30},corruption:{length:45},dazzled:{length:60},dehydrated:{length:60},demonstain:{length:120},empoweredloshre:{length:12},empoweredmannaz:{length:20},enmesh:{length:5},ensorcelled:{length:20},flamefisted:{length:30},hamstrung:{length:9},heartseed:{length:11},hecatecurse:{length:16},icefisted:{length:30},inquisition:{length:30},lightbind:{length:22},lovestruck:{length:5},muddled:{length:12},numbedleftarm:{length:7.5},numbedrightarm:{length:7.5},palpatarfeed:{length:20},phlogisticated:{length:45},pinshot:{length:18},reeling:{length:20},revealed:{length:60},scalded:{length:20},scrambledbrains:{length:60},silver:{length:180},slimeobscure:{length:60},solarburn:{length:5},snared:{length:20},speechless:{length:300},stridulating:{length:15},stun:{length:3},succumbed:{length:30},timeflux:{length:60},trueblind:{length:6},unconsciousness:{length:10},vinewreathed:{length:30},vitrified:{length:45},voidfisted:{length:5},waterbonds:{length:30},weakenedmind:{length:60},woeconstrained:{length:30}},unknown:{moon:["stupidity","confusion","epilepsy","masochism","hypersomnia","hallucinations"],loki:["stupidity","clumsiness","recklessness","asthma","shyness","darkshade","paralysis","brokenleftarm","brokenrightarm","brokenleftleg","brokenrightleg","sensitivity","disloyalty","nausea","weariness","dizziness","anorexia","voyria","haemophilia","addiction","selarnia","slickness","scytherus"],evileye:["confusion","dizziness"],dragoncurse:["recklessness","clumsiness","epilepsy","dizziness","pacified","nausea","addiction","anorexia","generosity","disloyalty","sensitivity","vertigo","paranoia","stupidity","hypochondria","lethargy","shivering","frozen","impatience","paralysis","asthma","agoraphobia"],harmonic:["stupidity","recklessness"],bop:["stupidity","recklessness"],swiftcurse:["stupidity","clumsiness","recklessness","asthma","paralysis","deafness","sensitivity","nausea","weariness","dizziness","anorexia","voyria","haemophilia","addiction","impatience","claustrophobia","vertigo","agoraphobia","masochism","epilepsy","manaleech","pacified","dementia","healthleech"],bedevil:["stupidity","recklessness"]},uncurable:{bloodfire:!0,cadmuscurse:!0,conflagration:!0,death:!0,deathsickness:!0,deepsleep:!0,enlightenment:!0,insomnia:!0,isolation:!0,lullaby:!0,mindclamp:!0,palpatarfeed:!0,penitence:!0,scalded:!0,stun:!0,weakenedmind:!0}}},F=((e=>{const t=new Set(e.list),n={};for(const[a,o]of Object.entries(e.prios))n[o]||(n[o]=[]),n[o].push(a);Object.freeze({affSet:t,prioArrays:Object.freeze(n)})})(B),{herb:{length:1.6,aff_modifiers:{homunculusmercury:{multiplier:1,offset:.5}}},focus:{length:2.5,aff_modifiers:{weakenedmind:{multiplier:2,offset:.5},whisperingmadness:{multiplier:1.6,offset:0}}},sip:{length:4.5,aff_modifiers:{skullfractures:{multiplier:1,offset:1}}},moss:{length:6},tree:{length:15,aff_modifiers:{slimeobscure:{multiplier:1,offset:10}}},equilibrium:{length:20,aff_modifiers:{confusion:{multiplier:1.5,offset:0}}},balance:{length:20,aff_modifiers:{lethargy:{multiplier:1.25,offset:0}}},salve:{length:4,aff_modifiers:{timeflux:{multiplier:1.5,offset:0}}},immunity:{length:10},rebounding:{length:9},smoke:{length:1.5},dragonbreath:{length:1.5},deafness:{length:3},deaf:{length:6},blind:{length:6},speed:{length:6},wake:{length:20},sileris:{length:8},free:{length:0},voice:{length:2.5},tremolo:{length:6},homunculus:{length:12},fitness:{length:10},bloodboil:{length:10},dragonheal:{length:20},rage:{length:10},salt:{length:10},shrugging:{length:10},alleviate:{length:10},slough:{length:10},fool:{length:40},writhe:{length:6},impalewrithe:{length:4},entity:{length:4},word:{length:5},anathema:{length:5},systemOutput:{length:1}}),q=["itching","paralysis","fear","brokenrightarm","brokenleftarm","brokenrightleg","brokenleftleg","lapsingconsciousness","aeon","lovers","confusion","epilepsy","pacified","blackout","dazed","justice","slashedthroat","hellsight","peace","dazzled","shyness","dizziness","slickness","asthma","nausea","selarnia","weariness","scytherus","fratricide","haemophilia","clumsiness","hallucinations","healthleech","dementia","recklessness","anorexia","masochism","impatience","stupidity","generosity","addiction","deadening","manaleech","stuttering","paranoia","agoraphobia","loneliness","claustrophobia","vertigo","hypersomnia","shivering","frozen","burning","sensitivity","hypochondria","lethargy","disloyalty","darkshade","voyria","dissonance","phlogisticated","silver","spiritburn","tenderskin","guilt","skullfractures","wristfractures","crackedribs","torntendons","indifference","retribution","shadowmadness","parasite","depression","timeloop","crushedthroat","tension","unweavingspirit","grievouswounds","pyramides","flushings","rebbies","mycalium","sandfever","crescendo","fulminated","frostbite"],U={ferrum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ferrum",order:["darkshade","haemophilia","lethargy","addiction","scytherus","nausea","flushings","unweavingbody"],prio:0},magnesium:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat magnesium",order:["paralysis","slickness","pyramides"],prio:0},aurum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat aurum",order:["clumsiness","healthleech","sensitivity","weariness","asthma","rebbies","parasite"],prio:0},calamine:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat calamine",order:["deafness"],delay:2.5,prio:0},argentum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat argentum",order:["fratricide","masochism","loneliness","vertigo","recklessness","agoraphobia","guilt","whisperingmadness","spiritburn","tenderskin","hypochondria"],prio:0},cuprum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat cuprum",order:["pacified","peace","lovers","justice","generosity","indifference","retribution","pyre","timeloop","stridulating","diminished"],prio:0},antimony:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat antimony",order:["temperedcholeric","temperedmelancholic","temperedphlegmatic","temperedsanguine"],prio:0},arsenic:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat arsenic",prio:0},stannum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat stannum",order:["claustrophobia","paranoia","confusion","hypersomnia","hallucinations","dementia","crescendo"],prio:0},plumbum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],order:["horror","stupidity","epilepsy","dizziness","shyness","impatience","dissonance","depression","sandfever","mycalium","shadowmadness","unweavingmind","fulminated"],command:"eat plumbum",prio:0},calcite:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],order:["pressure"],command:"eat calcite",prio:0},ginseng:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ginseng",order:["darkshade","haemophilia","lethargy","addiction","scytherus","nausea","flushings","unweavingbody"],prio:0},bloodroot:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat bloodroot",order:["paralysis","slickness","pyramides"],prio:0},kelp:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat kelp",order:["clumsiness","healthleech","sensitivity","weariness","asthma","rebbies","parasite"],prio:0},hawthorn:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat hawthorn",order:["deafness"],delay:2.5,prio:0},lobelia:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat lobelia",order:["fratricide","masochism","loneliness","vertigo","recklessness","agoraphobia","guilt","whisperingmadness","spiritburn","tenderskin","hypochondria"],prio:0},bellwort:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat bellwort",order:["pacified","peace","lovers","justice","generosity","indifference","retribution","pyre","timeloop","stridulating","diminished"],prio:0},ginger:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ginger",order:["temperedcholeric","temperedmelancholic","temperedphlegmatic","temperedsanguine"],prio:0},bayberry:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat bayberry",prio:0},ash:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ash",order:["claustrophobia","paranoia","confusion","hypersomnia","hallucinations","dementia","crescendo"],prio:0},goldenseal:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat goldenseal",order:["horror","stupidity","epilepsy","dizziness","shyness","impatience","dissonance","depression","sandfever","mycalium","shadowmadness","unweavingmind","fulminated"],prio:0},pear:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],order:["pressure"],command:"eat pear",prio:0},smoke:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke cinnabar",order:["aeon","disloyalty","hellsight","manaleech","slickness","deadening","tension","unweavingspirit","earworm","dazed"],prio:0},cinnabar:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke cinnabar",order:["aeon","deadening","tension","unweavingspirit","earworm","dazed"],prio:0},malachite:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke malachite",prio:0},realgar:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke realgar",order:["disloyalty","hellsight","manaleech","slickness"],prio:0},elm:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke elm",order:["aeon","deadening","tension","unweavingspirit","earworm","dazed"],prio:0},skullcap:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke skullcap",prio:0},valerian:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke valerian",order:["disloyalty","hellsight","manaleech","slickness"],prio:0},caloric:{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply caloric",order:["frozen","shivering","frostbite"],prio:0},"epidermal to body":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply epidermal to body",order:["anorexia","itching"],prio:0},"epidermal to head":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply epidermal to head",order:["blindness","scalded","deafness","stuttering"],prio:0},"epidermal to ears":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply epidermal to ears",order:["deafness"],prio:0},"mending to head":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to head",order:["crushedthroat","dazzled"],prio:0},"mending to arms":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to arms",order:["brokenleftarm","brokenrightarm"],prio:0},"mending to legs":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to legs",order:["brokenleftleg","brokenrightleg"],prio:0},"mending to torso":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to torso",order:["burning"],prio:0},"mending to body":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to body",order:["selarnia"],prio:0},"restoration to head":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to head",order:["mangledhead","damagedhead","calcifiedskull","concussion","tonguetied","slashedthroat","laceratedthroat"],delay:4,prio:0},"restoration to torso":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to torso",order:["hypothermia","heartseed","serioustrauma","mildtrauma","calcifiedtorso","internalbleeding"],delay:4,prio:0},"restoration to arms":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to arms",order:["mangledleftarm","mangledrightarm","damagedleftarm","damagedrightarm"],delay:4,prio:0},"restoration to legs":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to legs",order:["mangledleftleg","mangledrightleg","damagedleftleg","damagedrightleg"],delay:4,prio:0},insomnia:{bals_req:["free"],bals_used:["free"],blocks:["death","hypersomnia","sleeping"],command:"insomnia",order:["insomnia"],prio:0},focus:{bals_req:["focus"],bals_used:["focus"],blocks:["death","impatience","sleeping"],command:"focus",order:["stupidity","epilepsy","dizziness","shyness","claustrophobia","paranoia","confusion","hallucinations","dementia","pacified","peace","lovers","generosity","masochism","loneliness","vertigo","recklessness","agoraphobia","anorexia","stuttering"],prio:0},"health to head":{bals_req:["sip"],bals_used:["sip"],command:"apply health to head",order:["skullfractures"],prio:0},"health to torso":{bals_req:["sip"],bals_used:["sip"],command:"apply health to torso",order:["crackedribs","grievouswounds"],prio:0},"health to arms":{bals_req:["sip"],bals_used:["sip"],command:"apply health to arms",order:["wristfractures"],prio:0},"health to legs":{bals_req:["sip"],bals_used:["sip"],command:"apply health to legs",order:["torntendons","latched","kkractlebrand"],prio:0},concentrate:{blocks:["death","sleeping","confusion"],command:"concentrate",order:["disrupted"],prio:0},immunity:{bals_req:["immunity"],bals_used:["immunity"],blocks:["death","sleeping","anorexia"],command:"sip immunity",order:["voyria"],prio:0},stand:{bals_req:["balance","equilibrium"],blocks:["death","sleeping","paralysis","brokenrightleg","brokenleftleg","damagedleftleg","damagedrightleg","mangledrightleg","mangledleftleg","entangled","transfixation","impaled","webbed","bound"],command:"stand",order:["prone"],prio:0},tree:{bals_used:["tree"],bals_req:["tree"],blocks:["death","sleeping","paralysis",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound"],command:"touch tree",order:q,prio:0},health:{bals_req:["sip"],bals_used:["sip"],blocks:["death","sleeping","anorexia"],command:"sip health",prio:0},mana:{bals_req:["sip"],bals_used:["sip"],blocks:["death","sleeping","anorexia"],command:"sip mana",prio:0},potash:{bals_req:["moss"],bals_used:["moss"],blocks:["death","sleeping","anorexia"],command:"eat potash",prio:0},moss:{bals_req:["moss"],bals_used:["moss"],blocks:["death","sleeping","anorexia"],command:"eat moss",prio:0},fitness:{bals_req:["equilibrium","balance","fitness"],bals_used:["balance","fitness"],blocks:["death","weariness","sleeping"],skills:["Monk","Shikudo","Runewarden"],command:"fitness",order:["asthma"],prio:0},bloodboil:{bals_req:["equilibrium","balance","bloodboil"],bals_used:["equilibrium","bloodboil"],blocks:["death","haemophilia","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound"],skills:["Magi"],command:"cast bloodboil",order:q,prio:0},restore:{bals_req:["balance","equilibrium"],bals_used:["equilibrium"],command:"restore",order:["brokenleftarm","brokenrightarm","brokenleftleg","brokenrightleg","skullfractures","torntendons","wristfractures","crackedribs"],prio:0},dragonflex:{bals_req:["balance"],bals_used:["balance"],command:"dragonflex",skills:["Dragon"],order:["webbed","entangled"],prio:0},dragonheal:{bals_req:["balance","equilibrium"],bals_used:["equilibrium"],command:"dragonheal",skills:["Dragon"],blocks:["death","sleeping",["recklessness","weariness"]],order:q,prio:0},dwinnu:{bals_req:["voice"],bals_used:["voice"],command:"chant dwinnu",skills:["Bard"],order:["webbed","entangled"],prio:0},rage:{bals_req:["rage"],bals_used:["rage"],command:"rage",skills:["Runewarden"],order:["pacified","peace","lovers","generosity"],prio:95},"touch soul":{command:"touch soul",blocks:["death"],order:["amnesia"],prio:101},salt:{bals_req:["equilibrium","salt"],bals_used:["salt","equilibrium"],blocks:["death","stupidity","sleeping"],skills:["Alchemist"],command:"educe salt",order:q,prio:0},siphon:{bals_req:["angel"],bals_used:["angel"],blocks:["death","sleeping"],skills:["Apostate","Priest"],command:"educe salt",order:q,prio:0},shrugging:{bals_req:["equilibrium","balance","shrugging"],bals_used:["shrugging"],blocks:["death","weariness","sleeping"],skills:["Serpent"],command:"shrugging",order:q,prio:0},slough:{bals_req:["equilibrium","balance","slough"],bals_used:["slough","balance"],blocks:["death","weariness","sleeping"],skills:["Fire Elemental Lord"],command:"slough impurities",order:q,prio:0},fool:{bals_req:["equilibrium","balance","fool"],bals_used:["fool","balance"],blocks:["death","prone","paralysis","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound"],skills:["Occultist"],command:"fling fool at me",order:q,prio:0},alleviate:{bals_req:["equilibrium","balance","alleviate"],bals_used:["alleviate","balance"],blocks:["death","paralysis","sleeping"],skills:["Blademaster"],command:"alleviate",order:q,prio:0}},normalizeCureCommand=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],V=Object.freeze(Object.fromEntries(Object.entries(U).map(([e,t])=>[e,Object.freeze({...t,command:Object.freeze(normalizeCureCommand(t.command))})]))),H=Object.freeze(Object.entries(V).reduce((e,[t,n])=>((Array.isArray(n.order)?n.order:[]).forEach(n=>{e[n]||(e[n]=[]),e[n].push(t)}),e),{})),W={acrobatics:{command:"acrobatics on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},airpocket:{command:["outr calcite","eat calcite"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping","anorexia"],serverside:!0,preempt:!0},alertness:{static:!0,command:"alertness on",bals_req:["equilibrium"],bals_used:["equilibrium"],serverside:!0},antiforce:{command:"intone gaiartha",bals_req:["balance","equilibrium"],bals_used:["word"],blocks:["death","sleeping","prone"],skills:["Depthswalker"],serverside:!0},aria:{command:"sing aria at me",bals_req:["voice"],bals_used:["voice"],blocks:["death","sleeping"],skills:["Bard"]},arctar:{command:"command orb",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["Occultist"],serverside:!1,preempt:!0},arrowcatching:{command:"arrowcatch on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},astronomy:{static:!0,command:"astronomy empower me",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!0},balancing:{command:"balancing on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},belltattoo:{command:"touch bell",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["prone","death","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0,preempt:!0},blindness:{command:["outr arsenic","eat arsenic"],bals_req:["herb"],bals_used:["herb"],blocks:["death","sleeping","anorexia"],serverside:!0},blocking:{command:"block d",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping","prone"],serverside:!1,preempt:!0},bloodshield:{command:"activate bloodshield",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],serverside:!0,preempt:!0},bodyaugment:{command:"intone mainaas",bals_req:["balance","equilibrium"],bals_used:["word"],blocks:["death","sleeping","prone"],skills:["Depthswalker"],bals_used:["word"],serverside:!0},bodyblock:{static:!0,command:"bdb",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Monk"],serverside:!0},boostedregeneration:{command:"boost regeneration",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo"],serverside:!0,preempt:!0},bulk:{command:"mutate bulk",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},cloak:{command:"touch cloak",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["prone","death","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0},chargeshield:{static:!0,command:"cast chargeshield at me",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},coldresist:{command:"activate cold resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},compoundmask:{command:["wear mask","secure mask"],bals_req:["free"],bals_used:["free"],skills:["Alchemist"],serverside:!1},consciousness:{command:"consciousness on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo","Blademaster"],serverside:!0,preempt:!0},constitution:{static:!0,command:"constitution",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo","Blademaster"],serverside:!0},curseward:{static:!0,command:"curseward",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],serverside:!0},deafness:{command:["outr calamine","eat calamine"],bals_req:["herb","deafness"],bals_used:["herb","deafness"],blocks:["death","sleeping","anorexia"],serverside:!0},deathsight:{static:!0,command:"deathsight",bals_req:["balance","equilibrium"],bals_used:["free"],serverside:!0,preempt:!0},deflect:{command:"deflect",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","prone","sleeping"],skills:["Runewarden","Paladin","Infernal","Unnamable"],serverside:!0,preempt:!0},density:{command:"wear shackle",bals_req:["salve"],bals_used:["salve"],blocks:["death","slickness","sleeping"],serverside:!0},devilmark:{static:!0,command:"devilmark",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],skills:["Occultist"],serverside:!0},diamondskin:{static:!0,command:"cast diamondskin",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},distortedaura:{static:!0,command:"distortaura",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],skills:["Occultist"],serverside:!0},dragonarmour:{static:!0,command:"dragonarmour",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],skills:["Dragon"],serverside:!0},dragonbreath:{command:"summon ice",bals_req:["balance","equilibrium","dragonbreath"],bals_used:["free","dragonbreath"],blocks:["death","prone","sleeping"],skills:["Dragon"],preempt:!0,serverside:!0},drunkensailor:{command:"drunkensailor",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},durability:{command:"intone tsuura",bals_req:["balance","equilibrium"],skills:["Depthswalker"],blocks:["death","sleeping","prone"],bals_used:["word"],serverside:!0},electricresist:{command:"activate electric resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},endure:{command:"endure",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["free"],serverside:!0,preempt:!0},enhancedform:{command:["amalgamate enhancement","imbibe enhancement"],bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!1,preempt:!0},evadeblock:{command:"evb",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Monk"],serverside:!0},eyes:{command:"mutate eyes",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},fireresist:{command:"activate fire resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},fangbarrier:{command:"apply quicksilver",bals_req:["salve","sileris"],bals_used:["salve","sileris"],blocks:["death","slickness","paralysis","sleeping"],serverside:!0},fireshroud:{command:"ignite shroud",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","slickness","paralysis","sleeping"],serverside:!0,skills:["Fire Elemental Lord"]},fury:{command:"fury on",bals_req:["balance"],bals_used:["equilibrium"],skills:["Runewarden","Unnamable"],serverside:!0},flying:{command:"fly",bals_req:["balance, equilibrium"],bals_used:["balance"],blocks:["prone","death","sleeping","entangled","transfixation","impaled","webbed","bound"],serverside:!1,clientOnly:!0},ghost:{static:!0,command:"conjure ghost",bals_req:["equilibrium"],bals_used:["equilibrium"],skills:["Serpent"],serverside:!0},gripping:{command:"grip",bals_req:["balance","equilibrium"],bals_used:["free"],skills:["Runewarden","Paladin","Infernal","Unnamable","Shikudo","Bard","Blademaster","Jester","Shaman"],serverside:!0,preempt:!0},groundwatch:{command:"groundwatch on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},"guarding right leg":{command:"guard right leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding left leg":{command:"guard left leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding right leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding right arm":{command:"guard right arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right leg","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding left arm":{command:"guard left arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding right leg","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding head":{command:"guard head",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding right leg","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding torso":{command:"guard torso",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding right leg","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},heartsfury:{command:"heartsfury",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},heldbreath:{command:"hold breath",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","asthma","sleeping"],preempt:!0,serverside:!0},hiding:{command:"hide",bals_req:["equilibrium","balance"],bals_used:["balance"],skills:["Serpent"],serverside:!0},hypersight:{command:"hypersight on",bals_req:["balance"],bals_used:["equilibrium"],serverside:!0},immunity:{command:"immunity",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Monk","Shikudo","Blademaster"],serverside:!0},insomnia:{command:"insomnia",bals_req:["free"],bals_used:["free"],blocks:["death","hypersomnia","sleeping"],serverside:!0,preempt:!0},insulation:{command:"apply caloric",bals_req:["salve"],bals_used:["salve"],blocks:["death","sleeping","slickness","hypothermia"],serverside:!0},insufflate:{command:["get phial from pack","amalgamate insufflate potency 4 stability 1","imbibe insufflate"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Alchemist"],preempt:!0,serverside:!1},ironform:{static:!0,command:["get phial from pack","amalgamate petrifying potency 4 stability 1","imbibe petrifying"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Alchemist"],preempt:!0,serverside:!1},joints:{command:"mutate joints",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},kaiboost:{command:"kai boost",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo"],preempt:!0,serverside:!0},kaitrance:{command:"kai trance",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo"],serverside:!0,preempt:!0},kola:{command:["outr quartz","eat quartz"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping","anorexia"],serverside:!0,preempt:!0},lay:{command:"sing lay",bals_req:["voice"],bals_used:["voice"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},levitating:{command:"sip levitation",bals_req:["free"],bals_used:["free"],blocks:["death","anorexia","sleeping"],serverside:!0,preempt:!0},lifevision:{static:!0,command:"lifevision",bals_req:["equilibrium"],bals_used:["equilibrium"],serverside:!0},lipreading:{static:!0,command:"lipread",bals_req:["equilibrium"],bals_used:["equilibrium"],skills:["Serpent"],serverside:!0},locketdeath:{command:"solicit locket for immortality",bals_req:["free"],bals_used:["free"],serverside:!1},magicresist:{command:"activate magic resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},blademastery:{command:"mastery on",bals_req:["balance","equilibrium"],bals_used:["free"],skills:["Runewarden","Unnamable"],preempt:!0,serverside:!0},meditate:{command:"meditate",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping","impatience"],preempt:!0,serverside:!1},mercury:{static:!0,command:"educe mercury",bals_req:["balance"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!0},metawake:{command:"metawake on",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping","lullaby"],serverside:!0,preempt:!0},mindcloak:{command:"mind cloak on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],preempt:!0,skills:["Monk","Shikudo"],serverside:!0},mindnet:{command:"mindnet on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo","Blademaster"],serverside:!0,preempt:!0},mindseye:{static:!0,command:"touch mindseye",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0},morimbuul:{command:"ldeck draw morimbuul",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],serverside:!1,preempt:!1},mounted:{command:"",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping","stunned","prone","paralysis","entangled","transfixation","impaled","webbed","bound"],preempt:!0,serverside:!1,clientOnly:!0},mouths:{command:"mutate mouths",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},nightsight:{command:"nightsight",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},numbness:{command:"numb",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo"]},"parrying right leg":{command:"parry right leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","guarding right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying left leg":{command:"parry left leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","guarding right leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying right arm":{command:"parry right arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","guarding right leg","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying left arm":{command:"parry left arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","guarding right leg","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying head":{command:"parry head",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","guarding right leg","parrying left","parrying right","parrying centre"]},"parrying torso":{command:"parry torso",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","guarding right leg","parrying head","parrying left","parrying right","parrying centre"]},"parrying left":{command:"trueparry left",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Bard"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","guarding right leg","parrying right","parrying centre"]},"parrying right":{command:"trueparry right",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Bard"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","guarding right leg","parrying centre"]},"parrying centre":{command:"trueparry centre",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Bard"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","guarding right leg"]},pinchblock:{command:"pnb",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Monk"],serverside:!0},projectiles:{command:"projectiles on",bals_req:["free"],bals_used:["free"],skills:["Monk","Shikudo","Blademaster"],blocks:["death","sleeping","mounted"],preempt:!0,serverside:!0},poisonresist:{command:"sip venom",bals_req:["free"],bals_used:["free"],blocks:["death","anorexia","sleeping"],serverside:!0,preempt:!0},precision:{command:"intone trusad",bals_req:["balance","equilibrium"],blocks:["death","sleeping","prone"],skills:["Depthswalker"],bals_used:["word"],serverside:!0},prismatic:{command:"strum lyre",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],serverside:!1},rebounding:{command:"smoke malachite",bals_req:["smoke","rebounding"],bals_used:["smoke","rebounding"],blocks:["death","asthma","sleeping"],serverside:!0},reflections:{command:"point wand235913 at me",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],preempt:!0,serverside:!1},regeneration:{command:"regeneration on",bals_req:["free"],bals_used:["free"],skills:["Monk","Shikudo"],blocks:["death","sleeping"],serverside:!0,preempt:!0},resistance:{command:"resistance",bals_req:["free"],bals_used:["free"],skills:["Runewarden","Paladin","Infernal","Monk","Shikudo","Unnamable"],blocks:["death","sleeping"],serverside:!0,preempt:!0},scales:{static:!0,command:"scales",bals_req:["balance","equilibrium"],bals_used:["balance"],skills:["Serpent"],serverside:!0},secondsight:{static:!0,command:"secondsight",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Serpent"],serverside:!0},selfishness:{command:"selfishness",bals_req:["balance","equilibrium"],bals_used:["balance"],serverside:!0},shield:{command:"touch shield",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0},shintrance:{command:"shin trance",bals_req:["free"],bals_used:["free"],skills:["Blademaster"],blocks:["death","sleeping"],serverside:!0,preempt:!0},shinclarity:{static:!0,command:"clarity",bals_req:["balance"],bals_used:["equilibrium"],skills:["Blademaster"],blocks:["death","sleeping"],serverside:!0},shinbinding:{static:!0,command:"shinbinding on",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Blademaster"],blocks:["death","sleeping"],serverside:!0},shipwarning:{command:"shipwarning on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],serverside:!0},shroud:{static:!0,command:"shroud",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Occultist","Serpent"],serverside:!0},softfocusing:{command:"softfocus on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],serverside:!0,preempt:!0},songbird:{command:"whistle for songbird",bals_req:["equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Bard"]},speed:{command:"sip speed",bals_req:["speed"],bals_used:["speed"],blocks:["death","anorexia","sleeping"],serverside:!0},splitmind:{command:"split mind",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo"],serverside:!0},skysight:{command:"manifest skysight",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping","stunned","prone","paralysis","entangled","transfixation","impaled","webbed","bound"],skills:["Air Elemental Lord"],serverside:!0},skywatch:{command:"skywatch on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},stonefist:{static:!0,command:"cast stonefist",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},stoneskin:{static:!0,command:"cast stoneskin",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},sulphur:{static:!0,command:"educe sulphur",bals_req:["balance"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!0},tekurastance:{command:"tekurastance",bals_req:["free"],bals_used:["balance"],skills:["Monk","Shikudo"]},telesense:{command:"telesense on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},temperance:{command:"sip frost",bals_req:["free"],bals_used:["free"],blocks:["death","anorexia","sleeping"],serverside:!0,preempt:!0},tempest:{command:"manifest tempest",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping","stunned","prone","paralysis","entangled","transfixation","impaled","webbed","bound"],skills:["Air Elemental Lord"],serverside:!0},mutatetentacles:{command:"mutate tentacles",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},thirdeye:{command:"thirdeye",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},tin:{static:!0,command:"educe tin",bals_req:["balance"],bals_used:["equilibrium"],blocks:["death","sleeping","prone"],skills:["Alchemist"],serverside:!0},tentacles:{command:"tentacles",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping","prone"],skills:["Occultist"],serverside:!0},toughness:{command:"toughness",bals_req:["free"],bals_used:["free"],skills:["Monk","Shikudo","Blademaster"],serverside:!0,preempt:!0},treewatch:{command:"treewatch on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},tune:{command:"sing tune",bals_req:["voice"],bals_used:["voice"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},twoartsstance:{command:"twoartsstance",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Blademaster"]},vigilance:{command:"vigilance on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},vitality:{command:"vitality on",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo"],serverside:!0},weathering:{command:"weathering on",bals_req:["free"],bals_used:["free"],skills:["Runewarden","Infernal","Paladin","Monk","Shikudo","Blademaster","Unnamable"],blocks:["death","sleeping"],serverside:!0,preempt:!0},weaving:{static:!0,command:"weaving on",bals_req:["balance","equilibrium"],bals_used:["balance"],skills:["Serpent"],serverside:!0}},normalizeDefCommand=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizeDefList=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizeDefPriority=(e,t)=>{const n=Number(e);return Number.isFinite(n)?n<0?0:n>26?26:n:0},G=Object.freeze(Object.fromEntries(Object.entries(W).map(([e,t])=>{const n=!1!==t.serverside;return[e,Object.freeze({...t,command:Object.freeze(normalizeDefCommand(t.command)),bals_req:Object.freeze(normalizeDefList(t.bals_req)),bals_used:Object.freeze(normalizeDefList(t.bals_used)),skills:Object.freeze(normalizeDefList(t.skills)),opps:Object.freeze(normalizeDefList(t.opps)),blocks:Object.freeze(t.blocks?[...t.blocks]:[]),serverside:n,preempt:!0===t.preempt,static:!0===t.static,clientOnly:!0===t.clientOnly,defaultPriority:normalizeDefPriority(t.defaultPriority,n)})]}))),Y=Object.freeze(Object.keys(G).reduce((e,t)=>(e[t]=Number(G[t].defaultPriority),e),{})),buildDefBySkillIndex=()=>{const e=Object.entries(G).reduce((e,[t,n])=>{const a=n.skills;return Array.isArray(a)&&a.forEach(n=>{e[n]||(e[n]=[]),e[n].push(t)}),e},{});return Object.freeze(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Object.freeze([...t])])))},K=(buildDefBySkillIndex(),Object.freeze({CHAR_VITALS:"nexsys4.gmcp.char.vitals",CHAR_STATUS:"nexsys4.gmcp.char.status",CHAR_AFFLICTIONS_LIST:"nexsys4.gmcp.char.afflictions.list",CHAR_AFFLICTIONS_ADD:"nexsys4.gmcp.char.afflictions.add",CHAR_AFFLICTIONS_REMOVE:"nexsys4.gmcp.char.afflictions.remove",CHAR_DEFENCES_LIST:"nexsys4.gmcp.char.defences.list",CHAR_DEFENCES_ADD:"nexsys4.gmcp.char.defences.add",CHAR_DEFENCES_REMOVE:"nexsys4.gmcp.char.defences.remove",IRE_RIFT_LIST:"nexsys4.gmcp.ire.rift.list",IRE_RIFT_CHANGE:"nexsys4.gmcp.ire.rift.change",CHAR_ITEMS_LIST:"nexsys4.gmcp.char.items.list",CHAR_ITEMS_DELTA:"nexsys4.gmcp.char.items.delta",ROOM_INFO:"nexsys4.gmcp.room.info",TARGET_INFO:"nexsys4.gmcp.target.info"})),isRecord$3=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),normalizeLocation=e=>String(e??"inv").trim().toLowerCase()||"inv",mergeDefinedRecord=(...e)=>e.reduce((e,t)=>(Object.entries(isRecord$3(t)?t:{}).forEach(([t,n])=>{void 0!==n&&(e[t]=n)}),e),{}),mergeResourceStats=(e=[],t=[])=>{const n=new Map;return[...e,...t].forEach(e=>{const t=String(e?.key||"").trim().toLowerCase();t&&n.set(t,e)}),[...n.values()]},mergeBalancePatches=(e=[],t=[])=>[...Array.isArray(e)?e:[],...Array.isArray(t)?t:[]],mergeStatusPayload=(e={},t={})=>{const n=isRecord$3(e)?e:{},a=isRecord$3(t)?t:{};return{...n,...a,status:{...isRecord$3(n.status)?n.status:{},...isRecord$3(a.status)?a.status:{}}}},mergeVitalsPayload=(e={},t={})=>{const n=isRecord$3(e)?e:{},a=isRecord$3(t)?t:{},o=isRecord$3(n.vitals)?n.vitals:{},i=isRecord$3(a.vitals)?a.vitals:{};return{...n,...a,vitals:{...o,...i,kind:i.kind||o.kind,vitals:mergeDefinedRecord(o.vitals,i.vitals),balances:mergeDefinedRecord(o.balances,i.balances),balancePatches:mergeBalancePatches(o.balancePatches,i.balancePatches),resourceStats:mergeResourceStats(Array.isArray(o.resourceStats)?o.resourceStats:[],Array.isArray(i.resourceStats)?i.resourceStats:[])}}},mergeTargetPayload=(e={},t={})=>{const n=isRecord$3(e)?e:{},a=isRecord$3(t)?t:{};return{...n,...a,target:mergeDefinedRecord(n.target,a.target)}},Q=new Map([[K.CHAR_STATUS,{keyFor:()=>K.CHAR_STATUS,merge:mergeStatusPayload}],[K.CHAR_VITALS,{keyFor:()=>K.CHAR_VITALS,merge:mergeVitalsPayload}],[K.CHAR_AFFLICTIONS_LIST,{keyFor:()=>K.CHAR_AFFLICTIONS_LIST,merge:(e,t)=>t}],[K.CHAR_DEFENCES_LIST,{keyFor:()=>K.CHAR_DEFENCES_LIST,merge:(e,t)=>t}],[K.CHAR_ITEMS_LIST,{keyFor:({payload:e}={})=>`${K.CHAR_ITEMS_LIST}:${normalizeLocation(e?.location)}`,merge:(e,t)=>t}],[K.IRE_RIFT_LIST,{keyFor:()=>K.IRE_RIFT_LIST,merge:(e,t)=>t}],[K.TARGET_INFO,{keyFor:()=>K.TARGET_INFO,merge:mergeTargetPayload}]]),Z=new Set([K.CHAR_AFFLICTIONS_ADD,K.CHAR_AFFLICTIONS_REMOVE,K.CHAR_DEFENCES_ADD,K.CHAR_DEFENCES_REMOVE,K.CHAR_ITEMS_DELTA,K.IRE_RIFT_CHANGE]),createGmcpBlockBuffer=({coalesce:e=!0}={})=>{const t=[],flush=()=>{if(!e){const e=[...t];return t.length=0,e}const n=new Map,a=[],o=[];return t.forEach(e=>{const t=Q.get(e.topic);if(t){const a=t.keyFor(e),o=n.get(a);return void(o?n.set(a,{...o,payload:t.merge(o.payload,e.payload)}):n.set(a,e))}Z.has(e.topic)?o.push(e):a.push(e)}),t.length=0,[...n.values(),...a,...o]};return{enqueue:(e={})=>{const n=String(e.topic||"").trim();n&&t.push({topic:n,payload:Object.prototype.hasOwnProperty.call(e,"payload")?e.payload:null})},flush,size:()=>t.length}},createEventBus=({label:e="nexSys4.eventBus",debugEnabled:t=!1,traceLimit:n=200}={})=>{const a=new Map,o=new Set;let i=Boolean(t);const s=Math.max(1,Number(n||200)),l=[],pushTrace=(t,n={})=>{if(!i)return null;const a={at:Date.now(),type:t,detail:n};return l.push(a),l.length>s&&l.splice(0,l.length-s),console.log(`[${e}] ${t}`,n),a},on=(e,t)=>{const n=String(e||"").trim();if(!n||"function"!=typeof t)return()=>{};const o=a.get(n)||new Set;return o.add(t),a.set(n,o),pushTrace("on",{topic:n,listenerCount:o.size}),()=>off(n,t)},off=(e,t)=>{const n=String(e||"").trim(),o=a.get(n);if(!n||!o)return!1;const i=o.delete(t);return o.size||a.delete(n),pushTrace("off",{topic:n,removed:i,listenerCount:o.size}),i},onAny=e=>"function"!=typeof e?()=>{}:(o.add(e),pushTrace("onAny",{listenerCount:o.size}),()=>offAny(e)),offAny=e=>{const t=o.delete(e);return pushTrace("offAny",{removed:t,listenerCount:o.size}),t},emit=(e,t)=>{const n=String(e||"").trim();if(!n)return 0;const s=[...a.get(n)||[]],l=[...o];return i&&pushTrace("emit",{topic:n,listenerCount:s.length,anyListenerCount:l.length,payload:t}),s.forEach(e=>{try{e(t,n)}catch(a){console.error("nexSys4 event bus handler failed",{topic:n,error:a})}}),l.forEach(e=>{try{e(t,n)}catch(a){console.error("nexSys4 event bus global handler failed",{topic:n,error:a})}}),s.length+l.length};return{on,off,onAny,offAny,emit,clear:()=>{a.clear(),o.clear()},setDebugEnabled(e){i=Boolean(e)},debugInfo:()=>({label:e,debugEnabled:i,topics:[...a.keys()],anyListenerCount:o.size,recentTrace:[...l]})}},X=Object.freeze({RUNTIME_STARTED:"nexsys4.runtime.started",RUNTIME_STOPPED:"nexsys4.runtime.stopped",RAW_GMCP:"nexsys4.raw.gmcp",SYSTEM_VITALS_CHANGED:"nexsys4.system.vitals.changed",SYSTEM_HEALTH_CHANGED:"nexsys4.system.health.changed",SYSTEM_MANA_CHANGED:"nexsys4.system.mana.changed",SYSTEM_RAGE_CHANGED:"nexsys4.system.rage.changed",SYSTEM_BLEED_CHANGED:"nexsys4.system.bleed.changed",SYSTEM_STATUS_CHANGED:"nexsys4.system.status.changed",SYSTEM_CLASS_CHANGED:"nexsys4.system.class.changed",SYSTEM_TARGET_CHANGED:"nexsys4.system.target.changed",SYSTEM_ROOM_CHANGED:"nexsys4.system.room.changed",SYSTEM_ROOM_ITEMS_CHANGED:"nexsys4.system.room_items.changed",SYSTEM_RUNTIME_CHANGED:"nexsys4.system.runtime.changed",SYSTEM_PAUSE_CHANGED:"nexsys4.system.pause.changed",SYSTEM_PAUSED:"nexsys4.system.paused",SYSTEM_UNPAUSED:"nexsys4.system.unpaused",SYSTEM_LOADED:"nexsys4.system.loaded",SYSTEM_SETTINGS_CHANGED:"nexsys4.system.settings.changed",SYSTEM_BASELINE_CHANGED:"nexsys4.system.baseline.changed",SYSTEM_DEATH_DETECTED:"nexsys4.system.death.detected",SYSTEM_MOUNT_CHANGED:"nexsys4.system.mount.changed",SYSTEM_WIELDED_CHANGED:"nexsys4.system.wielded.changed",UI_CONFIG_CHANGED:"nexsys4.ui.config.changed",AFF_GOT:"nexsys4.aff.got",AFF_LOST:"nexsys4.aff.lost",AFF_STACK_CHANGED:"nexsys4.aff.stack.changed",AFF_PRIORITY_CHANGED:"nexsys4.aff.priority.changed",DEF_GOT:"nexsys4.def.got",DEF_LOST:"nexsys4.def.lost",DEF_PRIORITY_CHANGED:"nexsys4.def.priority.changed",BALANCE_GOT:"nexsys4.balance.got",BALANCE_LOST:"nexsys4.balance.lost",BALANCE_RESET:"nexsys4.balance.reset",BALANCE_DURATION_OBSERVED:"nexsys4.balance.duration.observed",BALANCE_TIMER_RESTARTED:"nexsys4.balance.timer.restarted",EQBAL_GOT:"nexsys4.eqbal.got",LIMB_HIT:"nexsys4.limb.hit",LIMB_RESET:"nexsys4.limb.reset",LIMB_STAGE_CHANGED:"nexsys4.limb.stage.changed",LIMB_DECAY:"nexsys4.limb.decay",CACHE_AMOUNT_CHANGED:"nexsys4.cache.amount.changed",CACHE_INVENTORY_LIST:"nexsys4.cache.inventory.list",CACHE_RIFT_LIST:"nexsys4.cache.rift.list",CACHE_PRECACHE_CHANGED:"nexsys4.cache.precache.changed",ITEM_ROOM_ADDED:"nexsys4.item.room.added",ITEM_ROOM_REMOVED:"nexsys4.item.room.removed",ITEM_ROOM_UPDATED:"nexsys4.item.room.updated",ITEM_ROOM_LIST:"nexsys4.item.room.list",ITEM_INV_ADDED:"nexsys4.item.inv.added",ITEM_INV_REMOVED:"nexsys4.item.inv.removed",ITEM_INV_UPDATED:"nexsys4.item.inv.updated",ITEM_INV_LIST:"nexsys4.item.inv.list",QUEUE_UPDATED:"nexsys4.queue.updated",QUEUE_FLUSHED:"nexsys4.queue.flushed",QUEUE_DEFERRED:"nexsys4.queue.deferred",QUEUE_CLEARED:"nexsys4.queue.cleared",QUEUE_SENT:"nexsys4.queue.sent",QUEUE_FIRED:"nexsys4.queue.fired",QUEUE_FIRED_ACK:"nexsys4.queue.fired.ack",SERVERSIDE_AFF_PRIORITY_SET:"nexsys4.serverside.aff.priority.set",SERVERSIDE_DEF_PRIORITY_SET:"nexsys4.serverside.def.priority.set",SERVERSIDE_DIRTY:"nexsys4.serverside.dirty",SERVERSIDE_EVALUATED:"nexsys4.serverside.evaluated",SERVERSIDE_RULE_CHANGED:"nexsys4.serverside.rule.changed",RULE_ADDED:"nexsys4.rule.added",RULE_REMOVED:"nexsys4.rule.removed",RULE_ENABLED:"nexsys4.rule.enabled",RULE_DISABLED:"nexsys4.rule.disabled",RULE_PACK_LOADED:"nexsys4.rule.pack.loaded",RULE_PACK_UNLOADED:"nexsys4.rule.pack.unloaded",RULE_ORDER_CHANGED:"nexsys4.rule.order.changed",RULE_ACTIVATED:"nexsys4.rule.activated",RULE_DEACTIVATED:"nexsys4.rule.deactivated"}),J=Object.freeze({IDLE:"IDLE",BLOCKED:"BLOCKED",PROBING_SEPARATOR:"PROBING_SEPARATOR",BOOTING:"BOOTING",AWAITING_SNAPSHOTS:"AWAITING_SNAPSHOTS",CAPTURING_SNAPSHOTS:"CAPTURING_SNAPSHOTS",RUNNING:"RUNNING",FAILED:"FAILED"}),isRuntimeReadyPhase=e=>e===J.RUNNING,ee=Object.freeze({OUTPUT_COMPLETE:"SystemOutputCompleteEvent",STARTUP_BEGIN:"CuringStartupBeginEvent",STARTUP_COMPLETE:"CuringStartupCompleteEvent"}),te=Object.freeze(["IRE.Rift.Request","IRE.Time.Request","Char.Skills.Get","Char.Items.Inv"]),buildStartupSnapshotCommands=()=>[`echo SystemEvent ${ee.STARTUP_BEGIN}`,"curing status","curing priority list","curing queue list","curing predictions","curingset list","curing priority defence list","def","score","date",`echo SystemEvent ${ee.STARTUP_COMPLETE}`],buildStartupSnapshotBurst=()=>({gmcpRequests:[...te],commands:buildStartupSnapshotCommands()}),re=Object.freeze(["status","affPriorities","defPriorities"]),normalizeTimeoutMs=(e,t=1e3)=>{const n=Number(e);return Number.isFinite(n)&&n>0?Math.floor(n):t},normalizeRetryCount=(e,t=0)=>{const n=Number(e);return Number.isFinite(n)&&n>=0?Math.floor(n):t},createStartupCoordinator=({adapter:e,systemModel:t,serverside:n,persistence:a,seedBaselineFromObservedStartup:o=()=>{},noticeCenter:i,buildPersistenceSnapshot:s,startupTimeoutMs:l=1e3,maxStartupRetries:c=0,publishStartupPhase:u=()=>{},setRuntimePhase:d=(e,n={})=>{t.setRuntime({phase:e,...n})}})=>{let p=!1,m=0,g=null,h=null;const b=normalizeTimeoutMs(l),y=normalizeRetryCount(c),clearConvergenceTimer=()=>{g&&(e.clearTimeout(g),g=null)},getMissingRequiredTopics=()=>{if("function"==typeof n.getMissingStartupFlags)return n.getMissingStartupFlags(re);const e=n.getStartupStatus();return re.filter(t=>!e.flags?.[t])},formatMissingRequiredTopics=(e=[])=>e.length?` Missing required captures: ${e.join(", ")}.`:"",startConvergenceTimer=()=>{clearConvergenceTimer(),g=e.setTimeout(()=>{if(p)return;const e=getMissingRequiredTopics();retryOrFail(e.length?`Startup snapshots did not converge within ${b}ms.`:`Startup closing fence did not arrive within ${b}ms.`,{phase:"snapshot-timeout-retry",source:"startup-timeout",missingRequired:e})},b)},complete=(e="startup-check")=>{clearConvergenceTimer(),d(J.RUNNING,{startupFailureMessage:""}),o(),a.save(s()),u("startup-complete"),i.publish("output","nexSys startup complete",{source:e})},fail=(e,{source:t="startup-failed",missingRequired:n=[]}={})=>{clearConvergenceTimer(),p=!0;const a=`${e}${formatMissingRequiredTopics(n)}`;return d(J.FAILED,{paused:!0,startupFailureMessage:a}),u("startup-failed"),i.publish("output",a,{force:!0,source:t,title:"nexSys4 startup failed: ",fg:"#fee2e2",bg:"#450a0a",titleFg:"#ffffff",titleBg:"#7f1d1d"}),!1},retryOrFail=(e,{phase:t,source:n,missingRequired:a=[]}={})=>!p&&(m>=y?fail(`${e} Exhausted ${y} startup retr${1===y?"y":"ies"}.`,{source:n,missingRequired:a}):(m+=1,requestSnapshots(h,t||"snapshot-retry",{source:n,retry:m,missingRequired:a}),!1)),requestSnapshots=(t,n="snapshot-request",a={})=>{if(h="function"==typeof t?t:h,"function"!=typeof h)return[];const o={source:"startup-snapshots",phase:n,attempt:m+1,retryCount:m,...a},{gmcpRequests:i,commands:s}=buildStartupSnapshotBurst();d(J.AWAITING_SNAPSHOTS),u(n),e.sendGmcp(i,o);const l=h(s,o);return startConvergenceTimer(),l};return{reset:()=>{p=!1,m=0,clearConvergenceTimer(),n.resetStartupStatus?.(),d(J.IDLE,{startupFailureMessage:""})},requestSnapshots,handleFenceBegin:()=>!p&&(d(J.CAPTURING_SNAPSHOTS),u("snapshot-begin"),!0),handleFenceComplete:(e="snapshot:complete:text")=>{if(p)return!1;u("snapshot-complete");const t=n.getStartupStatus();t.flags.queue||n.updateObservedQueue([]),t.flags.predictions||n.updateObservedPredictions({}),t.flags.curingsets||n.observeCuringSets();const a=getMissingRequiredTopics();return a.length?retryOrFail("Startup closing fence arrived before required snapshots converged.",{phase:"snapshot-retry",source:e,missingRequired:a}):(p=!0,complete(e),!0)},dispose(){clearConvergenceTimer()},isResolved:()=>p}},ne=Object.freeze({STARTED:"nexSys.start(): startup initiated.",ALREADY_STARTED:"nexSys.start(): runtime is already started.",STARTUP_PENDING:"nexSys.start(): runtime is already started; startup is still in progress.",STARTUP_FAILED:"nexSys.start(): runtime startup failed. Check the console and in-game notices.",SEPARATOR_REQUIRED:"nexSys.start(): command separator missing. Configure one in Nexus or saved nexSys settings before starting.",SEPARATOR_PROBE:"nexSys.start(): command separator unknown; sending config to auto-detect. Startup will resume on capture."}),createRuntimeStartupOrchestrator=({adapter:e,systemModel:t,persistenceApi:n,startup:a,noticeCenter:o,syncDebugMode:i,isStarted:s,markStarted:l,setRuntimePhase:c,publishStartupPhase:u,attachEventWiring:d,promptPresenter:p,publishRuntimeStarted:m,hydrateCacheFromAdapterGmcp:g,runtimeControl:h,commandDispatcher:b})=>{const y=resolveAdapterCapabilities(e);let v=null;const continueStartup=()=>{l(),c(J.BOOTING,{startupFailureMessage:""}),u("init"),m(),d(),p.start(),g(),h.setPaused(!0,{source:"startup",forceCuringSync:!0}),a.requestSnapshots(b.sendCommands)};return{dispose(){v&&(v(),v=null)},start(){if(s()){const e=t.getRuntime().phase;return e===J.FAILED?ne.STARTUP_FAILED:e===J.RUNNING?ne.ALREADY_STARTED:ne.STARTUP_PENDING}if(v)return ne.SEPARATOR_PROBE;t.setSettings({commandSeparator:void 0},{setBaseline:!0}),n.loadPersistence(),a.reset();const l=normalizeCommandSeparator(t.getSettings().commandSeparator),d=normalizeCommandSeparator(e.getCommandSeparator()),p=l||d;if(i(),!p){if(!y.separatorProbe){const e="Command separator missing. Configure one in Nexus or saved nexSys settings before starting.";return c(J.BLOCKED,{paused:!0,startupFailureMessage:e}),u("separator-missing"),o.publish("output",e,{force:!0,source:"separator-missing",title:"nexSys4: "}),ne.SEPARATOR_REQUIRED}return c(J.PROBING_SEPARATOR),u("separator-probe"),o.publish("output","Command separator not configured. Sending config to auto-detect...",{source:"separator-probe",title:"nexSys4: "}),v=e.addOnceTrigger({id:"nexsys4-separator-probe",regex:/\bCommandSeparator\s+(?<sep>\S+)/,action:({args:n})=>{const a=normalizeCommandSeparator(String(n.groups?.sep||"").trim());a&&(v=null,e.setSeparator(a),t.setSettings({commandSeparator:a},{setBaseline:!0}),continueStartup())}}),e.send(["config"],{source:"separator-probe"}),ne.SEPARATOR_PROBE}return t.getSettings().commandSeparator!==p&&t.setSettings({commandSeparator:p},{setBaseline:!0}),continueStartup(),ne.STARTED}}},ae=["hp","maxhp","mp","maxmp","ep","maxep","wp","maxwp"],oe="nexsys4.parsed_gmcp_vitals",hasOwn$6=(e,t)=>Boolean(e)&&Object.prototype.hasOwnProperty.call(e,t),parseNumericVital=(e,t)=>{if(!hasOwn$6(e,t))return;const n=toNumber(e[t],NaN);return Number.isFinite(n)?n:void 0},parseResourceStat=e=>{const[t,n]=String(e).split(":");if(!t||void 0===n)return null;const a=t.trim().toLowerCase(),o=n.trim();if(!a)return null;const i=toNumber(o.endsWith("%")?o.slice(0,-1):o,NaN),s=toOptionalBooleanFromYesNo(o);return{key:a,value:Number.isFinite(i)?i:o,balanceState:Number.isFinite(i)?void 0:s}},toBalancePatches=(e={})=>Object.entries(e).filter(([,e])=>void 0!==e).map(([e,t])=>({id:e,have:t})),parseGmcpVitals=(e={})=>{const t=e&&"object"==typeof e&&!Array.isArray(e)?e:{},n=ae.reduce((e,n)=>({...e,[n]:parseNumericVital(t,n)}),{}),a={balance:toOptionalBooleanFromYesNo(t.bal),equilibrium:toOptionalBooleanFromYesNo(t.eq)};return{kind:oe,vitals:n,balances:a,balancePatches:toBalancePatches(a),resourceStats:(Array.isArray(t.charstats)?t.charstats:[]).map(parseResourceStat).filter(Boolean)}},toParsedGmcpVitals=(e={})=>"nexsys4.parsed_gmcp_vitals"!==e?.kind?parseGmcpVitals(e):{...e,balancePatches:Array.isArray(e.balancePatches)?e.balancePatches:toBalancePatches(e.balances||{})},hasOwn$5=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),isRecord$2=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),readFirstDefined=(e,t=[])=>{for(const n of t)if(hasOwn$5(e,n)&&void 0!==e[n]&&null!==e[n])return e[n]},parseAffName=(e={})=>{if("string"==typeof e)return e.toLowerCase();if(Array.isArray(e)){const t=e[0];if("string"==typeof t)return t.toLowerCase();const n=t&&"object"==typeof t?t:{};return String(n.affliction||n.defence||n.name||n.aff||n.def||"").toLowerCase()}const t=e&&"object"==typeof e?e:{};return String(t.affliction||t.defence||t.name||t.aff||t.def||"").toLowerCase()},parseRoomItems=(e={})=>Array.isArray(e?.items)?e.items.reduce((e,t)=>{const n=String(t?.name||t?.item||"").trim();return n?(e[n]=(e[n]||0)+1,e):e},{}):e?.items&&"object"==typeof e.items?{...e.items}:{},normalizeItemLocation$2=(e={},t=e?.item||e)=>String(e?.location??t?.parentid??t?.location??"inv").toLowerCase(),normalizeInventoryDeltaName=e=>"string"==typeof e?e:e?.name||e?.item||"",createInventoryDelta=(e,t={})=>{const n=t?.item||t,a=normalizeItemLocation$2(t,n);return{location:a,inventoryDelta:{id:n?.id??t?.id,location:a,name:normalizeInventoryDeltaName(n),icon:n?.icon??null,attrib:n?.attrib??null,amount:n?.amount??n?.count??n?.qty??t?.amount??t?.count,delta:n?.delta??t?.delta,action:e.split(".").pop(),direction:e.endsWith("remove")?"remove":e.endsWith("add")?"add":void 0},dirtyReason:`gmcp:${e}`}},hasInventoryIdentity=(e={})=>void 0!==e.id&&null!==e.id&&""!==e.id||Boolean(String(e.name||"").trim()),normalizeTargetRecord=(e={})=>{if(!isRecord$2(e))return{};const t={},n=readFirstDefined(e,["id","ID"]),a=readFirstDefined(e,["Text","text","short_desc"]),o=readFirstDefined(e,["HP","hp","hpperc"]);return void 0!==n&&(t.id=n),void 0!==a&&(t.text=a),void 0!==o&&(t.hp=o),t},createGmcpApplier=({emit:e=()=>{}}={})=>{const translate=(e={})=>{const t=[],emitTranslated=(e,n)=>{t.push({topic:e,payload:n})},n=normalizeTag(e.tag||e.rawTag||e.gmcp_method),a=e.payload;switch(n){case"char.vitals":emitTranslated(K.CHAR_VITALS,{vitals:parseGmcpVitals(a||{})});break;case"char.status":emitTranslated(K.CHAR_STATUS,{status:a||{}});break;case"char.afflictions.list":emitTranslated(K.CHAR_AFFLICTIONS_LIST,{afflictions:Array.isArray(a)?a:[]});break;case"char.afflictions.add":{const e=parseAffName(a);e&&emitTranslated(K.CHAR_AFFLICTIONS_ADD,{name:e});break}case"char.afflictions.remove":{const e=parseAffName(a);e&&emitTranslated(K.CHAR_AFFLICTIONS_REMOVE,{name:e});break}case"char.defences.list":emitTranslated(K.CHAR_DEFENCES_LIST,{defences:Array.isArray(a)?a:[]});break;case"char.defences.add":{const e=parseAffName(a);e&&emitTranslated(K.CHAR_DEFENCES_ADD,{name:e});break}case"char.defences.remove":{const e=parseAffName(a);e&&emitTranslated(K.CHAR_DEFENCES_REMOVE,{name:e});break}case"ire.rift.list":emitTranslated(K.IRE_RIFT_LIST,{rift:a||{}});break;case"ire.rift.change":emitTranslated(K.IRE_RIFT_CHANGE,{change:a||{}});break;case"char.items.list":emitTranslated(K.CHAR_ITEMS_LIST,{location:normalizeItemLocation$2(a),items:Array.isArray(a?.items)?a.items:[]});break;case"char.items.add":case"char.items.remove":case"char.items.update":{const e=createInventoryDelta(n,a||{}),t=hasInventoryIdentity(e.inventoryDelta)?e.inventoryDelta:null;emitTranslated(K.CHAR_ITEMS_DELTA,{inventoryDelta:t,dirtyReason:e.dirtyReason});break}case"room.info":emitTranslated(K.ROOM_INFO,{room:a||{},roomItems:parseRoomItems(a||{})});break;case"ire.target.info":emitTranslated(K.TARGET_INFO,{target:normalizeTargetRecord(a||{})})}return t};return{translate,apply(t){translate(t).forEach(({topic:t,payload:n})=>{e(t,n)})}}},ie=Object.freeze({inv:X.ITEM_INV_LIST,room:X.ITEM_ROOM_LIST}),se=Object.freeze({inv:Object.freeze({add:X.ITEM_INV_ADDED,remove:X.ITEM_INV_REMOVED,update:X.ITEM_INV_UPDATED}),room:Object.freeze({add:X.ITEM_ROOM_ADDED,remove:X.ITEM_ROOM_REMOVED,update:X.ITEM_ROOM_UPDATED})}),normalizeItemLocation$1=e=>String(e||"").trim().toLowerCase()||"inv",createItemTopicNotifier=({publishPublic:e=()=>{}}={})=>{const notifyList=(t,n)=>{const a=ie[normalizeItemLocation$1(t)];a&&e(a,{location:normalizeItemLocation$1(t),items:Array.isArray(n)?n:[]})},notifyDelta=t=>{const n=normalizeItemLocation$1(t.location),a=String(t.action||t.direction||"").trim().toLowerCase(),o=se[n]?.[a];o&&e(o,t)};return{notify({topic:e,payload:t}={}){e!==K.CHAR_ITEMS_DELTA?e===K.CHAR_ITEMS_LIST&¬ifyList(t?.location,t?.items):t?.inventoryDelta&¬ifyDelta(t.inventoryDelta)}}},fallbackClone=(e,t=new WeakMap)=>{if(null==e)return e;if("object"!=typeof e)return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e)){const n=[];return t.set(e,n),e.forEach(e=>n.push(fallbackClone(e,t))),n}if(e instanceof Set){const n=new Set;return t.set(e,n),[...e].forEach(e=>n.add(fallbackClone(e,t))),n}if(e instanceof Map){const n=new Map;return t.set(e,n),[...e.entries()].forEach(([e,a])=>{n.set(fallbackClone(e,t),fallbackClone(a,t))}),n}const n={};return t.set(e,n),Object.entries(e).forEach(([e,a])=>{"function"!=typeof a&&(n[e]=fallbackClone(a,t))}),n},deepClone$1=e=>{if("function"==typeof structuredClone)try{return structuredClone(e)}catch{}try{return JSON.parse(JSON.stringify(e))}catch{return fallbackClone(e)}},deepMerge=(e,t)=>{const n=Array.isArray(e)?[...e]:{...e||{}};return Object.entries(t||{}).forEach(([e,t])=>{!t||"object"!=typeof t||Array.isArray(t)||!n[e]||"object"!=typeof n[e]||Array.isArray(n[e])?n[e]=t:n[e]=deepMerge(n[e],t)}),n},deepFreeze=e=>e&&"object"==typeof e?(Object.isFrozen(e)||(Object.freeze(e),Object.keys(e).forEach(t=>deepFreeze(e[t]))),e):e,createSnapshotCache=({getVersion:e=()=>0,buildSnapshot:t=()=>({})}={})=>{let n=NaN,a=null;return()=>{const o=e();return a&&n===o||(n=o,a=deepFreeze(t())),a}},le=Object.freeze(["head","torso","leftarm","rightarm","leftleg","rightleg"]),ce=Object.freeze({healthy:0,damaged:1,broken:2,mangled:3}),ue=new Set(Object.keys(ce)),de=Object.freeze({head:"head",torso:"torso",leftarm:"leftarm",rightarm:"rightarm",leftleg:"leftleg",rightleg:"rightleg"}),pe={brokenleftarm:{limb:"leftarm",stage:"broken"},brokenrightarm:{limb:"rightarm",stage:"broken"},brokenleftleg:{limb:"leftleg",stage:"broken"},brokenrightleg:{limb:"rightleg",stage:"broken"},damagedhead:{limb:"head",stage:"damaged"},damagedleftarm:{limb:"leftarm",stage:"damaged"},damagedrightarm:{limb:"rightarm",stage:"damaged"},damagedleftleg:{limb:"leftleg",stage:"damaged"},damagedrightleg:{limb:"rightleg",stage:"damaged"},mangledhead:{limb:"head",stage:"mangled"},mangledleftarm:{limb:"leftarm",stage:"mangled"},mangledrightarm:{limb:"rightarm",stage:"mangled"},mangledleftleg:{limb:"leftleg",stage:"mangled"},mangledrightleg:{limb:"rightleg",stage:"mangled"},mildtrauma:{limb:"torso",stage:"damaged"},serioustrauma:{limb:"torso",stage:"mangled"}},normalizeLimbId=e=>{const t=String(e||"").trim().toLowerCase().replace(/\s+/g,"");return de[t]||t},buildAfflictionStageSnapshot=(e=[])=>{const t=le.reduce((e,t)=>(e[t]="healthy",e),{});return e.forEach(e=>{const n=pe[String(e||"").trim().toLowerCase()];if(!n)return;const a=t[n.limb]||"healthy";(ce[n.stage]??0)>(ce[a]??0)&&(t[n.limb]=n.stage)}),t},createLimbModel=({now:e=Date.now,setTimeoutFn:t,clearTimeoutFn:n,damageResetMs:a=18e4}={})=>{const o=new Set;let i=0;const s=new Map,l=new Map,c=le.reduce((t,n)=>(t[n]={id:n,percent:0,hits:0,stage:"healthy",updatedAt:e()},t),{}),emit=(e,t)=>{i+=1,t?.limb&&s.set(t.limb,(s.get(t.limb)??0)+1),o.forEach(n=>n(e,t))},cancelResetTimer=e=>{const t=l.get(e);null!=t&&(n(t),l.delete(e))},scheduleResetTimer=n=>{cancelResetTimer(n);const o=t(()=>{l.delete(n);const t=c[n];!t||t.percent<=0||(t.percent=0,t.hits=0,t.updatedAt=e(),emit("LimbDecay",{limb:n,value:deepClone$1(t)}))},a);l.set(n,o)},buildEntrySnapshot=(e={})=>({id:e.id,percent:e.percent,hits:e.hits,stage:e.stage,updatedAt:e.updatedAt}),u=new Map,getEntrySnapshot=e=>c[e]?(u.has(e)||u.set(e,createSnapshotCache({getVersion:()=>s.get(e)??0,buildSnapshot:()=>buildEntrySnapshot(c[e])})),u.get(e)()):null,d=createSnapshotCache({getVersion:()=>i,buildSnapshot:()=>le.reduce((e,t)=>(e[t]=getEntrySnapshot(t),e),{})}),setStage=(t,n,a="manual")=>{const o=normalizeLimbId(t),i=String(n||"").trim().toLowerCase();if(!c[o]||!ue.has(i))return!1;if(c[o].stage===i)return!1;const s=c[o],l=s.stage;return s.stage=i,s.percent=0,s.hits=0,s.updatedAt=e(),cancelResetTimer(o),emit("LimbStageChanged",{limb:o,stage:i,previousStage:l,source:a,value:deepClone$1(s)}),!0},applyAfflictionTransition=(e,t)=>{const n=pe[String(e||"").toLowerCase()];return!!n&&(t?(setStage(n.limb,n.stage,"affliction"),!0):"damaged"===n.stage?(setStage(n.limb,"healthy","affliction"),!0):"mangled"===n.stage?(setStage(n.limb,"damaged","affliction"),!0):"broken"===n.stage&&(setStage(n.limb,"healthy","affliction"),!0))},syncFromAfflictions=(e=[],t="affliction-list")=>{const n=buildAfflictionStageSnapshot(e);return le.reduce((e,a)=>n[a]===c[a].stage?e:setStage(a,n[a],t)||e,!1)};return{onChange:e=>(o.add(e),()=>o.delete(e)),list:()=>[...le],snapshot:()=>d(),hit:(t,n,a="manual")=>{const o=normalizeLimbId(t),i=Number(n);if(!c[o]||!Number.isFinite(i)||i<=0)return!1;const s=c[o],l=s.stage;s.percent=Math.max(0,s.percent+i),s.hits+=1,s.updatedAt=e();let u=null;return"healthy"===s.stage&&s.percent>=100?(s.stage="damaged",s.percent=0,s.hits=0,u="damaged",cancelResetTimer(o)):"damaged"===s.stage&&s.percent>=100?(s.stage="mangled",s.percent=0,s.hits=0,u="mangled",cancelResetTimer(o)):scheduleResetTimer(o),emit("LimbHit",{limb:o,amount:i,source:a,transition:u,previousStage:l,value:deepClone$1(s)}),u&&emit("LimbStageChanged",{limb:o,stage:s.stage,previousStage:l,source:a,value:deepClone$1(s)}),!0},reset:(t,n="manual")=>{const a=normalizeLimbId(t);if(!c[a])return!1;const o=c[a],i=o.stage;return(0!==o.percent||0!==o.hits||"healthy"!==i)&&(o.percent=0,o.hits=0,o.stage="healthy",o.updatedAt=e(),cancelResetTimer(a),emit("LimbReset",{limb:a,source:n,previousStage:i,value:deepClone$1(o)}),"healthy"!==i&&emit("LimbStageChanged",{limb:a,stage:"healthy",previousStage:i,source:n,value:deepClone$1(o)}),!0)},setStage,applyAfflictionTransition,syncFromAfflictions,dispose(){le.forEach(cancelResetTimer)},get:e=>getEntrySnapshot(normalizeLimbId(e))}},buildLimbSnapshot=(e,t)=>{const n=e?.get?.(t);return n?{id:n.id,percent:n.percent,hits:n.hits,stage:n.stage}:null},didLimbChange=(e,t)=>Boolean(e&&t)&&(e.percent!==t.percent||e.hits!==t.hits||e.stage!==t.stage),syncTorsoTrauma=({affModel:e,serverside:t,stage:n,source:a,at:o})=>{switch(n){case"damaged":return e?.lose?.("serioustrauma",{source:a,at:o}),e?.got?.("mildtrauma",{source:a,at:o}),t?.removePrediction?.("serioustrauma"),t?.addPrediction?.("mildtrauma"),!0;case"mangled":return e?.lose?.("mildtrauma",{source:a,at:o}),e?.got?.("serioustrauma",{source:a,at:o}),t?.removePrediction?.("mildtrauma"),t?.addPrediction?.("serioustrauma"),!0;case"healthy":return e?.lose?.("mildtrauma",{source:a,at:o}),e?.lose?.("serioustrauma",{source:a,at:o}),t?.removePrediction?.("mildtrauma"),t?.removePrediction?.("serioustrauma"),!0;default:return!1}},buildObserveResult=(e,t,n,a=!1)=>({changed:didLimbChange(t,n)||a,traumaSynced:a,stageChanged:t?.stage!==n?.stage,limb:e,before:t,after:n}),applyObservedLimbHit=({limbModel:e,affModel:t,serverside:n,limb:a,amount:o,source:i="manual",at:s})=>{const l=normalizeLimbId(a),c=buildLimbSnapshot(e,l);if(!c)return{changed:!1,traumaSynced:!1,stageChanged:!1,limb:l,before:null,after:null};e.hit(l,o,i);const u=buildLimbSnapshot(e,l),d=didLimbChange(c,u),p=c.stage!==u?.stage,m=!("torso"!==l||!p)&&syncTorsoTrauma({affModel:t,serverside:n,stage:u?.stage,source:i,at:s});return{changed:d||m,traumaSynced:m,stageChanged:p,limb:l,before:c,after:u}},applyObservedLimbReset=({limbModel:e,affModel:t,serverside:n,limb:a,source:o="manual",at:i})=>{const s=normalizeLimbId(a),l=buildLimbSnapshot(e,s);return l?(e.reset(s,o),buildObserveResult(s,l,buildLimbSnapshot(e,s),"torso"===s&&syncTorsoTrauma({affModel:t,serverside:n,stage:"healthy",source:o,at:i}))):{changed:!1,traumaSynced:!1,stageChanged:!1,limb:s,before:null,after:null}},applyObservedLimbStage=({limbModel:e,affModel:t,serverside:n,limb:a,stage:o,source:i="manual",at:s})=>{const l=normalizeLimbId(a),c=buildLimbSnapshot(e,l);if(!c)return{changed:!1,traumaSynced:!1,stageChanged:!1,limb:l,before:null,after:null};e.setStage(l,o,i);const u=buildLimbSnapshot(e,l),d=c.stage!==u?.stage,p=!("torso"!==l||!d)&&syncTorsoTrauma({affModel:t,serverside:n,stage:u?.stage,source:i,at:s});return{changed:didLimbChange(c,u)||p,traumaSynced:p,stageChanged:d,limb:l,before:c,after:u}},me=new Set(["char.items.add","char.items.remove","char.items.update","ire.rift.change"]),registerAdapterEvents=({register:e,options:t,queueTranslatedGmcp:n,publishPublic:a,publishPublicScoped:o,markDirty:i,flushCycle:s,outputCycle:l,startup:c,runtimeControl:u,queueController:d,serverside:p,balanceModel:m,adapter:g,systemModel:h,affModel:b,cacheModel:y,limbModel:v,savePersistence:S})=>{e("GmcpEvent",e=>{n(e);const o=normalizeTag(e?.tag||e?.rawTag||e?.gmcp_method);!0===t.publishRawGmcp&&a(X.RAW_GMCP,{source:"adapter-gmcp",tag:o,payload:e?.payload??e?.gmcp_args??null}),me.has(o)||i("gmcp-buffered")}),e("PromptEvent",()=>s("prompt")),e("ForcePopulateEvent",()=>s("force")),e("SystemOutputCompleteEvent",()=>{l.markComplete()&&s("output-complete")}),e(ee.STARTUP_BEGIN,()=>{c.handleFenceBegin()}),e(ee.STARTUP_COMPLETE,()=>{c.handleFenceComplete("snapshot:complete:text")&&(u.setPaused(!1,{source:"startup-complete"}),a(X.SYSTEM_LOADED,{source:"startup-complete"}))}),e("QueueFiredTextEvent",e=>{e?.queueName&&d.acknowledgeFired(e.queueName)}),e("QueueSentTextEvent",e=>{const t=e?.queueId||e?.queueName||e?.queueType;t&&d.acknowledgeSent(t,e)}),e("AllQueuesClearedTextEvent",()=>{d.listQueues().forEach(e=>{d.clear(e)})}),e("CommandSeparatorChangedTextEvent",({separator:e}={})=>{const t=normalizeCommandSeparator(e);t&&(g?.setSeparator(t),h?.setSettings({commandSeparator:t},{setBaseline:!0}),S?.())}),e("BalanceStateTextEvent",e=>{const t=String(e?.id||"").trim().toLowerCase();if(!t)return;const n=String(e?.reason||e?.source||"text"),a=Number(e?.durationSeconds);if(!0!==e?.have){if(!1===e?.have){if(Number.isFinite(a)&&a>0)return void m.observeServerUse(t,a,{source:n});m.lose(t,n)}}else m.gain(t,n)}),e("CacheRiftOutTextEvent",(e={})=>{const t=y?.observeRiftOutText?.({item:e.item,amount:e.amount,riftAmount:e.riftAmount,source:e.source||"text-trigger"});t?.name&&i(`text:cache-rift-out:${t.name}`)}),e("CacheRiftInTextEvent",(e={})=>{const t=y?.observeRiftInText?.({item:e.item,amount:e.amount,riftAmount:e.riftAmount,source:e.source||"text-trigger"});t?.name&&i(`text:cache-rift-in:${t.name}`)}),e("CacheInventoryEmptyTextEvent",(e={})=>{const t=y?.observeInventoryEmptyText?.({item:e.item,source:e.source||"text-trigger"});t?.name&&(i(`text:cache-empty:${t.name}`),g?.sendGmcp?.(["Char.Items.Inv"],{source:"cache-inventory-empty-text",item:e.item||"",name:t.name}))}),e("CacheCurativeConsumedTextEvent",(e={})=>{const t=y?.observeCurativeConsumedText?.({item:e.item,amount:e.amount,source:e.source||"text-trigger"});t?.name&&i(`text:cache-consume:${t.name}`)}),e("CacheInventoryDeltaTextEvent",(e={})=>{const t=y?.observeInventoryDeltaText?.({item:e.item,amount:e.amount,delta:e.delta,source:e.source||"text-trigger"});t?.name&&i(`text:cache-${t.delta>0?"add":"remove"}:${t.name}`)}),e("LimbDamageTextEvent",e=>{const t=applyObservedLimbHit({limbModel:v,affModel:b,serverside:p,limb:e?.limb,amount:e?.amount,source:String(e?.source||"text-trigger"),at:e?.at});t.changed&&"torso"===t.limb&&t.stageChanged&&i(`text-limb-torso:${t.after?.stage||"unknown"}`)}),e("LimbResetTextEvent",e=>{const t=applyObservedLimbReset({limbModel:v,affModel:b,serverside:p,limb:e?.limb,source:String(e?.source||"text-trigger"),at:e?.at});t.changed&&"torso"===t.limb&&i("text-limb-torso:healthy")}),e("ServersideStatusTextEvent",e=>{p.parseStatusLine(e||{})}),e("ServersideStatusSnapshotCompleteTextEvent",()=>{p.markStartupCaptured("status")}),e("ServersideAffPrioSnapshotOpenTextEvent",()=>{p.beginObservedAffPrioritySnapshot()}),e("ServersideAffPrioSnapshotCompleteTextEvent",()=>{p.completeObservedAffPrioritySnapshot()}),e("ServersideDefPrioSnapshotOpenTextEvent",()=>{p.beginObservedDefPrioritySnapshot()}),e("ServersideDefPrioSnapshotCompleteTextEvent",()=>{p.completeObservedDefPrioritySnapshot()}),e("ServersideAffPrioTextEvent",e=>{if(!e?.aff)return;const t=Number(e.prio),n=p.updateObservedAffPriority(e.aff,t);if("live-confirmation"===e.source){const a="function"==typeof b?.normalizePriorityName?b.normalizePriorityName(e.aff):String(e.aff||"").toLowerCase();o(X.SERVERSIDE_AFF_PRIORITY_SET,{id:a,priority:t,source:"live-confirmation",accepted:n},a)}}),e("ServersideDefPrioTextEvent",e=>{if(!e?.def)return;const t=String(e.def||"").toLowerCase(),n=Number(e.prio),a=p.updateObservedDefPriority(t,n);"live-confirmation"===e.source&&o(X.SERVERSIDE_DEF_PRIORITY_SET,{id:t,priority:n,source:"live-confirmation",accepted:a},t)}),e("ServersideQueueListTextEvent",e=>{p.updateObservedQueue(e?.queue||[])}),e("ServersidePredictionsTextEvent",e=>{p.updateObservedPredictions(e?.predictions||{})}),e("ServersideCuringSetsTextEvent",e=>{p.observeCuringSets({sets:e?.sets||[],activeSet:e?.activeSet||""})}),e("SnappedGotTrackableEvent",()=>{p.setTrackable("snapTrack",!0,{source:"text",label:"Snapped"}),g.setTimeout(()=>{p.setTrackable("snapTrack",!1,{source:"timer",label:"Snapped"})},8e3)})},fe={short:{rl:"right leg",ll:"left leg",ra:"right arm",la:"left arm",h:"head",tt:"torso",c:"centre",l:"left",r:"right"},long:{"right leg":"rl","left leg":"ll","right arm":"ra","left arm":"la",head:"h",torso:"tt",centre:"c",left:"l",right:"r"}},ge=["e","w","s","n","ne","se","sw","nw","in","out","d","u"],he={e:"east",w:"west",s:"south",n:"north",ne:"northeast",se:"southeast",sw:"southwest",nw:"northwest",in:"in",out:"out",down:"down",d:"down",u:"up",up:"up"},be={e:"west",w:"east",s:"north",n:"south",ne:"southwest",se:"northwest",sw:"northeast",nw:"southeast",in:"out",out:"in",down:"up",d:"up",u:"down",up:"down"},ye={east:"e",west:"w",south:"s",north:"n",northeast:"ne",northwest:"nw",southeast:"se",southwest:"sw",in:"in",out:"out",down:"d",up:"up"},ve=["Alchemist","Apostate","Bard","Blademaster","Depthswalker","Dragon","Druid","Infernal","Jester","Magi","Monk","Shikudo","Occultist","Paladin","Pariah","Priest","Psion","Runewarden","Sentinel","Serpent","Shaman","Sylvan","Unnamable","Air Elemental Lord","Earth Elemental Lord","Fire Elemental Lord","Water Elemental Lord"],normalizeClassName=(e="")=>{const t=String(e||"").trim();return t?/\bdragon\b/i.test(t)?"Dragon":ve.find(e=>e.toLowerCase()===t.toLowerCase())||t:""},classesMatch=(e="",t="")=>normalizeClassName(e).toLowerCase()===normalizeClassName(t).toLowerCase(),classListIncludes=(e=[],t="")=>{const n=Array.isArray(e)?e:e?[e]:[];if(!n.length)return!0;const a=normalizeClassName(t).toLowerCase();return n.some(e=>normalizeClassName(e).toLowerCase()===a)},hasOwn$4=(e,t)=>Object.prototype.hasOwnProperty.call(e||{},t),normalizeCommandList=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizeStringList=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizePrioritySeed=e=>{const t=Number(e);return Number.isFinite(t)?t<0?0:t>26?26:t:0},normalizeDefenseConfig=(e={})=>{const t=!1!==e.serverside;return deepFreeze({...deepClone$1(e),command:normalizeCommandList(e.command),bals_req:normalizeStringList(e.bals_req),bals_used:normalizeStringList(e.bals_used),blocks:deepClone$1(e.blocks||[]),skills:normalizeStringList(e.skills),opps:normalizeStringList(e.opps),serverside:t,preempt:!0===e.preempt,static:!0===e.static,clientOnly:!0===e.clientOnly,defaultPriority:normalizePrioritySeed(e.defaultPriority)})},createDefEntry=(e,t,n,a)=>({id:e,have:!1,lastChangeAt:0,order:t,seedStatic:n.static,defaultPriority:a,priorityOverride:null,command:n.command,bals_req:n.bals_req,bals_used:n.bals_used,blocks:n.blocks,skills:n.skills,opps:n.opps,serverside:n.serverside,preempt:n.preempt,static:n.static,clientOnly:n.clientOnly}),resolveDefensePriority=(e={})=>null===e.priorityOverride||void 0===e.priorityOverride?Number(e.defaultPriority??-1):Number(e.priorityOverride),matchesClass=(e=[],t="")=>!e||!e.length||(Array.isArray(t)?t.some(t=>classListIncludes(e,t)):classListIncludes(e,t)),isActiveStaticPriority=e=>{const t=Number(e);return Number.isFinite(t)&&t>0},createInitialDefenseState=({defTable:e={},defPrios:t={}}={})=>{const n=Object.keys(e),a={},o={};return n.forEach((n,i)=>{const s=normalizeDefenseConfig(e[n]),l=hasOwn$4(t,n)?normalizePrioritySeed(t[n]):s.defaultPriority;o[n]=l,a[n]=createDefEntry(n,i,s,l)}),{list:n,state:a,defaultPrios:o}},normalizeObservedDefenseId=e=>("string"==typeof e?e:String(e?.name||e?.id||e||"")).toLowerCase().replace(/\s*\(([^)]+)\)/g," $1").trim(),normalizeItemLocation=e=>String(e||"").trim().toLowerCase()||"inv",registerGmcpBridges=({registerGmcpListener:e,systemModel:t,balanceModel:n,affModel:a,defModel:o,cacheModel:i,limbModel:s,serverside:l,adapter:c,markDirty:u})=>{const requestInventoryResync=e=>{c?.sendGmcp?.(["Char.Items.Inv"],{source:e})};e(K.CHAR_VITALS,({vitals:e}={})=>{t.updateVitals(e),n.applyVitals(e),u("gmcp:vitals")}),e(K.CHAR_STATUS,({status:e}={})=>{t.updateStatus(e||{}),u("gmcp:status")}),e(K.CHAR_AFFLICTIONS_LIST,({afflictions:e}={})=>{const t=Array.isArray(e)?e:[];a.applyList(t),"function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted&&s.syncFromAfflictions(a.currentSorted(),"gmcp-list"),u("gmcp:aff-list")}),e(K.CHAR_AFFLICTIONS_ADD,({name:e}={})=>{e&&(a.got(e,{source:"gmcp-add"}),"function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"gmcp-add"):s.applyAfflictionTransition(e,!0),u(`gmcp:aff-add:${e}`))}),e(K.CHAR_AFFLICTIONS_REMOVE,({name:e}={})=>{e&&(a.lose(e,{source:"gmcp-remove"}),"function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"gmcp-remove"):s.applyAfflictionTransition(e,!1),l.getTransientPrioAff()===e&&l.clearPrioAff(),u(`gmcp:aff-remove:${e}`))}),e(K.CHAR_DEFENCES_LIST,({defences:e}={})=>{o.applyList(Array.isArray(e)?e:[],"gmcp-list"),u("gmcp:def-list")}),e(K.CHAR_DEFENCES_ADD,({name:e}={})=>{if(!e)return;const t=normalizeObservedDefenseId(e);if(t){if(t.startsWith("parrying "))for(const e of o.list())e!==t&&e.startsWith("parrying ")&&o.get(e)?.have&&o.setHave(e,!1,"gmcp-parry-implied-remove");o.setHave(t,!0,"gmcp-add"),"mindseye"===t&&requestInventoryResync("cache-visibility-resync:mindseye"),u(`gmcp:def-add:${t}`)}}),e(K.CHAR_DEFENCES_REMOVE,({name:e}={})=>{if(!e)return;const t=normalizeObservedDefenseId(e);t&&(o.setHave(t,!1,"gmcp-remove"),"blindness"===t&&requestInventoryResync("cache-visibility-resync:blindness"),u(`gmcp:def-remove:${t}`))}),e(K.IRE_RIFT_LIST,({rift:e}={})=>{i.observeRiftSnapshot?.(e||{}),u("gmcp:rift-list")}),e(K.IRE_RIFT_CHANGE,({change:e}={})=>{i.ignoreRiftChange?.(e||{})}),e(K.CHAR_ITEMS_LIST,({items:e,location:n}={})=>{const a=normalizeItemLocation(n),o=Array.isArray(e)?e:[];if("inv"===a){i.observeInventorySnapshot?.(o);const toWieldedItem=e=>e?{id:e.id??null,name:String(e.name||""),icon:e.icon||null}:null;t.updateWielded("left",toWieldedItem(o.find(e=>"l"===e.attrib))),t.updateWielded("right",toWieldedItem(o.find(e=>"L"===e.attrib)))}u("gmcp:items-list")}),e(K.CHAR_ITEMS_DELTA,({inventoryDelta:e}={})=>{if(e){const n=normalizeItemLocation(e.location),a="inv"===n||"room"===n?i.observeItemDelta?.(e):null;if(a?.changed&&a.name&&u(`gmcp:room-pickup:${a.name}`),"inv"===n&&"update"===e.action){const{id:n,name:a,icon:o,attrib:i}=e,s=t.getChar().wielded;s.left?.id===n&&"l"!==i&&t.updateWielded("left",null),s.right?.id===n&&"L"!==i&&t.updateWielded("right",null),"l"===i?t.updateWielded("left",{id:n,name:a,icon:o}):"L"===i&&t.updateWielded("right",{id:n,name:a,icon:o})}}}),e(K.ROOM_INFO,({room:e,roomItems:n}={})=>{t.updateRoom(e||{}),t.setRoomItems(n||{}),u("gmcp:room-info")}),e(K.TARGET_INFO,({target:e}={})=>{t.updateTarget(e||{}),u("gmcp:target")})},normalizeBridgeSegment=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9._-]/g,""),isSystemOutputBalance=(e={})=>"systemoutput"===normalizeBridgeSegment(e?.id),Se=Object.freeze(["balance","equilibrium"]),getCounterpartEqbalBalance=e=>{const t=normalizeBridgeSegment(e);return Se.includes(t)?"balance"===t?"equilibrium":"balance":null},buildEqbalRecoveredPayload=(e,t={})=>{const n=normalizeBridgeSegment(t?.id),a=getCounterpartEqbalBalance(n);return a&&e?.have?.(n)&&e.have(a)?{...t,id:"eqbal",have:!0,recoveredId:n,balances:{balance:Boolean(e.have("balance")),equilibrium:Boolean(e.have("equilibrium"))}}:null},getRecoveredBalanceSeconds=(e={})=>{const t=Number(e?.durationMs);if(Number.isFinite(t)&&t>0)return t/1e3;const n=Number(e?.lastLostAtMs),a=Number(e?.lastGotAtMs);return Number.isFinite(n)&&Number.isFinite(a)&&a>n?(a-n)/1e3:Number(e?.durationSeconds??e?.baseDurationSeconds)},formatBalanceNotice=(e={})=>{const t=String(e?.id||"").trim(),n=getRecoveredBalanceSeconds(e);return t?!Number.isFinite(n)||n<=0?t:`${t}(${n.toFixed(2)})`:""},shouldEchoPriorityChange=(e={})=>["manual","public-api"].includes(String(e?.source||"").toLowerCase()),formatPriorityNotice=(e={},t)=>{const n=String(t||"").trim(),a=Number(e?.priority??e?.value),o=normalizeBridgeSegment(e?.domain),i=o&&"keepup"!==o?` (${o})`:!0===e?.static?" (static)":"";return n?Number.isFinite(a)?`${n} ${a}${i}`:`${n}${i}`:""},xe=Object.freeze({RuleAdded:X.RULE_ADDED,RuleRemoved:X.RULE_REMOVED,RuleEnabled:X.RULE_ENABLED,RuleDisabled:X.RULE_DISABLED,RulePackLoaded:X.RULE_PACK_LOADED,RulePackUnloaded:X.RULE_PACK_UNLOADED,RuleOrderChanged:X.RULE_ORDER_CHANGED}),we=Object.freeze({hp:{topic:X.SYSTEM_HEALTH_CHANGED,maxKey:"maxhp"},mp:{topic:X.SYSTEM_MANA_CHANGED,maxKey:"maxmp"},rage:{topic:X.SYSTEM_RAGE_CHANGED},bleed:{topic:X.SYSTEM_BLEED_CHANGED}}),buildVitalResourcePayload=(e={},t,{maxKey:n}={})=>{const a=e.changedFields?.[t];if(!a)return null;const o=a.current,i=a.previous;return{max:n?e.current?.[n]:o,current:o,previous:i,diff:o-i}},publishVitalResourceTopics=(e,t={})=>{Object.entries(we).forEach(([n,a])=>{const o=buildVitalResourcePayload(t,n,a);o&&e(a.topic,o)})},registerSystemModelBridge=({registerModelListener:e,publishPublic:t,syncDebugMode:n,systemModel:a,serverside:o,handleVitalsSideEffects:i})=>{e(a.onChange((e,a={})=>{switch(e){case"VitalsUpdated":t(X.SYSTEM_VITALS_CHANGED,a),publishVitalResourceTopics(t,a),i();break;case"StatusUpdated":t(X.SYSTEM_STATUS_CHANGED,a);break;case"ClassChanged":o.setBaselineFromRuntime(),t(X.SYSTEM_CLASS_CHANGED,a);break;case"TargetUpdated":t(X.SYSTEM_TARGET_CHANGED,a);break;case"RoomUpdated":t(X.SYSTEM_ROOM_CHANGED,a);break;case"RoomItemsUpdated":t(X.SYSTEM_ROOM_ITEMS_CHANGED,a);break;case"RuntimeStateChanged":t(X.SYSTEM_RUNTIME_CHANGED,a);break;case"PauseStateChanged":t(X.SYSTEM_PAUSE_CHANGED,a),t(a.paused?X.SYSTEM_PAUSED:X.SYSTEM_UNPAUSED,a);break;case"SettingsChanged":a.changedKeys?.includes("debug")&&n(),t(X.SYSTEM_SETTINGS_CHANGED,a);break;case"BaselineIntentChanged":t(X.SYSTEM_BASELINE_CHANGED,a);break;case"WieldedUpdated":t(X.SYSTEM_WIELDED_CHANGED,a);break;case"MountUpdated":t(X.SYSTEM_MOUNT_CHANGED,a);break;case"DeathDetected":t(X.SYSTEM_DEATH_DETECTED,a)}}))},registerAfflictionModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,systemModel:o,affModel:i,serverside:s})=>{e(i.onChange((e,l={})=>{switch("AffGot"!==e&&"AffLost"!==e||"aeon"!==l?.name||o.setRuntime({aeonLocked:i.haveAff("aeon")}),e){case"AffGot":n(X.AFF_GOT,l,l.name),a.publish("affGot",l.name,{...l,action:"got"});break;case"AffLost":n(X.AFF_LOST,l,l.name),a.publish("affLost",l.name,{...l,action:"lost"}),s.getTransientPrioAff()===l.name&&s.clearPrioAff();break;case"AffStackChanged":n(X.AFF_STACK_CHANGED,l,l.name);break;case"AffPriorityChanged":t(X.AFF_PRIORITY_CHANGED,l),shouldEchoPriorityChange(l)&&a.publish("priority",formatPriorityNotice(l,l.name),{...l,action:"set",subject:"aff"})}}))},registerDefenseModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,defModel:o})=>{e(o.onChange((e,o={})=>{switch(e){case"DefGot":n(X.DEF_GOT,o,o.id),a.publish("defGot",o.id,{...o,action:"got"});break;case"DefLost":n(X.DEF_LOST,o,o.id),a.publish("defLost",o.id,{...o,action:"lost"});break;case"DefPriorityChanged":t(X.DEF_PRIORITY_CHANGED,o),shouldEchoPriorityChange(o)&&a.publish("priority",formatPriorityNotice(o,o.id),{...o,action:"set",subject:"def"})}}))},registerBalanceModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,balanceModel:o})=>{e(o.onChange((e,i={})=>{switch(e){case"BalanceGot":n(X.BALANCE_GOT,i,i.id);{const e=buildEqbalRecoveredPayload(o,i);e&&t(X.EQBAL_GOT,e)}isSystemOutputBalance(i)||a.publish("balanceRecovered",formatBalanceNotice(i),{...i,action:"got"});break;case"BalanceLost":n(X.BALANCE_LOST,i,i.id),a.publish("balanceLost",i.id,{...i,action:"lost"});break;case"BalanceReset":n(X.BALANCE_RESET,i,i.id);break;case"BalanceDurationObserved":n(X.BALANCE_DURATION_OBSERVED,i,i.id);break;case"BalanceLossTimerRestarted":t(X.BALANCE_TIMER_RESTARTED,i)}}))},registerLimbModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,limbModel:a})=>{e(a.onChange((e,a={})=>{switch(e){case"LimbHit":n(X.LIMB_HIT,a,a.limb);break;case"LimbReset":n(X.LIMB_RESET,a,a.limb);break;case"LimbStageChanged":n(X.LIMB_STAGE_CHANGED,a,a.limb);break;case"LimbDecay":t(X.LIMB_DECAY,a)}}))},registerCacheModelBridge=({registerModelListener:e,publishPublic:t,cacheModel:n})=>{e(n.onChange((e,n={})=>{switch(e){case"CacheAmountChanged":t(X.CACHE_AMOUNT_CHANGED,n);break;case"CacheInventoryListApplied":t(X.CACHE_INVENTORY_LIST,n);break;case"CacheRiftListApplied":t(X.CACHE_RIFT_LIST,n);break;case"CacheDesiredPrecacheChanged":t(X.CACHE_PRECACHE_CHANGED,n)}}))},registerQueueModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,queueController:o})=>{e(o.onChange((e,i={})=>{switch(e){case"QueueFlushed":t(X.QUEUE_FLUSHED,i),a.publish("output",`Queue sent: ${i.queueId}`,i);break;case"QueueDeferred":t(X.QUEUE_DEFERRED,i);break;case"QueueUpdated":t(X.QUEUE_UPDATED,i);break;case"QueueCleared":t(X.QUEUE_CLEARED,i);break;case"QueueSentAcknowledged":{const e=o.getQueue(i.queueId)?.name||i.queueName||i.queueId;n(X.QUEUE_SENT,{...i,queueName:e},e);break}case"QueueFiredAcknowledged":{const e=o.getQueue(i.queueId)?.name||i.queueId;t(X.QUEUE_FIRED_ACK,i),n(X.QUEUE_FIRED,{...i,queueName:e},e);break}}}))},registerServersideModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,serverside:o,onServersideDirty:i})=>{e(o.onChange((e,o={})=>{const s=xe[e];if(s)t(s,o);else switch(e){case"TrackableGot":a.publish("trackableGot",o.label||o.name,{...o,action:"got"});break;case"TrackableLost":a.publish("trackableLost",o.label||o.name,{...o,action:"lost"});break;case"ServersideDirty":i?.(o),t(X.SERVERSIDE_DIRTY,o);break;case"ServersideEvaluated":t(X.SERVERSIDE_EVALUATED,o);break;case"RuleActivated":n(X.RULE_ACTIVATED,o,o.id);break;case"RuleDeactivated":n(X.RULE_DEACTIVATED,o,o.id)}}))},registerModelEventBridges=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,syncDebugMode:o,systemModel:i,affModel:s,defModel:l,balanceModel:c,cacheModel:u,limbModel:d,queueController:p,serverside:m,handleVitalsSideEffects:g,onServersideDirty:h})=>{registerSystemModelBridge({registerModelListener:e,publishPublic:t,syncDebugMode:o,systemModel:i,serverside:m,handleVitalsSideEffects:g}),registerAfflictionModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,systemModel:i,affModel:s,serverside:m}),registerDefenseModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,defModel:l}),registerBalanceModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,balanceModel:c}),registerLimbModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,limbModel:d}),registerCacheModelBridge({registerModelListener:e,publishPublic:t,cacheModel:u}),registerQueueModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,queueController:p}),registerServersideModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,serverside:m,onServersideDirty:h})},Ce="Flying above ",ke=new Set(["dragon","air elemental lord","earth elemental lord","fire elemental lord","water elemental lord"]),registerCrossModelBridges=({registerModelListener:e,systemModel:t,defModel:n})=>{e(t.onChange((e,t={})=>{if("RoomUpdated"===e){const e=String(t?.current?.name||"").startsWith(Ce);return void n.setHave("flying",e,"room-info")}"ClassChanged"===e&&ke.has(String(t?.class||"").toLowerCase())&&n.setHave("mounted",!1,"class-change")}))},createRuntimeEventWiring=({adapter:e,internalEvents:t})=>{let n=[];const addUnsubscriber=e=>{"function"==typeof e&&n.push(e)},dispose=()=>{n.forEach(e=>{try{e()}catch(t){console.error("nexSys4 unsubscribe failure",t)}}),n=[]};return{attach:({options:n,queueTranslatedGmcp:a,publishPublic:o,publishPublicScoped:i,noticeCenter:s,syncDebugMode:l,systemModel:c,affModel:u,defModel:d,balanceModel:p,cacheModel:m,limbModel:g,queueController:h,serverside:b,markDirty:y,invalidateOutput:v,flushCycle:S,outputCycle:x,startup:w,runtimeControl:C,savePersistence:k})=>{dispose();const register=(t,n)=>{addUnsubscriber(e.on(t,n))},registerModelListener=e=>{addUnsubscriber(e)},registerGmcpListener=(e,n)=>{registerModelListener(t.on(e,n))};registerAdapterEvents({register,options:n,queueTranslatedGmcp:a,publishPublic:o,publishPublicScoped:i,markDirty:y,flushCycle:S,outputCycle:x,startup:w,runtimeControl:C,queueController:h,serverside:b,balanceModel:p,adapter:e,systemModel:c,affModel:u,cacheModel:m,limbModel:g,savePersistence:k}),register("OutboundCommandsEvent",(e={})=>{if("output-cycle"!==e?.context?.source)return;const t=Array.isArray(e.commands)?e.commands.filter(Boolean).map(e=>String(e)):[];if(!t.length)return;const n=c.getSettings().commandSeparator||"|";s.publish("output",`(${t.join(n)})`,{action:"commands",commands:t,source:e?.context?.cycleSource||e?.context?.source||"output-cycle"})}),registerGmcpBridges({registerGmcpListener,systemModel:c,balanceModel:p,affModel:u,defModel:d,cacheModel:m,limbModel:g,serverside:b,adapter:e,markDirty:y}),registerModelEventBridges({registerModelListener,publishPublic:o,publishPublicScoped:i,noticeCenter:s,syncDebugMode:l,systemModel:c,affModel:u,defModel:d,balanceModel:p,cacheModel:m,limbModel:g,queueController:h,serverside:b,handleVitalsSideEffects:C.handleVitalsSideEffects,onServersideDirty:v}),registerCrossModelBridges({registerModelListener,systemModel:c,defModel:d})},dispose}},createRuntimeControlApi=({systemModel:e,serverside:t,queueController:n,noticeCenter:a,markDirty:o,onResume:i,dispatchCommands:s})=>{let l=!1;const syncServersideCuring=(e,t={})=>"function"!=typeof s?[]:s([e?"curing off":"curing on"],{source:t.source||(e?"runtime-pause":"runtime-unpause")}),setPaused=(t,a={})=>{const s=Boolean(t),l=e.getRuntime();return!(!s&&!isRuntimeReadyPhase(l.phase))&&(l.paused===s?(a.forceCuringSync&&syncServersideCuring(s,a),!1):(e.setRuntime({paused:s}),o(s?"paused":"unpaused"),syncServersideCuring(s,a),!s&&isRuntimeReadyPhase(e.getRuntime().phase)&&(n.flushDeferred(),i?.(a.source||"unpause")),!0))},ensureSlowModeRule=()=>{t.lifecycle.add({id:"runtime-slow-mode",pack:"runtime",evaluate:()=>e.getRuntime().slowMode?{settings:{sipHealthAt:30,sipManaAt:20,mossHealthAt:20,mossManaAt:20,batch:!1}}:null})};return{setPaused,setSlowMode(t){const n=Boolean(t);return e.getRuntime().slowMode!==n&&(e.setRuntime({slowMode:n}),ensureSlowModeRule(),o(n?"slow-on":"slow-off"),!0)},handleVitalsSideEffects(){const t=e.getChar().dead;t&&!l&&(setPaused(!0,{source:"death-detected"}),a.publish("output","Death detected. Pausing nexSys runtime.",{source:"death-detected"})),!t&&l&&(setPaused(!1,{source:"death-recover"}),a.publish("output","Resurrection detected. Resuming nexSys runtime.",{source:"death-recover"})),l=t}}};function $constructor(e,t,n){function init(n,a){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:a,constr:_,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,a);const o=_.prototype,i=Object.keys(o);for(let e=0;e<i.length;e++){const t=i[e];t in n||(n[t]=o[t].bind(n))}}const a=n?.Parent??Object;class Definition extends a{}function _(e){var t;const a=n?.Parent?new Definition:this;init(a,e),(t=a._zod).deferred??(t.deferred=[]);for(const n of a._zod.deferred)n();return a}return Object.defineProperty(Definition,"name",{value:e}),Object.defineProperty(_,"init",{value:init}),Object.defineProperty(_,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(_,"name",{value:e}),_}var Ee=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},_e=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(d=globalThis).__zod_globalConfig??(d.__zod_globalConfig={});var Pe=globalThis.__zod_globalConfig;function config(e){return e&&Object.assign(Pe,e),Pe}function getEnumValues(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function jsonStringifyReplacer(e,t){return"bigint"==typeof t?t.toString():t}function cached(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function nullish(e){return null==e}function cleanRegex(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function floatSafeRemainder(e,t){const n=e/t,a=Math.round(n),o=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-a)<o?0:n-a}var Te=Symbol("evaluating");function defineLazy(e,t,n){let a;Object.defineProperty(e,t,{get(){if(a!==Te)return void 0===a&&(a=Te,a=n()),a},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function assignProp(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function mergeDefs(...e){const t={};for(const n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function esc(e){return JSON.stringify(e)}function slugify(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Ae="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function isObject(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var Re=cached(()=>{if(Pe.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function isPlainObject$2(e){if(!1===isObject(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==isObject(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function shallowClone(e){return isPlainObject$2(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Me=new Set(["string","number","symbol"]);function escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function clone$1(e,t,n){const a=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(a._zod.parent=e),a}function normalizeParams(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}function optionalKeys(e){return Object.keys(e).filter(t=>"optional"===e[t]._zod.optin&&"optional"===e[t]._zod.optout)}var De={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function pick(e,t){const n=e._zod.def,a=n.checks;if(a&&a.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const e={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(e[a]=n.shape[a])}return assignProp(this,"shape",e),e},checks:[]}))}function omit(e,t){const n=e._zod.def,a=n.checks;if(a&&a.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const a={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete a[e]}return assignProp(this,"shape",a),a},checks:[]}))}function extend(e,t){if(!isPlainObject$2(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return clone$1(e,mergeDefs(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return assignProp(this,"shape",n),n}}))}function safeExtend(e,t){if(!isPlainObject$2(t))throw new Error("Invalid input to safeExtend: expected a plain object");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return assignProp(this,"shape",n),n}}))}function merge(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return assignProp(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function partial(e,t,n){const a=t._zod.def.checks;if(a&&a.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return clone$1(t,mergeDefs(t._zod.def,{get shape(){const a=t._zod.def.shape,o={...a};if(n)for(const t in n){if(!(t in a))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=e?new e({type:"optional",innerType:a[t]}):a[t])}else for(const t in a)o[t]=e?new e({type:"optional",innerType:a[t]}):a[t];return assignProp(this,"shape",o),o},checks:[]}))}function required(e,t,n){return clone$1(t,mergeDefs(t._zod.def,{get shape(){const a=t._zod.def.shape,o={...a};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=new e({type:"nonoptional",innerType:a[t]}))}else for(const t in a)o[t]=new e({type:"nonoptional",innerType:a[t]});return assignProp(this,"shape",o),o}}))}function aborted(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function explicitlyAborted(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function prefixIssues(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function unwrapMessage(e){return"string"==typeof e?e:e?.message}function finalizeIssue(e,t,n){const a=e.message?e.message:unwrapMessage(e.inst?._zod.def?.error?.(e))??unwrapMessage(t?.error?.(e))??unwrapMessage(n.customError?.(e))??unwrapMessage(n.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:s,...l}=e;return l.path??(l.path=[]),l.message=a,t?.reportInput&&(l.input=s),l}function getLengthableOrigin(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function issue(...e){const[t,n,a]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:a}:{...t}}var initializer$1=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,jsonStringifyReplacer,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Oe=$constructor("$ZodError",initializer$1),$e=$constructor("$ZodError",initializer$1,{Parent:Error});function flattenError(e,t=e=>e.message){const n={},a=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):a.push(t(o));return{formErrors:a,fieldErrors:n}}function formatError(e,t=e=>e.message){const n={_errors:[]},processError=(e,a=[])=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>processError({issues:e},[...a,...o.path]));else if("invalid_key"===o.code)processError({issues:o.issues},[...a,...o.path]);else if("invalid_element"===o.code)processError({issues:o.issues},[...a,...o.path]);else{const e=[...a,...o.path];if(0===e.length)n._errors.push(t(o));else{let a=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?a[n]=a[n]||{_errors:[]}:(a[n]=a[n]||{_errors:[]},a[n]._errors.push(t(o))),a=a[n],i++}}}};return processError(e),n}var _parse=e=>(t,n,a,o)=>{const i=a?{...a,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Ee;if(s.issues.length){const t=new(o?.Err??e)(s.issues.map(e=>finalizeIssue(e,i,config())));throw Ae(t,o?.callee),t}return s.value},_parseAsync=e=>async(t,n,a,o)=>{const i=a?{...a,async:!0}:{async:!0};let s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){const t=new(o?.Err??e)(s.issues.map(e=>finalizeIssue(e,i,config())));throw Ae(t,o?.callee),t}return s.value},_safeParse=e=>(t,n,a)=>{const o=a?{...a,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)throw new Ee;return i.issues.length?{success:!1,error:new(e??Oe)(i.issues.map(e=>finalizeIssue(e,o,config())))}:{success:!0,data:i.value}},Ie=_safeParse($e),_safeParseAsync=e=>async(t,n,a)=>{const o=a?{...a,async:!0}:{async:!0};let i=t._zod.run({value:n,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(e=>finalizeIssue(e,o,config())))}:{success:!0,data:i.value}},Ne=_safeParseAsync($e),_encode=e=>(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _parse(e)(t,n,o)},_decode=e=>(t,n,a)=>_parse(e)(t,n,a),_encodeAsync=e=>async(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _parseAsync(e)(t,n,o)},_decodeAsync=e=>async(t,n,a)=>_parseAsync(e)(t,n,a),_safeEncode=e=>(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _safeParse(e)(t,n,o)},_safeDecode=e=>(t,n,a)=>_safeParse(e)(t,n,a),_safeEncodeAsync=e=>async(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _safeParseAsync(e)(t,n,o)},_safeDecodeAsync=e=>async(t,n,a)=>_safeParseAsync(e)(t,n,a),ze=/^[cC][0-9a-z]{6,}$/,Le=/^[0-9a-z]+$/,je=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Be=/^[0-9a-vA-V]{20}$/,Fe=/^[A-Za-z0-9]{27}$/,qe=/^[a-zA-Z0-9_-]{21}$/,Ue=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ve=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,uuid=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,He=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,We="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function emoji(){return new RegExp(We,"u")}var Ge=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ye=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ke=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Qe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ze=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Xe=/^[A-Za-z0-9_-]*$/,Je=/^https?$/,et=/^\+[1-9]\d{6,14}$/,tt="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",rt=new RegExp(`^${tt}$`);function timeSource(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function time$1(e){return new RegExp(`^${timeSource(e)}$`)}function datetime$1(e){const t=timeSource({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const a=`${t}(?:${n.join("|")})`;return new RegExp(`^${tt}T(?:${a})$`)}var string$1=e=>new RegExp(`^${e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*"}$`),nt=/^-?\d+$/,at=/^-?\d+(?:\.\d+)?$/,ot=/^[^A-Z]*$/,it=/^[^a-z]*$/,st=$constructor("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),lt={number:"number",bigint:"bigint",object:"date"},ct=$constructor("$ZodCheckLessThan",(e,t)=>{st.init(e,t);const n=lt[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,a=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<a&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=a=>{(t.inclusive?a.value<=t.value:a.value<t.value)||a.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:a.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ut=$constructor("$ZodCheckGreaterThan",(e,t)=>{st.init(e,t);const n=lt[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,a=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>a&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=a=>{(t.inclusive?a.value>=t.value:a.value>t.value)||a.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:a.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),dt=$constructor("$ZodCheckMultipleOf",(e,t)=>{st.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==floatSafeRemainder(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),pt=$constructor("$ZodCheckNumberFormat",(e,t)=>{st.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),a=n?"int":"number",[o,i]=De[t.format];e._zod.onattach.push(e=>{const a=e._zod.bag;a.format=t.format,a.minimum=o,a.maximum=i,n&&(a.pattern=nt)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l))return void s.issues.push({expected:a,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});if(!Number.isSafeInteger(l))return void(l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:a,inclusive:!0,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:a,inclusive:!0,continue:!t.abort}))}l<o&&s.issues.push({origin:"number",input:l,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),l>i&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),mt=$constructor("$ZodCheckMaxLength",(e,t)=>{var n;st.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!nullish(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const a=n.value;if(a.length<=t.maximum)return;const o=getLengthableOrigin(a);n.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:a,inst:e,continue:!t.abort})}}),ft=$constructor("$ZodCheckMinLength",(e,t)=>{var n;st.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!nullish(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const a=n.value;if(a.length>=t.minimum)return;const o=getLengthableOrigin(a);n.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:a,inst:e,continue:!t.abort})}}),gt=$constructor("$ZodCheckLengthEquals",(e,t)=>{var n;st.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!nullish(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const a=n.value,o=a.length;if(o===t.length)return;const i=getLengthableOrigin(a),s=o>t.length;n.issues.push({origin:i,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),ht=$constructor("$ZodCheckStringFormat",(e,t)=>{var n,a;st.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(a=e._zod).check??(a.check=()=>{})}),bt=$constructor("$ZodCheckRegex",(e,t)=>{ht.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),yt=$constructor("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ot),ht.init(e,t)}),vt=$constructor("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=it),ht.init(e,t)}),St=$constructor("$ZodCheckIncludes",(e,t)=>{st.init(e,t);const n=escapeRegex(t.includes),a=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=a,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(a)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),xt=$constructor("$ZodCheckStartsWith",(e,t)=>{st.init(e,t);const n=new RegExp(`^${escapeRegex(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),wt=$constructor("$ZodCheckEndsWith",(e,t)=>{st.init(e,t);const n=new RegExp(`.*${escapeRegex(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Ct=$constructor("$ZodCheckOverwrite",(e,t)=>{st.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),kt=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),a=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const o of a)this.content.push(o)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},Et={major:4,minor:4,patch:3},_t=$constructor("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Et;const a=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&a.unshift(e);for(const o of a)for(const t of o._zod.onattach)t(e);if(0===a.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const runChecks=(e,t,n)=>{let a,o=aborted(e);for(const i of t){if(i._zod.def.when){if(explicitlyAborted(e))continue;if(!i._zod.def.when(e))continue}else if(o)continue;const t=e.issues.length,s=i._zod.check(e);if(s instanceof Promise&&!1===n?.async)throw new Ee;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,e.issues.length!==t&&(o||(o=aborted(e,t)))});else{if(e.issues.length===t)continue;o||(o=aborted(e,t))}}return a?a.then(()=>e):e},handleCanaryResult=(t,n,o)=>{if(aborted(t))return t.aborted=!0,t;const i=runChecks(n,a,o);if(i instanceof Promise){if(!1===o.async)throw new Ee;return i.then(t=>e._zod.parse(t,o))}return e._zod.parse(i,o)};e._zod.run=(t,n)=>{if(n.skipChecks)return e._zod.parse(t,n);if("backward"===n.direction){const a=e._zod.parse({value:t.value,issues:[]},{...n,skipChecks:!0});return a instanceof Promise?a.then(e=>handleCanaryResult(e,t,n)):handleCanaryResult(a,t,n)}const o=e._zod.parse(t,n);if(o instanceof Promise){if(!1===n.async)throw new Ee;return o.then(e=>runChecks(e,a,n))}return runChecks(o,a,n)}}defineLazy(e,"~standard",()=>({validate:t=>{try{const n=Ie(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return Ne(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),Pt=$constructor("$ZodString",(e,t)=>{_t.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??string$1(e._zod.bag),e._zod.parse=(n,a)=>{if(t.coerce)try{n.value=String(n.value)}catch(a){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Tt=$constructor("$ZodStringFormat",(e,t)=>{ht.init(e,t),Pt.init(e,t)}),At=$constructor("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ve),Tt.init(e,t)}),Rt=$constructor("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=uuid(e))}else t.pattern??(t.pattern=uuid());Tt.init(e,t)}),Mt=$constructor("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=He),Tt.init(e,t)}),Dt=$constructor("$ZodURL",(e,t)=>{Tt.init(e,t),e._zod.check=n=>{try{const a=n.value.trim();if(!t.normalize&&t.protocol?.source===Je.source&&!/^https?:\/\//i.test(a))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const o=new URL(a);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=o.href:n.value=a)}catch(a){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Ot=$constructor("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=emoji()),Tt.init(e,t)}),$t=$constructor("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=qe),Tt.init(e,t)}),It=$constructor("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ze),Tt.init(e,t)}),Nt=$constructor("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Le),Tt.init(e,t)}),zt=$constructor("$ZodULID",(e,t)=>{t.pattern??(t.pattern=je),Tt.init(e,t)}),Lt=$constructor("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Be),Tt.init(e,t)}),jt=$constructor("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Fe),Tt.init(e,t)}),Bt=$constructor("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=datetime$1(t)),Tt.init(e,t)}),Ft=$constructor("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=rt),Tt.init(e,t)}),qt=$constructor("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=time$1(t)),Tt.init(e,t)}),Ut=$constructor("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ue),Tt.init(e,t)}),Vt=$constructor("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Ge),Tt.init(e,t),e._zod.bag.format="ipv4"}),Ht=$constructor("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ye),Tt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),Wt=$constructor("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ke),Tt.init(e,t)}),Gt=$constructor("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Qe),Tt.init(e,t),e._zod.check=n=>{const a=n.value.split("/");try{if(2!==a.length)throw new Error;const[e,t]=a;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function isValidBase64(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Yt=$constructor("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ze),Tt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{isValidBase64(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function isValidBase64URL(e){if(!Xe.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return isValidBase64(t.padEnd(4*Math.ceil(t.length/4),"="))}var Kt=$constructor("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Xe),Tt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{isValidBase64URL(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Qt=$constructor("$ZodE164",(e,t)=>{t.pattern??(t.pattern=et),Tt.init(e,t)});function isValidJWT(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[a]=n;if(!a)return!1;const o=JSON.parse(atob(a));return(!("typ"in o)||"JWT"===o?.typ)&&(!!o.alg&&(!t||"alg"in o&&o.alg===t))}catch{return!1}}var Zt=$constructor("$ZodJWT",(e,t)=>{Tt.init(e,t),e._zod.check=n=>{isValidJWT(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Xt=$constructor("$ZodNumber",(e,t)=>{_t.init(e,t),e._zod.pattern=e._zod.bag.pattern??at,e._zod.parse=(n,a)=>{if(t.coerce)try{n.value=Number(n.value)}catch(s){}const o=n.value;if("number"==typeof o&&!Number.isNaN(o)&&Number.isFinite(o))return n;const i="number"==typeof o?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),n}}),Jt=$constructor("$ZodNumberFormat",(e,t)=>{pt.init(e,t),Xt.init(e,t)}),er=$constructor("$ZodUnknown",(e,t)=>{_t.init(e,t),e._zod.parse=e=>e}),tr=$constructor("$ZodNever",(e,t)=>{_t.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function handleArrayResult(e,t,n){e.issues.length&&t.issues.push(...prefixIssues(n,e.issues)),t.value[n]=e.value}var rr=$constructor("$ZodArray",(e,t)=>{_t.init(e,t),e._zod.parse=(n,a)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const i=[];for(let e=0;e<o.length;e++){const s=o[e],l=t.element._zod.run({value:s,issues:[]},a);l instanceof Promise?i.push(l.then(t=>handleArrayResult(t,n,e))):handleArrayResult(l,n,e)}return i.length?Promise.all(i).then(()=>n):n}});function handlePropertyResult(e,t,n,a,o,i){const s=n in a;if(e.issues.length){if(o&&i&&!s)return;t.issues.push(...prefixIssues(n,e.issues))}s||o?void 0===e.value?s&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function normalizeDef(e){const t=Object.keys(e.shape);for(const a of t)if(!e.shape?.[a]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${a}": expected a Zod schema`);const n=optionalKeys(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function handleCatchall(e,t,n,a,o,i){const s=[],l=o.keySet,c=o.catchall._zod,u=c.def.type,d="optional"===c.optin,p="optional"===c.optout;for(const m in t){if("__proto__"===m)continue;if(l.has(m))continue;if("never"===u){s.push(m);continue}const o=c.run({value:t[m],issues:[]},a);o instanceof Promise?e.push(o.then(e=>handlePropertyResult(e,n,m,t,d,p))):handlePropertyResult(o,n,m,t,d,p)}return s.length&&n.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}var nr=$constructor("$ZodObject",(e,t)=>{if(_t.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=cached(()=>normalizeDef(t));defineLazy(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const a=e[t]._zod;if(a.values){n[t]??(n[t]=new Set);for(const e of a.values)n[t].add(e)}}return n});const a=isObject,o=t.catchall;let i;e._zod.parse=(t,s)=>{i??(i=n.value);const l=t.value;if(!a(l))return t.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),t;t.value={};const c=[],u=i.shape;for(const e of i.keys){const n=u[e],a="optional"===n._zod.optin,o="optional"===n._zod.optout,i=n._zod.run({value:l[e],issues:[]},s);i instanceof Promise?c.push(i.then(n=>handlePropertyResult(n,t,e,l,a,o))):handlePropertyResult(i,t,e,l,a,o)}return o?handleCatchall(c,l,t,s,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),ar=$constructor("$ZodObjectJIT",(e,t)=>{nr.init(e,t);const n=e._zod.parse,a=cached(()=>normalizeDef(t)),generateFastpass=e=>{const t=new kt(["shape","payload","ctx"]),n=a.value,parseStr=e=>{const t=esc(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const o=Object.create(null);let i=0;for(const a of n.keys)o[a]="key_"+i++;t.write("const newResult = {};");for(const a of n.keys){const n=o[a],i=esc(a),s=e[a],l="optional"===s?._zod?.optin,c="optional"===s?._zod?.optout;t.write(`const ${n} = ${parseStr(a)};`),l&&c?t.write(`\n if (${n}.issues.length) {\n if (${i} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${n}.value;\n }\n \n `):l?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${i} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${i}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${i}] = undefined;\n } else {\n newResult[${i}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)};let o;const i=isObject,s=!Pe.jitless,l=s&&Re.value,c=t.catchall;let u;e._zod.parse=(d,p)=>{u??(u=a.value);const m=d.value;return i(m)?s&&l&&!1===p?.async&&!0!==p.jitless?(o||(o=generateFastpass(t.shape)),d=o(d,p),c?handleCatchall([],m,d,p,u,e):d):n(d,p):(d.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),d)}});function handleUnionResults(e,t,n,a){for(const i of e)if(0===i.issues.length)return t.value=i.value,t;const o=e.filter(e=>!aborted(e));return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>finalizeIssue(e,a,config())))}),t)}var or=$constructor("$ZodUnion",(e,t)=>{_t.init(e,t),defineLazy(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),defineLazy(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),defineLazy(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),defineLazy(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>cleanRegex(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(a,o)=>{if(n)return n(a,o);let i=!1;const s=[];for(const e of t.options){const t=e._zod.run({value:a.value,issues:[]},o);if(t instanceof Promise)s.push(t),i=!0;else{if(0===t.issues.length)return t;s.push(t)}}return i?Promise.all(s).then(t=>handleUnionResults(t,a,e,o)):handleUnionResults(s,a,e,o)}}),ir=$constructor("$ZodIntersection",(e,t)=>{_t.init(e,t),e._zod.parse=(e,n)=>{const a=e.value,o=t.left._zod.run({value:a,issues:[]},n),i=t.right._zod.run({value:a,issues:[]},n);return o instanceof Promise||i instanceof Promise?Promise.all([o,i]).then(([t,n])=>handleIntersectionResults(e,t,n)):handleIntersectionResults(e,o,i)}});function mergeValues(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(isPlainObject$2(e)&&isPlainObject$2(t)){const n=Object.keys(t),a=Object.keys(e).filter(e=>-1!==n.indexOf(e)),o={...e,...t};for(const i of a){const n=mergeValues(e[i],t[i]);if(!n.valid)return{valid:!1,mergeErrorPath:[i,...n.mergeErrorPath]};o[i]=n.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let a=0;a<e.length;a++){const o=mergeValues(e[a],t[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function handleIntersectionResults(e,t,n){const a=new Map;let o;for(const l of t.issues)if("unrecognized_keys"===l.code){o??(o=l);for(const e of l.keys)a.has(e)||a.set(e,{}),a.get(e).l=!0}else e.issues.push(l);for(const l of n.issues)if("unrecognized_keys"===l.code)for(const e of l.keys)a.has(e)||a.set(e,{}),a.get(e).r=!0;else e.issues.push(l);const i=[...a].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(i.length&&o&&e.issues.push({...o,keys:i}),aborted(e))return e;const s=mergeValues(t.value,n.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var sr=$constructor("$ZodRecord",(e,t)=>{_t.init(e,t),e._zod.parse=(n,a)=>{const o=n.value;if(!isPlainObject$2(o))return n.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),n;const i=[],s=t.keyType._zod.values;if(s){n.value={};const l=new Set;for(const u of s)if("string"==typeof u||"number"==typeof u||"symbol"==typeof u){l.add("number"==typeof u?u.toString():u);const s=t.keyType._zod.run({value:u,issues:[]},a);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(s.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>finalizeIssue(e,a,config())),input:u,path:[u],inst:e});continue}const c=s.value,d=t.valueType._zod.run({value:o[u],issues:[]},a);d instanceof Promise?i.push(d.then(e=>{e.issues.length&&n.issues.push(...prefixIssues(u,e.issues)),n.value[c]=e.value})):(d.issues.length&&n.issues.push(...prefixIssues(u,d.issues)),n.value[c]=d.value)}let c;for(const e in o)l.has(e)||(c=c??[],c.push(e));c&&c.length>0&&n.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c})}else{n.value={};for(const s of Reflect.ownKeys(o)){if("__proto__"===s)continue;if(!Object.prototype.propertyIsEnumerable.call(o,s))continue;let l=t.keyType._zod.run({value:s,issues:[]},a);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof s&&at.test(s)&&l.issues.length){const e=t.keyType._zod.run({value:Number(s),issues:[]},a);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(l=e)}if(l.issues.length){"loose"===t.mode?n.value[s]=o[s]:n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(e=>finalizeIssue(e,a,config())),input:s,path:[s],inst:e});continue}const c=t.valueType._zod.run({value:o[s],issues:[]},a);c instanceof Promise?i.push(c.then(e=>{e.issues.length&&n.issues.push(...prefixIssues(s,e.issues)),n.value[l.value]=e.value})):(c.issues.length&&n.issues.push(...prefixIssues(s,c.issues)),n.value[l.value]=c.value)}}return i.length?Promise.all(i).then(()=>n):n}}),lr=$constructor("$ZodEnum",(e,t)=>{_t.init(e,t);const n=getEnumValues(t.entries),a=new Set(n);e._zod.values=a,e._zod.pattern=new RegExp(`^(${n.filter(e=>Me.has(typeof e)).map(e=>"string"==typeof e?escapeRegex(e):e.toString()).join("|")})$`),e._zod.parse=(t,o)=>{const i=t.value;return a.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}}),cr=$constructor("$ZodTransform",(e,t)=>{_t.init(e,t),e._zod.optin="optional",e._zod.parse=(n,a)=>{if("backward"===a.direction)throw new _e(e.constructor.name);const o=t.transform(n.value,n);if(a.async)return(o instanceof Promise?o:Promise.resolve(o)).then(e=>(n.value=e,n.fallback=!0,n));if(o instanceof Promise)throw new Ee;return n.value=o,n.fallback=!0,n}});function handleOptionalResult(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var ur=$constructor("$ZodOptional",(e,t)=>{_t.init(e,t),e._zod.optin="optional",e._zod.optout="optional",defineLazy(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),defineLazy(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${cleanRegex(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const a=e.value,o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>handleOptionalResult(e,a)):handleOptionalResult(o,a)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),dr=$constructor("$ZodExactOptional",(e,t)=>{ur.init(e,t),defineLazy(e._zod,"values",()=>t.innerType._zod.values),defineLazy(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),pr=$constructor("$ZodNullable",(e,t)=>{_t.init(e,t),defineLazy(e._zod,"optin",()=>t.innerType._zod.optin),defineLazy(e._zod,"optout",()=>t.innerType._zod.optout),defineLazy(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${cleanRegex(e.source)}|null)$`):void 0}),defineLazy(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),mr=$constructor("$ZodDefault",(e,t)=>{_t.init(e,t),e._zod.optin="optional",defineLazy(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const a=t.innerType._zod.run(e,n);return a instanceof Promise?a.then(e=>handleDefaultResult(e,t)):handleDefaultResult(a,t)}});function handleDefaultResult(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var fr=$constructor("$ZodPrefault",(e,t)=>{_t.init(e,t),e._zod.optin="optional",defineLazy(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),gr=$constructor("$ZodNonOptional",(e,t)=>{_t.init(e,t),defineLazy(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,a)=>{const o=t.innerType._zod.run(n,a);return o instanceof Promise?o.then(t=>handleNonOptionalResult(t,e)):handleNonOptionalResult(o,e)}});function handleNonOptionalResult(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var hr=$constructor("$ZodCatch",(e,t)=>{_t.init(e,t),e._zod.optin="optional",defineLazy(e._zod,"optout",()=>t.innerType._zod.optout),defineLazy(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const a=t.innerType._zod.run(e,n);return a instanceof Promise?a.then(a=>(e.value=a.value,a.issues.length&&(e.value=t.catchValue({...e,error:{issues:a.issues.map(e=>finalizeIssue(e,n,config()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=a.value,a.issues.length&&(e.value=t.catchValue({...e,error:{issues:a.issues.map(e=>finalizeIssue(e,n,config()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),br=$constructor("$ZodPipe",(e,t)=>{_t.init(e,t),defineLazy(e._zod,"values",()=>t.in._zod.values),defineLazy(e._zod,"optin",()=>t.in._zod.optin),defineLazy(e._zod,"optout",()=>t.out._zod.optout),defineLazy(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const a=t.out._zod.run(e,n);return a instanceof Promise?a.then(e=>handlePipeResult(e,t.in,n)):handlePipeResult(a,t.in,n)}const a=t.in._zod.run(e,n);return a instanceof Promise?a.then(e=>handlePipeResult(e,t.out,n)):handlePipeResult(a,t.out,n)}});function handlePipeResult(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var yr=$constructor("$ZodReadonly",(e,t)=>{_t.init(e,t),defineLazy(e._zod,"propValues",()=>t.innerType._zod.propValues),defineLazy(e._zod,"values",()=>t.innerType._zod.values),defineLazy(e._zod,"optin",()=>t.innerType?._zod?.optin),defineLazy(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const a=t.innerType._zod.run(e,n);return a instanceof Promise?a.then(handleReadonlyResult):handleReadonlyResult(a)}});function handleReadonlyResult(e){return e.value=Object.freeze(e.value),e}var vr,Sr=$constructor("$ZodCustom",(e,t)=>{st.init(e,t),_t.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const a=n.value,o=t.fn(a);if(o instanceof Promise)return o.then(t=>handleRefineResult(t,n,a,e));handleRefineResult(o,n,a,e)}});function handleRefineResult(e,t,n,a){if(!e){const e={code:"custom",input:n,inst:a,path:[...a._zod.def.path??[]],continue:!a._zod.def.abort};a._zod.def.params&&(e.params=a._zod.def.params),t.issues.push(issue(e))}}var xr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const a={...n,...this._map.get(e)};return Object.keys(a).length?a:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function registry(){return new xr}(vr=globalThis).__zod_globalRegistry??(vr.__zod_globalRegistry=registry());var wr=globalThis.__zod_globalRegistry;function _string(e,t){return new e({type:"string",...normalizeParams(t)})}function _email(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...normalizeParams(t)})}function _guid(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...normalizeParams(t)})}function _uuid(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...normalizeParams(t)})}function _uuidv4(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...normalizeParams(t)})}function _uuidv6(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...normalizeParams(t)})}function _uuidv7(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...normalizeParams(t)})}function _url(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...normalizeParams(t)})}function _emoji(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...normalizeParams(t)})}function _nanoid(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...normalizeParams(t)})}function _cuid(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...normalizeParams(t)})}function _cuid2(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...normalizeParams(t)})}function _ulid(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...normalizeParams(t)})}function _xid(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...normalizeParams(t)})}function _ksuid(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...normalizeParams(t)})}function _ipv4(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...normalizeParams(t)})}function _ipv6(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...normalizeParams(t)})}function _cidrv4(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...normalizeParams(t)})}function _cidrv6(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...normalizeParams(t)})}function _base64(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...normalizeParams(t)})}function _base64url(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...normalizeParams(t)})}function _e164(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...normalizeParams(t)})}function _jwt(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...normalizeParams(t)})}function _isoDateTime(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...normalizeParams(t)})}function _isoDate(e,t){return new e({type:"string",format:"date",check:"string_format",...normalizeParams(t)})}function _isoTime(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...normalizeParams(t)})}function _isoDuration(e,t){return new e({type:"string",format:"duration",check:"string_format",...normalizeParams(t)})}function _coercedNumber(e,t){return new e({type:"number",coerce:!0,checks:[],...normalizeParams(t)})}function _int(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...normalizeParams(t)})}function _unknown(e){return new e({type:"unknown"})}function _never(e,t){return new e({type:"never",...normalizeParams(t)})}function _lt(e,t){return new ct({check:"less_than",...normalizeParams(t),value:e,inclusive:!1})}function _lte(e,t){return new ct({check:"less_than",...normalizeParams(t),value:e,inclusive:!0})}function _gt(e,t){return new ut({check:"greater_than",...normalizeParams(t),value:e,inclusive:!1})}function _gte(e,t){return new ut({check:"greater_than",...normalizeParams(t),value:e,inclusive:!0})}function _multipleOf(e,t){return new dt({check:"multiple_of",...normalizeParams(t),value:e})}function _maxLength(e,t){return new mt({check:"max_length",...normalizeParams(t),maximum:e})}function _minLength(e,t){return new ft({check:"min_length",...normalizeParams(t),minimum:e})}function _length(e,t){return new gt({check:"length_equals",...normalizeParams(t),length:e})}function _regex(e,t){return new bt({check:"string_format",format:"regex",...normalizeParams(t),pattern:e})}function _lowercase(e){return new yt({check:"string_format",format:"lowercase",...normalizeParams(e)})}function _uppercase(e){return new vt({check:"string_format",format:"uppercase",...normalizeParams(e)})}function _includes(e,t){return new St({check:"string_format",format:"includes",...normalizeParams(t),includes:e})}function _startsWith(e,t){return new xt({check:"string_format",format:"starts_with",...normalizeParams(t),prefix:e})}function _endsWith(e,t){return new wt({check:"string_format",format:"ends_with",...normalizeParams(t),suffix:e})}function _overwrite(e){return new Ct({check:"overwrite",tx:e})}function _normalize(e){return _overwrite(t=>t.normalize(e))}function _trim(){return _overwrite(e=>e.trim())}function _toLowerCase(){return _overwrite(e=>e.toLowerCase())}function _toUpperCase(){return _overwrite(e=>e.toUpperCase())}function _slugify(){return _overwrite(e=>slugify(e))}function _array(e,t,n){return new e({type:"array",element:t,...normalizeParams(n)})}function _refine(e,t,n){return new e({type:"custom",check:"custom",fn:t,...normalizeParams(n)})}function _superRefine(e,t){const n=_check(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(issue(e,t.value,n._zod.def));else{const a=e;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=t.value),a.inst??(a.inst=n),a.continue??(a.continue=!n._zod.def.abort),t.issues.push(issue(a))}},e(t.value,t)),t);return n}function _check(e,t){const n=new st({check:"custom",...normalizeParams(t)});return n._zod.check=e,n}function initializeContext(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??wr,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function process(e,t,n={path:[],schemaPath:[]}){var a;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,n.schemaPath.includes(e)&&(i.cycle=n.path),i.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,s);const l=e._zod.toJSONSchema?.();if(l)s.schema=l;else{const a={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,a);else{const n=s.schema,i=t.processors[o.type];if(!i)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);i(e,t,n,a)}const i=e._zod.parent;i&&(s.ref||(s.ref=i),process(i,t,a),t.seen.get(i).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(s.schema,c),"input"===t.io&&isTransforming(e)&&(delete s.schema.examples,delete s.schema.default),"input"===t.io&&"_prefault"in s.schema&&((a=s.schema).default??(a.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function extractDefs(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=new Map;for(const o of e.seen.entries()){const t=e.metadataRegistry.get(o[0])?.id;if(t){const e=a.get(t);if(e&&e!==o[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);a.set(t,o[0])}}const makeURI=t=>{const a="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,o=e.external.uri??(e=>e);if(n)return{ref:o(n)};const i=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=i,{defId:i,ref:`${o("__shared")}#/${a}/${i}`}}if(t[1]===n)return{ref:"#"};const o=`#/${a}/`,i=t[1].schema.id??"__schema"+e.counter++;return{defId:i,ref:o+i}},extractToDef=e=>{if(e[1].schema.$ref)return;const t=e[1],{ref:n,defId:a}=makeURI(e);t.def={...t.schema},a&&(t.defId=a);const o=t.schema;for(const i in o)delete o[i];o.$ref=n};if("throw"===e.cycles)for(const o of e.seen.entries()){const e=o[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const n=o[1];if(t!==o[0]){if(e.external){const n=e.external.registry.get(o[0])?.id;if(t!==o[0]&&n){extractToDef(o);continue}}(e.metadataRegistry.get(o[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&extractToDef(o)}else extractToDef(o)}}function finalize$1(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const flattenRef=t=>{const n=e.seen.get(t);if(null===n.ref)return;const a=n.def??n.schema,o={...a},i=n.ref;if(n.ref=null,i){flattenRef(i);const n=e.seen.get(i),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(a,s):(a.allOf=a.allOf??[],a.allOf.push(s)),Object.assign(a,o),t._zod.parent===i)for(const e in a)"$ref"!==e&&"allOf"!==e&&(e in o||delete a[e]);if(s.$ref&&n.def)for(const e in a)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(a[e])===JSON.stringify(n.def[e])&&delete a[e]}const s=t._zod.parent;if(s&&s!==i){flattenRef(s);const t=e.seen.get(s);if(t?.schema.$ref&&(a.$ref=t.schema.$ref,t.def))for(const e in a)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(a[e])===JSON.stringify(t.def[e])&&delete a[e]}e.override({zodSchema:t,jsonSchema:a,path:n.path??[]})};for(const l of[...e.seen.entries()].reverse())flattenRef(l[0]);const a={};if("draft-2020-12"===e.target?a.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?a.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?a.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");a.$id=e.external.uri(n)}Object.assign(a,n.def??n.schema);const o=e.metadataRegistry.get(t)?.id;void 0!==o&&a.id===o&&delete a.id;const i=e.external?.defs??{};for(const l of e.seen.entries()){const e=l[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,i[e.defId]=e.def)}e.external||Object.keys(i).length>0&&("draft-2020-12"===e.target?a.$defs=i:a.definitions=i);try{const n=JSON.parse(JSON.stringify(a));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:createStandardJSONSchemaMethod(t,"input",e.processors),output:createStandardJSONSchemaMethod(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function isTransforming(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const a=e._zod.def;if("transform"===a.type)return!0;if("array"===a.type)return isTransforming(a.element,n);if("set"===a.type)return isTransforming(a.valueType,n);if("lazy"===a.type)return isTransforming(a.getter(),n);if("promise"===a.type||"optional"===a.type||"nonoptional"===a.type||"nullable"===a.type||"readonly"===a.type||"default"===a.type||"prefault"===a.type)return isTransforming(a.innerType,n);if("intersection"===a.type)return isTransforming(a.left,n)||isTransforming(a.right,n);if("record"===a.type||"map"===a.type)return isTransforming(a.keyType,n)||isTransforming(a.valueType,n);if("pipe"===a.type)return!!e._zod.traits.has("$ZodCodec")||(isTransforming(a.in,n)||isTransforming(a.out,n));if("object"===a.type){for(const e in a.shape)if(isTransforming(a.shape[e],n))return!0;return!1}if("union"===a.type){for(const e of a.options)if(isTransforming(e,n))return!0;return!1}if("tuple"===a.type){for(const e of a.items)if(isTransforming(e,n))return!0;return!(!a.rest||!isTransforming(a.rest,n))}return!1}var createToJSONSchemaMethod=(e,t={})=>n=>{const a=initializeContext({...n,processors:t});return process(e,a),extractDefs(a,e),finalize$1(a,e)},createStandardJSONSchemaMethod=(e,t,n={})=>a=>{const{libraryOptions:o,target:i}=a??{},s=initializeContext({...o??{},target:i,io:t,processors:n});return process(e,s),extractDefs(s,e),finalize$1(s,e)},Cr={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},stringProcessor=(e,t,n,a)=>{const o=n;o.type="string";const{minimum:i,maximum:s,format:l,patterns:c,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(o.minLength=i),"number"==typeof s&&(o.maxLength=s),l&&(o.format=Cr[l]??l,""===o.format&&delete o.format,"time"===l&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const e=[...c];1===e.length?o.pattern=e[0].source:e.length>1&&(o.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}},numberProcessor=(e,t,n,a)=>{const o=n,{minimum:i,maximum:s,format:l,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:d}=e._zod.bag;"string"==typeof l&&l.includes("int")?o.type="integer":o.type="number";const p="number"==typeof d&&d>=(i??Number.NEGATIVE_INFINITY),m="number"==typeof u&&u<=(s??Number.POSITIVE_INFINITY),g="draft-04"===t.target||"openapi-3.0"===t.target;p?g?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d:"number"==typeof i&&(o.minimum=i),m?g?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:"number"==typeof s&&(o.maximum=s),"number"==typeof c&&(o.multipleOf=c)},neverProcessor=(e,t,n,a)=>{n.not={}},unknownProcessor=(e,t,n,a)=>{},enumProcessor=(e,t,n,a)=>{const o=getEnumValues(e._zod.def.entries);o.every(e=>"number"==typeof e)&&(n.type="number"),o.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=o},customProcessor=(e,t,n,a)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")},transformProcessor=(e,t,n,a)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")},arrayProcessor=(e,t,n,a)=>{const o=n,i=e._zod.def,{minimum:s,maximum:l}=e._zod.bag;"number"==typeof s&&(o.minItems=s),"number"==typeof l&&(o.maxItems=l),o.type="array",o.items=process(i.element,t,{...a,path:[...a.path,"items"]})},objectProcessor=(e,t,n,a)=>{const o=n,i=e._zod.def;o.type="object",o.properties={};const s=i.shape;for(const u in s)o.properties[u]=process(s[u],t,{...a,path:[...a.path,"properties",u]});const l=new Set(Object.keys(s)),c=new Set([...l].filter(e=>{const n=i.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));c.size>0&&(o.required=Array.from(c)),"never"===i.catchall?._zod.def.type?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=process(i.catchall,t,{...a,path:[...a.path,"additionalProperties"]})):"output"===t.io&&(o.additionalProperties=!1)},unionProcessor=(e,t,n,a)=>{const o=e._zod.def,i=!1===o.inclusive,s=o.options.map((e,n)=>process(e,t,{...a,path:[...a.path,i?"oneOf":"anyOf",n]}));i?n.oneOf=s:n.anyOf=s},intersectionProcessor=(e,t,n,a)=>{const o=e._zod.def,i=process(o.left,t,{...a,path:[...a.path,"allOf",0]}),s=process(o.right,t,{...a,path:[...a.path,"allOf",1]}),isSimpleIntersection=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...isSimpleIntersection(i)?i.allOf:[i],...isSimpleIntersection(s)?s.allOf:[s]]},recordProcessor=(e,t,n,a)=>{const o=n,i=e._zod.def;o.type="object";const s=i.keyType,l=s._zod.bag?.patterns;if("loose"===i.mode&&l&&l.size>0){const e=process(i.valueType,t,{...a,path:[...a.path,"patternProperties","*"]});o.patternProperties={};for(const t of l)o.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(o.propertyNames=process(i.keyType,t,{...a,path:[...a.path,"propertyNames"]})),o.additionalProperties=process(i.valueType,t,{...a,path:[...a.path,"additionalProperties"]});const c=s._zod.values;if(c){const e=[...c].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(o.required=e)}},nullableProcessor=(e,t,n,a)=>{const o=e._zod.def,i=process(o.innerType,t,a),s=t.seen.get(e);"openapi-3.0"===t.target?(s.ref=o.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]},nonoptionalProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType},defaultProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},prefaultProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},catchProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);let i;t.seen.get(e).ref=o.innerType;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},pipeProcessor=(e,t,n,a)=>{const o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s="input"===t.io?i?o.out:o.in:o.out;process(s,t,a);t.seen.get(e).ref=s},readonlyProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType,n.readOnly=!0},optionalProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType},kr=$constructor("ZodISODateTime",(e,t)=>{Bt.init(e,t),Hr.init(e,t)});function datetime(e){return _isoDateTime(kr,e)}var Er=$constructor("ZodISODate",(e,t)=>{Ft.init(e,t),Hr.init(e,t)});function date(e){return _isoDate(Er,e)}var _r=$constructor("ZodISOTime",(e,t)=>{qt.init(e,t),Hr.init(e,t)});function time(e){return _isoTime(_r,e)}var Pr=$constructor("ZodISODuration",(e,t)=>{Ut.init(e,t),Hr.init(e,t)});function duration$1(e){return _isoDuration(Pr,e)}var initializer=(e,t)=>{Oe.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>formatError(e,t)},flatten:{value:t=>flattenError(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,jsonStringifyReplacer,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,jsonStringifyReplacer,2)}},isEmpty:{get:()=>0===e.issues.length}})},Tr=$constructor("ZodError",initializer,{Parent:Error}),Ar=_parse(Tr),Rr=_parseAsync(Tr),Mr=_safeParse(Tr),Dr=_safeParseAsync(Tr),Or=_encode(Tr),$r=_decode(Tr),Ir=_encodeAsync(Tr),Nr=_decodeAsync(Tr),zr=_safeEncode(Tr),Lr=_safeDecode(Tr),jr=_safeEncodeAsync(Tr),Br=_safeDecodeAsync(Tr),Fr=new WeakMap;function _installLazyMethods(e,t,n){const a=Object.getPrototypeOf(e);let o=Fr.get(a);if(o||(o=new Set,Fr.set(a,o)),!o.has(t)){o.add(t);for(const e in n){const t=n[e];Object.defineProperty(a,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var qr=$constructor("ZodType",(e,t)=>(_t.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:createStandardJSONSchemaMethod(e,"input"),output:createStandardJSONSchemaMethod(e,"output")}}),e.toJSONSchema=createToJSONSchemaMethod(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Ar(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Mr(e,t,n),e.parseAsync=async(t,n)=>Rr(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Dr(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Or(e,t,n),e.decode=(t,n)=>$r(e,t,n),e.encodeAsync=async(t,n)=>Ir(e,t,n),e.decodeAsync=async(t,n)=>Nr(e,t,n),e.safeEncode=(t,n)=>zr(e,t,n),e.safeDecode=(t,n)=>Lr(e,t,n),e.safeEncodeAsync=async(t,n)=>jr(e,t,n),e.safeDecodeAsync=async(t,n)=>Br(e,t,n),_installLazyMethods(e,"ZodType",{check(...e){const t=this.def;return this.clone(mergeDefs(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return clone$1(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(refine(e,t))},superRefine(e,t){return this.check(superRefine(e,t))},overwrite(e){return this.check(_overwrite(e))},optional(){return optional(this)},exactOptional(){return exactOptional(this)},nullable(){return nullable(this)},nullish(){return optional(nullable(this))},nonoptional(e){return nonoptional(this,e)},array(){return array(this)},or(e){return union([this,e])},and(e){return intersection(this,e)},transform(e){return pipe(this,transform(e))},default(e){return _default(this,e)},prefault(e){return prefault(this,e)},catch(e){return _catch(this,e)},pipe(e){return pipe(this,e)},readonly(){return readonly(this)},describe(e){const t=this.clone();return wr.add(t,{description:e}),t},meta(...e){if(0===e.length)return wr.get(this);const t=this.clone();return wr.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>wr.get(e)?.description,configurable:!0}),e)),Ur=$constructor("_ZodString",(e,t)=>{Pt.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>stringProcessor(e,t,n,a);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,_installLazyMethods(e,"_ZodString",{regex(...e){return this.check(_regex(...e))},includes(...e){return this.check(_includes(...e))},startsWith(...e){return this.check(_startsWith(...e))},endsWith(...e){return this.check(_endsWith(...e))},min(...e){return this.check(_minLength(...e))},max(...e){return this.check(_maxLength(...e))},length(...e){return this.check(_length(...e))},nonempty(...e){return this.check(_minLength(1,...e))},lowercase(e){return this.check(_lowercase(e))},uppercase(e){return this.check(_uppercase(e))},trim(){return this.check(_trim())},normalize(...e){return this.check(_normalize(...e))},toLowerCase(){return this.check(_toLowerCase())},toUpperCase(){return this.check(_toUpperCase())},slugify(){return this.check(_slugify())}})}),Vr=$constructor("ZodString",(e,t)=>{Pt.init(e,t),Ur.init(e,t),e.email=t=>e.check(_email(Wr,t)),e.url=t=>e.check(_url(Kr,t)),e.jwt=t=>e.check(_jwt(pn,t)),e.emoji=t=>e.check(_emoji(Qr,t)),e.guid=t=>e.check(_guid(Gr,t)),e.uuid=t=>e.check(_uuid(Yr,t)),e.uuidv4=t=>e.check(_uuidv4(Yr,t)),e.uuidv6=t=>e.check(_uuidv6(Yr,t)),e.uuidv7=t=>e.check(_uuidv7(Yr,t)),e.nanoid=t=>e.check(_nanoid(Zr,t)),e.guid=t=>e.check(_guid(Gr,t)),e.cuid=t=>e.check(_cuid(Xr,t)),e.cuid2=t=>e.check(_cuid2(Jr,t)),e.ulid=t=>e.check(_ulid(en,t)),e.base64=t=>e.check(_base64(cn,t)),e.base64url=t=>e.check(_base64url(un,t)),e.xid=t=>e.check(_xid(tn,t)),e.ksuid=t=>e.check(_ksuid(rn,t)),e.ipv4=t=>e.check(_ipv4(nn,t)),e.ipv6=t=>e.check(_ipv6(an,t)),e.cidrv4=t=>e.check(_cidrv4(sn,t)),e.cidrv6=t=>e.check(_cidrv6(ln,t)),e.e164=t=>e.check(_e164(dn,t)),e.datetime=t=>e.check(datetime(t)),e.date=t=>e.check(date(t)),e.time=t=>e.check(time(t)),e.duration=t=>e.check(duration$1(t))});function string(e){return _string(Vr,e)}var Hr=$constructor("ZodStringFormat",(e,t)=>{Tt.init(e,t),Ur.init(e,t)}),Wr=$constructor("ZodEmail",(e,t)=>{Mt.init(e,t),Hr.init(e,t)}),Gr=$constructor("ZodGUID",(e,t)=>{At.init(e,t),Hr.init(e,t)}),Yr=$constructor("ZodUUID",(e,t)=>{Rt.init(e,t),Hr.init(e,t)}),Kr=$constructor("ZodURL",(e,t)=>{Dt.init(e,t),Hr.init(e,t)}),Qr=$constructor("ZodEmoji",(e,t)=>{Ot.init(e,t),Hr.init(e,t)}),Zr=$constructor("ZodNanoID",(e,t)=>{$t.init(e,t),Hr.init(e,t)}),Xr=$constructor("ZodCUID",(e,t)=>{It.init(e,t),Hr.init(e,t)}),Jr=$constructor("ZodCUID2",(e,t)=>{Nt.init(e,t),Hr.init(e,t)}),en=$constructor("ZodULID",(e,t)=>{zt.init(e,t),Hr.init(e,t)}),tn=$constructor("ZodXID",(e,t)=>{Lt.init(e,t),Hr.init(e,t)}),rn=$constructor("ZodKSUID",(e,t)=>{jt.init(e,t),Hr.init(e,t)}),nn=$constructor("ZodIPv4",(e,t)=>{Vt.init(e,t),Hr.init(e,t)}),an=$constructor("ZodIPv6",(e,t)=>{Ht.init(e,t),Hr.init(e,t)}),sn=$constructor("ZodCIDRv4",(e,t)=>{Wt.init(e,t),Hr.init(e,t)}),ln=$constructor("ZodCIDRv6",(e,t)=>{Gt.init(e,t),Hr.init(e,t)}),cn=$constructor("ZodBase64",(e,t)=>{Yt.init(e,t),Hr.init(e,t)}),un=$constructor("ZodBase64URL",(e,t)=>{Kt.init(e,t),Hr.init(e,t)}),dn=$constructor("ZodE164",(e,t)=>{Qt.init(e,t),Hr.init(e,t)}),pn=$constructor("ZodJWT",(e,t)=>{Zt.init(e,t),Hr.init(e,t)}),mn=$constructor("ZodNumber",(e,t)=>{Xt.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>numberProcessor(e,t,n,a),_installLazyMethods(e,"ZodNumber",{gt(e,t){return this.check(_gt(e,t))},gte(e,t){return this.check(_gte(e,t))},min(e,t){return this.check(_gte(e,t))},lt(e,t){return this.check(_lt(e,t))},lte(e,t){return this.check(_lte(e,t))},max(e,t){return this.check(_lte(e,t))},int(e){return this.check(int(e))},safe(e){return this.check(int(e))},positive(e){return this.check(_gt(0,e))},nonnegative(e){return this.check(_gte(0,e))},negative(e){return this.check(_lt(0,e))},nonpositive(e){return this.check(_lte(0,e))},multipleOf(e,t){return this.check(_multipleOf(e,t))},step(e,t){return this.check(_multipleOf(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}),gn=$constructor("ZodNumberFormat",(e,t)=>{Jt.init(e,t),mn.init(e,t)});function int(e){return _int(gn,e)}var hn=$constructor("ZodUnknown",(e,t)=>{er.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>unknownProcessor(e,t,n,a)});function unknown(){return _unknown(hn)}var bn=$constructor("ZodNever",(e,t)=>{tr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>neverProcessor(e,t,n,a)});function never(e){return _never(bn,e)}var yn=$constructor("ZodArray",(e,t)=>{rr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>arrayProcessor(e,t,n,a),e.element=t.element,_installLazyMethods(e,"ZodArray",{min(e,t){return this.check(_minLength(e,t))},nonempty(e){return this.check(_minLength(1,e))},max(e,t){return this.check(_maxLength(e,t))},length(e,t){return this.check(_length(e,t))},unwrap(){return this.element}})});function array(e,t){return _array(yn,e,t)}var vn=$constructor("ZodObject",(e,t)=>{ar.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>objectProcessor(e,t,n,a),defineLazy(e,"shape",()=>t.shape),_installLazyMethods(e,"ZodObject",{keyof(){return _enum(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:unknown()})},loose(){return this.clone({...this._zod.def,catchall:unknown()})},strict(){return this.clone({...this._zod.def,catchall:never()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return extend(this,e)},safeExtend(e){return safeExtend(this,e)},merge(e){return merge(this,e)},pick(e){return pick(this,e)},omit(e){return omit(this,e)},partial(...e){return partial(En,this,e[0])},required(...e){return required(Rn,this,e[0])}})});function object(e,t){return new vn({type:"object",shape:e??{},...normalizeParams(t)})}var Sn=$constructor("ZodUnion",(e,t)=>{or.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>unionProcessor(e,t,n,a),e.options=t.options});function union(e,t){return new Sn({type:"union",options:e,...normalizeParams(t)})}var xn=$constructor("ZodIntersection",(e,t)=>{ir.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>intersectionProcessor(e,t,n,a)});function intersection(e,t){return new xn({type:"intersection",left:e,right:t})}var wn=$constructor("ZodRecord",(e,t)=>{sr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>recordProcessor(e,t,n,a),e.keyType=t.keyType,e.valueType=t.valueType});function record(e,t,n){return t&&t._zod?new wn({type:"record",keyType:e,valueType:t,...normalizeParams(n)}):new wn({type:"record",keyType:string(),valueType:e,...normalizeParams(t)})}var Cn=$constructor("ZodEnum",(e,t)=>{lr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>enumProcessor(e,t,n,a),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,a)=>{const o={};for(const i of e){if(!n.has(i))throw new Error(`Key ${i} not found in enum`);o[i]=t.entries[i]}return new Cn({...t,checks:[],...normalizeParams(a),entries:o})},e.exclude=(e,a)=>{const o={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete o[t]}return new Cn({...t,checks:[],...normalizeParams(a),entries:o})}});function _enum(e,t){return new Cn({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...normalizeParams(t)})}var kn=$constructor("ZodTransform",(e,t)=>{cr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>transformProcessor(e,t,n,a),e._zod.parse=(n,a)=>{if("backward"===a.direction)throw new _e(e.constructor.name);n.addIssue=a=>{if("string"==typeof a)n.issues.push(issue(a,n.value,t));else{const t=a;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(issue(t))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=o,n.fallback=!0,n)}});function transform(e){return new kn({type:"transform",transform:e})}var En=$constructor("ZodOptional",(e,t)=>{ur.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>optionalProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function optional(e){return new En({type:"optional",innerType:e})}var _n=$constructor("ZodExactOptional",(e,t)=>{dr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>optionalProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function exactOptional(e){return new _n({type:"optional",innerType:e})}var Pn=$constructor("ZodNullable",(e,t)=>{pr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>nullableProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function nullable(e){return new Pn({type:"nullable",innerType:e})}var Tn=$constructor("ZodDefault",(e,t)=>{mr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>defaultProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function _default(e,t){return new Tn({type:"default",innerType:e,get defaultValue(){return"function"==typeof t?t():shallowClone(t)}})}var An=$constructor("ZodPrefault",(e,t)=>{fr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>prefaultProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function prefault(e,t){return new An({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof t?t():shallowClone(t)}})}var Rn=$constructor("ZodNonOptional",(e,t)=>{gr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>nonoptionalProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function nonoptional(e,t){return new Rn({type:"nonoptional",innerType:e,...normalizeParams(t)})}var Mn=$constructor("ZodCatch",(e,t)=>{hr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>catchProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function _catch(e,t){return new Mn({type:"catch",innerType:e,catchValue:"function"==typeof t?t:()=>t})}var Dn=$constructor("ZodPipe",(e,t)=>{br.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>pipeProcessor(e,t,n,a),e.in=t.in,e.out=t.out});function pipe(e,t){return new Dn({type:"pipe",in:e,out:t})}var On=$constructor("ZodReadonly",(e,t)=>{yr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>readonlyProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function readonly(e){return new On({type:"readonly",innerType:e})}var $n=$constructor("ZodCustom",(e,t)=>{Sr.init(e,t),qr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>customProcessor(e,t,n,a)});function refine(e,t={}){return _refine($n,e,t)}function superRefine(e,t){return _superRefine(e,t)}function number(e){return _coercedNumber(mn,e)}var isRecord$1=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),isSupportedPersistenceSchemaVersion=e=>2===Number(e),createEmptyPersistenceSnapshot=()=>({schemaVersion:2,systemSettings:{},affSettings:{defaults:{}},defSettings:{defaults:{},static:{}},cacheSettings:{precache:{}}}),In=record(string(),unknown()).catch(()=>({})),Nn=object({schemaVersion:number().refine(isSupportedPersistenceSchemaVersion),systemSettings:In,affSettings:object({defaults:In}).catch(()=>({defaults:{}})),defSettings:object({defaults:In,static:In}).catch(()=>({defaults:{},static:{}})),cacheSettings:object({precache:In}).catch(()=>({precache:{}}))}),normalizePersistenceSnapshot=(e,{assumeCurrentVersion:t=!1}={})=>{const n=t&&isRecord$1(e)&&null==e.schemaVersion?{...e,schemaVersion:2}:e,a=Nn.safeParse(n);return a.success?a.data:createEmptyPersistenceSnapshot()},createRuntimePersistenceApi=({persistence:e,systemModel:t,affModel:n,defModel:a,cacheModel:o,serverside:i,syncDebugMode:s,markDirty:l})=>{const c=0,u=26,d={hasStoredSnapshot:!1,sourceKey:e?.key||"nexSys4Settings"},sanitizeSystemSettings=(e={})=>{const{customPromptEnabled:t,prompt:n,...a}=e||{},o=normalizeCommandSeparator(a.commandSeparator);return o?a.commandSeparator=o:delete a.commandSeparator,a},normalizePersistedDefPriority=e=>{const t=Number(e);return Number.isInteger(t)?t<c?c:t>u?u:t:c},buildAffDefaultMap=()=>n.list().reduce((e,t)=>(e[t]=n.getDefaultPriority(t),e),{}),countablePriorityNameSet=()=>new Set(n.getCountablePriorityNames?.()||[]),buildDefDefaultMap=()=>Object.entries(a.getDefaultPriorities()).reduce((e,[t,n])=>(e[t]=normalizePersistedDefPriority(n),e),{}),buildDefStaticOverrideMap=()=>({...a.getStaticOverrides?.()||{}}),buildCacheDefaultSnapshot=()=>o.getDesiredPrecache(),isValidServersideAffPriority=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=26},normalizeStoredAffDefaults=(e={})=>{const t=countablePriorityNameSet();return Object.entries(e).reduce((e,[a,o])=>{const i="function"==typeof n.normalizePriorityName?n.normalizePriorityName(a):String(a||"").trim().toLowerCase();if(!i)return e;if(t.has(i))return e;const s=n.getDefaultPriority(i);return isValidServersideAffPriority(s)&&!isValidServersideAffPriority(o)?(e[i]=s,e):(e[i]=o,e)},{})},normalizeStoredDefPriorities=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=normalizePersistedDefPriority(n),e),{}),normalizeStoredDefStatics=(e={})=>Object.entries(e).reduce((e,[t,n])=>(!0!==n&&!1!==n||(e[t]=n),e),{}),buildPersistenceSnapshot=()=>({schemaVersion:2,systemSettings:sanitizeSystemSettings(t.getSettings()),affSettings:{defaults:buildAffDefaultMap()},defSettings:{defaults:buildDefDefaultMap(),static:buildDefStaticOverrideMap()},cacheSettings:{precache:buildCacheDefaultSnapshot()}}),applyStoredSnapshot=(e={})=>{const l=sanitizeSystemSettings(e.systemSettings||{});t.setSettings(l,{setBaseline:!0}),t.setBaselineIntent({ss:l.ss||{}});const c=e.affSettings?.defaults;c&&Object.entries(normalizeStoredAffDefaults(c)).forEach(([e,t])=>{n.setDefaultPriority(e,t,"persistence")});const u=normalizeStoredDefStatics(e.defSettings?.static);Object.entries(u).forEach(([e,t])=>{a.setStatic(e,t,"persistence")});const d=normalizeStoredDefPriorities(e.defSettings?.defaults);Object.entries(d).forEach(([e,t])=>{a.setDefaultPriority(e,t,"persistence")}),e.cacheSettings?.precache&&o.setDesiredPrecache(e.cacheSettings.precache),i.setBaselineFromRuntime(),s()},loadStoredSnapshot=()=>"function"==typeof e.read?e.read():{key:e?.key||"nexSys4Settings",exists:!1,snapshot:e.load()};return{buildPersistenceSnapshot,loadPersistence(){const{key:t,exists:n,snapshot:a}=loadStoredSnapshot();return d.hasStoredSnapshot=Boolean(n),d.sourceKey=t||e?.key||"nexSys4Settings",applyStoredSnapshot(a),{key:d.sourceKey,exists:d.hasStoredSnapshot,snapshot:a}},seedBaselineFromObservedStartup(){if(d.hasStoredSnapshot)return!1;const e=i.getObserved?.()||{},o=sanitizeSystemSettings({ss:e.settings||{}});Object.keys(o).length&&t.setSettings(o,{setBaseline:!0});const l=countablePriorityNameSet();return Object.entries(e.affPriorities||{}).forEach(([e,t])=>{l.has(String(e||"").toLowerCase())||isValidServersideAffPriority(t)&&n.setDefaultPriority(e,t,"startup-observed-baseline")}),Object.entries(e.defPriorities||{}).forEach(([e,t])=>{a.get(e)&&a.setDefaultPriority(e,normalizePersistedDefPriority(t),"startup-observed-baseline")}),i.setBaselineFromRuntime(),s(),!0},savePersistence(){const t=buildPersistenceSnapshot();return e.save(t),i.setBaselineFromRuntime(),l("persistence-save"),t}}},evaluateBlockCondition=(e,t)=>Array.isArray(e)?e.every(e=>t(e)):t(e),isBlocked=(e=[],t)=>e.some(e=>evaluateBlockCondition(e,t)),isActiveDefensePriority=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=25},createDefensePlanner=({defModel:e,balanceModel:t,affModel:n,systemModel:a})=>{const plan=({includeStaticIds:o=[]}={})=>{const i=a.getClass(),s=new Set(o),l=e.list().map(t=>e.get(t)).filter(Boolean).map(t=>({entry:t,priority:e.getPriority(t.id)})).sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.entry.order-t.entry.order),c=new Set,u={serverside:[],client:[]};return l.forEach(({entry:a,priority:o})=>{if(!isActiveDefensePriority(o)||c.has(a.id)||a.have)return;if(!e.isAvailableForClass(a.id,i))return;if(a.static&&!s.has(a.id))return;if(isBlocked(a.blocks,e=>n.haveAff(e)))return;if(!a.bals_req.every(e=>t.have(e)))return;a.opps.forEach(e=>c.add(e));const l=a.serverside?u.serverside:u.client;a.command.forEach(e=>{l.push({source:"defense",defense:a.id,command:e,prio:o,serverside:a.serverside,preempt:a.preempt,static:a.static})})}),{serverside:u.serverside,client:u.client,all:[...u.serverside,...u.client]}};return{plan}},dedupeCommandIntents=(e=[])=>{const t=new Map,n=[];return e.forEach(e=>{const a=e?.command,o=t.get(a);if(o)return void(!0===e?.requiresCompletion&&(o.requiresCompletion=!0));const i={...e};t.set(a,i),n.push(i)}),n},createOutputPlanner=({systemModel:e,serverside:t,defensePlanner:n,precachePlanner:a})=>({plan({source:o="prompt",injectedCommands:i=[],suppressedServersideCommands:s=[]}={}){const l=e.getRuntime(),c=t.evaluate({emitCommands:!1,source:o}),u=s.length?c.commands.filter(e=>!s.includes(e)):c.commands,d=t.getStaticDefRequests(),p=[];n.plan({includeStaticIds:Object.keys(d)}).client.forEach(e=>p.push(e)),l.slowMode||l.aeonLocked||a.plan().forEach(e=>p.push(e)),u.forEach(e=>{p.push({source:"serverside",command:e,requiresCompletion:!0})}),i.forEach(e=>{p.push({source:"injected",command:e})});const m=dedupeCommandIntents(p);return{intents:m,commands:m.map(e=>e.command),serversideCommands:u}}}),createPrecachePlanner=({cacheModel:e})=>({plan:()=>e.getPrecacheCommands().map(e=>({source:"precache",command:e,requiresCompletion:!0}))}),createQueueState=()=>Object.entries($).reduce((e,[t,n])=>(e[t]={...deepClone$1(n),id:t,items:[],prepend:[],pending:!1,lastSignature:"",deferred:!1},e),{}),splitCommandValue=(e,t="|")=>{const n=String(t||"|")||"|";return String(e).split(n).map(e=>e.trim()).filter(Boolean)},normalizeCommands=(e,t="|")=>e?Array.isArray(e)?e.flatMap(e=>null==e?[]:splitCommandValue(e,t)).filter(Boolean):splitCommandValue(e,t):[],hasQueuedItems=e=>e.items.length>0||e.prepend.length>0,buildLogicalCommands=e=>[`echo SystemEvent ${e.name}QueueFired`,...e.pre,...e.prepend,...e.items,...e.post].filter(Boolean),clearQueueState=e=>{e.items=[],e.prepend=[],e.pending=!1,e.lastSignature="",e.deferred=!1},resolveQueueId=(e,t)=>{if(e[t])return t;const n=String(t||"").replace(/QueueFired$/i,"").toLowerCase();return Object.keys(e).find(t=>{const a=e[t];return a.name.toLowerCase()===n||a.type.toLowerCase()===n})||null},hasLocalQueueState=(e={})=>(e.items||[]).length>0||(e.prepend||[]).length>0||e.pending||e.deferred||Boolean(e.lastSignature),clearLocalQueueState=e=>{if(!e)return!1;const t=hasLocalQueueState(e);return clearQueueState(e),t},markQueueDeferred=e=>{if(!e)return!1;const t=!e.deferred||!e.pending;return e.deferred=!0,e.pending=!0,t},markQueueAwaitingAck=(e,t)=>{if(!e)return!1;const n=e.lastSignature!==t||!0!==e.pending||!1!==e.deferred;return e.lastSignature=t,e.pending=!0,e.deferred=!1,n},createQueueMutationApi=({state:e,emit:t,flush:n,getSeparator:a,markStateChanged:o=()=>{}})=>{const resolveSeparator=()=>("function"==typeof a?a():"|")||"|",haveSameCommands=(e=[],t=[])=>e.length===t.length&&e.every((e,n)=>e===t[n]),clear=(n,a={})=>{const i=e[n];return!!i&&(!!clearLocalQueueState(i)&&(o(n),t("QueueCleared",{queueId:n,remote:Boolean(a.remote),command:a.command||null}),!0))};return{add(a,i,s={}){const l=e[a];if(!l)return!1;const c=normalizeCommands(i,resolveSeparator());if(!c.length)return!1;let u=!1;return c.forEach(e=>{l.items.includes(e)&&!s.allowDuplicate||(l.items.push(e),u=!0)}),!!u&&(o(a),t("QueueUpdated",{queueId:a,queue:deepClone$1(l)}),!1!==s.autoFlush&&n(a),!0)},prepend(a,i,s={}){const l=e[a];if(!l)return!1;const c=normalizeCommands(i,resolveSeparator());if(!c.length)return!1;let u=!1;for(let e=c.length-1;e>=0;e-=1){const t=c[e];l.prepend.includes(t)&&!s.allowDuplicate||(l.prepend.unshift(t),u=!0)}return!!u&&(o(a),t("QueueUpdated",{queueId:a,queue:deepClone$1(l)}),!1!==s.autoFlush&&n(a),!0)},clear,setPreCommands(n,a=[]){const i=e[n];if(!i)return!1;const s=normalizeCommands(a,resolveSeparator());return!haveSameCommands(i.pre,s)&&(i.pre=s,o(n),t("QueueUpdated",{queueId:n,queue:deepClone$1(i)}),!0)},setPostCommands(n,a=[]){const i=e[n];if(!i)return!1;const s=normalizeCommands(a,resolveSeparator());return!haveSameCommands(i.post,s)&&(i.post=s,o(n),t("QueueUpdated",{queueId:n,queue:deepClone$1(i)}),!0)}}},chunkCommands=(e=[],t=20)=>{const n=Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)],a=Math.max(1,Number(t||20)),o=[];for(let i=0;i<n.length;i+=a)o.push(n.slice(i,i+a));return o},chunkCommandsWithTrailing=(e=[],{maxEntries:t=20,trailing:n=[]}={})=>{const a=chunkCommands(e,t),o=chunkCommands(n,t).flat();if(!o.length)return a;if(!a.length)return chunkCommands(o,t);const i=a[a.length-1];return i.length+o.length<=Math.max(1,Number(t||20))?(i.push(...o),a):[...a,...chunkCommands(o,t)]},createQueueFlushApi=({state:e,emit:t,send:n,getRuntimeState:a,getSeparator:o,maxEntriesPerSubmission:i,onQueueFired:s,markStateChanged:l=()=>{}})=>{const buildRemoteClearCommand=e=>`clearqueue ${e.type}`,buildStackPlan=(e=[])=>({type:"stackPlan",commands:e.filter(Boolean).map(e=>String(e))}),markExcludedQueuesCleared=(t=[])=>{t.forEach(t=>{const n=e[t];n&&clearLocalQueueState(n)&&l(t)})},deferQueue=(e,n)=>(markQueueDeferred(n)&&l(e),t("QueueDeferred",{queueId:e,queue:deepClone$1(n)}),[]),flush=(s,c={})=>{const u=e[s];if(!u||!hasQueuedItems(u))return[];const d=a?a():{paused:!1,phase:J.RUNNING,settings:{}};if(!isRuntimeReadyPhase(d.phase))return deferQueue(s,u);const p=Boolean(d.settings?.queueWhilePaused);if(d.paused&&!p)return deferQueue(s,u);const m=buildLogicalCommands(u),g=m.join("");if(!c.force&&g===u.lastSignature)return[];const h=[],b=[];u.exclusions.forEach(t=>{const n=e[t];n&&hasQueuedItems(n)&&(h.push(buildRemoteClearCommand(n)),b.push(t))});const y="function"==typeof o?o():"|",v=chunkCommands(m,Math.max(1,i-h.length)).map((e,t)=>{const n=`queue ${0===t?"addclear":"add"} ${u.type} ${e.join(y)}`;return t>0||!h.length?buildStackPlan([n]):buildStackPlan([...h,n])});return markQueueAwaitingAck(u,g)&&l(s),markExcludedQueuesCleared(b),n(v,{source:"queue-controller",queueId:s,excludedIds:b}),t("QueueFlushed",{queueId:s,plans:v,signature:g}),v};return{flush,clearQueue:a=>{const o=e[a];if(!o)return!1;const i=buildRemoteClearCommand(o);clearLocalQueueState(o)&&l(a),t("QueueCleared",{queueId:a,remote:!0,command:i});const s=[buildStackPlan([i])];return n(s,{source:"queue-controller",queueId:a,remote:!0,action:"clear-queue"}),s},flushDeferred(){const t=[];return Object.keys(e).forEach(n=>{e[n].deferred&&flush(n,{force:!0}).length&&t.push(n)}),t},flushAll(){const t=[];return Object.keys(e).forEach(e=>{const n=flush(e);n.length&&t.push({queueId:e,plans:n})}),t},acknowledgeSent(n,a={}){const o=resolveQueueId(e,n);if(!o)return!1;const i=e[o];return t("QueueSentAcknowledged",{...a,queueId:o,queueType:i?.type||a.queueType||""}),!0},acknowledgeFired(n){const a=resolveQueueId(e,n);if(!a)return!1;const o=e[a],i=o?deepClone$1(o):null;return clearLocalQueueState(e[a])&&l(a),s?.({queueId:a,queue:i}),t("QueueFiredAcknowledged",{queueId:a}),!0}}},createQueueController=({send:e,getRuntimeState:t,getSeparator:n,maxEntriesPerSubmission:a=20,onQueueFired:o}={})=>{const i=new Set,s=createQueueState();let l=0;const c=new Map,markStateChanged=e=>{l+=1,e&&c.set(e,(c.get(e)??0)+1)},emit=(e,t)=>{i.forEach(n=>n(e,t))},buildQueueSnapshot=(e={})=>({id:e.id,name:e.name,type:e.type,pre:[...e.pre||[]],post:[...e.post||[]],exclusions:[...e.exclusions||[]],items:[...e.items||[]],prepend:[...e.prepend||[]],pending:Boolean(e.pending),lastSignature:e.lastSignature||"",deferred:Boolean(e.deferred)}),u=new Map,getQueueSnapshot=e=>s[e]?(u.has(e)||u.set(e,createSnapshotCache({getVersion:()=>c.get(e)??0,buildSnapshot:()=>buildQueueSnapshot(s[e])})),u.get(e)()):null,d=createSnapshotCache({getVersion:()=>l,buildSnapshot:()=>Object.keys(s).reduce((e,t)=>(e[t]=getQueueSnapshot(t),e),{})}),p=createQueueFlushApi({state:s,emit,send:e,getRuntimeState:t,getSeparator:n,maxEntriesPerSubmission:a,onQueueFired:o,markStateChanged}),m=createQueueMutationApi({state:s,emit,flush:p.flush,getSeparator:n,markStateChanged});return{onChange:e=>(i.add(e),()=>i.delete(e)),listQueues:()=>Object.keys(s),getQueue:e=>getQueueSnapshot(e),snapshot:()=>d(),add:m.add,prepend:m.prepend,clear:m.clear,clearQueue:p.clearQueue,flush:p.flush,flushAll:p.flushAll,flushDeferred:p.flushDeferred,acknowledgeSent:p.acknowledgeSent,acknowledgeFired:p.acknowledgeFired,setPreCommands:m.setPreCommands,setPostCommands:m.setPostCommands}},normalizeRule=(e,t="runtime")=>{if(!e?.id)throw new Error("Rule must include an id");if("function"!=typeof e.evaluate)throw new Error(`Rule "${e.id}" must expose evaluate(context)`);return{id:String(e.id),enabled:!1!==e.enabled,terminal:!0===e.terminal,pack:e.pack||t,meta:deepClone$1(e.meta||{}),evaluate:e.evaluate}},mergeOverlay=(e,t={})=>t?(["affPriorities","defPriorities","curePriorities","settings","predictions"].forEach(n=>{t[n]&&(e[n]={...e[n]||{},...t[n]})}),void 0!==t.prioAff&&(e.prioAff=t.prioAff),Array.isArray(t.manualQueue)&&(e.manualQueue=[...t.manualQueue]),t.commands?.length&&(e.commands=[...e.commands||[],...t.commands]),e):e,createEmptyOverlay=()=>({affPriorities:{},defPriorities:{},curePriorities:{},settings:{},predictions:{},commands:[],prioAff:void 0,manualQueue:void 0}),diffRuleActivity=(e,t)=>{const n=[];return e.forEach((e,a)=>{t.has(a)||n.push({...e,from:!0,to:!1})}),t.forEach((t,a)=>{e.has(a)||n.push({...t,from:!1,to:!0})}),n},createRuleRegistry=(e=[])=>{const t=[],n=new Set,a=new Map,emit=(e,t)=>{n.forEach(n=>{try{n(e,t)}catch(a){console.error("nexSys4 rule registry listener failed",{event:e,error:a})}})},findIndex=e=>t.findIndex(t=>t.id===e),synthesizeDeactivation=(e,t)=>{const n=String(e);if(!a.has(n))return!1;const o=a.get(n);return a.delete(n),emit("RuleDeactivated",{...o,source:t}),!0},addRule=(e,n={})=>{const a=normalizeRule(e,n.pack);return!(findIndex(a.id)>=0)&&(Number.isInteger(n.index)&&n.index>=0&&n.index<t.length?t.splice(n.index,0,a):t.push(a),emit("RuleAdded",{id:a.id,pack:a.pack}),!0)},removeRule=e=>{const n=findIndex(e);if(n<0)return!1;synthesizeDeactivation(e,"removed");const[a]=t.splice(n,1);return emit("RuleRemoved",{id:a.id,pack:a.pack}),!0},setEnabled=(e,n)=>{const a=findIndex(e);return!(a<0)&&(t[a].enabled!==n&&(t[a].enabled=n,n||synthesizeDeactivation(e,"disabled"),emit(n?"RuleEnabled":"RuleDisabled",{id:e}),!0))},loadPack=(e,t=[])=>{let n=!1;return t.forEach(t=>{n=addRule({...t,pack:e},{pack:e})||n}),n&&emit("RulePackLoaded",{packId:e}),n},unloadPack=e=>{const n=t.filter(t=>t.pack===e).map(e=>e.id);return!!n.length&&(n.forEach(e=>removeRule(e)),emit("RulePackUnloaded",{packId:e,count:n.length}),!0)},reorder=(e=[])=>{if(!Array.isArray(e)||!e.length)return!1;const n=new Set(t.map(e=>e.id)),a=new Set(e);if(e.length!==t.length||a.size!==t.length)return!1;if([...n].some(e=>!a.has(e)))return!1;const o=t.reduce((e,t)=>(e[t.id]=t,e),{});return t.length=0,e.forEach(e=>t.push(o[e])),emit("RuleOrderChanged",{order:[...e]}),!0},evaluate=(e={})=>{const n=createEmptyOverlay(),o=[],i=new Map;for(const a of t){if(!a.enabled)continue;const t=a.evaluate(e);if(t&&(o.push(a.id),i.set(a.id,{id:a.id,pack:a.pack,meta:a.meta}),mergeOverlay(n,t),a.terminal))break}n.commands=Array.from(new Set(n.commands||[]));const s=diffRuleActivity(a,i);return a.clear(),i.forEach((e,t)=>a.set(t,e)),{overlay:n,applied:o,transitions:s}};return e.forEach(e=>addRule(e,{pack:e.pack||"general"})),{onChange:e=>(n.add(e),()=>n.delete(e)),addRule,removeRule,enableRule:e=>setEnabled(e,!0),disableRule:e=>setEnabled(e,!1),loadPack,unloadPack,reorder,evaluate,list:()=>t.map(e=>({id:e.id,enabled:e.enabled,terminal:e.terminal,isActive:a.has(e.id),pack:e.pack,meta:deepClone$1(e.meta)}))}},normalizeCommand=e=>String(e||"").trim().toLowerCase().replace(/\s+/g," "),isServersideCommand=e=>{const t=normalizeCommand(e);return t.startsWith("curing ")||t.startsWith("curingset ")},normalizeSetName=e=>String(e||"").trim().toLowerCase(),toNumberMaybe=e=>{if("number"==typeof e&&Number.isFinite(e))return e;const t=Number(e);return Number.isFinite(t)?t:e},normalizeBoolean=e=>{if("boolean"==typeof e)return e;const t=String(e||"").trim().toLowerCase();return!!["on","yes","true","activated","enabled"].includes(t)||!["off","no","false","disabled"].includes(t)&&Boolean(e)},normalizeStatusValue=(e,t)=>{switch(e){case"enabled":case"reporting":case"afflictions":case"defences":case"sipping":case"transmutation":case"focus":case"useVault":case"clot":case"fallback":case"kaidoTransmute":case"customAffPriority":case"customDefPriority":case"batch":case"insomnia":return normalizeBoolean(t);case"focusOverHerbs":{if("boolean"==typeof t)return t;const e=String(t||"").trim().toLowerCase();return!!["focus","first","yes","on","true"].includes(e)||!["herbs","second","no","off","false"].includes(e)&&Boolean(t)}case"tree":{if("custom"===t)return"custom";if("boolean"==typeof t)return t?"on":"off";const e=String(t||"").trim().toLowerCase();return["custom","on","off"].includes(e)?e:["yes","activated","enabled","true"].includes(e)?"on":["no","disabled","false"].includes(e)?"off":e||"off"}case"sipPriority":return"mana"===String(t||"").trim().toLowerCase()?"mana":"health";default:return toNumberMaybe(t)}},createServersideContext=({affModel:e,defModel:t,balanceModel:n,systemModel:a,trackables:o,now:i})=>{const s=a.getRoom().items||{};let l=null;const isTarget=e=>Array.isArray(e)?e.some(e=>isTarget(e)):"function"==typeof a.isTarget&&a.isTarget(e);return{haveAff:t=>e.haveAff(t),haveAffs:(t=[])=>e.haveAffs(t),haveAnAff:(t=[])=>e.haveAnAff(t),affCount:t=>Number(e.get?.(t)?.count||0),affElapsed:t=>e.elapsed(t),sortedActiveAffs:()=>(null===l&&(l="function"==typeof e.currentSorted?e.currentSorted():[]),l),haveDef:e=>t.haveDef(e),haveDefs:(e=[])=>e.every(e=>t.haveDef(e)),haveADef:(e=[])=>e.some(e=>t.haveDef(e)),haveBal:e=>n.have(e),haveBals:(e=[])=>e.every(e=>n.have(e)),haveABal:(e=[])=>e.some(e=>n.have(e)),balElapsed:e=>n.elapsed(e),trackableElapsed:e=>{const t=o[e];return t?.have?i()-t.since:Number.POSITIVE_INFINITY},roomHasItem:e=>Boolean(s[e]),isTarget,isClass:e=>a.isClass(e)}},buildCountablePriorityDefaults=e=>"function"!=typeof e.getCountablePriorityNames?{}:e.getCountablePriorityNames().reduce((e,t)=>(e[t]=0,e),{}),normalizeServersideAffPriority=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=26?t:0},isServersideAffPriorityNumber=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=26},buildBaselineAffPriorities=e=>({...e.list().reduce((t,n)=>(t[n]=normalizeServersideAffPriority(e.getPriority(n)),t),{}),...buildCountablePriorityDefaults(e)}),buildObservedAffPriorities=e=>({...e.list().reduce((e,t)=>(e[t]=0,e),{}),...buildCountablePriorityDefaults(e)}),buildBaselineDefPriorities=(e,t="")=>e.list().reduce((n,a)=>{const o=e.get(a);return!o?.serverside||o.static?n:e.isAvailableForClass(a,t)?(n[a]=e.getPriority(a),n):n},{}),buildObservedDefPriorities=(e,t="")=>e.list().reduce((n,a)=>e.get(a)?.serverside&&e.isAvailableForClass(a,t)?(n[a]=0,n):n,{}),buildBaselineCurePriorities=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=Number(n.prio||0),e),{}),mergeWithResets=(e,t={})=>{const n={...e};return Object.entries(t).forEach(([t,a])=>{n[t]="RESET"!==a?a:e[t]}),n},createInitialServersideState=({baselineSettings:e,affModel:t,defModel:n,systemModel:a,cureTable:o})=>{const i=a?.getClass?.()||"",s=buildBaselineAffPriorities(t),l=buildBaselineDefPriorities(n,i),c=buildBaselineCurePriorities(o);return{baseline:{settings:{...e},affPriorities:s,defPriorities:l,curePriorities:c},sessionBaseline:{settings:{...e},affPriorities:{...s},defPriorities:{...l},curePriorities:{...c}},derived:{},desired:{},observed:{settings:{...e},affPriorities:buildObservedAffPriorities(t),defPriorities:buildObservedDefPriorities(n,i),curePriorities:buildBaselineCurePriorities(o),prioAff:null,manualQueue:[],predictions:{}},pending:new Map,capture:{affPriorities:null,defPriorities:null},transient:{prioAff:null,manualQueue:[],predictions:{},staticDefRequests:{},fullPriorityReset:!1},diagnostics:{lastCommands:[],lastReasons:[],desyncCounter:0,recoveryCounter:0,commandRepeatCounter:0},curingsets:{supportedMulti:!1,degradedMode:!1,sets:[],defaultSet:"default",workingSet:"working",activeSet:""},startup:{flags:{status:!1,affPriorities:!1,defPriorities:!1,queue:!1,predictions:!1,curingsets:!1}},lastDiffCommands:[],rules:[],dirty:!0}},buildBaselineRestoreTarget=e=>({settings:{...e.baseline.settings},affPriorities:{...e.baseline.affPriorities},defPriorities:{...e.baseline.defPriorities},curePriorities:{...e.baseline.curePriorities},manualQueue:[],predictions:{},prioAff:null,fullPriorityReset:!1,injectedCommands:[],appliedRules:[]}),createSettingCommand=(e,t)=>Object.freeze({commandId:e,buildCommand:t}),zn=Object.freeze({enabled:createSettingCommand("curing-enabled",e=>`curing ${boolWord(e)}`),afflictions:createSettingCommand("curing-afflictions",e=>`curing afflictions ${boolWord(e)}`),defences:createSettingCommand("curing-defences",e=>`curing defences ${boolWord(e)}`),sipping:createSettingCommand("curing-sipping",e=>`curing sipping ${boolWord(e)}`),transmutation:createSettingCommand("curing-transmutation",e=>`curing transmutation ${boolWord(e)}`),sipHealthAt:createSettingCommand("curing-siphealth",e=>`curing siphealth ${e}`),sipManaAt:createSettingCommand("curing-sipmana",e=>`curing sipmana ${e}`),mossHealthAt:createSettingCommand("curing-mosshealth",e=>`curing mosshealth ${e}`),mossManaAt:createSettingCommand("curing-mossmana",e=>`curing mossmana ${e}`),sipPriority:createSettingCommand("curing-priority-mode",e=>`curing priority ${String(e||"health").toLowerCase()}`),focus:createSettingCommand("curing-focus-enabled",e=>`curing focus ${boolWord(e)}`),focusOverHerbs:createSettingCommand("curing-focus-priority-mode",e=>"curing focus "+(e?"first":"second")),tree:createSettingCommand("curing-tree",e=>{const t=String(e||"on").toLowerCase();return["on","off","custom"].includes(t)?`curing tree ${t}`:null}),useVault:createSettingCommand("curing-usevault",e=>`curing usevault ${boolWord(e)}`),clot:createSettingCommand("curing-useclot",e=>`curing useclot ${boolWord(e)}`),clotAt:createSettingCommand("curing-clotat",e=>`curing clotat ${e}`),fallback:createSettingCommand("curing-fallback",e=>`curing fallback ${boolWord(e)}`),kaidoTransmute:createSettingCommand("curing-kaidotransmute",e=>e?"curing kaidotransmute":null),batch:createSettingCommand("curing-batch",e=>`curing batch ${boolWord(e)}`),fracturesAbove:createSettingCommand("curing-healthaffsabove",e=>`curing healthaffsabove ${e}`),manaThreshold:createSettingCommand("curing-manathreshold",e=>`curing manathreshold ${e}`)}),sameArray=(e=[],t=[])=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0},mapDiff=(e={},t={})=>[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>e[n]!==t[n]),normalizePredictionMap=(e={})=>Array.isArray(e)?e.reduce((e,t)=>(e[t]=!0,e),{}):{...e},toGamePriorityToken=e=>isServersideAffPriorityNumber(e)?String(Number(e)):"reset",createServersideDiffPlanner=({baseline:e={},getBaseline:t,getAffPriorityCommandName:n,getDefPriorityTokens:a}={})=>{const resolveBaseline=()=>"function"==typeof t?t()||{}:e,resolveAffPriorityCommandName=e=>{if("function"==typeof n){const t=n(e);if(t)return String(t)}return String(e)},resolveDefPriorityTokens=(e,t)=>{if(!isServersideAffPriorityNumber(t))return["reset"];if("function"==typeof a){const n=a(e,Number(t));if(Array.isArray(n)&&n.length)return n.map(e=>String(e));if(null!=n&&!1!==n)return[String(n)]}return[String(Number(t))]},normalizeDesiredDefPriority=e=>"RESET"===e||void 0===e?0:isServersideAffPriorityNumber(e)?Number(e):0,build=({desired:e={},observed:t={}}={})=>{const n=resolveBaseline(),a=n.settings||{},o=n.affPriorities||{},i=[],s=[],l=e.settings||{};mapDiff(l,t.settings||{}).sort().forEach(e=>{const t=zn[e];if(!t)return;const n=t.buildCommand(l[e]);n&&(i.push(n),s.push(`settings:${e}`))});const c=e.affPriorities||{},u=t.affPriorities||{};!0===e.fullPriorityReset&&(i.push("curing priority reset"),s.push("aff-priority:reset-all"));const d=mapDiff(c,u).sort().map(e=>{const t=c[e];return"RESET"===t||void 0===t?[e,toGamePriorityToken(o[e]??0)]:[e,toGamePriorityToken(t)]});if(d.length){const e=d.flatMap(([e,t])=>[resolveAffPriorityCommandName(e),String(t)]);i.push(`curing priority ${e.join(" ")}`),d.forEach(([e])=>s.push(`aff-priority:${e}`))}const p=e.defPriorities||{},m=t.defPriorities||{},g=[...new Set([...Object.keys(p),...Object.keys(m)])].filter(e=>normalizeDesiredDefPriority(p[e])!==Number(m[e]??0)).sort().map(e=>{const t=p[e];return"RESET"===t||void 0===t?[e,["reset"],`def-priority-reset:${e}`]:isServersideAffPriorityNumber(t)?[e,resolveDefPriorityTokens(e,t),`def-priority:${e}`]:[e,["reset"],`def-priority-reset:${e}`]});if(g.length){const e=g.flatMap(([e,t])=>[e,...t]);i.push(`curing priority defence ${e.join(" ")}`),g.forEach(([,,e])=>s.push(e))}const h=e.prioAff;h!==t.prioAff&&(h?(i.push(`curing prioaff ${h}`),s.push(`prioaff:${h}`)):(i.push("curing prioaff none"),s.push("prioaff:clear")));const b=e.manualQueue||[];sameArray(b,t.manualQueue||[])||(i.push("curing queue reset"),b.forEach((e,t)=>{i.push(`curing queue insert ${t+1} ${e}`)}),s.push("manual-queue:reconcile"));const y=normalizePredictionMap(e.predictions),v=normalizePredictionMap(t.predictions);return[...new Set([...Object.keys(y),...Object.keys(v)])].sort().forEach(e=>{const t=Boolean(y[e]);t!==Boolean(v[e])&&(i.push(`${t?"curing predict":"curing unpredict"} ${e}`),s.push(`prediction:${e}`))}),{commands:Array.from(new Set(i)),reasonCodes:s,baseSettings:a}};return{build,getBaseSettings:()=>resolveBaseline().settings||{},getBaseAff:()=>resolveBaseline().affPriorities||{},getBaseDef:()=>resolveBaseline().defPriorities||{}}},Ln=Object.freeze({BALANCE:"balance",EQUILIBRIUM:"equilibrium",ENTITY:"entity",FOCUS:"focus",FREE:"free",WRITHE:"writhe"}),hasAny=(e,t)=>e.haveAnAff(t),hasAll=(e,t)=>e.haveAffs(t),emergencyClassRules=e=>{const t={},n=!e.haveBal(Ln.FOCUS)||e.haveAff("impatience");return t.fitness=e.isClass(["Runewarden","Monk","Blademaster","Infernal","Paladin","Sentinel","Druid"])&&e.haveAff("asthma")&&(hasAny(e,["slickness","hellsight"])&&hasAny(e,["paralysis","clumsiness","sensitivity"])||hasAny(e,["damagedhead","mangledhead","damagedleftleg","damagedrightleg"])&&hasAny(e,["paralysis","clumsiness","sensitivity","slickness","hellsight","disloyalty"]))?100:"RESET",t.dragonheal=e.isClass("Dragon")&&hasAll(e,["asthma","slickness","anorexia"])&&n?100:"RESET",t.dragonflex="RESET",e.isClass("Dragon")&&(hasAll(e,["entangled","webbed"])||hasAny(e,["entangled","webbed"])&&(e.haveBal(Ln.BALANCE)&&!e.haveBal(Ln.WRITHE)||e.haveAff("transfixation")))&&(t.dragonflex=100),t.bloodboil=e.isClass("Magi")&&hasAll(e,["asthma","slickness"])&&(hasAny(e,["hypochondria","paralysis"])||e.haveAff("anorexia")&&n)?100:"RESET",t.dwinnu=e.isClass("Bard")&&(hasAll(e,["webbed","entangled"])||hasAny(e,["webbed","entangled"])&&e.haveAff("transfixation"))?100:"RESET",t.salt=e.isClass("Alchemist")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","paralysis"]))?100:"RESET",t.shrugging=e.isClass("Serpent")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","paralysis"]))?100:"RESET",t.fool=e.isClass("Occultist")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","impatience"]))?100:"RESET",t.alleviate=e.isClass("Blademaster")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","impatience"]))?100:"RESET",t},createDefaultServersideRulePack=()=>[{id:"aeon-threshold-and-priority",pack:"general",evaluate:e=>e.haveAff("aeon")?{settings:{sipHealthAt:30,sipManaAt:10,mossHealthAt:0,mossManaAt:0,batch:!1,clotAt:5e3},affPriorities:{asthma:3,weariness:4,anorexia:5,impatience:7,paralysis:8}}:null},{id:"focus-balance-priority-shift",pack:"general",evaluate:e=>e.haveBal(Ln.FOCUS)?null:{affPriorities:{stupidity:9,recklessness:12,dizziness:14,shyness:14}}},{id:"scytherus-paralysis",pack:"general",evaluate:e=>hasAll(e,["scytherus","paralysis"])?{affPriorities:{scytherus:2}}:null},{id:"confusion-disrupted",pack:"general",evaluate:e=>hasAll(e,["confusion","disrupted"])&&(e.haveBal(Ln.FOCUS)||e.haveAff("impatience"))&&!e.haveAff("whisperingmadness")?{affPriorities:{confusion:2}}:null},{id:"impatience-snaptrack",pack:"general",evaluate:e=>e.haveAff("impatience")&&e.trackableElapsed("snapTrack")<8e3?{affPriorities:{impatience:2}}:null},{id:"hypochondria-impatience",pack:"general",evaluate:e=>hasAll(e,["impatience","hypochondria"])?{affPriorities:{hypochondria:1}}:e.haveAff("hypochondria")&&e.trackableElapsed("snapTrack")<8e3?{affPriorities:{hypochondria:2}}:null},{id:"slickness-asthma-sensitivity-group",pack:"general",evaluate:e=>{const t=hasAny(e,["sensitivity","clumsiness","weariness","hypochondria"]);return hasAll(e,["slickness","asthma"])&&t&&!e.haveAff("anorexia")?{affPriorities:{slickness:2}}:null}},{id:"asthma-hellsight-slickness",pack:"general",evaluate:e=>{const t=!hasAny(e,["sensitivity","clumsiness","weariness","hypochondria"]);return hasAll(e,["slickness","asthma"])&&t||hasAll(e,["hellsight","asthma"])?{affPriorities:{asthma:2}}:null}},{id:"darkshade-lightwall",pack:"general",evaluate:e=>e.haveAff("darkshade")&&e.affElapsed("darkshade")>1e4&&e.roomHasItem("a lightwall")?{affPriorities:{darkshade:2}}:null},{id:"prone-sensitivity-legdamage",pack:"general",evaluate:e=>hasAll(e,["prone","sensitivity"])&&hasAny(e,["damagedleftleg","damagedrightleg"])?{affPriorities:{sensitivity:2}}:null},{id:"conflagration-burning",pack:"general",evaluate:e=>{if(!e.haveAff("conflagration")||!hasAny(e,["brokenleftleg","brokenrightleg","damagedleftleg","damagedrightleg","mangledleftleg","mangledrightleg"]))return null;const t=hasAny(e,["damagedleftleg","damagedrightleg","mangledleftleg","mangledrightleg"]);return e.haveAff("prone")&&!t?{affPriorities:{burning:7}}:{affPriorities:{burning:4}}}},{id:"cadmus-focus-toggle",pack:"general",evaluate:e=>({settings:{focus:!e.haveAff("cadmuscurse")}})},{id:"scalded-blindness-defence",pack:"general",evaluate:e=>e.haveAff("scalded")?{defPriorities:{blindness:0}}:null},{id:"class-emergency-cures",pack:"general",evaluate:e=>({curePriorities:emergencyClassRules(e)})}],jn=Object.freeze(["status","affPriorities","defPriorities"]),Bn=Object.freeze({status:"enabled",enabled:"enabled",reportingcommands:"reporting",afflictions:"afflictions",defences:"defences",sipping:"sipping",transmutation:"transmutation",siphealth:"sipHealthAt",siphealthat:"sipHealthAt",sipmana:"sipManaAt",sipmanaat:"sipManaAt",mosshealth:"mossHealthAt",mosshealthat:"mossHealthAt",mossmana:"mossManaAt",mossmanaat:"mossManaAt",priority:"sipPriority",sippriority:"sipPriority",focus:"focus",focusoverherbs:"focusOverHerbs",tree:"tree",usevault:"useVault",useclot:"clot",clot:"clot",clotat:"clotAt",clotabove:"clotAbove",fallback:"fallback",kaidotransmute:"kaidoTransmute",customcuringpriority:"customAffPriority",customdefencepriority:"customDefPriority",batch:"batch",healthaffsabove:"fracturesAbove",fracturesabove:"fracturesAbove",manathreshold:"manaThreshold",insomnia:"insomnia"}),createServersideObservationApi=({state:e,affModel:t,defModel:n,systemModel:a,emit:o,markDirty:i,replaceBucket:s,maybeResolveFullPriorityReset:l,normalizeAffPriorityName:c=e=>String(e||"").toLowerCase()})=>{const getMissingStartupFlags=(t=Object.keys(e.startup.flags))=>t.filter(t=>t in e.startup.flags&&!e.startup.flags[t]),u=createSnapshotCache({getVersion:()=>e.startup,buildSnapshot:()=>({...e.startup.flags})}),d=createSnapshotCache({getVersion:()=>e.startup,buildSnapshot:()=>{const e=u(),t=getMissingStartupFlags(jn);return{ready:Object.values(e).every(Boolean),requiredReady:0===t.length,missingRequired:t,flags:e}}}),markStartupCaptured=t=>t in e.startup.flags&&!e.startup.flags[t]&&(s("startup",{...e.startup,flags:{...e.startup.flags,[t]:!0}}),o("ServersideStartupSnapshotCaptured",{topic:t,flags:u()}),!0),updateObservedSetting=(t,n)=>{if(e.observed.settings[t]!==n){if(s("observed",{...e.observed,settings:{...e.observed.settings,[t]:n}}),e.startup.flags.status){const a=e.derived?.settings?.[t];void 0!==a&&"RESET"!==a||s("sessionBaseline",{...e.sessionBaseline,settings:{...e.sessionBaseline.settings,[t]:n}})}i(`observed-setting:${t}`)}},completeObservedAffPrioritySnapshot=()=>(e.capture.affPriorities&&(s("observed",{...e.observed,affPriorities:e.capture.affPriorities}),e.capture.affPriorities=null,l(),i("observed-aff-priority-snapshot")),markStartupCaptured("affPriorities"),!0),completeObservedDefPrioritySnapshot=()=>(e.capture.defPriorities&&(s("observed",{...e.observed,defPriorities:e.capture.defPriorities}),e.capture.defPriorities=null,i("observed-def-priority-snapshot")),markStartupCaptured("defPriorities"),!0),updateObservedQueue=(t=[])=>{const n=t||[],a=e.observed.manualQueue,o=n.length===a.length&&n.every((e,t)=>e===a[t]);markStartupCaptured("queue"),o||(s("observed",{...e.observed,manualQueue:[...n]}),i("observed-manual-queue"))},updateObservedPredictions=(t={})=>{const n=t||{},a=e.observed.predictions,o=Object.keys(n),l=o.length===Object.keys(a).length&&o.every(e=>n[e]===a[e]);markStartupCaptured("predictions"),l||(s("observed",{...e.observed,predictions:{...n}}),i("observed-predictions"))},parseStatusLine=({key:e,value:t})=>{const n=String(e||"").trim(),a=Bn[n.toLowerCase()]||n;updateObservedSetting(a,normalizeStatusValue(a,t))};return{markStartupCaptured,resetStartupStatus:()=>{const t=Object.keys(e.startup.flags).reduce((e,t)=>(e[t]=!1,e),{});return e.capture.affPriorities=null,e.capture.defPriorities=null,s("startup",{...e.startup,flags:t}),o("ServersideStartupReset",{flags:u()}),!0},isStartupReady:()=>Object.values(e.startup.flags).every(Boolean),getStartupStatus:()=>d(),getMissingStartupFlags,beginObservedAffPrioritySnapshot:()=>(e.capture.affPriorities=buildObservedAffPriorities(t),!0),completeObservedAffPrioritySnapshot,updateObservedSetting,updateObservedAffPriority:(t,n)=>{const a=e.capture.affPriorities||e.observed.affPriorities,o=String(t||"").toLowerCase(),u=c(t);if(!u)return!1;if(!Object.prototype.hasOwnProperty.call(a,u))return!1;const d=normalizeServersideAffPriority(n);if(e.capture.affPriorities)return o&&o!==u&&delete a[o],a[u]=d,!0;const p={...e.observed.affPriorities};if(o&&o!==u&&delete p[o],p[u]=d,s("observed",{...e.observed,affPriorities:p}),l(),e.startup.flags.affPriorities){const t=e.derived?.affPriorities?.[u];void 0!==t&&"RESET"!==t||s("sessionBaseline",{...e.sessionBaseline,affPriorities:{...e.sessionBaseline.affPriorities,[u]:d}})}return i(`observed-aff-priority:${u}`),!0},beginObservedDefPrioritySnapshot:()=>(e.capture.defPriorities=buildObservedDefPriorities(n,a.getClass()),!0),completeObservedDefPrioritySnapshot,updateObservedDefPriority:(t,o)=>{const l=e.capture.defPriorities||e.observed.defPriorities,c=String(t||"").toLowerCase(),u=n.get(c);if(!u?.serverside)return!1;if(!n.isAvailableForClass(c,a.getClass()))return!1;const d="RESET"===String(o).toUpperCase()?0:Number(o);if(!Number.isFinite(d))return!1;if(e.capture.defPriorities)return l[c]=d,!0;if(s("observed",{...e.observed,defPriorities:{...e.observed.defPriorities,[c]:d}}),e.startup.flags.defPriorities){const t=e.derived?.defPriorities?.[c];if(void 0===t||"RESET"===t){const t={...e.sessionBaseline.defPriorities};u.static?delete t[c]:t[c]=d,s("sessionBaseline",{...e.sessionBaseline,defPriorities:t})}}return i(`observed-def-priority:${c}`),!0},updateObservedQueue,updateObservedPredictions,parseStatusLine}},createServersideTransientApi=({state:e,trackables:t,now:n,markDirty:a,emit:o,replaceBucket:i,normalizeAffName:s=e=>String(e||"").toLowerCase()})=>({setTrackable(e,i,s={}){const l=String(e||"").trim();if(!l)return!1;t[l]||(t[l]={have:!1,since:0});const c=Boolean(i);if(t[l].have===c)return!1;const u=n();return t[l].have=c,t[l].since=c?u:0,o(c?"TrackableGot":"TrackableLost",{name:l,label:String(s.label||l),have:c,at:u,since:t[l].since,source:String(s.source||"manual")}),a(`trackable:${l}`),!0},setPrioAff(t){const n=t?s(t):null;return e.transient.prioAff!==n&&(i("transient",{...e.transient,prioAff:n}),a("prioaff"),!0)},clearPrioAff:()=>!!e.transient.prioAff&&(i("transient",{...e.transient,prioAff:null}),a("prioaff-clear"),!0),requestPriorityReset:()=>!e.transient.fullPriorityReset&&(i("transient",{...e.transient,fullPriorityReset:!0}),a("priority-reset-request"),!0),requestStaticDefPriorities(t={}){let n=!1;const o={...e.transient.staticDefRequests};return Object.entries(t||{}).forEach(([e,t])=>{const a=String(e||"").trim().toLowerCase(),i=Number(t);!a||!Number.isInteger(i)||i<1||i>25||o[a]!==i&&(o[a]=i,n=!0)}),n&&(i("transient",{...e.transient,staticDefRequests:o}),a("static-def-request")),n},clearStaticDefPriorities(t){const n=Array.isArray(t)?t.map(e=>String(e||"").trim().toLowerCase()).filter(Boolean):Object.keys(e.transient.staticDefRequests);let o=e.transient.staticDefRequests;n.forEach(t=>{Object.prototype.hasOwnProperty.call(o,t)&&(o===e.transient.staticDefRequests&&(o={...e.transient.staticDefRequests}),delete o[t])});const s=i("transient",{...e.transient,staticDefRequests:o});return s&&a("static-def-clear"),s},addPrediction(t){const n=String(t||"").toLowerCase();return!(!n||e.transient.predictions[n])&&(i("transient",{...e.transient,predictions:{...e.transient.predictions,[n]:!0}}),a(`prediction-add:${n}`),!0)},removePrediction(t){const n=String(t||"").toLowerCase();if(!n||!e.transient.predictions[n])return!1;const o={...e.transient.predictions};return delete o[n],i("transient",{...e.transient,predictions:o}),a(`prediction-remove:${n}`),!0},manualQueueAdd(t){const n=String(t||"").toLowerCase();return!(!n||e.transient.manualQueue.includes(n))&&(i("transient",{...e.transient,manualQueue:[...e.transient.manualQueue,n]}),a("manual-queue-add"),!0)},manualQueueInsert(t,n){const o=String(n||"").toLowerCase(),s=Math.max(1,Math.min(20,Number(t||1)));if(!o||e.transient.manualQueue.includes(o))return!1;const l=[...e.transient.manualQueue];return l.splice(s-1,0,o),i("transient",{...e.transient,manualQueue:l}),a("manual-queue-insert"),!0},manualQueueRemove(t){const n=String(t||"").toLowerCase(),o=e.transient.manualQueue.indexOf(n);if(o<0)return!1;const s=[...e.transient.manualQueue];return s.splice(o,1),i("transient",{...e.transient,manualQueue:s}),a("manual-queue-remove"),!0},manualQueueReset:()=>!!e.transient.manualQueue.length&&(i("transient",{...e.transient,manualQueue:[]}),a("manual-queue-reset"),!0)}),shallowCopyDesired=e=>({settings:{...e.settings},affPriorities:{...e.affPriorities},defPriorities:{...e.defPriorities},curePriorities:{...e.curePriorities},manualQueue:[...e.manualQueue||[]],predictions:{...e.predictions},prioAff:e.prioAff??null,fullPriorityReset:Boolean(e.fullPriorityReset),injectedCommands:[...e.injectedCommands||[]],appliedRules:[...e.appliedRules||[]]}),areCommandSequencesEqual=(e=[],t=[])=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0},createServersideEvaluationApi=({state:e,affModel:t,defModel:n,balanceModel:a,systemModel:o,cureTable:i,ruleRegistry:s,diffPlanner:l,sendCommands:c,emit:u,markDirty:d,replaceBucket:p,refreshRulesBucket:m,now:g,trackables:h,options:b})=>{const clearResolvedPending=()=>{const t=b.pendingTimeoutMs||12e3,n=g();let a=e.pending;for(const[o,i]of e.pending.entries())n-i>t&&(a===e.pending&&(a=new Map(e.pending)),a.delete(o));return p("pending",a)},markPendingCommands=(t=[],n={})=>{const a=t.map(e=>normalizeCommand(e)).filter(e=>e&&isServersideCommand(e));if(a.length){const t=g(),n=new Map(e.pending);a.forEach(e=>n.set(e,t)),p("pending",n)}return a.length&&u("ServersidePendingUpdated",{commands:[...a],context:{...n}}),a},filterServersideDefPriorities=(e={})=>{const t=o.getClass();return Object.entries(e||{}).reduce((e,[a,o])=>{const i=n.get(a);return!i?.serverside||i.static?e:n.isAvailableForClass(a,t)?(e[a]=o,e):e},{})},buildRequestedStaticDefPriorities=()=>{const t=o.getClass(),a=e.transient.staticDefRequests||{};let i=a;const removeRequest=e=>{i===a&&(i={...a}),delete i[e]},s=Object.entries(a).reduce((e,[a,o])=>{const i=n.get(a);if(!i?.static)return removeRequest(a),e;if(n.haveDef(a)||!n.isAvailableForClass(a,t))return removeRequest(a),e;if(!i.serverside)return e;const s=n.getPriority(a),l=isServersideAffPriorityNumber(s)?s:o;return!isServersideAffPriorityNumber(l)||Number(l)>=26?(removeRequest(a),e):(e[a]=Number(l),e)},{});return i!==a&&p("transient",{...e.transient,staticDefRequests:i}),s},emitRuleTransitions=(e=[],t)=>{e.forEach(e=>{e.to||u("RuleDeactivated",{id:e.id,pack:e.pack,meta:e.meta,source:t})}),e.forEach(e=>{e.to&&u("RuleActivated",{id:e.id,pack:e.pack,meta:e.meta,source:t})})},resolveDesired=()=>{const i=createServersideContext({affModel:t,defModel:n,balanceModel:a,systemModel:o,trackables:h,now:g}),l=s.evaluate(i);return m?.(),p("derived",l.overlay),p("desired",{settings:{...e.sessionBaseline.settings,...l.overlay.settings},affPriorities:mergeWithResets(e.sessionBaseline.affPriorities,l.overlay.affPriorities),defPriorities:{...mergeWithResets(e.sessionBaseline.defPriorities,filterServersideDefPriorities(l.overlay.defPriorities)),...buildRequestedStaticDefPriorities()},curePriorities:mergeWithResets(e.sessionBaseline.curePriorities,l.overlay.curePriorities),manualQueue:Array.isArray(l.overlay.manualQueue)?[...l.overlay.manualQueue]:[...e.transient.manualQueue],predictions:{...e.transient.predictions,...l.overlay.predictions},prioAff:null!==e.transient.prioAff&&void 0!==e.transient.prioAff?e.transient.prioAff:l.overlay.prioAff||null,fullPriorityReset:e.transient.fullPriorityReset,injectedCommands:l.overlay.commands||[],appliedRules:l.applied}),{desired:e.desired,evaluation:l}};return{markPendingCommands,maybeResolveFullPriorityReset:()=>!!e.transient.fullPriorityReset&&(!!Object.keys(e.sessionBaseline.affPriorities).every(t=>(e.observed.affPriorities[t]??e.sessionBaseline.affPriorities[t])===e.sessionBaseline.affPriorities[t])&&(p("transient",{...e.transient,fullPriorityReset:!1}),u("ServersideFullPriorityResetResolved",{fullPriorityReset:!1}),!0)),evaluate({emitCommands:t=!0,source:n="prompt"}={}){clearResolvedPending();const{desired:a,evaluation:o}=resolveDesired(),i=l.build({desired:a,observed:e.observed});let s=[...a.injectedCommands,...i.commands].filter(Boolean).filter(t=>!e.pending.has(normalizeCommand(t)));const d=Math.max(1,Number(b.maxCommandsPerCycle||40));let m=e.diagnostics.recoveryCounter;s.length>d&&(s=s.slice(0,d),m+=1);const g=(i.commands||[]).filter(Boolean).filter(t=>!e.pending.has(normalizeCommand(t)));let h=g.length&&areCommandSequencesEqual(e.lastDiffCommands||[],g)?e.diagnostics.commandRepeatCounter+1:0,y=e.diagnostics.desyncCounter;return h>=(b.desyncCommandRepeats||3)&&(y+=1,m+=1,s.push("curing status","curing priority list","curing priority defence list","curing queue list","curing predictions"),h=0),t&&s.length&&(c(s,{source:"serverside-reconcile",reasonCodes:i.reasonCodes,cycleSource:n}),markPendingCommands(s,{source:"serverside-reconcile",reasonCodes:i.reasonCodes,cycleSource:n})),e.lastDiffCommands=[...g],p("diagnostics",{...e.diagnostics,lastCommands:[...s],lastReasons:[...i.reasonCodes],desyncCounter:y,recoveryCounter:m,commandRepeatCounter:h}),e.dirty=!1,u("ServersideEvaluated",{source:n,desired:shallowCopyDesired(a),commands:[...s],reasons:[...i.reasonCodes]}),emitRuleTransitions(o.transitions,n),{desired:shallowCopyDesired(a),commands:s,reasons:i.reasonCodes}},setBaselineFromRuntime(){const a=o.getBaselineIntent().ss,s=o.getClass(),l={...e.baseline,settings:{...e.baseline.settings,...a},affPriorities:buildBaselineAffPriorities(t),defPriorities:buildBaselineDefPriorities(n,s),curePriorities:buildBaselineCurePriorities(i)};p("baseline",l);const c=buildObservedDefPriorities(n,s),u=Object.keys(c).reduce((t,n)=>(t[n]=e.observed.defPriorities[n]??c[n],t),{});p("observed",{...e.observed,defPriorities:u}),p("sessionBaseline",{settings:{...l.settings},affPriorities:{...l.affPriorities},defPriorities:{...l.defPriorities},curePriorities:{...l.curePriorities}}),d("baseline-refresh")},getCurePriority(t){const n=String(t||"").toLowerCase();return e.desired.curePriorities?.[n]??e.baseline.curePriorities[n]??0},observeOutbound:(e=[])=>markPendingCommands(e,{source:"observe-outbound"})}},createServersideCuringSetApi=({state:e,diffPlanner:t,sendCommands:n,markPendingCommands:a,markDirty:o,markStartupCaptured:i,replaceBucket:s})=>{const issueCuringSetCommand=(e,t)=>{const o=normalizeCommand(e);return!!o&&(n([o],{source:"serverside-curingset",reason:t}),a([o],{source:"serverside-curingset",reason:t}),!0)};return{listCuringSets:()=>issueCuringSetCommand("curingset list","list"),createCuringSet(e){const t=normalizeSetName(e);return!!t&&issueCuringSetCommand(`curingset new ${t}`,"new")},switchCuringSet(t){const n=normalizeSetName(t);if(!n)return!1;const a=issueCuringSetCommand(`curingset switch ${n}`,"switch");return a&&(s("curingsets",{...e.curingsets,activeSet:n}),o("curingset-switch")),a},cloneCuringSet(e){const t=normalizeSetName(e);return!!t&&issueCuringSetCommand(`curingset clone ${t}`,"clone")},renameCuringSet(e,t){const n=normalizeSetName(e),a=normalizeSetName(t);return!(!n||!a)&&issueCuringSetCommand(`curingset rename ${n} ${a}`,"rename")},deleteCuringSet(e){const t=normalizeSetName(e);return!!t&&issueCuringSetCommand(`curingset delete ${t}`,"delete")},restoreWorkingFromDefault(){if(!e.curingsets.supportedMulti){s("curingsets",{...e.curingsets,degradedMode:!0});const i=t.build({desired:buildBaselineRestoreTarget(e),observed:e.observed}).commands;return i.length&&(n(i,{source:"curingset-restore-degraded"}),a(i,{source:"curingset-restore-degraded"})),o("curingset-degraded-restore"),{degraded:!0,commands:i}}const i=[`curingset switch ${e.curingsets.workingSet}`,`curingset clone ${e.curingsets.defaultSet}`];return n(i,{source:"curingset-restore"}),a(i,{source:"curingset-restore"}),{degraded:!1,commands:i}},observeCuringSets({sets:t=[],activeSet:n=""}={}){const a=[...new Set((t||[]).map(e=>normalizeSetName(e)).filter(Boolean))],l=normalizeSetName(n);let c={...e.curingsets,sets:a,activeSet:l,supportedMulti:a.length>=2,degradedMode:a.length<2};c.supportedMulti&&(a.includes(c.defaultSet)||(c={...c,defaultSet:a[0]}),a.includes(c.workingSet)||(c={...c,workingSet:a[1]||a[0]})),s("curingsets",c),i("curingsets"),o("curingset-observed")}}},Fn=new Set(["RuleActivated","RuleDeactivated","RuleAdded","RuleRemoved","RuleEnabled","RuleDisabled","RulePackLoaded","RulePackUnloaded","RuleOrderChanged"]),qn=Object.freeze(["baseline","sessionBaseline","derived","desired","observed","transient","pending","diagnostics","curingsets","startup","rules"]),areBucketValuesEqual=(e,t)=>{if(Object.is(e,t))return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;if(e instanceof Date||t instanceof Date)return e instanceof Date&&t instanceof Date&&e.getTime()===t.getTime();if(Array.isArray(e)||Array.isArray(t))return!(!Array.isArray(e)||!Array.isArray(t))&&(e.length===t.length&&e.every((e,n)=>areBucketValuesEqual(e,t[n])));if(e instanceof Map||t instanceof Map){if(!(e instanceof Map&&t instanceof Map))return!1;if(e.size!==t.size)return!1;const n=[...e.entries()],a=[...t.entries()];for(let e=0;e<n.length;e+=1){const[t,o]=n[e],[i,s]=a[e];if(!Object.is(t,i)||!areBucketValuesEqual(o,s))return!1}return!0}const n=Object.keys(e),a=Object.keys(t);return n.length===a.length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&areBucketValuesEqual(e[n],t[n]))},createServersideController=({adapter:e,dispatchCommands:t,affModel:n,defModel:a,balanceModel:o,systemModel:i,cureTable:s={},options:l={}}={})=>{if("function"!=typeof t)throw new Error("createServersideController requires a dispatchCommands function.");const now=()=>e.now(),c=t,u={snapTrack:{have:!1,since:0}},d=createInitialServersideState({baselineSettings:{enabled:!0,afflictions:!0,defences:!0,sipping:!0,transmutation:!0,fallback:!0,kaidoTransmute:!1,...i.getBaselineIntent().ss},affModel:n,defModel:a,systemModel:i,cureTable:s}),p=new Set,emit=(e,t)=>{p.forEach(n=>n(e,t))},markDirty=(e="state-change")=>{d.dirty=!0,emit("ServersideDirty",{reason:e})},replaceBucket=(e,t)=>!areBucketValuesEqual(d[e],t)&&(d[e]=t,!0),m=createRuleRegistry(createDefaultServersideRulePack()),refreshRulesBucket=()=>replaceBucket("rules",m.list());refreshRulesBucket();const g=createServersideDiffPlanner({getBaseline:()=>d.baseline,getAffPriorityCommandName:"function"==typeof n?.formatPriorityCommandName?e=>n.formatPriorityCommandName(e):void 0,getDefPriorityTokens:(e,t)=>{const n=[String(Number(t))];return!0===a.get(e)?.preempt&&n.push("preempt"),n}}),h="function"==typeof n?.normalizeName?e=>n.normalizeName(e):e=>String(e||"").toLowerCase(),b="function"==typeof n?.normalizePriorityName?e=>n.normalizePriorityName(e):e=>String(e||"").toLowerCase(),y=createServersideEvaluationApi({state:d,affModel:n,defModel:a,balanceModel:o,systemModel:i,cureTable:s,ruleRegistry:m,diffPlanner:g,sendCommands:c,emit,markDirty,replaceBucket,refreshRulesBucket,now,trackables:u,options:l}),v=createServersideObservationApi({state:d,affModel:n,defModel:a,systemModel:i,emit,markDirty,replaceBucket,maybeResolveFullPriorityReset:y.maybeResolveFullPriorityReset,normalizeAffPriorityName:b}),S=createServersideTransientApi({state:d,trackables:u,now,markDirty,emit,replaceBucket,normalizeAffName:h}),x=createServersideCuringSetApi({state:d,diffPlanner:g,sendCommands:c,markPendingCommands:y.markPendingCommands,markDirty,markStartupCaptured:v.markStartupCaptured,replaceBucket}),requestSnapshotSync=()=>c(["curing status","curing priority list","curing queue list","curing predictions","curingset list","curing priority defence list"],{source:"serverside-snapshot-sync"}),applyLifecycleChange=e=>(e&&markDirty("rule-lifecycle"),e);m.onChange((e,t)=>{refreshRulesBucket(),Fn.has(e)?emit(e,t):markDirty("rule-engine-change")});const copyRecord=(e={})=>({...e||{}}),copyArray=(e=[])=>[...e||[]],copyRuleOverlay=(e={})=>({affPriorities:copyRecord(e.affPriorities),defPriorities:copyRecord(e.defPriorities),curePriorities:copyRecord(e.curePriorities),settings:copyRecord(e.settings),predictions:copyRecord(e.predictions),commands:copyArray(e.commands),prioAff:e.prioAff,manualQueue:Array.isArray(e.manualQueue)?[...e.manualQueue]:void 0}),copyDesiredSnapshot=(e={})=>({settings:copyRecord(e.settings),affPriorities:copyRecord(e.affPriorities),defPriorities:copyRecord(e.defPriorities),curePriorities:copyRecord(e.curePriorities),manualQueue:copyArray(e.manualQueue),predictions:copyRecord(e.predictions),prioAff:e.prioAff??null,fullPriorityReset:Boolean(e.fullPriorityReset),injectedCommands:copyArray(e.injectedCommands),appliedRules:copyArray(e.appliedRules)}),copyObservedSnapshot=(e={})=>({settings:copyRecord(e.settings),affPriorities:copyRecord(e.affPriorities),defPriorities:copyRecord(e.defPriorities),curePriorities:copyRecord(e.curePriorities),prioAff:e.prioAff??null,manualQueue:copyArray(e.manualQueue),predictions:copyRecord(e.predictions)}),copyTransientSnapshot=(e={})=>({prioAff:e.prioAff??null,manualQueue:copyArray(e.manualQueue),predictions:copyRecord(e.predictions),staticDefRequests:copyRecord(e.staticDefRequests),fullPriorityReset:Boolean(e.fullPriorityReset)}),copyDiagnosticsSnapshot=(e={})=>({lastCommands:copyArray(e.lastCommands),lastReasons:copyArray(e.lastReasons),desyncCounter:Number(e.desyncCounter||0),recoveryCounter:Number(e.recoveryCounter||0),commandRepeatCounter:Number(e.commandRepeatCounter||0)}),copyCuringSetSnapshot=(e={})=>({supportedMulti:Boolean(e.supportedMulti),degradedMode:Boolean(e.degradedMode),sets:copyArray(e.sets),defaultSet:e.defaultSet||"",workingSet:e.workingSet||"",activeSet:e.activeSet||""}),copyRulesSnapshot=(e=[])=>(e||[]).map(e=>({id:e.id,enabled:e.enabled,terminal:e.terminal,isActive:e.isActive,pack:e.pack,meta:deepClone$1(e.meta||{})})),w=createSnapshotCache({getVersion:()=>d.baseline,buildSnapshot:()=>({settings:copyRecord(d.baseline.settings),affPriorities:copyRecord(d.baseline.affPriorities),defPriorities:copyRecord(d.baseline.defPriorities),curePriorities:copyRecord(d.baseline.curePriorities)})}),C=createSnapshotCache({getVersion:()=>d.sessionBaseline,buildSnapshot:()=>({settings:copyRecord(d.sessionBaseline.settings),affPriorities:copyRecord(d.sessionBaseline.affPriorities),defPriorities:copyRecord(d.sessionBaseline.defPriorities),curePriorities:copyRecord(d.sessionBaseline.curePriorities)})}),k=createSnapshotCache({getVersion:()=>d.derived,buildSnapshot:()=>copyRuleOverlay(d.derived)}),E=createSnapshotCache({getVersion:()=>d.desired,buildSnapshot:()=>copyDesiredSnapshot(d.desired)}),P=createSnapshotCache({getVersion:()=>d.observed,buildSnapshot:()=>copyObservedSnapshot(d.observed)}),T=createSnapshotCache({getVersion:()=>d.transient,buildSnapshot:()=>copyTransientSnapshot(d.transient)}),R={baseline:w,sessionBaseline:C,derived:k,desired:E,observed:P,transient:T,pending:createSnapshotCache({getVersion:()=>d.pending,buildSnapshot:()=>[...d.pending.entries()]}),diagnostics:createSnapshotCache({getVersion:()=>d.diagnostics,buildSnapshot:()=>copyDiagnosticsSnapshot(d.diagnostics)}),curingsets:createSnapshotCache({getVersion:()=>d.curingsets,buildSnapshot:()=>copyCuringSetSnapshot(d.curingsets)}),startup:createSnapshotCache({getVersion:()=>d.startup,buildSnapshot:()=>({flags:copyRecord(d.startup.flags)})}),rules:createSnapshotCache({getVersion:()=>d.rules,buildSnapshot:()=>copyRulesSnapshot(d.rules)})};let M=null;const getSnapshot=()=>{const e=qn.reduce((e,t)=>(e[t]=R[t](),e),{});return M&&qn.every(t=>M[t]===e[t])||(M=deepFreeze(e)),M},acknowledgeCommand=e=>acknowledgeCommands([e]),acknowledgeCommands=(e=[])=>{let t=d.pending;return e.forEach(e=>{const n=normalizeCommand(e);n&&t.has(n)&&(t===d.pending&&(t=new Map(d.pending)),t.delete(n))}),replaceBucket("pending",t)};return{onChange:e=>(p.add(e),()=>p.delete(e)),markDirty,evaluate:y.evaluate,isDirty:()=>d.dirty,getTransientPrioAff:()=>d.transient.prioAff,getStaticDefRequests:()=>T().staticDefRequests,getObserved:()=>P(),snapshot:()=>getSnapshot(),isStartupReady:v.isStartupReady,getStartupStatus:v.getStartupStatus,getMissingStartupFlags:v.getMissingStartupFlags,markStartupCaptured:v.markStartupCaptured,resetStartupStatus:v.resetStartupStatus,setBaselineFromRuntime:y.setBaselineFromRuntime,getCurePriority:y.getCurePriority,requestSnapshotSync,beginObservedAffPrioritySnapshot:v.beginObservedAffPrioritySnapshot,completeObservedAffPrioritySnapshot:v.completeObservedAffPrioritySnapshot,updateObservedSetting:v.updateObservedSetting,updateObservedAffPriority:v.updateObservedAffPriority,beginObservedDefPrioritySnapshot:v.beginObservedDefPrioritySnapshot,completeObservedDefPrioritySnapshot:v.completeObservedDefPrioritySnapshot,updateObservedDefPriority:v.updateObservedDefPriority,updateObservedQueue:v.updateObservedQueue,updateObservedPredictions:v.updateObservedPredictions,parseStatusLine:v.parseStatusLine,setTrackable:S.setTrackable,setPrioAff:S.setPrioAff,clearPrioAff:S.clearPrioAff,requestPriorityReset:S.requestPriorityReset,requestStaticDefPriorities:S.requestStaticDefPriorities,clearStaticDefPriorities:S.clearStaticDefPriorities,addPrediction:S.addPrediction,removePrediction:S.removePrediction,manualQueueAdd:S.manualQueueAdd,manualQueueInsert:S.manualQueueInsert,manualQueueRemove:S.manualQueueRemove,manualQueueReset:S.manualQueueReset,listCuringSets:x.listCuringSets,createCuringSet:x.createCuringSet,switchCuringSet:x.switchCuringSet,cloneCuringSet:x.cloneCuringSet,renameCuringSet:x.renameCuringSet,deleteCuringSet:x.deleteCuringSet,restoreWorkingFromDefault:x.restoreWorkingFromDefault,observeCuringSets:x.observeCuringSets,acknowledgeCommand,acknowledgeCommands,markPendingCommands:y.markPendingCommands,observeOutbound:y.observeOutbound,lifecycle:{add:(e,t)=>applyLifecycleChange(m.addRule(e,t)),remove:e=>applyLifecycleChange(m.removeRule(e)),enable:e=>applyLifecycleChange(m.enableRule(e)),disable:e=>applyLifecycleChange(m.disableRule(e)),load:(e,t)=>applyLifecycleChange(m.loadPack(e,t)),unload:e=>applyLifecycleChange(m.unloadPack(e)),reorder:e=>applyLifecycleChange(m.reorder(e)),list:()=>m.list()}}},createCommandDispatcher=({adapter:e}={})=>{const t=[],n=200,isDebugEnabled=()=>"function"==typeof e?.isDebugEnabled&&e.isDebugEnabled(),normalizeCommands=(e=[])=>Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)],resolveSeparator=()=>("function"==typeof e?.getCommandSeparator?e.getCommandSeparator():"|")||"|",normalizeStackPlan=e=>{if(e&&"object"==typeof e&&!Array.isArray(e)){if("stackPlan"!==e.type)return null;const t=normalizeCommands(e.commands);return t.length?{type:"stackPlan",commands:t}:null}const t=normalizeCommands(e);return t.length?{type:"stackPlan",commands:t}:null},normalizeStackPlans=(e=[])=>{if(Array.isArray(e))return e.map(normalizeStackPlan).filter(Boolean);const t=normalizeStackPlan(e);return t?[t]:[]},serializeStackPlan=e=>e.commands.join(resolveSeparator()),recordDispatch=({mode:a,commands:o=[],context:i={},stackIndex:s=1,stackCount:l=1,stackPlan:c=null}={})=>{const u=normalizeCommands(o);if(!u.length)return[];const d={mode:a,commands:[...u],context:{...i},at:e.now(),stackIndex:s,stackCount:l,stackPlan:c?{type:c.type,commands:[...c.commands]}:null};return t.push(d),!isDebugEnabled()&&t.length>n&&t.splice(0,t.length-n),u},sendCommands=(t=[],n={})=>{const a=recordDispatch({mode:"commands",commands:t,context:n});return a.length?(e.send(a,n),a):[]};return{send:sendCommands,sendCommands,sendStackPlan:(t=[],n={})=>{const a=normalizeStackPlans(t);return a.length?(a.forEach((t,o)=>{const i={...n,stackIndex:o+1,stackCount:a.length};recordDispatch({mode:"stack-plan",commands:t.commands,context:i,stackIndex:o+1,stackCount:a.length,stackPlan:t}),e.send(serializeStackPlan(t),i)}),a.map(e=>({type:e.type,commands:[...e.commands]}))):[]},normalizeCommands,history:()=>t.map(e=>({mode:e.mode,commands:[...e.commands],context:{...e.context},at:e.at,stackIndex:e.stackIndex,stackCount:e.stackCount,stackPlan:e.stackPlan?{type:e.stackPlan.type,commands:[...e.stackPlan.commands]}:null}))}},Un=Object.freeze({freeQueue:[{balanceId:Ln.BALANCE,minDurationMs:250},{balanceId:Ln.EQUILIBRIUM,minDurationMs:250}],fullQueue:[{balanceId:Ln.BALANCE,minDurationMs:250},{balanceId:Ln.EQUILIBRIUM,minDurationMs:250}],classQueue:[{balanceId:Ln.ENTITY,minDurationMs:500}]}),createQueueFiredSideEffects=({balanceModel:e,now:t})=>({queueId:n})=>{const a=Un[n]||[];if(!a.length)return[];const o=t();return a.filter(({balanceId:t,minDurationMs:n})=>!1===e.have(t)&&e.computeDurationMs(t)>Number(n||0)).map(({balanceId:t})=>(e.restartLossTimer(t,`queue-fired-resync:${n}`,o),t))},createDomainControllers=({adapter:e,seedData:t,options:n={},now:a,models:o})=>{const{systemModel:i,affModel:s,balanceModel:l,defModel:c,cacheModel:u}=o,d=createCommandDispatcher({adapter:e}),p=createQueueFiredSideEffects({balanceModel:l,now:a}),m=createQueueController({send:d.sendStackPlan,getRuntimeState:()=>{const e=i.getRuntime();return{paused:e.paused,phase:e.phase,settings:i.getSettings()}},getSeparator:()=>i.getSettings().commandSeparator,maxEntriesPerSubmission:Number(n.maxEntriesPerSubmission||20),onQueueFired:p}),g=createServersideController({adapter:e,dispatchCommands:d.sendCommands,affModel:s,defModel:c,balanceModel:l,systemModel:i,cureTable:t.cureTable,options:{maxCommandsPerCycle:Number(n.maxSsCommandsPerCycle||40)}}),h=createDefensePlanner({defModel:c,balanceModel:l,affModel:s,systemModel:i}),b=createPrecachePlanner({cacheModel:u});return{commandDispatcher:d,queueController:m,serverside:g,defensePlanner:h,precachePlanner:b,outputPlanner:createOutputPlanner({systemModel:i,serverside:g,defensePlanner:h,precachePlanner:b})}},secondsToMs$1=e=>{const t=Number(e);return Number.isFinite(t)?Math.max(0,Math.round(1e3*t)):0},msToSeconds$1=e=>{const t=Number(e);return Number.isFinite(t)?t/1e3:0},createBalanceState=(e={})=>{const t={};return Object.entries(e||{}).forEach(([e,n])=>{t[e]={id:e,have:!0,baseDurationMs:secondsToMs$1(n.length),config:deepFreeze(deepClone$1(n||{})),lastLostAtMs:0,lastGotAtMs:0,activeDurationMs:0,expectedReadyAtMs:0,lastRecoveredDurationMs:0,lastServerDurationMs:0,callbacks:{},timer:null}}),t},createBalancePayload=(e,t={})=>({id:e.id,have:e.have,baseDurationMs:e.baseDurationMs,lastLostAtMs:e.lastLostAtMs,lastGotAtMs:e.lastGotAtMs,activeDurationMs:e.activeDurationMs,expectedReadyAtMs:e.expectedReadyAtMs,lastRecoveredDurationMs:e.lastRecoveredDurationMs,lastServerDurationMs:e.lastServerDurationMs,...t}),createBalanceMutationApi=({state:e,emit:t,now:n,setTimeoutFn:a,clearTimeoutFn:o,computeDurationMs:i})=>{const clearTimer=e=>{e.timer&&(o?.(e.timer),e.timer=null)},normalizeDurationMs=(e={},t=0)=>Number.isFinite(Number(e.durationMs))?Math.max(0,Math.round(Number(e.durationMs))):Number.isFinite(Number(e.durationSeconds))?secondsToMs$1(e.durationSeconds):Math.max(0,Math.round(Number(t)||0)),s=1e3,scheduleRecovery=(e,t)=>{clearTimer(e),!a||e.have||e.expectedReadyAtMs<=0||(e.timer=a(()=>{gain(e.id,"timer",n())},Math.max(0,e.expectedReadyAtMs+s-t)))},applyServerDuration=(e,t)=>{e.lastServerDurationMs=t},emitDurationObserved=(e,n,a,o)=>{t("BalanceDurationObserved",createBalancePayload(e,{source:o,atMs:a,durationMs:n,durationSeconds:msToSeconds$1(n)}))},createTimingPayload=(e,t,n,a)=>createBalancePayload(e,{reason:t,atMs:n,durationMs:a,durationSeconds:msToSeconds$1(a)});function gain(a,o="manual",i=n()){const s=e[a];if(!s||s.have)return!1;const l=s.activeDurationMs;return s.have=!0,s.lastGotAtMs=i,s.lastRecoveredDurationMs=Math.max(0,i-s.lastLostAtMs),s.activeDurationMs=0,s.expectedReadyAtMs=0,clearTimer(s),s.callbacks.onStop?.(s),t("BalanceGot",createTimingPayload(s,o,i,s.lastRecoveredDurationMs||l)),!0}const lose=(a,o="manual",s=n(),l={})=>{const c=e[a];if(!c||!c.have)return!1;const u=normalizeDurationMs(l,i(a));return c.have=!1,c.lastLostAtMs=s,c.activeDurationMs=u,c.expectedReadyAtMs=u>0?s+u:0,!0===l.serverDuration&&applyServerDuration(c,u),c.callbacks.onStart?.(c),!1!==l.autoRegain?scheduleRecovery(c,s):clearTimer(c),t("BalanceLost",createTimingPayload(c,o,s,u)),!0},observeServerUse=(t,a,o={})=>{const i=e[t],s=secondsToMs$1(a);if(!i||s<=0)return!1;const l=o.atMs??o.at??n(),c=String(o.source||"serverside-duration");if(i.have){const e=lose(t,c,l,{durationMs:s,serverDuration:!0,autoRegain:o.autoRegain});return e&&emitDurationObserved(i,s,l,c),e}return applyServerDuration(i,s),i.activeDurationMs=s,i.expectedReadyAtMs=i.lastLostAtMs+s,!1!==o.autoRegain?scheduleRecovery(i,l):clearTimer(i),emitDurationObserved(i,s,l,c),!0};return{gain,lose,restartLossTimer:(a,o="manual",s=n(),l={})=>{const c=e[a];if(!c||c.have)return!1;const u=normalizeDurationMs(l,i(a));return c.lastLostAtMs=s,c.activeDurationMs=u,c.expectedReadyAtMs=u>0?s+u:0,!0===l.serverDuration&&applyServerDuration(c,u),!1!==l.autoRegain?scheduleRecovery(c,s):clearTimer(c),t("BalanceLossTimerRestarted",createTimingPayload(c,o,s,u)),!0},observeServerUse,reset(a,o="reset"){const i=e[a];return!!i&&(clearTimer(i),i.have=!0,i.lastGotAtMs=n(),i.activeDurationMs=0,i.expectedReadyAtMs=0,i.callbacks.onReset?.(i),t("BalanceReset",createBalancePayload(i,{reason:o})),!0)},setCallback(t,n={}){const a=e[t];return!!a&&(a.callbacks={...a.callbacks,...n},!0)},applyVitals(t={}){const a=toParsedGmcpVitals(t);a.balancePatches.forEach(({id:e,have:t})=>{if(!e||void 0===t)return;const a=n();t?gain(e,"gmcp-vitals",a):lose(e,"gmcp-vitals",a)}),a.resourceStats.forEach(({key:t,balanceState:a})=>{e[t]&&void 0!==a&&(a?gain(t,"gmcp-charstat",n()):lose(t,"gmcp-charstat",n()))})},dispose(){Object.values(e).forEach(clearTimer)}}},createBalanceQueryApi=({state:e,now:t,haveAff:n,getVersion:a=()=>0,getEntryVersion:o=()=>a()})=>{const buildEntrySnapshot=(e={})=>({id:e.id,have:e.have,baseDurationMs:e.baseDurationMs,baseDurationSeconds:msToSeconds$1(e.baseDurationMs),config:e.config,lastLostAtMs:e.lastLostAtMs,lastGotAtMs:e.lastGotAtMs,activeDurationMs:e.activeDurationMs,activeDurationSeconds:msToSeconds$1(e.activeDurationMs),expectedReadyAtMs:e.expectedReadyAtMs,lastRecoveredDurationMs:e.lastRecoveredDurationMs,lastRecoveredDurationSeconds:msToSeconds$1(e.lastRecoveredDurationMs),lastServerDurationMs:e.lastServerDurationMs,lastServerDurationSeconds:msToSeconds$1(e.lastServerDurationMs)}),i=new Map,getEntrySnapshot=t=>e[t]?(i.has(t)||i.set(t,createSnapshotCache({getVersion:()=>o(t),buildSnapshot:()=>buildEntrySnapshot(e[t])})),i.get(t)()):null,s=createSnapshotCache({getVersion:a,buildSnapshot:()=>Object.keys(e).reduce((e,t)=>(e[t]=getEntrySnapshot(t),e),{})}),computeDurationMs=t=>{const a=e[t];if(!a)return 0;let o=Number(a.baseDurationMs||0);const i=a.config.aff_modifiers||{};return Object.entries(i).forEach(([e,t])=>{if(!n(e))return;const a=Number(t.multiplier??1),i=secondsToMs$1(t.offset??0);o=Math.round(o*a+i)}),Math.max(0,o)},elapsedMs=(n,a=t())=>{const o=e[n];return o?o.have?Math.max(0,a-o.lastGotAtMs):Math.max(0,a-o.lastLostAtMs):0},remainingMs=(n,a=t())=>{const o=e[n];return!o||o.have?0:o.expectedReadyAtMs>0?Math.max(0,o.expectedReadyAtMs-a):Math.max(0,o.activeDurationMs-elapsedMs(n,a))},timing=(n,a=t())=>{const o=e[n];if(!o)return null;const i=elapsedMs(n,a),s=remainingMs(n,a),l=computeDurationMs(n);return{id:o.id,have:o.have,atMs:a,elapsedMs:i,elapsedSeconds:msToSeconds$1(i),remainingMs:s,remainingSeconds:msToSeconds$1(s),baseDurationMs:o.baseDurationMs,baseDurationSeconds:msToSeconds$1(o.baseDurationMs),computedDurationMs:l,computedDurationSeconds:msToSeconds$1(l),activeDurationMs:o.activeDurationMs,activeDurationSeconds:msToSeconds$1(o.activeDurationMs),expectedReadyAtMs:o.expectedReadyAtMs,lastLostAtMs:o.lastLostAtMs,lastGotAtMs:o.lastGotAtMs,lastRecoveredDurationMs:o.lastRecoveredDurationMs,lastRecoveredDurationSeconds:msToSeconds$1(o.lastRecoveredDurationMs),lastServerDurationMs:o.lastServerDurationMs,lastServerDurationSeconds:msToSeconds$1(o.lastServerDurationMs)}};return{list:()=>Object.keys(e),snapshot:()=>s(),get:e=>getEntrySnapshot(e),have:t=>Boolean(e[t]?.have),elapsed:elapsedMs,elapsedMs,elapsedSeconds:(e,n=t())=>msToSeconds$1(elapsedMs(e,n)),remaining:remainingMs,remainingMs,remainingSeconds:(e,n=t())=>msToSeconds$1(remainingMs(e,n)),timing,computeDuration:computeDurationMs,computeDurationMs,computeDurationSeconds:e=>msToSeconds$1(computeDurationMs(e))}},createBalanceModel=({balanceTable:e,now:t,setTimeoutFn:n,clearTimeoutFn:a,haveAff:o=()=>!1}={})=>{const i=createBalanceState(e),s=new Set;let l=0;const c=new Map,emit=(e,t)=>{l+=1,t?.id&&c.set(t.id,(c.get(t.id)??0)+1),s.forEach(n=>n(e,t))},u=createBalanceQueryApi({state:i,now:t,haveAff:o,getVersion:()=>l,getEntryVersion:e=>c.get(e)??0}),d=createBalanceMutationApi({state:i,emit,now:t,setTimeoutFn:n,clearTimeoutFn:a,computeDurationMs:u.computeDurationMs});return{onChange:e=>(s.add(e),()=>s.delete(e)),list:u.list,snapshot:u.snapshot,get:u.get,have:u.have,elapsed:u.elapsed,elapsedMs:u.elapsedMs,elapsedSeconds:u.elapsedSeconds,remaining:u.remaining,remainingMs:u.remainingMs,remainingSeconds:u.remainingSeconds,timing:u.timing,computeDuration:u.computeDuration,computeDurationMs:u.computeDurationMs,computeDurationSeconds:u.computeDurationSeconds,gain:d.gain,lose:d.lose,restartLossTimer:d.restartLossTimer,observeServerUse:d.observeServerUse,reset:d.reset,setCallback:d.setCallback,applyVitals:d.applyVitals,dispose:d.dispose}},asSet=(e={})=>Array.isArray(e)?new Set(e.map(e=>String(e).toLowerCase())):new Set(Object.keys(e).map(e=>String(e).toLowerCase())),Vn=0,Hn=1,createAfflictionReference=(e,t={})=>{const n=String(e||"").trim().toLowerCase();if(!n)return{raw:n,name:n,count:null,hasExplicitCount:!1,isCountable:!1};if(t[n])return{raw:n,name:n,count:null,hasExplicitCount:!1,isCountable:!0};const a=n.match(/^(.*?)(?:\s*\((\d+)\)|(\d+))$/),o=Number(a?.[2]??a?.[3]),i=a?.[1]?.trim();return a&&t[i]?{raw:n,name:i,count:o,hasExplicitCount:!0,isCountable:!0}:{raw:n,name:n,count:null,hasExplicitCount:!1,isCountable:!1}},normalizeAfflictionName=(e,t={})=>createAfflictionReference(e,t).name,normalizeAfflictionPriorityName=(e,t={})=>{const n=createAfflictionReference(e,t);return n.isCountable&&n.hasExplicitCount&&Number(n.count)>1?`${n.name}${n.count}`:n.name},formatAfflictionPriorityCommandName=(e,t={})=>{const n=createAfflictionReference(e,t);return n.isCountable?n.hasExplicitCount?`${n.name}${n.count}`:`${n.name}1`:n.name},createAffEntry=(e,t,n,a=null)=>({name:e,have:!1,count:0,min:Number(a?.min??Vn),max:Number(a?.max??Hn),since:0,lastChangeAt:0,order:t,defaultPriority:n,priorityOverride:null,timer:null}),createInitialAfflictionState=(e={})=>{const t=e.types?.countable||{},n=[...e.list||[]].reduce((e,n)=>{const a=normalizeAfflictionName(n,t);return a&&!e.includes(a)&&e.push(a),e},[]),a=Object.entries(e.prios||{}).reduce((e,[n,a])=>{const o=normalizeAfflictionName(n,t);return o&&(e[o]=a),e},{}),o={};return n.forEach((e,n)=>{o[e]=createAffEntry(e,n,a[e]??100,t[e]||null)}),{list:n,defaultPrios:a,state:o,timedConfig:e.types?.timed||{},countableConfig:t,uncurableSet:asSet(e.types?.uncurable||{})}},ensureAffEntry=(e,t,n={},a)=>{const o=normalizeAfflictionName(a,n);return e[o]||(e[o]=createAffEntry(o,Object.keys(e).length,t[o]??100,n[o]||null)),e[o]},toPriorityNumber=e=>{const t=Number(e);return Number.isFinite(t)?t:null},getPriorityValue=e=>e?e.priorityOverride??e.defaultPriority:null,getDefaultPriorityValue=e=>e?.defaultPriority??null,setPriorityValue=(e,t)=>e.priorityOverride===t?{changed:!1,priority:t}:(e.priorityOverride=t,{changed:!0,priority:t}),resetPriorityValue=e=>{const t=e.defaultPriority;return null===e.priorityOverride||void 0===e.priorityOverride?{changed:!1,priority:t}:(e.priorityOverride=null,{changed:!0,priority:t})},setDefaultPriorityValue=(e,t,{shouldSyncCurrentPriorityToDefault:n=e=>null===e.priorityOverride||void 0===e.priorityOverride,syncCurrentPriorityToDefault:a=()=>{}}={})=>{const o=e.defaultPriority;if(o===t)return{changed:!1,currentChanged:!1,priority:t,previousDefaultPriority:o};const i=n(e);return e.defaultPriority=t,i&&a(e,t),{changed:!0,currentChanged:i,priority:t,previousDefaultPriority:o}},createAfflictionPriorityApi=({state:e,defaultPrios:t,countableConfig:n,emit:a})=>{const getEntry=(a,{ensure:o=!1}={})=>o?ensureAffEntry(e,t,n,a):e[normalizeAfflictionName(a,n)]||null;return{ensureAff:e=>getEntry(e,{ensure:!0}),getPriority(e){const t=getEntry(e);return t?getPriorityValue(t):100},getDefaultPriority(e){const t=getEntry(e);return t?getDefaultPriorityValue(t):100},setPriority(e,t,n="manual"){const o=toPriorityNumber(t);if(null===o)return!1;const i=getEntry(e,{ensure:!0}),s=setPriorityValue(i,o);return!!s.changed&&(a("AffPriorityChanged",{name:i.name,source:n,priority:s.priority,defaultPriority:i.defaultPriority}),!0)},resetPriority(e,t="manual"){const n=getEntry(e,{ensure:!0}),o=resetPriorityValue(n);return!!o.changed&&(a("AffPriorityChanged",{name:n.name,source:t,priority:o.priority,defaultPriority:n.defaultPriority,reset:!0}),!0)},setDefaultPriority(e,t,n="manual"){const o=toPriorityNumber(t);if(null===o)return!1;const i=getEntry(e,{ensure:!0}),s=setDefaultPriorityValue(i,o);return!!s.changed&&(a("AffDefaultPriorityChanged",{name:i.name,source:n,priority:s.priority,previousDefaultPriority:s.previousDefaultPriority,currentPriority:getPriorityValue(i)}),s.currentChanged&&a("AffPriorityChanged",{name:i.name,source:n,priority:s.priority,defaultPriority:i.defaultPriority,defaultChanged:!0}),!0)}}},createAfflictionLifecycleApi=({state:e,defaultPrios:t,timedConfig:n,countableConfig:a,emit:o,now:i,setTimeoutFn:s,clearTimeoutFn:l})=>{const clearTimer=e=>{e.timer&&(l?.(e.timer),e.timer=null)},emitAffGot=(e,t,n)=>{o("AffGot",{name:e.name,at:t,source:n,have:e.have,count:e.count,min:e.min,max:e.max,since:e.since,lastChangeAt:e.lastChangeAt})},emitAffLost=(e,t,n)=>{o("AffLost",{name:e.name,at:t,source:n,have:e.have,count:e.count,min:e.min,max:e.max,since:e.since,lastChangeAt:e.lastChangeAt})},emitStackChanged=(e,t)=>{o("AffStackChanged",{name:e.name,count:e.count,min:e.min,max:e.max,have:e.have,at:t})},clampCount=(e,t)=>{const n=Number(t);return Number.isFinite(n)?Math.max(e.min,Math.min(e.max,n)):e.count},scheduleTimedExpiry=e=>{const t=n[e.name];if(!t)return;clearTimer(e);const a=Math.round(1e3*Number(t.length||0));a<=0||!s||(e.timer=s(()=>{lose(e.name,{source:"timed-expiry",at:i()})},a))},applyCountableState=(e,t,n={})=>{const a=n.at??i(),o=n.source||"manual",s=e.have;return e.count=clampCount(e,t),e.have=e.count>0,e.have&&!s&&(e.since=a),e.lastChangeAt=a,emitStackChanged(e,a),!s&&e.have?emitAffGot(e,a,o):s&&!e.have&&emitAffLost(e,a,o),s},got=(n,o={})=>{const s=createAfflictionReference(n,a),l=ensureAffEntry(e,t,a,s.name),c=o.at??i(),u=o.source||"manual",d=l.have;if(a[l.name]){const e=Number(o.count);return applyCountableState(l,Number.isFinite(e)?e:s.hasExplicitCount?s.count:l.count+Number(o.countDelta??1),{at:c,source:u}),l.have?scheduleTimedExpiry(l):clearTimer(l),!0}return!d&&(l.have=!0,l.count=1,l.since=c,l.lastChangeAt=c,scheduleTimedExpiry(l),emitAffGot(l,c,u),!0)},lose=(n,o={})=>{const s=ensureAffEntry(e,t,a,createAfflictionReference(n,a).name),l=o.at??i(),c=o.source||"manual",u=s.have;if(a[s.name]){const e=Number(o.count);return applyCountableState(s,Number.isFinite(e)?e:Number.isFinite(Number(o.countDelta))?s.count-Math.abs(Number(o.countDelta)):0,{at:l,source:c}),clearTimer(s),!0}return!!u&&(s.have=!1,s.count=0,s.lastChangeAt=l,clearTimer(s),emitAffLost(s,l,c),!0)};return{got,lose,applyList(t=[]){const n=new Set,o=new Map,i=new Set;(t||[]).forEach(e=>{const t=createAfflictionReference("string"==typeof e?e:String(e?.name||e?.affliction||e||""),a);if(t.name){if(a[t.name])return t.hasExplicitCount?(i.add(t.name),void o.set(t.name,Math.max(o.get(t.name)??0,t.count))):void(i.has(t.name)||o.set(t.name,(o.get(t.name)??0)+1));n.add(t.name)}}),Object.keys(e).forEach(t=>{a[t]?o.has(t)?got(t,{source:"gmcp-list",count:o.get(t)}):(e[t].have||e[t].count>0)&&lose(t,{source:"gmcp-list"}):n.has(t)?got(t,{source:"gmcp-list"}):e[t].have&&lose(t,{source:"gmcp-list"})})},dispose(){Object.values(e).forEach(clearTimer)}}},secondsToMs=e=>{const t=Number(e);return Number.isFinite(t)?Math.max(0,Math.round(1e3*t)):0},msToSeconds=e=>{const t=Number(e);return Number.isFinite(t)?t/1e3:0},createAfflictionQueryApi=({state:e,list:t,timedConfig:n,countableConfig:a,uncurableSet:o,getPriority:i,now:s,getVersion:l=()=>0,getEntryVersion:c=()=>l()})=>{const buildEntrySnapshot=(e={})=>({name:e.name,have:e.have,count:e.count,min:e.min,max:e.max,since:e.since,lastChangeAt:e.lastChangeAt,order:e.order,defaultPriority:e.defaultPriority,priorityOverride:e.priorityOverride}),u=new Map,getEntrySnapshot=t=>e[t]?(u.has(t)||u.set(t,createSnapshotCache({getVersion:()=>c(t),buildSnapshot:()=>buildEntrySnapshot(e[t])})),u.get(t)()):null,d=createSnapshotCache({getVersion:l,buildSnapshot:()=>Object.keys(e).reduce((e,t)=>(e[t]=getEntrySnapshot(t),e),{})}),elapsedMs=(t,n=s())=>{const o=e[normalizeAfflictionName(t,a)];return o?.have?Math.max(0,n-o.since):0},durationMs=e=>{const t=n[normalizeAfflictionName(e,a)];return t?secondsToMs(t.length):0},remainingMs=(t,n=s())=>{const o=normalizeAfflictionName(t,a),i=e[o],l=durationMs(o);return!i?.have||l<=0?0:Math.max(0,l-elapsedMs(o,n))},timing=(t,n=s())=>{const o=normalizeAfflictionName(t,a),i=e[o];if(!i)return null;const l=elapsedMs(o,n),c=durationMs(o),u=remainingMs(o,n);return{name:o,have:i.have,atMs:n,sinceMs:i.since,lastChangeAtMs:i.lastChangeAt,elapsedMs:l,elapsedSeconds:msToSeconds(l),timedDurationMs:c,timedDurationSeconds:msToSeconds(c),remainingMs:u,remainingSeconds:msToSeconds(u)}};return{snapshot:()=>d(),get:e=>getEntrySnapshot(normalizeAfflictionName(e,a)),list:()=>[...t,...Object.keys(e).filter(e=>!t.includes(e))],getCountablePriorityNames:()=>Object.entries(a).flatMap(([e,t])=>{const n=Math.max(0,Number(t?.max??0)),a=[];for(let o=2;o<=n;o+=1)a.push(`${e}${o}`);return a}),normalizeName:e=>normalizeAfflictionName(e,a),normalizePriorityName:e=>normalizeAfflictionPriorityName(e,a),formatPriorityCommandName:e=>formatAfflictionPriorityCommandName(e,a),haveAff(t){const n=normalizeAfflictionName(t,a);return Boolean(e[n]?.have)},haveAffs:(t=[])=>t.every(t=>{const n=normalizeAfflictionName(t,a);return Boolean(e[n]?.have)}),haveAnAff:(t=[])=>t.some(t=>{const n=normalizeAfflictionName(t,a);return Boolean(e[n]?.have)}),currentSorted:()=>Object.values(e).filter(e=>e.have).sort((e,t)=>{const n=i(e.name),a=i(t.name);return n!==a?n-a:e.order-t.order}).map(e=>e.name),isCountable(e){const t=normalizeAfflictionName(e,a);return Boolean(a[t])},isTimed(e){const t=normalizeAfflictionName(e,a);return Boolean(n[t])},isUncurable(e){const t=normalizeAfflictionName(e,a);return o.has(t)},elapsed:elapsedMs,elapsedMs,elapsedSeconds:(e,t=s())=>msToSeconds(elapsedMs(e,t)),remaining:remainingMs,remainingMs,remainingSeconds:(e,t=s())=>msToSeconds(remainingMs(e,t)),timing}},createAfflictionModel=({affTable:e,now:t,setTimeoutFn:n,clearTimeoutFn:a}={})=>{const{list:o,defaultPrios:i,state:s,timedConfig:l,countableConfig:c,uncurableSet:u}=createInitialAfflictionState(e),d=new Set;let p=0;const m=new Map,emit=(e,t)=>{p+=1,t?.name&&m.set(t.name,(m.get(t.name)??0)+1),d.forEach(n=>n(e,t))},getEntryVersion=e=>m.get(e)??0,g=createAfflictionPriorityApi({state:s,defaultPrios:i,countableConfig:c,emit}),h=createAfflictionLifecycleApi({state:s,defaultPrios:i,timedConfig:l,countableConfig:c,emit,now:t,setTimeoutFn:n,clearTimeoutFn:a}),b=createAfflictionQueryApi({state:s,list:o,timedConfig:l,countableConfig:c,uncurableSet:u,getPriority:g.getPriority,now:t,getVersion:()=>p,getEntryVersion});return{onChange:e=>(d.add(e),()=>d.delete(e)),snapshot:b.snapshot,get:b.get,list:b.list,getCountablePriorityNames:b.getCountablePriorityNames,normalizeName:b.normalizeName,normalizePriorityName:b.normalizePriorityName,formatPriorityCommandName:b.formatPriorityCommandName,got:h.got,lose:h.lose,applyList:h.applyList,setPriority:g.setPriority,resetPriority:g.resetPriority,getPriority:g.getPriority,getDefaultPriority:g.getDefaultPriority,setDefaultPriority:g.setDefaultPriority,haveAff:b.haveAff,haveAffs:b.haveAffs,haveAnAff:b.haveAnAff,currentSorted:b.currentSorted,isCountable:b.isCountable,isTimed:b.isTimed,isUncurable:b.isUncurable,elapsed:b.elapsed,elapsedMs:b.elapsedMs,elapsedSeconds:b.elapsedSeconds,remaining:b.remaining,remainingMs:b.remainingMs,remainingSeconds:b.remainingSeconds,timing:b.timing,dispose:h.dispose}},createDefenseLifecycleApi=({state:e,emit:t})=>{const consumeStaticPriority=(n,a="manual",o={})=>{const i=e[n];return!(!i?.static||!isActiveStaticPriority(resolveDefensePriority(i)))&&(i.priorityOverride=0,t("DefPriorityChanged",{id:n,value:0,source:a,consumed:!0,static:!0,defaultPriority:i.defaultPriority,...o}),!0)},setHave=(n,a,o="manual",i=Date.now())=>{const s=e[n];if(!s||s.have===a)return!1;s.have=a,s.lastChangeAt=i;const l={id:n,source:o,at:i,have:s.have,lastChangeAt:s.lastChangeAt,static:s.static,serverside:s.serverside,preempt:s.preempt};return t(a?"DefGot":"DefLost",l),a&&consumeStaticPriority(n,o,{triggeredByGain:!0}),!0};return{consumeStaticPriority,setHave,setStatic:(n,a,o="manual")=>{const i=e[n];if(!i)return!1;const s=Boolean(a);if(i.static===s)return!1;const l=i.static,c=resolveDefensePriority(i);let u=!1,d=!1;return i.static=s,s&&i.have&&isActiveStaticPriority(c)?(i.priorityOverride=0,d=!0,u=resolveDefensePriority(i)!==c):s||0!==i.priorityOverride||(i.priorityOverride=null,u=resolveDefensePriority(i)!==c),t("DefStaticChanged",{id:n,value:s,previousValue:l,source:o,have:i.have,static:i.static,seedStatic:i.seedStatic,defaultPriority:i.defaultPriority,currentPriority:resolveDefensePriority(i),serverside:i.serverside,preempt:i.preempt}),u&&t("DefPriorityChanged",{id:n,value:resolveDefensePriority(i),source:o,static:i.static,defaultPriority:i.defaultPriority,staticChanged:!0,consumed:d}),!0},setCommand:(n,a,o="manual")=>{const i=e[n];if(!i)return!1;const s=normalizeCommandList(a);return i.command=s,t("DefCommandChanged",{id:n,value:s,source:o}),!0},applyList(t=[],n="gmcp-list"){const a=new Set;(t||[]).forEach(e=>{const t=normalizeObservedDefenseId(e);t&&a.add(t)}),Object.keys(e).forEach(t=>{a.has(t)?(setHave(t,!0,n),e[t].static&&consumeStaticPriority(t,n,{observedActive:!0})):e[t].have&&!e[t].clientOnly&&setHave(t,!1,n)})}}},toDefensePriorityNumber=e=>{const t=toPriorityNumber(e);return null===t?null:t<0?0:t>26?26:t},createDefensePriorityApi=({state:e,emit:t,consumeStaticPriority:n})=>{const getEntry=t=>e[t]||null;return{getPriority(e){const t=getEntry(e);return t?getPriorityValue(t):-1},getDefaultPriority(e){const t=getEntry(e);return t?getDefaultPriorityValue(t):-1},setPriority(e,a,o="manual"){const i=toDefensePriorityNumber(a);if(null===i)return!1;const s=getEntry(e);if(!s)return!1;if(s.static&&!0===s.have&&isActiveStaticPriority(i))return n(e,o,{ignoredWhileActive:!0});const l=setPriorityValue(s,i);return!!l.changed&&(t("DefPriorityChanged",{id:s.id,value:l.priority,source:o,static:s.static,defaultPriority:s.defaultPriority}),!0)},resetPriority(e,a="manual"){const o=getEntry(e);if(!o)return!1;if(o.static&&!0===o.have)return n(e,a,{reset:!0,ignoredWhileActive:!0});const i=resetPriorityValue(o);return!!i.changed&&(t("DefPriorityChanged",{id:o.id,value:i.priority,source:a,static:o.static,defaultPriority:o.defaultPriority,reset:!0}),!0)},setDefaultPriority(e,n,a="manual"){const o=toDefensePriorityNumber(n);if(null===o)return!1;const i=getEntry(e);if(!i)return!1;const s=setDefaultPriorityValue(i,o);return!!s.changed&&(t("DefDefaultPriorityChanged",{id:i.id,value:s.priority,source:a,static:i.static,previousDefaultPriority:s.previousDefaultPriority,currentPriority:getPriorityValue(i)}),s.currentChanged&&t("DefPriorityChanged",{id:i.id,value:s.priority,source:a,static:i.static,defaultPriority:i.defaultPriority,defaultChanged:!0}),!0)}}},createDefenseQueryApi=({state:e,list:t,getVersion:n=()=>0,getEntryVersion:a=()=>n()})=>{const buildDefEntrySnapshot=(e={})=>({id:e.id,have:e.have,lastChangeAt:e.lastChangeAt,order:e.order,defaultPriority:e.defaultPriority,priorityOverride:e.priorityOverride,priority:resolveDefensePriority(e),command:e.command,bals_req:e.bals_req,bals_used:e.bals_used,blocks:e.blocks,skills:e.skills,opps:e.opps,serverside:e.serverside,preempt:e.preempt,static:e.static,clientOnly:e.clientOnly}),o=new Map,getDefSnapshot=t=>e[t]?(o.has(t)||o.set(t,createSnapshotCache({getVersion:()=>a(t),buildSnapshot:()=>buildDefEntrySnapshot(e[t])})),o.get(t)()):null,i=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(t[n]=resolveDefensePriority(e[n]),t),{})}),s=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(t[n]=Number(e[n].defaultPriority??-1),t),{})}),l=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(t[n]=Boolean(e[n]?.static),t),{})}),c=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(Boolean(e[n]?.static)!==Boolean(e[n]?.seedStatic)&&(t[n]=Boolean(e[n]?.static)),t),{})}),u=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((e,t)=>(e[t]=getDefSnapshot(t),e),{})});return{snapshot:()=>u(),get:e=>getDefSnapshot(e),list:()=>[...t,...Object.keys(e).filter(e=>!t.includes(e))],isAvailableForClass:(t,n="")=>matchesClass(e[t]?.skills,n),haveDef:t=>Boolean(e[t]?.have),getPriority(t){const n=e[t];return n?resolveDefensePriority(n):-1},getDefaultPriority:t=>Number(e[t]?.defaultPriority??-1),getPriorities:()=>i(),getDefaultPriorities:()=>s(),getStatics:()=>l(),getStaticOverrides:()=>c(),isStatic:t=>Boolean(e[t]?.static)}},createDefenseModel=({defTable:e={},defPrios:t={}}={})=>{const{state:n,list:a}=createInitialDefenseState({defTable:e,defPrios:t}),o=new Set;let i=0;const s=new Map,emit=(e,t)=>{i+=1,t?.id&&s.set(t.id,(s.get(t.id)??0)+1),o.forEach(n=>n(e,t))},getEntryVersion=e=>s.get(e)??0,l=createDefenseLifecycleApi({state:n,emit}),c=createDefensePriorityApi({state:n,emit,consumeStaticPriority:l.consumeStaticPriority}),u=createDefenseQueryApi({state:n,list:a,getVersion:()=>i,getEntryVersion});return{onChange:e=>(o.add(e),()=>o.delete(e)),snapshot:u.snapshot,get:u.get,list:u.list,isAvailableForClass:u.isAvailableForClass,haveDef:u.haveDef,isStatic:u.isStatic,setStatic:l.setStatic,setCommand:l.setCommand,setHave:l.setHave,applyList:l.applyList,setPriority:c.setPriority,setDefaultPriority:c.setDefaultPriority,resetPriority:c.resetPriority,getPriority:c.getPriority,getDefaultPriority:c.getDefaultPriority,getDefaultPriorities:u.getDefaultPriorities,getPriorities:u.getPriorities,getStatics:u.getStatics,getStaticOverrides:u.getStaticOverrides}},Wn=["brokenleftarm","damagedleftarm","mangledleftarm"],Gn=["brokenrightarm","damagedrightarm","mangledrightarm"],createCachePrecacheSupport=({state:e,haveAff:t=()=>!1}={})=>{const isPrecacheBlocked=()=>{const e=Wn.some(e=>t(e)),n=Gn.some(e=>t(e));return!(!e||!n)},buildPrecacheCommands=()=>isPrecacheBlocked()?[]:e.hydration.inventoryKnown&&e.hydration.riftKnown?Object.entries(e.desiredPrecache).flatMap(([t,n])=>{const a=toNumber(e.inventory[t],0),o=toNumber(e.rift[t],0),i=Math.max(0,toNumber(n,0)),s=Math.max(0,i-a),l=Math.max(0,a-i),c=Math.min(s,o);return c>0?[`outr ${c} ${t}`]:l>0?[`inr ${l} ${t}`]:[]}):[];return{getPrecacheCommands:()=>buildPrecacheCommands(),isPrecacheBlocked,isHydrated:()=>e.hydration.inventoryKnown&&e.hydration.riftKnown,getTotal:t=>toNumber(e.inventory[t],0)+toNumber(e.rift[t],0)}},findCaseInsensitiveKey=(e={},t="")=>{if(!e||"object"!=typeof e)return null;const n=String(t).toLowerCase();return Object.keys(e).find(e=>String(e).toLowerCase()===n)||null},createCacheNameNormalizer=({cacheTable:e={},cacheNames:t={}}={})=>{const n=t.herb_name_to_herb||{},a=new Set(Object.keys(e)),toCount=(e,t=1)=>Math.max(0,toNumber(e,t)),resolveName=e=>{if(!e)return"";const t=String(e).trim().toLowerCase();return n[t]||t},resolveCountedName=e=>{const t=resolveName(e);if(a.has(t)||!t.endsWith("s"))return t;const n=resolveName(t.slice(0,-1));return a.has(n)?n:t},parseNameAndAmount=(e,t)=>{const n=String(e||"").trim().toLowerCase();if(!n)return{name:"",amount:Math.max(0,toNumber(t,1))};const o=n.match(/^a group of\s+(\d+)\s+(.+)$/);if(o){const[,e,n]=o,i=resolveCountedName(n);if(a.has(i))return{name:i,amount:toCount(t,toNumber(e,1))}}const i=n.match(/^(\d+)\s+(.+)$/);if(i){const[,e,n]=i,o=resolveCountedName(n);if(a.has(o))return{name:o,amount:toCount(t,toNumber(e,1))}}return{name:resolveCountedName(n),amount:toCount(t,1)}};return{resolveName,parseNameAndAmount,normalizeName:e=>parseNameAndAmount(e).name}},readGmcpPath=(e={},t=[])=>{const n=findCaseInsensitiveKey(e,t.join("."));if(n)return e[n];let a=e;for(const o of t){if(!a||"object"!=typeof a)return;const e=findCaseInsensitiveKey(a,o);if(!e)return;a=a[e]}return a},createCacheStateSupport=({state:e,emit:t=()=>{},cacheTable:n={},cacheNames:a={}}={})=>{const{parseNameAndAmount:o,normalizeName:i}=createCacheNameNormalizer({cacheTable:n,cacheNames:a}),s={invAddsById:new Map,roomRemovesById:new Map,appliedIds:new Set},normalizeItemId=e=>null==e||""===e?"":String(e),adjustInventoryAmount=(n,a,o="inventory-delta")=>!(!n||!(n in e.inventory))&&(e.inventory[n]=Math.max(0,e.inventory[n]+toNumber(a,0)),t("CacheAmountChanged",{bucket:"inventory",name:n,amount:e.inventory[n],source:o}),!0),parseInventoryEntry=(e={})=>{const t=e?.item||e,n=o(t?.name||t?.item||t,t?.amount??t?.count??t?.qty??e?.amount??e?.count??e?.qty);return{id:normalizeItemId(t?.id??e?.id),location:String(e?.location??t?.parentid??t?.location??"inv").toLowerCase(),name:n.name,amount:n.amount,icon:t?.icon??e?.icon,attrib:t?.attrib??e?.attrib}},storeInventoryCurative=(t={})=>{if(!t.id||!t.name||!(t.name in e.inventory))return!1;const n={name:t.name,amount:t.amount,location:t.location||"inv"};return void 0!==t.icon&&null!==t.icon&&(n.icon=t.icon),void 0!==t.attrib&&null!==t.attrib&&(n.attrib=t.attrib),e.inventoryCurativesById[t.id]=n,!0},deleteInventoryCurative=t=>{const n=normalizeItemId(t);return!(!n||!(n in e.inventoryCurativesById))&&(delete e.inventoryCurativesById[n],!0)},deleteInventoryCurativesByName=t=>{let n=!1;return Object.entries(e.inventoryCurativesById).forEach(([a,o])=>{o?.name===t&&(delete e.inventoryCurativesById[a],n=!0)}),n},emitInventoryIdentityChanged=()=>{t("CacheInventoryIdentityChanged",{...e.inventoryCurativesById})},buildResult=({changed:e=!1,identityChanged:t=!1,name:n="",amount:a=0,delta:o=0,source:i=""}={})=>({changed:e,identityChanged:t,name:n,amount:a,delta:o,source:i}),readInventorySnapshot=(e={})=>{const t=readGmcpPath(e,["Char","Items","List"]);if(void 0!==t)return t;const n=readGmcpPath(e,["Items","Inv"]);return void 0!==n?{location:"inv",items:n}:void 0},setAmount=(n,a,o,s="manual")=>{const l=i(a);if(!l||!(l in e[n]))return!1;const c=Math.max(0,toNumber(o,e[n][l]));return e[n][l]=c,t("CacheAmountChanged",{bucket:n,name:l,amount:c,source:s}),!0},observeInventorySnapshot=(n=[])=>{const a={...e.inventory},o={};Object.keys(a).forEach(e=>{a[e]=0}),(n||[]).forEach(e=>{const t=parseInventoryEntry(e);if("inv"===t.location&&t.name&&t.name in a&&(a[t.name]+=t.amount,t.id)){const e={name:t.name,amount:t.amount,location:t.location};void 0!==t.icon&&null!==t.icon&&(e.icon=t.icon),void 0!==t.attrib&&null!==t.attrib&&(e.attrib=t.attrib),o[t.id]=e}}),e.inventory=a,e.inventoryCurativesById=o,e.hydration.inventoryKnown=!0,t("CacheInventoryListApplied",{...e.inventory})},applyRoomPickupTransfer=t=>{if(!t||s.appliedIds.has(t))return null;const n=s.invAddsById.get(t),a=s.roomRemovesById.get(t);if(!n||!a)return null;const o=n.name&&n.name in e.inventory,i=Math.max(0,toNumber(n.amount,0)),l=a.name&&a.name in e.inventory,c=Math.max(0,toNumber(a.amount,0)),u=o&&i>0?n:l&&c>0?a:null;if(s.invAddsById.delete(t),s.roomRemovesById.delete(t),s.appliedIds.add(t),!u)return null;const d=Math.max(0,toNumber(u.amount,0));return!u.name||!(u.name in e.inventory)||d<=0?null:adjustInventoryAmount(u.name,d,"gmcp:room-pickup")?buildResult({changed:!0,name:u.name,amount:d,delta:d,source:"gmcp:room-pickup"}):null},observeRoomPickupCandidate=(e,t)=>{if(!e.id||s.appliedIds.has(e.id))return null;if("inv"===e.location&&"add"===t)s.invAddsById.set(e.id,e);else{if("room"!==e.location||"remove"!==t)return null;s.roomRemovesById.set(e.id,e)}return applyRoomPickupTransfer(e.id)},observeRiftSnapshot=(n={})=>{const a=n.items||n,i=Array.isArray(a)?a:Object.entries(a).map(([e,t])=>({name:e,amount:t})),s={...e.rift};Object.keys(s).forEach(e=>{s[e]=0}),i.forEach(e=>{const t=o(e.name||e.item||e,e.amount??e.count??e.qty??0);t.name&&t.name in s&&(s[t.name]=t.amount)}),e.rift=s,e.hydration.riftKnown=!0,t("CacheRiftListApplied",{...e.rift})},hydrateFromGmcp=(e={})=>{let t=!1;const n=readInventorySnapshot(e);void 0!==n&&(Array.isArray(n)?(observeInventorySnapshot(n),t=!0):"inv"===String(n?.location??n?.Location??"inv").toLowerCase()&&(observeInventorySnapshot(n?.items||[]),t=!0));const a=readGmcpPath(e,["IRE","Rift","List"]);return void 0!==a&&(observeRiftSnapshot(a||{}),t=!0),t};return{observeInventorySnapshot,observeItemDelta:(t={})=>{const n=parseInventoryEntry(t),a=String(t.action||"").toLowerCase(),o=String(t.direction||"").toLowerCase(),i=a||o;let s=!1;if("inv"===n.location){const t=n.id&&e.inventoryCurativesById[n.id]||null;"add"===i?n.name&&n.name in e.inventory&&(s=storeInventoryCurative(n),s&&emitInventoryIdentityChanged()):"remove"===i?(s=!!t&&deleteInventoryCurative(n.id),s&&emitInventoryIdentityChanged()):"update"===i?n.name&&n.name in e.inventory?(s=storeInventoryCurative(n),s&&emitInventoryIdentityChanged()):t&&(s=deleteInventoryCurative(n.id),s&&emitInventoryIdentityChanged()):n.name&&n.name in e.inventory&&(s=storeInventoryCurative(n),s&&emitInventoryIdentityChanged())}const l=observeRoomPickupCandidate(n,i);return l?{...l,identityChanged:s}:buildResult({identityChanged:s})},observeRiftSnapshot,ignoreRiftChange:()=>{},observeRiftOutText:({item:t,name:n,amount:a=1,riftAmount:i}={})=>{const s=o(t||n,a);if(!s.name||!(s.name in e.inventory)||!(s.name in e.rift))return!1;const l=Math.max(0,toNumber(a,s.amount));return!(l<=0)&&(adjustInventoryAmount(s.name,l,"text:rift-out"),setAmount("rift",s.name,i,"text:rift-out"),{name:s.name,amount:l,riftAmount:e.rift[s.name]})},observeRiftInText:({item:t,name:n,amount:a=1,riftAmount:i}={})=>{const s=o(t||n,a);if(!s.name||!(s.name in e.inventory)||!(s.name in e.rift))return!1;const l=Math.max(0,toNumber(a,s.amount));return!(l<=0)&&(adjustInventoryAmount(s.name,-l,"text:rift-in"),setAmount("rift",s.name,i,"text:rift-in"),{name:s.name,amount:l,riftAmount:e.rift[s.name]})},observeInventoryDeltaText:({item:t,name:n,amount:a,delta:i,source:s="text:inventory"}={})=>{const l=o(t||n,a);if(!l.name||!(l.name in e.inventory))return!1;const c=Math.max(0,toNumber(a,l.amount)),u=toNumber(i,0);if(c<=0||0===u)return!1;const d=u>0?c:-c;return adjustInventoryAmount(l.name,d,s),{name:l.name,amount:c,delta:d,inventoryAmount:e.inventory[l.name]}},observeInventoryEmptyText:({item:t,name:n,source:a="text:inventory-empty"}={})=>{const i=o(t||n,0);if(!i.name||!(i.name in e.inventory))return!1;const s=e.inventory[i.name],l=deleteInventoryCurativesByName(i.name);return l&&emitInventoryIdentityChanged(),setAmount("inventory",i.name,0,a),{changed:0!==s||l,identityChanged:l,name:i.name,amount:0,delta:-s,inventoryAmount:e.inventory[i.name],source:a}},observeCurativeConsumedText:({item:t,name:n,amount:a=1}={})=>{const i=o(t||n,a);if(!i.name||!(i.name in e.inventory))return!1;const s=Math.max(0,toNumber(a,i.amount));return!(s<=0)&&(adjustInventoryAmount(i.name,-s,"text:consume"),{name:i.name,amount:s,inventoryAmount:e.inventory[i.name]})},completeObservationBlock:()=>{s.invAddsById.clear(),s.roomRemovesById.clear(),s.appliedIds.clear()},hydrateFromGmcp,setDesiredPrecache:(n={})=>{Object.entries(n).forEach(([t,n])=>{t in e.desiredPrecache&&(e.desiredPrecache[t]=Math.max(0,toNumber(n,0)))}),t("CacheDesiredPrecacheChanged",{...e.desiredPrecache})}}},createCacheModel=({cacheTable:e={},cacheNames:t={},haveAff:n=()=>!1,haveDef:a=()=>!1}={})=>{const o=new Set;let i=0;const s={inventory:{...e},rift:{...e},inventoryCurativesById:{},desiredPrecache:Object.keys(e).reduce((e,t)=>(e[t]=0,e),{}),hydration:{inventoryKnown:!1,riftKnown:!1}},emit=(e,t)=>{i+=1,o.forEach(n=>n(e,t))},l=createSnapshotCache({getVersion:()=>i,buildSnapshot:()=>({inventory:{...s.inventory},rift:{...s.rift},inventoryCurativesById:Object.entries(s.inventoryCurativesById).reduce((e,[t,n])=>(e[t]={...n},e),{}),desiredPrecache:{...s.desiredPrecache},hydration:{...s.hydration}})});return{onChange:e=>(o.add(e),()=>o.delete(e)),snapshot:()=>l(),...createCacheStateSupport({state:s,emit,cacheTable:e,cacheNames:t}),...createCachePrecacheSupport({state:s,haveAff:n,haveDef:a}),getDesiredPrecache:()=>({...s.desiredPrecache})}},Yn={loadOnLogin:!1,flushSafetyMs:120,maxSendPerChunk:20,queueWhilePaused:!1,overrideTab:!1,customPrompt:!0,debug:!1,notices:{affGot:!0,affLost:!0,defGot:!0,defLost:!0,balanceLost:!1,balanceRecovered:!1,trackableGot:!1,trackableLost:!1,priority:!0,output:!1},ss:{transmutation:!0,sipPriority:"health",sipHealthAt:55,sipManaAt:35,mossHealthAt:45,mossManaAt:35,focus:!0,focusOverHerbs:!1,tree:"on",clot:!0,clotAt:19,fracturesAbove:25,manaThreshold:75,batch:!0}},Kn={paused:!0,slowMode:!1,aeonLocked:!1,phase:J.IDLE,startupFailureMessage:""},Qn={name:"",class:"",race:"",color:"",hp:0,maxhp:0,mp:0,maxmp:0,ep:0,maxep:0,wp:0,maxwp:0,bleed:0,rage:0,dead:!1,mount:null,wielded:{left:null,right:null}},Zn={id:"",text:"",isPlayer:null,hp:""},Xn={id:null,name:"",exits:{},items:{}},getChangedPatchKeys=(e={},t,n)=>Object.keys(e||{}).filter(e=>JSON.stringify(n[e])!==JSON.stringify(t[e])),createSystemConfigApi=({state:e,emit:t})=>({getRuntime:()=>e.runtime,getSettings:()=>e.settings,getBaselineIntent:()=>e.baselineIntent,setRuntime(n={}){const a=e.runtime,o=deepMerge(e.runtime,n),i=Object.keys(o).filter(e=>o[e]!==a[e]);if(!i.length)return!1;const s=a.paused;return e.runtime=o,e.runtime.paused!==s&&t("PauseStateChanged",{paused:e.runtime.paused}),t("RuntimeStateChanged",{current:e.runtime,changedKeys:i}),!0},setSettings(n={},a={}){const o=e.settings,i=deepMerge(e.settings,n),s=getChangedPatchKeys(n,o,i);return!!s.length&&(e.settings=i,a.setBaseline&&(e.baselineIntent=deepMerge(e.baselineIntent,n)),t("SettingsChanged",{current:e.settings,patch:n,changedKeys:s}),!0)},setBaselineIntent(n={}){const a=e.baselineIntent,o=deepMerge(e.baselineIntent,n),i=getChangedPatchKeys(n,a,o);return!!i.length&&(e.baselineIntent=o,t("BaselineIntentChanged",{current:e.baselineIntent,patch:n,changedKeys:i}),!0)}}),shallowEqualRecord=(e={},t={})=>{const n=Object.keys(e||{}),a=Object.keys(t||{});return n.length===a.length&&n.every(n=>e[n]===t[n])},collectChangedFields=(e={})=>{const t={};return Object.entries(e).forEach(([e,[n,a]])=>{n!==a&&(t[e]={previous:n,current:a})}),t},Jn=["hp","maxhp","mp","maxmp","ep","maxep","wp","maxwp"],hasOwn$3=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),isDragonClass=(e="")=>/\bdragon\b/i.test(String(e||"")),getDragonColor=(e="")=>{const t=String(e||"").trim().split(/\s+/).filter(Boolean),n=t.findIndex(e=>"dragon"===e.toLowerCase()),a=n>0?t[n-1]:"";return a?a[0].toUpperCase()+a.slice(1).toLowerCase():""},normalizeStatusClass=({className:e="",race:t="",classProvided:n=!1,raceProvided:a=!1}={})=>{const o=String(e||"").trim(),i=String(t||"").trim(),s=isDragonClass(o),l=isDragonClass(i);return s||!n&&a&&l?{className:"Dragon",color:getDragonColor(o)||getDragonColor(i)}:{className:normalizeClassName(o),color:""}},createSystemCharacterApi=({state:e,emit:t})=>({updateVitals(n={}){const a=toParsedGmcpVitals(n),o=a.resourceStats.filter(({balanceState:e})=>void 0===e),i={dead:e.char.dead};Jn.forEach(t=>{i[t]=e.char[t]}),o.forEach(({key:t})=>{t in i||(i[t]=e.char[t])}),Jn.forEach(t=>{void 0!==a.vitals[t]&&(e.char[t]=a.vitals[t])}),o.forEach(({key:t,value:n})=>{e.char[t]=n}),e.char.dead=e.char.hp<=0;const s={dead:[i.dead,e.char.dead]};Jn.forEach(t=>{s[t]=[i[t],e.char[t]]}),o.forEach(({key:t})=>{s[t]=[i[t],e.char[t]]});const l=collectChangedFields(s);return!!Object.keys(l).length&&(t("VitalsUpdated",{current:e.char,hpDiff:e.char.hp-i.hp,mpDiff:e.char.mp-i.mp,changedFields:l}),e.char.dead&&!i.dead&&t("DeathDetected",{hp:e.char.hp,previousHp:i.hp}),!0)},updateStatus(n={}){const a={name:e.char.name,class:e.char.class,race:e.char.race,color:e.char.color};hasOwn$3(n,"name")&&(e.char.name=n.name??""),hasOwn$3(n,"race")&&(e.char.race=n.race??"");const o=hasOwn$3(n,"class"),i=hasOwn$3(n,"race");if(o||i){const t=normalizeStatusClass({className:o?n.class:e.char.class,race:e.char.race,classProvided:o,raceProvided:i});e.char.class=t.className,e.char.color=t.color}const s=collectChangedFields({name:[a.name,e.char.name],class:[a.class,e.char.class],race:[a.race,e.char.race],color:[a.color,e.char.color]});return!!Object.keys(s).length&&(a.class!==e.char.class&&t("ClassChanged",{class:e.char.class,previousClass:a.class}),t("StatusUpdated",{current:e.char,changedFields:s}),!0)},updateWielded(n,a){if("left"!==n&&"right"!==n)return!1;const o=e.char.wielded[n],i=a?{id:a.id??null,name:String(a.name||""),icon:a.icon||null}:null;return(null!==o||null!==i)&&((!o||!i||o.id!==i.id||o.name!==i.name)&&(e.char.wielded[n]=i,t("WieldedUpdated",{side:n,current:i,previous:o}),!0))},updateMount(n){const a=e.char.mount,o=n?{name:String(n.name||""),id:n.id??null}:null;return a!==o&&((!a||!o||a.name!==o.name||a.id!==o.id)&&(e.char.mount=o,t("MountUpdated",{current:o,previous:a}),!0))},getChar:()=>e.char,getClass:()=>e.char.class,checkClass:t=>classesMatch(e.char.class,t),isClass:t=>void 0===t||!!t&&(Array.isArray(t)?t.some(t=>classesMatch(e.char.class,t)):classesMatch(e.char.class,t))}),ea=["Text","text","short_desc"],hasOwn$2=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),getProvidedValue=(e,t,n,a="")=>{for(const o of t)if(hasOwn$2(e,o))return e[o]??a;return n},deriveIsPlayer=e=>"-1"===String(e),createSystemTargetApi=({state:e,emit:t})=>({updateTarget(n={}){const a=e.target,o={id:getProvidedValue(n,["id","ID"],a.id),text:getProvidedValue(n,ea,a.text),hp:getProvidedValue(n,["HP","hp","hpperc"],a.hp)};if(o.isPlayer=deriveIsPlayer(o.id),o.id===a.id&&o.text===a.text&&o.hp===a.hp&&o.isPlayer===a.isPlayer)return!1;e.target=o;const i=ea.some(e=>hasOwn$2(n,e)),s=o.id!==a.id||o.text!==a.text;return!(!i||!s)&&(t("TargetUpdated",{current:e.target,changedFields:collectChangedFields({id:[a.id,o.id],text:[a.text,o.text],isPlayer:[a.isPlayer,o.isPlayer],hp:[a.hp,o.hp]})}),!0)},isTarget(t){if(null==t)return!1;const n=String(t).toLowerCase();return e.target.text.toLowerCase()===n||String(e.target.id).toLowerCase()===n}}),hasOwn$1=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),createSystemRoomApi=({state:e,emit:t})=>({getRoom:()=>e.room,updateRoom(n={}){const a=e.room,o={id:hasOwn$1(n,"num")?n.num:a.id,name:hasOwn$1(n,"name")?n.name??"":a.name,exits:hasOwn$1(n,"exits")?{...n.exits??{}}:a.exits,items:a.items},i=collectChangedFields({id:[a.id,o.id],name:[a.name,o.name]});return shallowEqualRecord(a.exits,o.exits)||(i.exits={previous:a.exits,current:o.exits}),!!Object.keys(i).length&&(e.room=o,t("RoomUpdated",{current:e.room,changedFields:i}),!0)},setRoomItems(n={}){const a={...n};return!shallowEqualRecord(e.room.items,a)&&(e.room.items=a,t("RoomItemsUpdated",{current:e.room.items}),!0)}}),createSystemModel=(e={})=>{const t={settings:deepMerge(Yn,e.settings||{}),baselineIntent:deepMerge(Yn,e.baselineIntent||{}),runtime:deepMerge(Kn,e.runtime||{}),char:deepMerge(Qn,e.char||{}),target:deepMerge(Zn,e.target||{}),room:deepMerge(Xn,e.room||{})},n=new Set;let a=0;const emit=(e,t)=>{a+=1,n.forEach(n=>n(e,t))},o=createSystemConfigApi({state:t,emit}),i=createSystemCharacterApi({state:t,emit}),s=createSystemTargetApi({state:t,emit}),l=createSystemRoomApi({state:t,emit}),copySettingsBucket=(e={})=>({...e,notices:{...e.notices||{}},ss:{...e.ss||{}}}),copyCharSnapshot=(e={})=>({...e,mount:e.mount?{...e.mount}:null,wielded:{left:e.wielded?.left?{...e.wielded.left}:null,right:e.wielded?.right?{...e.wielded.right}:null}}),copyTargetSnapshot=(e={})=>({...e}),copyRoomSnapshot=(e={})=>({...e,exits:{...e.exits||{}},items:{...e.items||{}}}),c=createSnapshotCache({getVersion:()=>a,buildSnapshot:()=>({settings:copySettingsBucket(t.settings),baselineIntent:copySettingsBucket(t.baselineIntent),runtime:{...t.runtime},char:copyCharSnapshot(t.char),target:copyTargetSnapshot(t.target),room:copyRoomSnapshot(t.room)})});return{onChange:e=>(n.add(e),()=>n.delete(e)),snapshot:()=>c(),getRuntime:o.getRuntime,getSettings:o.getSettings,getBaselineIntent:o.getBaselineIntent,setRuntime:o.setRuntime,setSettings:o.setSettings,setBaselineIntent:o.setBaselineIntent,updateVitals:i.updateVitals,updateStatus:i.updateStatus,updateWielded:i.updateWielded,updateMount:i.updateMount,getChar:i.getChar,getClass:i.getClass,checkClass:i.checkClass,isClass:i.isClass,updateTarget:s.updateTarget,isTarget:s.isTarget,getRoom:l.getRoom,updateRoom:l.updateRoom,setRoomItems:l.setRoomItems}},createModels=({adapter:e,seedData:t,options:n={},now:a})=>{const o=Boolean(n.debug),i=createSystemModel({settings:{debug:o},baselineIntent:{debug:o}}),s=createAfflictionModel({affTable:t.affTable,now:a,setTimeoutFn:e.setTimeout,clearTimeoutFn:e.clearTimeout}),l=createBalanceModel({balanceTable:t.balanceTable,haveAff:e=>s.haveAff(e),now:a,setTimeoutFn:e.setTimeout,clearTimeoutFn:e.clearTimeout}),c=createDefenseModel({defTable:t.defTable,defPrios:t.defPrios});return{systemModel:i,affModel:s,balanceModel:l,defModel:c,cacheModel:createCacheModel({cacheTable:t.cacheTable,cacheNames:t.cacheNames,haveAff:e=>s.haveAff(e),haveDef:e=>c.haveDef(e)}),limbModel:createLimbModel({now:a,setTimeoutFn:e.setTimeout,clearTimeoutFn:e.clearTimeout})}},ta="parry",ra=25,resetParryPriorities=e=>{Object.keys(fe.long).forEach(t=>{e.setDefaultPriority(`parrying ${t}`,0,ta),e.get(`guarding ${t}`)&&e.setDefaultPriority(`guarding ${t}`,0,ta)})},createCombatDomainService=({affModel:e,defModel:t,limbModel:n,systemModel:a,queueController:o,serverside:i})=>({observeLimbHit:({limb:t,amount:a,source:o="manual",at:s}={})=>applyObservedLimbHit({limbModel:n,affModel:e,serverside:i,limb:t,amount:a,source:o,at:s}),observeLimbReset:({limb:t,source:a="manual",at:o}={})=>applyObservedLimbReset({limbModel:n,affModel:e,serverside:i,limb:t,source:a,at:o}),observeLimbStage:({limb:t,stage:a,source:o="manual",at:s}={})=>applyObservedLimbStage({limbModel:n,affModel:e,serverside:i,limb:t,stage:a,source:o,at:s}),parry(e){resetParryPriorities(t);const n=fe.short[e]||e,i=t.get(`guarding ${n}`);let s;return i&&a.isClass(i.skills)?(t.setDefaultPriority(`guarding ${n}`,ra,ta),s=`guard ${n}`):(t.setDefaultPriority(`parrying ${n}`,ra,ta),a.isClass("Dragon")?(t.setCommand(`parrying ${n}`,`clawparry ${n}`,ta),s=`clawparry ${n}`):(t.setCommand(`parrying ${n}`,`parry ${n}`,ta),s=`parry ${n}`)),o.prepend("freeQueue",s),{limbName:n,command:s}}}),isRecordValue=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),hasSupportedSchemaVersion=e=>isRecordValue(e)&&isSupportedPersistenceSchemaVersion(e.schemaVersion),createPersistenceStore=({adapter:e,key:t="nexSys4Settings",noticeCenter:n}={})=>{let a=!1;const noticeSchemaResetIfNeeded=e=>{a||!isRecordValue(e)||null==e.schemaVersion||isSupportedPersistenceSchemaVersion(e.schemaVersion)||(a=!0,n?.publish?.("persistence","Saved nexSys4 settings were in an older format and have been reset to defaults.",{force:!0}))},read=()=>{const n=e.getVariable(t);return noticeSchemaResetIfNeeded(n),{key:t,exists:hasSupportedSchemaVersion(n),snapshot:deepClone$1(normalizePersistenceSnapshot(n))}},load=()=>read().snapshot,save=(n={})=>{const a=deepClone$1(normalizePersistenceSnapshot(n,{assumeCurrentVersion:!0}));return e.setVariable(t,a),deepClone$1(a)};return{key:t,read,load,save}},createNoticeCenter=({adapter:e,systemModel:t})=>({publish:(n,a,o={})=>{const i=t.getSettings().notices||{},{force:s=!1,...l}=o;(s||!1!==i[n])&&e.notice(String(a),{category:n,...l})}}),na=Object.freeze({PLANNED:"planned",SENT:"sent",AWAITING_COMPLETION:"awaiting-completion",COMPLETED:"completed",EXPIRED:"expired",RECOVERING:"recovering"}),createOutputCycle=({adapter:e,dispatchCommands:t,systemModel:n,serverside:a,outputPlanner:o,noticeCenter:i,options:s={}}={})=>{const now=()=>e?.now?.()??Date.now();let l=[],c="",u=1,d=null,p=null,m=null,g=[];const h=`echo SystemEvent ${ee.OUTPUT_COMPLETE}`,b=Math.max(50,Number(s.outputCompletionTimeoutMs||1e3)),y=Math.max(0,Number(s.maxOutputRecoveryAttempts??2)),clearCompletionTimer=()=>{m&&(e?.clearTimeout?.(m),m=null)},recordBatchState=(e,t,n={})=>{if(!e)return null;const a=now();return e.state=t,e.stateHistory.push({state:t,at:a}),Object.assign(e,n),e},snapshotBatch=e=>e?{id:e.id,source:e.source,state:e.state,stateHistory:e.stateHistory.map(e=>({...e})),completionRequired:e.completionRequired,recoveryAttempts:e.recoveryAttempts,maxRecoveryAttempts:e.maxRecoveryAttempts,commands:[...e.commands],dispatchedCommands:[...e.dispatchedCommands],serversideCommands:[...e.serversideCommands],batchCount:e.batchCount,createdAt:e.createdAt,sentAt:e.sentAt??null,completedAt:e.completedAt??null,expiredAt:e.expiredAt??null,lastRecoveryAt:e.lastRecoveryAt??null}:null,storeLastBatch=e=>{p=snapshotBatch(e)},createBatch=({source:e,intents:t=[],commands:n,serversideCommands:a,maxCommands:o})=>{const i=t.some(e=>!0===e?.requiresCompletion),s=i?n.filter(e=>e!==h):[...n],l=i?chunkCommandsWithTrailing(s,{maxEntries:o,trailing:[h]}):chunkCommands(s,o);return{id:u++,source:e,state:na.PLANNED,stateHistory:[{state:na.PLANNED,at:now()}],completionRequired:i,recoveryAttempts:0,maxRecoveryAttempts:y,commands:[...s],dispatchedCommands:i?[...s,h]:[...s],serversideCommands:[...a],batches:l,batchCount:l.length,createdAt:now(),observedOutbound:!1}},dispatchBatchBatches=(e,n,a={})=>{n.forEach((o,i)=>{t(o,{source:a.source||"output-cycle",cycleSource:e.source,batch:i+1,batchCount:n.length,outputBatchId:e.id,outputBatchState:e.state,recoveryAttempt:a.recoveryAttempt||0})})},scheduleCompletionTimeout=t=>{clearCompletionTimer(),m=e?.setTimeout?.(()=>{if(d&&d.id===t.id&&d.completionRequired){if(recordBatchState(d,na.EXPIRED,{expiredAt:now()}),c="",d.recoveryAttempts>=d.maxRecoveryAttempts)return i?.publish?.("output",`Output completion confirmation expired after ${d.maxRecoveryAttempts} recovery probe(s).`,{force:!0}),storeLastBatch(d),d=null,void clearCompletionTimer();d.recoveryAttempts+=1,recordBatchState(d,na.RECOVERING,{lastRecoveryAt:now()}),dispatchBatchBatches(d,[[h]],{source:"output-cycle-recovery",recoveryAttempt:d.recoveryAttempts}),scheduleCompletionTimeout(d)}},b)};return{planAndSend:({source:e="prompt"}={})=>{const t=n.getRuntime(),i=n.getSettings();if(t.paused)return[];if(d)return[];const s="output-complete"===e?[...g]:[];g=[];const u=o.plan({source:e,injectedCommands:l,suppressedServersideCommands:s});if(!u.commands.length)return l=[],[];const p=Math.max(1,Number(i.maxSendPerChunk||20)),m=createBatch({source:e,intents:u.intents,commands:u.commands,serversideCommands:u.serversideCommands,maxCommands:p}),h=m.dispatchedCommands.join("");return h===c?[]:(m.serversideCommands.length&&!m.observedOutbound&&(a.observeOutbound(m.serversideCommands),m.observedOutbound=!0),recordBatchState(m,na.SENT,{sentAt:now()}),dispatchBatchBatches(m,m.batches),c=h,m.completionRequired?(d=m,recordBatchState(d,na.AWAITING_COMPLETION),scheduleCompletionTimeout(d)):(recordBatchState(m,na.COMPLETED,{completedAt:now()}),storeLastBatch(m)),l=[],u.commands)},markComplete:()=>!!d&&(clearCompletionTimer(),g=[...d.serversideCommands],d.serversideCommands.length&&a.acknowledgeCommands(d.serversideCommands),recordBatchState(d,na.COMPLETED,{completedAt:now()}),storeLastBatch(d),d=null,!0),isWaitingForCompletion:()=>d?.state===na.AWAITING_COMPLETION||d?.state===na.RECOVERING,isBlockingOutput:()=>Boolean(d),getLifecycleState:()=>({activeBatch:snapshotBatch(d),lastBatch:snapshotBatch(p)}),invalidate(){c=""},injectCommands(e=[]){l=[...l,...e.filter(Boolean)]},dispose(){clearCompletionTimer(),d=null,g=[]}}},createRuntimeServices=({adapter:e,options:t={},models:n,controllers:a})=>{const{systemModel:o,affModel:i,defModel:s,limbModel:l}=n,{commandDispatcher:c,queueController:u,serverside:d,defensePlanner:p,precachePlanner:m,outputPlanner:g}=a,h=createNoticeCenter({adapter:e,systemModel:o});return{persistence:createPersistenceStore({adapter:e,key:t.persistenceKey||"nexSys4Settings",noticeCenter:h}),combatService:createCombatDomainService({affModel:i,defModel:s,limbModel:l,systemModel:o,queueController:u,serverside:d}),noticeCenter:h,defensePlanner:p,precachePlanner:m,outputCycle:createOutputCycle({adapter:e,dispatchCommands:c.sendCommands,systemModel:o,serverside:d,outputPlanner:g,noticeCenter:h,options:t})}},createRuntimeDependencies=({adapter:e,seedData:t,options:n={}})=>{const now=()=>e.now(),a=createModels({adapter:e,seedData:t,options:n,now}),o=createDomainControllers({adapter:e,seedData:t,options:n,now,models:a}),i=createRuntimeServices({adapter:e,options:n,models:a,controllers:o});return{now,...o,...a,...i}},createRuntimeFlushCoordinator=({adapter:e,systemModel:t,serverside:n,outputCycle:a,flushGmcpBuffer:o})=>{const now=()=>e?.now?.()??Date.now(),i={started:!1,safetyTimer:null,dirty:!1,flushing:!1,dirtyAt:null},clearSafetyTimer=()=>{i.safetyTimer&&(e.clearTimeout(i.safetyTimer),i.safetyTimer=null)},isRuntimeReady=()=>isRuntimeReadyPhase(t.getRuntime().phase),hasPendingSafetyWork=()=>{const e="function"!=typeof n.isDirty||n.isDirty();return i.dirty&&e},scheduleSafetyFlush=()=>{const n=t.getSettings(),a=Number(n.flushSafetyMs||120),o=Number(n.flushSafetyMaxWaitMs||500),s=now();i.dirtyAt||(i.dirtyAt=s),clearSafetyTimer();const l=s-i.dirtyAt,c=l>=o?0:Math.min(a,o-l);i.safetyTimer=e.setTimeout(()=>{i.safetyTimer=null,hasPendingSafetyWork()?(i.dirtyAt=null,flushCycle("safety-flush")):i.dirtyAt=null},c)},invalidateOutput=()=>{i.dirty=!0,a.invalidate?.()},markDirty=(e="dirty")=>{if(invalidateOutput(),n.markDirty(e),!isRuntimeReady())return clearSafetyTimer(),void(i.dirtyAt=null);i.flushing||a.isBlockingOutput?.()||scheduleSafetyFlush()},flushCycle=(e="prompt")=>{if(!i.started||i.flushing)return[];if(clearSafetyTimer(),!isRuntimeReady())return[];i.flushing=!0;try{if(o(),t.getRuntime().paused)return i.dirty=!1,[];const n=a.planAndSend({source:e});return i.dirty=a.isBlockingOutput()&&0===n.length,i.dirty||(i.dirtyAt=null),n}finally{i.flushing=!1}};return{start(){i.started=!0},stop(){i.started=!1,i.dirty=!1,i.flushing=!1,i.dirtyAt=null,clearSafetyTimer()},isStarted:()=>i.started,isFlushing:()=>i.flushing,invalidateOutput,markDirty,flushCycle}},cell=(e="",t="",n="")=>({text:e,fg:t,bg:n}),createDefaultCureColors=()=>({antimony:{fg:"olive",bg:""},argentum:{fg:"royalblue",bg:""},arsenic:{fg:"",bg:""},aurum:{fg:"ForestGreen",bg:""},azurite:{fg:"",bg:""},calcite:{fg:"slategray",bg:""},cinnabar:{fg:"greenyellow",bg:""},cuprum:{fg:"DeepSkyBlue",bg:""},ferrum:{fg:"DarkOrange",bg:""},magnesium:{fg:"Red",bg:""},plumbum:{fg:"Gold",bg:""},realgar:{fg:"firebrick",bg:""},stannum:{fg:"Tan",bg:""},caloric:{fg:"darkseagreen",bg:""},mending:{fg:"orchid",bg:""},epidermal:{fg:"sienna",bg:""},restoration:{fg:"darkviolet",bg:""},health:{fg:"lightpink",bg:""},writhe:{fg:"PaleGoldenRod",bg:"darkslategray"}}),createDefaultVars=()=>({blackout:!1,paused:cell("","red"),retard:cell("","blue"),aeon:cell("","red"),h:cell("0","green"),m:cell("0","green"),e:cell("0","green"),w:cell("0","green"),maxh:cell(""),maxm:cell(""),maxe:cell(""),maxw:cell(""),ph:cell("100%","green"),pm:cell("100%","green"),pe:cell("100%"),pw:cell("100%"),diffh:cell("","green"),diffm:cell("","green"),diffhp:cell("","green"),diffmp:cell("","green"),target:cell("","pink"),targetHP:cell("","green"),eq:cell(""),bal:cell(""),c:cell(""),k:cell(""),d:cell(""),b:cell(""),shield:cell("","cyan"),prismatic:cell("","magenta"),rage:cell("","red"),karma:cell("","green"),essence:cell("","purple"),kai:cell("","blue")}),createDefaultAffs=(e=createDefaultCureColors())=>({aeon:{text:"ae",...e.cinnabar},addiction:{text:"add",...e.ferrum},anorexia:{text:"ANO",...e.epidermal},asthma:{text:"AST",...e.aurum},blindness:{text:"unb",...e.arsenic},clumsiness:{text:"clu",...e.aurum},confusion:{text:"con",...e.stannum},dazed:{text:"dzd",...e.cinnabar},deafness:{text:"und",...e.calcite},epilepsy:{text:"epi",...e.plumbum},impatience:{text:"IMPAT",...e.plumbum},paralysis:{text:"PAR",...e.magnesium},prone:{text:"pr",fg:"",bg:""},recklessness:{text:"reck",...e.argentum},slickness:{text:"SLI",...e.magnesium},stupidity:{text:"st",...e.plumbum},weariness:{text:"wea",...e.aurum}}),createDefaultPromptState=()=>{const e=createDefaultCureColors();return{vars:createDefaultVars(),affs:createDefaultAffs(e),cureColors:e}},aa={"&":"&","<":"<",">":">",'"':""","'":"'"},escapeHtml=e=>String(e??"").replace(/[&<>"']/g,e=>aa[e]),renderChunk=(e,t="",n="")=>{if(""===e||null==e)return"";const a=[];return t&&a.push(`color:${t}`),n&&a.push(`background-color:${n}`),`<span${a.length?` style="${a.join(";")}"`:""}>${escapeHtml(e)}</span>`},createPromptBuilder=({vars:e,affs:t,cureColors:n,renderAffsHtml:a,renderDiffHtml:o,renderTargetHtml:i,renderVarHtml:s,renderChunkHtml:l=renderChunk})=>{const c=[],u={vars:e,affs:t,cureColors:n,add(t,n,a){if(""===t||null==t)return u;const o="string"==typeof t?e[t]:null;return o&&"object"==typeof o&&"text"in o?c.push("function"==typeof s?s(t):l(o.text,o.fg,o.bg)):c.push(l(t,n,a)),u},addHTML:e=>(e&&c.push(String(e)),u),addAffs:()=>(c.push(a()),u),addDiff:()=>(c.push(o()),u),addTarget:()=>(c.push(i()),u),toHTML:()=>`<span class="nexsys-prompt">${c.join("")}</span>`};return u},oa=new Set(["diffh","diffm","diffhp","diffmp"]),ia=new Set(["target","targetHP"]),getCellSignature=(e={})=>`${String(e.text??"")}\0${String(e.fg??"")}\0${String(e.bg??"")}`,createPromptRenderer=({state:e,getComposer:t,getSortedAffNames:n,getAffSnapshot:a,renderChunkHtml:o=renderChunk})=>{const i=new Map,s=new Map,l=new Map,c=new Map;let u="",d="",p="",m="",g=!0,h=!0,b=!0,y=!0,v=null,S=Boolean(e.vars.blackout),x=[];const markPromptDirty=()=>{y=!0},markVarsDirty=(t=[])=>{Array.isArray(t)&&t.length&&(t.forEach(t=>{const n=e.vars[t];n&&"object"==typeof n&&"text"in n&&s.delete(t),oa.has(t)&&(h=!0),ia.has(t)&&(b=!0)}),y=!0)},syncExternalVarMutations=()=>{let t=!1;const n=new Set;Object.keys(e.vars||{}).forEach(a=>{n.add(a);const o=e.vars[a];if(!o||"object"!=typeof o||!("text"in o))return void((s.has(a)||i.has(a))&&(s.delete(a),i.delete(a),t=!0));const l=getCellSignature(o);s.get(a)!==l&&(s.delete(a),i.delete(a),t=!0,oa.has(a)&&(h=!0),ia.has(a)&&(b=!0))}),[...s.keys()].forEach(e=>{n.has(e)||(s.delete(e),i.delete(e),t=!0,oa.has(e)&&(h=!0),ia.has(e)&&(b=!0))});const a=Boolean(e.vars.blackout);a!==S&&(S=a,t=!0),t&&(y=!0)},syncExternalAffMutations=()=>{if(g||!x.length)return;let t=!1;x.forEach(n=>{const a=getCellSignature(e.affs[n]||{});l.get(n)!==a&&(t=!0)}),t&&(g=!0,y=!0)},syncExternalCureColorMutations=()=>{let t=!1;const n=new Set;Object.keys(e.cureColors||{}).forEach(a=>{n.add(a);const o=getCellSignature(e.cureColors[a]||{});c.get(a)!==o&&(t=!0)}),[...c.keys()].forEach(e=>{n.has(e)||(t=!0)}),t&&(y=!0)},renderVarHtml=t=>{const n=e.vars[t];if(!n||"object"!=typeof n||!("text"in n))return"";const a=getCellSignature(n);return s.get(t)===a&&i.has(t)||(i.set(t,o(n.text,n.fg,n.bg)),s.set(t,a)),i.get(t)||""},buildAffsHtml=()=>{const t=n()||[],{affs:i}=e;if(x=[...t],l.clear(),!t.length)return'<span class="nexsys-prompt-affs mono"></span>';const s=[o("[","brown")];for(let e=0;e<t.length;e+=1){const n=t[e],c=i[n]||{text:n,fg:"",bg:""},u="function"==typeof a&&a(n)||{},d=Number(u.max)>1&&Number.isFinite(Number(u.count))?`(${Number(u.count)})`:"";l.set(n,getCellSignature(i[n]||{}));const p=e<t.length-1?" ":"";s.push(o(`${c.text}${d}${p}`,c.fg,c.bg))}return s.push(o("]","brown")),`<span class="nexsys-prompt-affs mono">${s.join("")}</span>`},renderAffsHtml=()=>(g&&(u=buildAffsHtml(),g=!1),u),renderDiffHtml=()=>{if(h){const t=e.vars.diffh||{},n=e.vars.diffhp||{},a=e.vars.diffm||{},i=e.vars.diffmp||{},s=[];t.text&&(s.push(o(`${t.text}h`,t.fg,t.bg)),n.text&&s.push(o(`(${n.text})`,n.fg,n.bg))),a.text&&(s.length&&s.push(o(", ")),s.push(o(`${a.text}m`,a.fg,a.bg)),i.text&&s.push(o(`(${i.text})`,i.fg,i.bg))),d=s.join(""),h=!1}return d},renderTargetHtml=()=>{if(b){const t=e.vars.target||{},n=e.vars.targetHP||{},a=[];(t.text||n.text)&&(a.push(o(" [")),t.text&&a.push(renderVarHtml("target")),t.text&&n.text&&a.push(o(": ")),n.text&&a.push(renderVarHtml("targetHP")),a.push(o("] "))),p=a.join(""),b=!1}return p},resetTransients=()=>{const{vars:t}=e,n=["diffh","diffm","diffhp","diffmp"].filter(e=>{const n=t[e];return!(!n||""===n.text)&&(n.text="",!0)});n.length&&markVarsDirty(n)};return{render(){const n=t();if("function"!=typeof n)return"";if(syncExternalVarMutations(),syncExternalAffMutations(),syncExternalCureColorMutations(),!y&&n===v)return m;const a=createPromptBuilder({vars:e.vars,affs:e.affs,cureColors:e.cureColors,renderAffsHtml,renderDiffHtml,renderTargetHtml,renderVarHtml,renderChunkHtml:o});try{n(a)}catch(i){return console.error("nexSys4 prompt compose error",i),""}return m=a.toHTML(),y=!1,v=n,Object.keys(e.cureColors||{}).forEach(t=>{c.set(t,getCellSignature(e.cureColors[t]||{}))}),[...c.keys()].forEach(t=>{t in(e.cureColors||{})||c.delete(t)}),resetTransients(),m},markAffsDirty(){g=!0,y=!0},isAffDirty:()=>g,markDiffDirty(){h=!0,y=!0},markTargetDirty(){b=!0,y=!0},markVarsDirty,markPromptDirty,isPromptDirty:()=>y}},defaultCompose=e=>{const{vars:t}=e;t.blackout?e.add("-","reset"):(e.add("paused"),e.add("aeon"),e.add("retard"),e.add("h"),e.add(`(${t.ph.text}), `,t.h.fg,t.h.bg),e.add("m"),e.add(`(${t.pm.text}) `,t.m.fg,t.m.bg),t.rage.text&&Number(t.rage.text)>0&&e.add(`${t.rage.text}R `,t.rage.fg,t.rage.bg),t.karma.text&&e.add(`${t.karma.text}K `,t.karma.fg,t.karma.bg),e.add("eq"),e.add("bal"),e.add("|"),e.add("c"),e.add("k"),e.add("d"),e.add("b"),e.add(" "),e.addAffs(),e.addDiff())},sa=new Set(["diffh","diffm","diffhp","diffmp"]),la=new Set(["target","targetHP"]),clampPct=e=>{const t=Number(e);return Number.isFinite(t)?t<0?0:t>100?100:t:0},colorGradation=e=>{const t=clampPct(e),n=t<75?50:Math.abs(t-100)/2+25;return`hsl(${(1.2*t).toFixed(0)}, 100%, ${n}%)`},colorPercentage=e=>{const t=Number(e)||0;return t>75?"green":t>=33?"yellow":"red"},createPromptPresenter=({publicEvents:e,affModel:t,defModel:n,balanceModel:a,systemModel:o,renderPrompt:i}={})=>{const s=createDefaultPromptState();let l=defaultCompose;const c=createPromptRenderer({state:s,getComposer:()=>l,getSortedAffNames:()=>t?.currentSorted&&t.currentSorted()||[],getAffSnapshot:e=>t?.get?.(e)||null}),isRecord=e=>e&&"object"==typeof e&&!Array.isArray(e),isCellLike=e=>isRecord(e)&&("text"in e||"fg"in e||"bg"in e),normalizeCellField=e=>null==e?"":String(e),getVarRegion=e=>sa.has(e)?"diff":la.has(e)?"target":"",ensureVarCell=e=>{const t=s.vars[e];if(t&&"object"==typeof t&&"text"in t)return t;if(e in s.vars)return null;const n={text:"",fg:"",bg:""};return s.vars[e]=n,c.markPromptDirty(),n},applyCell=(e,t={},n={})=>{const a=n.create?ensureVarCell(e):s.vars[e];if(!a||"object"!=typeof a||!("text"in a))return!1;let o=!1;if("text"in t){const e=normalizeCellField(t.text);a.text!==e&&(a.text=e,o=!0)}if("fg"in t){const e=normalizeCellField(t.fg);a.fg!==e&&(a.fg=e,o=!0)}if("bg"in t){const e=normalizeCellField(t.bg);a.bg!==e&&(a.bg=e,o=!0)}return!!o&&(c.markVarsDirty([e]),"diff"===n.region&&c.markDiffDirty(),"target"===n.region&&c.markTargetDirty(),!0)},applyFlag=(e,t)=>{const n=Boolean(t);return s.vars[e]!==n&&(s.vars[e]=n,c.markPromptDirty(),!0)},patchVars=(e={})=>{if(!isRecord(e))return!1;let t=!1;return Object.entries(e).forEach(([e,n])=>{const a=s.vars[e],o=getVarRegion(e);"boolean"!=typeof a?"boolean"!=typeof n||void 0!==a?t=applyCell(e,isCellLike(n)?n:{text:n},{create:!0,region:o})||t:s.vars[e]!==n&&(s.vars[e]=n,c.markPromptDirty(),t=!0):t=applyFlag(e,n)||t}),t},patchAffs=(e={})=>{if(!isRecord(e))return!1;let t=!1;return Object.entries(e).forEach(([e,n])=>{if(null===n)return void(e in s.affs&&(delete s.affs[e],t=!0));const a=isCellLike(n)?n:{text:n},o=s.affs[e],i=o&&"object"==typeof o?o:s.affs[e]={text:"",fg:"",bg:""};["text","fg","bg"].forEach(e=>{if(!(e in a))return;const n=normalizeCellField(a[e]);i[e]!==n&&(i[e]=n,t=!0)})}),t&&c.markAffsDirty(),t},patchCureColors=(e={})=>{if(!isRecord(e))return!1;let t=!1;return Object.entries(e).forEach(([e,n])=>{if(null===n)return void(e in s.cureColors&&(delete s.cureColors[e],t=!0));const a=isRecord(n)?n:{fg:n},o=s.cureColors[e],i=o&&"object"==typeof o?o:s.cureColors[e]={fg:"",bg:""};["fg","bg"].forEach(e=>{if(!(e in a))return;const n=normalizeCellField(a[e]);i[e]!==n&&(i[e]=n,t=!0)})}),t&&c.markPromptDirty(),t},updateBalanceGlyphs=()=>{applyCell("eq",{text:a?.have?.(Ln.EQUILIBRIUM)?"e":""}),applyCell("bal",{text:a?.have?.(Ln.BALANCE)?"x":""})},updateDefGlyphs=()=>{applyCell("c",{text:n?.haveDef?.("cloak")?"c":""}),applyCell("k",{text:n?.haveDef?.("kola")?"k":""}),applyCell("d",{text:n?.haveDef?.("deafness")?"d":""}),applyCell("b",{text:n?.haveDef?.("blindness")?"b":""}),applyCell("shield",{text:n?.haveDef?.("shield")?"(":""}),applyCell("prismatic",{text:n?.haveDef?.("prismatic")?"[":""})},pctOf=(e,t)=>{const n=Number(e)||0,a=Number(t)||0;return a>0?100*n/a:0},onVitals=(e={})=>{const t=e.current||o?.snapshot?.().char||{},n=pctOf(t.hp,t.maxhp),a=pctOf(t.mp,t.maxmp),i=pctOf(t.ep,t.maxep),s=pctOf(t.wp,t.maxwp);applyCell("h",{text:t.hp??"",fg:colorGradation(n)}),applyCell("m",{text:t.mp??"",fg:colorGradation(a)}),applyCell("e",{text:t.ep??"",fg:colorGradation(i)}),applyCell("w",{text:t.wp??"",fg:colorGradation(s)}),applyCell("maxh",{text:t.maxhp??""}),applyCell("maxm",{text:t.maxmp??""}),applyCell("maxe",{text:t.maxep??""}),applyCell("maxw",{text:t.maxwp??""}),applyCell("ph",{text:`${n.toFixed(1)}%`}),applyCell("pm",{text:`${a.toFixed(1)}%`}),applyCell("pe",{text:`${i.toFixed(1)}%`}),applyCell("pw",{text:`${s.toFixed(1)}%`});const l=Number(e.hpDiff||0),c=Number(e.mpDiff||0),u=Number(t.maxhp)||0,d=Number(t.maxmp)||0;if(l){const e=l<0?"red":"green";applyCell("diffh",{text:`${l>0?"+":""}${l}`,fg:e},{region:"diff"}),applyCell("diffhp",{text:u?`${(l/u*100).toFixed(1)}%`:"",fg:e},{region:"diff"})}if(c){const e=c<0?"red":"green";applyCell("diffm",{text:`${c>0?"+":""}${c}`,fg:e},{region:"diff"}),applyCell("diffmp",{text:d?`${(c/d*100).toFixed(1)}%`:"",fg:e},{region:"diff"})}"karma"in t&&applyCell("karma",{text:t.karma??""}),"rage"in t&&applyCell("rage",{text:t.rage??""}),"essence"in t&&applyCell("essence",{text:t.essence??""}),"kai"in t&&applyCell("kai",{text:t.kai??""}),applyFlag("blackout",t.dead)},onRuntimeChange=()=>{const e=o?.snapshot?.().runtime||{};applyCell("retard",{text:e.slowMode?"(r)":""}),applyCell("paused",{text:e.paused?"(p)":""}),applyCell("aeon",{text:e.aeonLocked?"(a)":""})},onTargetChange=()=>{const e=o?.snapshot?.().target||{};applyCell("target",{text:e.text||""},{region:"target"}),applyCell("targetHP",{text:e.hp||""},{region:"target"});const t=parseInt(e.hp,10);Number.isFinite(t)&&applyCell("targetHP",{fg:colorGradation(t)},{region:"target"})},onAffEvent=(e={})=>{"aeon"===e?.name&&applyCell("aeon",{text:t?.haveAff?.("aeon")?"(a)":""}),c.markAffsDirty()},onDefEvent=()=>updateDefGlyphs(),onBalanceEvent=()=>updateBalanceGlyphs(),u=[];let d=!1;const subscribe=(t,n)=>{if(!e||"function"!=typeof e.on)return;const a=e.on(t,n);"function"==typeof a&&u.push(a)};return{start:()=>{d||(d=!0,subscribe(X.SYSTEM_VITALS_CHANGED,onVitals),subscribe(X.SYSTEM_RUNTIME_CHANGED,onRuntimeChange),subscribe(X.SYSTEM_PAUSE_CHANGED,onRuntimeChange),subscribe(X.SYSTEM_TARGET_CHANGED,onTargetChange),subscribe(X.AFF_GOT,onAffEvent),subscribe(X.AFF_LOST,onAffEvent),subscribe(X.AFF_STACK_CHANGED,onAffEvent),subscribe(X.AFF_PRIORITY_CHANGED,()=>c.markAffsDirty()),subscribe(X.DEF_GOT,onDefEvent),subscribe(X.DEF_LOST,onDefEvent),subscribe(X.BALANCE_GOT,onBalanceEvent),subscribe(X.BALANCE_LOST,onBalanceEvent),subscribe(X.BALANCE_RESET,onBalanceEvent),subscribe(X.BALANCE_TIMER_RESTARTED,onBalanceEvent),updateDefGlyphs(),updateBalanceGlyphs(),onRuntimeChange())},stop:()=>{u.forEach(e=>{try{e()}catch(t){console.error("nexSys4 prompt presenter unsubscribe failed",t)}}),u.length=0,d=!1},render:(e={})=>{const t=c.render();return"function"==typeof i?i(t,e):t},markAffsDirty:()=>c.markAffsDirty(),markPromptDirty:()=>c.markPromptDirty(),patchVars,patchAffs,patchCureColors,colorGradation,colorPercentage,get vars(){return s.vars},get affs(){return s.affs},get cureColors(){return s.cureColors},get compose(){return l},set compose(e){l="function"==typeof e?e:defaultCompose,c.markPromptDirty()},_state:s,_onVitals:onVitals,_onAffEvent:onAffEvent,_onDefEvent:onDefEvent,_onBalanceEvent:onBalanceEvent,_onRuntimeChange:onRuntimeChange,_onTargetChange:onTargetChange}},ca=Object.freeze({INTERNAL:"internal",JS:"js",EVENTSTREAM:"eventstream"}),ua=Object.freeze({STABLE:"stable",EXPERIMENTAL:"experimental",DEPRECATED:"deprecated"}),da=/^nexsys4(\.[a-z0-9_-]+)+$/,pa=Object.freeze(Object.values(ca)),ma=Object.freeze(Object.values(ua)),fa=Object.freeze({[ca.INTERNAL]:Object.freeze([null,ca.INTERNAL]),[ca.JS]:Object.freeze([null,ca.INTERNAL,ca.JS]),[ca.EVENTSTREAM]:Object.freeze([null,ca.INTERNAL,ca.JS,ca.EVENTSTREAM])}),topicEntry=(e,t,n={})=>{const a=n.scopedAudience??null,o={audience:e,scopedAudience:a,stability:n.stability??ua.STABLE,description:t};return null!=a&&n.scopedPayloadKey&&(o.scopedPayloadKey=n.scopedPayloadKey),Object.freeze(o)},eventStreamTopic=(e,t={})=>topicEntry(ca.EVENTSTREAM,e,t),jsTopic=(e,t={})=>topicEntry(ca.JS,e,t),scopedEventStreamTopic=(e,t)=>eventStreamTopic(e,{scopedAudience:ca.EVENTSTREAM,scopedPayloadKey:t}),isScopedAudienceAllowed=(e,t)=>{const n=fa[e];return Array.isArray(n)&&n.includes(t)},validateRegistryEntry=(e,t)=>{if(!da.test(e))throw new Error(`Invalid topic registry key "${e}": expected lowercase dotted nexsys4.* form.`);if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(`Invalid registry entry for "${e}": expected an object.`);if(!pa.includes(t.audience))throw new Error(`Invalid audience for "${e}": received "${t.audience}".`);if(!("scopedAudience"in t))throw new Error(`Missing scopedAudience metadata for "${e}".`);if(null!=t.scopedAudience&&!pa.includes(t.scopedAudience))throw new Error(`Invalid scopedAudience for "${e}": received "${t.scopedAudience}".`);if(!isScopedAudienceAllowed(t.audience,t.scopedAudience??null))throw new Error(`Invalid scopedAudience for "${e}": "${t.scopedAudience}" exceeds base audience "${t.audience}".`);if(null!=t.scopedAudience&&("string"!=typeof t.scopedPayloadKey||!t.scopedPayloadKey.trim()))throw new Error(`Missing scopedPayloadKey for scoped topic "${e}".`);if(!ma.includes(t.stability))throw new Error(`Invalid stability for "${e}": received "${t.stability}".`);if("string"!=typeof t.description||!t.description.trim())throw new Error(`Invalid description for "${e}": expected a non-empty string.`)},validateTopicRegistry=(e,t=Object.values(X))=>{if(!e||"object"!=typeof e||Array.isArray(e))throw new Error("Invalid topic registry: expected an object.");for(const n of t)if(!Object.prototype.hasOwnProperty.call(e,n))throw new Error(`Missing registry entry for "${n}".`);for(const n of Object.keys(e)){if(!t.includes(n))throw new Error(`Unexpected registry entry for "${n}".`);validateRegistryEntry(n,e[n])}return!0},ga=Object.freeze({[X.RUNTIME_STARTED]:eventStreamTopic("Runtime startup completed."),[X.RUNTIME_STOPPED]:eventStreamTopic("Runtime shutdown completed."),[X.RAW_GMCP]:eventStreamTopic("Raw GMCP payload observed at the adapter boundary."),[X.SYSTEM_VITALS_CHANGED]:eventStreamTopic("Character vitals changed."),[X.SYSTEM_HEALTH_CHANGED]:eventStreamTopic("Health changed."),[X.SYSTEM_MANA_CHANGED]:eventStreamTopic("Mana changed."),[X.SYSTEM_RAGE_CHANGED]:eventStreamTopic("Rage changed."),[X.SYSTEM_BLEED_CHANGED]:eventStreamTopic("Bleed changed."),[X.SYSTEM_STATUS_CHANGED]:eventStreamTopic("Character status snapshot changed."),[X.SYSTEM_CLASS_CHANGED]:eventStreamTopic("Character class changed."),[X.SYSTEM_TARGET_CHANGED]:eventStreamTopic("Current target changed."),[X.SYSTEM_ROOM_CHANGED]:eventStreamTopic("Current room changed."),[X.SYSTEM_ROOM_ITEMS_CHANGED]:eventStreamTopic("Visible room items changed."),[X.SYSTEM_RUNTIME_CHANGED]:jsTopic("Runtime implementation state changed."),[X.SYSTEM_PAUSE_CHANGED]:eventStreamTopic("Runtime pause state changed."),[X.SYSTEM_PAUSED]:eventStreamTopic("Runtime paused."),[X.SYSTEM_UNPAUSED]:eventStreamTopic("Runtime unpaused."),[X.SYSTEM_LOADED]:eventStreamTopic("Startup game-state initialization completed."),[X.SYSTEM_SETTINGS_CHANGED]:jsTopic("Runtime settings changed."),[X.SYSTEM_BASELINE_CHANGED]:jsTopic("Baseline intent changed."),[X.SYSTEM_DEATH_DETECTED]:eventStreamTopic("Death was detected from character state."),[X.SYSTEM_MOUNT_CHANGED]:eventStreamTopic("Mounted state changed."),[X.SYSTEM_WIELDED_CHANGED]:eventStreamTopic("Wielded equipment changed."),[X.UI_CONFIG_CHANGED]:jsTopic("Configuration dialog open state changed."),[X.AFF_GOT]:scopedEventStreamTopic("Affliction became active.","name"),[X.AFF_LOST]:scopedEventStreamTopic("Affliction was cured or removed.","name"),[X.AFF_STACK_CHANGED]:scopedEventStreamTopic("Affliction stack count changed.","name"),[X.AFF_PRIORITY_CHANGED]:jsTopic("Affliction priority changed."),[X.DEF_GOT]:scopedEventStreamTopic("Defence became active.","id"),[X.DEF_LOST]:scopedEventStreamTopic("Defence expired or was removed.","id"),[X.DEF_PRIORITY_CHANGED]:jsTopic("Defence priority changed."),[X.BALANCE_GOT]:scopedEventStreamTopic("Balance became available.","id"),[X.BALANCE_LOST]:scopedEventStreamTopic("Balance was consumed or lost.","id"),[X.BALANCE_RESET]:scopedEventStreamTopic("Balance timing was reset.","id"),[X.BALANCE_DURATION_OBSERVED]:scopedEventStreamTopic("Observed balance recovery duration changed.","id"),[X.BALANCE_TIMER_RESTARTED]:jsTopic("Balance loss timer was restarted without a state flip."),[X.EQBAL_GOT]:eventStreamTopic("Balance and equilibrium are both available."),[X.LIMB_HIT]:scopedEventStreamTopic("Limb damage was recorded.","limb"),[X.LIMB_RESET]:scopedEventStreamTopic("Limb tracking was reset.","limb"),[X.LIMB_STAGE_CHANGED]:scopedEventStreamTopic("Limb damage stage changed.","limb"),[X.LIMB_DECAY]:jsTopic("Limb damage counter reset after 3 minutes of no hits."),[X.CACHE_AMOUNT_CHANGED]:eventStreamTopic("Cached item counts changed."),[X.CACHE_INVENTORY_LIST]:eventStreamTopic("Inventory cache snapshot applied."),[X.CACHE_RIFT_LIST]:eventStreamTopic("Rift cache snapshot applied."),[X.CACHE_PRECACHE_CHANGED]:jsTopic("Desired precache state changed."),[X.ITEM_ROOM_ADDED]:eventStreamTopic("An item appeared in the current room."),[X.ITEM_ROOM_REMOVED]:eventStreamTopic("An item left the current room."),[X.ITEM_ROOM_UPDATED]:eventStreamTopic("A current-room item changed."),[X.ITEM_ROOM_LIST]:eventStreamTopic("Current-room item list snapshot received."),[X.ITEM_INV_ADDED]:eventStreamTopic("An item was added to inventory."),[X.ITEM_INV_REMOVED]:eventStreamTopic("An item was removed from inventory."),[X.ITEM_INV_UPDATED]:eventStreamTopic("An inventory item changed."),[X.ITEM_INV_LIST]:eventStreamTopic("Inventory item list snapshot received."),[X.QUEUE_UPDATED]:jsTopic("Queue contents changed."),[X.QUEUE_FLUSHED]:jsTopic("Queue flush decision completed."),[X.QUEUE_DEFERRED]:jsTopic("Queue execution was deferred."),[X.QUEUE_CLEARED]:jsTopic("Queue contents were cleared."),[X.QUEUE_SENT]:scopedEventStreamTopic("A queue submission was accepted by the server.","queueName"),[X.QUEUE_FIRED]:scopedEventStreamTopic("A queue fire was acknowledged for a named queue.","queueName"),[X.QUEUE_FIRED_ACK]:eventStreamTopic("Queue fire acknowledgement was recorded."),[X.SERVERSIDE_AFF_PRIORITY_SET]:scopedEventStreamTopic("Live serverside affliction priority confirmation was observed.","id"),[X.SERVERSIDE_DEF_PRIORITY_SET]:scopedEventStreamTopic("Live serverside defence priority confirmation was observed.","id"),[X.SERVERSIDE_DIRTY]:jsTopic("Serverside reconciliation dirty flag changed."),[X.SERVERSIDE_EVALUATED]:jsTopic("Serverside evaluation completed."),[X.SERVERSIDE_RULE_CHANGED]:jsTopic("Legacy generic serverside rule-change signal reserved for compatibility."),[X.RULE_ADDED]:jsTopic("Serverside rule was added to the registry."),[X.RULE_REMOVED]:jsTopic("Serverside rule was removed from the registry."),[X.RULE_ENABLED]:jsTopic("Serverside rule was enabled."),[X.RULE_DISABLED]:jsTopic("Serverside rule was disabled."),[X.RULE_PACK_LOADED]:jsTopic("Serverside rule pack was loaded."),[X.RULE_PACK_UNLOADED]:jsTopic("Serverside rule pack was unloaded."),[X.RULE_ORDER_CHANGED]:jsTopic("Serverside rule evaluation order changed."),[X.RULE_ACTIVATED]:scopedEventStreamTopic("Serverside rule became active.","id"),[X.RULE_DEACTIVATED]:scopedEventStreamTopic("Serverside rule stopped being active.","id")});validateTopicRegistry(ga);var buildExactTopicSet=e=>new Set(Object.keys(e||{})),buildScopedBaseMap=e=>{const t=new Map;return Object.entries(e||{}).forEach(([e,n])=>{null!=n?.scopedAudience&&t.set(e,n.scopedAudience)}),t},createEventStreamPublisher=({adapter:e,registry:t,globallyEnabled:n,rawGmcpEnabled:a})=>{const o=buildExactTopicSet(t),i=buildScopedBaseMap(t),resolveAudience=e=>{const n=String(e||"").trim();if(!n)return null;if(o.has(n))return t[n].audience;const a=n.lastIndexOf(".");if(a<0)return null;const s=n.slice(0,a);return i.get(s)??null},isAllowed=(e,t)=>!!n&&(t===ca.EVENTSTREAM&&!(e===X.RAW_GMCP&&!a)),evaluate=(t,n)=>{const a=String(t||"").trim();return!!isAllowed(a,resolveAudience(a))&&("function"==typeof e?.raiseToEventStream&&e.raiseToEventStream(a,n))};return{attach:e=>e&&"function"==typeof e.onAny?e.onAny((e,t)=>{evaluate(t,e)}):()=>{},evaluate,resolveAudience,debugInfo:()=>({globallyEnabled:Boolean(n),rawGmcpEnabled:Boolean(a),exactTopicCount:o.size,scopedBaseCount:i.size})}},normalizeScopedTopicSegment=e=>{const t=String(e||"").trim().toLowerCase();return t?t.replace(/\s+/g,"_").replace(/[^a-z0-9._-]/g,""):""},normalizePublishedPayload=(e={})=>e&&"object"==typeof e&&!Array.isArray(e)?e:{value:e},normalizeMessage=(e,t={},n)=>{const a=normalizePublishedPayload(t);return{...a,topic:e,at:a.at??n()}},createRuntimeEventPorts=({adapter:e,internalEvents:t,publicEvents:n,now:a})=>{const publishPublic=(e,t={})=>{const o=normalizeMessage(e,t,a);return n.emit(e,o),o},publishPublicScoped=(e,t={},n)=>{const a=publishPublic(e,t),o=normalizeScopedTopicSegment(n);return o?(publishPublic(`${e}.${o}`,a),a):a};return{publishPublic,publishPublicScoped,publishInternal:(e,n={})=>{const o=normalizeMessage(e,n,a);return t.emit(e,o),o},publishAdapterLocal:(t,n={})=>("function"==typeof e?.emitLocal&&e.emitLocal(t,n),n)}},createRuntimeEngine=({adapter:e,seedData:t,options:n={}})=>{const a=resolveAdapterCapabilities(e),{now:o,commandDispatcher:i,systemModel:s,affModel:l,balanceModel:c,defModel:u,cacheModel:d,limbModel:p,persistence:m,queueController:g,serverside:h,combatService:b,noticeCenter:y,defensePlanner:v,precachePlanner:S,outputPlanner:x,outputCycle:w}=createRuntimeDependencies({adapter:e,seedData:t,options:n}),C=createGmcpBlockBuffer({coalesce:!1!==n.coalesceGmcp}),k=createEventBus({label:"nexSys4.internal"}),E=createEventBus({label:"nexSys4.public"}),P=createPromptPresenter({publicEvents:E,affModel:l,defModel:u,balanceModel:c,systemModel:s,renderPrompt:(t,n={})=>a.promptRender?e.renderPrompt(t,n):t}),T=createEventStreamPublisher({adapter:e,registry:ga,globallyEnabled:!1!==n.publishToEventStream,rawGmcpEnabled:!0===n.publishRawGmcp}),R=createRuntimeEventPorts({adapter:e,internalEvents:k,publicEvents:E,now:o});T.attach(E);const setRuntimePhase=(e,t={})=>s.setRuntime({phase:e,...t}),syncDebugMode=()=>{const t=Boolean(s.getSettings().debug);return a.debugToggle&&e.setDebugEnabled(t),k.setDebugEnabled?.(t),E.setDebugEnabled?.(t),t},M=R.publishPublic,D=R.publishPublicScoped,O=R.publishAdapterLocal,publishStartupPhase=e=>O("StartupPhaseEvent",{phase:e}),$=createStartupCoordinator({adapter:e,systemModel:s,serverside:h,persistence:m,seedBaselineFromObservedStartup:()=>B.seedBaselineFromObservedStartup(),noticeCenter:y,buildPersistenceSnapshot:()=>B.buildPersistenceSnapshot(),startupTimeoutMs:n.startupTimeoutMs,maxStartupRetries:n.maxStartupRetries,publishStartupPhase,setRuntimePhase}),I=createGmcpApplier({emit:(e,t)=>k.emit(e,t)}),N=createItemTopicNotifier({publishPublic:M}),queueTranslatedGmcp=e=>{I.translate(e).forEach(e=>{N.notify(e),C.enqueue(e)})},hydrateCacheFromAdapterGmcp=()=>{if(!a.gmcpSnapshot)return!1;const t=e.getGMCP();return!(!t||"object"!=typeof t)&&(d.hydrateFromGmcp?.(t)??!1)},L=createRuntimeFlushCoordinator({adapter:e,systemModel:s,serverside:h,outputCycle:w,flushGmcpBuffer:()=>{C.flush().forEach(({topic:e,payload:t})=>{k.emit(e,t)}),d.completeObservationBlock?.({source:"runtime-flush"})}}),j=createRuntimeControlApi({systemModel:s,serverside:h,queueController:g,noticeCenter:y,dispatchCommands:i.sendCommands,markDirty:L.markDirty,onResume:e=>{L.isFlushing()||L.flushCycle(e)}}),B=createRuntimePersistenceApi({persistence:m,systemModel:s,affModel:l,defModel:u,cacheModel:d,serverside:h,syncDebugMode,markDirty:L.markDirty}),F=createRuntimeEventWiring({adapter:e,internalEvents:k}),q=createRuntimeStartupOrchestrator({adapter:e,systemModel:s,persistenceApi:B,startup:$,noticeCenter:y,syncDebugMode,isStarted:L.isStarted,markStarted:L.start,setRuntimePhase,publishStartupPhase,attachEventWiring:()=>{F.attach({options:n,queueTranslatedGmcp,publishPublic:M,publishPublicScoped:D,noticeCenter:y,syncDebugMode,systemModel:s,affModel:l,defModel:u,balanceModel:c,cacheModel:d,limbModel:p,queueController:g,serverside:h,markDirty:L.markDirty,invalidateOutput:L.invalidateOutput,flushCycle:L.flushCycle,outputCycle:w,startup:$,runtimeControl:j,savePersistence:B.savePersistence})},promptPresenter:P,publishRuntimeStarted:()=>M(X.RUNTIME_STARTED,{source:"runtime-start"}),hydrateCacheFromAdapterGmcp,runtimeControl:j,commandDispatcher:i}),stop=()=>{q.dispose(),L.isStarted()&&(M(X.RUNTIME_STOPPED,{source:"runtime-stop"}),L.stop(),$.dispose?.(),w.dispose?.(),F.dispose(),setRuntimePhase(J.IDLE,{paused:!0,startupFailureMessage:""}),P.stop(),l.dispose?.(),c.dispose?.(),p.dispose(),k.clear(),E.clear(),T.attach(E),a.destroy&&e.destroy())};let U=null;const snapshot=()=>{const e=s.snapshot(),t=l.snapshot(),n=c.snapshot(),a=u.snapshot(),o=d.snapshot(),i=p.snapshot(),m=g.snapshot(),b=h.snapshot();return U&&U.system===e&&U.affs===t&&U.balances===n&&U.defs===a&&U.cache===o&&U.limbs===i&&U.queues===m&&U.serverside===b||(U={system:e,affs:t,balances:n,defs:a,cache:o,limbs:i,queues:m,serverside:b}),U};return{start:q.start,stop,flushCycle:L.flushCycle,savePersistence:B.savePersistence,setPaused:j.setPaused,setSlowMode:j.setSlowMode,setConfigOpen:(e,t="runtime-ui")=>M(X.UI_CONFIG_CHANGED,{open:Boolean(e),source:t}),get paused(){return s.getRuntime().paused},snapshot,adapter:e,models:{systemModel:s,affModel:l,balanceModel:c,defModel:u,cacheModel:d,limbModel:p},services:{combat:b},planners:{defensePlanner:v,precachePlanner:S,outputPlanner:x,outputCycle:w},queueController:g,serverside:h,noticeCenter:y,persistence:m,commandDispatcher:i,promptPresenter:P,topics:X,onEvent:(e,t)=>E.on(e,t),offEvent:(e,t)=>E.off(e,t),markDirty:L.markDirty,ingestGmcp(e,t){queueTranslatedGmcp({tag:e,payload:t}),!0===n.publishRawGmcp&&M(X.RAW_GMCP,{source:"manual-gmcp",tag:String(e||"").trim().toLowerCase(),payload:t}),L.markDirty(`manual-gmcp:${e}`)},evaluateNow:(e="manual")=>L.flushCycle(e),addOutputCommands(e=[]){w.injectCommands(Array.isArray(e)?e:[e]),L.markDirty("manual-output-inject")},dispatchCommands:i.sendCommands,debugInfo:()=>({adapter:e.debugInfo?.()??null,internalEvents:k.debugInfo?.()??null,publicEvents:E.debugInfo?.()??null,eventStreamPublisher:T.debugInfo?.()??null})}},toArray=e=>Array.isArray(e)?e:[e],normalizeQueueKey=e=>String(e||"").trim(),createPublicCommandApi=({runtime:e})=>{const t=e.queueController,n=t.listQueues().map(e=>({queueId:e,meta:t.getQueue(e)||{}})),a=new Map,o=new Map,resolveQueueId=e=>{const t=normalizeQueueKey(e);return o.get(t)||t},getQueueHandle=e=>{const t=resolveQueueId(e);return a.get(t)||null},inspectQueue=e=>t.getQueue(resolveQueueId(e)),addQueue=(e,n,a)=>t.add(resolveQueueId(e),n,a),prependQueue=(e,n,a)=>t.prepend(resolveQueueId(e),n,a),clearLocalQueue=e=>t.clear(resolveQueueId(e)),clearGameQueue=e=>t.clearQueue(resolveQueueId(e)),flushQueue=(e,n)=>t.flush(resolveQueueId(e),n),isQueued=(e,t)=>{if(!t)return!1;const n=inspectQueue(e);return!!n&&(n.items.includes(t)||n.prepend.includes(t))};n.forEach(({queueId:e,meta:t})=>{a.set(e,{get id(){return e},get queueId(){return e},get name(){return inspectQueue(e)?.name||t.name||""},get type(){return inspectQueue(e)?.type||t.type||""},get exclusions(){return inspectQueue(e)?.exclusions||t.exclusions||[]},inspect:()=>inspectQueue(e),state:()=>inspectQueue(e),add:(t,n)=>addQueue(e,t,n),prepend:(t,n)=>prependQueue(e,t,n),clear:()=>clearLocalQueue(e),clearQueue:()=>clearGameQueue(e),flush:t=>flushQueue(e,t),isQueued:t=>isQueued(e,t)}),o.set(e,e),t.name&&o.set(t.name,e)});const i={controller:t,listQueues:()=>t.listQueues(),inspect:e=>inspectQueue(e),get:e=>getQueueHandle(e),add:(e,t,n)=>addQueue(e,t,n),prepend:(e,t,n)=>prependQueue(e,t,n),clear:e=>clearLocalQueue(e),clearQueue:e=>clearGameQueue(e),flush:(e,t)=>flushQueue(e,t),flushAll:()=>t.flushAll(),isQueued:(e,t)=>isQueued(e,t)},s={listQueues:()=>i.listQueues(),inspect:e=>i.inspect(e),get:e=>i.get(e)},l={};return n.forEach(({queueId:e,meta:t})=>{const n=a.get(e);n&&(l[e]=n,s[e]=n,t.name&&(s[t.name]=n))}),{queue:i,queues:s,...l,sendCmd:(t,n={})=>e.dispatchCommands([t],{source:"public-api",...n}),setTarget(t){const n=String(t??"").trim();if(!n)return{target:"",dispatched:!1,dispatchResult:null};const a=e.dispatchCommands(["settarget "+n],{source:"set-target"});return{target:n,dispatched:Boolean(a),dispatchResult:a}},sendInline:(t=[],n={})=>e.dispatchCommands(toArray(t),{source:"public-api-inline",...n}),addOutput(t=[]){e.addOutputCommands(toArray(t))},evaluateNow:(t="public-api")=>e.evaluateNow(t)}},updateNxs=()=>{const e=new AbortController,t=setTimeout(()=>e.abort(),1e4);return fetch("https://unpkg.com/nexsys/nexSys4.nxs",{cache:"no-store",signal:e.signal}).then(e=>{if(!e.ok)throw new Error(`nexSys4 update failed: ${e.status} ${e.statusText}`);return e.json()}).then(e=>{const t=globalThis.nexusclient,n=t?.packages?.().get("nexSys4");if(!n?.apply)throw new Error("nexSys4 package is not installed in Nexus.");return n.apply(e,t?.reflexes?.()),(n.items||[]).filter(e=>"group"===e.type).forEach(e=>{e.enabled=!0}),e}).catch(e=>{const t="AbortError"===e.name?"nexSys4 update timed out. Check your connection.":`nexSys4 update error: ${e.message}`;return console.error(t),globalThis.nexusclient?.display?.(t),null}).finally(()=>clearTimeout(t))},createPublicControlApi=({runtime:e,getModels:t})=>{const applySettings=(n={})=>(t().systemModel.setSettings(n,{setBaseline:!0}),e.savePersistence());return{pause:()=>e.setPaused(!0),unpause:()=>e.setPaused(!1),pauseToggle:()=>e.setPaused(!e.paused),setSlowMode:t=>e.setSlowMode(t),slowOn:()=>e.setSlowMode(!0),slowOff:()=>e.setSlowMode(!1),applySettings,setDebug:e=>applySettings({debug:Boolean(e)}),debugOn:()=>applySettings({debug:!0}),debugOff:()=>applySettings({debug:!1}),debug:()=>({runtime:e.snapshot(),internals:e.debugInfo?.()??null}),start:e.start,stop:e.stop,updateNxs}},resolveAudienceFor=(e,t)=>{const n=String(e||"").trim();if(!n)return null;if(Object.prototype.hasOwnProperty.call(t,n))return t[n].audience;const a=n.lastIndexOf(".");return a<0?null:t[n.slice(0,a)]?.scopedAudience??null},isPublicAudience=e=>e===ca.JS||e===ca.EVENTSTREAM,defaultIsDevMode=()=>{try{const e=globalThis.process?.env?.NODE_ENV;return!!e&&"production"!==e}catch{return!1}},defaultWarn=e=>{console.warn(e)},createPublicEventApi=({runtime:e,registry:t=ga,isDevMode:n=defaultIsDevMode,warn:a=defaultWarn})=>{const o={on(o,i){const s=String(o||"").trim();return s&&"function"==typeof i?isPublicAudience(resolveAudienceFor(s,t))?e.onEvent(s,i):(n()&&a(`[nexSys4] topic "${s}" is not a public topic`),()=>{}):()=>{}},off(t,n){const a=String(t||"").trim();return!!a&&e.offEvent(a,n)}};return{events:o,on:o.on,off:o.off}},createPublicMutationApi=({runtime:e,getModels:t})=>{const n=e.services.combat,normalizeServersidePriority=e=>{const t=Number(e);return Number.isFinite(t)?t<0?0:t>26?26:t:0},samePriorityMaps=(e={},t={})=>{const n=new Set([...Object.keys(e||{}),...Object.keys(t||{})]);for(const a of n)if(normalizeServersidePriority(e?.[a])!==normalizeServersidePriority(t?.[a]))return!1;return!0},resetPriorities=(e=[],t,n="public-api")=>{let a=!1;return e.forEach(e=>{t(e,n)&&(a=!0)}),a},buildAffPriorityTarget=e=>{const t=e.list().reduce((t,n)=>(t[n]=normalizeServersidePriority(e.getPriority?.(n)),t),{});return e.getCountablePriorityNames?.().forEach(e=>{t[e]=0}),t},buildDefPriorityTarget=(e,t)=>{const n=t.snapshot?.().char?.class||"";return e.list().reduce((t,a)=>{const o=e.get(a);return!o?.serverside||o.static?t:"function"!=typeof e.isAvailableForClass||e.isAvailableForClass(a,n)?(t[a]=normalizeServersidePriority(e.getPriority?.(a)),t):t},{})},restorePersistedPriorities=({restoreAffs:n=!1,restoreDefs:a=!1,reason:o})=>{const{affModel:i,defModel:s,systemModel:l}=t();let c=!1;n&&(c=resetPriorities(i.list(),(e,t)=>i.resetPriority(e,t))||c),a&&(c=resetPriorities(s.list(),(e,t)=>s.resetPriority(e,t))||c);const u=e.serverside.snapshot?.(),d=n?buildAffPriorityTarget(i):null,p=a?buildDefPriorityTarget(s,l):null,m=Boolean(u&&(n&&!samePriorityMaps(u.sessionBaseline?.affPriorities,d)||a&&!samePriorityMaps(u.sessionBaseline?.defPriorities,p)));return!(!c&&!m)&&(refreshServersideBaseline(),e.markDirty(o),!0)},refreshServersideBaseline=()=>{e.serverside.setBaselineFromRuntime?.()},applyMutation=(t,n)=>!!t&&(refreshServersideBaseline(),e.markDirty(n),!0),applyDirtyOnly=(t,n)=>!!t&&(e.markDirty(n),!0);return{updateAffPriority:(e,n)=>applyMutation(t().affModel.setPriority(e,n,"public-api"),"api-aff-priority"),updateAffDefault:(e,n)=>applyMutation(t().affModel.setDefaultPriority(e,n,"public-api"),"api-aff-default"),resetAffPriority:e=>applyMutation(t().affModel.resetPriority(e,"public-api"),"api-aff-priority-reset"),resetAllAffPriorities:()=>restorePersistedPriorities({restoreAffs:!0,reason:"api-aff-priority-reset-all"}),updateDefPriority:(e,n)=>applyMutation(t().defModel.setPriority(e,n,"public-api"),"api-def-priority"),updateDefDefault:(e,n)=>applyMutation(t().defModel.setDefaultPriority(e,n,"public-api"),"api-def-default"),updateDefStatic:(e,n)=>applyMutation(t().defModel.setStatic(e,n,"public-api"),"api-def-static"),updateDefCommand:(e,n)=>applyMutation(t().defModel.setCommand(e,n,"public-api"),"api-def-command"),resetDefPriority:e=>applyMutation(t().defModel.resetPriority(e,"public-api"),"api-def-priority-reset"),resetAllDefPriorities:()=>restorePersistedPriorities({restoreDefs:!0,reason:"api-def-priority-reset-all"}),resetAllPriorities:()=>restorePersistedPriorities({restoreAffs:!0,restoreDefs:!0,reason:"api-priority-reset-all"}),defup(){const n=t().defModel,a={};let o=!1;for(const e of n.list()){const t=n.get(e);if(!t||t.have)continue;n.resetPriority(e,"defup")&&(o=!0);const i=n.get(e),s=normalizeServersidePriority(n.getPriority(e));i?.static&&s>=1&&s<=25&&(a[e]=s)}const i=e.serverside.requestStaticDefPriorities?.(a)??!1;return(o||i)&&(refreshServersideBaseline(),e.markDirty("api-defup")),o||i},defoff(){const n=t().defModel;let a=!1;for(const e of n.list()){const t=n.get(e);t&&!t.have&&(n.setPriority(e,0,"defoff")&&(a=!0))}const o=e.serverside.clearStaticDefPriorities?.()??!1;return(a||o)&&(refreshServersideBaseline(),e.markDirty("api-defoff")),a||o},setPrecache:(n={})=>(t().cacheModel.setDesiredPrecache(n),e.markDirty("api-precache"),e.savePersistence()),prioAff:t=>applyDirtyOnly(e.serverside.setPrioAff(t),"api-prioaff"),clearPrioAff:()=>applyDirtyOnly(e.serverside.clearPrioAff(),"api-prioaff-clear"),parry(t){n.parry(t),refreshServersideBaseline(),e.markDirty("api-parry")}}},ha="public-observe",freezeHandles=(e=[],t)=>Object.freeze(e.reduce((e,n)=>(e[n]=Object.freeze(t(n)),e),{})),getObserveSource=(e={})=>String(e?.source||ha),getObserveAt=(e={})=>e?.atMs??e?.at,getAffSnapshotState=(e,t)=>({have:e.haveAff(t),count:e.get(t)?.count??0}),didAffStateChange=(e,t)=>e.have!==t.have||e.count!==t.count,createPublicObserveApi=({runtime:e,getModels:t})=>{const n=t(),a=n.affModel,o=n.defModel,i=n.balanceModel,s=n.limbModel,l=n.systemModel,c=e.services.combat,u=freezeHandles(a.list?.()||[],t=>({got(n={}){const o=getAffSnapshotState(a,t);return a.got(t,{...n,source:getObserveSource(n)}),!!didAffStateChange(o,getAffSnapshotState(a,t))&&("function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"affliction"):s?.applyAfflictionTransition?.(t,!0),e.markDirty(`api-observe-aff-got:${t}`),!0)},lost(n={}){const o=getAffSnapshotState(a,t);return a.lose(t,{...n,source:getObserveSource(n)}),!!didAffStateChange(o,getAffSnapshotState(a,t))&&("function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"affliction"):s?.applyAfflictionTransition?.(t,!1),e.markDirty(`api-observe-aff-lost:${t}`),!0)}})),d=freezeHandles(o.list?.()||[],t=>({got:(n={})=>!!o.setHave(t,!0,getObserveSource(n),getObserveAt(n))&&(e.markDirty(`api-observe-def-got:${t}`),!0),lost:(n={})=>!!o.setHave(t,!1,getObserveSource(n),getObserveAt(n))&&(e.markDirty(`api-observe-def-lost:${t}`),!0)})),p=freezeHandles(i.list?.()||[],t=>{const observeServerUse=(n,a={})=>{const o=i.observeServerUse(t,n,{...a,source:getObserveSource({...a,source:a.source||"server-duration-observe"})});return o&&e.markDirty(`api-observe-balance-used:${t}`),o};return{got(n={}){const a=i.gain(t,getObserveSource(n),getObserveAt(n));return a&&e.markDirty(`api-observe-balance-got:${t}`),a},lost(n={}){const a=i.lose(t,getObserveSource(n),getObserveAt(n));return a&&e.markDirty(`api-observe-balance-lost:${t}`),a},used:observeServerUse,serverUsed:observeServerUse,observeServerUse}}),createObservedLimbHit=(e,t={},n)=>c.observeLimbHit({limb:e,amount:n,source:getObserveSource(t),at:getObserveAt(t)}),createObservedLimbReset=(e,t={})=>c.observeLimbReset({limb:e,source:getObserveSource(t),at:getObserveAt(t)}),createObservedLimbStage=(e,t,n={})=>c.observeLimbStage({limb:e,stage:t,source:getObserveSource(n),at:getObserveAt(n)}),m=freezeHandles(s?.list?.()||[],t=>({hit(n,a={}){const o=createObservedLimbHit(t,a,n);return o.changed&&"torso"===o.limb&&o.stageChanged&&e.markDirty(`api-observe-limb-torso:${o.after?.stage||"unknown"}`),o.changed},reset(n={}){const a=createObservedLimbReset(t,n);return a.changed&&"torso"===a.limb&&e.markDirty("api-observe-limb-torso:healthy"),a.changed},setStage(n,a={}){const o=createObservedLimbStage(t,n,a);return o.changed&&"torso"===o.limb&&o.stageChanged&&e.markDirty(`api-observe-limb-torso:${o.after?.stage||"unknown"}`),o.changed}})),markObservedLimbResult=t=>(t.changed&&"torso"===t.limb&&t.stageChanged?e.markDirty(`api-observe-limb-torso:${t.after?.stage||"unknown"}`):t.changed&&"torso"===t.limb&&"healthy"===t.after?.stage?e.markDirty("api-observe-limb-torso:healthy"):t.changed&&e.markDirty(`api-observe-limb:${t.limb}`),t.changed),g=Object.freeze({...m,get(e){if(!e)return null;const t=s?.get?.(e);return t?.id&&m[t.id]||null},list:()=>Object.keys(m),hit:(e,t,n={})=>markObservedLimbResult(createObservedLimbHit(e,n,t)),reset:(e,t={})=>markObservedLimbResult(createObservedLimbReset(e,t)),setStage:(e,t,n={})=>markObservedLimbResult(createObservedLimbStage(e,t,n))}),h=Object.freeze({set(t={}){const n=l.updateMount({name:String(t.name||""),id:t.id??null});return n&&e.markDirty("api-observe-mount-set"),n},clear(){const t=l.updateMount(null);return t&&e.markDirty("api-observe-mount-clear"),t}});return{observe:Object.freeze({affs:u,defs:d,balances:p,limbs:g,mount:h})}},createPublicPromptApi=({runtime:e,control:t})=>{const n=e?.promptPresenter;if(!n)return{prompt:null};const getSystemModel=()=>e?.models?.systemModel;let a=null;return a={colorGradation:n.colorGradation,colorPercentage:n.colorPercentage,render:e=>n.render(e),getCustomPrompt:()=>n.render({source:"legacy-getCustomPrompt"}),markAffsDirty:()=>n.markAffsDirty(),markPromptDirty:()=>n.markPromptDirty?.(),patchVars:(e={})=>(n.patchVars?.(e),a),patchAffs:(e={})=>(n.patchAffs?.(e),a),patchCureColors:(e={})=>(n.patchCureColors?.(e),a),applyPreset:e=>"function"==typeof e?(e(a),n.markPromptDirty?.(),a):(!e||"object"!=typeof e||Array.isArray(e)||("cureColors"in e&&a.patchCureColors(e.cureColors),"affs"in e&&a.patchAffs(e.affs),"vars"in e&&a.patchVars(e.vars),"compose"in e&&(a.compose=e.compose),"enabled"in e&&(a.enabled=e.enabled)),a),get vars(){return n.vars},get affs(){return n.affs},get cureColors(){return n.cureColors},get compose(){return n.compose},set compose(e){n.compose=e},get enabled(){const e=getSystemModel()?.snapshot?.().settings||{};return Boolean(e.customPrompt)},set enabled(e){t?.applySettings?.({customPrompt:Boolean(e)})}},{prompt:a}},createPublicLineApi=({lineUtils:e={}})=>({replace:e.replace,replaceHTML:e.replaceHTML,replaceWord:e.replaceWord,replaceWordHTML:e.replaceWordHTML,nextLine:e.nextLine,checkLine:e.checkLine,prevLine:e.prevLine,prependNotice:e.prependNotice,say:e.say}),normalizeScopedSegment=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9._-]/g,""),createPublicRulesApi=({runtime:e})=>({add:(t,n)=>e.serverside.lifecycle.add(t,n),remove:t=>e.serverside.lifecycle.remove(t),enable:t=>e.serverside.lifecycle.enable(t),disable:t=>e.serverside.lifecycle.disable(t),load:(t,n)=>e.serverside.lifecycle.load(t,n),unload:t=>e.serverside.lifecycle.unload(t),reorder:t=>e.serverside.lifecycle.reorder(t),list:()=>e.serverside.lifecycle.list(),bindTransition(t,n={}){const a=normalizeScopedSegment(t);if(!a)return()=>{};const o=e.topics||{},i=[];return"function"==typeof n.onActivate&&i.push(e.onEvent(`${o.RULE_ACTIVATED||"nexsys4.rule.activated"}.${a}`,n.onActivate)),"function"==typeof n.onDeactivate&&i.push(e.onEvent(`${o.RULE_DEACTIVATED||"nexsys4.rule.deactivated"}.${a}`,n.onDeactivate)),()=>{i.forEach(e=>e?.())}}}),createPublicServersideApi=({runtime:e})=>({predictions:{add:t=>e.serverside.addPrediction(t),remove:t=>e.serverside.removePrediction(t)},ssQueue:{add:t=>e.serverside.manualQueueAdd(t),insert:(t,n)=>e.serverside.manualQueueInsert(t,n),remove:t=>e.serverside.manualQueueRemove(t),reset:()=>e.serverside.manualQueueReset()},ss:{syncSnapshots:()=>e.serverside.requestSnapshotSync(),startupStatus:()=>e.serverside.getStartupStatus()},curingSets:{list:()=>e.serverside.listCuringSets(),create:t=>e.serverside.createCuringSet(t),switch:t=>e.serverside.switchCuringSet(t),clone:t=>e.serverside.cloneCuringSet(t),rename:(t,n)=>e.serverside.renameCuringSet(t,n),remove:t=>e.serverside.deleteCuringSet(t)},restoreWorkingFromDefault:()=>e.serverside.restoreWorkingFromDefault()}),createPublicStateApi=({runtime:e,getModels:t})=>{const{systemModel:n,affModel:a,defModel:o,balanceModel:i,limbModel:s}=t();return{snapshot:e.snapshot,getTarget:()=>n.snapshot().target,topics:e.topics,haveAff:e=>a.haveAff(e),affElapsedMs:e=>a.elapsedMs(e),affElapsedSeconds:e=>a.elapsedSeconds(e),affRemainingMs:e=>a.remainingMs(e),affRemainingSeconds:e=>a.remainingSeconds(e),affTiming:e=>a.timing(e),haveAffs:e=>a.haveAffs(toArray(e)),haveAnAff:e=>a.haveAnAff(toArray(e)),haveDef:e=>o.haveDef(e),haveDefs:e=>toArray(e).every(e=>o.haveDef(e)),haveAnyDef:e=>toArray(e).some(e=>o.haveDef(e)),haveBal:e=>i.have(e),haveBals:e=>toArray(e).every(e=>i.have(e)),haveAnyBal:e=>toArray(e).some(e=>i.have(e)),balElapsedMs:e=>i.elapsedMs(e),balElapsedSeconds:e=>i.elapsedSeconds(e),balRemainingMs:e=>i.remainingMs(e),balRemainingSeconds:e=>i.remainingSeconds(e),balTiming:e=>i.timing(e),getLimb:e=>s?.get?.(e)||null,listLimbs:()=>s?.list?.()||[],getClass:()=>n.getClass(),checkClass:e=>n.checkClass(e),isClass:e=>n.isClass(e),isTarget:e=>n.isTarget(e)}},isRecord=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),cloneAndFreezeCells=(e={})=>{const t={};for(const[n,a]of Object.entries(e))t[n]=isRecord(a)?Object.freeze({...a}):a;return Object.freeze(t)},buildPromptSnapshot=e=>e?Object.freeze({vars:cloneAndFreezeCells(e.vars),affs:cloneAndFreezeCells(e.affs),cureColors:cloneAndFreezeCells(e.cureColors)}):null,createPublicApi=({runtime:e,lineUtils:t={}})=>{const getModels=()=>e.models,n=createPublicStateApi({runtime:e,getModels}),a=createPublicEventApi({runtime:e}),o=createPublicControlApi({runtime:e,getModels}),i=createPublicCommandApi({runtime:e}),s=createPublicMutationApi({runtime:e,getModels}),l=createPublicObserveApi({runtime:e,getModels}),c=createPublicRulesApi({runtime:e}),u=createPublicServersideApi({runtime:e}),d=createPublicPromptApi({runtime:e,control:o}),p=createPublicLineApi({lineUtils:t}),{systemModel:m,affModel:g,defModel:h,balanceModel:b,limbModel:y,cacheModel:v}=getModels(),S=Object.freeze(Object.create(null,{system:{enumerable:!0,get:()=>m.snapshot()},target:{enumerable:!0,get:()=>m.snapshot().target},class:{enumerable:!0,get:()=>m.snapshot().char.class},affs:{enumerable:!0,get:()=>g.snapshot()},defs:{enumerable:!0,get:()=>h.snapshot()},balances:{enumerable:!0,get:()=>b.snapshot()},limbs:{enumerable:!0,get:()=>y.snapshot()},queue:{enumerable:!0,get:()=>e.queueController.snapshot()},cache:{enumerable:!0,get:()=>v.snapshot()},prompt:{enumerable:!0,get:()=>buildPromptSnapshot(e.promptPresenter)},serverside:{enumerable:!0,get:()=>e.serverside.snapshot()}})),x=Object.freeze({on:a.events.on,off:a.events.off,topics:e.topics}),w=Object.freeze({affs:l.observe.affs,defs:l.observe.defs,balances:l.observe.balances,limbs:l.observe.limbs,mount:Object.freeze({set:l.observe.mount.set,reset:l.observe.mount.clear})}),C=Object.freeze({openConfig:(t="api.ui.openConfig")=>e.setConfigOpen(!0,t),closeConfig:(t="api.ui.closeConfig")=>e.setConfigOpen(!1,t),setConfigOpen:(t,n="api.ui.setConfigOpen")=>e.setConfigOpen(Boolean(t),n)}),k={...i.queue,...i.queues,list:i.queue.listQueues};return{state:S,api:{affs:{have:n.haveAff,haveAll:n.haveAffs,haveAny:n.haveAnAff,elapsedMs:n.affElapsedMs,elapsedSeconds:n.affElapsedSeconds,remainingMs:n.affRemainingMs,remainingSeconds:n.affRemainingSeconds,timing:n.affTiming,setPriority:s.updateAffPriority,setDefaultPriority:s.updateAffDefault,resetPriority:s.resetAffPriority,resetAllPriorities:s.resetAllAffPriorities},defs:{have:n.haveDef,haveAll:n.haveDefs,haveAny:n.haveAnyDef,setPriority:s.updateDefPriority,setDefaultPriority:s.updateDefDefault,setStatic:s.updateDefStatic,setCommand:s.updateDefCommand,resetPriority:s.resetDefPriority,resetAllPriorities:s.resetAllDefPriorities,defup:s.defup,defoff:s.defoff,parry:s.parry},balances:{have:n.haveBal,haveAll:n.haveBals,haveAny:n.haveAnyBal,elapsedMs:n.balElapsedMs,elapsedSeconds:n.balElapsedSeconds,remainingMs:n.balRemainingMs,remainingSeconds:n.balRemainingSeconds,timing:n.balTiming},limbs:{get:n.getLimb,list:n.listLimbs},target:{get:n.getTarget,set:i.setTarget,is:n.isTarget},class:{get:n.getClass,is:n.isClass,check:n.checkClass},command:{send:i.sendCmd,sendInline:i.sendInline,addOutput:i.addOutput,evaluateNow:i.evaluateNow},queue:k,rules:c,prompt:d.prompt,observe:w,ui:C,line:p,control:{...o},ss:{predictions:u.predictions,queue:{add:u.ssQueue.add,insert:u.ssQueue.insert,remove:u.ssQueue.remove,clear:u.ssQueue.reset},curingSets:u.curingSets,syncSnapshots:u.ss.syncSnapshots,startupStatus:u.ss.startupStatus,restoreWorkingFromDefault:u.restoreWorkingFromDefault,precache:{set:s.setPrecache},prioAff:{set:s.prioAff,reset:s.clearPrioAff}}},events:x}},generateChunk=(e,t,n)=>{const a=document.createElement("span");return a.style.color=t,a.style.backgroundColor=n,a.textContent=e,a},cloneTrustedHtmlNodes=e=>{const t=document.createElement("template");return t.innerHTML=String(e??""),[...t.content.childNodes].map(e=>e.cloneNode(!0))},replaceWordNodes=(e,t,n)=>{const a=String(t??"");if(!a)return!1;const o=document.createTreeWalker(e,globalThis.NodeFilter?.SHOW_TEXT??4),i=[];for(;o.nextNode();)i.push(o.currentNode);let s=!1;return i.forEach(e=>{const t=e?.textContent||"";if(!e?.parentNode||!t.includes(a))return;const o=document.createDocumentFragment();let i=0;for(;i<t.length;){const e=t.indexOf(a,i);if(-1===e){o.append(t.slice(i));break}e>i&&o.append(t.slice(i,e)),n().forEach(e=>o.appendChild(e)),i=e+a.length,s=!0}e.replaceWith(o)}),s},updateCurrentFormattedLine=e=>{const t=document.createElement("span");t.innerHTML=globalThis.nexusclient.current_line.parsed_line.formatted();const n=e(t);return globalThis.nexusclient.current_line.parsed_line.formatted=()=>t.innerHTML,n},replace$1=(...e)=>{const t=document.createElement("span");for(let n=0;n<e.length;n+=3)t.appendChild(generateChunk(e[n],e[n+1],e[n+2]));return globalThis.nexusclient.current_line.parsed_line.formatted=()=>t.outerHTML,!0},replaceHTML=e=>(globalThis.nexusclient.current_line.parsed_line.formatted=()=>e,!0),replaceWord=(e,t,n,a)=>updateCurrentFormattedLine(o=>replaceWordNodes(o,e,()=>[generateChunk(t,n,a)])),replaceWordHTML=(e,t)=>updateCurrentFormattedLine(n=>replaceWordNodes(n,e,()=>cloneTrustedHtmlNodes(t))),matchPattern=(e,t)=>"string"==typeof t?e.includes(t):t instanceof RegExp&&t.test(e),prevLine=e=>{const{current_block:t,current_line:n}=globalThis.nexusclient,a=t.indexOf(n);return!(a<=0)&&matchPattern(t[a-1].parsed_line.text(),e)},nextLine=e=>{const{current_block:t,current_line:n}=globalThis.nexusclient,a=t.indexOf(n);return!(a>=t.length-1)&&matchPattern(t[a+1].parsed_line.text(),e)},checkLine=(e,t)=>{const{current_block:n,current_line:a}=globalThis.nexusclient,o=n.indexOf(a)+t;return!(o<0||o>n.length-1)&&matchPattern(n[o].parsed_line.text(),e)},prependNotice=(...e)=>{const t=document.createElement("span");for(let n=0;n<e.length;n+=3)t.appendChild(generateChunk(e[n],e[n+1],e[n+2]));return globalThis.nexSys.prepend_line={timestamp:globalThis.nexusclient.current_block[1].timestamp,timestamp_ms:globalThis.nexusclient.current_block[1].timestamp_ms,parsed_line:{text:()=>t.outerHTML,formatted:()=>t.outerHTML}},t.outerHTML},say=e=>{const t=new SpeechSynthesisUtterance;t.voice=globalThis.speechSynthesis.getVoices().find(e=>"Google UK English Female"===e.voiceURI)||globalThis.speechSynthesis.getVoices().find(e=>"en-US"===e.lang),t.rate=1.1,t.pitch=1.3,t.text=e,globalThis.speechSynthesis.speaking&&globalThis.speechSynthesis.cancel(),setTimeout(()=>globalThis.speechSynthesis.speak(t),10)},ba={affTable:B,balanceTable:F,cacheTable:P,cacheNames:{herb_name_to_herb:C,mineral_to_herb:k,herb_to_mineral:E,herb_names:x,herb_names_group:w,mineral_names:v,mineral_names_group:S},cureTable:V,defTable:G,defPrios:Y},ya=Object.freeze({affCount:Array.isArray(B?.list)?B.list.length:0,cureCount:Object.keys(V||{}).length,defCount:Object.keys(G||{}).length,balanceCount:Object.keys(F||{}).length,cacheCount:Object.keys(P||{}).length}),createNexSys=({adapter:e,adapterType:t="nexus",options:n={}}={})=>{const a={...n.adapterOptions||{}};void 0===a.debug&&(a.debug=n.debug??!1),void 0===a.startupGag&&(a.startupGag=n.startupGag??!0);const o=assertAdapterContract(e||("mock"===t?createMockAdapter(a):createNexusAdapter(a))),i=createRuntimeEngine({adapter:o,seedData:ba,options:n}),{state:s,api:l,events:c}=createPublicApi({runtime:i,lineUtils:{replace:replace$1,replaceHTML,replaceWord,replaceWordHTML,nextLine,checkLine,prependNotice,prevLine,say}});return{version:"1.0.0",seedMeta:ya,tables:{limbs:fe,dirs:ge,dirMap:he,oppdirs:be,shortDirs:ye,classList:ve},adapter:o,runtime:i,state:s,api:l,events:c}},clearGlobalNexSys=()=>{if("undefined"==typeof globalThis)return;const e=globalThis.nexSys,t=e?.api?.control?.stop;if(e&&"function"==typeof t)try{t()}catch(n){console.error("nexSys4 failed to stop the existing global runtime during reinstall",n)}try{delete globalThis.nexSys}catch{globalThis.nexSys=void 0}},installGlobalNexSys=(e={})=>{clearGlobalNexSys();const t=createNexSys(e);return globalThis.nexSys=t,t.api.control.start(),t},va=Object.freeze({coalesceGmcp:!0,publishToEventStream:!0,publishRawGmcp:!1,debug:!1,startupTimeoutMs:2500,maxStartupRetries:3,maxEntriesPerSubmission:20,pendingTimeoutMs:12e3,desyncCommandRepeats:3,maxSsCommandsPerCycle:40}),bootstrapNexus=(e={})=>{const{forceNew:t,...n}=e;return uninstallNexusClientOverrides(),installNexusClientOverrides(),installGlobalNexSys({adapterType:"nexus",options:{...va,...n}})},Sa=Symbol.for("nexsys4.startup.installed"),xa="font_stacks_original",getNexusclient=()=>globalThis.nexusclient&&"object"==typeof globalThis.nexusclient?globalThis.nexusclient:null,mountGui=e=>{if(!globalThis.ReactDOM||!globalThis.React)return!1;document.getElementById("modal-root")||document.body.appendChild(Object.assign(document.createElement("div"),{id:"modal-root"})),document.getElementById("nexsys-modal")?.remove();const t=Object.assign(document.createElement("div"),{id:"nexsys-modal"});return document.getElementById("modal-root").appendChild(t),globalThis.ReactDOM.createRoot(t).render(globalThis.React.createElement(e.component,{nexSys:e})),!0},injectFonts=()=>{const e=document.getElementsByTagName("head")[0],t=document.createElement("link");t.rel="stylesheet",t.href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap",e.appendChild(t);const n=document.createElement("link");n.rel="stylesheet",n.href="https://fonts.googleapis.com/css?family=Roboto%20Mono:300,400,500,700&display=swap",e.appendChild(n)},patchFontStacks=e=>{const t=e.settings();if(void 0!==t[xa])return;const n=document.getElementsByTagName("head")[0],a=document.getElementById("nexSysCSS")||document.createElement("style");a.id="nexSysCSS",a.parentNode||n.appendChild(a),t[xa]=t.font_stacks,t.font_stacks=function(){return a.textContent=`.timestamp {font-family: ${t.font_stack}}`,[{name:"RobotoMono",stack:"Roboto Mono,Consolas,monospace"},{name:"Consolas",stack:"Consolas,RobotoMono,monospace"},{name:"Verdana",stack:"Verdana, Geneva, sans-serif"},{name:"Lucida",stack:"'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif"},{name:"Arial",stack:"Arial, 'Helvetica Neue', Helvetica, sans-serif"},{name:"Futura",stack:"Futura, 'Trebuchet MS', Arial, sans-serif"},{name:"Book Antiqua",stack:"'Book Antiqua', Palatino, 'Palatino Linotype', 'Palatino LT STD', Georgia, serif"},...t[xa]()]}},initializeSettings=e=>{void 0===e.variables().vars.nexSys4Settings&&(e.variables().vars.nexSys4Settings={})},startupNexus=()=>{const e=getNexusclient();return!!e&&(e[Sa]||(injectFonts(),patchFontStacks(e),initializeSettings(e),e[Sa]=!0),mountGui(globalThis.nexSys),!0)},wa=(0,c.createContext)(null);function useNexSys(){return(0,c.useContext)(wa)}var Ca=__commonJSMin(e=>{var t=Symbol.for("react.transitional.element");Symbol.for("react.fragment");function jsxProd(e,n,a){var o=null;if(void 0!==a&&(o=""+a),void 0!==n.key&&(o=""+n.key),"key"in n)for(var i in a={},n)"key"!==i&&(a[i]=n[i]);else a=n;return n=a.ref,{$$typeof:t,type:e,key:o,ref:void 0!==n?n:null,props:a}}e.jsx=jsxProd,e.jsxs=jsxProd}),ka=__commonJSMin((e,t)=>{t.exports=Ca()})();function NexSysProvider({nexSys:e,children:t}){return(0,ka.jsx)(wa.Provider,{value:e,children:t})}var Ea={black:"#000",white:"#fff"},_a={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Pa={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},Ta={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},Aa={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},Ra={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},Ma={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},Da={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};function formatMuiErrorMessage(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(e=>n.searchParams.append("args[]",e)),`Minified MUI error #${e}; visit ${n} for the full message.`}var Oa="$$material";function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_extends.apply(null,arguments)}var $a=!1;function sheetForTag(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}function createStyleElement(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}var Ia=function(){function StyleSheet(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy?!$a:e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var e=StyleSheet.prototype;return e.hydrate=function hydrate(e){e.forEach(this._insertTag)},e.insert=function insert(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(createStyleElement(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=sheetForTag(t);try{n.insertRule(e,n.cssRules.length)}catch(a){}}else t.appendChild(document.createTextNode(e));this.ctr++},e.flush=function flush(){this.tags.forEach(function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)}),this.tags=[],this.ctr=0},StyleSheet}(),Na="-ms-",za="-moz-",La="-webkit-",ja="comm",Ba="rule",Fa="decl",qa="@import",Ua="@keyframes",Va="@layer",Ha=Math.abs,Wa=String.fromCharCode,Ga=Object.assign;function hash$2(e,t){return 45^charat(e,0)?(((t<<2^charat(e,0))<<2^charat(e,1))<<2^charat(e,2))<<2^charat(e,3):0}function trim(e){return e.trim()}function match(e,t){return(e=t.exec(e))?e[0]:e}function replace(e,t,n){return e.replace(t,n)}function indexof(e,t){return e.indexOf(t)}function charat(e,t){return 0|e.charCodeAt(t)}function substr(e,t,n){return e.slice(t,n)}function strlen(e){return e.length}function sizeof(e){return e.length}function append(e,t){return t.push(e),e}function combine(e,t){return e.map(t).join("")}var Ya=1,Ka=1,Qa=0,Za=0,Xa=0,Ja="";function node(e,t,n,a,o,i,s){return{value:e,root:t,parent:n,type:a,props:o,children:i,line:Ya,column:Ka,length:s,return:""}}function copy(e,t){return Ga(node("",null,null,"",null,null,0),e,{length:-e.length},t)}function char(){return Xa}function prev(){return Xa=Za>0?charat(Ja,--Za):0,Ka--,10===Xa&&(Ka=1,Ya--),Xa}function next(){return Xa=Za<Qa?charat(Ja,Za++):0,Ka++,10===Xa&&(Ka=1,Ya++),Xa}function peek$1(){return charat(Ja,Za)}function caret(){return Za}function slice(e,t){return substr(Ja,e,t)}function token(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function alloc(e){return Ya=Ka=1,Qa=strlen(Ja=e),Za=0,[]}function dealloc(e){return Ja="",e}function delimit(e){return trim(slice(Za-1,delimiter(91===e?e+2:40===e?e+1:e)))}function whitespace(e){for(;(Xa=peek$1())&&Xa<33;)next();return token(e)>2||token(Xa)>3?"":" "}function escaping(e,t){for(;--t&&next()&&!(Xa<48||Xa>102||Xa>57&&Xa<65||Xa>70&&Xa<97););return slice(e,caret()+(t<6&&32==peek$1()&&32==next()))}function delimiter(e){for(;next();)switch(Xa){case e:return Za;case 34:case 39:34!==e&&39!==e&&delimiter(Xa);break;case 40:41===e&&delimiter(e);break;case 92:next()}return Za}function commenter(e,t){for(;next()&&e+Xa!==57&&(e+Xa!==84||47!==peek$1()););return"/*"+slice(t,Za-1)+"*"+Wa(47===e?e:next())}function identifier(e){for(;!token(peek$1());)next();return slice(e,Za)}function compile(e){return dealloc(parse("",null,null,null,[""],e=alloc(e),0,[0],e))}function parse(e,t,n,a,o,i,s,l,c){for(var u=0,d=0,p=s,m=0,g=0,h=0,b=1,y=1,v=1,S=0,x="",w=o,C=i,k=a,E=x;y;)switch(h=S,S=next()){case 40:if(108!=h&&58==charat(E,p-1)){-1!=indexof(E+=replace(delimit(S),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:E+=delimit(S);break;case 9:case 10:case 13:case 32:E+=whitespace(h);break;case 92:E+=escaping(caret()-1,7);continue;case 47:switch(peek$1()){case 42:case 47:append(comment(commenter(next(),caret()),t,n),c);break;default:E+="/"}break;case 123*b:l[u++]=strlen(E)*v;case 125*b:case 59:case 0:switch(S){case 0:case 125:y=0;case 59+d:-1==v&&(E=replace(E,/\f/g,"")),g>0&&strlen(E)-p&&append(g>32?declaration(E+";",a,n,p-1):declaration(replace(E," ","")+";",a,n,p-2),c);break;case 59:E+=";";default:if(append(k=ruleset(E,t,n,u,d,o,l,x,w=[],C=[],p),i),123===S)if(0===d)parse(E,t,k,k,w,i,p,l,C);else switch(99===m&&110===charat(E,3)?100:m){case 100:case 108:case 109:case 115:parse(e,k,k,a&&append(ruleset(e,k,k,0,0,o,l,x,o,w=[],p),C),o,C,p,l,a?w:C);break;default:parse(E,k,k,k,[""],C,0,l,C)}}u=d=g=0,b=v=1,x=E="",p=s;break;case 58:p=1+strlen(E),g=h;default:if(b<1)if(123==S)--b;else if(125==S&&0==b++&&125==prev())continue;switch(E+=Wa(S),S*b){case 38:v=d>0?1:(E+="\f",-1);break;case 44:l[u++]=(strlen(E)-1)*v,v=1;break;case 64:45===peek$1()&&(E+=delimit(next())),m=peek$1(),d=p=strlen(x=E+=identifier(caret())),S++;break;case 45:45===h&&2==strlen(E)&&(b=0)}}return i}function ruleset(e,t,n,a,o,i,s,l,c,u,d){for(var p=o-1,m=0===o?i:[""],g=sizeof(m),h=0,b=0,y=0;h<a;++h)for(var v=0,S=substr(e,p+1,p=Ha(b=s[h])),x=e;v<g;++v)(x=trim(b>0?m[v]+" "+S:replace(S,/&\f/g,m[v])))&&(c[y++]=x);return node(e,t,n,0===o?Ba:l,c,u,d)}function comment(e,t,n){return node(e,t,n,ja,Wa(char()),substr(e,2,-2),0)}function declaration(e,t,n,a){return node(e,t,n,Fa,substr(e,0,a),substr(e,a+1,-1),a)}function serialize(e,t){for(var n="",a=sizeof(e),o=0;o<a;o++)n+=t(e[o],o,e,t)||"";return n}function stringify(e,t,n,a){switch(e.type){case Va:if(e.children.length)break;case qa:case Fa:return e.return=e.return||e.value;case ja:return"";case Ua:return e.return=e.value+"{"+serialize(e.children,a)+"}";case Ba:e.value=e.props.join(",")}return strlen(n=serialize(e.children,a))?e.return=e.value+"{"+n+"}":""}function middleware(e){var t=sizeof(e);return function(n,a,o,i){for(var s="",l=0;l<t;l++)s+=e[l](n,a,o,i)||"";return s}}function rulesheet(e){return function(t){t.root||(t=t.return)&&e(t)}}function memoize(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var eo=function identifierWithPointTracking(e,t,n){for(var a=0,o=0;a=o,o=peek$1(),38===a&&12===o&&(t[n]=1),!token(o);)next();return slice(e,Za)},to=function toRules(e,t){var n=-1,a=44;do{switch(token(a)){case 0:38===a&&12===peek$1()&&(t[n]=1),e[n]+=eo(Za-1,t,n);break;case 2:e[n]+=delimit(a);break;case 4:if(44===a){e[++n]=58===peek$1()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=Wa(a)}}while(a=next());return e},ro=function getRules(e,t){return dealloc(to(alloc(e),t))},no=new WeakMap,ao=function compat(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,a=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||no.get(n))&&!a){no.set(e,!0);for(var o=[],i=ro(t,o),s=n.props,l=0,c=0;l<i.length;l++)for(var u=0;u<s.length;u++,c++)e.props[c]=o[l]?i[l].replace(/&\f/g,s[u]):s[u]+" "+i[l]}}},oo=function removeLabel(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function prefix(e,t){switch(hash$2(e,t)){case 5103:return La+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return La+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return La+e+za+e+Na+e+e;case 6828:case 4268:return La+e+Na+e+e;case 6165:return La+e+Na+"flex-"+e+e;case 5187:return La+e+replace(e,/(\w+).+(:[^]+)/,La+"box-$1$2"+Na+"flex-$1$2")+e;case 5443:return La+e+Na+"flex-item-"+replace(e,/flex-|-self/,"")+e;case 4675:return La+e+Na+"flex-line-pack"+replace(e,/align-content|flex-|-self/,"")+e;case 5548:return La+e+Na+replace(e,"shrink","negative")+e;case 5292:return La+e+Na+replace(e,"basis","preferred-size")+e;case 6060:return La+"box-"+replace(e,"-grow","")+La+e+Na+replace(e,"grow","positive")+e;case 4554:return La+replace(e,/([^-])(transform)/g,"$1"+La+"$2")+e;case 6187:return replace(replace(replace(e,/(zoom-|grab)/,La+"$1"),/(image-set)/,La+"$1"),e,"")+e;case 5495:case 3959:return replace(e,/(image-set\([^]*)/,La+"$1$`$1");case 4968:return replace(replace(e,/(.+:)(flex-)?(.*)/,La+"box-pack:$3"+Na+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+La+e+e;case 4095:case 3583:case 4068:case 2532:return replace(e,/(.+)-inline(.+)/,La+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen(e)-1-t>6)switch(charat(e,t+1)){case 109:if(45!==charat(e,t+4))break;case 102:return replace(e,/(.+:)(.+)-([^]+)/,"$1"+La+"$2-$3$1"+za+(108==charat(e,t+3)?"$3":"$2-$3"))+e;case 115:return~indexof(e,"stretch")?prefix(replace(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==charat(e,t+1))break;case 6444:switch(charat(e,strlen(e)-3-(~indexof(e,"!important")&&10))){case 107:return replace(e,":",":"+La)+e;case 101:return replace(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+La+(45===charat(e,14)?"inline-":"")+"box$3$1"+La+"$2$3$1"+Na+"$2box$3")+e}break;case 5936:switch(charat(e,t+11)){case 114:return La+e+Na+replace(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return La+e+Na+replace(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return La+e+Na+replace(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return La+e+Na+e+e}return e}var io=[function prefixer(e,t,n,a){if(e.length>-1&&!e.return)switch(e.type){case Fa:e.return=prefix(e.value,e.length);break;case Ua:return serialize([copy(e,{value:replace(e.value,"@","@"+La)})],a);case Ba:if(e.length)return combine(e.props,function(t){switch(match(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy(e,{props:[replace(t,/:(read-\w+)/,":"+za+"$1")]})],a);case"::placeholder":return serialize([copy(e,{props:[replace(t,/:(plac\w+)/,":"+La+"input-$1")]}),copy(e,{props:[replace(t,/:(plac\w+)/,":"+za+"$1")]}),copy(e,{props:[replace(t,/:(plac\w+)/,Na+"input-$1")]})],a)}return""})}}],so=function createCache(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))})}var a,o,i=e.stylisPlugins||io,s={},l=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)s[t[n]]=!0;l.push(e)});var c,u=[ao,oo],d=[stringify,rulesheet(function(e){c.insert(e)})],p=middleware(u.concat(i,d)),m=function stylis(e){return serialize(compile(e),p)};o=function insert(e,t,n,a){c=n,m(e?e+"{"+t.styles+"}":t.styles),a&&(g.inserted[t.name]=!0)};var g={key:t,sheet:new Ia({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:s,registered:{},insert:o};return g.sheet.hydrate(l),g},lo=__commonJSMin(e=>{var t="function"==typeof Symbol&&Symbol.for,n=t?Symbol.for("react.element"):60103,a=t?Symbol.for("react.portal"):60106,o=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,l=t?Symbol.for("react.provider"):60109,c=t?Symbol.for("react.context"):60110,u=t?Symbol.for("react.async_mode"):60111,d=t?Symbol.for("react.concurrent_mode"):60111,p=t?Symbol.for("react.forward_ref"):60112,m=t?Symbol.for("react.suspense"):60113,g=t?Symbol.for("react.suspense_list"):60120,h=t?Symbol.for("react.memo"):60115,b=t?Symbol.for("react.lazy"):60116,y=t?Symbol.for("react.block"):60121,v=t?Symbol.for("react.fundamental"):60117,S=t?Symbol.for("react.responder"):60118,x=t?Symbol.for("react.scope"):60119;function z(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case u:case d:case o:case s:case i:case m:return e;default:switch(e=e&&e.$$typeof){case c:case p:case b:case h:case l:return e;default:return t}}case a:return t}}}function A(e){return z(e)===d}e.AsyncMode=u,e.ConcurrentMode=d,e.ContextConsumer=c,e.ContextProvider=l,e.Element=n,e.ForwardRef=p,e.Fragment=o,e.Lazy=b,e.Memo=h,e.Portal=a,e.Profiler=s,e.StrictMode=i,e.Suspense=m,e.isAsyncMode=function(e){return A(e)||z(e)===u},e.isConcurrentMode=A,e.isContextConsumer=function(e){return z(e)===c},e.isContextProvider=function(e){return z(e)===l},e.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},e.isForwardRef=function(e){return z(e)===p},e.isFragment=function(e){return z(e)===o},e.isLazy=function(e){return z(e)===b},e.isMemo=function(e){return z(e)===h},e.isPortal=function(e){return z(e)===a},e.isProfiler=function(e){return z(e)===s},e.isStrictMode=function(e){return z(e)===i},e.isSuspense=function(e){return z(e)===m},e.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===i||e===m||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===S||e.$$typeof===x||e.$$typeof===y)},e.typeOf=z}),co=__commonJSMin((e,t)=>{t.exports=lo()}),uo=__commonJSMin((e,t)=>{var n=co(),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function getStatics(e){return n.isMemo(e)?s:l[e.$$typeof]||a}l[n.ForwardRef]=i,l[n.Memo]=s;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,m=Object.getPrototypeOf,g=Object.prototype;function hoistNonReactStatics(e,t,n){if("string"!=typeof t){if(g){var a=m(t);a&&a!==g&&hoistNonReactStatics(e,a,n)}var i=u(t);d&&(i=i.concat(d(t)));for(var s=getStatics(e),l=getStatics(t),h=0;h<i.length;++h){var b=i[h];if(!(o[b]||n&&n[b]||l&&l[b]||s&&s[b])){var y=p(t,b);try{c(e,b,y)}catch(v){}}}}return e}t.exports=hoistNonReactStatics}),po=!0;function getRegisteredStyles(e,t,n){var a="";return n.split(" ").forEach(function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(a+=n+" ")}),a}var mo=function registerStyles(e,t,n){var a=e.key+"-"+t.name;!1!==n&&!1!==po||void 0!==e.registered[a]||(e.registered[a]=t.styles)},fo=function insertStyles(e,t,n){mo(e,t,n);var a=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+a:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}};function murmur2(e){for(var t,n=0,a=0,o=e.length;o>=4;++a,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}var go={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},ho=!1,bo=/[A-Z]|^ms/g,yo=/_EMO_([^_]+?)_([^]*?)_EMO_/g,vo=function isCustomProperty(e){return 45===e.charCodeAt(1)},So=function isProcessableValue(e){return null!=e&&"boolean"!=typeof e},xo=memoize(function(e){return vo(e)?e:e.replace(bo,"-$&").toLowerCase()}),wo=function processStyleValue(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(yo,function(e,t,n){return ko={name:t,styles:n,next:ko},t})}return 1===go[e]||vo(e)||"number"!=typeof t||0===t?t:t+"px"},Co="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function handleInterpolation(e,t,n){if(null==n)return"";var a=n;if(void 0!==a.__emotion_styles)return a;switch(typeof n){case"boolean":return"";case"object":var o=n;if(1===o.anim)return ko={name:o.name,styles:o.styles,next:ko},o.name;var i=n;if(void 0!==i.styles){var s=i.next;if(void 0!==s)for(;void 0!==s;)ko={name:s.name,styles:s.styles,next:ko},s=s.next;return i.styles+";"}return createStringFromObject(e,t,n);case"function":if(void 0!==e){var l=ko,c=n(e);return ko=l,handleInterpolation(e,t,c)}}var u=n;if(null==t)return u;var d=t[u];return void 0!==d?d:u}function createStringFromObject(e,t,n){var a="";if(Array.isArray(n))for(var o=0;o<n.length;o++)a+=handleInterpolation(e,t,n[o])+";";else for(var i in n){var s=n[i];if("object"!=typeof s){var l=s;null!=t&&void 0!==t[l]?a+=i+"{"+t[l]+"}":So(l)&&(a+=xo(i)+":"+wo(i,l)+";")}else{if("NO_COMPONENT_SELECTOR"===i&&ho)throw new Error(Co);if(!Array.isArray(s)||"string"!=typeof s[0]||null!=t&&void 0!==t[s[0]]){var c=handleInterpolation(e,t,s);switch(i){case"animation":case"animationName":a+=xo(i)+":"+c+";";break;default:a+=i+"{"+c+"}"}}else for(var u=0;u<s.length;u++)So(s[u])&&(a+=xo(i)+":"+wo(i,s[u])+";")}}return a}var ko,Eo=/label:\s*([^\s;{]+)\s*(;|$)/g;function serializeStyles(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var a=!0,o="";ko=void 0;var i=e[0];null==i||void 0===i.raw?(a=!1,o+=handleInterpolation(n,t,i)):o+=i[0];for(var s=1;s<e.length;s++)o+=handleInterpolation(n,t,e[s]),a&&(o+=i[s]);Eo.lastIndex=0;for(var l,c="";null!==(l=Eo.exec(o));)c+="-"+l[1];return{name:murmur2(o)+c,styles:o,next:ko}}var _o=function syncFallback(e){return e()},Po=!!e.useInsertionEffect&&e.useInsertionEffect,To=Po||_o,Ao=Po||e.useLayoutEffect,Ro=e.createContext("undefined"!=typeof HTMLElement?so({key:"css"}):null),Mo=(Ro.Provider,function withEmotionCache(t){return(0,e.forwardRef)(function(n,a){return t(n,(0,e.useContext)(Ro),a)})}),Do=e.createContext({}),Oo={}.hasOwnProperty,$o="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Io=function createEmotionProps(e,t){var n={};for(var a in t)Oo.call(t,a)&&(n[a]=t[a]);return n[$o]=e,n},No=function Insertion(e){var t=e.cache,n=e.serialized,a=e.isStringTag;return mo(t,n,a),To(function(){return fo(t,n,a)}),null},zo=Mo(function(t,n,a){var o=t.css;"string"==typeof o&&void 0!==n.registered[o]&&(o=n.registered[o]);var i=t[$o],s=[o],l="";"string"==typeof t.className?l=getRegisteredStyles(n.registered,s,t.className):null!=t.className&&(l=t.className+" ");var c=serializeStyles(s,void 0,e.useContext(Do));l+=n.key+"-"+c.name;var u={};for(var d in t)Oo.call(t,d)&&"css"!==d&&d!==$o&&(u[d]=t[d]);return u.className=l,a&&(u.ref=a),e.createElement(e.Fragment,null,e.createElement(No,{cache:n,serialized:c,isStringTag:"string"==typeof i}),e.createElement(i,u))}),Lo=(uo(),function jsx(t,n){var a=arguments;if(null==n||!Oo.call(n,"css"))return e.createElement.apply(void 0,a);var o=a.length,i=new Array(o);i[0]=zo,i[1]=Io(t,n);for(var s=2;s<o;s++)i[s]=a[s];return e.createElement.apply(null,i)});!function(e){var t;t||(t=e.JSX||(e.JSX={}))}(Lo||(Lo={}));var jo=Mo(function(t,n){var a=serializeStyles([t.styles],void 0,e.useContext(Do)),o=e.useRef();return Ao(function(){var e=n.key+"-global",t=new n.sheet.constructor({key:e,nonce:n.sheet.nonce,container:n.sheet.container,speedy:n.sheet.isSpeedy}),i=!1,s=document.querySelector('style[data-emotion="'+e+" "+a.name+'"]');return n.sheet.tags.length&&(t.before=n.sheet.tags[0]),null!==s&&(i=!0,s.setAttribute("data-emotion",e),t.hydrate([s])),o.current=[t,i],function(){t.flush()}},[n]),Ao(function(){var e=o.current,t=e[0];e[1]?e[1]=!1:(void 0!==a.next&&fo(n,a.next,!0),t.tags.length&&(t.before=t.tags[t.tags.length-1].nextElementSibling,t.flush()),n.insert("",a,t,!1))},[n,a.name]),null});function css(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return serializeStyles(t)}function keyframes(){var e=css.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function toString(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}var Bo=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Fo=!1,qo=memoize(function(e){return Bo.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}),Uo=function testOmitPropsOnComponent(e){return"theme"!==e},Vo=function getDefaultShouldForwardProp(e){return"string"==typeof e&&e.charCodeAt(0)>96?qo:Uo},Ho=function composeShouldForwardProps(e,t,n){var a;if(t){var o=t.shouldForwardProp;a=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof a&&n&&(a=e.__emotion_forwardProp),a},Wo=function Insertion(e){var t=e.cache,n=e.serialized,a=e.isStringTag;return mo(t,n,a),To(function(){return fo(t,n,a)}),null},Go=function createStyled(t,n){var a,o,i=t.__emotion_real===t,s=i&&t.__emotion_base||t;void 0!==n&&(a=n.label,o=n.target);var l=Ho(t,n,i),c=l||Vo(s),u=!c("as");return function(){var d=arguments,p=i&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&p.push("label:"+a+";"),null==d[0]||void 0===d[0].raw)p.push.apply(p,d);else{var m=d[0];p.push(m[0]);for(var g=d.length,h=1;h<g;h++)p.push(d[h],m[h])}var b=Mo(function(t,n,a){var i=u&&t.as||s,d="",m=[],g=t;if(null==t.theme){for(var h in g={},t)g[h]=t[h];g.theme=e.useContext(Do)}"string"==typeof t.className?d=getRegisteredStyles(n.registered,m,t.className):null!=t.className&&(d=t.className+" ");var b=serializeStyles(p.concat(m),n.registered,g);d+=n.key+"-"+b.name,void 0!==o&&(d+=" "+o);var y=u&&void 0===l?Vo(i):c,v={};for(var S in t)u&&"as"===S||y(S)&&(v[S]=t[S]);return v.className=d,a&&(v.ref=a),e.createElement(e.Fragment,null,e.createElement(Wo,{cache:n,serialized:b,isStringTag:"string"==typeof i}),e.createElement(i,v))});return b.displayName=void 0!==a?a:"Styled("+("string"==typeof s?s:s.displayName||s.name||"Component")+")",b.defaultProps=t.defaultProps,b.__emotion_real=b,b.__emotion_base=s,b.__emotion_styles=p,b.__emotion_forwardProp=l,Object.defineProperty(b,"toString",{value:function value(){return void 0===o&&Fo?"NO_COMPONENT_SELECTOR":"."+o}}),b.withComponent=function(e,t){return createStyled(e,_extends({},n,t,{shouldForwardProp:Ho(b,t,!0)})).apply(void 0,p)},b}},Yo=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],Ko=Go.bind(null);function isEmpty$2(e){return null==e||0===Object.keys(e).length}function GlobalStyles$2(e){const{styles:t,defaultTheme:n={}}=e;return(0,ka.jsx)(jo,{styles:"function"==typeof t?e=>t(isEmpty$2(e)?n:e):t})}function styled$1(e,t){return Ko(e,t)}function internal_mutateStyles(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}Yo.forEach(function(e){Ko[e]=Ko(e)});var Qo=[];function internal_serializeStyles(e){return Qo[0]=e,serializeStyles(Qo)}var Zo=__commonJSMin(e=>{Symbol.for("react.transitional.element"),Symbol.for("react.portal");var t=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),i=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.suspense_list"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=(Symbol.for("react.view_transition"),Symbol.for("react.client.reference"));e.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===t||e===a||e===n||e===l||e===c||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===u||e.$$typeof===i||e.$$typeof===o||e.$$typeof===s||e.$$typeof===p||void 0!==e.getModuleId)}}),Xo=__commonJSMin((e,t)=>{t.exports=Zo()})();function isPlainObject$1(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}function deepClone(e){if(c.isValidElement(e)||(0,Xo.isValidElementType)(e)||!isPlainObject$1(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=deepClone(e[n])}),t}function deepmerge(e,t,n={clone:!0}){const a=n.clone?{...e}:e;return isPlainObject$1(e)&&isPlainObject$1(t)&&Object.keys(t).forEach(o=>{c.isValidElement(t[o])||(0,Xo.isValidElementType)(t[o])?a[o]=t[o]:isPlainObject$1(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&isPlainObject$1(e[o])?a[o]=deepmerge(e[o],t[o],n):n.clone?a[o]=isPlainObject$1(t[o])?deepClone(t[o]):t[o]:a[o]=t[o]}),a}var sortBreakpointsValues=e=>{const t=Object.keys(e).map(t=>({key:t,val:e[t]}))||[];return t.sort((e,t)=>e.val-t.val),t.reduce((e,t)=>({...e,[t.key]:t.val}),{})};function createBreakpoints(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:a=5,...o}=e,i=sortBreakpointsValues(t),s=Object.keys(i);function up(e){return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n})`}function down(e){return`@media (max-width:${("number"==typeof t[e]?t[e]:e)-a/100}${n})`}function between(e,o){const i=s.indexOf(o);return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n}) and (max-width:${(-1!==i&&"number"==typeof t[s[i]]?t[s[i]]:o)-a/100}${n})`}function only(e){return s.indexOf(e)+1<s.length?between(e,s[s.indexOf(e)+1]):up(e)}function not(e){const t=s.indexOf(e);return 0===t?up(s[1]):t===s.length-1?down(s[t]):between(e,s[s.indexOf(e)+1]).replace("@media","@media not all and")}const l=[];for(let c=0;c<s.length;c+=1)l.push(up(s[c]));return{keys:s,values:i,up,down,between,only,not,unit:n,internal_mediaKeys:l,...o}}var Jo=/min-width:\s*([0-9.]+)/;function sortContainerQueries(e,t){if(!e.containerQueries||!hasContainerQuery(t))return t;const n=[];for(const o in t)o.startsWith("@container")&&n.push(o);n.sort((e,t)=>+(e.match(Jo)?.[1]||0)-+(t.match(Jo)?.[1]||0));const a=t;for(let o=0;o<n.length;o+=1){const e=n[o],t=a[e];delete a[e],a[e]=t}return a}function hasContainerQuery(e){for(const t in e)if(t.startsWith("@container"))return!0;return!1}function isCqShorthand(e,t){return"@"===t||t.startsWith("@")&&(e.some(e=>t.startsWith(`@${e}`))||!!t.match(/^@\d/))}function getContainerQuery(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,a,o]=n,i=Number.isNaN(+a)?a||0:+a;return e.containerQueries(o).up(i)}function cssContainerQueries(e){const toContainerQuery=(e,t)=>e.replace("@media",t?`@container ${t}`:"@container");function attachCq(t,n){t.up=(...t)=>toContainerQuery(e.breakpoints.up(...t),n),t.down=(...t)=>toContainerQuery(e.breakpoints.down(...t),n),t.between=(...t)=>toContainerQuery(e.breakpoints.between(...t),n),t.only=(...t)=>toContainerQuery(e.breakpoints.only(...t),n),t.not=(...t)=>{const a=toContainerQuery(e.breakpoints.not(...t),n);return a.includes("not all and")?a.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):a}}const t={},containerQueries=e=>(attachCq(t,e),t);return attachCq(containerQueries),{...e,containerQueries}}var ei={borderRadius:4};function isObjectEmpty$2(e){if(null==e)return!0;for(const t in e)return!1;return!0}function fastDeepAssign(e,t){const n=Array.isArray(t),a=Array.isArray(e);return isPrimitive(t)?t:isPrimitiveOrBuiltIn(e)?clone(t):n&&a?mergeArray(e,t):n!==a?clone(t):mergeObject(e,t)}function cloneArray(e){let t=0;const n=e.length,a=new Array(n);for(t=0;t<n;t+=1)a[t]=clone(e[t]);return a}function cloneObject(e){const t={};for(const n in e)t[n]=clone(e[n]);return t}function mergeArray(e,t){const n=e.length;for(let a=0;a<t.length;a+=1)e[n+a]=clone(t[a]);return e}function isMergeableObject(e){return!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Date)}function isPrimitive(e){return"object"!=typeof e||null===e}function isPrimitiveOrBuiltIn(e){return"object"!=typeof e||null===e||e instanceof RegExp||e instanceof Date}function clone(e){return isMergeableObject(e)?Array.isArray(e)?cloneArray(e):cloneObject(e):e}function mergeObject(e,t){for(const n in t)e[n]=n in e?fastDeepAssign(e[n],t[n]):clone(t[n]);return e}var ti={},ri={xs:0,sm:600,md:900,lg:1200,xl:1536},ni=createBreakpoints({values:ri}),ai={containerQueries:e=>({up:t=>{let n="number"==typeof t?t:ri[t]||t;return"number"==typeof n&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function handleBreakpoints(e,t,n){const a={};return iterateBreakpoints(a,e.theme,t,(e,t,o)=>{const i=n(t,o);e?a[e]=i:fastDeepAssign(a,i)})}function iterateBreakpoints(e,t,n,a){if(t??=ti,Array.isArray(n)){const o=t.breakpoints??ni;for(let t=0;t<n.length;t+=1)buildBreakpoint(e,o.up(o.keys[t]),n[t],void 0,a);return e}if("object"==typeof n){const o=t.breakpoints??ni,i=o.values??ri;for(const s in n)if(isCqShorthand(o.keys,s)){const o=getContainerQuery(t.containerQueries?t:ai,s);o&&buildBreakpoint(e,o,n[s],s,a)}else if(s in i)buildBreakpoint(e,o.up(s),n[s],s,a);else{const t=s;e[t]=n[t]}return e}return a(void 0,n),e}function buildBreakpoint(e,t,n,a,o){e[t]??={},o(t,n,a)}function createEmptyBreakpointObject(e=ni){const{internal_mediaKeys:t}=e,n={};for(let a=0;a<t.length;a+=1)n[t[a]]={};return n}function removeUnusedBreakpoints(e,t){const n=e.internal_mediaKeys;for(let a=0;a<n.length;a+=1){const e=n[a];isObjectEmpty$2(t[e])&&delete t[e]}return t}function hasBreakpoint(e,t){if(Array.isArray(t))return!0;if("object"==typeof t&&null!==t){for(let a=0;a<e.keys.length;a+=1)if(e.keys[a]in t)return!0;const n=Object.keys(t);for(let t=0;t<n.length;t+=1)if(isCqShorthand(e.keys,n[t]))return!0}return!1}function capitalize$1(e){if("string"!=typeof e)throw new Error(formatMuiErrorMessage(7));return e.charAt(0).toUpperCase()+e.slice(1)}function getStyleValue2(e,t,n,a){let o;return o="function"==typeof e?e(n):Array.isArray(e)?e[n]||n:"string"==typeof n&&getPath(e,n,!0,a)||n,t&&(o=t(o,n,e)),o}function getPath(e,t,n=!0,a=void 0){if(!e||!t)return null;const o=t.split(".");if(e.vars&&n){const t=getPathImpl(e.vars,o,a);if(null!=t)return t}return getPathImpl(e,o,a)}function getPathImpl(e,t,n=void 0){let a,o=e,i=0;for(;i<t.length;){if(null==o)return o;a=o,o=o[t[i]],i+=1}if(n&&void 0===o){const e=t[t.length-1],o=`${n}${"default"===e?"":capitalize$1(e)}`;return a?.[o]}return o}function style$1(e){const{prop:t,cssProperty:n=e.prop,themeKey:a,transform:o}=e,fn=e=>{if(null==e[t])return null;const i=e[t],s=getPath(e.theme,a)||{};return handleBreakpoints(e,i,e=>{const a=getStyleValue2(s,o,e,t);return!1===n?a:{[n]:a}})};return fn.propTypes={},fn.filterProps=[t],fn}var oi={internal_cache:{}},ii={m:"margin",p:"padding"},si={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},li={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},ci={};for(const xg in ii)ci[xg]=[ii[xg]];for(const xg in ii)for(const e in si){const t=ii[xg],n=si[e],a=Array.isArray(n)?n.map(e=>t+e):[t+n];ci[xg+e]=a}for(const xg in li)ci[xg]=ci[li[xg]];var ui=new Set(["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"]),di=new Set(["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"]),pi=new Set([...ui,...di]);function createUnaryUnit(e,t,n,a){const o=getPath(e,t,!0)??n;return"number"==typeof o||"string"==typeof o?e=>"string"==typeof e?e:"string"==typeof o?o.startsWith("var(")&&0===e?0:o.startsWith("var(")&&1===e?o:`calc(${e} * ${o})`:o*e:Array.isArray(o)?e=>{if("string"==typeof e)return e;const t=o[Math.abs(e)];return e>=0?t:"number"==typeof t?-t:"string"==typeof t&&t.startsWith("var(")?`calc(-1 * ${t})`:`-${t}`}:"function"==typeof o?o:()=>{}}function createUnarySpacing(e){return createUnaryUnit(e,"spacing",8,"spacing")}function getValue(e,t){return"string"==typeof t||null==t?t:e(t)}var mi=[""];function style(e,t){const n=e.theme??oi,a=n?.internal_cache?.unarySpacing??createUnarySpacing(n),o={};for(const i in e){if(!t.has(i))continue;const n=ci[i]??(mi[0]=i,mi),s=e[i];iterateBreakpoints(o,e.theme,s,(e,t)=>{const i=e?o[e]:o;for(let o=0;o<n.length;o+=1)i[n[o]]=getValue(a,t)})}return o}function margin(e){return style(e,ui)}function padding(e){return style(e,di)}function spacing(e){return style(e,pi)}function createSpacing(e=8,t=createUnarySpacing({spacing:e})){if(e.mui)return e;const spacing=(...e)=>(0===e.length?[1]:e).map(e=>{const n=t(e);return"number"==typeof n?`${n}px`:n}).join(" ");return spacing.mui=!0,spacing}function compose(...e){const t=e.reduce((e,t)=>(t.filterProps.forEach(n=>{e[n]=t}),e),{}),fn=e=>{const n={};for(const a in e)t[a]&&fastDeepAssign(n,t[a](e));return n};return fn.propTypes={},fn.filterProps=e.reduce((e,t)=>e.concat(t.filterProps),[]),fn}function borderTransform(e){return"number"!=typeof e?e:`${e}px solid`}function createBorderStyle(e,t){return style$1({prop:e,themeKey:"borders",transform:t})}margin.propTypes={},margin.filterProps=ui,padding.propTypes={},padding.filterProps=di,spacing.propTypes={},spacing.filterProps=pi;var fi=createBorderStyle("border",borderTransform),gi=createBorderStyle("borderTop",borderTransform),hi=createBorderStyle("borderRight",borderTransform),bi=createBorderStyle("borderBottom",borderTransform),yi=createBorderStyle("borderLeft",borderTransform),vi=createBorderStyle("borderColor"),Si=createBorderStyle("borderTopColor"),xi=createBorderStyle("borderRightColor"),wi=createBorderStyle("borderBottomColor"),Ci=createBorderStyle("borderLeftColor"),ki=createBorderStyle("outline",borderTransform),Ei=createBorderStyle("outlineColor"),borderRadius=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=createUnaryUnit(e.theme,"shape.borderRadius",4,"borderRadius"),styleFromPropValue=e=>({borderRadius:getValue(t,e)});return handleBreakpoints(e,e.borderRadius,styleFromPropValue)}return null};borderRadius.propTypes={},borderRadius.filterProps=["borderRadius"];compose(fi,gi,hi,bi,yi,vi,Si,xi,wi,Ci,borderRadius,ki,Ei);var gap=e=>{if(void 0!==e.gap&&null!==e.gap){const t=createUnaryUnit(e.theme,"spacing",8,"gap"),styleFromPropValue=e=>({gap:getValue(t,e)});return handleBreakpoints(e,e.gap,styleFromPropValue)}return null};gap.propTypes={},gap.filterProps=["gap"];var columnGap=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=createUnaryUnit(e.theme,"spacing",8,"columnGap"),styleFromPropValue=e=>({columnGap:getValue(t,e)});return handleBreakpoints(e,e.columnGap,styleFromPropValue)}return null};columnGap.propTypes={},columnGap.filterProps=["columnGap"];var rowGap=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=createUnaryUnit(e.theme,"spacing",8,"rowGap"),styleFromPropValue=e=>({rowGap:getValue(t,e)});return handleBreakpoints(e,e.rowGap,styleFromPropValue)}return null};rowGap.propTypes={},rowGap.filterProps=["rowGap"];compose(gap,columnGap,rowGap,style$1({prop:"gridColumn"}),style$1({prop:"gridRow"}),style$1({prop:"gridAutoFlow"}),style$1({prop:"gridAutoColumns"}),style$1({prop:"gridAutoRows"}),style$1({prop:"gridTemplateColumns"}),style$1({prop:"gridTemplateRows"}),style$1({prop:"gridTemplateAreas"}),style$1({prop:"gridArea"}));function paletteTransform(e,t){return"grey"===t?t:e}compose(style$1({prop:"color",themeKey:"palette",transform:paletteTransform}),style$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:paletteTransform}),style$1({prop:"backgroundColor",themeKey:"palette",transform:paletteTransform}));function sizingTransform(e){return e<=1&&0!==e?100*e+"%":e}var _i=style$1({prop:"width",transform:sizingTransform}),maxWidth=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const styleFromPropValue=t=>{const n=e.theme?.breakpoints?.values?.[t]||ri[t];return n?"px"!==e.theme?.breakpoints?.unit?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:sizingTransform(t)}};return handleBreakpoints(e,e.maxWidth,styleFromPropValue)}return null};maxWidth.filterProps=["maxWidth"];var Pi=style$1({prop:"minWidth",transform:sizingTransform}),Ti=style$1({prop:"height",transform:sizingTransform}),Ai=style$1({prop:"maxHeight",transform:sizingTransform}),Ri=style$1({prop:"minHeight",transform:sizingTransform}),Mi=(style$1({prop:"size",cssProperty:"width",transform:sizingTransform}),style$1({prop:"size",cssProperty:"height",transform:sizingTransform}),compose(_i,maxWidth,Pi,Ti,Ai,Ri,style$1({prop:"boxSizing"})),{border:{themeKey:"borders",transform:borderTransform},borderTop:{themeKey:"borders",transform:borderTransform},borderRight:{themeKey:"borders",transform:borderTransform},borderBottom:{themeKey:"borders",transform:borderTransform},borderLeft:{themeKey:"borders",transform:borderTransform},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:borderTransform},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:borderRadius},color:{themeKey:"palette",transform:paletteTransform},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:paletteTransform},backgroundColor:{themeKey:"palette",transform:paletteTransform},p:{style:padding},pt:{style:padding},pr:{style:padding},pb:{style:padding},pl:{style:padding},px:{style:padding},py:{style:padding},padding:{style:padding},paddingTop:{style:padding},paddingRight:{style:padding},paddingBottom:{style:padding},paddingLeft:{style:padding},paddingX:{style:padding},paddingY:{style:padding},paddingInline:{style:padding},paddingInlineStart:{style:padding},paddingInlineEnd:{style:padding},paddingBlock:{style:padding},paddingBlockStart:{style:padding},paddingBlockEnd:{style:padding},m:{style:margin},mt:{style:margin},mr:{style:margin},mb:{style:margin},ml:{style:margin},mx:{style:margin},my:{style:margin},margin:{style:margin},marginTop:{style:margin},marginRight:{style:margin},marginBottom:{style:margin},marginLeft:{style:margin},marginX:{style:margin},marginY:{style:margin},marginInline:{style:margin},marginInlineStart:{style:margin},marginInlineEnd:{style:margin},marginBlock:{style:margin},marginBlockStart:{style:margin},marginBlockEnd:{style:margin},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:gap},rowGap:{style:rowGap},columnGap:{style:columnGap},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:sizingTransform},maxWidth:{style:maxWidth},minWidth:{transform:sizingTransform},height:{transform:sizingTransform},maxHeight:{transform:sizingTransform},minHeight:{transform:sizingTransform},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}}),Di={};function unstable_createStyleFunctionSx(){function styleFunctionSx(e){if(!e.sx)return null;const{sx:t,theme:n=Di,nested:a}=e,o=n.unstable_sxConfig??Mi,i={sx:null,theme:n,nested:!0};function process(t){let s=t;if("function"==typeof t)s=t(n);else if("object"!=typeof t)return t;if(!s)return null;const l=n.breakpoints??ni,c=createEmptyBreakpointObject(l);for(const a in s){const t=callIfFn(s[a],n);null!=t&&("object"==typeof t?o[a]?setThemeValue(c,a,t,n,o):hasBreakpoint(l,t)?iterateBreakpoints(c,e.theme,t,(e,t)=>{c[e][a]=t}):(i.sx=t,c[a]=styleFunctionSx(i)):setThemeValue(c,a,t,n,o))}return!a&&n.modularCssLayers?{"@layer sx":sortContainerQueries(n,removeUnusedBreakpoints(l,c))}:sortContainerQueries(n,removeUnusedBreakpoints(l,c))}return Array.isArray(t)?t.map(process):process(t)}return styleFunctionSx.filterProps=["sx"],styleFunctionSx}var Oi=unstable_createStyleFunctionSx();function setThemeValue(e,t,n,a,o){const i=o[t];if(!i)return void(e[t]=n);if(null==n)return;const{themeKey:s}=i;if("typography"===s&&"inherit"===n)return void(e[t]=n);const{style:l}=i;if(l)return void fastDeepAssign(e,l({[t]:n,theme:a}));const{cssProperty:c=t,transform:u}=i,d=getPath(a,s);iterateBreakpoints(e,a,n,(n,a)=>{const o=getStyleValue2(d,u,a,t);!1===c?fastDeepAssign(n?e[n]:e,o):n?e[n][c]=o:e[c]=o})}function callIfFn(e,t){return"function"==typeof e?e(t):e}function applyStyles$1(e,t){const n=this;if(n.vars){if(!n.colorSchemes?.[e]||"function"!=typeof n.getColorSchemeSelector)return{};let a=n.getColorSchemeSelector(e);return"&"===a?t:((a.includes("data-")||a.includes("."))&&(a=`*:where(${a.replace(/\s*&$/,"")}) &`),{[a]:t})}return n.palette.mode===e?t:{}}function createTheme$1(e={},...t){const{breakpoints:n={},palette:a={},spacing:o,shape:i={},...s}=e;let l=deepmerge({breakpoints:createBreakpoints(n),direction:"ltr",components:{},palette:{mode:"light",...a},spacing:createSpacing(o),shape:{...ei,...i}},s);return l=cssContainerQueries(l),l.applyStyles=applyStyles$1,l=t.reduce((e,t)=>deepmerge(e,t),l),l.unstable_sxConfig={...Mi,...s?.unstable_sxConfig},l.unstable_sx=function sx(e){return Oi({sx:e,theme:this})},l.internal_cache={},l}function isObjectEmpty$1(e){return 0===Object.keys(e).length}function useTheme$3(e=null){const t=c.useContext(Do);return!t||isObjectEmpty$1(t)?e:t}var $i=createTheme$1();function useTheme$2(e=$i){return useTheme$3(e)}function wrapGlobalLayer(e){const t=internal_serializeStyles(e);return e!==t&&t.styles?(t.styles.match(/^@layer\s+[^{]*$/)||(t.styles=`@layer global{${t.styles}}`),t):e}function GlobalStyles$1({styles:e,themeId:t,defaultTheme:n={}}){const a=useTheme$2(n),o=t&&a[t]||a;let i="function"==typeof e?e(o):e;return o.modularCssLayers&&(i=Array.isArray(i)?i.map(e=>wrapGlobalLayer("function"==typeof e?e(o):e)):wrapGlobalLayer(i)),(0,ka.jsx)(GlobalStyles$2,{styles:i})}var defaultGenerator=e=>e,Ii=(()=>{let e=defaultGenerator;return{configure(t){e=t},generate:t=>e(t),reset(){e=defaultGenerator}}})();function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function clsx(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}function createBox(e={}){const{themeId:t,defaultTheme:n,defaultClassName:a="MuiBox-root",generateClassName:o}=e,i=styled$1("div",{shouldForwardProp:e=>"theme"!==e&&"sx"!==e&&"as"!==e})(Oi);return c.forwardRef(function Box(e,s){const l=useTheme$2(n),{className:c,component:u="div",...d}=e;return(0,ka.jsx)(i,{as:u,ref:s,className:clsx(c,o?o(a):a),theme:t&&l[t]||l,...d})})}var Ni={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function generateUtilityClass(e,t,n="Mui"){const a=Ni[t];return a?`${n}-${a}`:`${Ii.generate(e)}-${t}`}function generateUtilityClasses(e,t,n="Mui"){const a={};return t.forEach(t=>{a[t]=generateUtilityClass(e,t,n)}),a}function preprocessStyles(e){const{variants:t,...n}=e,a={variants:t,style:internal_serializeStyles(n),isProcessed:!0};return a.style===n||t&&t.forEach(e=>{"function"!=typeof e.style&&(e.style=internal_serializeStyles(e.style))}),a}var zi=createTheme$1();function shouldForwardProp(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}function shallowLayer(e,t){return t&&e&&"object"==typeof e&&e.styles&&!e.styles.startsWith("@layer")&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}function defaultOverridesResolver(e){return e?(t,n)=>n[e]:null}function attachTheme(e,t,n){e.theme=isObjectEmpty$2(e.theme)?n:e.theme[t]||e.theme}function processStyle(e,t,n){const a="function"==typeof t?t(e):t;if(Array.isArray(a))return a.flatMap(t=>processStyle(e,t,n));if(Array.isArray(a?.variants)){let t;if(a.isProcessed)t=n?shallowLayer(a.style,n):a.style;else{const{variants:e,...o}=a;t=n?shallowLayer(internal_serializeStyles(o),n):o}return processStyleVariants(e,a.variants,[t],n)}return a?.isProcessed?n?shallowLayer(internal_serializeStyles(a.style),n):a.style:n?shallowLayer(internal_serializeStyles(a),n):a}function processStyleVariants(e,t,n=[],a=void 0){let o;e:for(let i=0;i<t.length;i+=1){const s=t[i];if("function"==typeof s.props){if(o??={...e,...e.ownerState,ownerState:e.ownerState},!s.props(o))continue}else for(const t in s.props)if(e[t]!==s.props[t]&&e.ownerState?.[t]!==s.props[t])continue e;"function"==typeof s.style?(o??={...e,...e.ownerState,ownerState:e.ownerState},n.push(a?shallowLayer(internal_serializeStyles(s.style(o)),a):s.style(o))):n.push(a?shallowLayer(internal_serializeStyles(s.style),a):s.style)}return n}function createStyled(e={}){const{themeId:t,defaultTheme:n=zi,rootShouldForwardProp:a=shouldForwardProp,slotShouldForwardProp:o=shouldForwardProp}=e;function styleAttachTheme(e){attachTheme(e,t,n)}const styled=(e,t={})=>{internal_mutateStyles(e,e=>e.filter(e=>e!==Oi));const{name:n,slot:i,skipVariantsResolver:s,skipSx:l,overridesResolver:c=defaultOverridesResolver(lowercaseFirstLetter(i)),...u}=t,d=n&&n.startsWith("Mui")||i?"components":"custom",p=void 0!==s?s:i&&"Root"!==i&&"root"!==i||!1,m=l||!1;let g=shouldForwardProp;"Root"===i||"root"===i?g=a:i?g=o:isStringTag(e)&&(g=void 0);const h=styled$1(e,{shouldForwardProp:g,label:generateStyledLabel(n,i),...u}),transformStyle=e=>{if(e.__emotion_real===e)return e;if("function"==typeof e)return function styleFunctionProcessor(t){return processStyle(t,e,t.theme.modularCssLayers?d:void 0)};if(isPlainObject$1(e)){const t=preprocessStyles(e);return function styleObjectProcessor(e){return t.variants?processStyle(e,t,e.theme.modularCssLayers?d:void 0):e.theme.modularCssLayers?shallowLayer(t.style,d):t.style}}return e},muiStyledResolver=(...t)=>{const a=[],o=t.map(transformStyle),i=[];if(a.push(styleAttachTheme),n&&c&&i.push(function styleThemeOverrides(e){const t=e.theme.components?.[n]?.styleOverrides;if(!t)return null;const a={};for(const n in t)a[n]=processStyle(e,t[n],e.theme.modularCssLayers?"theme":void 0);return c(e,a)}),n&&!p&&i.push(function styleThemeVariants(e){const t=e.theme?.components?.[n]?.variants;return t?processStyleVariants(e,t,[],e.theme.modularCssLayers?"theme":void 0):null}),m||i.push(Oi),Array.isArray(o[0])){const e=o.shift(),t=new Array(a.length).fill(""),n=new Array(i.length).fill("");let s;s=[...t,...e,...n],s.raw=[...t,...e.raw,...n],a.unshift(s)}const s=h(...a,...o,...i);return e.muiName&&(s.muiName=e.muiName),s};return h.withConfig&&(muiStyledResolver.withConfig=h.withConfig),muiStyledResolver};return styled}function generateStyledLabel(e,t){let n;return n}function isStringTag(e){return"string"==typeof e&&e.charCodeAt(0)>96}function lowercaseFirstLetter(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e}function resolveProps(e,t,n=!1){const a={...t};for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const i=o;if("components"===i||"slots"===i)a[i]={...e[i],...a[i]};else if("componentsProps"===i||"slotProps"===i){const o=e[i],s=t[i];if(s)if(o){a[i]={...s};for(const e in o)if(Object.prototype.hasOwnProperty.call(o,e)){const t=e;a[i][t]=resolveProps(o[t],s[t],n)}}else a[i]=s;else a[i]=o||{}}else"className"===i&&n&&void 0!==t.className?a.className=clsx(e?.className,t?.className):"style"===i&&n&&t.style?a.style={...e?.style,...t?.style}:void 0===a[i]&&(a[i]=e[i])}return a}var Li="undefined"!=typeof window?c.useLayoutEffect:c.useEffect;function clamp(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}function clampWrapper(e,t=0,n=1){return clamp(e,t,n)}function hexToRgb(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&1===n[0].length&&(n=n.map(e=>e+e)),n?`rgb${4===n.length?"a":""}(${n.map((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(e){if(e.type)return e;if("#"===e.charAt(0))return decomposeColor(hexToRgb(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(formatMuiErrorMessage(9,e));let a,o=e.substring(t+1,e.length-1);if("color"===n){if(o=o.split(" "),a=o.shift(),4===o.length&&"/"===o[3].charAt(0)&&(o[3]=o[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(a))throw new Error(formatMuiErrorMessage(10,a))}else o=o.split(",");return o=o.map(e=>parseFloat(e)),{type:n,values:o,colorSpace:a}}var colorChannel=e=>{const t=decomposeColor(e);return t.values.slice(0,3).map((e,n)=>t.type.includes("hsl")&&0!==n?`${e}%`:e).join(" ")},private_safeColorChannel=(e,t)=>{try{return colorChannel(e)}catch(n){return e}};function recomposeColor(e){const{type:t,colorSpace:n}=e;let{values:a}=e;return t.includes("rgb")?a=a.map((e,t)=>t<3?parseInt(e,10):e):t.includes("hsl")&&(a[1]=`${a[1]}%`,a[2]=`${a[2]}%`),a=t.includes("color")?`${n} ${a.join(" ")}`:`${a.join(", ")}`,`${t}(${a})`}function hslToRgb(e){e=decomposeColor(e);const{values:t}=e,n=t[0],a=t[1]/100,o=t[2]/100,i=a*Math.min(o,1-o),f=(e,t=(e+n/30)%12)=>o-i*Math.max(Math.min(t-3,9-t,1),-1);let s="rgb";const l=[Math.round(255*f(0)),Math.round(255*f(8)),Math.round(255*f(4))];return"hsla"===e.type&&(s+="a",l.push(t[3])),recomposeColor({type:s,values:l})}function getLuminance(e){let t="hsl"===(e=decomposeColor(e)).type||"hsla"===e.type?decomposeColor(hslToRgb(e)).values:e.values;return t=t.map(t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function getContrastRatio(e,t){const n=getLuminance(e),a=getLuminance(t);return(Math.max(n,a)+.05)/(Math.min(n,a)+.05)}function alpha(e,t){return e=decomposeColor(e),t=clampWrapper(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]=`/${t}`:e.values[3]=t,recomposeColor(e)}function private_safeAlpha(e,t,n){try{return alpha(e,t)}catch(a){return e}}function darken(e,t){if(e=decomposeColor(e),t=clampWrapper(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return recomposeColor(e)}function private_safeDarken(e,t,n){try{return darken(e,t)}catch(a){return e}}function lighten(e,t){if(e=decomposeColor(e),t=clampWrapper(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return recomposeColor(e)}function private_safeLighten(e,t,n){try{return lighten(e,t)}catch(a){return e}}function emphasize(e,t=.15){return getLuminance(e)>.5?darken(e,t):lighten(e,t)}function private_safeEmphasize(e,t,n){try{return emphasize(e,t)}catch(a){return e}}var ji=c.createContext(null);function useTheme$1(){return c.useContext(ji)}var Bi="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__";function mergeOuterLocalTheme(e,t){return"function"==typeof t?t(e):{...e,...t}}function ThemeProvider$2(e){const{children:t,theme:n}=e,a=useTheme$1(),o=c.useMemo(()=>{const e=null===a?{...n}:mergeOuterLocalTheme(a,n);return null!=e&&(e[Bi]=null!==a),e},[n,a]);return(0,ka.jsx)(ji.Provider,{value:o,children:t})}var Fi=c.createContext();function RtlProvider({value:e,...t}){return(0,ka.jsx)(Fi.Provider,{value:e??!0,...t})}var useRtl=()=>c.useContext(Fi)??!1,qi=c.createContext(void 0);function DefaultPropsProvider({value:e,children:t}){return(0,ka.jsx)(qi.Provider,{value:e,children:t})}function getThemeProps(e){const{theme:t,name:n,props:a}=e;if(!t||!t.components||!t.components[n])return a;const o=t.components[n];return o.defaultProps?resolveProps(o.defaultProps,a,t.components.mergeClassNameAndStyle):o.styleOverrides||o.variants?a:resolveProps(o,a,t.components.mergeClassNameAndStyle)}function useDefaultProps$1({props:e,name:t}){return getThemeProps({props:e,name:t,theme:{components:c.useContext(qi)}})}var Ui=0;function useGlobalId(e){const[t,n]=c.useState(e),a=e||t;return c.useEffect(()=>{null==t&&n(`mui-${Ui+=1}`)},[t]),a}var Vi={...c}.useId;function useId(e){if(void 0!==Vi){const t=Vi();return e??t}return useGlobalId(e)}function useLayerOrder(e){const t=useTheme$3(),n=useId()||"",{modularCssLayers:a}=e;let o="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return o=a&&null===t?"string"==typeof a?a.replace(/mui(?!\.)/g,o):`@layer ${o};`:"",Li(()=>{const e=document.querySelector("head");if(!e)return;const t=e.firstChild;if(o){if(t&&t.hasAttribute?.("data-mui-layer-order")&&t.getAttribute("data-mui-layer-order")===n)return;const a=document.createElement("style");a.setAttribute("data-mui-layer-order",n),a.textContent=o,e.prepend(a)}else e.querySelector(`style[data-mui-layer-order="${n}"]`)?.remove()},[o,n]),o?(0,ka.jsx)(GlobalStyles$1,{styles:o}):null}var Hi={};function useThemeScoping(e,t,n,a=!1){return c.useMemo(()=>{const o=e&&t[e]||t;if("function"==typeof n){const i=n(o),s=e?{...t,[e]:i}:i;return a?()=>s:s}return e?{...t,[e]:n}:{...t,...n}},[e,t,n,a])}function ThemeProvider$1(e){const{children:t,theme:n,themeId:a}=e,o=useTheme$3(Hi),i=useTheme$1()||Hi,s=useThemeScoping(a,o,n),l=useThemeScoping(a,i,n,!0),c="rtl"===(a?s[a]:s).direction,u=useLayerOrder(s);return(0,ka.jsx)(ThemeProvider$2,{theme:l,children:(0,ka.jsx)(Do.Provider,{value:s,children:(0,ka.jsx)(RtlProvider,{value:c,children:(0,ka.jsxs)(DefaultPropsProvider,{value:a?s[a].components:s.components,children:[u,t]})})})})}var Wi={theme:void 0};function unstable_memoTheme(e){let t,n;return function styleMemoized(a){let o=t;return void 0!==o&&a.theme===n||(Wi.theme=a.theme,o=preprocessStyles(e(Wi)),t=o,n=a.theme),o}}var Gi="mode",Yi="color-scheme",Ki="data-color-scheme";function InitColorSchemeScript(e){const{defaultMode:t="system",defaultLightColorScheme:n="light",defaultDarkColorScheme:a="dark",modeStorageKey:o=Gi,colorSchemeStorageKey:i=Yi,attribute:s=Ki,colorSchemeNode:l="document.documentElement",nonce:c}=e||{};let u="",d=s;if("class"===s&&(d=".%s"),"data"===s&&(d="[data-%s]"),d.startsWith(".")){const e=d.substring(1);u+=`${l}.classList.remove('${e}'.replace('%s', light), '${e}'.replace('%s', dark));\n ${l}.classList.add('${e}'.replace('%s', colorScheme));`}const p=d.match(/\[([^[\]]+)\]/);if(p){const[e,t]=p[1].split("=");t||(u+=`${l}.removeAttribute('${e}'.replace('%s', light));\n ${l}.removeAttribute('${e}'.replace('%s', dark));`),u+=`\n ${l}.setAttribute('${e}'.replace('%s', colorScheme), ${t?`${t}.replace('%s', colorScheme)`:'""'});`}else".%s"!==d&&(u+=`${l}.setAttribute('${d}', colorScheme);`);return(0,ka.jsx)("script",{suppressHydrationWarning:!0,nonce:"undefined"==typeof window?c:"",dangerouslySetInnerHTML:{__html:`(function() {\ntry {\n let colorScheme = '';\n const mode = localStorage.getItem('${o}') || '${t}';\n const dark = localStorage.getItem('${i}-dark') || '${a}';\n const light = localStorage.getItem('${i}-light') || '${n}';\n if (mode === 'system') {\n // handle system mode\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n if (mql.matches) {\n colorScheme = dark\n } else {\n colorScheme = light\n }\n }\n if (mode === 'light') {\n colorScheme = light;\n }\n if (mode === 'dark') {\n colorScheme = dark;\n }\n if (colorScheme) {\n ${u}\n }\n} catch(e){}})();`}},"mui-color-scheme-init")}function noop$4(){}var localStorageManager=({key:e,storageWindow:t})=>(t||"undefined"==typeof window||(t=window),{get(n){if("undefined"==typeof window)return;if(!t)return n;let a;try{a=t.localStorage.getItem(e)}catch{}return a||n},set:n=>{if(t)try{t.localStorage.setItem(e,n)}catch{}},subscribe:n=>{if(!t)return noop$4;const listener=t=>{const a=t.newValue;t.key===e&&n(a)};return t.addEventListener("storage",listener),()=>{t.removeEventListener("storage",listener)}}});function noop$3(){}function getSystemMode(e){if("undefined"!=typeof window&&"function"==typeof window.matchMedia&&"system"===e)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function processState(e,t){return"light"===e.mode||"system"===e.mode&&"light"===e.systemMode?t("light"):"dark"===e.mode||"system"===e.mode&&"dark"===e.systemMode?t("dark"):void 0}function getColorScheme(e){return processState(e,t=>"light"===t?e.lightColorScheme:"dark"===t?e.darkColorScheme:void 0)}function useCurrentColorScheme(e){const{defaultMode:t="light",defaultLightColorScheme:n,defaultDarkColorScheme:a,supportedColorSchemes:o=[],modeStorageKey:i=Gi,colorSchemeStorageKey:s=Yi,storageWindow:l=("undefined"==typeof window?void 0:window),storageManager:u=localStorageManager,noSsr:d=!1}=e,p=o.join(","),m=o.length>1,g=c.useMemo(()=>u?.({key:i,storageWindow:l}),[u,i,l]),h=c.useMemo(()=>u?.({key:`${s}-light`,storageWindow:l}),[u,s,l]),b=c.useMemo(()=>u?.({key:`${s}-dark`,storageWindow:l}),[u,s,l]),[y,v]=c.useState(()=>{const e=g?.get(t)||t,o=h?.get(n)||n,i=b?.get(a)||a;return{mode:e,systemMode:getSystemMode(e),lightColorScheme:o,darkColorScheme:i}}),[S,x]=c.useState(d||!m);c.useEffect(()=>{x(!0)},[]);const w=getColorScheme(y),C=c.useCallback(e=>{v(n=>{if(e===n.mode)return n;const a=e??t;return g?.set(a),{...n,mode:a,systemMode:getSystemMode(a)}})},[g,t]),k=c.useCallback(e=>{e?"string"==typeof e?e&&!p.includes(e)?console.error(`\`${e}\` does not exist in \`theme.colorSchemes\`.`):v(t=>{const n={...t};return processState(t,t=>{"light"===t&&(h?.set(e),n.lightColorScheme=e),"dark"===t&&(b?.set(e),n.darkColorScheme=e)}),n}):v(t=>{const o={...t},i=null===e.light?n:e.light,s=null===e.dark?a:e.dark;return i&&(p.includes(i)?(o.lightColorScheme=i,h?.set(i)):console.error(`\`${i}\` does not exist in \`theme.colorSchemes\`.`)),s&&(p.includes(s)?(o.darkColorScheme=s,b?.set(s)):console.error(`\`${s}\` does not exist in \`theme.colorSchemes\`.`)),o}):v(e=>(h?.set(n),b?.set(a),{...e,lightColorScheme:n,darkColorScheme:a}))},[p,h,b,n,a]),E=c.useCallback(e=>{"system"===y.mode&&v(t=>{const n=e?.matches?"dark":"light";return t.systemMode===n?t:{...t,systemMode:n}})},[y.mode]),P=c.useRef(E);return P.current=E,c.useEffect(()=>{if("function"!=typeof window.matchMedia||!m)return;const handler=(...e)=>P.current(...e),e=window.matchMedia("(prefers-color-scheme: dark)");return e.addListener(handler),handler(e),()=>{e.removeListener(handler)}},[m]),c.useEffect(()=>{if(m){const e=g?.subscribe(e=>{e&&!["light","dark","system"].includes(e)||C(e||t)})||noop$3,n=h?.subscribe(e=>{e&&!p.match(e)||k({light:e})})||noop$3,a=b?.subscribe(e=>{e&&!p.match(e)||k({dark:e})})||noop$3;return()=>{e(),n(),a()}}},[k,C,p,t,l,m,g,h,b]),{...y,mode:S?y.mode:void 0,systemMode:S?y.systemMode:void 0,colorScheme:S?w:void 0,setMode:C,setColorScheme:k}}var Qi="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function createCssVarsProvider(e){const{themeId:t,theme:n={},modeStorageKey:a=Gi,colorSchemeStorageKey:o=Yi,disableTransitionOnChange:i=!1,defaultColorScheme:s,resolveTheme:l}=e,u={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},d=c.createContext(void 0),useColorScheme=()=>c.useContext(d)||u,p={},m={};function CssVarsProvider(e){const{children:u,theme:g,modeStorageKey:h=a,colorSchemeStorageKey:b=o,disableTransitionOnChange:y=i,storageManager:v,storageWindow:S=("undefined"==typeof window?void 0:window),documentNode:x=("undefined"==typeof document?void 0:document),colorSchemeNode:w=("undefined"==typeof document?void 0:document.documentElement),disableNestedContext:C=!1,disableStyleSheetGeneration:k=!1,defaultMode:E="system",forceThemeRerender:P=!1,noSsr:T}=e,R=c.useRef(!1),M=useTheme$1(),D=c.useContext(d),O=!!D&&!C,$=c.useMemo(()=>g||("function"==typeof n?n():n),[g]),I=$[t],N=I||$,{colorSchemes:L=p,components:j=m,cssVarPrefix:B}=N,F=Object.keys(L).filter(e=>!!L[e]).join(","),q=c.useMemo(()=>F.split(","),[F]),U="string"==typeof s?s:s.light,V="string"==typeof s?s:s.dark,{mode:H,setMode:W,systemMode:G,lightColorScheme:Y,darkColorScheme:K,colorScheme:Q,setColorScheme:Z}=useCurrentColorScheme({supportedColorSchemes:q,defaultLightColorScheme:U,defaultDarkColorScheme:V,modeStorageKey:h,colorSchemeStorageKey:b,defaultMode:L[U]&&L[V]?E:L[N.defaultColorScheme]?.palette?.mode||N.palette?.mode,storageManager:v,storageWindow:S,noSsr:T});let X=H,J=Q;O&&(X=D.mode,J=D.colorScheme);let ee=J||N.defaultColorScheme;N.vars&&!P&&(ee=N.defaultColorScheme);const te=c.useMemo(()=>{const e=N.generateThemeVars?.()||N.vars,t={...N,components:j,colorSchemes:L,cssVarPrefix:B,vars:e};if("function"==typeof t.generateSpacing&&(t.spacing=t.generateSpacing()),ee){const e=L[ee];e&&"object"==typeof e&&Object.keys(e).forEach(n=>{e[n]&&"object"==typeof e[n]?t[n]={...t[n],...e[n]}:t[n]=e[n]})}return l?l(t):t},[N,ee,j,L,B]),re=N.colorSchemeSelector;Li(()=>{if(J&&w&&re&&"media"!==re){const e=re;let t=re;if("class"===e&&(t=".%s"),"data"===e&&(t="[data-%s]"),e?.startsWith("data-")&&!e.includes("%s")&&(t=`[${e}="%s"]`),t.startsWith("."))w.classList.remove(...q.map(e=>t.substring(1).replace("%s",e))),w.classList.add(t.substring(1).replace("%s",J));else{const e=t.replace("%s",J).match(/\[([^\]]+)\]/);if(e){const[t,n]=e[1].split("=");n||q.forEach(e=>{w.removeAttribute(t.replace(J,e))}),w.setAttribute(t,n?n.replace(/"|'/g,""):"")}else w.setAttribute(t,J)}}},[J,re,w,q]),c.useEffect(()=>{let e;if(y&&R.current&&x){const t=x.createElement("style");t.appendChild(x.createTextNode(Qi)),x.head.appendChild(t),window.getComputedStyle(x.body),e=setTimeout(()=>{x.head.removeChild(t)},1)}return()=>{clearTimeout(e)}},[J,y,x]),c.useEffect(()=>(R.current=!0,()=>{R.current=!1}),[]);const ne=c.useMemo(()=>({allColorSchemes:q,colorScheme:J,darkColorScheme:K,lightColorScheme:Y,mode:X,setColorScheme:Z,setMode:W,systemMode:G}),[q,J,K,Y,X,Z,W,G,te.colorSchemeSelector]);let ae=!0;(k||!1===N.cssVariables||O&&M?.cssVarPrefix===B)&&(ae=!1);const oe=(0,ka.jsxs)(c.Fragment,{children:[(0,ka.jsx)(ThemeProvider$1,{themeId:I?t:void 0,theme:te,children:u}),ae&&(0,ka.jsx)(GlobalStyles$2,{styles:te.generateStyleSheets?.()||[]})]});return O?oe:(0,ka.jsx)(d.Provider,{value:ne,children:oe})}const g="string"==typeof s?s:s.light,h="string"==typeof s?s:s.dark;return{CssVarsProvider,useColorScheme,getInitColorSchemeScript:e=>InitColorSchemeScript({colorSchemeStorageKey:o,defaultLightColorScheme:g,defaultDarkColorScheme:h,modeStorageKey:a,...e})}}function createGetCssVar$1(e=""){function appendVar(...t){if(!t.length)return"";const n=t[0];return"string"!=typeof n||n.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, ${n}`:`, var(--${e?`${e}-`:""}${n}${appendVar(...t.slice(1))})`}return(t,...n)=>`var(--${e?`${e}-`:""}${t}${appendVar(...n)})`}var assignNestedKeys=(e,t,n,a=[])=>{let o=e;t.forEach((e,i)=>{i===t.length-1?Array.isArray(o)?o[Number(e)]=n:o&&"object"==typeof o&&(o[e]=n):o&&"object"==typeof o&&(o[e]||(o[e]=a.includes(e)?[]:{}),o=o[e])})},walkObjectDeep=(e,t,n)=>{function recurse(e,a=[],o=[]){Object.entries(e).forEach(([e,i])=>{(!n||n&&!n([...a,e]))&&null!=i&&("object"==typeof i&&Object.keys(i).length>0?recurse(i,[...a,e],Array.isArray(i)?[...o,e]:o):t([...a,e],i,o))})}recurse(e)},getCssValue=(e,t)=>"number"==typeof t?["lineHeight","fontWeight","opacity","zIndex"].some(t=>e.includes(t))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function cssVarsParser(e,t){const{prefix:n,shouldSkipGeneratingVar:a}=t||{},o={},i={},s={};return walkObjectDeep(e,(e,t,l)=>{if(!("string"!=typeof t&&"number"!=typeof t||a&&a(e,t))){const a=`--${n?`${n}-`:""}${e.join("-")}`,c=getCssValue(e,t);Object.assign(o,{[a]:c}),assignNestedKeys(i,e,`var(${a})`,l),assignNestedKeys(s,e,`var(${a}, ${c})`,l)}},e=>"vars"===e[0]),{css:o,vars:i,varsWithDefaults:s}}function prepareCssVars(e,t={}){const{getSelector:n=defaultGetSelector,disableCssColorScheme:a,colorSchemeSelector:o,enableContrastVars:i}=t,{colorSchemes:s={},components:l,defaultColorScheme:c="light",...u}=e,{vars:d,css:p,varsWithDefaults:m}=cssVarsParser(u,t);let g=m;const h={},{[c]:b,...y}=s;if(Object.entries(y||{}).forEach(([e,n])=>{const{vars:a,css:o,varsWithDefaults:i}=cssVarsParser(n,t);g=deepmerge(g,i),h[e]={css:o,vars:a}}),b){const{css:e,vars:n,varsWithDefaults:a}=cssVarsParser(b,t);g=deepmerge(g,a),h[c]={css:e,vars:n}}function defaultGetSelector(t,n){let a=o;if("class"===o&&(a=".%s"),"data"===o&&(a="[data-%s]"),o?.startsWith("data-")&&!o.includes("%s")&&(a=`[${o}="%s"]`),t){if("media"===a)return e.defaultColorScheme===t?":root":{[`@media (prefers-color-scheme: ${s[t]?.palette?.mode||t})`]:{":root":n}};if(a)return e.defaultColorScheme===t?`:root, ${a.replace("%s",String(t))}`:a.replace("%s",String(t))}return":root"}const generateStyleSheets=()=>{const t=[],o=e.defaultColorScheme||"light";function insertStyleSheet(e,n){Object.keys(n).length&&t.push("string"==typeof e?{[e]:{...n}}:e)}insertStyleSheet(n(void 0,{...p}),p);const{[o]:l,...c}=h;if(l){const{css:e}=l,t=s[o]?.palette?.mode,i=!a&&t?{colorScheme:t,...e}:{...e};insertStyleSheet(n(o,{...i}),i)}return Object.entries(c).forEach(([e,{css:t}])=>{const o=s[e]?.palette?.mode,i=!a&&o?{colorScheme:o,...t}:{...t};insertStyleSheet(n(e,{...i}),i)}),i&&t.push({":root":{"--__l-threshold":"0.7","--__l":"clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)","--__a":"clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)"}}),t};return{vars:g,generateThemeVars:()=>{let e={...d};return Object.entries(h).forEach(([,{vars:t}])=>{e=deepmerge(e,t)}),e},generateStyleSheets}}function createGetColorSchemeSelector(e){return function getColorSchemeSelector(t){return"media"===e?`@media (prefers-color-scheme: ${t})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${t}"] &`:"class"===e?`.${t} &`:"data"===e?`[data-${t}] &`:`${e.replace("%s",t)} &`:"&"}}function composeClasses(e,t,n=void 0){const a={};for(const o in e){const i=e[o];let s="",l=!0;for(let e=0;e<i.length;e+=1){const a=i[e];a&&(s+=(!0===l?"":" ")+t(a),l=!1,n&&n[a]&&(s+=" "+n[a]))}a[o]=s}return a}function isMuiElement(e,t){return c.isValidElement(e)&&-1!==t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)}function getLight(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:Ea.white,default:Ea.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}var Zi=getLight();function getDark(){return{text:{primary:Ea.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:Ea.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}var Xi=getDark();function addLightOrDark(e,t,n,a){const o=a.light||a,i=a.dark||1.5*a;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=lighten(e.main,o):"dark"===t&&(e.dark=darken(e.main,i)))}function mixLightOrDark(e,t,n,a,o){const i=o.light||o,s=o.dark||1.5*o;t[n]||(t.hasOwnProperty(a)?t[n]=t[a]:"light"===n?t.light=`color-mix(in ${e}, ${t.main}, #fff ${(100*i).toFixed(0)}%)`:"dark"===n&&(t.dark=`color-mix(in ${e}, ${t.main}, #000 ${(100*s).toFixed(0)}%)`))}function getDefaultPrimary(e="light"){return"dark"===e?{main:Ta[200],light:Ta[50],dark:Ta[400]}:{main:Ta[700],light:Ta[400],dark:Ta[800]}}function getDefaultSecondary(e="light"){return"dark"===e?{main:Pa[200],light:Pa[50],dark:Pa[400]}:{main:Pa[500],light:Pa[300],dark:Pa[700]}}function getDefaultError(e="light"){return"dark"===e?{main:_a[500],light:_a[300],dark:_a[700]}:{main:_a[700],light:_a[400],dark:_a[800]}}function getDefaultInfo(e="light"){return"dark"===e?{main:Aa[400],light:Aa[300],dark:Aa[700]}:{main:Aa[700],light:Aa[500],dark:Aa[900]}}function getDefaultSuccess(e="light"){return"dark"===e?{main:Ra[400],light:Ra[300],dark:Ra[700]}:{main:Ra[800],light:Ra[500],dark:Ra[900]}}function getDefaultWarning(e="light"){return"dark"===e?{main:Ma[400],light:Ma[300],dark:Ma[700]}:{main:"#ed6c02",light:Ma[500],dark:Ma[900]}}function contrastColor(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function createPalette(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:a=.2,colorSpace:o,...i}=e,s=e.primary||getDefaultPrimary(t),l=e.secondary||getDefaultSecondary(t),c=e.error||getDefaultError(t),u=e.info||getDefaultInfo(t),d=e.success||getDefaultSuccess(t),p=e.warning||getDefaultWarning(t);function getContrastText(e){return o?contrastColor(e):getContrastRatio(e,Xi.text.primary)>=n?Xi.text.primary:Zi.text.primary}const augmentColor=({color:e,name:t,mainShade:n=500,lightShade:i=300,darkShade:s=700})=>{if(!(e={...e}).main&&e[n]&&(e.main=e[n]),!e.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,t?` (${t})`:"",n));if("string"!=typeof e.main)throw new Error(formatMuiErrorMessage(12,t?` (${t})`:"",JSON.stringify(e.main)));return o?(mixLightOrDark(o,e,"light",i,a),mixLightOrDark(o,e,"dark",s,a)):(addLightOrDark(e,"light",i,a),addLightOrDark(e,"dark",s,a)),e.contrastText||(e.contrastText=getContrastText(e.main)),e};let m;return"light"===t?m=getLight():"dark"===t&&(m=getDark()),deepmerge({common:{...Ea},mode:t,primary:augmentColor({color:s,name:"primary"}),secondary:augmentColor({color:l,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:augmentColor({color:c,name:"error"}),warning:augmentColor({color:p,name:"warning"}),info:augmentColor({color:u,name:"info"}),success:augmentColor({color:d,name:"success"}),grey:Da,contrastThreshold:n,getContrastText,augmentColor,tonalOffset:a,...m},i)}function prepareTypographyVars(e){const t={};return Object.entries(e).forEach(e=>{const[n,a]=e;"object"==typeof a&&(t[n]=`${a.fontStyle?`${a.fontStyle} `:""}${a.fontVariant?`${a.fontVariant} `:""}${a.fontWeight?`${a.fontWeight} `:""}${a.fontStretch?`${a.fontStretch} `:""}${a.fontSize||""}${a.lineHeight?`/${a.lineHeight} `:""}${a.fontFamily||""}`)}),t}function createMixins(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function round$2(e){return Math.round(1e5*e)/1e5}var Ji={textTransform:"uppercase"},es='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(e,t){const{fontFamily:n=es,fontSize:a=14,fontWeightLight:o=300,fontWeightRegular:i=400,fontWeightMedium:s=500,fontWeightBold:l=700,htmlFontSize:c=16,allVariants:u,pxToRem:d,...p}="function"==typeof t?t(e):t,m=a/14,g=d||(e=>e/c*m+"rem"),buildVariant=(e,t,a,o,i)=>({fontFamily:n,fontWeight:e,fontSize:g(t),lineHeight:a,...n===es?{letterSpacing:`${round$2(o/t)}em`}:{},...i,...u});return deepmerge({htmlFontSize:c,pxToRem:g,fontFamily:n,fontSize:a,fontWeightLight:o,fontWeightRegular:i,fontWeightMedium:s,fontWeightBold:l,h1:buildVariant(o,96,1.167,-1.5),h2:buildVariant(o,60,1.2,-.5),h3:buildVariant(i,48,1.167,0),h4:buildVariant(i,34,1.235,.25),h5:buildVariant(i,24,1.334,0),h6:buildVariant(s,20,1.6,.15),subtitle1:buildVariant(i,16,1.75,.15),subtitle2:buildVariant(s,14,1.57,.1),body1:buildVariant(i,16,1.5,.15),body2:buildVariant(i,14,1.43,.15),button:buildVariant(s,14,1.75,.4,Ji),caption:buildVariant(i,12,1.66,.4),overline:buildVariant(i,12,2.66,1,Ji),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},p,{clone:!1})}var ts=.2,rs=.14,ns=.12;function createShadow(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${ts})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${rs})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${ns})`].join(",")}var as=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],os={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},ss={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(e){return`${Math.round(e)}ms`}function getAutoHeightDuration(e){if(!e)return 0;const t=e/36;return Math.min(Math.round(10*(4+15*t**.25+t/5)),3e3)}function createTransitions(e){const t={...os,...e.easing},n={...ss,...e.duration};return{getAutoHeightDuration,create:(e=["all"],a={})=>{const{duration:o=n.standard,easing:i=t.easeInOut,delay:s=0,...l}=a;return(Array.isArray(e)?e:[e]).map(e=>`${e} ${"string"==typeof o?o:formatMs(o)} ${i} ${"string"==typeof s?s:formatMs(s)}`).join(",")},...e,easing:t,duration:n}}var ls={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function isSerializable(e){return isPlainObject$1(e)||void 0===e||"string"==typeof e||"boolean"==typeof e||"number"==typeof e||Array.isArray(e)}function stringifyTheme(e={}){const t={...e};function serializeTheme(e){const t=Object.entries(e);for(let n=0;n<t.length;n++){const[a,o]=t[n];!isSerializable(o)||a.startsWith("unstable_")||a.startsWith("internal_")?delete e[a]:isPlainObject$1(o)&&(e[a]={...o},serializeTheme(e[a]))}}return serializeTheme(t),`import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';\n\nconst theme = ${JSON.stringify(t,null,2)};\n\ntheme.breakpoints = createBreakpoints(theme.breakpoints || {});\ntheme.transitions = createTransitions(theme.transitions || {});\n\nexport default theme;`}function coefficientToPercentage(e){return"number"==typeof e?`${(100*e).toFixed(0)}%`:`calc((${e}) * 100%)`}var parseAddition=e=>{if(!Number.isNaN(+e))return+e;const t=e.match(/\d*\.?\d+/g);if(!t)return 0;let n=0;for(let a=0;a<t.length;a+=1)n+=+t[a];return n};function attachColorManipulators(e){Object.assign(e,{alpha(t,n){const a=this||e;return a.colorSpace?`oklch(from ${t} l c h / ${"string"==typeof n?`calc(${n})`:n})`:a.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${"string"==typeof n?`calc(${n})`:n})`:alpha(t,parseAddition(n))},lighten(t,n){const a=this||e;return a.colorSpace?`color-mix(in ${a.colorSpace}, ${t}, #fff ${coefficientToPercentage(n)})`:lighten(t,n)},darken(t,n){const a=this||e;return a.colorSpace?`color-mix(in ${a.colorSpace}, ${t}, #000 ${coefficientToPercentage(n)})`:darken(t,n)}})}function createThemeNoVars(e={},...t){const{breakpoints:n,mixins:a={},spacing:o,palette:i={},transitions:s={},typography:l={},shape:c,colorSpace:u,...d}=e;if(e.vars&&void 0===e.generateThemeVars)throw new Error(formatMuiErrorMessage(22));const p=createPalette({...i,colorSpace:u}),m=createTheme$1(e);let g=deepmerge(m,{mixins:createMixins(m.breakpoints,a),palette:p,shadows:as.slice(),typography:createTypography(p,l),transitions:createTransitions(s),zIndex:{...ls}});return g=deepmerge(g,d),g=t.reduce((e,t)=>deepmerge(e,t),g),g.unstable_sxConfig={...Mi,...d?.unstable_sxConfig},g.unstable_sx=function sx(e){return Oi({sx:e,theme:this})},g.toRuntimeSource=stringifyTheme,attachColorManipulators(g),g}function getOverlayAlpha(e){let t;return t=e<1?5.11916*e**2:4.5*Math.log(e+1)+2,Math.round(10*t)/1e3}var cs=[...Array(25)].map((e,t)=>{if(0===t)return"none";const n=getOverlayAlpha(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function getOpacity(e){return{inputPlaceholder:"dark"===e?.5:.42,inputUnderline:"dark"===e?.7:.42,switchTrackDisabled:"dark"===e?.2:.12,switchTrack:"dark"===e?.3:.38}}function getOverlays(e){return"dark"===e?cs:[]}function createColorScheme(e){const{palette:t={mode:"light"},opacity:n,overlays:a,colorSpace:o,...i}=e,s=createPalette({...t,colorSpace:o});return{palette:s,opacity:{...getOpacity(s.mode),...n},overlays:a||getOverlays(s.mode),...i}}function shouldSkipGeneratingVar(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||"palette"===e[0]&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var excludeVariablesFromRoot=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],createGetSelector_default=e=>(t,n)=>{const a=e.rootSelector||":root",o=e.colorSchemeSelector;let i=o;if("class"===o&&(i=".%s"),"data"===o&&(i="[data-%s]"),o?.startsWith("data-")&&!o.includes("%s")&&(i=`[${o}="%s"]`),e.defaultColorScheme===t){if("dark"===t){const o={};return excludeVariablesFromRoot(e.cssVarPrefix).forEach(e=>{o[e]=n[e],delete n[e]}),"media"===i?{[a]:n,"@media (prefers-color-scheme: dark)":{[a]:o}}:i?{[i.replace("%s",t)]:o,[`${a}, ${i.replace("%s",t)}`]:n}:{[a]:{...n,...o}}}if(i&&"media"!==i)return`${a}, ${i.replace("%s",String(t))}`}else if(t){if("media"===i)return{[`@media (prefers-color-scheme: ${String(t)})`]:{[a]:n}};if(i)return i.replace("%s",String(t))}return a};function assignNode(e,t){t.forEach(t=>{e[t]||(e[t]={})})}function setColor(e,t,n){!e[t]&&n&&(e[t]=n)}function toRgb(e){return"string"==typeof e&&e.startsWith("hsl")?hslToRgb(e):e}function setColorChannel(e,t){`${t}Channel`in e||(e[`${t}Channel`]=private_safeColorChannel(toRgb(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().\nTo suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function getSpacingVal(e){return"number"==typeof e?`${e}px`:"string"==typeof e||"function"==typeof e||Array.isArray(e)?e:"8px"}var silent=e=>{try{return e()}catch(t){}},createGetCssVar=(e="mui")=>createGetCssVar$1(e);function attachColorScheme$1(e,t,n,a,o){if(!n)return;n=!0===n?{}:n;const i="dark"===o?"dark":"light";if(!a)return void(t[o]=createColorScheme({...n,palette:{mode:i,...n?.palette},colorSpace:e}));const{palette:s,...l}=createThemeNoVars({...a,palette:{mode:i,...n?.palette},colorSpace:e});return t[o]={...n,palette:s,opacity:{...getOpacity(i),...n?.opacity},overlays:n?.overlays||getOverlays(i)},l}function createThemeWithVars(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:a,disableCssColorScheme:o=!1,cssVarPrefix:i="mui",nativeColor:s=!1,shouldSkipGeneratingVar:l=shouldSkipGeneratingVar,colorSchemeSelector:c=(n.light&&n.dark?"media":void 0),rootSelector:u=":root",...d}=e,p=Object.keys(n)[0],m=a||(n.light&&"light"!==p?"light":p),g=createGetCssVar(i),{[m]:h,light:b,dark:y,...v}=n,S={...v};let x,w=h;if(("dark"===m&&!("dark"in n)||"light"===m&&!("light"in n))&&(w=!0),!w)throw new Error(formatMuiErrorMessage(21,m));s&&(x="oklch");const C=attachColorScheme$1(x,S,w,d,m);b&&!S.light&&attachColorScheme$1(x,S,b,void 0,"light"),y&&!S.dark&&attachColorScheme$1(x,S,y,void 0,"dark");let k={defaultColorScheme:m,...C,cssVarPrefix:i,colorSchemeSelector:c,rootSelector:u,getCssVar:g,colorSchemes:S,font:{...prepareTypographyVars(C.typography),...C.font},spacing:getSpacingVal(d.spacing)};Object.keys(k.colorSchemes).forEach(e=>{const t=k.colorSchemes[e].palette,setCssVarColor=e=>{const n=e.split("-"),a=n[1],o=n[2];return g(e,t[a][o])};function colorMix(e,t,n){if(x){let a;return e===private_safeAlpha&&(a=`transparent ${(100*(1-n)).toFixed(0)}%`),e===private_safeDarken&&(a=`#000 ${(100*n).toFixed(0)}%`),e===private_safeLighten&&(a=`#fff ${(100*n).toFixed(0)}%`),`color-mix(in ${x}, ${t}, ${a})`}return e(t,n)}if("light"===t.mode&&(setColor(t.common,"background","#fff"),setColor(t.common,"onBackground","#000")),"dark"===t.mode&&(setColor(t.common,"background","#000"),setColor(t.common,"onBackground","#fff")),assignNode(t,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),"light"===t.mode){setColor(t.Alert,"errorColor",colorMix(private_safeDarken,s?g("palette-error-light"):t.error.light,.6)),setColor(t.Alert,"infoColor",colorMix(private_safeDarken,s?g("palette-info-light"):t.info.light,.6)),setColor(t.Alert,"successColor",colorMix(private_safeDarken,s?g("palette-success-light"):t.success.light,.6)),setColor(t.Alert,"warningColor",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.light,.6)),setColor(t.Alert,"errorFilledBg",setCssVarColor("palette-error-main")),setColor(t.Alert,"infoFilledBg",setCssVarColor("palette-info-main")),setColor(t.Alert,"successFilledBg",setCssVarColor("palette-success-main")),setColor(t.Alert,"warningFilledBg",setCssVarColor("palette-warning-main")),setColor(t.Alert,"errorFilledColor",silent(()=>t.getContrastText(t.error.main))),setColor(t.Alert,"infoFilledColor",silent(()=>t.getContrastText(t.info.main))),setColor(t.Alert,"successFilledColor",silent(()=>t.getContrastText(t.success.main))),setColor(t.Alert,"warningFilledColor",silent(()=>t.getContrastText(t.warning.main))),setColor(t.Alert,"errorStandardBg",colorMix(private_safeLighten,s?g("palette-error-light"):t.error.light,.9)),setColor(t.Alert,"infoStandardBg",colorMix(private_safeLighten,s?g("palette-info-light"):t.info.light,.9)),setColor(t.Alert,"successStandardBg",colorMix(private_safeLighten,s?g("palette-success-light"):t.success.light,.9)),setColor(t.Alert,"warningStandardBg",colorMix(private_safeLighten,s?g("palette-warning-light"):t.warning.light,.9)),setColor(t.Alert,"errorIconColor",setCssVarColor("palette-error-main")),setColor(t.Alert,"infoIconColor",setCssVarColor("palette-info-main")),setColor(t.Alert,"successIconColor",setCssVarColor("palette-success-main")),setColor(t.Alert,"warningIconColor",setCssVarColor("palette-warning-main")),setColor(t.AppBar,"defaultBg",setCssVarColor("palette-grey-100")),setColor(t.Avatar,"defaultBg",setCssVarColor("palette-grey-400")),setColor(t.Button,"inheritContainedBg",setCssVarColor("palette-grey-300")),setColor(t.Button,"inheritContainedHoverBg",setCssVarColor("palette-grey-A100")),setColor(t.Chip,"defaultBorder",setCssVarColor("palette-grey-400")),setColor(t.Chip,"defaultAvatarColor",setCssVarColor("palette-grey-700")),setColor(t.Chip,"defaultIconColor",setCssVarColor("palette-grey-700")),setColor(t.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),setColor(t.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),setColor(t.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),setColor(t.LinearProgress,"primaryBg",colorMix(private_safeLighten,s?g("palette-primary-main"):t.primary.main,.62)),setColor(t.LinearProgress,"secondaryBg",colorMix(private_safeLighten,s?g("palette-secondary-main"):t.secondary.main,.62)),setColor(t.LinearProgress,"errorBg",colorMix(private_safeLighten,s?g("palette-error-main"):t.error.main,.62)),setColor(t.LinearProgress,"infoBg",colorMix(private_safeLighten,s?g("palette-info-main"):t.info.main,.62)),setColor(t.LinearProgress,"successBg",colorMix(private_safeLighten,s?g("palette-success-main"):t.success.main,.62)),setColor(t.LinearProgress,"warningBg",colorMix(private_safeLighten,s?g("palette-warning-light"):t.warning.main,.62)),setColor(t.Skeleton,"bg",x?colorMix(private_safeAlpha,s?g("palette-text-primary"):t.text.primary,.11):`rgba(${setCssVarColor("palette-text-primaryChannel")} / 0.11)`),setColor(t.Slider,"primaryTrack",colorMix(private_safeLighten,s?g("palette-primary-main"):t.primary.main,.62)),setColor(t.Slider,"secondaryTrack",colorMix(private_safeLighten,s?g("palette-secondary-main"):t.secondary.main,.62)),setColor(t.Slider,"errorTrack",colorMix(private_safeLighten,s?g("palette-error-main"):t.error.main,.62)),setColor(t.Slider,"infoTrack",colorMix(private_safeLighten,s?g("palette-info-main"):t.info.main,.62)),setColor(t.Slider,"successTrack",colorMix(private_safeLighten,s?g("palette-success-main"):t.success.main,.62)),setColor(t.Slider,"warningTrack",colorMix(private_safeLighten,s?g("palette-warning-main"):t.warning.main,.62));const e=x?colorMix(private_safeDarken,s?g("palette-background-default"):t.background.default,.6825):private_safeEmphasize(t.background.default,.8);setColor(t.SnackbarContent,"bg",e),setColor(t.SnackbarContent,"color",silent(()=>x?Xi.text.primary:t.getContrastText(e))),setColor(t.SpeedDialAction,"fabHoverBg",private_safeEmphasize(t.background.paper,.15)),setColor(t.StepConnector,"border",setCssVarColor("palette-grey-400")),setColor(t.StepContent,"border",setCssVarColor("palette-grey-400")),setColor(t.Switch,"defaultColor",setCssVarColor("palette-common-white")),setColor(t.Switch,"defaultDisabledColor",setCssVarColor("palette-grey-100")),setColor(t.Switch,"primaryDisabledColor",colorMix(private_safeLighten,s?g("palette-primary-main"):t.primary.main,.62)),setColor(t.Switch,"secondaryDisabledColor",colorMix(private_safeLighten,s?g("palette-secondary-main"):t.secondary.main,.62)),setColor(t.Switch,"errorDisabledColor",colorMix(private_safeLighten,s?g("palette-error-main"):t.error.main,.62)),setColor(t.Switch,"infoDisabledColor",colorMix(private_safeLighten,s?g("palette-info-main"):t.info.main,.62)),setColor(t.Switch,"successDisabledColor",colorMix(private_safeLighten,s?g("palette-success-main"):t.success.main,.62)),setColor(t.Switch,"warningDisabledColor",colorMix(private_safeLighten,s?g("palette-warning-main"):t.warning.main,.62)),setColor(t.TableCell,"border",colorMix(private_safeLighten,private_safeAlpha(s?g("palette-divider"):t.divider,1),.88)),setColor(t.Tooltip,"bg",colorMix(private_safeAlpha,s?g("palette-grey-700"):t.grey[700],.92))}if("dark"===t.mode){setColor(t.Alert,"errorColor",colorMix(private_safeLighten,s?g("palette-error-light"):t.error.light,.6)),setColor(t.Alert,"infoColor",colorMix(private_safeLighten,s?g("palette-info-light"):t.info.light,.6)),setColor(t.Alert,"successColor",colorMix(private_safeLighten,s?g("palette-success-light"):t.success.light,.6)),setColor(t.Alert,"warningColor",colorMix(private_safeLighten,s?g("palette-warning-light"):t.warning.light,.6)),setColor(t.Alert,"errorFilledBg",setCssVarColor("palette-error-dark")),setColor(t.Alert,"infoFilledBg",setCssVarColor("palette-info-dark")),setColor(t.Alert,"successFilledBg",setCssVarColor("palette-success-dark")),setColor(t.Alert,"warningFilledBg",setCssVarColor("palette-warning-dark")),setColor(t.Alert,"errorFilledColor",silent(()=>t.getContrastText(t.error.dark))),setColor(t.Alert,"infoFilledColor",silent(()=>t.getContrastText(t.info.dark))),setColor(t.Alert,"successFilledColor",silent(()=>t.getContrastText(t.success.dark))),setColor(t.Alert,"warningFilledColor",silent(()=>t.getContrastText(t.warning.dark))),setColor(t.Alert,"errorStandardBg",colorMix(private_safeDarken,s?g("palette-error-light"):t.error.light,.9)),setColor(t.Alert,"infoStandardBg",colorMix(private_safeDarken,s?g("palette-info-light"):t.info.light,.9)),setColor(t.Alert,"successStandardBg",colorMix(private_safeDarken,s?g("palette-success-light"):t.success.light,.9)),setColor(t.Alert,"warningStandardBg",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.light,.9)),setColor(t.Alert,"errorIconColor",setCssVarColor("palette-error-main")),setColor(t.Alert,"infoIconColor",setCssVarColor("palette-info-main")),setColor(t.Alert,"successIconColor",setCssVarColor("palette-success-main")),setColor(t.Alert,"warningIconColor",setCssVarColor("palette-warning-main")),setColor(t.AppBar,"defaultBg",setCssVarColor("palette-grey-900")),setColor(t.AppBar,"darkBg",setCssVarColor("palette-background-paper")),setColor(t.AppBar,"darkColor",setCssVarColor("palette-text-primary")),setColor(t.Avatar,"defaultBg",setCssVarColor("palette-grey-600")),setColor(t.Button,"inheritContainedBg",setCssVarColor("palette-grey-800")),setColor(t.Button,"inheritContainedHoverBg",setCssVarColor("palette-grey-700")),setColor(t.Chip,"defaultBorder",setCssVarColor("palette-grey-700")),setColor(t.Chip,"defaultAvatarColor",setCssVarColor("palette-grey-300")),setColor(t.Chip,"defaultIconColor",setCssVarColor("palette-grey-300")),setColor(t.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),setColor(t.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),setColor(t.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),setColor(t.LinearProgress,"primaryBg",colorMix(private_safeDarken,s?g("palette-primary-main"):t.primary.main,.5)),setColor(t.LinearProgress,"secondaryBg",colorMix(private_safeDarken,s?g("palette-secondary-main"):t.secondary.main,.5)),setColor(t.LinearProgress,"errorBg",colorMix(private_safeDarken,s?g("palette-error-main"):t.error.main,.5)),setColor(t.LinearProgress,"infoBg",colorMix(private_safeDarken,s?g("palette-info-main"):t.info.main,.5)),setColor(t.LinearProgress,"successBg",colorMix(private_safeDarken,s?g("palette-success-main"):t.success.main,.5)),setColor(t.LinearProgress,"warningBg",colorMix(private_safeDarken,s?g("palette-warning-main"):t.warning.main,.5)),setColor(t.Skeleton,"bg",x?colorMix(private_safeAlpha,s?g("palette-text-primary"):t.text.primary,.13):`rgba(${setCssVarColor("palette-text-primaryChannel")} / 0.13)`),setColor(t.Slider,"primaryTrack",colorMix(private_safeDarken,s?g("palette-primary-main"):t.primary.main,.5)),setColor(t.Slider,"secondaryTrack",colorMix(private_safeDarken,s?g("palette-secondary-main"):t.secondary.main,.5)),setColor(t.Slider,"errorTrack",colorMix(private_safeDarken,s?g("palette-error-main"):t.error.main,.5)),setColor(t.Slider,"infoTrack",colorMix(private_safeDarken,s?g("palette-info-main"):t.info.main,.5)),setColor(t.Slider,"successTrack",colorMix(private_safeDarken,s?g("palette-success-main"):t.success.main,.5)),setColor(t.Slider,"warningTrack",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.main,.5));const e=x?colorMix(private_safeLighten,s?g("palette-background-default"):t.background.default,.985):private_safeEmphasize(t.background.default,.98);setColor(t.SnackbarContent,"bg",e),setColor(t.SnackbarContent,"color",silent(()=>x?Zi.text.primary:t.getContrastText(e))),setColor(t.SpeedDialAction,"fabHoverBg",private_safeEmphasize(t.background.paper,.15)),setColor(t.StepConnector,"border",setCssVarColor("palette-grey-600")),setColor(t.StepContent,"border",setCssVarColor("palette-grey-600")),setColor(t.Switch,"defaultColor",setCssVarColor("palette-grey-300")),setColor(t.Switch,"defaultDisabledColor",setCssVarColor("palette-grey-600")),setColor(t.Switch,"primaryDisabledColor",colorMix(private_safeDarken,s?g("palette-primary-main"):t.primary.main,.55)),setColor(t.Switch,"secondaryDisabledColor",colorMix(private_safeDarken,s?g("palette-secondary-main"):t.secondary.main,.55)),setColor(t.Switch,"errorDisabledColor",colorMix(private_safeDarken,s?g("palette-error-main"):t.error.main,.55)),setColor(t.Switch,"infoDisabledColor",colorMix(private_safeDarken,s?g("palette-info-main"):t.info.main,.55)),setColor(t.Switch,"successDisabledColor",colorMix(private_safeDarken,s?g("palette-success-main"):t.success.main,.55)),setColor(t.Switch,"warningDisabledColor",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.main,.55)),setColor(t.TableCell,"border",colorMix(private_safeDarken,private_safeAlpha(s?g("palette-divider"):t.divider,1),.68)),setColor(t.Tooltip,"bg",colorMix(private_safeAlpha,s?g("palette-grey-700"):t.grey[700],.92))}s||(setColorChannel(t.background,"default"),setColorChannel(t.background,"paper"),setColorChannel(t.common,"background"),setColorChannel(t.common,"onBackground"),setColorChannel(t,"divider")),Object.keys(t).forEach(e=>{const n=t[e];"tonalOffset"!==e&&!s&&n&&"object"==typeof n&&(n.main&&setColor(t[e],"mainChannel",private_safeColorChannel(toRgb(n.main))),n.light&&setColor(t[e],"lightChannel",private_safeColorChannel(toRgb(n.light))),n.dark&&setColor(t[e],"darkChannel",private_safeColorChannel(toRgb(n.dark))),n.contrastText&&setColor(t[e],"contrastTextChannel",private_safeColorChannel(toRgb(n.contrastText))),"text"===e&&(setColorChannel(t[e],"primary"),setColorChannel(t[e],"secondary")),"action"===e&&(n.active&&setColorChannel(t[e],"active"),n.selected&&setColorChannel(t[e],"selected")))})}),k=t.reduce((e,t)=>deepmerge(e,t),k);const E={prefix:i,disableCssColorScheme:o,shouldSkipGeneratingVar:l,getSelector:createGetSelector_default(k),enableContrastVars:s},{vars:P,generateThemeVars:T,generateStyleSheets:R}=prepareCssVars(k,E);return k.vars=P,Object.entries(k.colorSchemes[k.defaultColorScheme]).forEach(([e,t])=>{k[e]=t}),k.generateThemeVars=T,k.generateStyleSheets=R,k.generateSpacing=function generateSpacing(){return createSpacing(d.spacing,createUnarySpacing(this))},k.getColorSchemeSelector=createGetColorSchemeSelector(c),k.spacing=k.generateSpacing(),k.shouldSkipGeneratingVar=l,k.unstable_sxConfig={...Mi,...d?.unstable_sxConfig},k.unstable_sx=function sx(e){return Oi({sx:e,theme:this})},k.internal_cache={},k.toRuntimeSource=stringifyTheme,k}function attachColorScheme(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...!0!==n&&n,palette:createPalette({...!0===n?{}:n.palette,mode:t})})}function createTheme(e={},...t){const{palette:n,cssVariables:a=!1,colorSchemes:o=(n?void 0:{light:!0}),defaultColorScheme:i=n?.mode,...s}=e,l=i||"light",c=o?.[l],u={...o,...n?{[l]:{..."boolean"!=typeof c&&c,palette:n}}:void 0};if(!1===a){if(!("colorSchemes"in e))return createThemeNoVars(e,...t);let a=n;"palette"in e||u[l]&&(!0!==u[l]?a=u[l].palette:"dark"===l&&(a={mode:"dark"}));const o=createThemeNoVars({...e,palette:a},...t);return o.defaultColorScheme=l,o.colorSchemes=u,"light"===o.palette.mode&&(o.colorSchemes.light={...!0!==u.light&&u.light,palette:o.palette},attachColorScheme(o,"dark",u.dark)),"dark"===o.palette.mode&&(o.colorSchemes.dark={...!0!==u.dark&&u.dark,palette:o.palette},attachColorScheme(o,"light",u.light)),o}return n||"light"in u||"light"!==l||(u.light=!0),createThemeWithVars({...s,colorSchemes:u,defaultColorScheme:l,..."boolean"!=typeof a&&a},...t)}var us=createTheme();function useTheme(){const e=useTheme$2(us);return e.$$material||e}function slotShouldForwardProp(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}var rootShouldForwardProp=e=>slotShouldForwardProp(e)&&"classes"!==e,ds=createStyled({themeId:Oa,defaultTheme:us,rootShouldForwardProp});function ThemeProviderNoVars({theme:e,...t}){const n="$$material"in e?e[Oa]:void 0;return(0,ka.jsx)(ThemeProvider$1,{...t,themeId:n?Oa:void 0,theme:n||e})}var ps={attribute:"data-mui-color-scheme",colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:ms,useColorScheme:fs,getInitColorSchemeScript:gs}=createCssVarsProvider({themeId:Oa,theme:()=>createTheme({cssVariables:!0}),colorSchemeStorageKey:ps.colorSchemeStorageKey,modeStorageKey:ps.modeStorageKey,defaultColorScheme:{light:ps.defaultLightColorScheme,dark:ps.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:createTypography(e.palette,e.typography)};return t.unstable_sx=function sx(e){return Oi({sx:e,theme:this})},t}}),hs=ms;function ThemeProvider({theme:e,...t}){const n=c.useMemo(()=>{if("function"==typeof e)return e;const t="$$material"in e?e[Oa]:e;return"colorSchemes"in t?null:"vars"in t?e:{...e,vars:null}},[e]);return n?(0,ka.jsx)(ThemeProviderNoVars,{theme:n,...t}):(0,ka.jsx)(hs,{theme:e,...t})}var bs=capitalize$1;function createChainedFunction(...e){return e.reduce((e,t)=>null==t?e:function chainedFunction(...n){e.apply(this,n),t.apply(this,n)},()=>{})}function GlobalStyles(e){return(0,ka.jsx)(GlobalStyles$1,{...e,defaultTheme:us,themeId:Oa})}function globalCss(e){return function GlobalStylesWrapper(t){return(0,ka.jsx)(GlobalStyles,{styles:"function"==typeof e?n=>e({theme:n,...t}):e})}}var ys=unstable_memoTheme;function useDefaultProps(e){return useDefaultProps$1(e)}function getSvgIconUtilityClass(e){return generateUtilityClass("MuiSvgIcon",e)}generateUtilityClasses("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);var useUtilityClasses$48=e=>{const{color:t,fontSize:n,classes:a}=e;return composeClasses({root:["root","inherit"!==t&&`color${bs(t)}`,`fontSize${bs(n)}`]},getSvgIconUtilityClass,a)},vs=ds("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"inherit"!==n.color&&t[`color${bs(n.color)}`],t[`fontSize${bs(n.fontSize)}`]]}})(ys(({theme:e})=>({userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:e.transitions?.create?.("fill",{duration:(e.vars??e).transitions?.duration?.shorter}),variants:[{props:e=>!e.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:e.typography?.pxToRem?.(20)||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:e.typography?.pxToRem?.(24)||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:e.typography?.pxToRem?.(35)||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,e])=>e&&e.main).map(([t])=>({props:{color:t},style:{color:(e.vars??e).palette?.[t]?.main}})),{props:{color:"action"},style:{color:(e.vars??e).palette?.action?.active}},{props:{color:"disabled"},style:{color:(e.vars??e).palette?.action?.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}))),Ss=c.forwardRef(function SvgIcon(e,t){const n=useDefaultProps({props:e,name:"MuiSvgIcon"}),{children:a,className:o,color:i="inherit",component:s="svg",fontSize:l="medium",htmlColor:u,inheritViewBox:d=!1,titleAccess:p,viewBox:m="0 0 24 24",...g}=n,h=c.isValidElement(a)&&"svg"===a.type,b={...n,color:i,component:s,fontSize:l,instanceFontSize:e.fontSize,inheritViewBox:d,viewBox:m,hasSvgAsChild:h},y={};return d||(y.viewBox=m),(0,ka.jsxs)(vs,{as:s,className:clsx(useUtilityClasses$48(b).root,o),focusable:"false",color:u,"aria-hidden":!p||void 0,role:p?"img":void 0,ref:t,...y,...g,...h&&a.props,ownerState:b,children:[h?a.props.children:a,p?(0,ka.jsx)("title",{children:p}):null]})});function createSvgIcon(e,t){function Component(t,n){return(0,ka.jsx)(Ss,{"data-testid":void 0,ref:n,...t,children:e})}return Component.muiName=Ss.muiName,c.memo(c.forwardRef(Component))}function debounce$1(e,t=166){let n;function debounced(...a){const later=()=>{e.apply(this,a)};clearTimeout(n),n=setTimeout(later,t)}return debounced.clear=()=>{clearTimeout(n)},debounced}Ss.muiName="SvgIcon";var xs=debounce$1,ws=isMuiElement;function activeElement(e){let t=e.activeElement;for(;null!=t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}var Cs=activeElement;function ownerDocument(e){return e&&e.ownerDocument||document}var ks=ownerDocument;function ownerWindow(e){return ownerDocument(e).defaultView||window}var Es=ownerWindow;function setRef(e,t){"function"==typeof e?e(t):e&&(e.current=t)}var _s=Li,Ps=useId;function useControlled(e){const{controlled:t,default:n,name:a,state:o="value"}=e,{current:i}=c.useRef(void 0!==t),[s,l]=c.useState(n);return[i?t:s,c.useCallback(e=>{i||l(e)},[])]}var Ts=useControlled;function useEventCallback(e){const t=c.useRef(e);return Li(()=>{t.current=e}),c.useRef((...e)=>(0,t.current)(...e)).current}var As=useEventCallback;function useForkRef(...e){const t=c.useRef(void 0),n=c.useCallback(t=>{const n=e.map(e=>{if(null==e)return null;if("function"==typeof e){const n=e,a=n(t);return"function"==typeof a?a:()=>{n(null)}}return e.current=t,()=>{e.current=null}});return()=>{n.forEach(e=>e?.())}},e);return c.useMemo(()=>e.every(e=>null==e)?null:e=>{t.current&&(t.current(),t.current=void 0),null!=e&&(t.current=n(e))},e)}var Rs=useForkRef;function isEventHandler(e,t){const n=e.charCodeAt(2);return"o"===e[0]&&"n"===e[1]&&n>=65&&n<=90&&"function"==typeof t}function mergeSlotProps$1(e,t){if(!e)return t;function extractHandlers(e,t){const n={};return Object.keys(t).forEach(a=>{isEventHandler(a,t[a])&&"function"==typeof e[a]&&(n[a]=(...n)=>{e[a](...n),t[a](...n)})}),n}if("function"==typeof e||"function"==typeof t)return n=>{const a="function"==typeof t?t(n):t,o="function"==typeof e?e({...n,...a}):e,i=clsx(n?.className,a?.className,o?.className),s=extractHandlers(o,a);return{...a,...o,...s,...!!i&&{className:i},...a?.style&&o?.style&&{style:{...a.style,...o.style}},...a?.sx&&o?.sx&&{sx:[...Array.isArray(a.sx)?a.sx:[a.sx],...Array.isArray(o.sx)?o.sx:[o.sx]]}}};const n=t,a=extractHandlers(e,n),o=clsx(n?.className,e?.className);return{...t,...e,...a,...!!o&&{className:o},...n?.style&&e?.style&&{style:{...n.style,...e.style}},...n?.sx&&e?.sx&&{sx:[...Array.isArray(n.sx)?n.sx:[n.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;n[a]=e[a]}return n}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,_setPrototypeOf(e,t)}var Ms={disabled:!1},Ds=e.default.createContext(null),Os=function forceReflow(e){return e.scrollTop},$s="unmounted",Is="exited",Ns="entering",zs="entered",Ls="exiting",js=function(n){function Transition(e,t){var a,o=n.call(this,e,t)||this,i=t&&!t.isMounting?e.enter:e.appear;return o.appearStatus=null,e.in?i?(a=Is,o.appearStatus=Ns):a=zs:a=e.unmountOnExit||e.mountOnEnter?$s:Is,o.state={status:a},o.nextCallback=null,o}_inheritsLoose(Transition,n),Transition.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){return e.in&&"unmounted"===t.status?{status:Is}:null};var a=Transition.prototype;return a.componentDidMount=function componentDidMount(){this.updateStatus(!0,this.appearStatus)},a.componentDidUpdate=function componentDidUpdate(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?"entering"!==n&&"entered"!==n&&(t=Ns):"entering"!==n&&"entered"!==n||(t=Ls)}this.updateStatus(!1,t)},a.componentWillUnmount=function componentWillUnmount(){this.cancelNextCallback()},a.getTimeouts=function getTimeouts(){var e,t,n=this.props.timeout,a=e=t=n;return null!=n&&"number"!=typeof n&&(a=n.exit,e=n.enter,t=void 0!==n.appear?n.appear:e),{exit:a,enter:e,appear:t}},a.updateStatus=function updateStatus(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),"entering"===n){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:t.default.findDOMNode(this);a&&Os(a)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&"exited"===this.state.status&&this.setState({status:$s})},a.performEnter=function performEnter(e){var n=this,a=this.props.enter,o=this.context?this.context.isMounting:e,i=this.props.nodeRef?[o]:[t.default.findDOMNode(this),o],s=i[0],l=i[1],c=this.getTimeouts(),u=o?c.appear:c.enter;!e&&!a||Ms.disabled?this.safeSetState({status:zs},function(){n.props.onEntered(s)}):(this.props.onEnter(s,l),this.safeSetState({status:Ns},function(){n.props.onEntering(s,l),n.onTransitionEnd(u,function(){n.safeSetState({status:zs},function(){n.props.onEntered(s,l)})})}))},a.performExit=function performExit(){var e=this,n=this.props.exit,a=this.getTimeouts(),o=this.props.nodeRef?void 0:t.default.findDOMNode(this);n&&!Ms.disabled?(this.props.onExit(o),this.safeSetState({status:Ls},function(){e.props.onExiting(o),e.onTransitionEnd(a.exit,function(){e.safeSetState({status:Is},function(){e.props.onExited(o)})})})):this.safeSetState({status:Is},function(){e.props.onExited(o)})},a.cancelNextCallback=function cancelNextCallback(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},a.safeSetState=function safeSetState(e,t){t=this.setNextCallback(t),this.setState(e,t)},a.setNextCallback=function setNextCallback(e){var t=this,n=!0;return this.nextCallback=function(a){n&&(n=!1,t.nextCallback=null,e(a))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},a.onTransitionEnd=function onTransitionEnd(e,n){this.setNextCallback(n);var a=this.props.nodeRef?this.props.nodeRef.current:t.default.findDOMNode(this),o=null==e&&!this.props.addEndListener;if(a&&!o){if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],s=i[0],l=i[1];this.props.addEndListener(s,l)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},a.render=function render(){var t=this.state.status;if("unmounted"===t)return null;var n=this.props,a=n.children;n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef;var o=_objectWithoutPropertiesLoose(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return e.default.createElement(Ds.Provider,{value:null},"function"==typeof a?a(t,o):e.default.cloneElement(e.default.Children.only(a),o))},Transition}(e.default.Component);function noop$2(){}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function getChildMapping(t,n){var a=function mapper(t){return n&&(0,e.isValidElement)(t)?n(t):t},o=Object.create(null);return t&&e.Children.map(t,function(e){return e}).forEach(function(e){o[e.key]=a(e)}),o}function mergeChildMappings(e,t){function getValueForKey(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var n,a=Object.create(null),o=[];for(var i in e)i in t?o.length&&(a[i]=o,o=[]):o.push(i);var s={};for(var l in t){if(a[l])for(n=0;n<a[l].length;n++){var c=a[l][n];s[a[l][n]]=getValueForKey(c)}s[l]=getValueForKey(l)}for(n=0;n<o.length;n++)s[o[n]]=getValueForKey(o[n]);return s}function getProp(e,t,n){return null!=n[t]?n[t]:e.props[t]}function getInitialChildMapping(t,n){return getChildMapping(t.children,function(a){return(0,e.cloneElement)(a,{onExited:n.bind(null,a),in:!0,appear:getProp(a,"appear",t),enter:getProp(a,"enter",t),exit:getProp(a,"exit",t)})})}function getNextChildMapping(t,n,a){var o=getChildMapping(t.children),i=mergeChildMappings(n,o);return Object.keys(i).forEach(function(s){var l=i[s];if((0,e.isValidElement)(l)){var c=s in n,u=s in o,d=n[s],p=(0,e.isValidElement)(d)&&!d.props.in;!u||c&&!p?u||!c||p?u&&c&&(0,e.isValidElement)(d)&&(i[s]=(0,e.cloneElement)(l,{onExited:a.bind(null,l),in:d.props.in,exit:getProp(l,"exit",t),enter:getProp(l,"enter",t)})):i[s]=(0,e.cloneElement)(l,{in:!1}):i[s]=(0,e.cloneElement)(l,{onExited:a.bind(null,l),in:!0,exit:getProp(l,"exit",t),enter:getProp(l,"enter",t)})}}),i}js.contextType=Ds,js.propTypes={},js.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$2,onEntering:noop$2,onEntered:noop$2,onExit:noop$2,onExiting:noop$2,onExited:noop$2},js.UNMOUNTED=$s,js.EXITED=Is,js.ENTERING=Ns,js.ENTERED=zs,js.EXITING=Ls;var Bs=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},Fs={component:"div",childFactory:function childFactory(e){return e}},qs=function(t){function TransitionGroup(e,n){var a=t.call(this,e,n)||this;return a.state={contextValue:{isMounting:!0},handleExited:a.handleExited.bind(_assertThisInitialized(a)),firstRender:!0},a}_inheritsLoose(TransitionGroup,t);var n=TransitionGroup.prototype;return n.componentDidMount=function componentDidMount(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function componentWillUnmount(){this.mounted=!1},TransitionGroup.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){var n=t.children,a=t.handleExited;return{children:t.firstRender?getInitialChildMapping(e,a):getNextChildMapping(e,n,a),firstRender:!1}},n.handleExited=function handleExited(e,t){var n=getChildMapping(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState(function(t){var n=_extends({},t.children);return delete n[e.key],{children:n}}))},n.render=function render(){var t=this.props,n=t.component,a=t.childFactory,o=_objectWithoutPropertiesLoose(t,["component","childFactory"]),i=this.state.contextValue,s=Bs(this.state.children).map(a);return delete o.appear,delete o.enter,delete o.exit,null===n?e.default.createElement(Ds.Provider,{value:i},s):e.default.createElement(Ds.Provider,{value:i},e.default.createElement(n,o,s))},TransitionGroup}(e.default.Component);qs.propTypes={},qs.defaultProps=Fs;var Us={};function useLazyRef(e,t){const n=c.useRef(Us);return n.current===Us&&(n.current=e(t)),n}var Vs=[];function useOnMount(e){c.useEffect(e,Vs)}var Hs=class Timeout{static create(){return new Timeout}currentId=null;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,t()},e)}clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear};function useTimeout(){const e=useLazyRef(Hs.create).current;return useOnMount(e.disposeEffect),e}var reflow=e=>e.scrollTop;function normalizedTransitionCallback(e,t){return n=>{if(t){const a=e.current;void 0===n?t(a):t(a,n)}}}function getTransitionChildStyle(e,t,n,a,o,i){const s="exited"!==e||t?n[e]||n.exited:a;return o||i?{...s,...o,...i}:s}function getTransitionProps(e,t){const{timeout:n,easing:a,style:o={}}=e;return{duration:o.transitionDuration??("number"==typeof n?n:n[t.mode]||0),easing:o.transitionTimingFunction??("object"==typeof a?a[t.mode]:a),delay:o.transitionDelay}}function isHostComponent(e){return"string"==typeof e}function appendOwnerState(e,t,n){return void 0===e||isHostComponent(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function resolveComponentProps(e,t,n){return"function"==typeof e?e(t,n):e}function extractEventHandlers(e){if(void 0===e)return{};const t={};for(const n of Object.keys(e))isEventHandler(n,e[n])&&(t[n]=e[n]);return t}function omitEventHandlers(e){if(void 0===e)return{};const t={};return Object.keys(e).filter(t=>!(t.match(/^on[A-Z]/)&&"function"==typeof e[t])).forEach(n=>{t[n]=e[n]}),t}function mergeSlotProps(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:a,externalForwardedProps:o,className:i}=e;if(!t){const e=clsx(n?.className,i,o?.className,a?.className),t={...n?.style,...o?.style,...a?.style},s={...n,...o,...a};return e.length>0&&(s.className=e),Object.keys(t).length>0&&(s.style=t),{props:s,internalRef:void 0}}const s=extractEventHandlers({...o,...a}),l=omitEventHandlers(a),c=omitEventHandlers(o),u=t(s),d=clsx(u?.className,n?.className,i,o?.className,a?.className),p={...u?.style,...n?.style,...o?.style,...a?.style},m={...u,...n,...c,...l};return d.length>0&&(m.className=d),Object.keys(p).length>0&&(m.style=p),{props:m,internalRef:u.ref}}function useSlot(e,t){const{className:n,elementType:a,ownerState:o,externalForwardedProps:i,internalForwardedProps:s,shouldForwardComponentProp:l=!1,...c}=t,{component:u,slots:d={[e]:void 0},slotProps:p={[e]:void 0},...m}=i,g=d[e]||a,h=resolveComponentProps(p[e],o),{props:{component:b,...y},internalRef:v}=mergeSlotProps({className:n,...c,externalForwardedProps:"root"===e?m:void 0,externalSlotProps:h}),S=useForkRef(v,h?.ref,t.ref),x="root"===e?b||u:b;return[g,appendOwnerState(g,{..."root"===e&&!u&&!d[e]&&s,..."root"!==e&&!d[e]&&s,...y,...x&&!l&&{as:x},...x&&l&&{component:x},ref:S},o)]}function getPaperUtilityClass(e){return generateUtilityClass("MuiPaper",e)}generateUtilityClasses("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);var useUtilityClasses$47=e=>{const{square:t,elevation:n,variant:a,classes:o}=e;return composeClasses({root:["root",a,!t&&"rounded","elevation"===a&&`elevation${n}`]},getPaperUtilityClass,o)},Ws=ds("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t[`elevation${n.elevation}`]]}})(ys(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow"),variants:[{props:({ownerState:e})=>!e.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),Gs=c.forwardRef(function Paper(e,t){const n=useDefaultProps({props:e,name:"MuiPaper"}),a=useTheme(),{className:o,component:i="div",elevation:s=1,square:l=!1,variant:c="elevation",...u}=n,d={...n,component:i,elevation:s,square:l,variant:c};return(0,ka.jsx)(Ws,{as:i,ownerState:d,className:clsx(useUtilityClasses$47(d).root,o),ref:t,...u,style:{..."elevation"===c&&{"--Paper-shadow":(a.vars||a).shadows[s],...a.vars&&{"--Paper-overlay":a.vars.overlays?.[s]},...!a.vars&&"dark"===a.palette.mode&&{"--Paper-overlay":`linear-gradient(${alpha("#fff",getOverlayAlpha(s))}, ${alpha("#fff",getOverlayAlpha(s))})`}},...u.style}})});function isFocusVisible(e){try{return e.matches(":focus-visible")}catch(t){}return!1}function useFocusableWhenDisabled(e){const{focusableWhenDisabled:t,disabled:n,composite:a=!1,tabIndex:o=0,isNativeButton:i}=e,s=a&&!1!==t,l=a&&!1===t;return c.useMemo(()=>{const e={onKeyDown(e){n&&t&&"Tab"!==e.key&&e.preventDefault()}};return a||(e.tabIndex=o,!i&&n&&(e.tabIndex=t?o:-1)),(i&&(t||s)||!i&&n)&&(e["aria-disabled"]=n),!i||t&&!l||(e.disabled=n),e},[a,n,t,s,l,i,o])}var Ys={};function useButtonBase(e){const{nativeButton:t,nativeButtonProp:n,internalNativeButton:a=t,allowInferredHostMismatch:o=!1,disabled:i,type:s,hasFormAction:l=!1,tabIndex:u=0,focusableWhenDisabled:d,stopEventPropagation:p=!1,onBeforeKeyDown:m,onBeforeKeyUp:g}=e,h=c.useRef(null),b=!0===d,y=useFocusableWhenDisabled({focusableWhenDisabled:b,disabled:i,isNativeButton:t,tabIndex:u}),v=c.useCallback(()=>{const e=h.current;return null==e?t:"BUTTON"===e.tagName||Boolean("A"===e.tagName&&e.href)},[t]),S=c.useMemo(()=>{const e=b?{}:{tabIndex:i?-1:u};return t?(e.type=void 0!==s||l?s:"button",b||(e.disabled=i)):(e.role="button",!b&&i&&(e["aria-disabled"]=i)),b?{...e,...y}:e},[i,b,y,l,t,u,s]);return{getButtonProps:c.useCallback((e=Ys)=>{const{onClick:t,onKeyDown:n,onKeyUp:a,...o}=e,handleClick=e=>{p&&e.stopPropagation(),i?e.preventDefault():t?.(e)},handleKeyDown=e=>{b&&y.onKeyDown(e),i||(m?.(e),n?.(e),e.target!==e.currentTarget||v()||(" "!==e.key?"Enter"===e.key&&(e.preventDefault(),e.currentTarget.click()):e.preventDefault()))},handleKeyUp=e=>{i||(g?.(e),a?.(e),e.target!==e.currentTarget||v()||" "!==e.key||e.defaultPrevented||e.currentTarget.click())};return{...S,...o,onClick:handleClick,onKeyDown:handleKeyDown,onKeyUp:handleKeyUp}},[S,i,b,y,v,m,g,p]),rootRef:h}}var Ks=class LazyRipple{static create(){return new LazyRipple}static use(){const e=useLazyRef(LazyRipple.create).current,[t,n]=c.useState(!1);return e.shouldMount=t,e.setShouldMount=n,c.useEffect(e.mountEffect,[t]),e}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=createControlledPromise(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&null!==this.ref.current&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>this.ref.current?.start(...e))}stop(...e){this.mount().then(()=>this.ref.current?.stop(...e))}pulsate(...e){this.mount().then(()=>this.ref.current?.pulsate(...e))}};function useLazyRipple(){return Ks.use()}function createControlledPromise(){let e,t;const n=new Promise((n,a)=>{e=n,t=a});return n.resolve=e,n.reject=t,n}function Ripple(e){const{className:t,classes:n,pulsate:a=!1,rippleX:o,rippleY:i,rippleSize:s,in:l,onExited:u,timeout:d}=e,[p,m]=c.useState(!1),g=clsx(t,n.ripple,n.rippleVisible,a&&n.ripplePulsate),h={width:s,height:s,top:-s/2+i,left:-s/2+o},b=clsx(n.child,p&&n.childLeaving,a&&n.childPulsate);return l||p||m(!0),c.useEffect(()=>{if(!l&&null!=u){const e=setTimeout(u,d);return()=>{clearTimeout(e)}}},[u,l,d]),(0,ka.jsx)("span",{className:g,style:h,children:(0,ka.jsx)("span",{className:b})})}var Qs=generateUtilityClasses("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),Zs=550,Xs=keyframes`
|
|
1
|
+
!function(e,t){var n=Object.create,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,s=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),__copyProps=(e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var c,u=i(t),d=0,p=u.length;d<p;d++)c=u[d],l.call(e,c)||c===n||a(e,c,{get:(e=>t[e]).bind(null,c),enumerable:!(s=o(t,c))||s.enumerable});return e},__toESM=(e,t,o)=>(o=null!=e?n(s(e)):{},__copyProps(!t&&e&&e.__esModule?o:a(o,"default",{value:e,enumerable:!0}),e));let c=__toESM(e,1);e=__toESM(e);let u=__toESM(t,1);t=__toESM(t);var d,p=Symbol.for("nexsys4.nexusClientOverrides.installed"),m=Symbol.for("nexsys4.nexusClientOverrides.originals"),g=200,resolveOverrideTargets=e=>({buffer:"function"==typeof e?.buffer?e.buffer():null,platform:"function"==typeof e?.platform?e.platform():null,datahandler:"function"==typeof e?.datahandler?e.datahandler():null}),getActiveNexSys=()=>globalThis.nexSys&&"object"==typeof globalThis.nexSys?globalThis.nexSys:null,getSystemSettings=(e=getActiveNexSys())=>e?.state?.system?.settings||e?.sys?.settings||{},isOverrideTabEnabled=(e=getActiveNexSys())=>Boolean(getSystemSettings(e).overrideTab),normalizeTargetQuery=e=>{const t=String(e??"").trim();return t?`${t.charAt(0).toUpperCase()}${t.slice(1).toLowerCase()}`:""},getInputArea=()=>globalThis.document?.getElementsByTagName?.("textarea")?.[0]??null,createTabCompletion=()=>({txt:null,qry:null,vals:null,index:0,reset(){this.txt=null,this.qry=null,this.vals=null,this.index=0},tc(){const e=getInputArea();if(!e)return;if(this.txt??=String(e.value??"").split(" "),this.qry??=normalizeTargetQuery(this.txt.at(-1)),!this.qry)return;const t=Array.isArray(globalThis.nexGui?.colors?.enemies)?globalThis.nexGui.colors.enemies:[],n=Array.isArray(globalThis.GMCP?.WhoList)?globalThis.GMCP.WhoList:[];this.vals??=[...new Set([...t.map(e=>String(e)),...n.map(e=>String(e?.name??"")).filter(e=>e.startsWith(this.qry))])],this.vals.length&&(this.index>this.vals.length-1?(this.txt[this.txt.length-1]=this.qry,this.index=0):(this.txt[this.txt.length-1]=this.vals[this.index],this.index+=1),e.value=this.txt.join(" "))}}),ensureTabCompletion=(e=getActiveNexSys())=>{if(e?.tabCompletion?.tc&&e?.tabCompletion?.reset)return e.tabCompletion;const t=createTabCompletion();return e&&"object"==typeof e&&(e.tabCompletion=t),t},renderCustomPrompt=(e,t={})=>{const n=e?.api?.prompt,a=t?.line;try{const e="function"==typeof n?.getCustomPrompt?n.getCustomPrompt():"function"==typeof n?.render?n.render(t):null;return"string"!=typeof e?null:(a?.parsed_line&&"object"==typeof a.parsed_line&&(a.parsed_line.formatted=()=>e),e)}catch(o){return console.error("nexSys4 custom prompt render failed",o),null}},createAddBlockOverride=()=>function add_block(e=[]){const t=getActiveNexSys();t?.prepend_line&&(e.unshift(t.prepend_line),t.prepend_line=!1);const n=Boolean(getSystemSettings(t).customPrompt);let a=0;for(let i=0;i<e.length;i+=1){const o=e[i];if(!o||o.gag)continue;if(!o.parsed_line&&!o.html_line)continue;const s=Boolean(o.is_prompt&&n&&o.parsed_line)?renderCustomPrompt(t,{line:o,source:"nexus-client-override"}):null;o.is_prompt&&0===a&&null===s?o.gag=!0:(!o.parsed_line||"function"!=typeof o.parsed_line.text||o.parsed_line.text()||0!==a&&i!==e.length-1||null!==s)&&("function"==typeof this._fill_tab_completion&&this._fill_tab_completion(o),a+=1,this.lineid+=1,o.id=this.lineid,this.lines.push(o),this.unread=!0)}const o=this.prune_lines?.()??!1;(a||o)&&this.on_lines_changed?.()},createProcessLinesOverride=()=>function process_lines(e=[]){if(this.gagged)return;if(!e.length)return;this.current_block=e;const t=this.reflexes?.();for(let n=0;n<e.length&&!(n>=1e3);n+=1)if(this.current_line=e[n],this.current_line.index=n,e[n]?.line&&String(e[n].line).indexOf(String.fromCharCode(7))>=0&&this.platform?.()?.beep?.(),!this.fullstop&&"function"==typeof t?.handle_triggers){const a=t.handle_triggers(e,n);Array.isArray(a)&&(e=a)}t?.run_function?.("onBlock",e,"ALL"),this.buffer?.()?.add_block?.(e),this.current_line=void 0,this.current_block=void 0},createOnKeyUpOverride=()=>function on_key_up(e){if(!this._nexus?.datahandler?.()?.is_connected?.())return!0;if(this.dialog_has_focus?.())return!0;const t=getActiveNexSys(),n=isOverrideTabEnabled(t),a=n?ensureTabCompletion(t):null;return this.tab_pressed?9!==e||(this.tab_pressed=!1,n?(a?.tc?.(),!1):(this.player_targetted||this._nexus?.datahandler?.()?.tab_target?.(!1),this.player_targetted=!1,!1)):(a?.reset?.(),!0)},createSendCommandOverride=e=>function send_command(t){const n=getActiveNexSys(),a=Date.now();if(n&&"object"==typeof n&&(n.sentCommands=[...(Array.isArray(n.sentCommands)?n.sentCommands:[]).slice(0,g-1),{cmd:t,time:a}]),"function"==typeof e)return e.call(this,t);this._socket&&(this._socket.send(`${t}\r\n`),this.last_send=a)},installNexusClientOverrides=({nexusclient:e=globalThis.nexusclient}={})=>{if(!e||e[p])return Boolean(e);const{buffer:t,platform:n,datahandler:a}=resolveOverrideTargets(e);return!!(t&&n&&a)&&(e[m]={buffer:t,platform:n,datahandler:a,process_lines:e.process_lines,add_block:t.add_block,on_key_up:n.on_key_up,send_command:a.send_command},e.process_lines=createProcessLinesOverride(),t.add_block=createAddBlockOverride(),n.on_key_up=createOnKeyUpOverride(),a.send_command=createSendCommandOverride(a.send_command),e[p]=!0,!0)},uninstallNexusClientOverrides=({nexusclient:e=globalThis.nexusclient}={})=>{if(!e?.[p])return!1;const t=e[m];if(!t)return delete e[p],!1;const n=t.buffer||resolveOverrideTargets(e).buffer,a=t.platform||resolveOverrideTargets(e).platform,o=t.datahandler||resolveOverrideTargets(e).datahandler;return e.process_lines=t.process_lines,n&&(n.add_block=t.add_block),a&&(a.on_key_up=t.on_key_up),o&&(o.send_command=t.send_command),delete e[m],delete e[p],!0},h=["send","sendGmcp","on","off","notice","getCommandSeparator","now","setTimeout","clearTimeout","getVariable","setVariable","emitLocal","raiseToEventStream"],b=Object.freeze({promptRender:["renderPrompt"],separatorProbe:["addOnceTrigger","setSeparator"],gmcpSnapshot:["getGMCP"],debugToggle:["setDebugEnabled","isDebugEnabled"],destroy:["destroy"]}),resolveAdapterCapabilities=e=>{const t=e?.capabilities&&"object"==typeof e.capabilities?e.capabilities:{},n={};return Object.entries(b).forEach(([a,o])=>{const i=Object.prototype.hasOwnProperty.call(t,a)?Boolean(t[a]):o.every(t=>"function"==typeof e?.[t]);if(i){const t=o.filter(t=>"function"!=typeof e?.[t]);if(t.length)throw new Error(`nexSys4 adapter capability "${a}" requires methods: ${t.join(", ")}`)}n[a]=i}),Object.freeze(n)},assertAdapterContract=e=>{const t=h.filter(t=>"function"!=typeof e?.[t]);if(t.length)throw new Error(`nexSys4 adapter missing required methods: ${t.join(", ")}`);return resolveAdapterCapabilities(e),e},y=["Char.Vitals","Char.Status","Char.Afflictions.List","Char.Afflictions.Add","Char.Afflictions.Remove","Char.Defences.List","Char.Defences.Add","Char.Defences.Remove","Char.Items.Add","Char.Items.Remove","Char.Items.Update","Char.Items.List","IRE.Rift.List","IRE.Rift.Change","Room.Info","IRE.Target.Info"],registerEventStreamBindings=({eventBus:e,emit:t,pushTrace:n,eventRegistrations:a})=>{if(!e?.registerEvent)return;const registerBinding=(t,o)=>{const i=`nexsys4-${t.replace(/\W+/g,"-")}`,callback=e=>o(e);e.registerEvent(t,callback,{id:i,tags:["nexsys4"]}),a.push({eventName:t,id:i}),n("register:eventStream",{eventName:t,id:i})};y.forEach(e=>{registerBinding(e,n=>{t("GmcpEvent",{tag:e,payload:n??null,rawTag:e})})}),registerBinding("PromptEvent",e=>{t("PromptEvent",{source:"eventstream-prompt",payload:e??null})})},registerStartupGag=({onLocalEvent:e,client:t,notice:n,isDebugEnabled:a})=>{if("function"!=typeof e)return;const gagBlock=()=>{a()||t?.current_block?.forEach(e=>e.gag=!0)};let o=null,i=null,s=null;i=e("CuringStartupBeginEvent",()=>{i?.(),i=null,o||(o=e("PromptEvent",gagBlock))}),s=e("CuringStartupCompleteEvent",()=>{s?.(),s=null,gagBlock(),o?.(),o=null,n("loaded using startup spam gag.")})},escapeRegExp$2=e=>String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),createTriggerRegex=e=>e.regex instanceof RegExp?e.regex:new RegExp(`^${escapeRegExp$2(e.text)}$`,"i"),resolveTriggerReason=(e,t={})=>"function"==typeof e.resolveReason?e.resolveReason(t):e.reason,resolveTriggerPayload=(e,t,n={})=>{const a={id:e,source:"text"},o=resolveTriggerReason(t,n);return void 0!==t.have&&(a.have=t.have),void 0!==o&&(a.reason=o),"function"==typeof t.resolvePayload&&Object.assign(a,t.resolvePayload(n,a)||{}),a},createBalanceTextTrigger=(e,t)=>({name:`${e}-${t.name}`,regex:createTriggerRegex(t),action:({args:n,emit:a})=>{a("BalanceStateTextEvent",resolveTriggerPayload(e,t,n.groups))}}),createBalanceTextTriggersFromFamilies=(e=[])=>e.flatMap(({id:e,entries:t=[]})=>t.map(t=>createBalanceTextTrigger(e,t))),v=["a dolomite grain","a calcite mote","a bisemutum chip","an azurite mote","a magnesium chip","an aurum flake","a plumbum flake","a stannum flake","an arsenic pellet","a ferrum flake","an antimony flake","a cuprum flake","an argentum flake","a calamine crystal","a pinch of ground cinnabar","a pinch of realgar crystals","a quartz grain","a pinch of ground malachite","a quicksilver droplet","a potash crystal","a gypsum crystal"],S=["dolomite grains","calcite motes","bisemutum chips","azurite motes","magnesium chips","aurum flakes","plumbum flakes","stannum flakes","arsenic pellets","ferrum flakes","antimony flakes","cuprum flakes","argentum flakes","calamine crystals","pinches of ground cinnabar","pinches of ground realgar","quartz grains","pinches of ground malachite","quicksilver droplets","potash crystals","gypsum crystals"],x=["a bloodroot leaf","a piece of kelp","a goldenseal root","some prickly ash bark","some bayberry bark","a ginseng root","a ginger root","a bellwort flower","a lobelia seed","a hawthorn berry","a valerian leaf","a skullcap flower","slippery elm","a kola nut","sileris berry","some irid moss","a black cohosh root","a prickly pear","some myrrh gum","an echinacea root"],w=["bloodroot leaves","pieces of kelp","goldenseal roots","pieces of prickly ash bark","pieces of bayberry bark","ginseng roots","ginger roots","bellwort flowers","lobelia seeds","hawthorn berries","valerian leaves","skullcap flowers","slippery elms","kola nuts","sileris berries","pieces of irid moss","cohosh roots","prickly pears","myrrh gums","echinacea roots"],C={"a dolomite grain":"dolomite","a calcite mote":"calcite","a bisemutum chip":"bisemutum","an azurite mote":"azurite","a magnesium chip":"magnesium","an aurum flake":"aurum","a plumbum flake":"plumbum","a stannum flake":"stannum","an arsenic pellet":"arsenic","a ferrum flake":"ferrum","an antimony flake":"antimony","a cuprum flake":"cuprum","an argentum flake":"argentum","a calamine crystal":"calamine","a pinch of ground cinnabar":"cinnabar","a pinch of realgar crystals":"realgar","a quartz grain":"quartz","a pinch of ground malachite":"malachite","a quicksilver droplet":"quicksilver","a potash crystal":"potash","a gypsum crystal":"gypsum","a bloodroot leaf":"bloodroot","a piece of kelp":"kelp","a goldenseal root":"goldenseal","some prickly ash bark":"ash","some bayberry bark":"bayberry","a ginseng root":"ginseng","a ginger root":"ginger","a bellwort flower":"bellwort","a lobelia seed":"lobelia","a hawthorn berry":"hawthorn","a valerian leaf":"valerian","a skullcap flower":"skullcap","slippery elm":"elm","a kola nut":"kola","sileris berry":"sileris","some irid moss":"moss","a black cohosh root":"cohosh","a prickly pear":"pear","some myrrh gum":"myrrh","an echinacea root":"echinacea","dolomite grains":"dolomite","calcite motes":"calcite","bisemutum chips":"bisemutum","azurite motes":"azurite","magnesium chips":"magnesium","aurum flakes":"aurum","plumbum flakes":"plumbum","stannum flakes":"stannum","arsenic pellets":"arsenic","ferrum flakes":"ferrum","antimony flakes":"antimony","cuprum flakes":"cuprum","argentum flakes":"argentum","calamine crystals":"calamine","pinches of ground cinnabar":"cinnabar","pinches of ground realgar":"realgar","quartz grains":"quartz","pinches of ground malachite":"malachite","quicksilver droplets":"quicksilver","potash crystals":"potash","gypsum crystals":"gypsum","bloodroot leaves":"bloodroot","pieces of kelp":"kelp","goldenseal roots":"goldenseal","pieces of prickly ash bark":"ash","pieces of bayberry bark":"bayberry","ginseng roots":"ginseng","ginger roots":"ginger","bellwort flowers":"bellwort","lobelia seeds":"lobelia","hawthorn berries":"hawthorn","valerian leaves":"valerian","skullcap flowers":"skullcap","slippery elms":"elm","kola nuts":"kola","sileris berries":"sileris","pieces of irid moss":"moss","cohosh roots":"cohosh","prickly pears":"pear","myrrh gums":"myrrh","echinacea roots":"echinacea"},k={antimony:"ginger",argentum:"lobelia",arsenic:"bayberry",aurum:"kelp",bisemutum:"myrrh",calamine:"hawthorn",calcite:"pear",cinnabar:"elm",cuprum:"bellwort",dolomite:"echinacea",ferrum:"ginseng",gypsum:"cohosh",magnesium:"bloodroot",malachite:"skullcap",plumbum:"goldenseal",potash:"moss",quartz:"kola",quicksilver:"sileris",realgar:"valerian",stannum:"ash"},E={ash:"stannum",bayberry:"arsenic",bellwort:"cuprum",bloodroot:"magnesium",cohosh:"gypsum",echinacea:"dolomite",elm:"cinnabar",ginseng:"ferrum",ginger:"antimony",goldenseal:"plumbum",hawthorn:"calamine",kelp:"aurum",kola:"quartz",lobelia:"argentum",moss:"potash",myrrh:"bisemutum",pear:"calcite",sileris:"quicksilver",skullcap:"malachite",valerian:"realgar"},P={azurite:0,bisemutum:0,magnesium:0,plumbum:0,arsenic:0,potash:0,stannum:0,malachite:0,realgar:0,cinnabar:0,antimony:0,ferrum:0,quartz:0,quicksilver:0,aurum:0,calamine:0,cuprum:0,argentum:0,gypsum:0,calcite:0,dolomite:0,ginseng:0,bloodroot:0,kelp:0,hawthorn:0,lobelia:0,bellwort:0,ginger:0,bayberry:0,ash:0,goldenseal:0,moss:0,valerian:0,elm:0,skullcap:0,sileris:0,kola:0,cohosh:0,pear:0,myrrh:0,echinacea:0},escapeRegExp$1=e=>String(e||"").replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),buildAlternation=(e=[])=>e.map(e=>String(e||"").trim().toLowerCase()).filter(Boolean).map(escapeRegExp$1).join("|"),exactEntry=(e,t,n,a)=>({name:e,text:t,have:n,reason:a}),regexEntry=(e,t,n,a)=>({name:e,regex:t,have:n,reason:a}),dynamicReasonEntry=(e,t,n,a)=>({name:e,regex:t,have:n,resolveReason:a}),dynamicPayloadEntry=(e,t,n)=>({name:e,regex:t,resolvePayload:n}),T=[...x,...v].filter(e=>"some irid moss"!==e&&"a potash crystal"!==e),R=new RegExp(`^You eat (?<item>${buildAlternation(T)})\\.$`,"i"),M=/^Balance used: (?<duration>\d+\.\d{1,2})s\.$/i,D=/^Equilibrium used: (?<duration>\d+\.\d{1,2})s\.$/i,normalizeConsumedHerb=e=>{const t=String(e||"").trim().toLowerCase();return C[t]||t},parseObservedDurationSeconds=(e={})=>Number.parseFloat(String(e.duration||"")),O=[{id:"balance",entries:[exactEntry("ready","You have recovered balance on all limbs.",!0,"ready"),dynamicPayloadEntry("used",M,e=>({have:!1,reason:"used",durationSeconds:parseObservedDurationSeconds(e)}))]},{id:"equilibrium",entries:[exactEntry("ready","You have recovered equilibrium.",!0,"ready"),dynamicPayloadEntry("used",D,e=>({have:!1,reason:"used",durationSeconds:parseObservedDurationSeconds(e)}))]},{id:"herb",entries:[exactEntry("ready","You may eat another plant or mineral.",!0,"ready"),dynamicReasonEntry("use",R,!1,e=>normalizeConsumedHerb(e?.item))]},{id:"focus",entries:[exactEntry("ready","Your mind is able to focus once again.",!0,"ready"),exactEntry("use","You focus your mind intently on curing your mental maladies.",!1,"focus"),regexEntry("shriek",/^A diminutive homunculus resembling \w+ turns its head towards you, its jaws opening wider than what seems possible\. The homunculus stares intently at you and lets out an ear-piercing shriek that disrupts your thoughts\.$/i,!1,"shriek"),regexEntry("concussion",/^(?:The blow sets your head to spinning - you cannot concentrate on anything\.|\w+ swings (?:his|her) shield around, smashing your temple with a backhanded blow\.)$/i,!1,"concussion"),exactEntry("failed","You concentrate, but your mind is too tired to focus.",!1,"failed")]},{id:"sip",entries:[exactEntry("ready","You may drink another health or mana elixir.",!0,"ready"),exactEntry("health","The elixir heals and soothes you.",!1,"health"),exactEntry("mana","Your mind feels stronger and more alert.",!1,"mana"),regexEntry("apply",/^You take some elixir from .+ and rub it into your .+\.$/i,!1,"apply"),regexEntry("failed",/^(?:The elixir flows down your throat without effect\.|The health elixir fizzles away without any discernable effect\.)$/i,!1,"failed")]},{id:"moss",entries:[exactEntry("ready","You may eat another bit of irid moss or potash.",!0,"ready"),exactEntry("use","You feel your health and mana replenished.",!1,"consume"),exactEntry("failed","The potash slides down without effect.",!1,"failed")]},{id:"tree",entries:[exactEntry("ready","You may utilise the tree tattoo again.",!0,"ready"),exactEntry("use","You touch the tree of life tattoo.",!1,"touch"),exactEntry("failed","Your tree of life tattoo glows faintly for a moment then fades, leaving you unchanged.",!1,"failed")]},{id:"salve",entries:[exactEntry("ready","You may apply another salve to yourself.",!0,"ready"),exactEntry("failed","The salve dissolves and quickly disappears after you apply it.",!1,"failed"),regexEntry("restoration",/^\[Curing\]: APPLY RESTORATION TO \w+$/i,!1,"restoration"),regexEntry("apply",/^(?:\[Curing\]: APPLY (?:MENDING|EPIDERMAL|CALORIC).*$|You take out some salve and quickly rub it on your(?:\s\w+)+\.)$/i,!1,"apply")]},{id:"immunity",entries:[exactEntry("ready","Your system is able to absorb antidotes once again.",!0,"ready"),exactEntry("failed","The liquid reacts with the substance still present in your system, cancelling itself out.",!1,"failed"),exactEntry("use","[Curing]: SIP IMMUNITY",!1,"immunity")]},{id:"rebounding",entries:[exactEntry("aura","You feel an aura of rebounding surround you.",!0,"aura"),exactEntry("discharged","Your aura of weapons rebounding disappears.",!0,"discharged"),exactEntry("already-on","You puff on the pipe, but your existing aura of weapons rebounding negates any effect.",!0,"already-on"),regexEntry("malachite",/^You take a long drag of malachite off your pipe\.?$/i,!1,"malachite"),regexEntry("skullcap",/^You take a long drag of skullcap off your pipe\.$/i,!1,"skullcap")]},{id:"smoke",entries:[exactEntry("ready","Your lungs have recovered enough to smoke another mineral or plant.",!0,"ready"),exactEntry("failed","Your lungs have not yet recovered enough to allow you to smoke.",!1,"failed"),regexEntry("use",/^You take a long drag of/i,!1,"smoke")]},{id:"dragonbreath",entries:[regexEntry("ready",/^Your \w+ summoning is complete\.$/i,!0,"ready"),exactEntry("failed","You already have your breath summoned, Wyrm.",!1,"failed"),exactEntry("lightning","You feel your eyes begin to blaze as you summon lightning to your belly.",!1,"lightning"),exactEntry("fire","With an almost inaudible growl, you begin summoning a fiery inferno into your belly.",!1,"fire"),exactEntry("acid","With a great effort, you begin to summon caustic hell to your innards.",!1,"acid"),exactEntry("cold","Flaring your wings and head back, you begin summoning forth the icy cold of the pure, endless void into your belly.",!1,"cold"),exactEntry("venom","With a great shudder, you begin to summon forth the defiling, deadly wyrmvenom of legend.",!1,"venom"),exactEntry("psi","Calling upon the vast well of mental power at your disposal, you begin to summon a mind-rending blast of psi energy.",!1,"psi")]},{id:"deafness",entries:[exactEntry("ready","The aural world fades to silence.",!0,"ready"),exactEntry("calamine","You eat a calamine crystal.",!1,"calamine"),exactEntry("hawthorn","You eat a hawthorn berry.",!1,"hawthorn")]},{id:"deaf",entries:[exactEntry("already-on","You are already deaf.",!0,"already-on"),exactEntry("trance","The world about you falls silent as the deafness trance sinks upon you.",!0,"trance"),exactEntry("use","You stare straight ahead and concentrate on a distant focal point.",!1,"deaf")]},{id:"blind",entries:[exactEntry("already-on","You are already blind.",!0,"already-on"),exactEntry("ready","You open your eyes once more, and the world about you is darkness.",!0,"ready"),exactEntry("use","You close your eyes for a moment.",!1,"blind")]},{id:"speed",entries:[exactEntry("ready","Tiny tremours spread through your body as the world seems to slow down.",!0,"ready"),exactEntry("use","[Curing]: SIP SPEED",!1,"speed")]},{id:"sileris",entries:[exactEntry("quicksilver-ready","The quicksilver hardens into a supple metallic shell.",!0,"quicksilver"),exactEntry("berry-ready","The sileris berry juice hardens into a supple purple shell.",!0,"sileris"),exactEntry("quicksilver-use","You apply a quicksilver droplet to yourself.",!1,"quicksilver"),exactEntry("berry-use","You apply a sileris berry to yourself.",!1,"sileris")]},{id:"voice",entries:[exactEntry("ready","You have recovered voice balance.",!0,"ready")]},{id:"tremolo",entries:[exactEntry("ready","You may mangle a limb with the vibrato or tremolo once again.",!0,"ready"),regexEntry("arm-use",/^With a trilling vibrato you attack \w+'s broken (?:left|right) arm\. (?:He|She) screams in pain\.$/i,!1,"arm"),regexEntry("leg-use",/^Using a heavy tremolo you brutally punish \w+'s already shattered (?:left|right) leg\.$/i,!1,"leg")]},{id:"homunculus",entries:[exactEntry("ready","You may order your homunculus once more.",!0,"ready"),exactEntry("failed","You are unable to order your homunculus again so soon.",!1,"failed"),regexEntry("use",/^Focusing your mind on a diminutive homunculus resembling (?:\w+), you command it to disrupt (?:\w+)'s focus\. The homunculus turns towards (?:him|her) before letting out an ear-piercing shriek\.$/i,!1,"shriek")]},{id:"fitness",entries:[exactEntry("ready","You may purge your lungs once again.",!0,"ready"),exactEntry("use","You inhale deeply, purging yourself of your asthmatic condition.",!1,"fitness"),exactEntry("failed","You may not purge your lungs again as of this time.",!1,"failed")]},{id:"bloodboil",entries:[exactEntry("ready","You may boil your blood once again.",!0,"ready"),exactEntry("use","You summon spirits of fire to burn off that which afflicts you.",!1,"bloodboil"),exactEntry("failed","You have not recovered enough to boil your blood again as of yet.",!1,"failed")]},{id:"dragonheal",entries:[exactEntry("ready","You may purge your great form of afflictions once again.",!0,"ready"),exactEntry("use","You let out a great keening, and cast the impurities from your form.",!1,"dragonheal"),exactEntry("failed-recovery","You have not yet recovered enough to purge your great form of afflictions.",!1,"failed"),exactEntry("failed-disjointed","Your mind and body are too disjointed to invoke your healing powers, wyrm.",!1,"failed")]},{id:"rage",entries:[exactEntry("ready","You may channel your rage to cure your afflictions once again.",!0,"ready"),exactEntry("use","You allow your pent-up rage to vent and your eyes flash dangerously.",!1,"rage")]},{id:"salt",entries:[exactEntry("use","Directing the energy of salt, you surround yourself with a primal aura, purging yourself of ailments.",!1,"salt"),exactEntry("ready","You may channel alchemical energy to heal yourself once again.",!0,"ready"),exactEntry("failed","You have not recovered enough to heal yourself with alchemical energy once again.",!1,"failed")]},{id:"shrugging",entries:[exactEntry("ready","Your body has recovered enough to shrug afflictions once again.",!0,"ready"),exactEntry("use","Focusing inward, you purge your body of afflictions.",!1,"shrugging"),exactEntry("failed","You may not shrug again so soon.",!1,"failed")]},{id:"fool",entries:[exactEntry("ready","You may heal another affliction.",!0,"ready"),exactEntry("use","You press the Fool tarot to your forehead.",!1,"fool"),exactEntry("failed","The Fool has no effect on you.",!1,"failed")]},{id:"writhe",entries:[regexEntry("free",/^You have writhed free\b/i,!0,"ready"),exactEntry("no-affliction","You begin to writhe helplessly, throwing your body off balance.",!0,"no-affliction"),exactEntry("entangled","You begin to struggle free of your entanglement.",!1,"entangled"),exactEntry("transfixation","You begin trying to wrest your mind free of that which has transfixed it.",!1,"transfixation"),exactEntry("failed-entangled","You twist and turn as you attempt to escape from your entanglement.",!1,"failed"),exactEntry("failed-transfixation","You continue trying to wrest your mind free.",!1,"failed")]},{id:"impalewrithe",entries:[exactEntry("free-direct","With an heroic effort you manage to writhe yourself free from the weapon that impaled you.",!0,"impale"),exactEntry("use","You begin to writhe furiously to escape the blade that has impaled you.",!1,"impale"),regexEntry("free-swathe",/^With a vicious snarl \w+ carves a merciless swathe through your steaming guts\. You gurgle and choke as s?he withdraws (?:his|her) dripping blade, glistening with gore\.$/i,!0,"impale"),regexEntry("free-wrench",/^Searing pain tears through your midsection as you wrench away from [A-Z][a-z]+, (?:his|her) weapon ripping unceremoniously through your innards\.$/i,!0,"impale"),regexEntry("free-slide",/^With a snarl of contempt, \w+ allows you to slide free of (?:her|his) weapon\.$/i,!0,"impale")]},{id:"alleviate",entries:[exactEntry("ready","You may purge your body of afflictions once again.",!0,"ready"),exactEntry("use","Applying your knowledge of anatomy, you massage pressure points with your fingers, and a flood of relief courses through your body.",!1,"alleviate"),exactEntry("no-afflictions","There are no pesky afflictions keeping you from your destiny, Warrior.",!1,"no-afflictions"),exactEntry("failed","You are too exhausted to purge your body of afflictions.",!1,"failed")]},{id:"slough",entries:[exactEntry("use","You allow your outer layers to slough away, their fires extinguished along with the impurities contaminating them.",!1,"slough"),exactEntry("ready","You may slough off the impurities that plague you once again.",!0,"ready"),exactEntry("failed","You may not slough off the impurities again quite yet.",!1,"failed")]}],parsePositiveInteger=(e,t=1)=>{const n=Number.parseInt(String(e??""),10);return Number.isFinite(n)&&n>0?n:t},cleanItemText=e=>String(e||"").trim(),emitInventoryDelta=({emit:e,item:t,delta:n,source:a="text-trigger"})=>{e("CacheInventoryDeltaTextEvent",{item:cleanItemText(t),delta:n,source:a})},normalizeTextValue=e=>String(e||"").trim(),parseDelimitedEntries=e=>String(e||"").split(/[|,]/).map(e=>e.trim().toLowerCase().replace(/^,+|,+$/g,"")).filter(Boolean),parseSpaceDelimitedEntries=e=>String(e||"").replace(/\s+\((\d+)\)/g,"($1)").trim().split(/\s+/).map(e=>e.trim().toLowerCase().replace(/^,+|,+$/g,"")).filter(Boolean),buildLimbPayload=({args:e,client:t,source:n="text-trigger"})=>({limb:normalizeTextValue(e.groups?.limb),raw:normalizeTextValue(t?.current_line?.line),source:n}),normalizeTag=e=>String(e||"").trim().toLowerCase(),normalizeCommandSeparator=e=>String(e??"").trim(),toNumber=(e,t=0)=>{const n=Number(e);return Number.isFinite(n)?n:t},toOptionalBooleanFromYesNo=e=>{if(null==e||""===e)return;if("boolean"==typeof e)return e;if("number"==typeof e)return 0!==e;const t=String(e).trim().toLowerCase();return!!["yes","1","true","on"].includes(t)||!["no","0","false","off"].includes(t)&&void 0},boolWord=e=>e?"on":"off",nowMs=()=>Date.now(),$={classQueue:{name:"class",type:"c!p!t!w",pre:["touch soul","stand"],post:[],exclusions:["fullQueue"]},freeQueue:{name:"free",type:"free",pre:["touch soul","stand"],post:[],exclusions:["fullQueue","shieldQueue"]},fullQueue:{name:"full",type:"ebc!w!p!t",pre:["touch soul","stand"],post:[],exclusions:["freeQueue","shieldQueue","classQueue"]},shieldQueue:{name:"shield",type:"eb!w!t",pre:["touch soul","stand"],post:[],exclusions:["freeQueue","fullQueue"]},shipQueue:{name:"ship",type:"s!w!t",pre:["touch soul","stand"],post:[],exclusions:[]},bloodcloakQueue:{name:"bloodcloak",type:"!teb",pre:["touch soul"],post:[],exclusions:["fullQueue","freeQueue"]},battlerageQueue:{name:"battlerage",type:"!p!t!wu",pre:["touch soul"],post:[],exclusions:[]},stunQueue:{name:"stun",type:"!t",pre:["touch soul"],post:[],exclusions:[]}},escapeRegExp=e=>String(e).replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),normalizeTriggerName=e=>String(e||"").replace(/[^A-Za-z0-9_-]+/g,"-").replace(/^-+|-+$/g,""),resolveSeparator=e=>normalizeCommandSeparator(e?.settings?.command_separator??e?.settings?.commandSeparator)||"|",splitCommands=(e,t)=>String(e||"").split(String(t||"|")||"|").map(e=>e.trim()).filter(Boolean),createQueueSentTrigger=([e,t])=>({name:`sent-${normalizeTriggerName(e)}`,regex:new RegExp(`^\\[System\\]: Added (?<commands>.+) to your ${escapeRegExp(t.type)} queue\\.$`,"i"),action:({args:n,client:a,emit:o})=>{const i=resolveSeparator(a),s=normalizeTextValue(n.groups?.commands);o("QueueSentTextEvent",{raw:normalizeTextValue(a?.current_line?.line),queueId:e,queueName:t.name,queueType:t.type,rawCommands:s,commands:splitCommands(s,i),separator:i,source:"text-trigger"})}}),createAffPrioritySnapshotTriggers=()=>({group:"serverside/affPrioritySnapshot",session:{name:"affPriorities",completionEvent:"ServersideAffPrioSnapshotCompleteTextEvent",fallbackCloseEvents:[{event:"PromptEvent",reason:"prompt"},{event:"CuringStartupCompleteEvent",reason:"startup-complete"}],resetEvents:[{event:"CuringStartupBeginEvent",reason:"startup-begin"}]},triggers:[{name:"open",opener:!0,openReason:"aff-priority-header",regex:/^Your affliction curing priorities(?::| for the priority set \w+:)$/,action:({emit:e})=>{e("ServersideAffPrioSnapshotOpenTextEvent",{topic:"affPriorities",reason:"aff-priority-header"})}},{name:"line",regex:/^(?<prio>\d+):\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{const n=parseSpaceDelimitedEntries(e.groups.entries);return!!n.length&&(n.forEach(n=>{t("ServersideAffPrioTextEvent",{aff:n,prio:Number(e.groups.prio)})}),!0)}},{name:"close",closer:!0,closeReason:"aff-priority-terminal-line",regex:/^Affs with priority 26 are ignored\.$/i}]}),emitStatus$1=(e,t,n)=>{e("ServersideStatusTextEvent",{key:t,value:n})},emitStatus=(e,t,n)=>{e("ServersideStatusTextEvent",{key:t,value:n})},I=[()=>({group:"system/systemEvent",triggers:[{name:"line",regex:/^SystemEvent (?<eventName>.+)$/,action:({args:e,client:t,emit:n})=>{const a=normalizeTextValue(e.groups?.eventName);if(!a)return;const o=normalizeTextValue(t?.current_line?.line);n(a,{raw:o});const i=a.match(/^(?<queueName>[A-Za-z]+)QueueFired$/);i?.groups?.queueName&&n("QueueFiredTextEvent",{raw:o,queueName:i.groups.queueName})}},{name:"all-queues-cleared",regex:/^\[System\]: All queued commands cleared\.$/,action:({client:e,emit:t})=>{t("AllQueuesClearedTextEvent",{raw:normalizeTextValue(e?.current_line?.line)})}}]}),()=>({group:"system/separatorChanged",triggers:[{name:"separator-changed",regex:/^Your command separator is now:\s*(?<sep>\S+)\s*$/,action:({args:e,emit:t})=>{const n=String(e.groups?.sep||"").trim();n&&t("CommandSeparatorChangedTextEvent",{separator:n})}}]}),()=>({group:"balance/text",triggers:createBalanceTextTriggersFromFamilies(O)}),()=>({group:"cache/text",triggers:[{name:"rift-out",regex:/^You remove (?<amount>\d+) (?<item>.+?), bringing the total in the rift to (?<riftAmount>\d+)\.$/i,action:({args:e,emit:t})=>{const n=e?.groups||{};t("CacheRiftOutTextEvent",{item:cleanItemText(n.item),amount:parsePositiveInteger(n.amount),riftAmount:parsePositiveInteger(n.riftAmount,0),source:"text-trigger"})}},{name:"curative-consume",regex:/^You eat (?<item>.+?)\.$/i,action:({args:e,emit:t})=>{t("CacheCurativeConsumedTextEvent",{item:cleanItemText((e?.groups||{}).item),amount:1,source:"text-trigger"})}},{name:"rift-in",regex:/^You store (?<amount>\d+) (?<item>.+?), bringing the total in the rift to (?<riftAmount>\d+)\.$/i,action:({args:e,emit:t})=>{const n=e?.groups||{};t("CacheRiftInTextEvent",{item:cleanItemText(n.item),amount:parsePositiveInteger(n.amount),riftAmount:parsePositiveInteger(n.riftAmount,0),source:"text-trigger"})}},{name:"inventory-empty",regex:/^You have no (?<item>.+?) in your inventory\.$/i,action:({args:e,emit:t})=>{t("CacheInventoryEmptyTextEvent",{item:cleanItemText((e?.groups||{}).item),source:"text-trigger"})}},{name:"give-away",regex:/^You give (?<item>.+?) to .+\.$/i,action:({args:e,emit:t})=>{emitInventoryDelta({emit:t,item:e?.groups?.item,delta:-1})}},{name:"receive",regex:/^.+ gives (?<item>.+?) to you\.$/i,action:({args:e,emit:t})=>{emitInventoryDelta({emit:t,item:e?.groups?.item,delta:1})}},{name:"drop",regex:/^You drop (?<item>.+?)\.$/i,action:({args:e,emit:t})=>{emitInventoryDelta({emit:t,item:e?.groups?.item,delta:-1})}}]}),()=>({group:"limb/selfDamage",triggers:[{name:"carve-hit",regex:/^As .+? carves into you, you perceive that \w+ has dealt (?<amount>[\d.]+)% damage to your (?<limb>.+)\.$/,action:({args:e,client:t,emit:n})=>{n("LimbDamageTextEvent",{...buildLimbPayload({args:e,client:t}),amount:Number(e.groups?.amount)})}},{name:"crunch-hit",regex:/^As .+?'s? blow crunches into you, you perceive that \w+ has dealt (?<amount>[\d.]+)% damage to your (?<limb>.+)\.$/,action:({args:e,client:t,emit:n})=>{n("LimbDamageTextEvent",{...buildLimbPayload({args:e,client:t}),amount:Number(e.groups?.amount)})}},{name:"pain-subsides",regex:/^The pain plaguing your (?<limb>.+) subsides\.$/,action:({args:e,client:t,emit:n})=>{n("LimbResetTextEvent",buildLimbPayload({args:e,client:t}))}}]}),()=>({group:"queue/text",triggers:Object.entries($).map(createQueueSentTrigger)}),()=>({group:"serverside/statusSnapshot",session:{name:"status",completionEvent:"ServersideStatusSnapshotCompleteTextEvent",fallbackCloseEvents:[{event:"PromptEvent",reason:"prompt"},{event:"CuringStartupCompleteEvent",reason:"startup-complete"}],resetEvents:[{event:"CuringStartupBeginEvent",reason:"startup-begin"}]},triggers:[{name:"open",opener:!0,openReason:"status-header",regex:/^Curing Status:$/},{name:"enabled",regex:/^Enabled:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"enabled",/^yes$/i.test(e.groups.value))}},{name:"reporting",regex:/^Reporting commands:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"reporting",/^yes$/i.test(e.groups.value))}},{name:"sipping",regex:/^Sipping:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"sipping",/^yes$/i.test(e.groups.value))}},{name:"afflictions",regex:/^Affliction Curing:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"afflictions",/^yes$/i.test(e.groups.value))}},{name:"defences",regex:/^Defence Upkeep:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"defences",/^yes$/i.test(e.groups.value))}},{name:"transmutation",regex:/^Curing Method:\s+(?<value>\w+)$/,action:({args:e,emit:t})=>{emitStatus(t,"transmutation","transmutation"===String(e.groups.value||"").toLowerCase())}},{name:"fallback",regex:/^Fallback Curing:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"fallback",/^yes$/i.test(e.groups.value))}},{name:"custom-aff-priority",regex:/^Custom Curing Priority:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"customAffPriority",/^yes$/i.test(e.groups.value))}},{name:"custom-def-priority",regex:/^Custom Defence Priority:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"customDefPriority",/^yes$/i.test(e.groups.value))}},{name:"sip-priority",regex:/^Health\/Mana Priority:\s+(?<value>Health|Mana)$/,action:({args:e,emit:t})=>{emitStatus(t,"sipPriority",String(e.groups.value||"").toLowerCase())}},{name:"sip-health-at",regex:/^Sip health at:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"sipHealthAt",Number(e.groups.value))}},{name:"sip-mana-at",regex:/^Sip mana at:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"sipManaAt",Number(e.groups.value))}},{name:"moss-health-at",regex:/^Eat moss below health:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"mossHealthAt",Number(e.groups.value))}},{name:"moss-mana-at",regex:/^Eat moss below mana:\s+(?<value>\d+)%$/,action:({args:e,emit:t})=>{emitStatus(t,"mossManaAt",Number(e.groups.value))}},{name:"focus",regex:/^Use focus:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"focus",/^yes$/i.test(e.groups.value))}},{name:"focus-over-herbs",regex:/^Focus over herbs:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"focusOverHerbs",/^yes$/i.test(e.groups.value))}},{name:"clot",regex:/^Use clot:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"clot",/^yes$/i.test(e.groups.value))}},{name:"tree",regex:/^Use tree:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"tree",/^yes$/i.test(e.groups.value)?"on":"off")}},{name:"clot-at",regex:/^Clot at:\s+(?<value>\d+) bleeding$/,action:({args:e,emit:t})=>{emitStatus(t,"clotAt",Number(e.groups.value))}},{name:"insomnia",regex:/^Use insomnia:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"insomnia",/^yes$/i.test(e.groups.value))}},{name:"fractures-above",regex:/^Will cure fractures above:\s+(?<value>\d+)% health$/,action:({args:e,emit:t})=>{emitStatus(t,"fracturesAbove",Number(e.groups.value))}},{name:"mana-threshold",regex:/^Will use mana above:\s+(?<value>\d+)% mana$/,action:({args:e,emit:t})=>{emitStatus(t,"manaThreshold",Number(e.groups.value))}},{name:"clot-health",regex:/^Will clot health until:\s+(?<value>\d+)% health$/,action:({args:e,emit:t})=>{emitStatus(t,"clotAbove",Number(e.groups.value))}},{name:"batch",regex:/^Batch actions:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"batch",/^yes$/i.test(e.groups.value))}},{name:"kaido-transmute",closer:!0,closeReason:"status-terminal-line",regex:/^Use Kaido Transmute:\s+(?<value>Yes|No)$/,action:({args:e,emit:t})=>{emitStatus(t,"kaidoTransmute",/^yes$/i.test(e.groups.value))}}]}),createAffPrioritySnapshotTriggers,()=>({group:"serverside/defPrioritySnapshot",session:{name:"defPriorities",completionEvent:"ServersideDefPrioSnapshotCompleteTextEvent",fallbackCloseEvents:[{event:"PromptEvent",reason:"prompt"},{event:"CuringStartupCompleteEvent",reason:"startup-complete"}],resetEvents:[{event:"CuringStartupBeginEvent",reason:"startup-begin"}]},triggers:[{name:"open",opener:!0,openReason:"def-priority-header",regex:/^Your defence priorities(?::| for curing set .+:)$/,action:({emit:e})=>{e("ServersideDefPrioSnapshotOpenTextEvent",{topic:"defPriorities",reason:"def-priority-header"})}},{name:"line",regex:/^(?<def>\w+)\s*: (?<prio>\d+)$/,action:({args:e,emit:t})=>{t("ServersideDefPrioTextEvent",{def:String(e.groups.def||"").toLowerCase(),prio:Number(e.groups.prio)})}}]}),()=>({group:"serverside/liveStatusConfirmations",triggers:[{name:"enabled",regex:/^Curing (?<value>activated|disabled)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"enabled",/^activated$/.test(e.groups.value))}},{name:"transmutation-on",regex:/^You will now use transmutation cures\.$/,action:({emit:e})=>{emitStatus$1(e,"transmutation",!0)}},{name:"transmutation-off",regex:/^You will now use concoction-based cures\.$/,action:({emit:e})=>{emitStatus$1(e,"transmutation",!1)}},{name:"sip-priority",regex:/^Curing will now prioritise (?<value>mana|health) over (?<other>mana|health)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"sipPriority",String(e.groups.value||"").toLowerCase())}},{name:"sip-threshold",regex:/^(?<kind>Health|Mana) curing threshold set to (?<value>\d+)%\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"health"===String(e.groups.kind||"").toLowerCase()?"sipHealthAt":"sipManaAt",Number(e.groups.value))}},{name:"moss-threshold",regex:/^Moss (?<kind>health|mana) curing threshold set to (?<value>\d+)%\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"health"===String(e.groups.kind||"").toLowerCase()?"mossHealthAt":"mossManaAt",Number(e.groups.value))}},{name:"focus",regex:/^Automatic usage of focusing (?<value>activated|disabled)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"focus",/^activated$/.test(e.groups.value))}},{name:"focus-over-herbs",regex:/^You will now prioritise (?<value>focus|herbs) over (?<other>focus|herbs)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"focusOverHerbs",/^focus$/.test(e.groups.value))}},{name:"tree",regex:/^Automatic usage of the tree tattoo (?<value>activated|disabled)\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"tree",/^activated$/.test(e.groups.value)?"on":"off")}},{name:"clot-on",regex:/^You will now attempt to clot your wounds\.$/,action:({emit:e})=>{emitStatus$1(e,"clot",!0)}},{name:"clot-off",regex:/^You will no longer attempt to clot your wounds\.$/,action:({emit:e})=>{emitStatus$1(e,"clot",!1)}},{name:"clot-at",regex:/^Will clot above (?<value>\d+) bleeding\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"clotAt",Number(e.groups.value))}},{name:"insomnia-on",regex:/^You will now use the insomnia ability\.$/,action:({emit:e})=>{emitStatus$1(e,"insomnia",!0)}},{name:"insomnia-off",regex:/^You will now not use the insomnia ability\.$/,action:({emit:e})=>{emitStatus$1(e,"insomnia",!1)}},{name:"fractures-above",regex:/^Will cure health based afflictions above (?<value>\d+)%\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"fracturesAbove",Number(e.groups.value))}},{name:"mana-threshold",regex:/^You will now use mana if above (?<value>\d+)% of your maximum mana reserves\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"manaThreshold",Number(e.groups.value))}},{name:"batch-on",regex:/^You will now attempt to cure multiple things at once\.$/,action:({emit:e})=>{emitStatus$1(e,"batch",!0)}},{name:"batch-off",regex:/^You will now cure one thing at a time\.$/,action:({emit:e})=>{emitStatus$1(e,"batch",!1)}},{name:"clot-above",regex:/^You will now use corrupted clotting if above (?<value>\d+)% of your maximum health reserves\.$/,action:({args:e,emit:t})=>{emitStatus$1(t,"clotAbove",Number(e.groups.value))}}]}),()=>({group:"serverside/livePriorityConfirmations",triggers:[{name:"aff-set",regex:/^You have set the '(?<aff>[^']+)' affliction to the (?<prio>\d+) priority\.$/,action:({args:e,emit:t})=>{t("ServersideAffPrioTextEvent",{aff:String(e.groups.aff||"").toLowerCase(),prio:Number(e.groups.prio),source:"live-confirmation"})}},{name:"def-set",regex:/^You have set the '(?<def>\w+)' defence to the (?<prio>\d+) priority\.$/,action:({args:e,emit:t})=>{t("ServersideDefPrioTextEvent",{def:String(e.groups.def||"").toLowerCase(),prio:Number(e.groups.prio),source:"live-confirmation"})}}]}),()=>({group:"serverside/queuePredictionCuringSets",triggers:[{name:"queue-line",regex:/^CURING QUEUE(?:\s+LIST)?\s*:\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{t("ServersideQueueListTextEvent",{queue:parseDelimitedEntries(e.groups.entries)})}},{name:"predictions-line",regex:/^CURING PREDICTIONS?\s*:\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{t("ServersidePredictionsTextEvent",{predictions:parseDelimitedEntries(e.groups.entries).reduce((e,t)=>(e[t]=!0,e),{})})}},{name:"curingset-active-line",regex:/^ACTIVE CURINGSET\s*:\s*(?<name>.+)$/,action:({args:e,emit:t})=>{t("ServersideCuringSetsTextEvent",{sets:[],activeSet:normalizeTextValue(e.groups.name).toLowerCase()})}},{name:"curingset-list-line",regex:/^CURINGSETS?\s*:\s*(?<entries>.*)$/,action:({args:e,emit:t})=>{t("ServersideCuringSetsTextEvent",{sets:parseDelimitedEntries(e.groups.entries).map(e=>e.replace(/^\*/,"")),activeSet:""})}}]})],createTriggerCatalog=()=>I.map(e=>e()),registerTextTriggers=({triggerApi:e,client:t,emit:n,onLocalEvent:a,pushTrace:o,triggerIds:i,registerCleanup:s,registerTriggerGroupActivity:l,triggerSessions:c})=>{if(!e?.triggers?.add)return void o("register:nexAction:skipped",{reason:"trigger-api-unavailable"});const u="function"==typeof e.triggers.enable&&"function"==typeof e.triggers.disable,sessionToggleTag=e=>`session:${e}`,setSessionTriggers=(t,n)=>{if(!u)return;const a=sessionToggleTag(t);n?e.triggers.enable([a]):e.triggers.disable([a]),o(n?"session:enable":"session:disable",{session:t,tag:a})},resetSession=(e,t={})=>{const n=c[e];return!!n&&(n.active=!1,n.hasLines=!1,n.lastReason=String(t.reason||"reset"),n.lastClosedAt=Date.now(),setSessionTriggers(e,!1),o("session:reset",{session:e,...t}),!0)},beginSession=(e,t={})=>{const n=c[e];return!!n&&(setSessionTriggers(e,!0),n.active?(o("session:reopen",{session:e,...t}),!1):(n.active=!0,n.hasLines=!1,n.lastReason=String(t.reason||t.source||"begin"),n.lastOpenedAt=Date.now(),o("session:begin",{session:e,...t}),!0))},markSessionHasData=e=>{const t=c[e];t?.active&&!t.hasLines&&(t.hasLines=!0)},completeSession=(e,t={})=>{const a=c[e];if(!a?.active)return!1;const i=a.hasLines;return a.active=!1,a.hasLines=!1,a.lastReason=String(t.reason||"complete"),a.lastClosedAt=Date.now(),setSessionTriggers(e,!1),o("session:complete",{session:e,reason:a.lastReason,hadLines:i,completionEvent:t.completionEvent||""}),t.completionEvent&&n(t.completionEvent,{topic:e,reason:a.lastReason}),!0},registerTextTrigger=({id:a,group:s,regex:c,action:u,enabled:d=!0,tags:p=[],once:m,duration:g,fg:h,bg:b,lines:y,prompt:v,finalAction:S,onRemove:x,onDisable:w,onEnable:C})=>{e.triggers.add({id:a,regex:c,enabled:d,tags:p,once:m,duration:g,fg:h,bg:b,lines:y,prompt:v,finalAction:S,onRemove:x,onDisable:w,onEnable:C,action:e=>u({args:e,client:t,emit:n,pushTrace:o})}),i.push(a),l(s,"triggerCount"),o("register:nexAction",{id:a,group:s,enabled:d,regex:c instanceof RegExp?c.source:String(c)})};createTriggerCatalog().forEach(e=>{const t=e.session;t&&"function"==typeof a&&((t.resetEvents||[]).forEach(({event:n,reason:o})=>{s(a(n,()=>resetSession(t.name,{reason:o,event:n}))),l(e.group,"hookCount")}),(t.fallbackCloseEvents||[]).forEach(({event:n,reason:o})=>{s(a(n,()=>completeSession(t.name,{reason:o,completionEvent:t.completionEvent}))),l(e.group,"hookCount")})),e.triggers.forEach(n=>{const a=t?.name,o=Boolean(a&&!0===n.opener),i=Boolean(a&&!0===n.closer),s=["nexsys4","adapter","text",`group:${e.group}`],l=Boolean(a)&&!o,d=l?[sessionToggleTag(a)]:[],p=(!l||!u)&&(n.enabled??!0);registerTextTrigger({id:`nexsys4-${e.group.replace(/[\\/]+/g,"-")}-${n.name}`,group:e.group,regex:n.regex,enabled:p,tags:[...s,...d,...n.tags||[]],once:n.once,duration:n.duration,fg:n.fg,bg:n.bg,lines:n.lines,prompt:n.prompt,finalAction:n.finalAction,onRemove:n.onRemove,onDisable:n.onDisable,onEnable:n.onEnable,action:s=>{if(o)beginSession(a,{group:e.group,trigger:n.name,reason:n.openReason||"open"});else if(a&&!c[a]?.active)return;const l="function"==typeof n.action?n.action(s):void 0;return!a||o||i||!1===l||markSessionHasData(a),i&&completeSession(a,{reason:n.closeReason||"close",completionEvent:t.completionEvent}),l}})})})},N="",L="#c1bfff",j="#FFF2D7",B=`<span style="color:${L}">[-</span><span style="color:${"#cf6dfc"}">nexSys</span><span style="color:${L}">-] </span>`,F=Object.freeze({fg:j,bg:N}),q=Object.freeze({default:Object.freeze({default:Object.freeze({message:F})}),affGot:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" +aff ",fg:"orange",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),affLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" -aff ",fg:"orange",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),defGot:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" +def ",fg:"purple",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),defLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" -def ",fg:"purple",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),balanceRecovered:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" onBal ",fg:"brown",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),balanceLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" offBal ",fg:"brown",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),trackableGot:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" + ",fg:"white",bg:N}),message:Object.freeze({fg:"green",bg:N})})}),trackableLost:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:" - ",fg:"white",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),priority:Object.freeze({default:Object.freeze({prefix:Object.freeze({text:"priority change: ",fg:"yellow",bg:N}),message:Object.freeze({fg:"red",bg:N})})}),output:Object.freeze({default:Object.freeze({message:Object.freeze({fg:"red",bg:N})})})}),escapeHtml$1=e=>String(e||"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),normalizeNoticeToken=(e,t="")=>String(e||t).trim().toLowerCase(),resolveNoticeStyle=(e={})=>{const t=String(e.category||"default").trim(),n=normalizeNoticeToken(e.action,"default"),a=q[t]||q.default;return a[n]||a.default||q.default.default},normalizeNoticePart=(e,t=F)=>"string"==typeof e?{text:e,fg:t.fg,bg:t.bg}:{text:String(e?.text||""),fg:String(e?.fg??t.fg??F.fg),bg:String(e?.bg??t.bg??F.bg)},buildNoticeParts=(e,t={})=>{const n=resolveNoticeStyle(t),a=n.message||F;if(Array.isArray(t.parts)&&t.parts.length)return t.parts.map(e=>normalizeNoticePart(e,a)).filter(e=>e.text);if(t.title)return[normalizeNoticePart({text:String(t.title),fg:t.titleFg??a.fg,bg:t.titleBg??a.bg},a),normalizeNoticePart({text:String(e),fg:t.fg??a.fg,bg:t.bg??a.bg},a)].filter(e=>e.text);const o=[];return n.prefix?.text&&o.push(normalizeNoticePart(n.prefix,a)),o.push(normalizeNoticePart({text:String(e),fg:t.fg??a.fg,bg:t.bg??a.bg},a)),o.filter(e=>e.text)},renderSpanStyle=e=>["white-space:pre-wrap",e.fg?`color:${escapeHtml$1(e.fg)}`:"",e.bg?`background-color:${escapeHtml$1(e.bg)}`:""].filter(Boolean).join(";"),renderNoticeHtml=(e,t={},n=[])=>`<span class="nexsys4-notice" style="white-space:pre-wrap;">${B}${t.html?String(t.html):(n.length?n:buildNoticeParts(e,t)).map(e=>`<span style="${renderSpanStyle(e)}">${escapeHtml$1(e.text)}</span>`).join("")}</span>`,createNoticeTransport=({client:e,emit:t,pushTrace:n})=>({notice(a,o={}){const i=String(a),s=buildNoticeParts(i,o);e.add_html_line(renderNoticeHtml(i,o,s)),n("notice",{message:i,context:o,parts:s}),t("NoticeEvent",{message:i,context:o,parts:s})}}),createTriggerSessionState=()=>({active:!1,hasLines:!1,lastReason:"idle",lastOpenedAt:0,lastClosedAt:0}),createAdapterDebugState=({debug:e=!1,traceLimit:t=200,now:n=()=>Date.now(),logLabel:a="nexSys4.adapter"}={})=>{let o=Boolean(e);const i=Math.max(1,Number(t||200)),s=[],l=new Map,c={status:createTriggerSessionState(),affPriorities:createTriggerSessionState(),defPriorities:createTriggerSessionState()},pushTrace=(e,t={})=>{if(!o)return null;const l={at:n(),type:e,detail:t};return s.push(l),s.length>i&&s.splice(0,s.length-i),console.log(`[${a}] ${e}`,t),l};return{pushTrace,triggerSessions:c,registerTriggerGroupActivity:(e,t="triggerCount")=>{const n=String(e||"").trim();if(!n)return null;const a=l.get(n)||{name:n,triggerCount:0,hookCount:0};return a[t]=Number(a[t]||0)+1,l.set(n,a),a},setDebugEnabled(e){o=Boolean(e),pushTrace("debug",{enabled:o})},isDebugEnabled:()=>o,snapshotTriggerGroups:()=>[...l.values()].map(e=>({...e})).sort((e,t)=>e.name.localeCompare(t.name)),snapshotTriggerSessions:()=>Object.entries(c).reduce((e,[t,n])=>(e[t]={...n},e),{}),snapshotRecentTrace:()=>[...s]}},createAdapterEventHub=({pushTrace:e=()=>{},errorLabel:t="nexSys4 adapter listener failed"}={})=>{const n=new Map,normalizeEventName=e=>String(e||"").trim(),emit=(a,o)=>{const i=normalizeEventName(a),s=n.get(i);if(!i||!s?.size)return i&&e("emit",{event:i,listenerCount:0,payload:o}),0;const l=[...s];return e("emit",{event:i,listenerCount:l.length,payload:o}),l.forEach(e=>{if(n.get(i)?.has(e))try{e(o)}catch(a){console.error(t,{event:i,error:a})}}),l.length},on=(t,a)=>{const o=normalizeEventName(t);if(!o||"function"!=typeof a)return()=>{};let i=n.get(o);return i||(i=new Set,n.set(o,i)),i.add(a),e("on",{event:o,listenerCount:i.size}),()=>off(o,a)},off=(t,a)=>{const o=normalizeEventName(t),i=n.get(o);if(!o||!i)return!1;const s=i.delete(a);return i.size||n.delete(o),e("off",{event:o,removed:s,listenerCount:i.size}),s};return{emit,on,off,clear(){n.clear()}}},createAdapterLifecycle=({eventBus:e,triggerApi:t,pushTrace:n=()=>{},clearListeners:a=()=>{}}={})=>{const o=[],i=[],s=[],destroy=()=>{const l=s.length,c=o.length,u=[...i];s.splice(0).forEach(e=>{try{e()}catch(t){console.error("nexSys4 adapter cleanup failed",{error:t})}}),e?.removeListener&&o.forEach(({eventName:t,id:n})=>{e.removeListener(t,n)}),t?.triggers?.remove&&i.forEach(e=>t.triggers.remove(e)),n("destroy",{eventRegistrations:c,triggerIds:u,internalCleanupCount:l}),a()};return{eventRegistrations:o,triggerIds:i,registerCleanup:e=>"function"==typeof e?(s.push(e),e):()=>{},destroy}},summarizePromptContext=(e={})=>({source:e.source||"",hasLine:Boolean(e.line)}),createAdapterPromptSink=({emit:e,pushTrace:t})=>{const renderPrompt=(n,a={})=>{const o=String(n??""),i=a?.line;return i?.parsed_line&&"object"==typeof i.parsed_line&&(i.parsed_line.formatted=()=>o),e("PromptRendered",{prompt:o,context:a}),t("renderPrompt",{promptLength:o.length,context:summarizePromptContext(a)}),o};return{renderPrompt}},normalizeOutboundCommands=e=>Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0):"string"==typeof e&&e?[e]:[],normalizeGmcpRequests=e=>Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)],createAdapterTransport=({client:e,emit:t,pushTrace:n,resolveSeparator:a}={})=>({send(o=[],i={}){const s=normalizeOutboundCommands(o);if(!s.length)return[];const l=s.join(a()||"|");return e?.send_commands&&e.send_commands(l,!1),n("send",{commands:s,payload:l,context:i}),t("OutboundCommandsEvent",{commands:s,payload:l,context:i}),s},sendGmcp(a=[],o={}){const i="function"==typeof e?.datahandler?e.datahandler():null;if("function"!=typeof i?.send_GMCP)return[];const s=normalizeGmcpRequests(a);if(!s.length)return[];const l=[];return s.forEach(e=>{try{i.send_GMCP(e),l.push(e)}catch(t){console.error("nexSys4 GMCP request failed",{request:e,error:t})}}),l.length&&(n("sendGmcp",{requests:l,context:o}),t("AdapterGmcpRequest",{requests:l,context:o})),l},getVariable(t){if(!e?.variables)return;const n=e.variables();return"function"==typeof n?.get?n.get(t):n?.vars?.[t]},setVariable(t,n){if(!e?.variables)return n;const a=e.variables();return"function"==typeof a?.set?(a.set(t,n),n):a?.vars?(a.vars[t]=n,n):n}}),createNexusAdapter=(e={})=>{const t=e.nexusclient||globalThis.nexusclient,monotonicNowMs=()=>globalThis.performance?.now?globalThis.performance.now():Date.now();let n=null;const resolveSeparator=()=>n||normalizeCommandSeparator(e.separator??t?.settings?.command_separator??t?.settings?.commandSeparator),a=e.eventStream||globalThis.eventStream,o=e.nexAction||globalThis.nexAction,getGMCP=()=>e.GMCP||globalThis.GMCP,{pushTrace:i,triggerSessions:s,registerTriggerGroupActivity:l,setDebugEnabled:c,isDebugEnabled:u,snapshotTriggerGroups:d,snapshotTriggerSessions:p,snapshotRecentTrace:m}=createAdapterDebugState({debug:e.debug,traceLimit:e.traceLimit}),{emit:g,on:h,off:b,clear:y}=createAdapterEventHub({pushTrace:i}),{eventRegistrations:v,triggerIds:S,registerCleanup:x,destroy:w}=createAdapterLifecycle({eventBus:a,triggerApi:o,pushTrace:i,clearListeners:y}),{send:C,sendGmcp:k,getVariable:E,setVariable:P}=createAdapterTransport({client:t,emit:g,pushTrace:i,resolveSeparator}),normalizeEventName=e=>String(e||"").trim(),{notice:T}=createNoticeTransport({client:t,emit:g,pushTrace:i}),{renderPrompt:R}=createAdapterPromptSink({emit:g,pushTrace:i}),emitLocal=(e,t)=>{const n=normalizeEventName(e);return!!n&&(g(n,t),i("emit:local",{event:n,payload:t}),!0)},raiseToEventStream=(e,t)=>{const n=normalizeEventName(e);return!(!n||!a?.raiseEvent)&&(a.raiseEvent(n,t),i("emit:eventstream",{topic:n,payload:t}),!0)};o?.triggers?.remove&&o.triggers.remove(["nexsys4"]),a?.removeByTag&&a.removeByTag(["nexsys4"]),registerEventStreamBindings({eventBus:a,emit:g,pushTrace:i,eventRegistrations:v}),registerTextTriggers({triggerApi:o,client:t,emit:g,onLocalEvent:h,pushTrace:i,triggerIds:S,registerCleanup:x,registerTriggerGroupActivity:l,triggerSessions:s}),!1!==e.startupGag&®isterStartupGag({onLocalEvent:h,client:t,notice:T,isDebugEnabled:u});const addOnceTrigger=({id:e,regex:n,action:a})=>o?.triggers?.add?(o.triggers.add({id:e,regex:n,enabled:!0,once:!0,tags:["nexsys4","probe",`probe:${e}`],action:e=>a({args:e,client:t,emit:g,pushTrace:i})}),S.push(e),i("probe-trigger:add",{id:e,regex:n instanceof RegExp?n.source:String(n)}),()=>{o?.triggers?.remove&&o.triggers.remove(e),i("probe-trigger:remove",{id:e})}):()=>{};return{capabilities:Object.freeze({promptRender:!0,separatorProbe:!0,gmcpSnapshot:!0,debugToggle:!0,destroy:!0}),send:C,sendGmcp:k,on:h,off:b,notice:T,getCommandSeparator:()=>resolveSeparator(),setSeparator(e){n=normalizeCommandSeparator(e)||null},addOnceTrigger,now:monotonicNowMs,setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),renderPrompt:R,getVariable:E,setVariable:P,emitLocal,raiseToEventStream,destroy:w,getGMCP,setDebugEnabled:c,isDebugEnabled:u,debugInfo:()=>({debugEnabled:u(),separator:resolveSeparator(),eventRegistrations:v.map(e=>({...e})),triggerIds:[...S],triggerGroups:d(),triggerSessions:p(),hasEventStream:Boolean(a?.registerEvent),hasNexActionTriggers:Boolean(o?.triggers?.add),recentTrace:m()})}},createMockAdapter=(e={})=>{const t=new Map,n=new Map,a=new Map;let o=normalizeCommandSeparator(e.separator??"|");const i=[],s=[],l=[],c=[],u=[],d=[];let p=Boolean(e.debug);const m=Math.max(1,Number(e.traceLimit||200)),g=[],pushTrace=(e,t={})=>{const n={at:nowMs(),type:e,detail:t};g.push(n),g.length>m&&g.splice(0,g.length-m),p&&console.log(`[nexSys4.mockAdapter] ${e}`,t)},normalizeEventName=e=>String(e||"").trim(),emit=(e,n)=>{const a=normalizeEventName(e),o=t.get(a);if(!a||!o?.size)return a&&pushTrace("emit",{event:a,listenerCount:0,payload:n}),0;const i=[...o];return pushTrace("emit",{event:a,listenerCount:i.length,payload:n}),i.forEach(e=>{if(t.get(a)?.has(e))try{e(n)}catch(o){console.error("nexSys4 mock adapter listener failed",{event:a,error:o})}}),i.length},on=(e,n)=>{const a=normalizeEventName(e);if(!a||"function"!=typeof n)return()=>{};let o=t.get(a);return o||(o=new Set,t.set(a,o)),o.add(n),pushTrace("on",{event:a,listenerCount:o.size}),()=>off(a,n)},off=(e,n)=>{const a=normalizeEventName(e),o=t.get(a);if(!a||!o)return!1;const i=o.delete(n);return o.size||t.delete(a),pushTrace("off",{event:a,removed:i,listenerCount:o.size}),i},removeOnceTrigger=e=>{const t=String(e||"").trim();if(!t)return!1;const n=a.delete(t);return pushTrace("probe-trigger:remove",{id:t,removed:n}),n},addOnceTrigger=({id:e,regex:t,action:n}={})=>{const o=String(e||"").trim();return o&&t instanceof RegExp&&"function"==typeof n?(a.set(o,{regex:t,action:n}),pushTrace("probe-trigger:add",{id:o,regex:t.source}),()=>removeOnceTrigger(o)):()=>{}},fireText=(e,t={})=>{const n=String(e??"");pushTrace("fireText",{text:n,detail:t,triggerCount:a.size});const o=[];return[...a.entries()].forEach(([e,i])=>{i.regex.lastIndex=0;const s=i.regex.exec(n);s&&(a.delete(e),o.push(e),i.action({args:{raw:n,line:n,text:n,groups:s.groups||{},matches:[...s]},detail:t}))}),o};return{capabilities:Object.freeze({promptRender:!0,separatorProbe:!0,gmcpSnapshot:!0,debugToggle:!0,destroy:!0}),send(e=[],t={}){const n=Array.isArray(e)?e.filter(e=>"string"==typeof e&&e.length>0):"string"==typeof e&&e?[e]:[];return n.length?(i.push({commands:n,context:t}),pushTrace("send",{commands:n,context:t}),emit("OutboundCommandsEvent",{commands:n,context:t}),n):[]},sendGmcp(e=[],t={}){const n=Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)];return n.length?(u.push(...n),pushTrace("sendGmcp",{requests:n,context:t}),emit("AdapterGmcpRequest",{requests:n,context:t}),n):[]},on,off,emit,notice(e,t={}){s.push({message:String(e),context:t}),pushTrace("notice",{message:String(e),context:t})},getCommandSeparator:()=>o,setSeparator:e=>(o=normalizeCommandSeparator(e),pushTrace("setSeparator",{separator:o}),o),addOnceTrigger,fireText,now:()=>"function"==typeof e.now?e.now():nowMs(),setTimeout:(e,t)=>setTimeout(e,t),clearTimeout(e){clearTimeout(e)},renderPrompt(e,t={}){const n=String(e??""),a={prompt:n,context:t};return d.push(a),pushTrace("renderPrompt",{promptLength:n.length,source:t.source||"",hasLine:Boolean(t.line)}),emit("PromptRendered",a),n},getVariable:e=>n.get(e),setVariable:(e,t)=>(n.set(e,t),t),emitLocal(e,t){const n=String(e||"").trim();if(!n)return!1;const a={event:n,payload:t};return l.push(a),pushTrace("emit:local",a),emit(n,t),!0},raiseToEventStream(e,t){const n=String(e||"").trim();if(!n)return!1;const a={topic:n,payload:t};return c.push(a),pushTrace("emit:eventstream",a),!0},destroy(){t.clear(),a.clear()},getSentBatches:()=>i,getNotices:()=>s,getLocalEvents:()=>l,getEventStreamEvents:()=>c,getGmcpRequests:()=>u,getRenderedPrompts:()=>d,getGMCP:()=>e.gmcp||{},setDebugEnabled(e){p=Boolean(e),pushTrace("debug",{enabled:p})},isDebugEnabled:()=>p,debugInfo:()=>({debugEnabled:p,separator:o,recentTrace:[...g],sentBatchCount:i.length,gmcpRequests:[...u],renderedPromptCount:d.length})}},U={list:["accentato","addiction","aeon","agoraphobia","airfisted","amnesia","anorexia","asphyxiating","asthma","betrayal","blackout","blindness","blistered","bloodfire","bound","breathless","brokenleftarm","brokenrightarm","brokenleftleg","brokenrightleg","bruisedribs","burning","cadmuscurse","calcifiedskull","calcifiedtorso","claustrophobia","clumsiness","coldfate","concussion","condemned","conflagration","confusion","constricted","convergence","corruption","crackedribs","cremated","crescendo","crushedthroat","daeggerimpale","damagedhead","damagedleftarm","damagedleftleg","damagedrightarm","damagedrightleg","darkshade","dazed","dazzled","deadening","deafness","death","deathsickness","deepsleep","degenerate","dehydrated","dementia","demonstain","depression","deteriorate","diminished","disloyalty","disrupted","dissonance","dizziness","earworm","empoweredmannaz","empoweredloshre","enlightenment","enmesh","ensorcelled","entangled","epilepsy","fear","flamefisted","flushings","fratricide","frostbite","frozen","fulminated","generosity","grievouswounds","guilt","hamstrung","haemophilia","hallucinations","hatred","healthleech","heartseed","hecatecurse","hellsight","hindered","homunculusmercury","horror","hypersomnia","hypochondria","hypothermia","icebound","icefisted","impaled","impatience","indifference","inquisition","insomnia","internalbleeding","isolation","itching","justice","kaisurge","kkractlebrand","laceratedthroat","lapsingconsciousness","latched","lethargy","lightbind","loneliness","lovers","lovestruck","lullaby","manaleech","masochism","mildtrauma","mangledleftarm","mangledleftleg","mangledrightarm","mangledrightleg","mangledhead","mindclamp","mindravaged","muddled","mycalium","nausea","numbedleftarm","numbedrightarm","pacified","palpatarfeed","paralysis","paranoia","parasite","peace","penitence","petrified","phlogisticated","pinshot","pressure","prone","pyramides","pyre","rebbies","recklessness","reeling","retribution","revealed","sandfever","scalded","scrambledbrains","scytherus","selarnia","sensitivity","serioustrauma","shadowmadness","shivering","shyness","silenced","silver","skullfractures","slashedthroat","sleeping","slickness","slimeobscure","snared","solarburn","speechless","spiritburn","stridulating","stun","stupidity","stuttering","succumbed","temperedcholeric","temperedmelancholic","temperedphlegmatic","temperedsanguine","tenderskin","tension","timeflux","timeloop","tonguetied","torntendons","transfixation","trueblind","unweavingbody","unweavingmind","unweavingspirit","vertigo","vinewreathed","vitiated","vitrified","voidfisted","voyria","waterbonds","weakenedmind","weariness","webbed","woeconstrained","whisperingmadness","wristfractures","unconsciousness","harmonic","bop","spiritwrack","bedevil","loki","moon","evileye","dragoncurse","swiftcurse"],prios:{aeon:2,concussion:2,crushedthroat:2,paralysis:2,peace:2,sleeping:3,grievouswounds:3,latched:3,dazzled:3,unweavingbody:3,unweavingmind:3,unweavingspirit:3,weariness:3,prone:3,timeloop:3,fulminated:3,spiritburn:4,heartseed:4,guilt:4,tenderskin:4,pyramides:4,parasite:4,hypochondria:4,pacified:4,depression:4,confusion:4,mindravaged:4,retribution:4,shadowmadness:4,whisperingmadness:4,hellsight:4,anorexia:5,scalded:5,mycalium:5,frostbite:5,flushings:5,rebbies:5,sandfever:5,asthma:5,healthleech:5,impatience:6,itching:6,fratricide:6,scytherus:6,clumsiness:6,kkractlebrand:6,damagedleftleg:6,darkshade:6,slickness:6,recklessness:6,dementia:6,icebound:6,bound:7,daeggerimpale:7,entangled:7,sensitivity:7,transfixation:7,webbed:7,tonguetied:7,haemophilia:7,lethargy:7,manaleech:7,dissonance:7,pyre:7,skullfractures:8,damagedrightleg:8,hypersomnia:8,earworm:0,crescendo:0,diminished:0,torntendons:9,brokenleftleg:9,brokenrightleg:9,hallucinations:9,calcifiedskull:10,calcifiedtorso:10,mangledleftleg:10,mangledrightleg:10,disrupted:10,mangledhead:10,voyria:10,crackedribs:10,hypothermia:11,impaled:11,brokenleftarm:11,brokenrightarm:11,indifference:11,addiction:11,nausea:11,deadening:11,frozen:11,shivering:11,mildtrauma:11,internalbleeding:11,stupidity:12,wristfractures:12,damagedleftarm:12,disloyalty:12,tension:13,damagedhead:13,dazed:13,burning:13,lovers:14,pressure:14,damagedrightarm:14,temperedcholeric:14,temperedmelancholic:14,temperedphlegmatic:14,temperedsanguine:14,mangledleftarm:15,mangledrightarm:15,agoraphobia:16,claustrophobia:16,generosity:16,justice:16,loneliness:16,vertigo:16,paranoia:17,serioustrauma:18,epilepsy:18,laceratedthroat:20,slashedthroat:20,stuttering:20,selarnia:21,fear:21,masochism:21,dizziness:23,shyness:23,stridulating:24,horror:26,bleeding:30,amnesia:30,blackout:30,insomnia:0,deafness:0,blindness:0,harmonic:100,bop:100,spiritwrack:100,bedevil:100,loki:100,moon:100,evileye:100,dragoncurse:100,swiftcurse:100},types:{countable:{pressure:{min:0,max:5},crescendo:{min:0,max:5},unweavingbody:{min:0,max:5},unweavingspirit:{min:0,max:5},unweavingmind:{min:0,max:5},burning:{min:0,max:5},horror:{min:0,max:5},pyre:{min:0,max:3},temperedcholeric:{min:0,max:8},temperedmelancholic:{min:0,max:8},temperedphlegmatic:{min:0,max:8},temperedsanguine:{min:0,max:8},torntendons:{min:0,max:6},crackedribs:{min:0,max:6},skullfractures:{min:0,max:6},wristfractures:{min:0,max:6}},nonServerside:{accentato:0,airfisted:0,asphyxiating:0,blistered:0,bloodfire:0,bruisedribs:0,cadmuscurse:0,coldfate:0,condemned:0,conflagration:0,constricted:0,convergence:0,corruption:0,cremated:0,death:0,deathsickness:0,deepsleep:0,degenerate:0,dehydrated:0,demonstain:0,deteriorate:0,empoweredloshre:0,empoweredmannaz:0,enlightenment:0,enmesh:0,ensorcelled:0,flamefisted:0,hamstrung:0,hatred:0,hecatecurse:0,hindered:0,homunculusmercury:0,icefisted:0,inquisition:0,isolation:0,kaisurge:0,lightbind:0,lullaby:0,mindclamp:0,muddled:0,numbedleftarm:0,numbedrightarm:0,palpatarfeed:0,petrified:0,phlogisticated:0,pinshot:0,revealed:0,scrambledbrains:0,silenced:0,silver:0,slimeobscure:0,solarburn:0,stun:0,timeflux:0,trueblind:0,vinewreathed:0,vitiated:0,vitrified:0,voidfisted:0,waterbonds:0,weakenedmind:0,unconsciousness:0},timed:{accentato:{length:20},aeon:{length:16},airfisted:{length:16},betrayal:{length:15},blackout:{length:20},blistered:{length:20},breathless:{length:3},bruisedribs:{length:30},cadmuscurse:{length:20},condemned:{length:20},constricted:{length:30},corruption:{length:45},dazzled:{length:60},dehydrated:{length:60},demonstain:{length:120},empoweredloshre:{length:12},empoweredmannaz:{length:20},enmesh:{length:5},ensorcelled:{length:20},flamefisted:{length:30},hamstrung:{length:9},heartseed:{length:11},hecatecurse:{length:16},icefisted:{length:30},inquisition:{length:30},lightbind:{length:22},lovestruck:{length:5},muddled:{length:12},numbedleftarm:{length:7.5},numbedrightarm:{length:7.5},palpatarfeed:{length:20},phlogisticated:{length:45},pinshot:{length:18},reeling:{length:20},revealed:{length:60},scalded:{length:20},scrambledbrains:{length:60},silver:{length:180},slimeobscure:{length:60},solarburn:{length:5},snared:{length:20},speechless:{length:300},stridulating:{length:15},stun:{length:3},succumbed:{length:30},timeflux:{length:60},trueblind:{length:6},unconsciousness:{length:10},vinewreathed:{length:30},vitrified:{length:45},voidfisted:{length:5},waterbonds:{length:30},weakenedmind:{length:60},woeconstrained:{length:30}},unknown:{moon:["stupidity","confusion","epilepsy","masochism","hypersomnia","hallucinations"],loki:["stupidity","clumsiness","recklessness","asthma","shyness","darkshade","paralysis","brokenleftarm","brokenrightarm","brokenleftleg","brokenrightleg","sensitivity","disloyalty","nausea","weariness","dizziness","anorexia","voyria","haemophilia","addiction","selarnia","slickness","scytherus"],evileye:["confusion","dizziness"],dragoncurse:["recklessness","clumsiness","epilepsy","dizziness","pacified","nausea","addiction","anorexia","generosity","disloyalty","sensitivity","vertigo","paranoia","stupidity","hypochondria","lethargy","shivering","frozen","impatience","paralysis","asthma","agoraphobia"],harmonic:["stupidity","recklessness"],bop:["stupidity","recklessness"],swiftcurse:["stupidity","clumsiness","recklessness","asthma","paralysis","deafness","sensitivity","nausea","weariness","dizziness","anorexia","voyria","haemophilia","addiction","impatience","claustrophobia","vertigo","agoraphobia","masochism","epilepsy","manaleech","pacified","dementia","healthleech"],bedevil:["stupidity","recklessness"]},uncurable:{bloodfire:!0,cadmuscurse:!0,conflagration:!0,death:!0,deathsickness:!0,deepsleep:!0,enlightenment:!0,insomnia:!0,isolation:!0,lullaby:!0,mindclamp:!0,palpatarfeed:!0,penitence:!0,scalded:!0,stun:!0,weakenedmind:!0}}},V=((e=>{const t=new Set(e.list),n={};for(const[a,o]of Object.entries(e.prios))n[o]||(n[o]=[]),n[o].push(a);Object.freeze({affSet:t,prioArrays:Object.freeze(n)})})(U),{herb:{length:1.6,aff_modifiers:{homunculusmercury:{multiplier:1,offset:.5}}},focus:{length:2.5,aff_modifiers:{weakenedmind:{multiplier:2,offset:.5},whisperingmadness:{multiplier:1.6,offset:0}}},sip:{length:4.5,aff_modifiers:{skullfractures:{multiplier:1,offset:1}}},moss:{length:6},tree:{length:15,aff_modifiers:{slimeobscure:{multiplier:1,offset:10}}},equilibrium:{length:20,aff_modifiers:{confusion:{multiplier:1.5,offset:0}}},balance:{length:20,aff_modifiers:{lethargy:{multiplier:1.25,offset:0}}},salve:{length:4,aff_modifiers:{timeflux:{multiplier:1.5,offset:0}}},immunity:{length:10},rebounding:{length:9},smoke:{length:1.5},dragonbreath:{length:1.5},deafness:{length:3},deaf:{length:6},blind:{length:6},speed:{length:6},wake:{length:20},sileris:{length:8},free:{length:0},voice:{length:2.5},tremolo:{length:6},homunculus:{length:12},fitness:{length:10},bloodboil:{length:10},dragonheal:{length:20},rage:{length:10},salt:{length:10},shrugging:{length:10},alleviate:{length:10},slough:{length:10},fool:{length:40},writhe:{length:6},impalewrithe:{length:4},entity:{length:4},word:{length:5},anathema:{length:5},systemOutput:{length:1}}),H=["itching","paralysis","fear","brokenrightarm","brokenleftarm","brokenrightleg","brokenleftleg","lapsingconsciousness","aeon","lovers","confusion","epilepsy","pacified","blackout","dazed","justice","slashedthroat","hellsight","peace","dazzled","shyness","dizziness","slickness","asthma","nausea","selarnia","weariness","scytherus","fratricide","haemophilia","clumsiness","hallucinations","healthleech","dementia","recklessness","anorexia","masochism","impatience","stupidity","generosity","addiction","deadening","manaleech","stuttering","paranoia","agoraphobia","loneliness","claustrophobia","vertigo","hypersomnia","shivering","frozen","burning","sensitivity","hypochondria","lethargy","disloyalty","darkshade","voyria","dissonance","phlogisticated","silver","spiritburn","tenderskin","guilt","skullfractures","wristfractures","crackedribs","torntendons","indifference","retribution","shadowmadness","parasite","depression","timeloop","crushedthroat","tension","unweavingspirit","grievouswounds","pyramides","flushings","rebbies","mycalium","sandfever","crescendo","fulminated","frostbite"],W={ferrum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ferrum",order:["darkshade","haemophilia","lethargy","addiction","scytherus","nausea","flushings","unweavingbody"],prio:0},magnesium:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat magnesium",order:["paralysis","slickness","pyramides"],prio:0},aurum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat aurum",order:["clumsiness","healthleech","sensitivity","weariness","asthma","rebbies","parasite"],prio:0},calamine:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat calamine",order:["deafness"],delay:2.5,prio:0},argentum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat argentum",order:["fratricide","masochism","loneliness","vertigo","recklessness","agoraphobia","guilt","whisperingmadness","spiritburn","tenderskin","hypochondria"],prio:0},cuprum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat cuprum",order:["pacified","peace","lovers","justice","generosity","indifference","retribution","pyre","timeloop","stridulating","diminished"],prio:0},antimony:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat antimony",order:["temperedcholeric","temperedmelancholic","temperedphlegmatic","temperedsanguine"],prio:0},arsenic:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat arsenic",prio:0},stannum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat stannum",order:["claustrophobia","paranoia","confusion","hypersomnia","hallucinations","dementia","crescendo"],prio:0},plumbum:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],order:["horror","stupidity","epilepsy","dizziness","shyness","impatience","dissonance","depression","sandfever","mycalium","shadowmadness","unweavingmind","fulminated"],command:"eat plumbum",prio:0},calcite:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],order:["pressure"],command:"eat calcite",prio:0},ginseng:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ginseng",order:["darkshade","haemophilia","lethargy","addiction","scytherus","nausea","flushings","unweavingbody"],prio:0},bloodroot:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat bloodroot",order:["paralysis","slickness","pyramides"],prio:0},kelp:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat kelp",order:["clumsiness","healthleech","sensitivity","weariness","asthma","rebbies","parasite"],prio:0},hawthorn:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat hawthorn",order:["deafness"],delay:2.5,prio:0},lobelia:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat lobelia",order:["fratricide","masochism","loneliness","vertigo","recklessness","agoraphobia","guilt","whisperingmadness","spiritburn","tenderskin","hypochondria"],prio:0},bellwort:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat bellwort",order:["pacified","peace","lovers","justice","generosity","indifference","retribution","pyre","timeloop","stridulating","diminished"],prio:0},ginger:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ginger",order:["temperedcholeric","temperedmelancholic","temperedphlegmatic","temperedsanguine"],prio:0},bayberry:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat bayberry",prio:0},ash:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat ash",order:["claustrophobia","paranoia","confusion","hypersomnia","hallucinations","dementia","crescendo"],prio:0},goldenseal:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],command:"eat goldenseal",order:["horror","stupidity","epilepsy","dizziness","shyness","impatience","dissonance","depression","sandfever","mycalium","shadowmadness","unweavingmind","fulminated"],prio:0},pear:{bals_used:["herb"],bals_req:["herb"],blocks:["death","anorexia","sleeping"],order:["pressure"],command:"eat pear",prio:0},smoke:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke cinnabar",order:["aeon","disloyalty","hellsight","manaleech","slickness","deadening","tension","unweavingspirit","earworm","dazed"],prio:0},cinnabar:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke cinnabar",order:["aeon","deadening","tension","unweavingspirit","earworm","dazed"],prio:0},malachite:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke malachite",prio:0},realgar:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke realgar",order:["disloyalty","hellsight","manaleech","slickness"],prio:0},elm:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke elm",order:["aeon","deadening","tension","unweavingspirit","earworm","dazed"],prio:0},skullcap:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke skullcap",prio:0},valerian:{bals_used:["smoke"],bals_req:["smoke"],blocks:["death","asthma","sleeping"],command:"smoke valerian",order:["disloyalty","hellsight","manaleech","slickness"],prio:0},caloric:{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply caloric",order:["frozen","shivering","frostbite"],prio:0},"epidermal to body":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply epidermal to body",order:["anorexia","itching"],prio:0},"epidermal to head":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply epidermal to head",order:["blindness","scalded","deafness","stuttering"],prio:0},"epidermal to ears":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply epidermal to ears",order:["deafness"],prio:0},"mending to head":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to head",order:["crushedthroat","dazzled"],prio:0},"mending to arms":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to arms",order:["brokenleftarm","brokenrightarm"],prio:0},"mending to legs":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to legs",order:["brokenleftleg","brokenrightleg"],prio:0},"mending to torso":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to torso",order:["burning"],prio:0},"mending to body":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply mending to body",order:["selarnia"],prio:0},"restoration to head":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to head",order:["mangledhead","damagedhead","calcifiedskull","concussion","tonguetied","slashedthroat","laceratedthroat"],delay:4,prio:0},"restoration to torso":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to torso",order:["hypothermia","heartseed","serioustrauma","mildtrauma","calcifiedtorso","internalbleeding"],delay:4,prio:0},"restoration to arms":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to arms",order:["mangledleftarm","mangledrightarm","damagedleftarm","damagedrightarm"],delay:4,prio:0},"restoration to legs":{bals_used:["salve"],bals_req:["salve"],blocks:["death","slickness","sleeping"],command:"apply restoration to legs",order:["mangledleftleg","mangledrightleg","damagedleftleg","damagedrightleg"],delay:4,prio:0},insomnia:{bals_req:["free"],bals_used:["free"],blocks:["death","hypersomnia","sleeping"],command:"insomnia",order:["insomnia"],prio:0},focus:{bals_req:["focus"],bals_used:["focus"],blocks:["death","impatience","sleeping"],command:"focus",order:["stupidity","epilepsy","dizziness","shyness","claustrophobia","paranoia","confusion","hallucinations","dementia","pacified","peace","lovers","generosity","masochism","loneliness","vertigo","recklessness","agoraphobia","anorexia","stuttering"],prio:0},"health to head":{bals_req:["sip"],bals_used:["sip"],command:"apply health to head",order:["skullfractures"],prio:0},"health to torso":{bals_req:["sip"],bals_used:["sip"],command:"apply health to torso",order:["crackedribs","grievouswounds"],prio:0},"health to arms":{bals_req:["sip"],bals_used:["sip"],command:"apply health to arms",order:["wristfractures"],prio:0},"health to legs":{bals_req:["sip"],bals_used:["sip"],command:"apply health to legs",order:["torntendons","latched","kkractlebrand"],prio:0},concentrate:{blocks:["death","sleeping","confusion"],command:"concentrate",order:["disrupted"],prio:0},immunity:{bals_req:["immunity"],bals_used:["immunity"],blocks:["death","sleeping","anorexia"],command:"sip immunity",order:["voyria"],prio:0},stand:{bals_req:["balance","equilibrium"],blocks:["death","sleeping","paralysis","brokenrightleg","brokenleftleg","damagedleftleg","damagedrightleg","mangledrightleg","mangledleftleg","entangled","transfixation","impaled","webbed","bound"],command:"stand",order:["prone"],prio:0},tree:{bals_used:["tree"],bals_req:["tree"],blocks:["death","sleeping","paralysis",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound"],command:"touch tree",order:H,prio:0},health:{bals_req:["sip"],bals_used:["sip"],blocks:["death","sleeping","anorexia"],command:"sip health",prio:0},mana:{bals_req:["sip"],bals_used:["sip"],blocks:["death","sleeping","anorexia"],command:"sip mana",prio:0},potash:{bals_req:["moss"],bals_used:["moss"],blocks:["death","sleeping","anorexia"],command:"eat potash",prio:0},moss:{bals_req:["moss"],bals_used:["moss"],blocks:["death","sleeping","anorexia"],command:"eat moss",prio:0},fitness:{bals_req:["equilibrium","balance","fitness"],bals_used:["balance","fitness"],blocks:["death","weariness","sleeping"],skills:["Monk","Shikudo","Runewarden"],command:"fitness",order:["asthma"],prio:0},bloodboil:{bals_req:["equilibrium","balance","bloodboil"],bals_used:["equilibrium","bloodboil"],blocks:["death","haemophilia","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound"],skills:["Magi"],command:"cast bloodboil",order:H,prio:0},restore:{bals_req:["balance","equilibrium"],bals_used:["equilibrium"],command:"restore",order:["brokenleftarm","brokenrightarm","brokenleftleg","brokenrightleg","skullfractures","torntendons","wristfractures","crackedribs"],prio:0},dragonflex:{bals_req:["balance"],bals_used:["balance"],command:"dragonflex",skills:["Dragon"],order:["webbed","entangled"],prio:0},dragonheal:{bals_req:["balance","equilibrium"],bals_used:["equilibrium"],command:"dragonheal",skills:["Dragon"],blocks:["death","sleeping",["recklessness","weariness"]],order:H,prio:0},dwinnu:{bals_req:["voice"],bals_used:["voice"],command:"chant dwinnu",skills:["Bard"],order:["webbed","entangled"],prio:0},rage:{bals_req:["rage"],bals_used:["rage"],command:"rage",skills:["Runewarden"],order:["pacified","peace","lovers","generosity"],prio:95},"touch soul":{command:"touch soul",blocks:["death"],order:["amnesia"],prio:101},salt:{bals_req:["equilibrium","salt"],bals_used:["salt","equilibrium"],blocks:["death","stupidity","sleeping"],skills:["Alchemist"],command:"educe salt",order:H,prio:0},siphon:{bals_req:["angel"],bals_used:["angel"],blocks:["death","sleeping"],skills:["Apostate","Priest"],command:"educe salt",order:H,prio:0},shrugging:{bals_req:["equilibrium","balance","shrugging"],bals_used:["shrugging"],blocks:["death","weariness","sleeping"],skills:["Serpent"],command:"shrugging",order:H,prio:0},slough:{bals_req:["equilibrium","balance","slough"],bals_used:["slough","balance"],blocks:["death","weariness","sleeping"],skills:["Fire Elemental Lord"],command:"slough impurities",order:H,prio:0},fool:{bals_req:["equilibrium","balance","fool"],bals_used:["fool","balance"],blocks:["death","prone","paralysis","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound"],skills:["Occultist"],command:"fling fool at me",order:H,prio:0},alleviate:{bals_req:["equilibrium","balance","alleviate"],bals_used:["alleviate","balance"],blocks:["death","paralysis","sleeping"],skills:["Blademaster"],command:"alleviate",order:H,prio:0}},normalizeCureCommand=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],G=Object.freeze(Object.fromEntries(Object.entries(W).map(([e,t])=>[e,Object.freeze({...t,command:Object.freeze(normalizeCureCommand(t.command))})]))),Y=Object.freeze(Object.entries(G).reduce((e,[t,n])=>((Array.isArray(n.order)?n.order:[]).forEach(n=>{e[n]||(e[n]=[]),e[n].push(t)}),e),{})),K={acrobatics:{command:"acrobatics on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},airpocket:{command:["outr calcite","eat calcite"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping","anorexia"],serverside:!0,preempt:!0},alertness:{static:!0,command:"alertness on",bals_req:["equilibrium"],bals_used:["equilibrium"],serverside:!0},antiforce:{command:"intone gaiartha",bals_req:["balance","equilibrium"],bals_used:["word"],blocks:["death","sleeping","prone"],skills:["Depthswalker"],serverside:!0},aria:{command:"sing aria at me",bals_req:["voice"],bals_used:["voice"],blocks:["death","sleeping"],skills:["Bard"]},arctar:{command:"command orb",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["Occultist"],serverside:!1,preempt:!0},arrowcatching:{command:"arrowcatch on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},astronomy:{static:!0,command:"astronomy empower me",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!0},balancing:{command:"balancing on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},belltattoo:{command:"touch bell",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["prone","death","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0,preempt:!0},blindness:{command:["outr arsenic","eat arsenic"],bals_req:["herb"],bals_used:["herb"],blocks:["death","sleeping","anorexia"],serverside:!0},blocking:{command:"block d",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping","prone"],serverside:!1,preempt:!0},bloodshield:{command:"activate bloodshield",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],serverside:!0,preempt:!0},bodyaugment:{command:"intone mainaas",bals_req:["balance","equilibrium"],bals_used:["word"],blocks:["death","sleeping","prone"],skills:["Depthswalker"],bals_used:["word"],serverside:!0},bodyblock:{static:!0,command:"bdb",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Monk"],serverside:!0},boostedregeneration:{command:"boost regeneration",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo"],serverside:!0,preempt:!0},bulk:{command:"mutate bulk",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},cloak:{command:"touch cloak",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["prone","death","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0},chargeshield:{static:!0,command:"cast chargeshield at me",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},coldresist:{command:"activate cold resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},compoundmask:{command:["wear mask","secure mask"],bals_req:["free"],bals_used:["free"],skills:["Alchemist"],serverside:!1},consciousness:{command:"consciousness on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo","Blademaster"],serverside:!0,preempt:!0},constitution:{static:!0,command:"constitution",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo","Blademaster"],serverside:!0},curseward:{static:!0,command:"curseward",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],serverside:!0},deafness:{command:["outr calamine","eat calamine"],bals_req:["herb","deafness"],bals_used:["herb","deafness"],blocks:["death","sleeping","anorexia"],serverside:!0},deathsight:{static:!0,command:"deathsight",bals_req:["balance","equilibrium"],bals_used:["free"],serverside:!0,preempt:!0},deflect:{command:"deflect",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","prone","sleeping"],skills:["Runewarden","Paladin","Infernal","Unnamable"],serverside:!0,preempt:!0},density:{command:"wear shackle",bals_req:["salve"],bals_used:["salve"],blocks:["death","slickness","sleeping"],serverside:!0},devilmark:{static:!0,command:"devilmark",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],skills:["Occultist"],serverside:!0},diamondskin:{static:!0,command:"cast diamondskin",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},distortedaura:{static:!0,command:"distortaura",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],skills:["Occultist"],serverside:!0},dragonarmour:{static:!0,command:"dragonarmour",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],skills:["Dragon"],serverside:!0},dragonbreath:{command:"summon ice",bals_req:["balance","equilibrium","dragonbreath"],bals_used:["free","dragonbreath"],blocks:["death","prone","sleeping"],skills:["Dragon"],preempt:!0,serverside:!0},drunkensailor:{command:"drunkensailor",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},durability:{command:"intone tsuura",bals_req:["balance","equilibrium"],skills:["Depthswalker"],blocks:["death","sleeping","prone"],bals_used:["word"],serverside:!0},electricresist:{command:"activate electric resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},endure:{command:"endure",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["free"],serverside:!0,preempt:!0},enhancedform:{command:["amalgamate enhancement","imbibe enhancement"],bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!1,preempt:!0},evadeblock:{command:"evb",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Monk"],serverside:!0},eyes:{command:"mutate eyes",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},fireresist:{command:"activate fire resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},fangbarrier:{command:"apply quicksilver",bals_req:["salve","sileris"],bals_used:["salve","sileris"],blocks:["death","slickness","paralysis","sleeping"],serverside:!0},fireshroud:{command:"ignite shroud",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","slickness","paralysis","sleeping"],serverside:!0,skills:["Fire Elemental Lord"]},fury:{command:"fury on",bals_req:["balance"],bals_used:["equilibrium"],skills:["Runewarden","Unnamable"],serverside:!0},flying:{command:"fly",bals_req:["balance, equilibrium"],bals_used:["balance"],blocks:["prone","death","sleeping","entangled","transfixation","impaled","webbed","bound"],serverside:!1,clientOnly:!0},ghost:{static:!0,command:"conjure ghost",bals_req:["equilibrium"],bals_used:["equilibrium"],skills:["Serpent"],serverside:!0},gripping:{command:"grip",bals_req:["balance","equilibrium"],bals_used:["free"],skills:["Runewarden","Paladin","Infernal","Unnamable","Shikudo","Bard","Blademaster","Jester","Shaman"],serverside:!0,preempt:!0},groundwatch:{command:"groundwatch on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},"guarding right leg":{command:"guard right leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding left leg":{command:"guard left leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding right leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding right arm":{command:"guard right arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right leg","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding left arm":{command:"guard left arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding right leg","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding head":{command:"guard head",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding right leg","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"guarding torso":{command:"guard torso",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Monk"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding right leg","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},heartsfury:{command:"heartsfury",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},heldbreath:{command:"hold breath",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","asthma","sleeping"],preempt:!0,serverside:!0},hiding:{command:"hide",bals_req:["equilibrium","balance"],bals_used:["balance"],skills:["Serpent"],serverside:!0},hypersight:{command:"hypersight on",bals_req:["balance"],bals_used:["equilibrium"],serverside:!0},immunity:{command:"immunity",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Monk","Shikudo","Blademaster"],serverside:!0},insomnia:{command:"insomnia",bals_req:["free"],bals_used:["free"],blocks:["death","hypersomnia","sleeping"],serverside:!0,preempt:!0},insulation:{command:"apply caloric",bals_req:["salve"],bals_used:["salve"],blocks:["death","sleeping","slickness","hypothermia"],serverside:!0},insufflate:{command:["get phial from pack","amalgamate insufflate potency 4 stability 1","imbibe insufflate"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Alchemist"],preempt:!0,serverside:!1},ironform:{static:!0,command:["get phial from pack","amalgamate petrifying potency 4 stability 1","imbibe petrifying"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Alchemist"],preempt:!0,serverside:!1},joints:{command:"mutate joints",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},kaiboost:{command:"kai boost",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo"],preempt:!0,serverside:!0},kaitrance:{command:"kai trance",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo"],serverside:!0,preempt:!0},kola:{command:["outr quartz","eat quartz"],bals_req:["free"],bals_used:["free"],blocks:["death","sleeping","anorexia"],serverside:!0,preempt:!0},lay:{command:"sing lay",bals_req:["voice"],bals_used:["voice"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},levitating:{command:"sip levitation",bals_req:["free"],bals_used:["free"],blocks:["death","anorexia","sleeping"],serverside:!0,preempt:!0},lifevision:{static:!0,command:"lifevision",bals_req:["equilibrium"],bals_used:["equilibrium"],serverside:!0},lipreading:{static:!0,command:"lipread",bals_req:["equilibrium"],bals_used:["equilibrium"],skills:["Serpent"],serverside:!0},locketdeath:{command:"solicit locket for immortality",bals_req:["free"],bals_used:["free"],serverside:!1},magicresist:{command:"activate magic resistance",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!0},blademastery:{command:"mastery on",bals_req:["balance","equilibrium"],bals_used:["free"],skills:["Runewarden","Unnamable"],preempt:!0,serverside:!0},meditate:{command:"meditate",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping","impatience"],preempt:!0,serverside:!1},mercury:{static:!0,command:"educe mercury",bals_req:["balance"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!0},metawake:{command:"metawake on",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping","lullaby"],serverside:!0,preempt:!0},mindcloak:{command:"mind cloak on",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],preempt:!0,skills:["Monk","Shikudo"],serverside:!0},mindnet:{command:"mindnet on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Monk","Shikudo","Blademaster"],serverside:!0,preempt:!0},mindseye:{static:!0,command:"touch mindseye",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0},morimbuul:{command:"ldeck draw morimbuul",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],serverside:!1,preempt:!1},mounted:{command:"",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping","stunned","prone","paralysis","entangled","transfixation","impaled","webbed","bound"],preempt:!0,serverside:!1,clientOnly:!0},mouths:{command:"mutate mouths",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},nightsight:{command:"nightsight",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},numbness:{command:"numb",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo"]},"parrying right leg":{command:"parry right leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","guarding right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying left leg":{command:"parry left leg",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","guarding right leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying right arm":{command:"parry right arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","guarding right leg","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying left arm":{command:"parry left arm",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","guarding right leg","parrying right arm","parrying torso","parrying head","parrying left","parrying right","parrying centre"]},"parrying head":{command:"parry head",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","guarding right leg","parrying left","parrying right","parrying centre"]},"parrying torso":{command:"parry torso",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","guarding right leg","parrying head","parrying left","parrying right","parrying centre"]},"parrying left":{command:"trueparry left",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Bard"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","guarding right leg","parrying right","parrying centre"]},"parrying right":{command:"trueparry right",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Bard"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","guarding right leg","parrying centre"]},"parrying centre":{command:"trueparry centre",bals_req:["balance","equilibrium"],bals_used:["free"],preempt:!0,skills:["Bard"],serverside:!1,opps:["guarding left leg","guarding left arm","guarding right arm","guarding torso","guarding head","parrying right leg","parrying left leg","parrying left arm","parrying right arm","parrying torso","parrying head","parrying left","parrying right","guarding right leg"]},pinchblock:{command:"pnb",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping"],skills:["Monk"],serverside:!0},projectiles:{command:"projectiles on",bals_req:["free"],bals_used:["free"],skills:["Monk","Shikudo","Blademaster"],blocks:["death","sleeping","mounted"],preempt:!0,serverside:!0},poisonresist:{command:"sip venom",bals_req:["free"],bals_used:["free"],blocks:["death","anorexia","sleeping"],serverside:!0,preempt:!0},precision:{command:"intone trusad",bals_req:["balance","equilibrium"],blocks:["death","sleeping","prone"],skills:["Depthswalker"],bals_used:["word"],serverside:!0},prismatic:{command:"strum lyre",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping"],serverside:!1},rebounding:{command:"smoke malachite",bals_req:["smoke","rebounding"],bals_used:["smoke","rebounding"],blocks:["death","asthma","sleeping"],serverside:!0},reflections:{command:"point wand235913 at me",bals_req:["balance","equilibrium"],bals_used:["free"],blocks:["death","sleeping"],preempt:!0,serverside:!1},regeneration:{command:"regeneration on",bals_req:["free"],bals_used:["free"],skills:["Monk","Shikudo"],blocks:["death","sleeping"],serverside:!0,preempt:!0},resistance:{command:"resistance",bals_req:["free"],bals_used:["free"],skills:["Runewarden","Paladin","Infernal","Monk","Shikudo","Unnamable"],blocks:["death","sleeping"],serverside:!0,preempt:!0},scales:{static:!0,command:"scales",bals_req:["balance","equilibrium"],bals_used:["balance"],skills:["Serpent"],serverside:!0},secondsight:{static:!0,command:"secondsight",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Serpent"],serverside:!0},selfishness:{command:"selfishness",bals_req:["balance","equilibrium"],bals_used:["balance"],serverside:!0},shield:{command:"touch shield",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","prone","sleeping",["brokenleftarm","brokenrightarm"],["brokenleftarm","damagedrightarm"],["brokenleftarm","mangledrightarm"],["damagedleftarm","brokenrightarm"],["damagedleftarm","damagedrightarm"],["damagedleftarm","mangledrightarm"],["mangledleftarm","brokenrightarm"],["mangledleftarm","damagedrightarm"],["mangledleftarm","mangledrightarm"],"entangled","transfixation","impaled","webbed","bound","icefisted"],serverside:!0},shintrance:{command:"shin trance",bals_req:["free"],bals_used:["free"],skills:["Blademaster"],blocks:["death","sleeping"],serverside:!0,preempt:!0},shinclarity:{static:!0,command:"clarity",bals_req:["balance"],bals_used:["equilibrium"],skills:["Blademaster"],blocks:["death","sleeping"],serverside:!0},shinbinding:{static:!0,command:"shinbinding on",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Blademaster"],blocks:["death","sleeping"],serverside:!0},shipwarning:{command:"shipwarning on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],serverside:!0},shroud:{static:!0,command:"shroud",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Occultist","Serpent"],serverside:!0},softfocusing:{command:"softfocus on",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],serverside:!0,preempt:!0},songbird:{command:"whistle for songbird",bals_req:["equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Bard"]},speed:{command:"sip speed",bals_req:["speed"],bals_used:["speed"],blocks:["death","anorexia","sleeping"],serverside:!0},splitmind:{command:"split mind",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo"],serverside:!0},skysight:{command:"manifest skysight",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping","stunned","prone","paralysis","entangled","transfixation","impaled","webbed","bound"],skills:["Air Elemental Lord"],serverside:!0},skywatch:{command:"skywatch on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},stonefist:{static:!0,command:"cast stonefist",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},stoneskin:{static:!0,command:"cast stoneskin",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Magi"],serverside:!0},sulphur:{static:!0,command:"educe sulphur",bals_req:["balance"],bals_used:["equilibrium"],blocks:["death","sleeping"],skills:["Alchemist"],serverside:!0},tekurastance:{command:"tekurastance",bals_req:["free"],bals_used:["balance"],skills:["Monk","Shikudo"]},telesense:{command:"telesense on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},temperance:{command:"sip frost",bals_req:["free"],bals_used:["free"],blocks:["death","anorexia","sleeping"],serverside:!0,preempt:!0},tempest:{command:"manifest tempest",bals_req:["balance","equilibrium"],bals_used:["balance"],blocks:["death","sleeping","stunned","prone","paralysis","entangled","transfixation","impaled","webbed","bound"],skills:["Air Elemental Lord"],serverside:!0},mutatetentacles:{command:"mutate tentacles",bals_req:["anathema"],bals_used:["anathema"],blocks:["death","sleeping","prone"],skills:["Unnamable"],serverside:!0},thirdeye:{command:"thirdeye",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},tin:{static:!0,command:"educe tin",bals_req:["balance"],bals_used:["equilibrium"],blocks:["death","sleeping","prone"],skills:["Alchemist"],serverside:!0},tentacles:{command:"tentacles",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],blocks:["death","sleeping","prone"],skills:["Occultist"],serverside:!0},toughness:{command:"toughness",bals_req:["free"],bals_used:["free"],skills:["Monk","Shikudo","Blademaster"],serverside:!0,preempt:!0},treewatch:{command:"treewatch on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},tune:{command:"sing tune",bals_req:["voice"],bals_used:["voice"],blocks:["death","sleeping"],skills:["Bard"],serverside:!0},twoartsstance:{command:"twoartsstance",bals_req:["free"],bals_used:["free"],blocks:["death","sleeping"],skills:["Blademaster"]},vigilance:{command:"vigilance on",bals_req:["free"],bals_used:["free"],serverside:!0,preempt:!0},vitality:{command:"vitality on",bals_req:["balance","equilibrium"],bals_used:["equilibrium"],skills:["Monk","Shikudo"],serverside:!0},weathering:{command:"weathering on",bals_req:["free"],bals_used:["free"],skills:["Runewarden","Infernal","Paladin","Monk","Shikudo","Blademaster","Unnamable"],blocks:["death","sleeping"],serverside:!0,preempt:!0},weaving:{static:!0,command:"weaving on",bals_req:["balance","equilibrium"],bals_used:["balance"],skills:["Serpent"],serverside:!0}},normalizeDefCommand=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizeDefList=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizeDefPriority=(e,t)=>{const n=Number(e);return Number.isFinite(n)?n<0?0:n>26?26:n:0},Q=Object.freeze(Object.fromEntries(Object.entries(K).map(([e,t])=>{const n=!1!==t.serverside;return[e,Object.freeze({...t,command:Object.freeze(normalizeDefCommand(t.command)),bals_req:Object.freeze(normalizeDefList(t.bals_req)),bals_used:Object.freeze(normalizeDefList(t.bals_used)),skills:Object.freeze(normalizeDefList(t.skills)),opps:Object.freeze(normalizeDefList(t.opps)),blocks:Object.freeze(t.blocks?[...t.blocks]:[]),serverside:n,preempt:!0===t.preempt,static:!0===t.static,clientOnly:!0===t.clientOnly,defaultPriority:normalizeDefPriority(t.defaultPriority,n)})]}))),Z=Object.freeze(Object.keys(Q).reduce((e,t)=>(e[t]=Number(Q[t].defaultPriority),e),{})),buildDefBySkillIndex=()=>{const e=Object.entries(Q).reduce((e,[t,n])=>{const a=n.skills;return Array.isArray(a)&&a.forEach(n=>{e[n]||(e[n]=[]),e[n].push(t)}),e},{});return Object.freeze(Object.fromEntries(Object.entries(e).map(([e,t])=>[e,Object.freeze([...t])])))},X=(buildDefBySkillIndex(),Object.freeze({CHAR_VITALS:"nexsys4.gmcp.char.vitals",CHAR_STATUS:"nexsys4.gmcp.char.status",CHAR_AFFLICTIONS_LIST:"nexsys4.gmcp.char.afflictions.list",CHAR_AFFLICTIONS_ADD:"nexsys4.gmcp.char.afflictions.add",CHAR_AFFLICTIONS_REMOVE:"nexsys4.gmcp.char.afflictions.remove",CHAR_DEFENCES_LIST:"nexsys4.gmcp.char.defences.list",CHAR_DEFENCES_ADD:"nexsys4.gmcp.char.defences.add",CHAR_DEFENCES_REMOVE:"nexsys4.gmcp.char.defences.remove",IRE_RIFT_LIST:"nexsys4.gmcp.ire.rift.list",IRE_RIFT_CHANGE:"nexsys4.gmcp.ire.rift.change",CHAR_ITEMS_LIST:"nexsys4.gmcp.char.items.list",CHAR_ITEMS_DELTA:"nexsys4.gmcp.char.items.delta",ROOM_INFO:"nexsys4.gmcp.room.info",TARGET_INFO:"nexsys4.gmcp.target.info"})),isRecord$3=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),normalizeLocation=e=>String(e??"inv").trim().toLowerCase()||"inv",mergeDefinedRecord=(...e)=>e.reduce((e,t)=>(Object.entries(isRecord$3(t)?t:{}).forEach(([t,n])=>{void 0!==n&&(e[t]=n)}),e),{}),mergeResourceStats=(e=[],t=[])=>{const n=new Map;return[...e,...t].forEach(e=>{const t=String(e?.key||"").trim().toLowerCase();t&&n.set(t,e)}),[...n.values()]},mergeBalancePatches=(e=[],t=[])=>[...Array.isArray(e)?e:[],...Array.isArray(t)?t:[]],mergeStatusPayload=(e={},t={})=>{const n=isRecord$3(e)?e:{},a=isRecord$3(t)?t:{};return{...n,...a,status:{...isRecord$3(n.status)?n.status:{},...isRecord$3(a.status)?a.status:{}}}},mergeVitalsPayload=(e={},t={})=>{const n=isRecord$3(e)?e:{},a=isRecord$3(t)?t:{},o=isRecord$3(n.vitals)?n.vitals:{},i=isRecord$3(a.vitals)?a.vitals:{};return{...n,...a,vitals:{...o,...i,kind:i.kind||o.kind,vitals:mergeDefinedRecord(o.vitals,i.vitals),balances:mergeDefinedRecord(o.balances,i.balances),balancePatches:mergeBalancePatches(o.balancePatches,i.balancePatches),resourceStats:mergeResourceStats(Array.isArray(o.resourceStats)?o.resourceStats:[],Array.isArray(i.resourceStats)?i.resourceStats:[])}}},mergeTargetPayload=(e={},t={})=>{const n=isRecord$3(e)?e:{},a=isRecord$3(t)?t:{};return{...n,...a,target:mergeDefinedRecord(n.target,a.target)}},J=new Map([[X.CHAR_STATUS,{keyFor:()=>X.CHAR_STATUS,merge:mergeStatusPayload}],[X.CHAR_VITALS,{keyFor:()=>X.CHAR_VITALS,merge:mergeVitalsPayload}],[X.CHAR_AFFLICTIONS_LIST,{keyFor:()=>X.CHAR_AFFLICTIONS_LIST,merge:(e,t)=>t}],[X.CHAR_DEFENCES_LIST,{keyFor:()=>X.CHAR_DEFENCES_LIST,merge:(e,t)=>t}],[X.CHAR_ITEMS_LIST,{keyFor:({payload:e}={})=>`${X.CHAR_ITEMS_LIST}:${normalizeLocation(e?.location)}`,merge:(e,t)=>t}],[X.IRE_RIFT_LIST,{keyFor:()=>X.IRE_RIFT_LIST,merge:(e,t)=>t}],[X.TARGET_INFO,{keyFor:()=>X.TARGET_INFO,merge:mergeTargetPayload}]]),ee=new Set([X.CHAR_AFFLICTIONS_ADD,X.CHAR_AFFLICTIONS_REMOVE,X.CHAR_DEFENCES_ADD,X.CHAR_DEFENCES_REMOVE,X.CHAR_ITEMS_DELTA,X.IRE_RIFT_CHANGE]),createGmcpBlockBuffer=({coalesce:e=!0}={})=>{const t=[],flush=()=>{if(!e){const e=[...t];return t.length=0,e}const n=new Map,a=[],o=[];return t.forEach(e=>{const t=J.get(e.topic);if(t){const a=t.keyFor(e),o=n.get(a);return void(o?n.set(a,{...o,payload:t.merge(o.payload,e.payload)}):n.set(a,e))}ee.has(e.topic)?o.push(e):a.push(e)}),t.length=0,[...n.values(),...a,...o]};return{enqueue:(e={})=>{const n=String(e.topic||"").trim();n&&t.push({topic:n,payload:Object.prototype.hasOwnProperty.call(e,"payload")?e.payload:null})},flush,size:()=>t.length}},createEventBus=({label:e="nexSys4.eventBus",debugEnabled:t=!1,traceLimit:n=200}={})=>{const a=new Map,o=new Set;let i=Boolean(t);const s=Math.max(1,Number(n||200)),l=[],pushTrace=(t,n={})=>{if(!i)return null;const a={at:Date.now(),type:t,detail:n};return l.push(a),l.length>s&&l.splice(0,l.length-s),console.log(`[${e}] ${t}`,n),a},on=(e,t)=>{const n=String(e||"").trim();if(!n||"function"!=typeof t)return()=>{};const o=a.get(n)||new Set;return o.add(t),a.set(n,o),pushTrace("on",{topic:n,listenerCount:o.size}),()=>off(n,t)},off=(e,t)=>{const n=String(e||"").trim(),o=a.get(n);if(!n||!o)return!1;const i=o.delete(t);return o.size||a.delete(n),pushTrace("off",{topic:n,removed:i,listenerCount:o.size}),i},onAny=e=>"function"!=typeof e?()=>{}:(o.add(e),pushTrace("onAny",{listenerCount:o.size}),()=>offAny(e)),offAny=e=>{const t=o.delete(e);return pushTrace("offAny",{removed:t,listenerCount:o.size}),t},emit=(e,t)=>{const n=String(e||"").trim();if(!n)return 0;const s=[...a.get(n)||[]],l=[...o];return i&&pushTrace("emit",{topic:n,listenerCount:s.length,anyListenerCount:l.length,payload:t}),s.forEach(e=>{try{e(t,n)}catch(a){console.error("nexSys4 event bus handler failed",{topic:n,error:a})}}),l.forEach(e=>{try{e(t,n)}catch(a){console.error("nexSys4 event bus global handler failed",{topic:n,error:a})}}),s.length+l.length};return{on,off,onAny,offAny,emit,clear:()=>{a.clear(),o.clear()},setDebugEnabled(e){i=Boolean(e)},debugInfo:()=>({label:e,debugEnabled:i,topics:[...a.keys()],anyListenerCount:o.size,recentTrace:[...l]})}},te=Object.freeze({RUNTIME_STARTED:"nexsys4.runtime.started",RUNTIME_STOPPED:"nexsys4.runtime.stopped",RAW_GMCP:"nexsys4.raw.gmcp",SYSTEM_VITALS_CHANGED:"nexsys4.system.vitals.changed",SYSTEM_HEALTH_CHANGED:"nexsys4.system.health.changed",SYSTEM_MANA_CHANGED:"nexsys4.system.mana.changed",SYSTEM_RAGE_CHANGED:"nexsys4.system.rage.changed",SYSTEM_BLEED_CHANGED:"nexsys4.system.bleed.changed",SYSTEM_STATUS_CHANGED:"nexsys4.system.status.changed",SYSTEM_CLASS_CHANGED:"nexsys4.system.class.changed",SYSTEM_TARGET_CHANGED:"nexsys4.system.target.changed",SYSTEM_ROOM_CHANGED:"nexsys4.system.room.changed",SYSTEM_ROOM_ITEMS_CHANGED:"nexsys4.system.room_items.changed",SYSTEM_RUNTIME_CHANGED:"nexsys4.system.runtime.changed",SYSTEM_PAUSE_CHANGED:"nexsys4.system.pause.changed",SYSTEM_PAUSED:"nexsys4.system.paused",SYSTEM_UNPAUSED:"nexsys4.system.unpaused",SYSTEM_LOADED:"nexsys4.system.loaded",SYSTEM_SETTINGS_CHANGED:"nexsys4.system.settings.changed",SYSTEM_BASELINE_CHANGED:"nexsys4.system.baseline.changed",SYSTEM_DEATH_DETECTED:"nexsys4.system.death.detected",SYSTEM_MOUNT_CHANGED:"nexsys4.system.mount.changed",SYSTEM_WIELDED_CHANGED:"nexsys4.system.wielded.changed",UI_CONFIG_CHANGED:"nexsys4.ui.config.changed",AFF_GOT:"nexsys4.aff.got",AFF_LOST:"nexsys4.aff.lost",AFF_STACK_CHANGED:"nexsys4.aff.stack.changed",AFF_PRIORITY_CHANGED:"nexsys4.aff.priority.changed",DEF_GOT:"nexsys4.def.got",DEF_LOST:"nexsys4.def.lost",DEF_PRIORITY_CHANGED:"nexsys4.def.priority.changed",BALANCE_GOT:"nexsys4.balance.got",BALANCE_LOST:"nexsys4.balance.lost",BALANCE_RESET:"nexsys4.balance.reset",BALANCE_DURATION_OBSERVED:"nexsys4.balance.duration.observed",BALANCE_TIMER_RESTARTED:"nexsys4.balance.timer.restarted",EQBAL_GOT:"nexsys4.eqbal.got",LIMB_HIT:"nexsys4.limb.hit",LIMB_RESET:"nexsys4.limb.reset",LIMB_STAGE_CHANGED:"nexsys4.limb.stage.changed",LIMB_DECAY:"nexsys4.limb.decay",CACHE_AMOUNT_CHANGED:"nexsys4.cache.amount.changed",CACHE_INVENTORY_LIST:"nexsys4.cache.inventory.list",CACHE_RIFT_LIST:"nexsys4.cache.rift.list",CACHE_PRECACHE_CHANGED:"nexsys4.cache.precache.changed",ITEM_ROOM_ADDED:"nexsys4.item.room.added",ITEM_ROOM_REMOVED:"nexsys4.item.room.removed",ITEM_ROOM_UPDATED:"nexsys4.item.room.updated",ITEM_ROOM_LIST:"nexsys4.item.room.list",ITEM_INV_ADDED:"nexsys4.item.inv.added",ITEM_INV_REMOVED:"nexsys4.item.inv.removed",ITEM_INV_UPDATED:"nexsys4.item.inv.updated",ITEM_INV_LIST:"nexsys4.item.inv.list",QUEUE_UPDATED:"nexsys4.queue.updated",QUEUE_FLUSHED:"nexsys4.queue.flushed",QUEUE_DEFERRED:"nexsys4.queue.deferred",QUEUE_CLEARED:"nexsys4.queue.cleared",QUEUE_SENT:"nexsys4.queue.sent",QUEUE_FIRED:"nexsys4.queue.fired",QUEUE_FIRED_ACK:"nexsys4.queue.fired.ack",SERVERSIDE_AFF_PRIORITY_SET:"nexsys4.serverside.aff.priority.set",SERVERSIDE_DEF_PRIORITY_SET:"nexsys4.serverside.def.priority.set",SERVERSIDE_DIRTY:"nexsys4.serverside.dirty",SERVERSIDE_EVALUATED:"nexsys4.serverside.evaluated",SERVERSIDE_RULE_CHANGED:"nexsys4.serverside.rule.changed",RULE_ADDED:"nexsys4.rule.added",RULE_REMOVED:"nexsys4.rule.removed",RULE_ENABLED:"nexsys4.rule.enabled",RULE_DISABLED:"nexsys4.rule.disabled",RULE_PACK_LOADED:"nexsys4.rule.pack.loaded",RULE_PACK_UNLOADED:"nexsys4.rule.pack.unloaded",RULE_ORDER_CHANGED:"nexsys4.rule.order.changed",RULE_ACTIVATED:"nexsys4.rule.activated",RULE_DEACTIVATED:"nexsys4.rule.deactivated"}),re=Object.freeze({IDLE:"IDLE",BLOCKED:"BLOCKED",PROBING_SEPARATOR:"PROBING_SEPARATOR",BOOTING:"BOOTING",AWAITING_SNAPSHOTS:"AWAITING_SNAPSHOTS",CAPTURING_SNAPSHOTS:"CAPTURING_SNAPSHOTS",RUNNING:"RUNNING",FAILED:"FAILED"}),isRuntimeReadyPhase=e=>e===re.RUNNING,ne=Object.freeze({OUTPUT_COMPLETE:"SystemOutputCompleteEvent",STARTUP_BEGIN:"CuringStartupBeginEvent",STARTUP_COMPLETE:"CuringStartupCompleteEvent"}),ae=Object.freeze(["IRE.Rift.Request","IRE.Time.Request","Char.Skills.Get","Char.Items.Inv"]),buildStartupSnapshotCommands=()=>[`echo SystemEvent ${ne.STARTUP_BEGIN}`,"curing status","curing priority list","curing queue list","curing predictions","curingset list","curing priority defence list","def","score","date",`echo SystemEvent ${ne.STARTUP_COMPLETE}`],buildStartupSnapshotBurst=()=>({gmcpRequests:[...ae],commands:buildStartupSnapshotCommands()}),oe=Object.freeze(["status","affPriorities","defPriorities"]),normalizeTimeoutMs=(e,t=1e3)=>{const n=Number(e);return Number.isFinite(n)&&n>0?Math.floor(n):t},normalizeRetryCount=(e,t=0)=>{const n=Number(e);return Number.isFinite(n)&&n>=0?Math.floor(n):t},createStartupCoordinator=({adapter:e,systemModel:t,serverside:n,persistence:a,seedBaselineFromObservedStartup:o=()=>{},noticeCenter:i,buildPersistenceSnapshot:s,startupTimeoutMs:l=1e3,maxStartupRetries:c=0,publishStartupPhase:u=()=>{},setRuntimePhase:d=(e,n={})=>{t.setRuntime({phase:e,...n})}})=>{let p=!1,m=0,g=null,h=null;const b=normalizeTimeoutMs(l),y=normalizeRetryCount(c),clearConvergenceTimer=()=>{g&&(e.clearTimeout(g),g=null)},getMissingRequiredTopics=()=>{if("function"==typeof n.getMissingStartupFlags)return n.getMissingStartupFlags(oe);const e=n.getStartupStatus();return oe.filter(t=>!e.flags?.[t])},formatMissingRequiredTopics=(e=[])=>e.length?` Missing required captures: ${e.join(", ")}.`:"",startConvergenceTimer=()=>{clearConvergenceTimer(),g=e.setTimeout(()=>{if(p)return;const e=getMissingRequiredTopics();retryOrFail(e.length?`Startup snapshots did not converge within ${b}ms.`:`Startup closing fence did not arrive within ${b}ms.`,{phase:"snapshot-timeout-retry",source:"startup-timeout",missingRequired:e})},b)},complete=(e="startup-check")=>{clearConvergenceTimer(),d(re.RUNNING,{startupFailureMessage:""}),o(),a.save(s()),u("startup-complete"),i.publish("output","startup complete",{source:e})},fail=(e,{source:t="startup-failed",missingRequired:n=[]}={})=>{clearConvergenceTimer(),p=!0;const a=`${e}${formatMissingRequiredTopics(n)}`;return d(re.FAILED,{paused:!0,startupFailureMessage:a}),u("startup-failed"),i.publish("output",a,{force:!0,source:t,title:"startup failed: ",fg:"#fee2e2",bg:"#450a0a",titleFg:"#ffffff",titleBg:"#7f1d1d"}),!1},retryOrFail=(e,{phase:t,source:n,missingRequired:a=[]}={})=>!p&&(m>=y?fail(`${e} Exhausted ${y} startup retr${1===y?"y":"ies"}.`,{source:n,missingRequired:a}):(m+=1,requestSnapshots(h,t||"snapshot-retry",{source:n,retry:m,missingRequired:a}),!1)),requestSnapshots=(t,n="snapshot-request",a={})=>{if(h="function"==typeof t?t:h,"function"!=typeof h)return[];const o={source:"startup-snapshots",phase:n,attempt:m+1,retryCount:m,...a},{gmcpRequests:i,commands:s}=buildStartupSnapshotBurst();d(re.AWAITING_SNAPSHOTS),u(n),e.sendGmcp(i,o);const l=h(s,o);return startConvergenceTimer(),l};return{reset:()=>{p=!1,m=0,clearConvergenceTimer(),n.resetStartupStatus?.(),d(re.IDLE,{startupFailureMessage:""})},requestSnapshots,handleFenceBegin:()=>!p&&(d(re.CAPTURING_SNAPSHOTS),u("snapshot-begin"),!0),handleFenceComplete:(e="snapshot:complete:text")=>{if(p)return!1;u("snapshot-complete");const t=n.getStartupStatus();t.flags.queue||n.updateObservedQueue([]),t.flags.predictions||n.updateObservedPredictions({}),t.flags.curingsets||n.observeCuringSets();const a=getMissingRequiredTopics();return a.length?retryOrFail("Startup closing fence arrived before required snapshots converged.",{phase:"snapshot-retry",source:e,missingRequired:a}):(p=!0,complete(e),!0)},dispose(){clearConvergenceTimer()},isResolved:()=>p}},ie=Object.freeze({STARTED:"nexSys.start(): startup initiated.",ALREADY_STARTED:"nexSys.start(): runtime is already started.",STARTUP_PENDING:"nexSys.start(): runtime is already started; startup is still in progress.",STARTUP_FAILED:"nexSys.start(): runtime startup failed. Check the console and in-game notices.",SEPARATOR_REQUIRED:"nexSys.start(): command separator missing. Configure one in Nexus or saved nexSys settings before starting.",SEPARATOR_PROBE:"nexSys.start(): command separator unknown; sending config to auto-detect. Startup will resume on capture."}),createRuntimeStartupOrchestrator=({adapter:e,systemModel:t,persistenceApi:n,startup:a,noticeCenter:o,syncDebugMode:i,isStarted:s,markStarted:l,setRuntimePhase:c,publishStartupPhase:u,attachEventWiring:d,promptPresenter:p,publishRuntimeStarted:m,hydrateCacheFromAdapterGmcp:g,runtimeControl:h,commandDispatcher:b})=>{const y=resolveAdapterCapabilities(e);let v=null;const continueStartup=()=>{l(),c(re.BOOTING,{startupFailureMessage:""}),u("init"),m(),d(),p.start(),g(),h.setPaused(!0,{source:"startup",forceCuringSync:!0}),a.requestSnapshots(b.sendCommands)};return{dispose(){v&&(v(),v=null)},start(){if(s()){const e=t.getRuntime().phase;return e===re.FAILED?ie.STARTUP_FAILED:e===re.RUNNING?ie.ALREADY_STARTED:ie.STARTUP_PENDING}if(v)return ie.SEPARATOR_PROBE;t.setSettings({commandSeparator:void 0},{setBaseline:!0}),n.loadPersistence(),a.reset();const l=normalizeCommandSeparator(t.getSettings().commandSeparator),d=normalizeCommandSeparator(e.getCommandSeparator()),p=l||d;if(i(),!p){if(!y.separatorProbe){const e="Command separator missing. Configure one in Nexus or saved nexSys settings before starting.";return c(re.BLOCKED,{paused:!0,startupFailureMessage:e}),u("separator-missing"),o.publish("output",e,{force:!0,source:"separator-missing"}),ie.SEPARATOR_REQUIRED}return c(re.PROBING_SEPARATOR),u("separator-probe"),o.publish("output","Command separator not configured. Sending config to auto-detect...",{source:"separator-probe"}),v=e.addOnceTrigger({id:"nexsys4-separator-probe",regex:/\bCommandSeparator\s+(?<sep>\S+)/,action:({args:n})=>{const a=normalizeCommandSeparator(String(n.groups?.sep||"").trim());a&&(v=null,e.setSeparator(a),t.setSettings({commandSeparator:a},{setBaseline:!0}),continueStartup())}}),e.send(["config"],{source:"separator-probe"}),ie.SEPARATOR_PROBE}return t.getSettings().commandSeparator!==p&&t.setSettings({commandSeparator:p},{setBaseline:!0}),continueStartup(),ie.STARTED}}},se=["hp","maxhp","mp","maxmp","ep","maxep","wp","maxwp"],le="nexsys4.parsed_gmcp_vitals",hasOwn$6=(e,t)=>Boolean(e)&&Object.prototype.hasOwnProperty.call(e,t),parseNumericVital=(e,t)=>{if(!hasOwn$6(e,t))return;const n=toNumber(e[t],NaN);return Number.isFinite(n)?n:void 0},parseResourceStat=e=>{const[t,n]=String(e).split(":");if(!t||void 0===n)return null;const a=t.trim().toLowerCase(),o=n.trim();if(!a)return null;const i=toNumber(o.endsWith("%")?o.slice(0,-1):o,NaN),s=toOptionalBooleanFromYesNo(o);return{key:a,value:Number.isFinite(i)?i:o,balanceState:Number.isFinite(i)?void 0:s}},toBalancePatches=(e={})=>Object.entries(e).filter(([,e])=>void 0!==e).map(([e,t])=>({id:e,have:t})),parseGmcpVitals=(e={})=>{const t=e&&"object"==typeof e&&!Array.isArray(e)?e:{},n=se.reduce((e,n)=>({...e,[n]:parseNumericVital(t,n)}),{}),a={balance:toOptionalBooleanFromYesNo(t.bal),equilibrium:toOptionalBooleanFromYesNo(t.eq)};return{kind:le,vitals:n,balances:a,balancePatches:toBalancePatches(a),resourceStats:(Array.isArray(t.charstats)?t.charstats:[]).map(parseResourceStat).filter(Boolean)}},toParsedGmcpVitals=(e={})=>"nexsys4.parsed_gmcp_vitals"!==e?.kind?parseGmcpVitals(e):{...e,balancePatches:Array.isArray(e.balancePatches)?e.balancePatches:toBalancePatches(e.balances||{})},hasOwn$5=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),isRecord$2=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),readFirstDefined=(e,t=[])=>{for(const n of t)if(hasOwn$5(e,n)&&void 0!==e[n]&&null!==e[n])return e[n]},parseAffName=(e={})=>{if("string"==typeof e)return e.toLowerCase();if(Array.isArray(e)){const t=e[0];if("string"==typeof t)return t.toLowerCase();const n=t&&"object"==typeof t?t:{};return String(n.affliction||n.defence||n.name||n.aff||n.def||"").toLowerCase()}const t=e&&"object"==typeof e?e:{};return String(t.affliction||t.defence||t.name||t.aff||t.def||"").toLowerCase()},parseRoomItems=(e={})=>Array.isArray(e?.items)?e.items.reduce((e,t)=>{const n=String(t?.name||t?.item||"").trim();return n?(e[n]=(e[n]||0)+1,e):e},{}):e?.items&&"object"==typeof e.items?{...e.items}:{},normalizeItemLocation$2=(e={},t=e?.item||e)=>String(e?.location??t?.parentid??t?.location??"inv").toLowerCase(),normalizeInventoryDeltaName=e=>"string"==typeof e?e:e?.name||e?.item||"",createInventoryDelta=(e,t={})=>{const n=t?.item||t,a=normalizeItemLocation$2(t,n);return{location:a,inventoryDelta:{id:n?.id??t?.id,location:a,name:normalizeInventoryDeltaName(n),icon:n?.icon??null,attrib:n?.attrib??null,amount:n?.amount??n?.count??n?.qty??t?.amount??t?.count,delta:n?.delta??t?.delta,action:e.split(".").pop(),direction:e.endsWith("remove")?"remove":e.endsWith("add")?"add":void 0},dirtyReason:`gmcp:${e}`}},hasInventoryIdentity=(e={})=>void 0!==e.id&&null!==e.id&&""!==e.id||Boolean(String(e.name||"").trim()),normalizeTargetRecord=(e={})=>{if(!isRecord$2(e))return{};const t={},n=readFirstDefined(e,["id","ID"]),a=readFirstDefined(e,["Text","text","short_desc"]),o=readFirstDefined(e,["HP","hp","hpperc"]);return void 0!==n&&(t.id=n),void 0!==a&&(t.text=a),void 0!==o&&(t.hp=o),t},createGmcpApplier=({emit:e=()=>{}}={})=>{const translate=(e={})=>{const t=[],emitTranslated=(e,n)=>{t.push({topic:e,payload:n})},n=normalizeTag(e.tag||e.rawTag||e.gmcp_method),a=e.payload;switch(n){case"char.vitals":emitTranslated(X.CHAR_VITALS,{vitals:parseGmcpVitals(a||{})});break;case"char.status":emitTranslated(X.CHAR_STATUS,{status:a||{}});break;case"char.afflictions.list":emitTranslated(X.CHAR_AFFLICTIONS_LIST,{afflictions:Array.isArray(a)?a:[]});break;case"char.afflictions.add":{const e=parseAffName(a);e&&emitTranslated(X.CHAR_AFFLICTIONS_ADD,{name:e});break}case"char.afflictions.remove":{const e=parseAffName(a);e&&emitTranslated(X.CHAR_AFFLICTIONS_REMOVE,{name:e});break}case"char.defences.list":emitTranslated(X.CHAR_DEFENCES_LIST,{defences:Array.isArray(a)?a:[]});break;case"char.defences.add":{const e=parseAffName(a);e&&emitTranslated(X.CHAR_DEFENCES_ADD,{name:e});break}case"char.defences.remove":{const e=parseAffName(a);e&&emitTranslated(X.CHAR_DEFENCES_REMOVE,{name:e});break}case"ire.rift.list":emitTranslated(X.IRE_RIFT_LIST,{rift:a||{}});break;case"ire.rift.change":emitTranslated(X.IRE_RIFT_CHANGE,{change:a||{}});break;case"char.items.list":emitTranslated(X.CHAR_ITEMS_LIST,{location:normalizeItemLocation$2(a),items:Array.isArray(a?.items)?a.items:[]});break;case"char.items.add":case"char.items.remove":case"char.items.update":{const e=createInventoryDelta(n,a||{}),t=hasInventoryIdentity(e.inventoryDelta)?e.inventoryDelta:null;emitTranslated(X.CHAR_ITEMS_DELTA,{inventoryDelta:t,dirtyReason:e.dirtyReason});break}case"room.info":emitTranslated(X.ROOM_INFO,{room:a||{},roomItems:parseRoomItems(a||{})});break;case"ire.target.info":emitTranslated(X.TARGET_INFO,{target:normalizeTargetRecord(a||{})})}return t};return{translate,apply(t){translate(t).forEach(({topic:t,payload:n})=>{e(t,n)})}}},ce=Object.freeze({inv:te.ITEM_INV_LIST,room:te.ITEM_ROOM_LIST}),ue=Object.freeze({inv:Object.freeze({add:te.ITEM_INV_ADDED,remove:te.ITEM_INV_REMOVED,update:te.ITEM_INV_UPDATED}),room:Object.freeze({add:te.ITEM_ROOM_ADDED,remove:te.ITEM_ROOM_REMOVED,update:te.ITEM_ROOM_UPDATED})}),normalizeItemLocation$1=e=>String(e||"").trim().toLowerCase()||"inv",createItemTopicNotifier=({publishPublic:e=()=>{}}={})=>{const notifyList=(t,n)=>{const a=ce[normalizeItemLocation$1(t)];a&&e(a,{location:normalizeItemLocation$1(t),items:Array.isArray(n)?n:[]})},notifyDelta=t=>{const n=normalizeItemLocation$1(t.location),a=String(t.action||t.direction||"").trim().toLowerCase(),o=ue[n]?.[a];o&&e(o,t)};return{notify({topic:e,payload:t}={}){e!==X.CHAR_ITEMS_DELTA?e===X.CHAR_ITEMS_LIST&¬ifyList(t?.location,t?.items):t?.inventoryDelta&¬ifyDelta(t.inventoryDelta)}}},fallbackClone=(e,t=new WeakMap)=>{if(null==e)return e;if("object"!=typeof e)return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e.getTime());if(Array.isArray(e)){const n=[];return t.set(e,n),e.forEach(e=>n.push(fallbackClone(e,t))),n}if(e instanceof Set){const n=new Set;return t.set(e,n),[...e].forEach(e=>n.add(fallbackClone(e,t))),n}if(e instanceof Map){const n=new Map;return t.set(e,n),[...e.entries()].forEach(([e,a])=>{n.set(fallbackClone(e,t),fallbackClone(a,t))}),n}const n={};return t.set(e,n),Object.entries(e).forEach(([e,a])=>{"function"!=typeof a&&(n[e]=fallbackClone(a,t))}),n},deepClone$1=e=>{if("function"==typeof structuredClone)try{return structuredClone(e)}catch{}try{return JSON.parse(JSON.stringify(e))}catch{return fallbackClone(e)}},deepMerge=(e,t)=>{const n=Array.isArray(e)?[...e]:{...e||{}};return Object.entries(t||{}).forEach(([e,t])=>{!t||"object"!=typeof t||Array.isArray(t)||!n[e]||"object"!=typeof n[e]||Array.isArray(n[e])?n[e]=t:n[e]=deepMerge(n[e],t)}),n},deepFreeze=e=>e&&"object"==typeof e?(Object.isFrozen(e)||(Object.freeze(e),Object.keys(e).forEach(t=>deepFreeze(e[t]))),e):e,createSnapshotCache=({getVersion:e=()=>0,buildSnapshot:t=()=>({})}={})=>{let n=NaN,a=null;return()=>{const o=e();return a&&n===o||(n=o,a=deepFreeze(t())),a}},de=Object.freeze(["head","torso","leftarm","rightarm","leftleg","rightleg"]),pe=Object.freeze({healthy:0,damaged:1,broken:2,mangled:3}),me=new Set(Object.keys(pe)),fe=Object.freeze({head:"head",torso:"torso",leftarm:"leftarm",rightarm:"rightarm",leftleg:"leftleg",rightleg:"rightleg"}),ge={brokenleftarm:{limb:"leftarm",stage:"broken"},brokenrightarm:{limb:"rightarm",stage:"broken"},brokenleftleg:{limb:"leftleg",stage:"broken"},brokenrightleg:{limb:"rightleg",stage:"broken"},damagedhead:{limb:"head",stage:"damaged"},damagedleftarm:{limb:"leftarm",stage:"damaged"},damagedrightarm:{limb:"rightarm",stage:"damaged"},damagedleftleg:{limb:"leftleg",stage:"damaged"},damagedrightleg:{limb:"rightleg",stage:"damaged"},mangledhead:{limb:"head",stage:"mangled"},mangledleftarm:{limb:"leftarm",stage:"mangled"},mangledrightarm:{limb:"rightarm",stage:"mangled"},mangledleftleg:{limb:"leftleg",stage:"mangled"},mangledrightleg:{limb:"rightleg",stage:"mangled"},mildtrauma:{limb:"torso",stage:"damaged"},serioustrauma:{limb:"torso",stage:"mangled"}},normalizeLimbId=e=>{const t=String(e||"").trim().toLowerCase().replace(/\s+/g,"");return fe[t]||t},buildAfflictionStageSnapshot=(e=[])=>{const t=de.reduce((e,t)=>(e[t]="healthy",e),{});return e.forEach(e=>{const n=ge[String(e||"").trim().toLowerCase()];if(!n)return;const a=t[n.limb]||"healthy";(pe[n.stage]??0)>(pe[a]??0)&&(t[n.limb]=n.stage)}),t},createLimbModel=({now:e=Date.now,setTimeoutFn:t,clearTimeoutFn:n,damageResetMs:a=18e4}={})=>{const o=new Set;let i=0;const s=new Map,l=new Map,c=de.reduce((t,n)=>(t[n]={id:n,percent:0,hits:0,stage:"healthy",updatedAt:e()},t),{}),emit=(e,t)=>{i+=1,t?.limb&&s.set(t.limb,(s.get(t.limb)??0)+1),o.forEach(n=>n(e,t))},cancelResetTimer=e=>{const t=l.get(e);null!=t&&(n(t),l.delete(e))},scheduleResetTimer=n=>{cancelResetTimer(n);const o=t(()=>{l.delete(n);const t=c[n];!t||t.percent<=0||(t.percent=0,t.hits=0,t.updatedAt=e(),emit("LimbDecay",{limb:n,value:deepClone$1(t)}))},a);l.set(n,o)},buildEntrySnapshot=(e={})=>({id:e.id,percent:e.percent,hits:e.hits,stage:e.stage,updatedAt:e.updatedAt}),u=new Map,getEntrySnapshot=e=>c[e]?(u.has(e)||u.set(e,createSnapshotCache({getVersion:()=>s.get(e)??0,buildSnapshot:()=>buildEntrySnapshot(c[e])})),u.get(e)()):null,d=createSnapshotCache({getVersion:()=>i,buildSnapshot:()=>de.reduce((e,t)=>(e[t]=getEntrySnapshot(t),e),{})}),setStage=(t,n,a="manual")=>{const o=normalizeLimbId(t),i=String(n||"").trim().toLowerCase();if(!c[o]||!me.has(i))return!1;if(c[o].stage===i)return!1;const s=c[o],l=s.stage;return s.stage=i,s.percent=0,s.hits=0,s.updatedAt=e(),cancelResetTimer(o),emit("LimbStageChanged",{limb:o,stage:i,previousStage:l,source:a,value:deepClone$1(s)}),!0},applyAfflictionTransition=(e,t)=>{const n=ge[String(e||"").toLowerCase()];return!!n&&(t?(setStage(n.limb,n.stage,"affliction"),!0):"damaged"===n.stage?(setStage(n.limb,"healthy","affliction"),!0):"mangled"===n.stage?(setStage(n.limb,"damaged","affliction"),!0):"broken"===n.stage&&(setStage(n.limb,"healthy","affliction"),!0))},syncFromAfflictions=(e=[],t="affliction-list")=>{const n=buildAfflictionStageSnapshot(e);return de.reduce((e,a)=>n[a]===c[a].stage?e:setStage(a,n[a],t)||e,!1)};return{onChange:e=>(o.add(e),()=>o.delete(e)),list:()=>[...de],snapshot:()=>d(),hit:(t,n,a="manual")=>{const o=normalizeLimbId(t),i=Number(n);if(!c[o]||!Number.isFinite(i)||i<=0)return!1;const s=c[o],l=s.stage;s.percent=Math.max(0,s.percent+i),s.hits+=1,s.updatedAt=e();let u=null;return"healthy"===s.stage&&s.percent>=100?(s.stage="damaged",s.percent=0,s.hits=0,u="damaged",cancelResetTimer(o)):"damaged"===s.stage&&s.percent>=100?(s.stage="mangled",s.percent=0,s.hits=0,u="mangled",cancelResetTimer(o)):scheduleResetTimer(o),emit("LimbHit",{limb:o,amount:i,source:a,transition:u,previousStage:l,value:deepClone$1(s)}),u&&emit("LimbStageChanged",{limb:o,stage:s.stage,previousStage:l,source:a,value:deepClone$1(s)}),!0},reset:(t,n="manual")=>{const a=normalizeLimbId(t);if(!c[a])return!1;const o=c[a],i=o.stage;return(0!==o.percent||0!==o.hits||"healthy"!==i)&&(o.percent=0,o.hits=0,o.stage="healthy",o.updatedAt=e(),cancelResetTimer(a),emit("LimbReset",{limb:a,source:n,previousStage:i,value:deepClone$1(o)}),"healthy"!==i&&emit("LimbStageChanged",{limb:a,stage:"healthy",previousStage:i,source:n,value:deepClone$1(o)}),!0)},setStage,applyAfflictionTransition,syncFromAfflictions,dispose(){de.forEach(cancelResetTimer)},get:e=>getEntrySnapshot(normalizeLimbId(e))}},buildLimbSnapshot=(e,t)=>{const n=e?.get?.(t);return n?{id:n.id,percent:n.percent,hits:n.hits,stage:n.stage}:null},didLimbChange=(e,t)=>Boolean(e&&t)&&(e.percent!==t.percent||e.hits!==t.hits||e.stage!==t.stage),syncTorsoTrauma=({affModel:e,serverside:t,stage:n,source:a,at:o})=>{switch(n){case"damaged":return e?.lose?.("serioustrauma",{source:a,at:o}),e?.got?.("mildtrauma",{source:a,at:o}),t?.removePrediction?.("serioustrauma"),t?.addPrediction?.("mildtrauma"),!0;case"mangled":return e?.lose?.("mildtrauma",{source:a,at:o}),e?.got?.("serioustrauma",{source:a,at:o}),t?.removePrediction?.("mildtrauma"),t?.addPrediction?.("serioustrauma"),!0;case"healthy":return e?.lose?.("mildtrauma",{source:a,at:o}),e?.lose?.("serioustrauma",{source:a,at:o}),t?.removePrediction?.("mildtrauma"),t?.removePrediction?.("serioustrauma"),!0;default:return!1}},buildObserveResult=(e,t,n,a=!1)=>({changed:didLimbChange(t,n)||a,traumaSynced:a,stageChanged:t?.stage!==n?.stage,limb:e,before:t,after:n}),applyObservedLimbHit=({limbModel:e,affModel:t,serverside:n,limb:a,amount:o,source:i="manual",at:s})=>{const l=normalizeLimbId(a),c=buildLimbSnapshot(e,l);if(!c)return{changed:!1,traumaSynced:!1,stageChanged:!1,limb:l,before:null,after:null};e.hit(l,o,i);const u=buildLimbSnapshot(e,l),d=didLimbChange(c,u),p=c.stage!==u?.stage,m=!("torso"!==l||!p)&&syncTorsoTrauma({affModel:t,serverside:n,stage:u?.stage,source:i,at:s});return{changed:d||m,traumaSynced:m,stageChanged:p,limb:l,before:c,after:u}},applyObservedLimbReset=({limbModel:e,affModel:t,serverside:n,limb:a,source:o="manual",at:i})=>{const s=normalizeLimbId(a),l=buildLimbSnapshot(e,s);return l?(e.reset(s,o),buildObserveResult(s,l,buildLimbSnapshot(e,s),"torso"===s&&syncTorsoTrauma({affModel:t,serverside:n,stage:"healthy",source:o,at:i}))):{changed:!1,traumaSynced:!1,stageChanged:!1,limb:s,before:null,after:null}},applyObservedLimbStage=({limbModel:e,affModel:t,serverside:n,limb:a,stage:o,source:i="manual",at:s})=>{const l=normalizeLimbId(a),c=buildLimbSnapshot(e,l);if(!c)return{changed:!1,traumaSynced:!1,stageChanged:!1,limb:l,before:null,after:null};e.setStage(l,o,i);const u=buildLimbSnapshot(e,l),d=c.stage!==u?.stage,p=!("torso"!==l||!d)&&syncTorsoTrauma({affModel:t,serverside:n,stage:u?.stage,source:i,at:s});return{changed:didLimbChange(c,u)||p,traumaSynced:p,stageChanged:d,limb:l,before:c,after:u}},he=new Set(["char.items.add","char.items.remove","char.items.update","ire.rift.change"]),registerAdapterEvents=({register:e,options:t,queueTranslatedGmcp:n,publishPublic:a,publishPublicScoped:o,markDirty:i,flushCycle:s,outputCycle:l,startup:c,runtimeControl:u,queueController:d,serverside:p,balanceModel:m,adapter:g,systemModel:h,affModel:b,cacheModel:y,limbModel:v,savePersistence:S})=>{e("GmcpEvent",e=>{n(e);const o=normalizeTag(e?.tag||e?.rawTag||e?.gmcp_method);!0===t.publishRawGmcp&&a(te.RAW_GMCP,{source:"adapter-gmcp",tag:o,payload:e?.payload??e?.gmcp_args??null}),he.has(o)||i("gmcp-buffered")}),e("PromptEvent",()=>s("prompt")),e("ForcePopulateEvent",()=>s("force")),e("SystemOutputCompleteEvent",()=>{l.markComplete()&&s("output-complete")}),e(ne.STARTUP_BEGIN,()=>{c.handleFenceBegin()}),e(ne.STARTUP_COMPLETE,()=>{c.handleFenceComplete("snapshot:complete:text")&&(u.setPaused(!1,{source:"startup-complete"}),a(te.SYSTEM_LOADED,{source:"startup-complete"}))}),e("QueueFiredTextEvent",e=>{e?.queueName&&d.acknowledgeFired(e.queueName)}),e("QueueSentTextEvent",e=>{const t=e?.queueId||e?.queueName||e?.queueType;t&&d.acknowledgeSent(t,e)}),e("AllQueuesClearedTextEvent",()=>{d.listQueues().forEach(e=>{d.clear(e)})}),e("CommandSeparatorChangedTextEvent",({separator:e}={})=>{const t=normalizeCommandSeparator(e);t&&(g?.setSeparator(t),h?.setSettings({commandSeparator:t},{setBaseline:!0}),S?.())}),e("BalanceStateTextEvent",e=>{const t=String(e?.id||"").trim().toLowerCase();if(!t)return;const n=String(e?.reason||e?.source||"text"),a=Number(e?.durationSeconds);if(!0!==e?.have){if(!1===e?.have){if(Number.isFinite(a)&&a>0)return void m.observeServerUse(t,a,{source:n});m.lose(t,n)}}else m.gain(t,n)}),e("CacheRiftOutTextEvent",(e={})=>{const t=y?.observeRiftOutText?.({item:e.item,amount:e.amount,riftAmount:e.riftAmount,source:e.source||"text-trigger"});t?.name&&i(`text:cache-rift-out:${t.name}`)}),e("CacheRiftInTextEvent",(e={})=>{const t=y?.observeRiftInText?.({item:e.item,amount:e.amount,riftAmount:e.riftAmount,source:e.source||"text-trigger"});t?.name&&i(`text:cache-rift-in:${t.name}`)}),e("CacheInventoryEmptyTextEvent",(e={})=>{const t=y?.observeInventoryEmptyText?.({item:e.item,source:e.source||"text-trigger"});t?.name&&(i(`text:cache-empty:${t.name}`),g?.sendGmcp?.(["Char.Items.Inv"],{source:"cache-inventory-empty-text",item:e.item||"",name:t.name}))}),e("CacheCurativeConsumedTextEvent",(e={})=>{const t=y?.observeCurativeConsumedText?.({item:e.item,amount:e.amount,source:e.source||"text-trigger"});t?.name&&i(`text:cache-consume:${t.name}`)}),e("CacheInventoryDeltaTextEvent",(e={})=>{const t=y?.observeInventoryDeltaText?.({item:e.item,amount:e.amount,delta:e.delta,source:e.source||"text-trigger"});t?.name&&i(`text:cache-${t.delta>0?"add":"remove"}:${t.name}`)}),e("LimbDamageTextEvent",e=>{const t=applyObservedLimbHit({limbModel:v,affModel:b,serverside:p,limb:e?.limb,amount:e?.amount,source:String(e?.source||"text-trigger"),at:e?.at});t.changed&&"torso"===t.limb&&t.stageChanged&&i(`text-limb-torso:${t.after?.stage||"unknown"}`)}),e("LimbResetTextEvent",e=>{const t=applyObservedLimbReset({limbModel:v,affModel:b,serverside:p,limb:e?.limb,source:String(e?.source||"text-trigger"),at:e?.at});t.changed&&"torso"===t.limb&&i("text-limb-torso:healthy")}),e("ServersideStatusTextEvent",e=>{p.parseStatusLine(e||{})}),e("ServersideStatusSnapshotCompleteTextEvent",()=>{p.markStartupCaptured("status")}),e("ServersideAffPrioSnapshotOpenTextEvent",()=>{p.beginObservedAffPrioritySnapshot()}),e("ServersideAffPrioSnapshotCompleteTextEvent",()=>{p.completeObservedAffPrioritySnapshot()}),e("ServersideDefPrioSnapshotOpenTextEvent",()=>{p.beginObservedDefPrioritySnapshot()}),e("ServersideDefPrioSnapshotCompleteTextEvent",()=>{p.completeObservedDefPrioritySnapshot()}),e("ServersideAffPrioTextEvent",e=>{if(!e?.aff)return;const t=Number(e.prio),n=p.updateObservedAffPriority(e.aff,t);if("live-confirmation"===e.source){const a="function"==typeof b?.normalizePriorityName?b.normalizePriorityName(e.aff):String(e.aff||"").toLowerCase();o(te.SERVERSIDE_AFF_PRIORITY_SET,{id:a,priority:t,source:"live-confirmation",accepted:n},a)}}),e("ServersideDefPrioTextEvent",e=>{if(!e?.def)return;const t=String(e.def||"").toLowerCase(),n=Number(e.prio),a=p.updateObservedDefPriority(t,n);"live-confirmation"===e.source&&o(te.SERVERSIDE_DEF_PRIORITY_SET,{id:t,priority:n,source:"live-confirmation",accepted:a},t)}),e("ServersideQueueListTextEvent",e=>{p.updateObservedQueue(e?.queue||[])}),e("ServersidePredictionsTextEvent",e=>{p.updateObservedPredictions(e?.predictions||{})}),e("ServersideCuringSetsTextEvent",e=>{p.observeCuringSets({sets:e?.sets||[],activeSet:e?.activeSet||""})}),e("SnappedGotTrackableEvent",()=>{p.setTrackable("snapTrack",!0,{source:"text",label:"Snapped"}),g.setTimeout(()=>{p.setTrackable("snapTrack",!1,{source:"timer",label:"Snapped"})},8e3)})},be={short:{rl:"right leg",ll:"left leg",ra:"right arm",la:"left arm",h:"head",tt:"torso",c:"centre",l:"left",r:"right"},long:{"right leg":"rl","left leg":"ll","right arm":"ra","left arm":"la",head:"h",torso:"tt",centre:"c",left:"l",right:"r"}},ye=["e","w","s","n","ne","se","sw","nw","in","out","d","u"],ve={e:"east",w:"west",s:"south",n:"north",ne:"northeast",se:"southeast",sw:"southwest",nw:"northwest",in:"in",out:"out",down:"down",d:"down",u:"up",up:"up"},Se={e:"west",w:"east",s:"north",n:"south",ne:"southwest",se:"northwest",sw:"northeast",nw:"southeast",in:"out",out:"in",down:"up",d:"up",u:"down",up:"down"},xe={east:"e",west:"w",south:"s",north:"n",northeast:"ne",northwest:"nw",southeast:"se",southwest:"sw",in:"in",out:"out",down:"d",up:"up"},we=["Alchemist","Apostate","Bard","Blademaster","Depthswalker","Dragon","Druid","Infernal","Jester","Magi","Monk","Shikudo","Occultist","Paladin","Pariah","Priest","Psion","Runewarden","Sentinel","Serpent","Shaman","Sylvan","Unnamable","Air Elemental Lord","Earth Elemental Lord","Fire Elemental Lord","Water Elemental Lord"],normalizeClassName=(e="")=>{const t=String(e||"").trim();return t?/\bdragon\b/i.test(t)?"Dragon":we.find(e=>e.toLowerCase()===t.toLowerCase())||t:""},classesMatch=(e="",t="")=>normalizeClassName(e).toLowerCase()===normalizeClassName(t).toLowerCase(),classListIncludes=(e=[],t="")=>{const n=Array.isArray(e)?e:e?[e]:[];if(!n.length)return!0;const a=normalizeClassName(t).toLowerCase();return n.some(e=>normalizeClassName(e).toLowerCase()===a)},hasOwn$4=(e,t)=>Object.prototype.hasOwnProperty.call(e||{},t),normalizeCommandList=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizeStringList=e=>Array.isArray(e)?e.filter(Boolean):e?[e]:[],normalizePrioritySeed=e=>{const t=Number(e);return Number.isFinite(t)?t<0?0:t>26?26:t:0},normalizeDefenseConfig=(e={})=>{const t=!1!==e.serverside;return deepFreeze({...deepClone$1(e),command:normalizeCommandList(e.command),bals_req:normalizeStringList(e.bals_req),bals_used:normalizeStringList(e.bals_used),blocks:deepClone$1(e.blocks||[]),skills:normalizeStringList(e.skills),opps:normalizeStringList(e.opps),serverside:t,preempt:!0===e.preempt,static:!0===e.static,clientOnly:!0===e.clientOnly,defaultPriority:normalizePrioritySeed(e.defaultPriority)})},createDefEntry=(e,t,n,a)=>({id:e,have:!1,lastChangeAt:0,order:t,seedStatic:n.static,defaultPriority:a,priorityOverride:null,command:n.command,bals_req:n.bals_req,bals_used:n.bals_used,blocks:n.blocks,skills:n.skills,opps:n.opps,serverside:n.serverside,preempt:n.preempt,static:n.static,clientOnly:n.clientOnly}),resolveDefensePriority=(e={})=>null===e.priorityOverride||void 0===e.priorityOverride?Number(e.defaultPriority??-1):Number(e.priorityOverride),matchesClass=(e=[],t="")=>!e||!e.length||(Array.isArray(t)?t.some(t=>classListIncludes(e,t)):classListIncludes(e,t)),isActiveStaticPriority=e=>{const t=Number(e);return Number.isFinite(t)&&t>0},createInitialDefenseState=({defTable:e={},defPrios:t={}}={})=>{const n=Object.keys(e),a={},o={};return n.forEach((n,i)=>{const s=normalizeDefenseConfig(e[n]),l=hasOwn$4(t,n)?normalizePrioritySeed(t[n]):s.defaultPriority;o[n]=l,a[n]=createDefEntry(n,i,s,l)}),{list:n,state:a,defaultPrios:o}},normalizeObservedDefenseId=e=>("string"==typeof e?e:String(e?.name||e?.id||e||"")).toLowerCase().replace(/\s*\(([^)]+)\)/g," $1").trim(),normalizeItemLocation=e=>String(e||"").trim().toLowerCase()||"inv",registerGmcpBridges=({registerGmcpListener:e,systemModel:t,balanceModel:n,affModel:a,defModel:o,cacheModel:i,limbModel:s,serverside:l,adapter:c,markDirty:u})=>{const requestInventoryResync=e=>{c?.sendGmcp?.(["Char.Items.Inv"],{source:e})};e(X.CHAR_VITALS,({vitals:e}={})=>{t.updateVitals(e),n.applyVitals(e),u("gmcp:vitals")}),e(X.CHAR_STATUS,({status:e}={})=>{t.updateStatus(e||{}),u("gmcp:status")}),e(X.CHAR_AFFLICTIONS_LIST,({afflictions:e}={})=>{const t=Array.isArray(e)?e:[];a.applyList(t),"function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted&&s.syncFromAfflictions(a.currentSorted(),"gmcp-list"),u("gmcp:aff-list")}),e(X.CHAR_AFFLICTIONS_ADD,({name:e}={})=>{e&&(a.got(e,{source:"gmcp-add"}),"function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"gmcp-add"):s.applyAfflictionTransition(e,!0),u(`gmcp:aff-add:${e}`))}),e(X.CHAR_AFFLICTIONS_REMOVE,({name:e}={})=>{e&&(a.lose(e,{source:"gmcp-remove"}),"function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"gmcp-remove"):s.applyAfflictionTransition(e,!1),l.getTransientPrioAff()===e&&l.clearPrioAff(),u(`gmcp:aff-remove:${e}`))}),e(X.CHAR_DEFENCES_LIST,({defences:e}={})=>{o.applyList(Array.isArray(e)?e:[],"gmcp-list"),u("gmcp:def-list")}),e(X.CHAR_DEFENCES_ADD,({name:e}={})=>{if(!e)return;const t=normalizeObservedDefenseId(e);if(t){if(t.startsWith("parrying "))for(const e of o.list())e!==t&&e.startsWith("parrying ")&&o.get(e)?.have&&o.setHave(e,!1,"gmcp-parry-implied-remove");o.setHave(t,!0,"gmcp-add"),"mindseye"===t&&requestInventoryResync("cache-visibility-resync:mindseye"),u(`gmcp:def-add:${t}`)}}),e(X.CHAR_DEFENCES_REMOVE,({name:e}={})=>{if(!e)return;const t=normalizeObservedDefenseId(e);t&&(o.setHave(t,!1,"gmcp-remove"),"blindness"===t&&requestInventoryResync("cache-visibility-resync:blindness"),u(`gmcp:def-remove:${t}`))}),e(X.IRE_RIFT_LIST,({rift:e}={})=>{i.observeRiftSnapshot?.(e||{}),u("gmcp:rift-list")}),e(X.IRE_RIFT_CHANGE,({change:e}={})=>{i.ignoreRiftChange?.(e||{})}),e(X.CHAR_ITEMS_LIST,({items:e,location:n}={})=>{const a=normalizeItemLocation(n),o=Array.isArray(e)?e:[];if("inv"===a){i.observeInventorySnapshot?.(o);const toWieldedItem=e=>e?{id:e.id??null,name:String(e.name||""),icon:e.icon||null}:null;t.updateWielded("left",toWieldedItem(o.find(e=>"l"===e.attrib))),t.updateWielded("right",toWieldedItem(o.find(e=>"L"===e.attrib)))}u("gmcp:items-list")}),e(X.CHAR_ITEMS_DELTA,({inventoryDelta:e}={})=>{if(e){const n=normalizeItemLocation(e.location),a="inv"===n||"room"===n?i.observeItemDelta?.(e):null;if(a?.changed&&a.name&&u(`gmcp:room-pickup:${a.name}`),"inv"===n&&"update"===e.action){const{id:n,name:a,icon:o,attrib:i}=e,s=t.getChar().wielded;s.left?.id===n&&"l"!==i&&t.updateWielded("left",null),s.right?.id===n&&"L"!==i&&t.updateWielded("right",null),"l"===i?t.updateWielded("left",{id:n,name:a,icon:o}):"L"===i&&t.updateWielded("right",{id:n,name:a,icon:o})}}}),e(X.ROOM_INFO,({room:e,roomItems:n}={})=>{t.updateRoom(e||{}),t.setRoomItems(n||{}),u("gmcp:room-info")}),e(X.TARGET_INFO,({target:e}={})=>{t.updateTarget(e||{}),u("gmcp:target")})},normalizeBridgeSegment=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9._-]/g,""),isSystemOutputBalance=(e={})=>"systemoutput"===normalizeBridgeSegment(e?.id),Ce=Object.freeze(["balance","equilibrium"]),getCounterpartEqbalBalance=e=>{const t=normalizeBridgeSegment(e);return Ce.includes(t)?"balance"===t?"equilibrium":"balance":null},buildEqbalRecoveredPayload=(e,t={})=>{const n=normalizeBridgeSegment(t?.id),a=getCounterpartEqbalBalance(n);return a&&e?.have?.(n)&&e.have(a)?{...t,id:"eqbal",have:!0,recoveredId:n,balances:{balance:Boolean(e.have("balance")),equilibrium:Boolean(e.have("equilibrium"))}}:null},getRecoveredBalanceSeconds=(e={})=>{const t=Number(e?.durationMs);if(Number.isFinite(t)&&t>0)return t/1e3;const n=Number(e?.lastLostAtMs),a=Number(e?.lastGotAtMs);return Number.isFinite(n)&&Number.isFinite(a)&&a>n?(a-n)/1e3:Number(e?.durationSeconds??e?.baseDurationSeconds)},formatBalanceNotice=(e={})=>{const t=String(e?.id||"").trim(),n=getRecoveredBalanceSeconds(e);return t?!Number.isFinite(n)||n<=0?t:`${t}(${n.toFixed(2)})`:""},shouldEchoPriorityChange=(e={})=>["manual","public-api"].includes(String(e?.source||"").toLowerCase()),formatPriorityNotice=(e={},t)=>{const n=String(t||"").trim(),a=Number(e?.priority??e?.value),o=normalizeBridgeSegment(e?.domain),i=o&&"keepup"!==o?` (${o})`:!0===e?.static?" (static)":"";return n?Number.isFinite(a)?`${n} ${a}${i}`:`${n}${i}`:""},ke=Object.freeze({RuleAdded:te.RULE_ADDED,RuleRemoved:te.RULE_REMOVED,RuleEnabled:te.RULE_ENABLED,RuleDisabled:te.RULE_DISABLED,RulePackLoaded:te.RULE_PACK_LOADED,RulePackUnloaded:te.RULE_PACK_UNLOADED,RuleOrderChanged:te.RULE_ORDER_CHANGED}),Ee=Object.freeze({hp:{topic:te.SYSTEM_HEALTH_CHANGED,maxKey:"maxhp"},mp:{topic:te.SYSTEM_MANA_CHANGED,maxKey:"maxmp"},rage:{topic:te.SYSTEM_RAGE_CHANGED},bleed:{topic:te.SYSTEM_BLEED_CHANGED}}),buildVitalResourcePayload=(e={},t,{maxKey:n}={})=>{const a=e.changedFields?.[t];if(!a)return null;const o=a.current,i=a.previous;return{max:n?e.current?.[n]:o,current:o,previous:i,diff:o-i}},publishVitalResourceTopics=(e,t={})=>{Object.entries(Ee).forEach(([n,a])=>{const o=buildVitalResourcePayload(t,n,a);o&&e(a.topic,o)})},registerSystemModelBridge=({registerModelListener:e,publishPublic:t,syncDebugMode:n,systemModel:a,serverside:o,handleVitalsSideEffects:i})=>{e(a.onChange((e,a={})=>{switch(e){case"VitalsUpdated":t(te.SYSTEM_VITALS_CHANGED,a),publishVitalResourceTopics(t,a),i();break;case"StatusUpdated":t(te.SYSTEM_STATUS_CHANGED,a);break;case"ClassChanged":o.setBaselineFromRuntime(),t(te.SYSTEM_CLASS_CHANGED,a);break;case"TargetUpdated":t(te.SYSTEM_TARGET_CHANGED,a);break;case"RoomUpdated":t(te.SYSTEM_ROOM_CHANGED,a);break;case"RoomItemsUpdated":t(te.SYSTEM_ROOM_ITEMS_CHANGED,a);break;case"RuntimeStateChanged":t(te.SYSTEM_RUNTIME_CHANGED,a);break;case"PauseStateChanged":t(te.SYSTEM_PAUSE_CHANGED,a),t(a.paused?te.SYSTEM_PAUSED:te.SYSTEM_UNPAUSED,a);break;case"SettingsChanged":a.changedKeys?.includes("debug")&&n(),t(te.SYSTEM_SETTINGS_CHANGED,a);break;case"BaselineIntentChanged":t(te.SYSTEM_BASELINE_CHANGED,a);break;case"WieldedUpdated":t(te.SYSTEM_WIELDED_CHANGED,a);break;case"MountUpdated":t(te.SYSTEM_MOUNT_CHANGED,a);break;case"DeathDetected":t(te.SYSTEM_DEATH_DETECTED,a)}}))},registerAfflictionModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,systemModel:o,affModel:i,serverside:s})=>{e(i.onChange((e,l={})=>{switch("AffGot"!==e&&"AffLost"!==e||"aeon"!==l?.name||o.setRuntime({aeonLocked:i.haveAff("aeon")}),e){case"AffGot":n(te.AFF_GOT,l,l.name),a.publish("affGot",l.name,{...l,action:"got"});break;case"AffLost":n(te.AFF_LOST,l,l.name),a.publish("affLost",l.name,{...l,action:"lost"}),s.getTransientPrioAff()===l.name&&s.clearPrioAff();break;case"AffStackChanged":n(te.AFF_STACK_CHANGED,l,l.name);break;case"AffPriorityChanged":t(te.AFF_PRIORITY_CHANGED,l),shouldEchoPriorityChange(l)&&a.publish("priority",formatPriorityNotice(l,l.name),{...l,action:"set",subject:"aff"})}}))},registerDefenseModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,defModel:o})=>{e(o.onChange((e,o={})=>{switch(e){case"DefGot":n(te.DEF_GOT,o,o.id),a.publish("defGot",o.id,{...o,action:"got"});break;case"DefLost":n(te.DEF_LOST,o,o.id),a.publish("defLost",o.id,{...o,action:"lost"});break;case"DefPriorityChanged":t(te.DEF_PRIORITY_CHANGED,o),shouldEchoPriorityChange(o)&&a.publish("priority",formatPriorityNotice(o,o.id),{...o,action:"set",subject:"def"})}}))},registerBalanceModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,balanceModel:o})=>{e(o.onChange((e,i={})=>{switch(e){case"BalanceGot":n(te.BALANCE_GOT,i,i.id);{const e=buildEqbalRecoveredPayload(o,i);e&&t(te.EQBAL_GOT,e)}isSystemOutputBalance(i)||a.publish("balanceRecovered",formatBalanceNotice(i),{...i,action:"got"});break;case"BalanceLost":n(te.BALANCE_LOST,i,i.id),a.publish("balanceLost",i.id,{...i,action:"lost"});break;case"BalanceReset":n(te.BALANCE_RESET,i,i.id);break;case"BalanceDurationObserved":n(te.BALANCE_DURATION_OBSERVED,i,i.id);break;case"BalanceLossTimerRestarted":t(te.BALANCE_TIMER_RESTARTED,i)}}))},registerLimbModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,limbModel:a})=>{e(a.onChange((e,a={})=>{switch(e){case"LimbHit":n(te.LIMB_HIT,a,a.limb);break;case"LimbReset":n(te.LIMB_RESET,a,a.limb);break;case"LimbStageChanged":n(te.LIMB_STAGE_CHANGED,a,a.limb);break;case"LimbDecay":t(te.LIMB_DECAY,a)}}))},registerCacheModelBridge=({registerModelListener:e,publishPublic:t,cacheModel:n})=>{e(n.onChange((e,n={})=>{switch(e){case"CacheAmountChanged":t(te.CACHE_AMOUNT_CHANGED,n);break;case"CacheInventoryListApplied":t(te.CACHE_INVENTORY_LIST,n);break;case"CacheRiftListApplied":t(te.CACHE_RIFT_LIST,n);break;case"CacheDesiredPrecacheChanged":t(te.CACHE_PRECACHE_CHANGED,n)}}))},registerQueueModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,queueController:o})=>{e(o.onChange((e,i={})=>{switch(e){case"QueueFlushed":t(te.QUEUE_FLUSHED,i),a.publish("output",`Queue sent: ${i.queueId}`,i);break;case"QueueDeferred":t(te.QUEUE_DEFERRED,i);break;case"QueueUpdated":t(te.QUEUE_UPDATED,i);break;case"QueueCleared":t(te.QUEUE_CLEARED,i);break;case"QueueSentAcknowledged":{const e=o.getQueue(i.queueId)?.name||i.queueName||i.queueId;n(te.QUEUE_SENT,{...i,queueName:e},e);break}case"QueueFiredAcknowledged":{const e=o.getQueue(i.queueId)?.name||i.queueId;t(te.QUEUE_FIRED_ACK,i),n(te.QUEUE_FIRED,{...i,queueName:e},e);break}}}))},registerServersideModelBridge=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,serverside:o,onServersideDirty:i})=>{e(o.onChange((e,o={})=>{const s=ke[e];if(s)t(s,o);else switch(e){case"TrackableGot":a.publish("trackableGot",o.label||o.name,{...o,action:"got"});break;case"TrackableLost":a.publish("trackableLost",o.label||o.name,{...o,action:"lost"});break;case"ServersideDirty":i?.(o),t(te.SERVERSIDE_DIRTY,o);break;case"ServersideEvaluated":t(te.SERVERSIDE_EVALUATED,o);break;case"RuleActivated":n(te.RULE_ACTIVATED,o,o.id);break;case"RuleDeactivated":n(te.RULE_DEACTIVATED,o,o.id)}}))},registerModelEventBridges=({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,syncDebugMode:o,systemModel:i,affModel:s,defModel:l,balanceModel:c,cacheModel:u,limbModel:d,queueController:p,serverside:m,handleVitalsSideEffects:g,onServersideDirty:h})=>{registerSystemModelBridge({registerModelListener:e,publishPublic:t,syncDebugMode:o,systemModel:i,serverside:m,handleVitalsSideEffects:g}),registerAfflictionModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,systemModel:i,affModel:s,serverside:m}),registerDefenseModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,defModel:l}),registerBalanceModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,balanceModel:c}),registerLimbModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,limbModel:d}),registerCacheModelBridge({registerModelListener:e,publishPublic:t,cacheModel:u}),registerQueueModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,queueController:p}),registerServersideModelBridge({registerModelListener:e,publishPublic:t,publishPublicScoped:n,noticeCenter:a,serverside:m,onServersideDirty:h})},_e="Flying above ",Pe=new Set(["dragon","air elemental lord","earth elemental lord","fire elemental lord","water elemental lord"]),registerCrossModelBridges=({registerModelListener:e,systemModel:t,defModel:n})=>{e(t.onChange((e,t={})=>{if("RoomUpdated"===e){const e=String(t?.current?.name||"").startsWith(_e);return void n.setHave("flying",e,"room-info")}"ClassChanged"===e&&Pe.has(String(t?.class||"").toLowerCase())&&n.setHave("mounted",!1,"class-change")}))},createRuntimeEventWiring=({adapter:e,internalEvents:t})=>{let n=[];const addUnsubscriber=e=>{"function"==typeof e&&n.push(e)},dispose=()=>{n.forEach(e=>{try{e()}catch(t){console.error("nexSys4 unsubscribe failure",t)}}),n=[]};return{attach:({options:n,queueTranslatedGmcp:a,publishPublic:o,publishPublicScoped:i,noticeCenter:s,syncDebugMode:l,systemModel:c,affModel:u,defModel:d,balanceModel:p,cacheModel:m,limbModel:g,queueController:h,serverside:b,markDirty:y,invalidateOutput:v,flushCycle:S,outputCycle:x,startup:w,runtimeControl:C,savePersistence:k})=>{dispose();const register=(t,n)=>{addUnsubscriber(e.on(t,n))},registerModelListener=e=>{addUnsubscriber(e)},registerGmcpListener=(e,n)=>{registerModelListener(t.on(e,n))};registerAdapterEvents({register,options:n,queueTranslatedGmcp:a,publishPublic:o,publishPublicScoped:i,markDirty:y,flushCycle:S,outputCycle:x,startup:w,runtimeControl:C,queueController:h,serverside:b,balanceModel:p,adapter:e,systemModel:c,affModel:u,cacheModel:m,limbModel:g,savePersistence:k}),register("OutboundCommandsEvent",(e={})=>{if("output-cycle"!==e?.context?.source)return;const t=Array.isArray(e.commands)?e.commands.filter(Boolean).map(e=>String(e)):[];if(!t.length)return;const n=c.getSettings().commandSeparator||"|";s.publish("output",`(${t.join(n)})`,{action:"commands",commands:t,source:e?.context?.cycleSource||e?.context?.source||"output-cycle"})}),registerGmcpBridges({registerGmcpListener,systemModel:c,balanceModel:p,affModel:u,defModel:d,cacheModel:m,limbModel:g,serverside:b,adapter:e,markDirty:y}),registerModelEventBridges({registerModelListener,publishPublic:o,publishPublicScoped:i,noticeCenter:s,syncDebugMode:l,systemModel:c,affModel:u,defModel:d,balanceModel:p,cacheModel:m,limbModel:g,queueController:h,serverside:b,handleVitalsSideEffects:C.handleVitalsSideEffects,onServersideDirty:v}),registerCrossModelBridges({registerModelListener,systemModel:c,defModel:d})},dispose}},createRuntimeControlApi=({systemModel:e,serverside:t,queueController:n,noticeCenter:a,markDirty:o,onResume:i,dispatchCommands:s})=>{let l=!1;const syncServersideCuring=(e,t={})=>"function"!=typeof s?[]:s([e?"curing off":"curing on"],{source:t.source||(e?"runtime-pause":"runtime-unpause")}),setPaused=(t,a={})=>{const s=Boolean(t),l=e.getRuntime();return!(!s&&!isRuntimeReadyPhase(l.phase))&&(l.paused===s?(a.forceCuringSync&&syncServersideCuring(s,a),!1):(e.setRuntime({paused:s}),o(s?"paused":"unpaused"),syncServersideCuring(s,a),!s&&isRuntimeReadyPhase(e.getRuntime().phase)&&(n.flushDeferred(),i?.(a.source||"unpause")),!0))},ensureSlowModeRule=()=>{t.lifecycle.add({id:"runtime-slow-mode",pack:"runtime",evaluate:()=>e.getRuntime().slowMode?{settings:{sipHealthAt:30,sipManaAt:20,mossHealthAt:20,mossManaAt:20,batch:!1}}:null})};return{setPaused,setSlowMode(t){const n=Boolean(t);return e.getRuntime().slowMode!==n&&(e.setRuntime({slowMode:n}),ensureSlowModeRule(),o(n?"slow-on":"slow-off"),!0)},handleVitalsSideEffects(){const t=e.getChar().dead;t&&!l&&(setPaused(!0,{source:"death-detected"}),a.publish("output","Death detected. Pausing nexSys runtime.",{source:"death-detected"})),!t&&l&&(setPaused(!1,{source:"death-recover"}),a.publish("output","Resurrection detected. Resuming nexSys runtime.",{source:"death-recover"})),l=t}}};function $constructor(e,t,n){function init(n,a){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:a,constr:_,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,a);const o=_.prototype,i=Object.keys(o);for(let e=0;e<i.length;e++){const t=i[e];t in n||(n[t]=o[t].bind(n))}}const a=n?.Parent??Object;class Definition extends a{}function _(e){var t;const a=n?.Parent?new Definition:this;init(a,e),(t=a._zod).deferred??(t.deferred=[]);for(const n of a._zod.deferred)n();return a}return Object.defineProperty(Definition,"name",{value:e}),Object.defineProperty(_,"init",{value:init}),Object.defineProperty(_,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(_,"name",{value:e}),_}var Te=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Ae=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(d=globalThis).__zod_globalConfig??(d.__zod_globalConfig={});var Re=globalThis.__zod_globalConfig;function config(e){return e&&Object.assign(Re,e),Re}function getEnumValues(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function jsonStringifyReplacer(e,t){return"bigint"==typeof t?t.toString():t}function cached(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function nullish(e){return null==e}function cleanRegex(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function floatSafeRemainder(e,t){const n=e/t,a=Math.round(n),o=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-a)<o?0:n-a}var Me=Symbol("evaluating");function defineLazy(e,t,n){let a;Object.defineProperty(e,t,{get(){if(a!==Me)return void 0===a&&(a=Me,a=n()),a},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function assignProp(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function mergeDefs(...e){const t={};for(const n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function esc(e){return JSON.stringify(e)}function slugify(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var De="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function isObject(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var Oe=cached(()=>{if(Re.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function isPlainObject$2(e){if(!1===isObject(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==isObject(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function shallowClone(e){return isPlainObject$2(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var $e=new Set(["string","number","symbol"]);function escapeRegex(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function clone$1(e,t,n){const a=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(a._zod.parent=e),a}function normalizeParams(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}function optionalKeys(e){return Object.keys(e).filter(t=>"optional"===e[t]._zod.optin&&"optional"===e[t]._zod.optout)}var Ie={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function pick(e,t){const n=e._zod.def,a=n.checks;if(a&&a.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const e={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(e[a]=n.shape[a])}return assignProp(this,"shape",e),e},checks:[]}))}function omit(e,t){const n=e._zod.def,a=n.checks;if(a&&a.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const a={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete a[e]}return assignProp(this,"shape",a),a},checks:[]}))}function extend(e,t){if(!isPlainObject$2(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return clone$1(e,mergeDefs(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return assignProp(this,"shape",n),n}}))}function safeExtend(e,t){if(!isPlainObject$2(t))throw new Error("Invalid input to safeExtend: expected a plain object");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return assignProp(this,"shape",n),n}}))}function merge(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return clone$1(e,mergeDefs(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return assignProp(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function partial(e,t,n){const a=t._zod.def.checks;if(a&&a.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return clone$1(t,mergeDefs(t._zod.def,{get shape(){const a=t._zod.def.shape,o={...a};if(n)for(const t in n){if(!(t in a))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=e?new e({type:"optional",innerType:a[t]}):a[t])}else for(const t in a)o[t]=e?new e({type:"optional",innerType:a[t]}):a[t];return assignProp(this,"shape",o),o},checks:[]}))}function required(e,t,n){return clone$1(t,mergeDefs(t._zod.def,{get shape(){const a=t._zod.def.shape,o={...a};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(o[t]=new e({type:"nonoptional",innerType:a[t]}))}else for(const t in a)o[t]=new e({type:"nonoptional",innerType:a[t]});return assignProp(this,"shape",o),o}}))}function aborted(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function explicitlyAborted(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function prefixIssues(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function unwrapMessage(e){return"string"==typeof e?e:e?.message}function finalizeIssue(e,t,n){const a=e.message?e.message:unwrapMessage(e.inst?._zod.def?.error?.(e))??unwrapMessage(t?.error?.(e))??unwrapMessage(n.customError?.(e))??unwrapMessage(n.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:s,...l}=e;return l.path??(l.path=[]),l.message=a,t?.reportInput&&(l.input=s),l}function getLengthableOrigin(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function issue(...e){const[t,n,a]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:a}:{...t}}var initializer$1=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,jsonStringifyReplacer,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Ne=$constructor("$ZodError",initializer$1),ze=$constructor("$ZodError",initializer$1,{Parent:Error});function flattenError(e,t=e=>e.message){const n={},a=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):a.push(t(o));return{formErrors:a,fieldErrors:n}}function formatError(e,t=e=>e.message){const n={_errors:[]},processError=(e,a=[])=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>processError({issues:e},[...a,...o.path]));else if("invalid_key"===o.code)processError({issues:o.issues},[...a,...o.path]);else if("invalid_element"===o.code)processError({issues:o.issues},[...a,...o.path]);else{const e=[...a,...o.path];if(0===e.length)n._errors.push(t(o));else{let a=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?a[n]=a[n]||{_errors:[]}:(a[n]=a[n]||{_errors:[]},a[n]._errors.push(t(o))),a=a[n],i++}}}};return processError(e),n}var _parse=e=>(t,n,a,o)=>{const i=a?{...a,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise)throw new Te;if(s.issues.length){const t=new(o?.Err??e)(s.issues.map(e=>finalizeIssue(e,i,config())));throw De(t,o?.callee),t}return s.value},_parseAsync=e=>async(t,n,a,o)=>{const i=a?{...a,async:!0}:{async:!0};let s=t._zod.run({value:n,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){const t=new(o?.Err??e)(s.issues.map(e=>finalizeIssue(e,i,config())));throw De(t,o?.callee),t}return s.value},_safeParse=e=>(t,n,a)=>{const o=a?{...a,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)throw new Te;return i.issues.length?{success:!1,error:new(e??Ne)(i.issues.map(e=>finalizeIssue(e,o,config())))}:{success:!0,data:i.value}},Le=_safeParse(ze),_safeParseAsync=e=>async(t,n,a)=>{const o=a?{...a,async:!0}:{async:!0};let i=t._zod.run({value:n,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(e=>finalizeIssue(e,o,config())))}:{success:!0,data:i.value}},je=_safeParseAsync(ze),_encode=e=>(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _parse(e)(t,n,o)},_decode=e=>(t,n,a)=>_parse(e)(t,n,a),_encodeAsync=e=>async(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _parseAsync(e)(t,n,o)},_decodeAsync=e=>async(t,n,a)=>_parseAsync(e)(t,n,a),_safeEncode=e=>(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _safeParse(e)(t,n,o)},_safeDecode=e=>(t,n,a)=>_safeParse(e)(t,n,a),_safeEncodeAsync=e=>async(t,n,a)=>{const o=a?{...a,direction:"backward"}:{direction:"backward"};return _safeParseAsync(e)(t,n,o)},_safeDecodeAsync=e=>async(t,n,a)=>_safeParseAsync(e)(t,n,a),Be=/^[cC][0-9a-z]{6,}$/,Fe=/^[0-9a-z]+$/,qe=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ue=/^[0-9a-vA-V]{20}$/,Ve=/^[A-Za-z0-9]{27}$/,He=/^[a-zA-Z0-9_-]{21}$/,We=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ge=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,uuid=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ye=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ke="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function emoji(){return new RegExp(Ke,"u")}var Qe=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ze=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Xe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Je=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,et=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,tt=/^[A-Za-z0-9_-]*$/,rt=/^https?$/,nt=/^\+[1-9]\d{6,14}$/,at="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",ot=new RegExp(`^${at}$`);function timeSource(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function time$1(e){return new RegExp(`^${timeSource(e)}$`)}function datetime$1(e){const t=timeSource({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const a=`${t}(?:${n.join("|")})`;return new RegExp(`^${at}T(?:${a})$`)}var string$1=e=>new RegExp(`^${e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*"}$`),it=/^-?\d+$/,st=/^-?\d+(?:\.\d+)?$/,lt=/^[^A-Z]*$/,ct=/^[^a-z]*$/,ut=$constructor("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),dt={number:"number",bigint:"bigint",object:"date"},pt=$constructor("$ZodCheckLessThan",(e,t)=>{ut.init(e,t);const n=dt[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,a=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<a&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=a=>{(t.inclusive?a.value<=t.value:a.value<t.value)||a.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:a.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),mt=$constructor("$ZodCheckGreaterThan",(e,t)=>{ut.init(e,t);const n=dt[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,a=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>a&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=a=>{(t.inclusive?a.value>=t.value:a.value>t.value)||a.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:a.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ft=$constructor("$ZodCheckMultipleOf",(e,t)=>{ut.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==floatSafeRemainder(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),gt=$constructor("$ZodCheckNumberFormat",(e,t)=>{ut.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),a=n?"int":"number",[o,i]=Ie[t.format];e._zod.onattach.push(e=>{const a=e._zod.bag;a.format=t.format,a.minimum=o,a.maximum=i,n&&(a.pattern=it)}),e._zod.check=s=>{const l=s.value;if(n){if(!Number.isInteger(l))return void s.issues.push({expected:a,format:t.format,code:"invalid_type",continue:!1,input:l,inst:e});if(!Number.isSafeInteger(l))return void(l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:a,inclusive:!0,continue:!t.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:a,inclusive:!0,continue:!t.abort}))}l<o&&s.issues.push({origin:"number",input:l,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),l>i&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),ht=$constructor("$ZodCheckMaxLength",(e,t)=>{var n;ut.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!nullish(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const a=n.value;if(a.length<=t.maximum)return;const o=getLengthableOrigin(a);n.issues.push({origin:o,code:"too_big",maximum:t.maximum,inclusive:!0,input:a,inst:e,continue:!t.abort})}}),bt=$constructor("$ZodCheckMinLength",(e,t)=>{var n;ut.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!nullish(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const a=n.value;if(a.length>=t.minimum)return;const o=getLengthableOrigin(a);n.issues.push({origin:o,code:"too_small",minimum:t.minimum,inclusive:!0,input:a,inst:e,continue:!t.abort})}}),yt=$constructor("$ZodCheckLengthEquals",(e,t)=>{var n;ut.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!nullish(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const a=n.value,o=a.length;if(o===t.length)return;const i=getLengthableOrigin(a),s=o>t.length;n.issues.push({origin:i,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),vt=$constructor("$ZodCheckStringFormat",(e,t)=>{var n,a;ut.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(a=e._zod).check??(a.check=()=>{})}),St=$constructor("$ZodCheckRegex",(e,t)=>{vt.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),xt=$constructor("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=lt),vt.init(e,t)}),wt=$constructor("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ct),vt.init(e,t)}),Ct=$constructor("$ZodCheckIncludes",(e,t)=>{ut.init(e,t);const n=escapeRegex(t.includes),a=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=a,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(a)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),kt=$constructor("$ZodCheckStartsWith",(e,t)=>{ut.init(e,t);const n=new RegExp(`^${escapeRegex(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Et=$constructor("$ZodCheckEndsWith",(e,t)=>{ut.init(e,t);const n=new RegExp(`.*${escapeRegex(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),_t=$constructor("$ZodCheckOverwrite",(e,t)=>{ut.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),Pt=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),a=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const o of a)this.content.push(o)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},Tt={major:4,minor:4,patch:3},At=$constructor("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Tt;const a=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&a.unshift(e);for(const o of a)for(const t of o._zod.onattach)t(e);if(0===a.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const runChecks=(e,t,n)=>{let a,o=aborted(e);for(const i of t){if(i._zod.def.when){if(explicitlyAborted(e))continue;if(!i._zod.def.when(e))continue}else if(o)continue;const t=e.issues.length,s=i._zod.check(e);if(s instanceof Promise&&!1===n?.async)throw new Te;if(a||s instanceof Promise)a=(a??Promise.resolve()).then(async()=>{await s,e.issues.length!==t&&(o||(o=aborted(e,t)))});else{if(e.issues.length===t)continue;o||(o=aborted(e,t))}}return a?a.then(()=>e):e},handleCanaryResult=(t,n,o)=>{if(aborted(t))return t.aborted=!0,t;const i=runChecks(n,a,o);if(i instanceof Promise){if(!1===o.async)throw new Te;return i.then(t=>e._zod.parse(t,o))}return e._zod.parse(i,o)};e._zod.run=(t,n)=>{if(n.skipChecks)return e._zod.parse(t,n);if("backward"===n.direction){const a=e._zod.parse({value:t.value,issues:[]},{...n,skipChecks:!0});return a instanceof Promise?a.then(e=>handleCanaryResult(e,t,n)):handleCanaryResult(a,t,n)}const o=e._zod.parse(t,n);if(o instanceof Promise){if(!1===n.async)throw new Te;return o.then(e=>runChecks(e,a,n))}return runChecks(o,a,n)}}defineLazy(e,"~standard",()=>({validate:t=>{try{const n=Le(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return je(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),Rt=$constructor("$ZodString",(e,t)=>{At.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??string$1(e._zod.bag),e._zod.parse=(n,a)=>{if(t.coerce)try{n.value=String(n.value)}catch(a){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Mt=$constructor("$ZodStringFormat",(e,t)=>{vt.init(e,t),Rt.init(e,t)}),Dt=$constructor("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ge),Mt.init(e,t)}),Ot=$constructor("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=uuid(e))}else t.pattern??(t.pattern=uuid());Mt.init(e,t)}),$t=$constructor("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ye),Mt.init(e,t)}),It=$constructor("$ZodURL",(e,t)=>{Mt.init(e,t),e._zod.check=n=>{try{const a=n.value.trim();if(!t.normalize&&t.protocol?.source===rt.source&&!/^https?:\/\//i.test(a))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const o=new URL(a);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=o.href:n.value=a)}catch(a){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Nt=$constructor("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=emoji()),Mt.init(e,t)}),zt=$constructor("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=He),Mt.init(e,t)}),Lt=$constructor("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Be),Mt.init(e,t)}),jt=$constructor("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Fe),Mt.init(e,t)}),Bt=$constructor("$ZodULID",(e,t)=>{t.pattern??(t.pattern=qe),Mt.init(e,t)}),Ft=$constructor("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Ue),Mt.init(e,t)}),qt=$constructor("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Ve),Mt.init(e,t)}),Ut=$constructor("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=datetime$1(t)),Mt.init(e,t)}),Vt=$constructor("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=ot),Mt.init(e,t)}),Ht=$constructor("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=time$1(t)),Mt.init(e,t)}),Wt=$constructor("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=We),Mt.init(e,t)}),Gt=$constructor("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Qe),Mt.init(e,t),e._zod.bag.format="ipv4"}),Yt=$constructor("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ze),Mt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),Kt=$constructor("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Xe),Mt.init(e,t)}),Qt=$constructor("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Je),Mt.init(e,t),e._zod.check=n=>{const a=n.value.split("/");try{if(2!==a.length)throw new Error;const[e,t]=a;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function isValidBase64(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Zt=$constructor("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=et),Mt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{isValidBase64(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function isValidBase64URL(e){if(!tt.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return isValidBase64(t.padEnd(4*Math.ceil(t.length/4),"="))}var Xt=$constructor("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=tt),Mt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{isValidBase64URL(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Jt=$constructor("$ZodE164",(e,t)=>{t.pattern??(t.pattern=nt),Mt.init(e,t)});function isValidJWT(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[a]=n;if(!a)return!1;const o=JSON.parse(atob(a));return(!("typ"in o)||"JWT"===o?.typ)&&(!!o.alg&&(!t||"alg"in o&&o.alg===t))}catch{return!1}}var er=$constructor("$ZodJWT",(e,t)=>{Mt.init(e,t),e._zod.check=n=>{isValidJWT(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),tr=$constructor("$ZodNumber",(e,t)=>{At.init(e,t),e._zod.pattern=e._zod.bag.pattern??st,e._zod.parse=(n,a)=>{if(t.coerce)try{n.value=Number(n.value)}catch(s){}const o=n.value;if("number"==typeof o&&!Number.isNaN(o)&&Number.isFinite(o))return n;const i="number"==typeof o?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),n}}),rr=$constructor("$ZodNumberFormat",(e,t)=>{gt.init(e,t),tr.init(e,t)}),nr=$constructor("$ZodUnknown",(e,t)=>{At.init(e,t),e._zod.parse=e=>e}),ar=$constructor("$ZodNever",(e,t)=>{At.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function handleArrayResult(e,t,n){e.issues.length&&t.issues.push(...prefixIssues(n,e.issues)),t.value[n]=e.value}var or=$constructor("$ZodArray",(e,t)=>{At.init(e,t),e._zod.parse=(n,a)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const i=[];for(let e=0;e<o.length;e++){const s=o[e],l=t.element._zod.run({value:s,issues:[]},a);l instanceof Promise?i.push(l.then(t=>handleArrayResult(t,n,e))):handleArrayResult(l,n,e)}return i.length?Promise.all(i).then(()=>n):n}});function handlePropertyResult(e,t,n,a,o,i){const s=n in a;if(e.issues.length){if(o&&i&&!s)return;t.issues.push(...prefixIssues(n,e.issues))}s||o?void 0===e.value?s&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function normalizeDef(e){const t=Object.keys(e.shape);for(const a of t)if(!e.shape?.[a]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${a}": expected a Zod schema`);const n=optionalKeys(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function handleCatchall(e,t,n,a,o,i){const s=[],l=o.keySet,c=o.catchall._zod,u=c.def.type,d="optional"===c.optin,p="optional"===c.optout;for(const m in t){if("__proto__"===m)continue;if(l.has(m))continue;if("never"===u){s.push(m);continue}const o=c.run({value:t[m],issues:[]},a);o instanceof Promise?e.push(o.then(e=>handlePropertyResult(e,n,m,t,d,p))):handlePropertyResult(o,n,m,t,d,p)}return s.length&&n.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}var ir=$constructor("$ZodObject",(e,t)=>{if(At.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=cached(()=>normalizeDef(t));defineLazy(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const a=e[t]._zod;if(a.values){n[t]??(n[t]=new Set);for(const e of a.values)n[t].add(e)}}return n});const a=isObject,o=t.catchall;let i;e._zod.parse=(t,s)=>{i??(i=n.value);const l=t.value;if(!a(l))return t.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),t;t.value={};const c=[],u=i.shape;for(const e of i.keys){const n=u[e],a="optional"===n._zod.optin,o="optional"===n._zod.optout,i=n._zod.run({value:l[e],issues:[]},s);i instanceof Promise?c.push(i.then(n=>handlePropertyResult(n,t,e,l,a,o))):handlePropertyResult(i,t,e,l,a,o)}return o?handleCatchall(c,l,t,s,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),sr=$constructor("$ZodObjectJIT",(e,t)=>{ir.init(e,t);const n=e._zod.parse,a=cached(()=>normalizeDef(t)),generateFastpass=e=>{const t=new Pt(["shape","payload","ctx"]),n=a.value,parseStr=e=>{const t=esc(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const o=Object.create(null);let i=0;for(const a of n.keys)o[a]="key_"+i++;t.write("const newResult = {};");for(const a of n.keys){const n=o[a],i=esc(a),s=e[a],l="optional"===s?._zod?.optin,c="optional"===s?._zod?.optout;t.write(`const ${n} = ${parseStr(a)};`),l&&c?t.write(`\n if (${n}.issues.length) {\n if (${i} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${n}.value;\n }\n \n `):l?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${i} in input) {\n newResult[${i}] = undefined;\n }\n } else {\n newResult[${i}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${i} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${i}, ...iss.path] : [${i}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${i}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${i}] = undefined;\n } else {\n newResult[${i}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)};let o;const i=isObject,s=!Re.jitless,l=s&&Oe.value,c=t.catchall;let u;e._zod.parse=(d,p)=>{u??(u=a.value);const m=d.value;return i(m)?s&&l&&!1===p?.async&&!0!==p.jitless?(o||(o=generateFastpass(t.shape)),d=o(d,p),c?handleCatchall([],m,d,p,u,e):d):n(d,p):(d.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),d)}});function handleUnionResults(e,t,n,a){for(const i of e)if(0===i.issues.length)return t.value=i.value,t;const o=e.filter(e=>!aborted(e));return 1===o.length?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>finalizeIssue(e,a,config())))}),t)}var lr=$constructor("$ZodUnion",(e,t)=>{At.init(e,t),defineLazy(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),defineLazy(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),defineLazy(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),defineLazy(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>cleanRegex(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(a,o)=>{if(n)return n(a,o);let i=!1;const s=[];for(const e of t.options){const t=e._zod.run({value:a.value,issues:[]},o);if(t instanceof Promise)s.push(t),i=!0;else{if(0===t.issues.length)return t;s.push(t)}}return i?Promise.all(s).then(t=>handleUnionResults(t,a,e,o)):handleUnionResults(s,a,e,o)}}),cr=$constructor("$ZodIntersection",(e,t)=>{At.init(e,t),e._zod.parse=(e,n)=>{const a=e.value,o=t.left._zod.run({value:a,issues:[]},n),i=t.right._zod.run({value:a,issues:[]},n);return o instanceof Promise||i instanceof Promise?Promise.all([o,i]).then(([t,n])=>handleIntersectionResults(e,t,n)):handleIntersectionResults(e,o,i)}});function mergeValues(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(isPlainObject$2(e)&&isPlainObject$2(t)){const n=Object.keys(t),a=Object.keys(e).filter(e=>-1!==n.indexOf(e)),o={...e,...t};for(const i of a){const n=mergeValues(e[i],t[i]);if(!n.valid)return{valid:!1,mergeErrorPath:[i,...n.mergeErrorPath]};o[i]=n.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let a=0;a<e.length;a++){const o=mergeValues(e[a],t[a]);if(!o.valid)return{valid:!1,mergeErrorPath:[a,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function handleIntersectionResults(e,t,n){const a=new Map;let o;for(const l of t.issues)if("unrecognized_keys"===l.code){o??(o=l);for(const e of l.keys)a.has(e)||a.set(e,{}),a.get(e).l=!0}else e.issues.push(l);for(const l of n.issues)if("unrecognized_keys"===l.code)for(const e of l.keys)a.has(e)||a.set(e,{}),a.get(e).r=!0;else e.issues.push(l);const i=[...a].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(i.length&&o&&e.issues.push({...o,keys:i}),aborted(e))return e;const s=mergeValues(t.value,n.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var ur=$constructor("$ZodRecord",(e,t)=>{At.init(e,t),e._zod.parse=(n,a)=>{const o=n.value;if(!isPlainObject$2(o))return n.issues.push({expected:"record",code:"invalid_type",input:o,inst:e}),n;const i=[],s=t.keyType._zod.values;if(s){n.value={};const l=new Set;for(const u of s)if("string"==typeof u||"number"==typeof u||"symbol"==typeof u){l.add("number"==typeof u?u.toString():u);const s=t.keyType._zod.run({value:u,issues:[]},a);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(s.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>finalizeIssue(e,a,config())),input:u,path:[u],inst:e});continue}const c=s.value,d=t.valueType._zod.run({value:o[u],issues:[]},a);d instanceof Promise?i.push(d.then(e=>{e.issues.length&&n.issues.push(...prefixIssues(u,e.issues)),n.value[c]=e.value})):(d.issues.length&&n.issues.push(...prefixIssues(u,d.issues)),n.value[c]=d.value)}let c;for(const e in o)l.has(e)||(c=c??[],c.push(e));c&&c.length>0&&n.issues.push({code:"unrecognized_keys",input:o,inst:e,keys:c})}else{n.value={};for(const s of Reflect.ownKeys(o)){if("__proto__"===s)continue;if(!Object.prototype.propertyIsEnumerable.call(o,s))continue;let l=t.keyType._zod.run({value:s,issues:[]},a);if(l instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof s&&st.test(s)&&l.issues.length){const e=t.keyType._zod.run({value:Number(s),issues:[]},a);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(l=e)}if(l.issues.length){"loose"===t.mode?n.value[s]=o[s]:n.issues.push({code:"invalid_key",origin:"record",issues:l.issues.map(e=>finalizeIssue(e,a,config())),input:s,path:[s],inst:e});continue}const c=t.valueType._zod.run({value:o[s],issues:[]},a);c instanceof Promise?i.push(c.then(e=>{e.issues.length&&n.issues.push(...prefixIssues(s,e.issues)),n.value[l.value]=e.value})):(c.issues.length&&n.issues.push(...prefixIssues(s,c.issues)),n.value[l.value]=c.value)}}return i.length?Promise.all(i).then(()=>n):n}}),dr=$constructor("$ZodEnum",(e,t)=>{At.init(e,t);const n=getEnumValues(t.entries),a=new Set(n);e._zod.values=a,e._zod.pattern=new RegExp(`^(${n.filter(e=>$e.has(typeof e)).map(e=>"string"==typeof e?escapeRegex(e):e.toString()).join("|")})$`),e._zod.parse=(t,o)=>{const i=t.value;return a.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}}),pr=$constructor("$ZodTransform",(e,t)=>{At.init(e,t),e._zod.optin="optional",e._zod.parse=(n,a)=>{if("backward"===a.direction)throw new Ae(e.constructor.name);const o=t.transform(n.value,n);if(a.async)return(o instanceof Promise?o:Promise.resolve(o)).then(e=>(n.value=e,n.fallback=!0,n));if(o instanceof Promise)throw new Te;return n.value=o,n.fallback=!0,n}});function handleOptionalResult(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var mr=$constructor("$ZodOptional",(e,t)=>{At.init(e,t),e._zod.optin="optional",e._zod.optout="optional",defineLazy(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),defineLazy(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${cleanRegex(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const a=e.value,o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>handleOptionalResult(e,a)):handleOptionalResult(o,a)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),fr=$constructor("$ZodExactOptional",(e,t)=>{mr.init(e,t),defineLazy(e._zod,"values",()=>t.innerType._zod.values),defineLazy(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),gr=$constructor("$ZodNullable",(e,t)=>{At.init(e,t),defineLazy(e._zod,"optin",()=>t.innerType._zod.optin),defineLazy(e._zod,"optout",()=>t.innerType._zod.optout),defineLazy(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${cleanRegex(e.source)}|null)$`):void 0}),defineLazy(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),hr=$constructor("$ZodDefault",(e,t)=>{At.init(e,t),e._zod.optin="optional",defineLazy(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const a=t.innerType._zod.run(e,n);return a instanceof Promise?a.then(e=>handleDefaultResult(e,t)):handleDefaultResult(a,t)}});function handleDefaultResult(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var br=$constructor("$ZodPrefault",(e,t)=>{At.init(e,t),e._zod.optin="optional",defineLazy(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),yr=$constructor("$ZodNonOptional",(e,t)=>{At.init(e,t),defineLazy(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,a)=>{const o=t.innerType._zod.run(n,a);return o instanceof Promise?o.then(t=>handleNonOptionalResult(t,e)):handleNonOptionalResult(o,e)}});function handleNonOptionalResult(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var vr=$constructor("$ZodCatch",(e,t)=>{At.init(e,t),e._zod.optin="optional",defineLazy(e._zod,"optout",()=>t.innerType._zod.optout),defineLazy(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const a=t.innerType._zod.run(e,n);return a instanceof Promise?a.then(a=>(e.value=a.value,a.issues.length&&(e.value=t.catchValue({...e,error:{issues:a.issues.map(e=>finalizeIssue(e,n,config()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=a.value,a.issues.length&&(e.value=t.catchValue({...e,error:{issues:a.issues.map(e=>finalizeIssue(e,n,config()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),Sr=$constructor("$ZodPipe",(e,t)=>{At.init(e,t),defineLazy(e._zod,"values",()=>t.in._zod.values),defineLazy(e._zod,"optin",()=>t.in._zod.optin),defineLazy(e._zod,"optout",()=>t.out._zod.optout),defineLazy(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const a=t.out._zod.run(e,n);return a instanceof Promise?a.then(e=>handlePipeResult(e,t.in,n)):handlePipeResult(a,t.in,n)}const a=t.in._zod.run(e,n);return a instanceof Promise?a.then(e=>handlePipeResult(e,t.out,n)):handlePipeResult(a,t.out,n)}});function handlePipeResult(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var xr=$constructor("$ZodReadonly",(e,t)=>{At.init(e,t),defineLazy(e._zod,"propValues",()=>t.innerType._zod.propValues),defineLazy(e._zod,"values",()=>t.innerType._zod.values),defineLazy(e._zod,"optin",()=>t.innerType?._zod?.optin),defineLazy(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const a=t.innerType._zod.run(e,n);return a instanceof Promise?a.then(handleReadonlyResult):handleReadonlyResult(a)}});function handleReadonlyResult(e){return e.value=Object.freeze(e.value),e}var wr,Cr=$constructor("$ZodCustom",(e,t)=>{ut.init(e,t),At.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const a=n.value,o=t.fn(a);if(o instanceof Promise)return o.then(t=>handleRefineResult(t,n,a,e));handleRefineResult(o,n,a,e)}});function handleRefineResult(e,t,n,a){if(!e){const e={code:"custom",input:n,inst:a,path:[...a._zod.def.path??[]],continue:!a._zod.def.abort};a._zod.def.params&&(e.params=a._zod.def.params),t.issues.push(issue(e))}}var kr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const a={...n,...this._map.get(e)};return Object.keys(a).length?a:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function registry(){return new kr}(wr=globalThis).__zod_globalRegistry??(wr.__zod_globalRegistry=registry());var Er=globalThis.__zod_globalRegistry;function _string(e,t){return new e({type:"string",...normalizeParams(t)})}function _email(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...normalizeParams(t)})}function _guid(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...normalizeParams(t)})}function _uuid(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...normalizeParams(t)})}function _uuidv4(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...normalizeParams(t)})}function _uuidv6(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...normalizeParams(t)})}function _uuidv7(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...normalizeParams(t)})}function _url(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...normalizeParams(t)})}function _emoji(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...normalizeParams(t)})}function _nanoid(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...normalizeParams(t)})}function _cuid(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...normalizeParams(t)})}function _cuid2(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...normalizeParams(t)})}function _ulid(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...normalizeParams(t)})}function _xid(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...normalizeParams(t)})}function _ksuid(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...normalizeParams(t)})}function _ipv4(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...normalizeParams(t)})}function _ipv6(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...normalizeParams(t)})}function _cidrv4(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...normalizeParams(t)})}function _cidrv6(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...normalizeParams(t)})}function _base64(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...normalizeParams(t)})}function _base64url(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...normalizeParams(t)})}function _e164(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...normalizeParams(t)})}function _jwt(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...normalizeParams(t)})}function _isoDateTime(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...normalizeParams(t)})}function _isoDate(e,t){return new e({type:"string",format:"date",check:"string_format",...normalizeParams(t)})}function _isoTime(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...normalizeParams(t)})}function _isoDuration(e,t){return new e({type:"string",format:"duration",check:"string_format",...normalizeParams(t)})}function _coercedNumber(e,t){return new e({type:"number",coerce:!0,checks:[],...normalizeParams(t)})}function _int(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...normalizeParams(t)})}function _unknown(e){return new e({type:"unknown"})}function _never(e,t){return new e({type:"never",...normalizeParams(t)})}function _lt(e,t){return new pt({check:"less_than",...normalizeParams(t),value:e,inclusive:!1})}function _lte(e,t){return new pt({check:"less_than",...normalizeParams(t),value:e,inclusive:!0})}function _gt(e,t){return new mt({check:"greater_than",...normalizeParams(t),value:e,inclusive:!1})}function _gte(e,t){return new mt({check:"greater_than",...normalizeParams(t),value:e,inclusive:!0})}function _multipleOf(e,t){return new ft({check:"multiple_of",...normalizeParams(t),value:e})}function _maxLength(e,t){return new ht({check:"max_length",...normalizeParams(t),maximum:e})}function _minLength(e,t){return new bt({check:"min_length",...normalizeParams(t),minimum:e})}function _length(e,t){return new yt({check:"length_equals",...normalizeParams(t),length:e})}function _regex(e,t){return new St({check:"string_format",format:"regex",...normalizeParams(t),pattern:e})}function _lowercase(e){return new xt({check:"string_format",format:"lowercase",...normalizeParams(e)})}function _uppercase(e){return new wt({check:"string_format",format:"uppercase",...normalizeParams(e)})}function _includes(e,t){return new Ct({check:"string_format",format:"includes",...normalizeParams(t),includes:e})}function _startsWith(e,t){return new kt({check:"string_format",format:"starts_with",...normalizeParams(t),prefix:e})}function _endsWith(e,t){return new Et({check:"string_format",format:"ends_with",...normalizeParams(t),suffix:e})}function _overwrite(e){return new _t({check:"overwrite",tx:e})}function _normalize(e){return _overwrite(t=>t.normalize(e))}function _trim(){return _overwrite(e=>e.trim())}function _toLowerCase(){return _overwrite(e=>e.toLowerCase())}function _toUpperCase(){return _overwrite(e=>e.toUpperCase())}function _slugify(){return _overwrite(e=>slugify(e))}function _array(e,t,n){return new e({type:"array",element:t,...normalizeParams(n)})}function _refine(e,t,n){return new e({type:"custom",check:"custom",fn:t,...normalizeParams(n)})}function _superRefine(e,t){const n=_check(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(issue(e,t.value,n._zod.def));else{const a=e;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=t.value),a.inst??(a.inst=n),a.continue??(a.continue=!n._zod.def.abort),t.issues.push(issue(a))}},e(t.value,t)),t);return n}function _check(e,t){const n=new ut({check:"custom",...normalizeParams(t)});return n._zod.check=e,n}function initializeContext(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??Er,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function process(e,t,n={path:[],schemaPath:[]}){var a;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,n.schemaPath.includes(e)&&(i.cycle=n.path),i.schema;const s={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,s);const l=e._zod.toJSONSchema?.();if(l)s.schema=l;else{const a={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,a);else{const n=s.schema,i=t.processors[o.type];if(!i)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);i(e,t,n,a)}const i=e._zod.parent;i&&(s.ref||(s.ref=i),process(i,t,a),t.seen.get(i).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(s.schema,c),"input"===t.io&&isTransforming(e)&&(delete s.schema.examples,delete s.schema.default),"input"===t.io&&"_prefault"in s.schema&&((a=s.schema).default??(a.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function extractDefs(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const a=new Map;for(const o of e.seen.entries()){const t=e.metadataRegistry.get(o[0])?.id;if(t){const e=a.get(t);if(e&&e!==o[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);a.set(t,o[0])}}const makeURI=t=>{const a="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,o=e.external.uri??(e=>e);if(n)return{ref:o(n)};const i=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=i,{defId:i,ref:`${o("__shared")}#/${a}/${i}`}}if(t[1]===n)return{ref:"#"};const o=`#/${a}/`,i=t[1].schema.id??"__schema"+e.counter++;return{defId:i,ref:o+i}},extractToDef=e=>{if(e[1].schema.$ref)return;const t=e[1],{ref:n,defId:a}=makeURI(e);t.def={...t.schema},a&&(t.defId=a);const o=t.schema;for(const i in o)delete o[i];o.$ref=n};if("throw"===e.cycles)for(const o of e.seen.entries()){const e=o[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const n=o[1];if(t!==o[0]){if(e.external){const n=e.external.registry.get(o[0])?.id;if(t!==o[0]&&n){extractToDef(o);continue}}(e.metadataRegistry.get(o[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&extractToDef(o)}else extractToDef(o)}}function finalize$1(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const flattenRef=t=>{const n=e.seen.get(t);if(null===n.ref)return;const a=n.def??n.schema,o={...a},i=n.ref;if(n.ref=null,i){flattenRef(i);const n=e.seen.get(i),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(a,s):(a.allOf=a.allOf??[],a.allOf.push(s)),Object.assign(a,o),t._zod.parent===i)for(const e in a)"$ref"!==e&&"allOf"!==e&&(e in o||delete a[e]);if(s.$ref&&n.def)for(const e in a)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(a[e])===JSON.stringify(n.def[e])&&delete a[e]}const s=t._zod.parent;if(s&&s!==i){flattenRef(s);const t=e.seen.get(s);if(t?.schema.$ref&&(a.$ref=t.schema.$ref,t.def))for(const e in a)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(a[e])===JSON.stringify(t.def[e])&&delete a[e]}e.override({zodSchema:t,jsonSchema:a,path:n.path??[]})};for(const l of[...e.seen.entries()].reverse())flattenRef(l[0]);const a={};if("draft-2020-12"===e.target?a.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?a.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?a.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");a.$id=e.external.uri(n)}Object.assign(a,n.def??n.schema);const o=e.metadataRegistry.get(t)?.id;void 0!==o&&a.id===o&&delete a.id;const i=e.external?.defs??{};for(const l of e.seen.entries()){const e=l[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,i[e.defId]=e.def)}e.external||Object.keys(i).length>0&&("draft-2020-12"===e.target?a.$defs=i:a.definitions=i);try{const n=JSON.parse(JSON.stringify(a));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:createStandardJSONSchemaMethod(t,"input",e.processors),output:createStandardJSONSchemaMethod(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function isTransforming(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const a=e._zod.def;if("transform"===a.type)return!0;if("array"===a.type)return isTransforming(a.element,n);if("set"===a.type)return isTransforming(a.valueType,n);if("lazy"===a.type)return isTransforming(a.getter(),n);if("promise"===a.type||"optional"===a.type||"nonoptional"===a.type||"nullable"===a.type||"readonly"===a.type||"default"===a.type||"prefault"===a.type)return isTransforming(a.innerType,n);if("intersection"===a.type)return isTransforming(a.left,n)||isTransforming(a.right,n);if("record"===a.type||"map"===a.type)return isTransforming(a.keyType,n)||isTransforming(a.valueType,n);if("pipe"===a.type)return!!e._zod.traits.has("$ZodCodec")||(isTransforming(a.in,n)||isTransforming(a.out,n));if("object"===a.type){for(const e in a.shape)if(isTransforming(a.shape[e],n))return!0;return!1}if("union"===a.type){for(const e of a.options)if(isTransforming(e,n))return!0;return!1}if("tuple"===a.type){for(const e of a.items)if(isTransforming(e,n))return!0;return!(!a.rest||!isTransforming(a.rest,n))}return!1}var createToJSONSchemaMethod=(e,t={})=>n=>{const a=initializeContext({...n,processors:t});return process(e,a),extractDefs(a,e),finalize$1(a,e)},createStandardJSONSchemaMethod=(e,t,n={})=>a=>{const{libraryOptions:o,target:i}=a??{},s=initializeContext({...o??{},target:i,io:t,processors:n});return process(e,s),extractDefs(s,e),finalize$1(s,e)},_r={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},stringProcessor=(e,t,n,a)=>{const o=n;o.type="string";const{minimum:i,maximum:s,format:l,patterns:c,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(o.minLength=i),"number"==typeof s&&(o.maxLength=s),l&&(o.format=_r[l]??l,""===o.format&&delete o.format,"time"===l&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const e=[...c];1===e.length?o.pattern=e[0].source:e.length>1&&(o.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}},numberProcessor=(e,t,n,a)=>{const o=n,{minimum:i,maximum:s,format:l,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:d}=e._zod.bag;"string"==typeof l&&l.includes("int")?o.type="integer":o.type="number";const p="number"==typeof d&&d>=(i??Number.NEGATIVE_INFINITY),m="number"==typeof u&&u<=(s??Number.POSITIVE_INFINITY),g="draft-04"===t.target||"openapi-3.0"===t.target;p?g?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d:"number"==typeof i&&(o.minimum=i),m?g?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:"number"==typeof s&&(o.maximum=s),"number"==typeof c&&(o.multipleOf=c)},neverProcessor=(e,t,n,a)=>{n.not={}},unknownProcessor=(e,t,n,a)=>{},enumProcessor=(e,t,n,a)=>{const o=getEnumValues(e._zod.def.entries);o.every(e=>"number"==typeof e)&&(n.type="number"),o.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=o},customProcessor=(e,t,n,a)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")},transformProcessor=(e,t,n,a)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")},arrayProcessor=(e,t,n,a)=>{const o=n,i=e._zod.def,{minimum:s,maximum:l}=e._zod.bag;"number"==typeof s&&(o.minItems=s),"number"==typeof l&&(o.maxItems=l),o.type="array",o.items=process(i.element,t,{...a,path:[...a.path,"items"]})},objectProcessor=(e,t,n,a)=>{const o=n,i=e._zod.def;o.type="object",o.properties={};const s=i.shape;for(const u in s)o.properties[u]=process(s[u],t,{...a,path:[...a.path,"properties",u]});const l=new Set(Object.keys(s)),c=new Set([...l].filter(e=>{const n=i.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));c.size>0&&(o.required=Array.from(c)),"never"===i.catchall?._zod.def.type?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=process(i.catchall,t,{...a,path:[...a.path,"additionalProperties"]})):"output"===t.io&&(o.additionalProperties=!1)},unionProcessor=(e,t,n,a)=>{const o=e._zod.def,i=!1===o.inclusive,s=o.options.map((e,n)=>process(e,t,{...a,path:[...a.path,i?"oneOf":"anyOf",n]}));i?n.oneOf=s:n.anyOf=s},intersectionProcessor=(e,t,n,a)=>{const o=e._zod.def,i=process(o.left,t,{...a,path:[...a.path,"allOf",0]}),s=process(o.right,t,{...a,path:[...a.path,"allOf",1]}),isSimpleIntersection=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...isSimpleIntersection(i)?i.allOf:[i],...isSimpleIntersection(s)?s.allOf:[s]]},recordProcessor=(e,t,n,a)=>{const o=n,i=e._zod.def;o.type="object";const s=i.keyType,l=s._zod.bag?.patterns;if("loose"===i.mode&&l&&l.size>0){const e=process(i.valueType,t,{...a,path:[...a.path,"patternProperties","*"]});o.patternProperties={};for(const t of l)o.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(o.propertyNames=process(i.keyType,t,{...a,path:[...a.path,"propertyNames"]})),o.additionalProperties=process(i.valueType,t,{...a,path:[...a.path,"additionalProperties"]});const c=s._zod.values;if(c){const e=[...c].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(o.required=e)}},nullableProcessor=(e,t,n,a)=>{const o=e._zod.def,i=process(o.innerType,t,a),s=t.seen.get(e);"openapi-3.0"===t.target?(s.ref=o.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]},nonoptionalProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType},defaultProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},prefaultProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},catchProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);let i;t.seen.get(e).ref=o.innerType;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},pipeProcessor=(e,t,n,a)=>{const o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s="input"===t.io?i?o.out:o.in:o.out;process(s,t,a);t.seen.get(e).ref=s},readonlyProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType,n.readOnly=!0},optionalProcessor=(e,t,n,a)=>{const o=e._zod.def;process(o.innerType,t,a);t.seen.get(e).ref=o.innerType},Pr=$constructor("ZodISODateTime",(e,t)=>{Ut.init(e,t),Yr.init(e,t)});function datetime(e){return _isoDateTime(Pr,e)}var Tr=$constructor("ZodISODate",(e,t)=>{Vt.init(e,t),Yr.init(e,t)});function date(e){return _isoDate(Tr,e)}var Ar=$constructor("ZodISOTime",(e,t)=>{Ht.init(e,t),Yr.init(e,t)});function time(e){return _isoTime(Ar,e)}var Rr=$constructor("ZodISODuration",(e,t)=>{Wt.init(e,t),Yr.init(e,t)});function duration$1(e){return _isoDuration(Rr,e)}var initializer=(e,t)=>{Ne.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>formatError(e,t)},flatten:{value:t=>flattenError(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,jsonStringifyReplacer,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,jsonStringifyReplacer,2)}},isEmpty:{get:()=>0===e.issues.length}})},Mr=$constructor("ZodError",initializer,{Parent:Error}),Dr=_parse(Mr),Or=_parseAsync(Mr),$r=_safeParse(Mr),Ir=_safeParseAsync(Mr),Nr=_encode(Mr),zr=_decode(Mr),Lr=_encodeAsync(Mr),jr=_decodeAsync(Mr),Br=_safeEncode(Mr),Fr=_safeDecode(Mr),qr=_safeEncodeAsync(Mr),Ur=_safeDecodeAsync(Mr),Vr=new WeakMap;function _installLazyMethods(e,t,n){const a=Object.getPrototypeOf(e);let o=Vr.get(a);if(o||(o=new Set,Vr.set(a,o)),!o.has(t)){o.add(t);for(const e in n){const t=n[e];Object.defineProperty(a,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var Hr=$constructor("ZodType",(e,t)=>(At.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:createStandardJSONSchemaMethod(e,"input"),output:createStandardJSONSchemaMethod(e,"output")}}),e.toJSONSchema=createToJSONSchemaMethod(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Dr(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>$r(e,t,n),e.parseAsync=async(t,n)=>Or(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Ir(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Nr(e,t,n),e.decode=(t,n)=>zr(e,t,n),e.encodeAsync=async(t,n)=>Lr(e,t,n),e.decodeAsync=async(t,n)=>jr(e,t,n),e.safeEncode=(t,n)=>Br(e,t,n),e.safeDecode=(t,n)=>Fr(e,t,n),e.safeEncodeAsync=async(t,n)=>qr(e,t,n),e.safeDecodeAsync=async(t,n)=>Ur(e,t,n),_installLazyMethods(e,"ZodType",{check(...e){const t=this.def;return this.clone(mergeDefs(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return clone$1(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(refine(e,t))},superRefine(e,t){return this.check(superRefine(e,t))},overwrite(e){return this.check(_overwrite(e))},optional(){return optional(this)},exactOptional(){return exactOptional(this)},nullable(){return nullable(this)},nullish(){return optional(nullable(this))},nonoptional(e){return nonoptional(this,e)},array(){return array(this)},or(e){return union([this,e])},and(e){return intersection(this,e)},transform(e){return pipe(this,transform(e))},default(e){return _default(this,e)},prefault(e){return prefault(this,e)},catch(e){return _catch(this,e)},pipe(e){return pipe(this,e)},readonly(){return readonly(this)},describe(e){const t=this.clone();return Er.add(t,{description:e}),t},meta(...e){if(0===e.length)return Er.get(this);const t=this.clone();return Er.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>Er.get(e)?.description,configurable:!0}),e)),Wr=$constructor("_ZodString",(e,t)=>{Rt.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>stringProcessor(e,t,n,a);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,_installLazyMethods(e,"_ZodString",{regex(...e){return this.check(_regex(...e))},includes(...e){return this.check(_includes(...e))},startsWith(...e){return this.check(_startsWith(...e))},endsWith(...e){return this.check(_endsWith(...e))},min(...e){return this.check(_minLength(...e))},max(...e){return this.check(_maxLength(...e))},length(...e){return this.check(_length(...e))},nonempty(...e){return this.check(_minLength(1,...e))},lowercase(e){return this.check(_lowercase(e))},uppercase(e){return this.check(_uppercase(e))},trim(){return this.check(_trim())},normalize(...e){return this.check(_normalize(...e))},toLowerCase(){return this.check(_toLowerCase())},toUpperCase(){return this.check(_toUpperCase())},slugify(){return this.check(_slugify())}})}),Gr=$constructor("ZodString",(e,t)=>{Rt.init(e,t),Wr.init(e,t),e.email=t=>e.check(_email(Kr,t)),e.url=t=>e.check(_url(Xr,t)),e.jwt=t=>e.check(_jwt(hn,t)),e.emoji=t=>e.check(_emoji(Jr,t)),e.guid=t=>e.check(_guid(Qr,t)),e.uuid=t=>e.check(_uuid(Zr,t)),e.uuidv4=t=>e.check(_uuidv4(Zr,t)),e.uuidv6=t=>e.check(_uuidv6(Zr,t)),e.uuidv7=t=>e.check(_uuidv7(Zr,t)),e.nanoid=t=>e.check(_nanoid(en,t)),e.guid=t=>e.check(_guid(Qr,t)),e.cuid=t=>e.check(_cuid(tn,t)),e.cuid2=t=>e.check(_cuid2(rn,t)),e.ulid=t=>e.check(_ulid(nn,t)),e.base64=t=>e.check(_base64(pn,t)),e.base64url=t=>e.check(_base64url(mn,t)),e.xid=t=>e.check(_xid(an,t)),e.ksuid=t=>e.check(_ksuid(sn,t)),e.ipv4=t=>e.check(_ipv4(ln,t)),e.ipv6=t=>e.check(_ipv6(cn,t)),e.cidrv4=t=>e.check(_cidrv4(un,t)),e.cidrv6=t=>e.check(_cidrv6(dn,t)),e.e164=t=>e.check(_e164(gn,t)),e.datetime=t=>e.check(datetime(t)),e.date=t=>e.check(date(t)),e.time=t=>e.check(time(t)),e.duration=t=>e.check(duration$1(t))});function string(e){return _string(Gr,e)}var Yr=$constructor("ZodStringFormat",(e,t)=>{Mt.init(e,t),Wr.init(e,t)}),Kr=$constructor("ZodEmail",(e,t)=>{$t.init(e,t),Yr.init(e,t)}),Qr=$constructor("ZodGUID",(e,t)=>{Dt.init(e,t),Yr.init(e,t)}),Zr=$constructor("ZodUUID",(e,t)=>{Ot.init(e,t),Yr.init(e,t)}),Xr=$constructor("ZodURL",(e,t)=>{It.init(e,t),Yr.init(e,t)}),Jr=$constructor("ZodEmoji",(e,t)=>{Nt.init(e,t),Yr.init(e,t)}),en=$constructor("ZodNanoID",(e,t)=>{zt.init(e,t),Yr.init(e,t)}),tn=$constructor("ZodCUID",(e,t)=>{Lt.init(e,t),Yr.init(e,t)}),rn=$constructor("ZodCUID2",(e,t)=>{jt.init(e,t),Yr.init(e,t)}),nn=$constructor("ZodULID",(e,t)=>{Bt.init(e,t),Yr.init(e,t)}),an=$constructor("ZodXID",(e,t)=>{Ft.init(e,t),Yr.init(e,t)}),sn=$constructor("ZodKSUID",(e,t)=>{qt.init(e,t),Yr.init(e,t)}),ln=$constructor("ZodIPv4",(e,t)=>{Gt.init(e,t),Yr.init(e,t)}),cn=$constructor("ZodIPv6",(e,t)=>{Yt.init(e,t),Yr.init(e,t)}),un=$constructor("ZodCIDRv4",(e,t)=>{Kt.init(e,t),Yr.init(e,t)}),dn=$constructor("ZodCIDRv6",(e,t)=>{Qt.init(e,t),Yr.init(e,t)}),pn=$constructor("ZodBase64",(e,t)=>{Zt.init(e,t),Yr.init(e,t)}),mn=$constructor("ZodBase64URL",(e,t)=>{Xt.init(e,t),Yr.init(e,t)}),gn=$constructor("ZodE164",(e,t)=>{Jt.init(e,t),Yr.init(e,t)}),hn=$constructor("ZodJWT",(e,t)=>{er.init(e,t),Yr.init(e,t)}),bn=$constructor("ZodNumber",(e,t)=>{tr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>numberProcessor(e,t,n,a),_installLazyMethods(e,"ZodNumber",{gt(e,t){return this.check(_gt(e,t))},gte(e,t){return this.check(_gte(e,t))},min(e,t){return this.check(_gte(e,t))},lt(e,t){return this.check(_lt(e,t))},lte(e,t){return this.check(_lte(e,t))},max(e,t){return this.check(_lte(e,t))},int(e){return this.check(int(e))},safe(e){return this.check(int(e))},positive(e){return this.check(_gt(0,e))},nonnegative(e){return this.check(_gte(0,e))},negative(e){return this.check(_lt(0,e))},nonpositive(e){return this.check(_lte(0,e))},multipleOf(e,t){return this.check(_multipleOf(e,t))},step(e,t){return this.check(_multipleOf(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null}),yn=$constructor("ZodNumberFormat",(e,t)=>{rr.init(e,t),bn.init(e,t)});function int(e){return _int(yn,e)}var vn=$constructor("ZodUnknown",(e,t)=>{nr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>unknownProcessor(e,t,n,a)});function unknown(){return _unknown(vn)}var Sn=$constructor("ZodNever",(e,t)=>{ar.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>neverProcessor(e,t,n,a)});function never(e){return _never(Sn,e)}var xn=$constructor("ZodArray",(e,t)=>{or.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>arrayProcessor(e,t,n,a),e.element=t.element,_installLazyMethods(e,"ZodArray",{min(e,t){return this.check(_minLength(e,t))},nonempty(e){return this.check(_minLength(1,e))},max(e,t){return this.check(_maxLength(e,t))},length(e,t){return this.check(_length(e,t))},unwrap(){return this.element}})});function array(e,t){return _array(xn,e,t)}var wn=$constructor("ZodObject",(e,t)=>{sr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>objectProcessor(e,t,n,a),defineLazy(e,"shape",()=>t.shape),_installLazyMethods(e,"ZodObject",{keyof(){return _enum(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:unknown()})},loose(){return this.clone({...this._zod.def,catchall:unknown()})},strict(){return this.clone({...this._zod.def,catchall:never()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return extend(this,e)},safeExtend(e){return safeExtend(this,e)},merge(e){return merge(this,e)},pick(e){return pick(this,e)},omit(e){return omit(this,e)},partial(...e){return partial(Tn,this,e[0])},required(...e){return required(On,this,e[0])}})});function object(e,t){return new wn({type:"object",shape:e??{},...normalizeParams(t)})}var Cn=$constructor("ZodUnion",(e,t)=>{lr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>unionProcessor(e,t,n,a),e.options=t.options});function union(e,t){return new Cn({type:"union",options:e,...normalizeParams(t)})}var kn=$constructor("ZodIntersection",(e,t)=>{cr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>intersectionProcessor(e,t,n,a)});function intersection(e,t){return new kn({type:"intersection",left:e,right:t})}var En=$constructor("ZodRecord",(e,t)=>{ur.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>recordProcessor(e,t,n,a),e.keyType=t.keyType,e.valueType=t.valueType});function record(e,t,n){return t&&t._zod?new En({type:"record",keyType:e,valueType:t,...normalizeParams(n)}):new En({type:"record",keyType:string(),valueType:e,...normalizeParams(t)})}var _n=$constructor("ZodEnum",(e,t)=>{dr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>enumProcessor(e,t,n,a),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,a)=>{const o={};for(const i of e){if(!n.has(i))throw new Error(`Key ${i} not found in enum`);o[i]=t.entries[i]}return new _n({...t,checks:[],...normalizeParams(a),entries:o})},e.exclude=(e,a)=>{const o={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete o[t]}return new _n({...t,checks:[],...normalizeParams(a),entries:o})}});function _enum(e,t){return new _n({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...normalizeParams(t)})}var Pn=$constructor("ZodTransform",(e,t)=>{pr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>transformProcessor(e,t,n,a),e._zod.parse=(n,a)=>{if("backward"===a.direction)throw new Ae(e.constructor.name);n.addIssue=a=>{if("string"==typeof a)n.issues.push(issue(a,n.value,t));else{const t=a;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(issue(t))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=o,n.fallback=!0,n)}});function transform(e){return new Pn({type:"transform",transform:e})}var Tn=$constructor("ZodOptional",(e,t)=>{mr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>optionalProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function optional(e){return new Tn({type:"optional",innerType:e})}var An=$constructor("ZodExactOptional",(e,t)=>{fr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>optionalProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function exactOptional(e){return new An({type:"optional",innerType:e})}var Rn=$constructor("ZodNullable",(e,t)=>{gr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>nullableProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function nullable(e){return new Rn({type:"nullable",innerType:e})}var Mn=$constructor("ZodDefault",(e,t)=>{hr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>defaultProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function _default(e,t){return new Mn({type:"default",innerType:e,get defaultValue(){return"function"==typeof t?t():shallowClone(t)}})}var Dn=$constructor("ZodPrefault",(e,t)=>{br.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>prefaultProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function prefault(e,t){return new Dn({type:"prefault",innerType:e,get defaultValue(){return"function"==typeof t?t():shallowClone(t)}})}var On=$constructor("ZodNonOptional",(e,t)=>{yr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>nonoptionalProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function nonoptional(e,t){return new On({type:"nonoptional",innerType:e,...normalizeParams(t)})}var $n=$constructor("ZodCatch",(e,t)=>{vr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>catchProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function _catch(e,t){return new $n({type:"catch",innerType:e,catchValue:"function"==typeof t?t:()=>t})}var In=$constructor("ZodPipe",(e,t)=>{Sr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>pipeProcessor(e,t,n,a),e.in=t.in,e.out=t.out});function pipe(e,t){return new In({type:"pipe",in:e,out:t})}var Nn=$constructor("ZodReadonly",(e,t)=>{xr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>readonlyProcessor(e,t,n,a),e.unwrap=()=>e._zod.def.innerType});function readonly(e){return new Nn({type:"readonly",innerType:e})}var zn=$constructor("ZodCustom",(e,t)=>{Cr.init(e,t),Hr.init(e,t),e._zod.processJSONSchema=(t,n,a)=>customProcessor(e,t,n,a)});function refine(e,t={}){return _refine(zn,e,t)}function superRefine(e,t){return _superRefine(e,t)}function number(e){return _coercedNumber(bn,e)}var isRecord$1=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),isSupportedPersistenceSchemaVersion=e=>2===Number(e),createEmptyPersistenceSnapshot=()=>({schemaVersion:2,systemSettings:{},affSettings:{defaults:{}},defSettings:{defaults:{},static:{}},cacheSettings:{precache:{}}}),Ln=record(string(),unknown()).catch(()=>({})),jn=object({schemaVersion:number().refine(isSupportedPersistenceSchemaVersion),systemSettings:Ln,affSettings:object({defaults:Ln}).catch(()=>({defaults:{}})),defSettings:object({defaults:Ln,static:Ln}).catch(()=>({defaults:{},static:{}})),cacheSettings:object({precache:Ln}).catch(()=>({precache:{}}))}),normalizePersistenceSnapshot=(e,{assumeCurrentVersion:t=!1}={})=>{const n=t&&isRecord$1(e)&&null==e.schemaVersion?{...e,schemaVersion:2}:e,a=jn.safeParse(n);return a.success?a.data:createEmptyPersistenceSnapshot()},createRuntimePersistenceApi=({persistence:e,systemModel:t,affModel:n,defModel:a,cacheModel:o,serverside:i,syncDebugMode:s,markDirty:l})=>{const c=0,u=26,d={hasStoredSnapshot:!1,sourceKey:e?.key||"nexSys4Settings"},sanitizeSystemSettings=(e={})=>{const{customPromptEnabled:t,prompt:n,...a}=e||{},o=normalizeCommandSeparator(a.commandSeparator);return o?a.commandSeparator=o:delete a.commandSeparator,a},normalizePersistedDefPriority=e=>{const t=Number(e);return Number.isInteger(t)?t<c?c:t>u?u:t:c},buildAffDefaultMap=()=>n.list().reduce((e,t)=>(e[t]=n.getDefaultPriority(t),e),{}),countablePriorityNameSet=()=>new Set(n.getCountablePriorityNames?.()||[]),buildDefDefaultMap=()=>Object.entries(a.getDefaultPriorities()).reduce((e,[t,n])=>(e[t]=normalizePersistedDefPriority(n),e),{}),buildDefStaticOverrideMap=()=>({...a.getStaticOverrides?.()||{}}),buildCacheDefaultSnapshot=()=>o.getDesiredPrecache(),isValidServersideAffPriority=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=26},normalizeStoredAffDefaults=(e={})=>{const t=countablePriorityNameSet();return Object.entries(e).reduce((e,[a,o])=>{const i="function"==typeof n.normalizePriorityName?n.normalizePriorityName(a):String(a||"").trim().toLowerCase();if(!i)return e;if(t.has(i))return e;const s=n.getDefaultPriority(i);return isValidServersideAffPriority(s)&&!isValidServersideAffPriority(o)?(e[i]=s,e):(e[i]=o,e)},{})},normalizeStoredDefPriorities=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=normalizePersistedDefPriority(n),e),{}),normalizeStoredDefStatics=(e={})=>Object.entries(e).reduce((e,[t,n])=>(!0!==n&&!1!==n||(e[t]=n),e),{}),buildPersistenceSnapshot=()=>({schemaVersion:2,systemSettings:sanitizeSystemSettings(t.getSettings()),affSettings:{defaults:buildAffDefaultMap()},defSettings:{defaults:buildDefDefaultMap(),static:buildDefStaticOverrideMap()},cacheSettings:{precache:buildCacheDefaultSnapshot()}}),applyStoredSnapshot=(e={})=>{const l=sanitizeSystemSettings(e.systemSettings||{});t.setSettings(l,{setBaseline:!0}),t.setBaselineIntent({ss:l.ss||{}});const c=e.affSettings?.defaults;c&&Object.entries(normalizeStoredAffDefaults(c)).forEach(([e,t])=>{n.setDefaultPriority(e,t,"persistence")});const u=normalizeStoredDefStatics(e.defSettings?.static);Object.entries(u).forEach(([e,t])=>{a.setStatic(e,t,"persistence")});const d=normalizeStoredDefPriorities(e.defSettings?.defaults);Object.entries(d).forEach(([e,t])=>{a.setDefaultPriority(e,t,"persistence")}),e.cacheSettings?.precache&&o.setDesiredPrecache(e.cacheSettings.precache),i.setBaselineFromRuntime(),s()},loadStoredSnapshot=()=>"function"==typeof e.read?e.read():{key:e?.key||"nexSys4Settings",exists:!1,snapshot:e.load()};return{buildPersistenceSnapshot,loadPersistence(){const{key:t,exists:n,snapshot:a}=loadStoredSnapshot();return d.hasStoredSnapshot=Boolean(n),d.sourceKey=t||e?.key||"nexSys4Settings",applyStoredSnapshot(a),{key:d.sourceKey,exists:d.hasStoredSnapshot,snapshot:a}},seedBaselineFromObservedStartup(){if(d.hasStoredSnapshot)return!1;const e=i.getObserved?.()||{},o=sanitizeSystemSettings({ss:e.settings||{}});Object.keys(o).length&&t.setSettings(o,{setBaseline:!0});const l=countablePriorityNameSet();return Object.entries(e.affPriorities||{}).forEach(([e,t])=>{l.has(String(e||"").toLowerCase())||isValidServersideAffPriority(t)&&n.setDefaultPriority(e,t,"startup-observed-baseline")}),Object.entries(e.defPriorities||{}).forEach(([e,t])=>{a.get(e)&&a.setDefaultPriority(e,normalizePersistedDefPriority(t),"startup-observed-baseline")}),i.setBaselineFromRuntime(),s(),!0},savePersistence(){const t=buildPersistenceSnapshot();return e.save(t),i.setBaselineFromRuntime(),l("persistence-save"),t}}},evaluateBlockCondition=(e,t)=>Array.isArray(e)?e.every(e=>t(e)):t(e),isBlocked=(e=[],t)=>e.some(e=>evaluateBlockCondition(e,t)),isActiveDefensePriority=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=25},createDefensePlanner=({defModel:e,balanceModel:t,affModel:n,systemModel:a})=>{const plan=({includeStaticIds:o=[]}={})=>{const i=a.getClass(),s=new Set(o),l=e.list().map(t=>e.get(t)).filter(Boolean).map(t=>({entry:t,priority:e.getPriority(t.id)})).sort((e,t)=>e.priority!==t.priority?e.priority-t.priority:e.entry.order-t.entry.order),c=new Set,u={serverside:[],client:[]};return l.forEach(({entry:a,priority:o})=>{if(!isActiveDefensePriority(o)||c.has(a.id)||a.have)return;if(!e.isAvailableForClass(a.id,i))return;if(a.static&&!s.has(a.id))return;if(isBlocked(a.blocks,e=>n.haveAff(e)))return;if(!a.bals_req.every(e=>t.have(e)))return;a.opps.forEach(e=>c.add(e));const l=a.serverside?u.serverside:u.client;a.command.forEach(e=>{l.push({source:"defense",defense:a.id,command:e,prio:o,serverside:a.serverside,preempt:a.preempt,static:a.static})})}),{serverside:u.serverside,client:u.client,all:[...u.serverside,...u.client]}};return{plan}},dedupeCommandIntents=(e=[])=>{const t=new Map,n=[];return e.forEach(e=>{const a=e?.command,o=t.get(a);if(o)return void(!0===e?.requiresCompletion&&(o.requiresCompletion=!0));const i={...e};t.set(a,i),n.push(i)}),n},createOutputPlanner=({systemModel:e,serverside:t,defensePlanner:n,precachePlanner:a})=>({plan({source:o="prompt",injectedCommands:i=[],suppressedServersideCommands:s=[]}={}){const l=e.getRuntime(),c=t.evaluate({emitCommands:!1,source:o}),u=s.length?c.commands.filter(e=>!s.includes(e)):c.commands,d=t.getStaticDefRequests(),p=[];n.plan({includeStaticIds:Object.keys(d)}).client.forEach(e=>p.push(e)),l.slowMode||l.aeonLocked||a.plan().forEach(e=>p.push(e)),u.forEach(e=>{p.push({source:"serverside",command:e,requiresCompletion:!0})}),i.forEach(e=>{p.push({source:"injected",command:e})});const m=dedupeCommandIntents(p);return{intents:m,commands:m.map(e=>e.command),serversideCommands:u}}}),createPrecachePlanner=({cacheModel:e})=>({plan:()=>e.getPrecacheCommands().map(e=>({source:"precache",command:e,requiresCompletion:!0}))}),createQueueState=()=>Object.entries($).reduce((e,[t,n])=>(e[t]={...deepClone$1(n),id:t,items:[],prepend:[],pending:!1,lastSignature:"",deferred:!1},e),{}),splitCommandValue=(e,t="|")=>{const n=String(t||"|")||"|";return String(e).split(n).map(e=>e.trim()).filter(Boolean)},normalizeCommands=(e,t="|")=>e?Array.isArray(e)?e.flatMap(e=>null==e?[]:splitCommandValue(e,t)).filter(Boolean):splitCommandValue(e,t):[],hasQueuedItems=e=>e.items.length>0||e.prepend.length>0,buildLogicalCommands=e=>[`echo SystemEvent ${e.name}QueueFired`,...e.pre,...e.prepend,...e.items,...e.post].filter(Boolean),clearQueueState=e=>{e.items=[],e.prepend=[],e.pending=!1,e.lastSignature="",e.deferred=!1},resolveQueueId=(e,t)=>{if(e[t])return t;const n=String(t||"").replace(/QueueFired$/i,"").toLowerCase();return Object.keys(e).find(t=>{const a=e[t];return a.name.toLowerCase()===n||a.type.toLowerCase()===n})||null},hasLocalQueueState=(e={})=>(e.items||[]).length>0||(e.prepend||[]).length>0||e.pending||e.deferred||Boolean(e.lastSignature),clearLocalQueueState=e=>{if(!e)return!1;const t=hasLocalQueueState(e);return clearQueueState(e),t},markQueueDeferred=e=>{if(!e)return!1;const t=!e.deferred||!e.pending;return e.deferred=!0,e.pending=!0,t},markQueueAwaitingAck=(e,t)=>{if(!e)return!1;const n=e.lastSignature!==t||!0!==e.pending||!1!==e.deferred;return e.lastSignature=t,e.pending=!0,e.deferred=!1,n},createQueueMutationApi=({state:e,emit:t,flush:n,getSeparator:a,markStateChanged:o=()=>{}})=>{const resolveSeparator=()=>("function"==typeof a?a():"|")||"|",haveSameCommands=(e=[],t=[])=>e.length===t.length&&e.every((e,n)=>e===t[n]),clear=(n,a={})=>{const i=e[n];return!!i&&(!!clearLocalQueueState(i)&&(o(n),t("QueueCleared",{queueId:n,remote:Boolean(a.remote),command:a.command||null}),!0))};return{add(a,i,s={}){const l=e[a];if(!l)return!1;const c=normalizeCommands(i,resolveSeparator());if(!c.length)return!1;let u=!1;return c.forEach(e=>{l.items.includes(e)&&!s.allowDuplicate||(l.items.push(e),u=!0)}),!!u&&(o(a),t("QueueUpdated",{queueId:a,queue:deepClone$1(l)}),!1!==s.autoFlush&&n(a),!0)},prepend(a,i,s={}){const l=e[a];if(!l)return!1;const c=normalizeCommands(i,resolveSeparator());if(!c.length)return!1;let u=!1;for(let e=c.length-1;e>=0;e-=1){const t=c[e];l.prepend.includes(t)&&!s.allowDuplicate||(l.prepend.unshift(t),u=!0)}return!!u&&(o(a),t("QueueUpdated",{queueId:a,queue:deepClone$1(l)}),!1!==s.autoFlush&&n(a),!0)},clear,setPreCommands(n,a=[]){const i=e[n];if(!i)return!1;const s=normalizeCommands(a,resolveSeparator());return!haveSameCommands(i.pre,s)&&(i.pre=s,o(n),t("QueueUpdated",{queueId:n,queue:deepClone$1(i)}),!0)},setPostCommands(n,a=[]){const i=e[n];if(!i)return!1;const s=normalizeCommands(a,resolveSeparator());return!haveSameCommands(i.post,s)&&(i.post=s,o(n),t("QueueUpdated",{queueId:n,queue:deepClone$1(i)}),!0)}}},chunkCommands=(e=[],t=20)=>{const n=Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)],a=Math.max(1,Number(t||20)),o=[];for(let i=0;i<n.length;i+=a)o.push(n.slice(i,i+a));return o},chunkCommandsWithTrailing=(e=[],{maxEntries:t=20,trailing:n=[]}={})=>{const a=chunkCommands(e,t),o=chunkCommands(n,t).flat();if(!o.length)return a;if(!a.length)return chunkCommands(o,t);const i=a[a.length-1];return i.length+o.length<=Math.max(1,Number(t||20))?(i.push(...o),a):[...a,...chunkCommands(o,t)]},createQueueFlushApi=({state:e,emit:t,send:n,getRuntimeState:a,getSeparator:o,maxEntriesPerSubmission:i,onQueueFired:s,markStateChanged:l=()=>{}})=>{const buildRemoteClearCommand=e=>`clearqueue ${e.type}`,buildStackPlan=(e=[])=>({type:"stackPlan",commands:e.filter(Boolean).map(e=>String(e))}),markExcludedQueuesCleared=(t=[])=>{t.forEach(t=>{const n=e[t];n&&clearLocalQueueState(n)&&l(t)})},deferQueue=(e,n)=>(markQueueDeferred(n)&&l(e),t("QueueDeferred",{queueId:e,queue:deepClone$1(n)}),[]),flush=(s,c={})=>{const u=e[s];if(!u||!hasQueuedItems(u))return[];const d=a?a():{paused:!1,phase:re.RUNNING,settings:{}};if(!isRuntimeReadyPhase(d.phase))return deferQueue(s,u);const p=Boolean(d.settings?.queueWhilePaused);if(d.paused&&!p)return deferQueue(s,u);const m=buildLogicalCommands(u),g=m.join("");if(!c.force&&g===u.lastSignature)return[];const h=[],b=[];u.exclusions.forEach(t=>{const n=e[t];n&&hasQueuedItems(n)&&(h.push(buildRemoteClearCommand(n)),b.push(t))});const y="function"==typeof o?o():"|",v=chunkCommands(m,Math.max(1,i-h.length)).map((e,t)=>{const n=`queue ${0===t?"addclear":"add"} ${u.type} ${e.join(y)}`;return t>0||!h.length?buildStackPlan([n]):buildStackPlan([...h,n])});return markQueueAwaitingAck(u,g)&&l(s),markExcludedQueuesCleared(b),n(v,{source:"queue-controller",queueId:s,excludedIds:b}),t("QueueFlushed",{queueId:s,plans:v,signature:g}),v};return{flush,clearQueue:a=>{const o=e[a];if(!o)return!1;const i=buildRemoteClearCommand(o);clearLocalQueueState(o)&&l(a),t("QueueCleared",{queueId:a,remote:!0,command:i});const s=[buildStackPlan([i])];return n(s,{source:"queue-controller",queueId:a,remote:!0,action:"clear-queue"}),s},flushDeferred(){const t=[];return Object.keys(e).forEach(n=>{e[n].deferred&&flush(n,{force:!0}).length&&t.push(n)}),t},flushAll(){const t=[];return Object.keys(e).forEach(e=>{const n=flush(e);n.length&&t.push({queueId:e,plans:n})}),t},acknowledgeSent(n,a={}){const o=resolveQueueId(e,n);if(!o)return!1;const i=e[o];return t("QueueSentAcknowledged",{...a,queueId:o,queueType:i?.type||a.queueType||""}),!0},acknowledgeFired(n){const a=resolveQueueId(e,n);if(!a)return!1;const o=e[a],i=o?deepClone$1(o):null;return clearLocalQueueState(e[a])&&l(a),s?.({queueId:a,queue:i}),t("QueueFiredAcknowledged",{queueId:a}),!0}}},createQueueController=({send:e,getRuntimeState:t,getSeparator:n,maxEntriesPerSubmission:a=20,onQueueFired:o}={})=>{const i=new Set,s=createQueueState();let l=0;const c=new Map,markStateChanged=e=>{l+=1,e&&c.set(e,(c.get(e)??0)+1)},emit=(e,t)=>{i.forEach(n=>n(e,t))},buildQueueSnapshot=(e={})=>({id:e.id,name:e.name,type:e.type,pre:[...e.pre||[]],post:[...e.post||[]],exclusions:[...e.exclusions||[]],items:[...e.items||[]],prepend:[...e.prepend||[]],pending:Boolean(e.pending),lastSignature:e.lastSignature||"",deferred:Boolean(e.deferred)}),u=new Map,getQueueSnapshot=e=>s[e]?(u.has(e)||u.set(e,createSnapshotCache({getVersion:()=>c.get(e)??0,buildSnapshot:()=>buildQueueSnapshot(s[e])})),u.get(e)()):null,d=createSnapshotCache({getVersion:()=>l,buildSnapshot:()=>Object.keys(s).reduce((e,t)=>(e[t]=getQueueSnapshot(t),e),{})}),p=createQueueFlushApi({state:s,emit,send:e,getRuntimeState:t,getSeparator:n,maxEntriesPerSubmission:a,onQueueFired:o,markStateChanged}),m=createQueueMutationApi({state:s,emit,flush:p.flush,getSeparator:n,markStateChanged});return{onChange:e=>(i.add(e),()=>i.delete(e)),listQueues:()=>Object.keys(s),getQueue:e=>getQueueSnapshot(e),snapshot:()=>d(),add:m.add,prepend:m.prepend,clear:m.clear,clearQueue:p.clearQueue,flush:p.flush,flushAll:p.flushAll,flushDeferred:p.flushDeferred,acknowledgeSent:p.acknowledgeSent,acknowledgeFired:p.acknowledgeFired,setPreCommands:m.setPreCommands,setPostCommands:m.setPostCommands}},normalizeRule=(e,t="runtime")=>{if(!e?.id)throw new Error("Rule must include an id");if("function"!=typeof e.evaluate)throw new Error(`Rule "${e.id}" must expose evaluate(context)`);return{id:String(e.id),enabled:!1!==e.enabled,terminal:!0===e.terminal,pack:e.pack||t,meta:deepClone$1(e.meta||{}),evaluate:e.evaluate}},mergeOverlay=(e,t={})=>t?(["affPriorities","defPriorities","curePriorities","settings","predictions"].forEach(n=>{t[n]&&(e[n]={...e[n]||{},...t[n]})}),void 0!==t.prioAff&&(e.prioAff=t.prioAff),Array.isArray(t.manualQueue)&&(e.manualQueue=[...t.manualQueue]),t.commands?.length&&(e.commands=[...e.commands||[],...t.commands]),e):e,createEmptyOverlay=()=>({affPriorities:{},defPriorities:{},curePriorities:{},settings:{},predictions:{},commands:[],prioAff:void 0,manualQueue:void 0}),diffRuleActivity=(e,t)=>{const n=[];return e.forEach((e,a)=>{t.has(a)||n.push({...e,from:!0,to:!1})}),t.forEach((t,a)=>{e.has(a)||n.push({...t,from:!1,to:!0})}),n},createRuleRegistry=(e=[])=>{const t=[],n=new Set,a=new Map,emit=(e,t)=>{n.forEach(n=>{try{n(e,t)}catch(a){console.error("nexSys4 rule registry listener failed",{event:e,error:a})}})},findIndex=e=>t.findIndex(t=>t.id===e),synthesizeDeactivation=(e,t)=>{const n=String(e);if(!a.has(n))return!1;const o=a.get(n);return a.delete(n),emit("RuleDeactivated",{...o,source:t}),!0},addRule=(e,n={})=>{const a=normalizeRule(e,n.pack);return!(findIndex(a.id)>=0)&&(Number.isInteger(n.index)&&n.index>=0&&n.index<t.length?t.splice(n.index,0,a):t.push(a),emit("RuleAdded",{id:a.id,pack:a.pack}),!0)},removeRule=e=>{const n=findIndex(e);if(n<0)return!1;synthesizeDeactivation(e,"removed");const[a]=t.splice(n,1);return emit("RuleRemoved",{id:a.id,pack:a.pack}),!0},setEnabled=(e,n)=>{const a=findIndex(e);return!(a<0)&&(t[a].enabled!==n&&(t[a].enabled=n,n||synthesizeDeactivation(e,"disabled"),emit(n?"RuleEnabled":"RuleDisabled",{id:e}),!0))},loadPack=(e,t=[])=>{let n=!1;return t.forEach(t=>{n=addRule({...t,pack:e},{pack:e})||n}),n&&emit("RulePackLoaded",{packId:e}),n},unloadPack=e=>{const n=t.filter(t=>t.pack===e).map(e=>e.id);return!!n.length&&(n.forEach(e=>removeRule(e)),emit("RulePackUnloaded",{packId:e,count:n.length}),!0)},reorder=(e=[])=>{if(!Array.isArray(e)||!e.length)return!1;const n=new Set(t.map(e=>e.id)),a=new Set(e);if(e.length!==t.length||a.size!==t.length)return!1;if([...n].some(e=>!a.has(e)))return!1;const o=t.reduce((e,t)=>(e[t.id]=t,e),{});return t.length=0,e.forEach(e=>t.push(o[e])),emit("RuleOrderChanged",{order:[...e]}),!0},evaluate=(e={})=>{const n=createEmptyOverlay(),o=[],i=new Map;for(const a of t){if(!a.enabled)continue;const t=a.evaluate(e);if(t&&(o.push(a.id),i.set(a.id,{id:a.id,pack:a.pack,meta:a.meta}),mergeOverlay(n,t),a.terminal))break}n.commands=Array.from(new Set(n.commands||[]));const s=diffRuleActivity(a,i);return a.clear(),i.forEach((e,t)=>a.set(t,e)),{overlay:n,applied:o,transitions:s}};return e.forEach(e=>addRule(e,{pack:e.pack||"general"})),{onChange:e=>(n.add(e),()=>n.delete(e)),addRule,removeRule,enableRule:e=>setEnabled(e,!0),disableRule:e=>setEnabled(e,!1),loadPack,unloadPack,reorder,evaluate,list:()=>t.map(e=>({id:e.id,enabled:e.enabled,terminal:e.terminal,isActive:a.has(e.id),pack:e.pack,meta:deepClone$1(e.meta)}))}},normalizeCommand=e=>String(e||"").trim().toLowerCase().replace(/\s+/g," "),isServersideCommand=e=>{const t=normalizeCommand(e);return t.startsWith("curing ")||t.startsWith("curingset ")},normalizeSetName=e=>String(e||"").trim().toLowerCase(),toNumberMaybe=e=>{if("number"==typeof e&&Number.isFinite(e))return e;const t=Number(e);return Number.isFinite(t)?t:e},normalizeBoolean=e=>{if("boolean"==typeof e)return e;const t=String(e||"").trim().toLowerCase();return!!["on","yes","true","activated","enabled"].includes(t)||!["off","no","false","disabled"].includes(t)&&Boolean(e)},normalizeStatusValue=(e,t)=>{switch(e){case"enabled":case"reporting":case"afflictions":case"defences":case"sipping":case"transmutation":case"focus":case"useVault":case"clot":case"fallback":case"kaidoTransmute":case"customAffPriority":case"customDefPriority":case"batch":case"insomnia":return normalizeBoolean(t);case"focusOverHerbs":{if("boolean"==typeof t)return t;const e=String(t||"").trim().toLowerCase();return!!["focus","first","yes","on","true"].includes(e)||!["herbs","second","no","off","false"].includes(e)&&Boolean(t)}case"tree":{if("custom"===t)return"custom";if("boolean"==typeof t)return t?"on":"off";const e=String(t||"").trim().toLowerCase();return["custom","on","off"].includes(e)?e:["yes","activated","enabled","true"].includes(e)?"on":["no","disabled","false"].includes(e)?"off":e||"off"}case"sipPriority":return"mana"===String(t||"").trim().toLowerCase()?"mana":"health";default:return toNumberMaybe(t)}},createServersideContext=({affModel:e,defModel:t,balanceModel:n,systemModel:a,trackables:o,now:i})=>{const s=a.getRoom().items||{};let l=null;const isTarget=e=>Array.isArray(e)?e.some(e=>isTarget(e)):"function"==typeof a.isTarget&&a.isTarget(e);return{haveAff:t=>e.haveAff(t),haveAffs:(t=[])=>e.haveAffs(t),haveAnAff:(t=[])=>e.haveAnAff(t),affCount:t=>Number(e.get?.(t)?.count||0),affElapsed:t=>e.elapsed(t),sortedActiveAffs:()=>(null===l&&(l="function"==typeof e.currentSorted?e.currentSorted():[]),l),haveDef:e=>t.haveDef(e),haveDefs:(e=[])=>e.every(e=>t.haveDef(e)),haveADef:(e=[])=>e.some(e=>t.haveDef(e)),haveBal:e=>n.have(e),haveBals:(e=[])=>e.every(e=>n.have(e)),haveABal:(e=[])=>e.some(e=>n.have(e)),balElapsed:e=>n.elapsed(e),trackableElapsed:e=>{const t=o[e];return t?.have?i()-t.since:Number.POSITIVE_INFINITY},roomHasItem:e=>Boolean(s[e]),isTarget,isClass:e=>a.isClass(e)}},buildCountablePriorityDefaults=e=>"function"!=typeof e.getCountablePriorityNames?{}:e.getCountablePriorityNames().reduce((e,t)=>(e[t]=0,e),{}),normalizeServersideAffPriority=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=26?t:0},isServersideAffPriorityNumber=e=>{const t=Number(e);return Number.isInteger(t)&&t>=1&&t<=26},buildBaselineAffPriorities=e=>({...e.list().reduce((t,n)=>(t[n]=normalizeServersideAffPriority(e.getPriority(n)),t),{}),...buildCountablePriorityDefaults(e)}),buildObservedAffPriorities=e=>({...e.list().reduce((e,t)=>(e[t]=0,e),{}),...buildCountablePriorityDefaults(e)}),buildBaselineDefPriorities=(e,t="")=>e.list().reduce((n,a)=>{const o=e.get(a);return!o?.serverside||o.static?n:e.isAvailableForClass(a,t)?(n[a]=e.getPriority(a),n):n},{}),buildObservedDefPriorities=(e,t="")=>e.list().reduce((n,a)=>e.get(a)?.serverside&&e.isAvailableForClass(a,t)?(n[a]=0,n):n,{}),buildBaselineCurePriorities=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=Number(n.prio||0),e),{}),mergeWithResets=(e,t={})=>{const n={...e};return Object.entries(t).forEach(([t,a])=>{n[t]="RESET"!==a?a:e[t]}),n},createInitialServersideState=({baselineSettings:e,affModel:t,defModel:n,systemModel:a,cureTable:o})=>{const i=a?.getClass?.()||"",s=buildBaselineAffPriorities(t),l=buildBaselineDefPriorities(n,i),c=buildBaselineCurePriorities(o);return{baseline:{settings:{...e},affPriorities:s,defPriorities:l,curePriorities:c},sessionBaseline:{settings:{...e},affPriorities:{...s},defPriorities:{...l},curePriorities:{...c}},derived:{},desired:{},observed:{settings:{...e},affPriorities:buildObservedAffPriorities(t),defPriorities:buildObservedDefPriorities(n,i),curePriorities:buildBaselineCurePriorities(o),prioAff:null,manualQueue:[],predictions:{}},pending:new Map,capture:{affPriorities:null,defPriorities:null},transient:{prioAff:null,manualQueue:[],predictions:{},staticDefRequests:{},fullPriorityReset:!1},diagnostics:{lastCommands:[],lastReasons:[],desyncCounter:0,recoveryCounter:0,commandRepeatCounter:0},curingsets:{supportedMulti:!1,degradedMode:!1,sets:[],defaultSet:"default",workingSet:"working",activeSet:""},startup:{flags:{status:!1,affPriorities:!1,defPriorities:!1,queue:!1,predictions:!1,curingsets:!1}},lastDiffCommands:[],rules:[],dirty:!0}},buildBaselineRestoreTarget=e=>({settings:{...e.baseline.settings},affPriorities:{...e.baseline.affPriorities},defPriorities:{...e.baseline.defPriorities},curePriorities:{...e.baseline.curePriorities},manualQueue:[],predictions:{},prioAff:null,fullPriorityReset:!1,injectedCommands:[],appliedRules:[]}),createSettingCommand=(e,t)=>Object.freeze({commandId:e,buildCommand:t}),Bn=Object.freeze({enabled:createSettingCommand("curing-enabled",e=>`curing ${boolWord(e)}`),afflictions:createSettingCommand("curing-afflictions",e=>`curing afflictions ${boolWord(e)}`),defences:createSettingCommand("curing-defences",e=>`curing defences ${boolWord(e)}`),sipping:createSettingCommand("curing-sipping",e=>`curing sipping ${boolWord(e)}`),transmutation:createSettingCommand("curing-transmutation",e=>`curing transmutation ${boolWord(e)}`),sipHealthAt:createSettingCommand("curing-siphealth",e=>`curing siphealth ${e}`),sipManaAt:createSettingCommand("curing-sipmana",e=>`curing sipmana ${e}`),mossHealthAt:createSettingCommand("curing-mosshealth",e=>`curing mosshealth ${e}`),mossManaAt:createSettingCommand("curing-mossmana",e=>`curing mossmana ${e}`),sipPriority:createSettingCommand("curing-priority-mode",e=>`curing priority ${String(e||"health").toLowerCase()}`),focus:createSettingCommand("curing-focus-enabled",e=>`curing focus ${boolWord(e)}`),focusOverHerbs:createSettingCommand("curing-focus-priority-mode",e=>"curing focus "+(e?"first":"second")),tree:createSettingCommand("curing-tree",e=>{const t=String(e||"on").toLowerCase();return["on","off","custom"].includes(t)?`curing tree ${t}`:null}),useVault:createSettingCommand("curing-usevault",e=>`curing usevault ${boolWord(e)}`),clot:createSettingCommand("curing-useclot",e=>`curing useclot ${boolWord(e)}`),clotAt:createSettingCommand("curing-clotat",e=>`curing clotat ${e}`),fallback:createSettingCommand("curing-fallback",e=>`curing fallback ${boolWord(e)}`),kaidoTransmute:createSettingCommand("curing-kaidotransmute",e=>e?"curing kaidotransmute":null),batch:createSettingCommand("curing-batch",e=>`curing batch ${boolWord(e)}`),fracturesAbove:createSettingCommand("curing-healthaffsabove",e=>`curing healthaffsabove ${e}`),manaThreshold:createSettingCommand("curing-manathreshold",e=>`curing manathreshold ${e}`)}),sameArray=(e=[],t=[])=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0},mapDiff=(e={},t={})=>[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>e[n]!==t[n]),normalizePredictionMap=(e={})=>Array.isArray(e)?e.reduce((e,t)=>(e[t]=!0,e),{}):{...e},toGamePriorityToken=e=>isServersideAffPriorityNumber(e)?String(Number(e)):"reset",createServersideDiffPlanner=({baseline:e={},getBaseline:t,getAffPriorityCommandName:n,getDefPriorityTokens:a}={})=>{const resolveBaseline=()=>"function"==typeof t?t()||{}:e,resolveAffPriorityCommandName=e=>{if("function"==typeof n){const t=n(e);if(t)return String(t)}return String(e)},resolveDefPriorityTokens=(e,t)=>{if(!isServersideAffPriorityNumber(t))return["reset"];if("function"==typeof a){const n=a(e,Number(t));if(Array.isArray(n)&&n.length)return n.map(e=>String(e));if(null!=n&&!1!==n)return[String(n)]}return[String(Number(t))]},normalizeDesiredDefPriority=e=>"RESET"===e||void 0===e?0:isServersideAffPriorityNumber(e)?Number(e):0,build=({desired:e={},observed:t={}}={})=>{const n=resolveBaseline(),a=n.settings||{},o=n.affPriorities||{},i=[],s=[],l=e.settings||{};mapDiff(l,t.settings||{}).sort().forEach(e=>{const t=Bn[e];if(!t)return;const n=t.buildCommand(l[e]);n&&(i.push(n),s.push(`settings:${e}`))});const c=e.affPriorities||{},u=t.affPriorities||{};!0===e.fullPriorityReset&&(i.push("curing priority reset"),s.push("aff-priority:reset-all"));const d=mapDiff(c,u).sort().map(e=>{const t=c[e];return"RESET"===t||void 0===t?[e,toGamePriorityToken(o[e]??0)]:[e,toGamePriorityToken(t)]});if(d.length){const e=d.flatMap(([e,t])=>[resolveAffPriorityCommandName(e),String(t)]);i.push(`curing priority ${e.join(" ")}`),d.forEach(([e])=>s.push(`aff-priority:${e}`))}const p=e.defPriorities||{},m=t.defPriorities||{},g=[...new Set([...Object.keys(p),...Object.keys(m)])].filter(e=>normalizeDesiredDefPriority(p[e])!==Number(m[e]??0)).sort().map(e=>{const t=p[e];return"RESET"===t||void 0===t?[e,["reset"],`def-priority-reset:${e}`]:isServersideAffPriorityNumber(t)?[e,resolveDefPriorityTokens(e,t),`def-priority:${e}`]:[e,["reset"],`def-priority-reset:${e}`]});if(g.length){const e=g.flatMap(([e,t])=>[e,...t]);i.push(`curing priority defence ${e.join(" ")}`),g.forEach(([,,e])=>s.push(e))}const h=e.prioAff;h!==t.prioAff&&(h?(i.push(`curing prioaff ${h}`),s.push(`prioaff:${h}`)):(i.push("curing prioaff none"),s.push("prioaff:clear")));const b=e.manualQueue||[];sameArray(b,t.manualQueue||[])||(i.push("curing queue reset"),b.forEach((e,t)=>{i.push(`curing queue insert ${t+1} ${e}`)}),s.push("manual-queue:reconcile"));const y=normalizePredictionMap(e.predictions),v=normalizePredictionMap(t.predictions);return[...new Set([...Object.keys(y),...Object.keys(v)])].sort().forEach(e=>{const t=Boolean(y[e]);t!==Boolean(v[e])&&(i.push(`${t?"curing predict":"curing unpredict"} ${e}`),s.push(`prediction:${e}`))}),{commands:Array.from(new Set(i)),reasonCodes:s,baseSettings:a}};return{build,getBaseSettings:()=>resolveBaseline().settings||{},getBaseAff:()=>resolveBaseline().affPriorities||{},getBaseDef:()=>resolveBaseline().defPriorities||{}}},Fn=Object.freeze({BALANCE:"balance",EQUILIBRIUM:"equilibrium",ENTITY:"entity",FOCUS:"focus",FREE:"free",WRITHE:"writhe"}),hasAny=(e,t)=>e.haveAnAff(t),hasAll=(e,t)=>e.haveAffs(t),emergencyClassRules=e=>{const t={},n=!e.haveBal(Fn.FOCUS)||e.haveAff("impatience");return t.fitness=e.isClass(["Runewarden","Monk","Blademaster","Infernal","Paladin","Sentinel","Druid"])&&e.haveAff("asthma")&&(hasAny(e,["slickness","hellsight"])&&hasAny(e,["paralysis","clumsiness","sensitivity"])||hasAny(e,["damagedhead","mangledhead","damagedleftleg","damagedrightleg"])&&hasAny(e,["paralysis","clumsiness","sensitivity","slickness","hellsight","disloyalty"]))?100:"RESET",t.dragonheal=e.isClass("Dragon")&&hasAll(e,["asthma","slickness","anorexia"])&&n?100:"RESET",t.dragonflex="RESET",e.isClass("Dragon")&&(hasAll(e,["entangled","webbed"])||hasAny(e,["entangled","webbed"])&&(e.haveBal(Fn.BALANCE)&&!e.haveBal(Fn.WRITHE)||e.haveAff("transfixation")))&&(t.dragonflex=100),t.bloodboil=e.isClass("Magi")&&hasAll(e,["asthma","slickness"])&&(hasAny(e,["hypochondria","paralysis"])||e.haveAff("anorexia")&&n)?100:"RESET",t.dwinnu=e.isClass("Bard")&&(hasAll(e,["webbed","entangled"])||hasAny(e,["webbed","entangled"])&&e.haveAff("transfixation"))?100:"RESET",t.salt=e.isClass("Alchemist")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","paralysis"]))?100:"RESET",t.shrugging=e.isClass("Serpent")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","paralysis"]))?100:"RESET",t.fool=e.isClass("Occultist")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","impatience"]))?100:"RESET",t.alleviate=e.isClass("Blademaster")&&(hasAll(e,["asthma","slickness","anorexia"])&&n||hasAll(e,["asthma","slickness","hypochondria"])||hasAll(e,["asthma","slickness","impatience"]))?100:"RESET",t},createDefaultServersideRulePack=()=>[{id:"aeon-threshold-and-priority",pack:"general",evaluate:e=>e.haveAff("aeon")?{settings:{sipHealthAt:30,sipManaAt:10,mossHealthAt:0,mossManaAt:0,batch:!1,clotAt:5e3},affPriorities:{asthma:3,weariness:4,anorexia:5,impatience:7,paralysis:8}}:null},{id:"focus-balance-priority-shift",pack:"general",evaluate:e=>e.haveBal(Fn.FOCUS)?null:{affPriorities:{stupidity:9,recklessness:12,dizziness:14,shyness:14}}},{id:"scytherus-paralysis",pack:"general",evaluate:e=>hasAll(e,["scytherus","paralysis"])?{affPriorities:{scytherus:2}}:null},{id:"confusion-disrupted",pack:"general",evaluate:e=>hasAll(e,["confusion","disrupted"])&&(e.haveBal(Fn.FOCUS)||e.haveAff("impatience"))&&!e.haveAff("whisperingmadness")?{affPriorities:{confusion:2}}:null},{id:"impatience-snaptrack",pack:"general",evaluate:e=>e.haveAff("impatience")&&e.trackableElapsed("snapTrack")<8e3?{affPriorities:{impatience:2}}:null},{id:"hypochondria-impatience",pack:"general",evaluate:e=>hasAll(e,["impatience","hypochondria"])?{affPriorities:{hypochondria:1}}:e.haveAff("hypochondria")&&e.trackableElapsed("snapTrack")<8e3?{affPriorities:{hypochondria:2}}:null},{id:"slickness-asthma-sensitivity-group",pack:"general",evaluate:e=>{const t=hasAny(e,["sensitivity","clumsiness","weariness","hypochondria"]);return hasAll(e,["slickness","asthma"])&&t&&!e.haveAff("anorexia")?{affPriorities:{slickness:2}}:null}},{id:"asthma-hellsight-slickness",pack:"general",evaluate:e=>{const t=!hasAny(e,["sensitivity","clumsiness","weariness","hypochondria"]);return hasAll(e,["slickness","asthma"])&&t||hasAll(e,["hellsight","asthma"])?{affPriorities:{asthma:2}}:null}},{id:"darkshade-lightwall",pack:"general",evaluate:e=>e.haveAff("darkshade")&&e.affElapsed("darkshade")>1e4&&e.roomHasItem("a lightwall")?{affPriorities:{darkshade:2}}:null},{id:"prone-sensitivity-legdamage",pack:"general",evaluate:e=>hasAll(e,["prone","sensitivity"])&&hasAny(e,["damagedleftleg","damagedrightleg"])?{affPriorities:{sensitivity:2}}:null},{id:"conflagration-burning",pack:"general",evaluate:e=>{if(!e.haveAff("conflagration")||!hasAny(e,["brokenleftleg","brokenrightleg","damagedleftleg","damagedrightleg","mangledleftleg","mangledrightleg"]))return null;const t=hasAny(e,["damagedleftleg","damagedrightleg","mangledleftleg","mangledrightleg"]);return e.haveAff("prone")&&!t?{affPriorities:{burning:7}}:{affPriorities:{burning:4}}}},{id:"cadmus-focus-toggle",pack:"general",evaluate:e=>({settings:{focus:!e.haveAff("cadmuscurse")}})},{id:"scalded-blindness-defence",pack:"general",evaluate:e=>e.haveAff("scalded")?{defPriorities:{blindness:0}}:null},{id:"class-emergency-cures",pack:"general",evaluate:e=>({curePriorities:emergencyClassRules(e)})}],qn=Object.freeze(["status","affPriorities","defPriorities"]),Un=Object.freeze({status:"enabled",enabled:"enabled",reportingcommands:"reporting",afflictions:"afflictions",defences:"defences",sipping:"sipping",transmutation:"transmutation",siphealth:"sipHealthAt",siphealthat:"sipHealthAt",sipmana:"sipManaAt",sipmanaat:"sipManaAt",mosshealth:"mossHealthAt",mosshealthat:"mossHealthAt",mossmana:"mossManaAt",mossmanaat:"mossManaAt",priority:"sipPriority",sippriority:"sipPriority",focus:"focus",focusoverherbs:"focusOverHerbs",tree:"tree",usevault:"useVault",useclot:"clot",clot:"clot",clotat:"clotAt",clotabove:"clotAbove",fallback:"fallback",kaidotransmute:"kaidoTransmute",customcuringpriority:"customAffPriority",customdefencepriority:"customDefPriority",batch:"batch",healthaffsabove:"fracturesAbove",fracturesabove:"fracturesAbove",manathreshold:"manaThreshold",insomnia:"insomnia"}),createServersideObservationApi=({state:e,affModel:t,defModel:n,systemModel:a,emit:o,markDirty:i,replaceBucket:s,maybeResolveFullPriorityReset:l,normalizeAffPriorityName:c=e=>String(e||"").toLowerCase()})=>{const getMissingStartupFlags=(t=Object.keys(e.startup.flags))=>t.filter(t=>t in e.startup.flags&&!e.startup.flags[t]),u=createSnapshotCache({getVersion:()=>e.startup,buildSnapshot:()=>({...e.startup.flags})}),d=createSnapshotCache({getVersion:()=>e.startup,buildSnapshot:()=>{const e=u(),t=getMissingStartupFlags(qn);return{ready:Object.values(e).every(Boolean),requiredReady:0===t.length,missingRequired:t,flags:e}}}),markStartupCaptured=t=>t in e.startup.flags&&!e.startup.flags[t]&&(s("startup",{...e.startup,flags:{...e.startup.flags,[t]:!0}}),o("ServersideStartupSnapshotCaptured",{topic:t,flags:u()}),!0),updateObservedSetting=(t,n)=>{if(e.observed.settings[t]!==n){if(s("observed",{...e.observed,settings:{...e.observed.settings,[t]:n}}),e.startup.flags.status){const a=e.derived?.settings?.[t];void 0!==a&&"RESET"!==a||s("sessionBaseline",{...e.sessionBaseline,settings:{...e.sessionBaseline.settings,[t]:n}})}i(`observed-setting:${t}`)}},completeObservedAffPrioritySnapshot=()=>(e.capture.affPriorities&&(s("observed",{...e.observed,affPriorities:e.capture.affPriorities}),e.capture.affPriorities=null,l(),i("observed-aff-priority-snapshot")),markStartupCaptured("affPriorities"),!0),completeObservedDefPrioritySnapshot=()=>(e.capture.defPriorities&&(s("observed",{...e.observed,defPriorities:e.capture.defPriorities}),e.capture.defPriorities=null,i("observed-def-priority-snapshot")),markStartupCaptured("defPriorities"),!0),updateObservedQueue=(t=[])=>{const n=t||[],a=e.observed.manualQueue,o=n.length===a.length&&n.every((e,t)=>e===a[t]);markStartupCaptured("queue"),o||(s("observed",{...e.observed,manualQueue:[...n]}),i("observed-manual-queue"))},updateObservedPredictions=(t={})=>{const n=t||{},a=e.observed.predictions,o=Object.keys(n),l=o.length===Object.keys(a).length&&o.every(e=>n[e]===a[e]);markStartupCaptured("predictions"),l||(s("observed",{...e.observed,predictions:{...n}}),i("observed-predictions"))},parseStatusLine=({key:e,value:t})=>{const n=String(e||"").trim(),a=Un[n.toLowerCase()]||n;updateObservedSetting(a,normalizeStatusValue(a,t))};return{markStartupCaptured,resetStartupStatus:()=>{const t=Object.keys(e.startup.flags).reduce((e,t)=>(e[t]=!1,e),{});return e.capture.affPriorities=null,e.capture.defPriorities=null,s("startup",{...e.startup,flags:t}),o("ServersideStartupReset",{flags:u()}),!0},isStartupReady:()=>Object.values(e.startup.flags).every(Boolean),getStartupStatus:()=>d(),getMissingStartupFlags,beginObservedAffPrioritySnapshot:()=>(e.capture.affPriorities=buildObservedAffPriorities(t),!0),completeObservedAffPrioritySnapshot,updateObservedSetting,updateObservedAffPriority:(t,n)=>{const a=e.capture.affPriorities||e.observed.affPriorities,o=String(t||"").toLowerCase(),u=c(t);if(!u)return!1;if(!Object.prototype.hasOwnProperty.call(a,u))return!1;const d=normalizeServersideAffPriority(n);if(e.capture.affPriorities)return o&&o!==u&&delete a[o],a[u]=d,!0;const p={...e.observed.affPriorities};if(o&&o!==u&&delete p[o],p[u]=d,s("observed",{...e.observed,affPriorities:p}),l(),e.startup.flags.affPriorities){const t=e.derived?.affPriorities?.[u];void 0!==t&&"RESET"!==t||s("sessionBaseline",{...e.sessionBaseline,affPriorities:{...e.sessionBaseline.affPriorities,[u]:d}})}return i(`observed-aff-priority:${u}`),!0},beginObservedDefPrioritySnapshot:()=>(e.capture.defPriorities=buildObservedDefPriorities(n,a.getClass()),!0),completeObservedDefPrioritySnapshot,updateObservedDefPriority:(t,o)=>{const l=e.capture.defPriorities||e.observed.defPriorities,c=String(t||"").toLowerCase(),u=n.get(c);if(!u?.serverside)return!1;if(!n.isAvailableForClass(c,a.getClass()))return!1;const d="RESET"===String(o).toUpperCase()?0:Number(o);if(!Number.isFinite(d))return!1;if(e.capture.defPriorities)return l[c]=d,!0;if(s("observed",{...e.observed,defPriorities:{...e.observed.defPriorities,[c]:d}}),e.startup.flags.defPriorities){const t=e.derived?.defPriorities?.[c];if(void 0===t||"RESET"===t){const t={...e.sessionBaseline.defPriorities};u.static?delete t[c]:t[c]=d,s("sessionBaseline",{...e.sessionBaseline,defPriorities:t})}}return i(`observed-def-priority:${c}`),!0},updateObservedQueue,updateObservedPredictions,parseStatusLine}},createServersideTransientApi=({state:e,trackables:t,now:n,markDirty:a,emit:o,replaceBucket:i,normalizeAffName:s=e=>String(e||"").toLowerCase()})=>({setTrackable(e,i,s={}){const l=String(e||"").trim();if(!l)return!1;t[l]||(t[l]={have:!1,since:0});const c=Boolean(i);if(t[l].have===c)return!1;const u=n();return t[l].have=c,t[l].since=c?u:0,o(c?"TrackableGot":"TrackableLost",{name:l,label:String(s.label||l),have:c,at:u,since:t[l].since,source:String(s.source||"manual")}),a(`trackable:${l}`),!0},setPrioAff(t){const n=t?s(t):null;return e.transient.prioAff!==n&&(i("transient",{...e.transient,prioAff:n}),a("prioaff"),!0)},clearPrioAff:()=>!!e.transient.prioAff&&(i("transient",{...e.transient,prioAff:null}),a("prioaff-clear"),!0),requestPriorityReset:()=>!e.transient.fullPriorityReset&&(i("transient",{...e.transient,fullPriorityReset:!0}),a("priority-reset-request"),!0),requestStaticDefPriorities(t={}){let n=!1;const o={...e.transient.staticDefRequests};return Object.entries(t||{}).forEach(([e,t])=>{const a=String(e||"").trim().toLowerCase(),i=Number(t);!a||!Number.isInteger(i)||i<1||i>25||o[a]!==i&&(o[a]=i,n=!0)}),n&&(i("transient",{...e.transient,staticDefRequests:o}),a("static-def-request")),n},clearStaticDefPriorities(t){const n=Array.isArray(t)?t.map(e=>String(e||"").trim().toLowerCase()).filter(Boolean):Object.keys(e.transient.staticDefRequests);let o=e.transient.staticDefRequests;n.forEach(t=>{Object.prototype.hasOwnProperty.call(o,t)&&(o===e.transient.staticDefRequests&&(o={...e.transient.staticDefRequests}),delete o[t])});const s=i("transient",{...e.transient,staticDefRequests:o});return s&&a("static-def-clear"),s},addPrediction(t){const n=String(t||"").toLowerCase();return!(!n||e.transient.predictions[n])&&(i("transient",{...e.transient,predictions:{...e.transient.predictions,[n]:!0}}),a(`prediction-add:${n}`),!0)},removePrediction(t){const n=String(t||"").toLowerCase();if(!n||!e.transient.predictions[n])return!1;const o={...e.transient.predictions};return delete o[n],i("transient",{...e.transient,predictions:o}),a(`prediction-remove:${n}`),!0},manualQueueAdd(t){const n=String(t||"").toLowerCase();return!(!n||e.transient.manualQueue.includes(n))&&(i("transient",{...e.transient,manualQueue:[...e.transient.manualQueue,n]}),a("manual-queue-add"),!0)},manualQueueInsert(t,n){const o=String(n||"").toLowerCase(),s=Math.max(1,Math.min(20,Number(t||1)));if(!o||e.transient.manualQueue.includes(o))return!1;const l=[...e.transient.manualQueue];return l.splice(s-1,0,o),i("transient",{...e.transient,manualQueue:l}),a("manual-queue-insert"),!0},manualQueueRemove(t){const n=String(t||"").toLowerCase(),o=e.transient.manualQueue.indexOf(n);if(o<0)return!1;const s=[...e.transient.manualQueue];return s.splice(o,1),i("transient",{...e.transient,manualQueue:s}),a("manual-queue-remove"),!0},manualQueueReset:()=>!!e.transient.manualQueue.length&&(i("transient",{...e.transient,manualQueue:[]}),a("manual-queue-reset"),!0)}),shallowCopyDesired=e=>({settings:{...e.settings},affPriorities:{...e.affPriorities},defPriorities:{...e.defPriorities},curePriorities:{...e.curePriorities},manualQueue:[...e.manualQueue||[]],predictions:{...e.predictions},prioAff:e.prioAff??null,fullPriorityReset:Boolean(e.fullPriorityReset),injectedCommands:[...e.injectedCommands||[]],appliedRules:[...e.appliedRules||[]]}),areCommandSequencesEqual=(e=[],t=[])=>{if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(e[n]!==t[n])return!1;return!0},createServersideEvaluationApi=({state:e,affModel:t,defModel:n,balanceModel:a,systemModel:o,cureTable:i,ruleRegistry:s,diffPlanner:l,sendCommands:c,emit:u,markDirty:d,replaceBucket:p,refreshRulesBucket:m,now:g,trackables:h,options:b})=>{const clearResolvedPending=()=>{const t=b.pendingTimeoutMs||12e3,n=g();let a=e.pending;for(const[o,i]of e.pending.entries())n-i>t&&(a===e.pending&&(a=new Map(e.pending)),a.delete(o));return p("pending",a)},markPendingCommands=(t=[],n={})=>{const a=t.map(e=>normalizeCommand(e)).filter(e=>e&&isServersideCommand(e));if(a.length){const t=g(),n=new Map(e.pending);a.forEach(e=>n.set(e,t)),p("pending",n)}return a.length&&u("ServersidePendingUpdated",{commands:[...a],context:{...n}}),a},filterServersideDefPriorities=(e={})=>{const t=o.getClass();return Object.entries(e||{}).reduce((e,[a,o])=>{const i=n.get(a);return!i?.serverside||i.static?e:n.isAvailableForClass(a,t)?(e[a]=o,e):e},{})},buildRequestedStaticDefPriorities=()=>{const t=o.getClass(),a=e.transient.staticDefRequests||{};let i=a;const removeRequest=e=>{i===a&&(i={...a}),delete i[e]},s=Object.entries(a).reduce((e,[a,o])=>{const i=n.get(a);if(!i?.static)return removeRequest(a),e;if(n.haveDef(a)||!n.isAvailableForClass(a,t))return removeRequest(a),e;if(!i.serverside)return e;const s=n.getPriority(a),l=isServersideAffPriorityNumber(s)?s:o;return!isServersideAffPriorityNumber(l)||Number(l)>=26?(removeRequest(a),e):(e[a]=Number(l),e)},{});return i!==a&&p("transient",{...e.transient,staticDefRequests:i}),s},emitRuleTransitions=(e=[],t)=>{e.forEach(e=>{e.to||u("RuleDeactivated",{id:e.id,pack:e.pack,meta:e.meta,source:t})}),e.forEach(e=>{e.to&&u("RuleActivated",{id:e.id,pack:e.pack,meta:e.meta,source:t})})},resolveDesired=()=>{const i=createServersideContext({affModel:t,defModel:n,balanceModel:a,systemModel:o,trackables:h,now:g}),l=s.evaluate(i);return m?.(),p("derived",l.overlay),p("desired",{settings:{...e.sessionBaseline.settings,...l.overlay.settings},affPriorities:mergeWithResets(e.sessionBaseline.affPriorities,l.overlay.affPriorities),defPriorities:{...mergeWithResets(e.sessionBaseline.defPriorities,filterServersideDefPriorities(l.overlay.defPriorities)),...buildRequestedStaticDefPriorities()},curePriorities:mergeWithResets(e.sessionBaseline.curePriorities,l.overlay.curePriorities),manualQueue:Array.isArray(l.overlay.manualQueue)?[...l.overlay.manualQueue]:[...e.transient.manualQueue],predictions:{...e.transient.predictions,...l.overlay.predictions},prioAff:null!==e.transient.prioAff&&void 0!==e.transient.prioAff?e.transient.prioAff:l.overlay.prioAff||null,fullPriorityReset:e.transient.fullPriorityReset,injectedCommands:l.overlay.commands||[],appliedRules:l.applied}),{desired:e.desired,evaluation:l}};return{markPendingCommands,maybeResolveFullPriorityReset:()=>!!e.transient.fullPriorityReset&&(!!Object.keys(e.sessionBaseline.affPriorities).every(t=>(e.observed.affPriorities[t]??e.sessionBaseline.affPriorities[t])===e.sessionBaseline.affPriorities[t])&&(p("transient",{...e.transient,fullPriorityReset:!1}),u("ServersideFullPriorityResetResolved",{fullPriorityReset:!1}),!0)),evaluate({emitCommands:t=!0,source:n="prompt"}={}){clearResolvedPending();const{desired:a,evaluation:o}=resolveDesired(),i=l.build({desired:a,observed:e.observed});let s=[...a.injectedCommands,...i.commands].filter(Boolean).filter(t=>!e.pending.has(normalizeCommand(t)));const d=Math.max(1,Number(b.maxCommandsPerCycle||40));let m=e.diagnostics.recoveryCounter;s.length>d&&(s=s.slice(0,d),m+=1);const g=(i.commands||[]).filter(Boolean).filter(t=>!e.pending.has(normalizeCommand(t)));let h=g.length&&areCommandSequencesEqual(e.lastDiffCommands||[],g)?e.diagnostics.commandRepeatCounter+1:0,y=e.diagnostics.desyncCounter;return h>=(b.desyncCommandRepeats||3)&&(y+=1,m+=1,s.push("curing status","curing priority list","curing priority defence list","curing queue list","curing predictions"),h=0),t&&s.length&&(c(s,{source:"serverside-reconcile",reasonCodes:i.reasonCodes,cycleSource:n}),markPendingCommands(s,{source:"serverside-reconcile",reasonCodes:i.reasonCodes,cycleSource:n})),e.lastDiffCommands=[...g],p("diagnostics",{...e.diagnostics,lastCommands:[...s],lastReasons:[...i.reasonCodes],desyncCounter:y,recoveryCounter:m,commandRepeatCounter:h}),e.dirty=!1,u("ServersideEvaluated",{source:n,desired:shallowCopyDesired(a),commands:[...s],reasons:[...i.reasonCodes]}),emitRuleTransitions(o.transitions,n),{desired:shallowCopyDesired(a),commands:s,reasons:i.reasonCodes}},setBaselineFromRuntime(){const a=o.getBaselineIntent().ss,s=o.getClass(),l={...e.baseline,settings:{...e.baseline.settings,...a},affPriorities:buildBaselineAffPriorities(t),defPriorities:buildBaselineDefPriorities(n,s),curePriorities:buildBaselineCurePriorities(i)};p("baseline",l);const c=buildObservedDefPriorities(n,s),u=Object.keys(c).reduce((t,n)=>(t[n]=e.observed.defPriorities[n]??c[n],t),{});p("observed",{...e.observed,defPriorities:u}),p("sessionBaseline",{settings:{...l.settings},affPriorities:{...l.affPriorities},defPriorities:{...l.defPriorities},curePriorities:{...l.curePriorities}}),d("baseline-refresh")},getCurePriority(t){const n=String(t||"").toLowerCase();return e.desired.curePriorities?.[n]??e.baseline.curePriorities[n]??0},observeOutbound:(e=[])=>markPendingCommands(e,{source:"observe-outbound"})}},createServersideCuringSetApi=({state:e,diffPlanner:t,sendCommands:n,markPendingCommands:a,markDirty:o,markStartupCaptured:i,replaceBucket:s})=>{const issueCuringSetCommand=(e,t)=>{const o=normalizeCommand(e);return!!o&&(n([o],{source:"serverside-curingset",reason:t}),a([o],{source:"serverside-curingset",reason:t}),!0)};return{listCuringSets:()=>issueCuringSetCommand("curingset list","list"),createCuringSet(e){const t=normalizeSetName(e);return!!t&&issueCuringSetCommand(`curingset new ${t}`,"new")},switchCuringSet(t){const n=normalizeSetName(t);if(!n)return!1;const a=issueCuringSetCommand(`curingset switch ${n}`,"switch");return a&&(s("curingsets",{...e.curingsets,activeSet:n}),o("curingset-switch")),a},cloneCuringSet(e){const t=normalizeSetName(e);return!!t&&issueCuringSetCommand(`curingset clone ${t}`,"clone")},renameCuringSet(e,t){const n=normalizeSetName(e),a=normalizeSetName(t);return!(!n||!a)&&issueCuringSetCommand(`curingset rename ${n} ${a}`,"rename")},deleteCuringSet(e){const t=normalizeSetName(e);return!!t&&issueCuringSetCommand(`curingset delete ${t}`,"delete")},restoreWorkingFromDefault(){if(!e.curingsets.supportedMulti){s("curingsets",{...e.curingsets,degradedMode:!0});const i=t.build({desired:buildBaselineRestoreTarget(e),observed:e.observed}).commands;return i.length&&(n(i,{source:"curingset-restore-degraded"}),a(i,{source:"curingset-restore-degraded"})),o("curingset-degraded-restore"),{degraded:!0,commands:i}}const i=[`curingset switch ${e.curingsets.workingSet}`,`curingset clone ${e.curingsets.defaultSet}`];return n(i,{source:"curingset-restore"}),a(i,{source:"curingset-restore"}),{degraded:!1,commands:i}},observeCuringSets({sets:t=[],activeSet:n=""}={}){const a=[...new Set((t||[]).map(e=>normalizeSetName(e)).filter(Boolean))],l=normalizeSetName(n);let c={...e.curingsets,sets:a,activeSet:l,supportedMulti:a.length>=2,degradedMode:a.length<2};c.supportedMulti&&(a.includes(c.defaultSet)||(c={...c,defaultSet:a[0]}),a.includes(c.workingSet)||(c={...c,workingSet:a[1]||a[0]})),s("curingsets",c),i("curingsets"),o("curingset-observed")}}},Vn=new Set(["RuleActivated","RuleDeactivated","RuleAdded","RuleRemoved","RuleEnabled","RuleDisabled","RulePackLoaded","RulePackUnloaded","RuleOrderChanged"]),Hn=Object.freeze(["baseline","sessionBaseline","derived","desired","observed","transient","pending","diagnostics","curingsets","startup","rules"]),areBucketValuesEqual=(e,t)=>{if(Object.is(e,t))return!0;if(!e||!t||"object"!=typeof e||"object"!=typeof t)return!1;if(e instanceof Date||t instanceof Date)return e instanceof Date&&t instanceof Date&&e.getTime()===t.getTime();if(Array.isArray(e)||Array.isArray(t))return!(!Array.isArray(e)||!Array.isArray(t))&&(e.length===t.length&&e.every((e,n)=>areBucketValuesEqual(e,t[n])));if(e instanceof Map||t instanceof Map){if(!(e instanceof Map&&t instanceof Map))return!1;if(e.size!==t.size)return!1;const n=[...e.entries()],a=[...t.entries()];for(let e=0;e<n.length;e+=1){const[t,o]=n[e],[i,s]=a[e];if(!Object.is(t,i)||!areBucketValuesEqual(o,s))return!1}return!0}const n=Object.keys(e),a=Object.keys(t);return n.length===a.length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&areBucketValuesEqual(e[n],t[n]))},createServersideController=({adapter:e,dispatchCommands:t,affModel:n,defModel:a,balanceModel:o,systemModel:i,cureTable:s={},options:l={}}={})=>{if("function"!=typeof t)throw new Error("createServersideController requires a dispatchCommands function.");const now=()=>e.now(),c=t,u={snapTrack:{have:!1,since:0}},d=createInitialServersideState({baselineSettings:{enabled:!0,afflictions:!0,defences:!0,sipping:!0,transmutation:!0,fallback:!0,kaidoTransmute:!1,...i.getBaselineIntent().ss},affModel:n,defModel:a,systemModel:i,cureTable:s}),p=new Set,emit=(e,t)=>{p.forEach(n=>n(e,t))},markDirty=(e="state-change")=>{d.dirty=!0,emit("ServersideDirty",{reason:e})},replaceBucket=(e,t)=>!areBucketValuesEqual(d[e],t)&&(d[e]=t,!0),m=createRuleRegistry(createDefaultServersideRulePack()),refreshRulesBucket=()=>replaceBucket("rules",m.list());refreshRulesBucket();const g=createServersideDiffPlanner({getBaseline:()=>d.baseline,getAffPriorityCommandName:"function"==typeof n?.formatPriorityCommandName?e=>n.formatPriorityCommandName(e):void 0,getDefPriorityTokens:(e,t)=>{const n=[String(Number(t))];return!0===a.get(e)?.preempt&&n.push("preempt"),n}}),h="function"==typeof n?.normalizeName?e=>n.normalizeName(e):e=>String(e||"").toLowerCase(),b="function"==typeof n?.normalizePriorityName?e=>n.normalizePriorityName(e):e=>String(e||"").toLowerCase(),y=createServersideEvaluationApi({state:d,affModel:n,defModel:a,balanceModel:o,systemModel:i,cureTable:s,ruleRegistry:m,diffPlanner:g,sendCommands:c,emit,markDirty,replaceBucket,refreshRulesBucket,now,trackables:u,options:l}),v=createServersideObservationApi({state:d,affModel:n,defModel:a,systemModel:i,emit,markDirty,replaceBucket,maybeResolveFullPriorityReset:y.maybeResolveFullPriorityReset,normalizeAffPriorityName:b}),S=createServersideTransientApi({state:d,trackables:u,now,markDirty,emit,replaceBucket,normalizeAffName:h}),x=createServersideCuringSetApi({state:d,diffPlanner:g,sendCommands:c,markPendingCommands:y.markPendingCommands,markDirty,markStartupCaptured:v.markStartupCaptured,replaceBucket}),requestSnapshotSync=()=>c(["curing status","curing priority list","curing queue list","curing predictions","curingset list","curing priority defence list"],{source:"serverside-snapshot-sync"}),applyLifecycleChange=e=>(e&&markDirty("rule-lifecycle"),e);m.onChange((e,t)=>{refreshRulesBucket(),Vn.has(e)?emit(e,t):markDirty("rule-engine-change")});const copyRecord=(e={})=>({...e||{}}),copyArray=(e=[])=>[...e||[]],copyRuleOverlay=(e={})=>({affPriorities:copyRecord(e.affPriorities),defPriorities:copyRecord(e.defPriorities),curePriorities:copyRecord(e.curePriorities),settings:copyRecord(e.settings),predictions:copyRecord(e.predictions),commands:copyArray(e.commands),prioAff:e.prioAff,manualQueue:Array.isArray(e.manualQueue)?[...e.manualQueue]:void 0}),copyDesiredSnapshot=(e={})=>({settings:copyRecord(e.settings),affPriorities:copyRecord(e.affPriorities),defPriorities:copyRecord(e.defPriorities),curePriorities:copyRecord(e.curePriorities),manualQueue:copyArray(e.manualQueue),predictions:copyRecord(e.predictions),prioAff:e.prioAff??null,fullPriorityReset:Boolean(e.fullPriorityReset),injectedCommands:copyArray(e.injectedCommands),appliedRules:copyArray(e.appliedRules)}),copyObservedSnapshot=(e={})=>({settings:copyRecord(e.settings),affPriorities:copyRecord(e.affPriorities),defPriorities:copyRecord(e.defPriorities),curePriorities:copyRecord(e.curePriorities),prioAff:e.prioAff??null,manualQueue:copyArray(e.manualQueue),predictions:copyRecord(e.predictions)}),copyTransientSnapshot=(e={})=>({prioAff:e.prioAff??null,manualQueue:copyArray(e.manualQueue),predictions:copyRecord(e.predictions),staticDefRequests:copyRecord(e.staticDefRequests),fullPriorityReset:Boolean(e.fullPriorityReset)}),copyDiagnosticsSnapshot=(e={})=>({lastCommands:copyArray(e.lastCommands),lastReasons:copyArray(e.lastReasons),desyncCounter:Number(e.desyncCounter||0),recoveryCounter:Number(e.recoveryCounter||0),commandRepeatCounter:Number(e.commandRepeatCounter||0)}),copyCuringSetSnapshot=(e={})=>({supportedMulti:Boolean(e.supportedMulti),degradedMode:Boolean(e.degradedMode),sets:copyArray(e.sets),defaultSet:e.defaultSet||"",workingSet:e.workingSet||"",activeSet:e.activeSet||""}),copyRulesSnapshot=(e=[])=>(e||[]).map(e=>({id:e.id,enabled:e.enabled,terminal:e.terminal,isActive:e.isActive,pack:e.pack,meta:deepClone$1(e.meta||{})})),w=createSnapshotCache({getVersion:()=>d.baseline,buildSnapshot:()=>({settings:copyRecord(d.baseline.settings),affPriorities:copyRecord(d.baseline.affPriorities),defPriorities:copyRecord(d.baseline.defPriorities),curePriorities:copyRecord(d.baseline.curePriorities)})}),C=createSnapshotCache({getVersion:()=>d.sessionBaseline,buildSnapshot:()=>({settings:copyRecord(d.sessionBaseline.settings),affPriorities:copyRecord(d.sessionBaseline.affPriorities),defPriorities:copyRecord(d.sessionBaseline.defPriorities),curePriorities:copyRecord(d.sessionBaseline.curePriorities)})}),k=createSnapshotCache({getVersion:()=>d.derived,buildSnapshot:()=>copyRuleOverlay(d.derived)}),E=createSnapshotCache({getVersion:()=>d.desired,buildSnapshot:()=>copyDesiredSnapshot(d.desired)}),P=createSnapshotCache({getVersion:()=>d.observed,buildSnapshot:()=>copyObservedSnapshot(d.observed)}),T=createSnapshotCache({getVersion:()=>d.transient,buildSnapshot:()=>copyTransientSnapshot(d.transient)}),R={baseline:w,sessionBaseline:C,derived:k,desired:E,observed:P,transient:T,pending:createSnapshotCache({getVersion:()=>d.pending,buildSnapshot:()=>[...d.pending.entries()]}),diagnostics:createSnapshotCache({getVersion:()=>d.diagnostics,buildSnapshot:()=>copyDiagnosticsSnapshot(d.diagnostics)}),curingsets:createSnapshotCache({getVersion:()=>d.curingsets,buildSnapshot:()=>copyCuringSetSnapshot(d.curingsets)}),startup:createSnapshotCache({getVersion:()=>d.startup,buildSnapshot:()=>({flags:copyRecord(d.startup.flags)})}),rules:createSnapshotCache({getVersion:()=>d.rules,buildSnapshot:()=>copyRulesSnapshot(d.rules)})};let M=null;const getSnapshot=()=>{const e=Hn.reduce((e,t)=>(e[t]=R[t](),e),{});return M&&Hn.every(t=>M[t]===e[t])||(M=deepFreeze(e)),M},acknowledgeCommand=e=>acknowledgeCommands([e]),acknowledgeCommands=(e=[])=>{let t=d.pending;return e.forEach(e=>{const n=normalizeCommand(e);n&&t.has(n)&&(t===d.pending&&(t=new Map(d.pending)),t.delete(n))}),replaceBucket("pending",t)};return{onChange:e=>(p.add(e),()=>p.delete(e)),markDirty,evaluate:y.evaluate,isDirty:()=>d.dirty,getTransientPrioAff:()=>d.transient.prioAff,getStaticDefRequests:()=>T().staticDefRequests,getObserved:()=>P(),snapshot:()=>getSnapshot(),isStartupReady:v.isStartupReady,getStartupStatus:v.getStartupStatus,getMissingStartupFlags:v.getMissingStartupFlags,markStartupCaptured:v.markStartupCaptured,resetStartupStatus:v.resetStartupStatus,setBaselineFromRuntime:y.setBaselineFromRuntime,getCurePriority:y.getCurePriority,requestSnapshotSync,beginObservedAffPrioritySnapshot:v.beginObservedAffPrioritySnapshot,completeObservedAffPrioritySnapshot:v.completeObservedAffPrioritySnapshot,updateObservedSetting:v.updateObservedSetting,updateObservedAffPriority:v.updateObservedAffPriority,beginObservedDefPrioritySnapshot:v.beginObservedDefPrioritySnapshot,completeObservedDefPrioritySnapshot:v.completeObservedDefPrioritySnapshot,updateObservedDefPriority:v.updateObservedDefPriority,updateObservedQueue:v.updateObservedQueue,updateObservedPredictions:v.updateObservedPredictions,parseStatusLine:v.parseStatusLine,setTrackable:S.setTrackable,setPrioAff:S.setPrioAff,clearPrioAff:S.clearPrioAff,requestPriorityReset:S.requestPriorityReset,requestStaticDefPriorities:S.requestStaticDefPriorities,clearStaticDefPriorities:S.clearStaticDefPriorities,addPrediction:S.addPrediction,removePrediction:S.removePrediction,manualQueueAdd:S.manualQueueAdd,manualQueueInsert:S.manualQueueInsert,manualQueueRemove:S.manualQueueRemove,manualQueueReset:S.manualQueueReset,listCuringSets:x.listCuringSets,createCuringSet:x.createCuringSet,switchCuringSet:x.switchCuringSet,cloneCuringSet:x.cloneCuringSet,renameCuringSet:x.renameCuringSet,deleteCuringSet:x.deleteCuringSet,restoreWorkingFromDefault:x.restoreWorkingFromDefault,observeCuringSets:x.observeCuringSets,acknowledgeCommand,acknowledgeCommands,markPendingCommands:y.markPendingCommands,observeOutbound:y.observeOutbound,lifecycle:{add:(e,t)=>applyLifecycleChange(m.addRule(e,t)),remove:e=>applyLifecycleChange(m.removeRule(e)),enable:e=>applyLifecycleChange(m.enableRule(e)),disable:e=>applyLifecycleChange(m.disableRule(e)),load:(e,t)=>applyLifecycleChange(m.loadPack(e,t)),unload:e=>applyLifecycleChange(m.unloadPack(e)),reorder:e=>applyLifecycleChange(m.reorder(e)),list:()=>m.list()}}},createCommandDispatcher=({adapter:e}={})=>{const t=[],n=200,isDebugEnabled=()=>"function"==typeof e?.isDebugEnabled&&e.isDebugEnabled(),normalizeCommands=(e=[])=>Array.isArray(e)?e.filter(Boolean).map(e=>String(e)):null==e||""===e?[]:[String(e)],resolveSeparator=()=>("function"==typeof e?.getCommandSeparator?e.getCommandSeparator():"|")||"|",normalizeStackPlan=e=>{if(e&&"object"==typeof e&&!Array.isArray(e)){if("stackPlan"!==e.type)return null;const t=normalizeCommands(e.commands);return t.length?{type:"stackPlan",commands:t}:null}const t=normalizeCommands(e);return t.length?{type:"stackPlan",commands:t}:null},normalizeStackPlans=(e=[])=>{if(Array.isArray(e))return e.map(normalizeStackPlan).filter(Boolean);const t=normalizeStackPlan(e);return t?[t]:[]},serializeStackPlan=e=>e.commands.join(resolveSeparator()),recordDispatch=({mode:a,commands:o=[],context:i={},stackIndex:s=1,stackCount:l=1,stackPlan:c=null}={})=>{const u=normalizeCommands(o);if(!u.length)return[];const d={mode:a,commands:[...u],context:{...i},at:e.now(),stackIndex:s,stackCount:l,stackPlan:c?{type:c.type,commands:[...c.commands]}:null};return t.push(d),!isDebugEnabled()&&t.length>n&&t.splice(0,t.length-n),u},sendCommands=(t=[],n={})=>{const a=recordDispatch({mode:"commands",commands:t,context:n});return a.length?(e.send(a,n),a):[]};return{send:sendCommands,sendCommands,sendStackPlan:(t=[],n={})=>{const a=normalizeStackPlans(t);return a.length?(a.forEach((t,o)=>{const i={...n,stackIndex:o+1,stackCount:a.length};recordDispatch({mode:"stack-plan",commands:t.commands,context:i,stackIndex:o+1,stackCount:a.length,stackPlan:t}),e.send(serializeStackPlan(t),i)}),a.map(e=>({type:e.type,commands:[...e.commands]}))):[]},normalizeCommands,history:()=>t.map(e=>({mode:e.mode,commands:[...e.commands],context:{...e.context},at:e.at,stackIndex:e.stackIndex,stackCount:e.stackCount,stackPlan:e.stackPlan?{type:e.stackPlan.type,commands:[...e.stackPlan.commands]}:null}))}},Wn=Object.freeze({freeQueue:[{balanceId:Fn.BALANCE,minDurationMs:250},{balanceId:Fn.EQUILIBRIUM,minDurationMs:250}],fullQueue:[{balanceId:Fn.BALANCE,minDurationMs:250},{balanceId:Fn.EQUILIBRIUM,minDurationMs:250}],classQueue:[{balanceId:Fn.ENTITY,minDurationMs:500}]}),createQueueFiredSideEffects=({balanceModel:e,now:t})=>({queueId:n})=>{const a=Wn[n]||[];if(!a.length)return[];const o=t();return a.filter(({balanceId:t,minDurationMs:n})=>!1===e.have(t)&&e.computeDurationMs(t)>Number(n||0)).map(({balanceId:t})=>(e.restartLossTimer(t,`queue-fired-resync:${n}`,o),t))},createDomainControllers=({adapter:e,seedData:t,options:n={},now:a,models:o})=>{const{systemModel:i,affModel:s,balanceModel:l,defModel:c,cacheModel:u}=o,d=createCommandDispatcher({adapter:e}),p=createQueueFiredSideEffects({balanceModel:l,now:a}),m=createQueueController({send:d.sendStackPlan,getRuntimeState:()=>{const e=i.getRuntime();return{paused:e.paused,phase:e.phase,settings:i.getSettings()}},getSeparator:()=>i.getSettings().commandSeparator,maxEntriesPerSubmission:Number(n.maxEntriesPerSubmission||20),onQueueFired:p}),g=createServersideController({adapter:e,dispatchCommands:d.sendCommands,affModel:s,defModel:c,balanceModel:l,systemModel:i,cureTable:t.cureTable,options:{maxCommandsPerCycle:Number(n.maxSsCommandsPerCycle||40)}}),h=createDefensePlanner({defModel:c,balanceModel:l,affModel:s,systemModel:i}),b=createPrecachePlanner({cacheModel:u});return{commandDispatcher:d,queueController:m,serverside:g,defensePlanner:h,precachePlanner:b,outputPlanner:createOutputPlanner({systemModel:i,serverside:g,defensePlanner:h,precachePlanner:b})}},secondsToMs$1=e=>{const t=Number(e);return Number.isFinite(t)?Math.max(0,Math.round(1e3*t)):0},msToSeconds$1=e=>{const t=Number(e);return Number.isFinite(t)?t/1e3:0},createBalanceState=(e={})=>{const t={};return Object.entries(e||{}).forEach(([e,n])=>{t[e]={id:e,have:!0,baseDurationMs:secondsToMs$1(n.length),config:deepFreeze(deepClone$1(n||{})),lastLostAtMs:0,lastGotAtMs:0,activeDurationMs:0,expectedReadyAtMs:0,lastRecoveredDurationMs:0,lastServerDurationMs:0,callbacks:{},timer:null}}),t},createBalancePayload=(e,t={})=>({id:e.id,have:e.have,baseDurationMs:e.baseDurationMs,lastLostAtMs:e.lastLostAtMs,lastGotAtMs:e.lastGotAtMs,activeDurationMs:e.activeDurationMs,expectedReadyAtMs:e.expectedReadyAtMs,lastRecoveredDurationMs:e.lastRecoveredDurationMs,lastServerDurationMs:e.lastServerDurationMs,...t}),createBalanceMutationApi=({state:e,emit:t,now:n,setTimeoutFn:a,clearTimeoutFn:o,computeDurationMs:i})=>{const clearTimer=e=>{e.timer&&(o?.(e.timer),e.timer=null)},normalizeDurationMs=(e={},t=0)=>Number.isFinite(Number(e.durationMs))?Math.max(0,Math.round(Number(e.durationMs))):Number.isFinite(Number(e.durationSeconds))?secondsToMs$1(e.durationSeconds):Math.max(0,Math.round(Number(t)||0)),s=1e3,scheduleRecovery=(e,t)=>{clearTimer(e),!a||e.have||e.expectedReadyAtMs<=0||(e.timer=a(()=>{gain(e.id,"timer",n())},Math.max(0,e.expectedReadyAtMs+s-t)))},applyServerDuration=(e,t)=>{e.lastServerDurationMs=t},emitDurationObserved=(e,n,a,o)=>{t("BalanceDurationObserved",createBalancePayload(e,{source:o,atMs:a,durationMs:n,durationSeconds:msToSeconds$1(n)}))},createTimingPayload=(e,t,n,a)=>createBalancePayload(e,{reason:t,atMs:n,durationMs:a,durationSeconds:msToSeconds$1(a)});function gain(a,o="manual",i=n()){const s=e[a];if(!s||s.have)return!1;const l=s.activeDurationMs;return s.have=!0,s.lastGotAtMs=i,s.lastRecoveredDurationMs=Math.max(0,i-s.lastLostAtMs),s.activeDurationMs=0,s.expectedReadyAtMs=0,clearTimer(s),s.callbacks.onStop?.(s),t("BalanceGot",createTimingPayload(s,o,i,s.lastRecoveredDurationMs||l)),!0}const lose=(a,o="manual",s=n(),l={})=>{const c=e[a];if(!c||!c.have)return!1;const u=normalizeDurationMs(l,i(a));return c.have=!1,c.lastLostAtMs=s,c.activeDurationMs=u,c.expectedReadyAtMs=u>0?s+u:0,!0===l.serverDuration&&applyServerDuration(c,u),c.callbacks.onStart?.(c),!1!==l.autoRegain?scheduleRecovery(c,s):clearTimer(c),t("BalanceLost",createTimingPayload(c,o,s,u)),!0},observeServerUse=(t,a,o={})=>{const i=e[t],s=secondsToMs$1(a);if(!i||s<=0)return!1;const l=o.atMs??o.at??n(),c=String(o.source||"serverside-duration");if(i.have){const e=lose(t,c,l,{durationMs:s,serverDuration:!0,autoRegain:o.autoRegain});return e&&emitDurationObserved(i,s,l,c),e}return applyServerDuration(i,s),i.activeDurationMs=s,i.expectedReadyAtMs=i.lastLostAtMs+s,!1!==o.autoRegain?scheduleRecovery(i,l):clearTimer(i),emitDurationObserved(i,s,l,c),!0};return{gain,lose,restartLossTimer:(a,o="manual",s=n(),l={})=>{const c=e[a];if(!c||c.have)return!1;const u=normalizeDurationMs(l,i(a));return c.lastLostAtMs=s,c.activeDurationMs=u,c.expectedReadyAtMs=u>0?s+u:0,!0===l.serverDuration&&applyServerDuration(c,u),!1!==l.autoRegain?scheduleRecovery(c,s):clearTimer(c),t("BalanceLossTimerRestarted",createTimingPayload(c,o,s,u)),!0},observeServerUse,reset(a,o="reset"){const i=e[a];return!!i&&(clearTimer(i),i.have=!0,i.lastGotAtMs=n(),i.activeDurationMs=0,i.expectedReadyAtMs=0,i.callbacks.onReset?.(i),t("BalanceReset",createBalancePayload(i,{reason:o})),!0)},setCallback(t,n={}){const a=e[t];return!!a&&(a.callbacks={...a.callbacks,...n},!0)},applyVitals(t={}){const a=toParsedGmcpVitals(t);a.balancePatches.forEach(({id:e,have:t})=>{if(!e||void 0===t)return;const a=n();t?gain(e,"gmcp-vitals",a):lose(e,"gmcp-vitals",a)}),a.resourceStats.forEach(({key:t,balanceState:a})=>{e[t]&&void 0!==a&&(a?gain(t,"gmcp-charstat",n()):lose(t,"gmcp-charstat",n()))})},dispose(){Object.values(e).forEach(clearTimer)}}},createBalanceQueryApi=({state:e,now:t,haveAff:n,getVersion:a=()=>0,getEntryVersion:o=()=>a()})=>{const buildEntrySnapshot=(e={})=>({id:e.id,have:e.have,baseDurationMs:e.baseDurationMs,baseDurationSeconds:msToSeconds$1(e.baseDurationMs),config:e.config,lastLostAtMs:e.lastLostAtMs,lastGotAtMs:e.lastGotAtMs,activeDurationMs:e.activeDurationMs,activeDurationSeconds:msToSeconds$1(e.activeDurationMs),expectedReadyAtMs:e.expectedReadyAtMs,lastRecoveredDurationMs:e.lastRecoveredDurationMs,lastRecoveredDurationSeconds:msToSeconds$1(e.lastRecoveredDurationMs),lastServerDurationMs:e.lastServerDurationMs,lastServerDurationSeconds:msToSeconds$1(e.lastServerDurationMs)}),i=new Map,getEntrySnapshot=t=>e[t]?(i.has(t)||i.set(t,createSnapshotCache({getVersion:()=>o(t),buildSnapshot:()=>buildEntrySnapshot(e[t])})),i.get(t)()):null,s=createSnapshotCache({getVersion:a,buildSnapshot:()=>Object.keys(e).reduce((e,t)=>(e[t]=getEntrySnapshot(t),e),{})}),computeDurationMs=t=>{const a=e[t];if(!a)return 0;let o=Number(a.baseDurationMs||0);const i=a.config.aff_modifiers||{};return Object.entries(i).forEach(([e,t])=>{if(!n(e))return;const a=Number(t.multiplier??1),i=secondsToMs$1(t.offset??0);o=Math.round(o*a+i)}),Math.max(0,o)},elapsedMs=(n,a=t())=>{const o=e[n];return o?o.have?Math.max(0,a-o.lastGotAtMs):Math.max(0,a-o.lastLostAtMs):0},remainingMs=(n,a=t())=>{const o=e[n];return!o||o.have?0:o.expectedReadyAtMs>0?Math.max(0,o.expectedReadyAtMs-a):Math.max(0,o.activeDurationMs-elapsedMs(n,a))},timing=(n,a=t())=>{const o=e[n];if(!o)return null;const i=elapsedMs(n,a),s=remainingMs(n,a),l=computeDurationMs(n);return{id:o.id,have:o.have,atMs:a,elapsedMs:i,elapsedSeconds:msToSeconds$1(i),remainingMs:s,remainingSeconds:msToSeconds$1(s),baseDurationMs:o.baseDurationMs,baseDurationSeconds:msToSeconds$1(o.baseDurationMs),computedDurationMs:l,computedDurationSeconds:msToSeconds$1(l),activeDurationMs:o.activeDurationMs,activeDurationSeconds:msToSeconds$1(o.activeDurationMs),expectedReadyAtMs:o.expectedReadyAtMs,lastLostAtMs:o.lastLostAtMs,lastGotAtMs:o.lastGotAtMs,lastRecoveredDurationMs:o.lastRecoveredDurationMs,lastRecoveredDurationSeconds:msToSeconds$1(o.lastRecoveredDurationMs),lastServerDurationMs:o.lastServerDurationMs,lastServerDurationSeconds:msToSeconds$1(o.lastServerDurationMs)}};return{list:()=>Object.keys(e),snapshot:()=>s(),get:e=>getEntrySnapshot(e),have:t=>Boolean(e[t]?.have),elapsed:elapsedMs,elapsedMs,elapsedSeconds:(e,n=t())=>msToSeconds$1(elapsedMs(e,n)),remaining:remainingMs,remainingMs,remainingSeconds:(e,n=t())=>msToSeconds$1(remainingMs(e,n)),timing,computeDuration:computeDurationMs,computeDurationMs,computeDurationSeconds:e=>msToSeconds$1(computeDurationMs(e))}},createBalanceModel=({balanceTable:e,now:t,setTimeoutFn:n,clearTimeoutFn:a,haveAff:o=()=>!1}={})=>{const i=createBalanceState(e),s=new Set;let l=0;const c=new Map,emit=(e,t)=>{l+=1,t?.id&&c.set(t.id,(c.get(t.id)??0)+1),s.forEach(n=>n(e,t))},u=createBalanceQueryApi({state:i,now:t,haveAff:o,getVersion:()=>l,getEntryVersion:e=>c.get(e)??0}),d=createBalanceMutationApi({state:i,emit,now:t,setTimeoutFn:n,clearTimeoutFn:a,computeDurationMs:u.computeDurationMs});return{onChange:e=>(s.add(e),()=>s.delete(e)),list:u.list,snapshot:u.snapshot,get:u.get,have:u.have,elapsed:u.elapsed,elapsedMs:u.elapsedMs,elapsedSeconds:u.elapsedSeconds,remaining:u.remaining,remainingMs:u.remainingMs,remainingSeconds:u.remainingSeconds,timing:u.timing,computeDuration:u.computeDuration,computeDurationMs:u.computeDurationMs,computeDurationSeconds:u.computeDurationSeconds,gain:d.gain,lose:d.lose,restartLossTimer:d.restartLossTimer,observeServerUse:d.observeServerUse,reset:d.reset,setCallback:d.setCallback,applyVitals:d.applyVitals,dispose:d.dispose}},asSet=(e={})=>Array.isArray(e)?new Set(e.map(e=>String(e).toLowerCase())):new Set(Object.keys(e).map(e=>String(e).toLowerCase())),Gn=0,Yn=1,createAfflictionReference=(e,t={})=>{const n=String(e||"").trim().toLowerCase();if(!n)return{raw:n,name:n,count:null,hasExplicitCount:!1,isCountable:!1};if(t[n])return{raw:n,name:n,count:null,hasExplicitCount:!1,isCountable:!0};const a=n.match(/^(.*?)(?:\s*\((\d+)\)|(\d+))$/),o=Number(a?.[2]??a?.[3]),i=a?.[1]?.trim();return a&&t[i]?{raw:n,name:i,count:o,hasExplicitCount:!0,isCountable:!0}:{raw:n,name:n,count:null,hasExplicitCount:!1,isCountable:!1}},normalizeAfflictionName=(e,t={})=>createAfflictionReference(e,t).name,normalizeAfflictionPriorityName=(e,t={})=>{const n=createAfflictionReference(e,t);return n.isCountable&&n.hasExplicitCount&&Number(n.count)>1?`${n.name}${n.count}`:n.name},formatAfflictionPriorityCommandName=(e,t={})=>{const n=createAfflictionReference(e,t);return n.isCountable?n.hasExplicitCount?`${n.name}${n.count}`:`${n.name}1`:n.name},createAffEntry=(e,t,n,a=null)=>({name:e,have:!1,count:0,min:Number(a?.min??Gn),max:Number(a?.max??Yn),since:0,lastChangeAt:0,order:t,defaultPriority:n,priorityOverride:null,timer:null}),createInitialAfflictionState=(e={})=>{const t=e.types?.countable||{},n=[...e.list||[]].reduce((e,n)=>{const a=normalizeAfflictionName(n,t);return a&&!e.includes(a)&&e.push(a),e},[]),a=Object.entries(e.prios||{}).reduce((e,[n,a])=>{const o=normalizeAfflictionName(n,t);return o&&(e[o]=a),e},{}),o={};return n.forEach((e,n)=>{o[e]=createAffEntry(e,n,a[e]??100,t[e]||null)}),{list:n,defaultPrios:a,state:o,timedConfig:e.types?.timed||{},countableConfig:t,uncurableSet:asSet(e.types?.uncurable||{})}},ensureAffEntry=(e,t,n={},a)=>{const o=normalizeAfflictionName(a,n);return e[o]||(e[o]=createAffEntry(o,Object.keys(e).length,t[o]??100,n[o]||null)),e[o]},toPriorityNumber=e=>{const t=Number(e);return Number.isFinite(t)?t:null},getPriorityValue=e=>e?e.priorityOverride??e.defaultPriority:null,getDefaultPriorityValue=e=>e?.defaultPriority??null,setPriorityValue=(e,t)=>e.priorityOverride===t?{changed:!1,priority:t}:(e.priorityOverride=t,{changed:!0,priority:t}),resetPriorityValue=e=>{const t=e.defaultPriority;return null===e.priorityOverride||void 0===e.priorityOverride?{changed:!1,priority:t}:(e.priorityOverride=null,{changed:!0,priority:t})},setDefaultPriorityValue=(e,t,{shouldSyncCurrentPriorityToDefault:n=e=>null===e.priorityOverride||void 0===e.priorityOverride,syncCurrentPriorityToDefault:a=()=>{}}={})=>{const o=e.defaultPriority;if(o===t)return{changed:!1,currentChanged:!1,priority:t,previousDefaultPriority:o};const i=n(e);return e.defaultPriority=t,i&&a(e,t),{changed:!0,currentChanged:i,priority:t,previousDefaultPriority:o}},createAfflictionPriorityApi=({state:e,defaultPrios:t,countableConfig:n,emit:a})=>{const getEntry=(a,{ensure:o=!1}={})=>o?ensureAffEntry(e,t,n,a):e[normalizeAfflictionName(a,n)]||null;return{ensureAff:e=>getEntry(e,{ensure:!0}),getPriority(e){const t=getEntry(e);return t?getPriorityValue(t):100},getDefaultPriority(e){const t=getEntry(e);return t?getDefaultPriorityValue(t):100},setPriority(e,t,n="manual"){const o=toPriorityNumber(t);if(null===o)return!1;const i=getEntry(e,{ensure:!0}),s=setPriorityValue(i,o);return!!s.changed&&(a("AffPriorityChanged",{name:i.name,source:n,priority:s.priority,defaultPriority:i.defaultPriority}),!0)},resetPriority(e,t="manual"){const n=getEntry(e,{ensure:!0}),o=resetPriorityValue(n);return!!o.changed&&(a("AffPriorityChanged",{name:n.name,source:t,priority:o.priority,defaultPriority:n.defaultPriority,reset:!0}),!0)},setDefaultPriority(e,t,n="manual"){const o=toPriorityNumber(t);if(null===o)return!1;const i=getEntry(e,{ensure:!0}),s=setDefaultPriorityValue(i,o);return!!s.changed&&(a("AffDefaultPriorityChanged",{name:i.name,source:n,priority:s.priority,previousDefaultPriority:s.previousDefaultPriority,currentPriority:getPriorityValue(i)}),s.currentChanged&&a("AffPriorityChanged",{name:i.name,source:n,priority:s.priority,defaultPriority:i.defaultPriority,defaultChanged:!0}),!0)}}},createAfflictionLifecycleApi=({state:e,defaultPrios:t,timedConfig:n,countableConfig:a,emit:o,now:i,setTimeoutFn:s,clearTimeoutFn:l})=>{const clearTimer=e=>{e.timer&&(l?.(e.timer),e.timer=null)},emitAffGot=(e,t,n)=>{o("AffGot",{name:e.name,at:t,source:n,have:e.have,count:e.count,min:e.min,max:e.max,since:e.since,lastChangeAt:e.lastChangeAt})},emitAffLost=(e,t,n)=>{o("AffLost",{name:e.name,at:t,source:n,have:e.have,count:e.count,min:e.min,max:e.max,since:e.since,lastChangeAt:e.lastChangeAt})},emitStackChanged=(e,t)=>{o("AffStackChanged",{name:e.name,count:e.count,min:e.min,max:e.max,have:e.have,at:t})},clampCount=(e,t)=>{const n=Number(t);return Number.isFinite(n)?Math.max(e.min,Math.min(e.max,n)):e.count},scheduleTimedExpiry=e=>{const t=n[e.name];if(!t)return;clearTimer(e);const a=Math.round(1e3*Number(t.length||0));a<=0||!s||(e.timer=s(()=>{lose(e.name,{source:"timed-expiry",at:i()})},a))},applyCountableState=(e,t,n={})=>{const a=n.at??i(),o=n.source||"manual",s=e.have;return e.count=clampCount(e,t),e.have=e.count>0,e.have&&!s&&(e.since=a),e.lastChangeAt=a,emitStackChanged(e,a),!s&&e.have?emitAffGot(e,a,o):s&&!e.have&&emitAffLost(e,a,o),s},got=(n,o={})=>{const s=createAfflictionReference(n,a),l=ensureAffEntry(e,t,a,s.name),c=o.at??i(),u=o.source||"manual",d=l.have;if(a[l.name]){const e=Number(o.count);return applyCountableState(l,Number.isFinite(e)?e:s.hasExplicitCount?s.count:l.count+Number(o.countDelta??1),{at:c,source:u}),l.have?scheduleTimedExpiry(l):clearTimer(l),!0}return!d&&(l.have=!0,l.count=1,l.since=c,l.lastChangeAt=c,scheduleTimedExpiry(l),emitAffGot(l,c,u),!0)},lose=(n,o={})=>{const s=ensureAffEntry(e,t,a,createAfflictionReference(n,a).name),l=o.at??i(),c=o.source||"manual",u=s.have;if(a[s.name]){const e=Number(o.count);return applyCountableState(s,Number.isFinite(e)?e:Number.isFinite(Number(o.countDelta))?s.count-Math.abs(Number(o.countDelta)):0,{at:l,source:c}),clearTimer(s),!0}return!!u&&(s.have=!1,s.count=0,s.lastChangeAt=l,clearTimer(s),emitAffLost(s,l,c),!0)};return{got,lose,applyList(t=[]){const n=new Set,o=new Map,i=new Set;(t||[]).forEach(e=>{const t=createAfflictionReference("string"==typeof e?e:String(e?.name||e?.affliction||e||""),a);if(t.name){if(a[t.name])return t.hasExplicitCount?(i.add(t.name),void o.set(t.name,Math.max(o.get(t.name)??0,t.count))):void(i.has(t.name)||o.set(t.name,(o.get(t.name)??0)+1));n.add(t.name)}}),Object.keys(e).forEach(t=>{a[t]?o.has(t)?got(t,{source:"gmcp-list",count:o.get(t)}):(e[t].have||e[t].count>0)&&lose(t,{source:"gmcp-list"}):n.has(t)?got(t,{source:"gmcp-list"}):e[t].have&&lose(t,{source:"gmcp-list"})})},dispose(){Object.values(e).forEach(clearTimer)}}},secondsToMs=e=>{const t=Number(e);return Number.isFinite(t)?Math.max(0,Math.round(1e3*t)):0},msToSeconds=e=>{const t=Number(e);return Number.isFinite(t)?t/1e3:0},createAfflictionQueryApi=({state:e,list:t,timedConfig:n,countableConfig:a,uncurableSet:o,getPriority:i,now:s,getVersion:l=()=>0,getEntryVersion:c=()=>l()})=>{const buildEntrySnapshot=(e={})=>({name:e.name,have:e.have,count:e.count,min:e.min,max:e.max,since:e.since,lastChangeAt:e.lastChangeAt,order:e.order,defaultPriority:e.defaultPriority,priorityOverride:e.priorityOverride}),u=new Map,getEntrySnapshot=t=>e[t]?(u.has(t)||u.set(t,createSnapshotCache({getVersion:()=>c(t),buildSnapshot:()=>buildEntrySnapshot(e[t])})),u.get(t)()):null,d=createSnapshotCache({getVersion:l,buildSnapshot:()=>Object.keys(e).reduce((e,t)=>(e[t]=getEntrySnapshot(t),e),{})}),elapsedMs=(t,n=s())=>{const o=e[normalizeAfflictionName(t,a)];return o?.have?Math.max(0,n-o.since):0},durationMs=e=>{const t=n[normalizeAfflictionName(e,a)];return t?secondsToMs(t.length):0},remainingMs=(t,n=s())=>{const o=normalizeAfflictionName(t,a),i=e[o],l=durationMs(o);return!i?.have||l<=0?0:Math.max(0,l-elapsedMs(o,n))},timing=(t,n=s())=>{const o=normalizeAfflictionName(t,a),i=e[o];if(!i)return null;const l=elapsedMs(o,n),c=durationMs(o),u=remainingMs(o,n);return{name:o,have:i.have,atMs:n,sinceMs:i.since,lastChangeAtMs:i.lastChangeAt,elapsedMs:l,elapsedSeconds:msToSeconds(l),timedDurationMs:c,timedDurationSeconds:msToSeconds(c),remainingMs:u,remainingSeconds:msToSeconds(u)}};return{snapshot:()=>d(),get:e=>getEntrySnapshot(normalizeAfflictionName(e,a)),list:()=>[...t,...Object.keys(e).filter(e=>!t.includes(e))],getCountablePriorityNames:()=>Object.entries(a).flatMap(([e,t])=>{const n=Math.max(0,Number(t?.max??0)),a=[];for(let o=2;o<=n;o+=1)a.push(`${e}${o}`);return a}),normalizeName:e=>normalizeAfflictionName(e,a),normalizePriorityName:e=>normalizeAfflictionPriorityName(e,a),formatPriorityCommandName:e=>formatAfflictionPriorityCommandName(e,a),haveAff(t){const n=normalizeAfflictionName(t,a);return Boolean(e[n]?.have)},haveAffs:(t=[])=>t.every(t=>{const n=normalizeAfflictionName(t,a);return Boolean(e[n]?.have)}),haveAnAff:(t=[])=>t.some(t=>{const n=normalizeAfflictionName(t,a);return Boolean(e[n]?.have)}),currentSorted:()=>Object.values(e).filter(e=>e.have).sort((e,t)=>{const n=i(e.name),a=i(t.name);return n!==a?n-a:e.order-t.order}).map(e=>e.name),isCountable(e){const t=normalizeAfflictionName(e,a);return Boolean(a[t])},isTimed(e){const t=normalizeAfflictionName(e,a);return Boolean(n[t])},isUncurable(e){const t=normalizeAfflictionName(e,a);return o.has(t)},elapsed:elapsedMs,elapsedMs,elapsedSeconds:(e,t=s())=>msToSeconds(elapsedMs(e,t)),remaining:remainingMs,remainingMs,remainingSeconds:(e,t=s())=>msToSeconds(remainingMs(e,t)),timing}},createAfflictionModel=({affTable:e,now:t,setTimeoutFn:n,clearTimeoutFn:a}={})=>{const{list:o,defaultPrios:i,state:s,timedConfig:l,countableConfig:c,uncurableSet:u}=createInitialAfflictionState(e),d=new Set;let p=0;const m=new Map,emit=(e,t)=>{p+=1,t?.name&&m.set(t.name,(m.get(t.name)??0)+1),d.forEach(n=>n(e,t))},getEntryVersion=e=>m.get(e)??0,g=createAfflictionPriorityApi({state:s,defaultPrios:i,countableConfig:c,emit}),h=createAfflictionLifecycleApi({state:s,defaultPrios:i,timedConfig:l,countableConfig:c,emit,now:t,setTimeoutFn:n,clearTimeoutFn:a}),b=createAfflictionQueryApi({state:s,list:o,timedConfig:l,countableConfig:c,uncurableSet:u,getPriority:g.getPriority,now:t,getVersion:()=>p,getEntryVersion});return{onChange:e=>(d.add(e),()=>d.delete(e)),snapshot:b.snapshot,get:b.get,list:b.list,getCountablePriorityNames:b.getCountablePriorityNames,normalizeName:b.normalizeName,normalizePriorityName:b.normalizePriorityName,formatPriorityCommandName:b.formatPriorityCommandName,got:h.got,lose:h.lose,applyList:h.applyList,setPriority:g.setPriority,resetPriority:g.resetPriority,getPriority:g.getPriority,getDefaultPriority:g.getDefaultPriority,setDefaultPriority:g.setDefaultPriority,haveAff:b.haveAff,haveAffs:b.haveAffs,haveAnAff:b.haveAnAff,currentSorted:b.currentSorted,isCountable:b.isCountable,isTimed:b.isTimed,isUncurable:b.isUncurable,elapsed:b.elapsed,elapsedMs:b.elapsedMs,elapsedSeconds:b.elapsedSeconds,remaining:b.remaining,remainingMs:b.remainingMs,remainingSeconds:b.remainingSeconds,timing:b.timing,dispose:h.dispose}},createDefenseLifecycleApi=({state:e,emit:t})=>{const consumeStaticPriority=(n,a="manual",o={})=>{const i=e[n];return!(!i?.static||!isActiveStaticPriority(resolveDefensePriority(i)))&&(i.priorityOverride=0,t("DefPriorityChanged",{id:n,value:0,source:a,consumed:!0,static:!0,defaultPriority:i.defaultPriority,...o}),!0)},setHave=(n,a,o="manual",i=Date.now())=>{const s=e[n];if(!s||s.have===a)return!1;s.have=a,s.lastChangeAt=i;const l={id:n,source:o,at:i,have:s.have,lastChangeAt:s.lastChangeAt,static:s.static,serverside:s.serverside,preempt:s.preempt};return t(a?"DefGot":"DefLost",l),a&&consumeStaticPriority(n,o,{triggeredByGain:!0}),!0};return{consumeStaticPriority,setHave,setStatic:(n,a,o="manual")=>{const i=e[n];if(!i)return!1;const s=Boolean(a);if(i.static===s)return!1;const l=i.static,c=resolveDefensePriority(i);let u=!1,d=!1;return i.static=s,s&&i.have&&isActiveStaticPriority(c)?(i.priorityOverride=0,d=!0,u=resolveDefensePriority(i)!==c):s||0!==i.priorityOverride||(i.priorityOverride=null,u=resolveDefensePriority(i)!==c),t("DefStaticChanged",{id:n,value:s,previousValue:l,source:o,have:i.have,static:i.static,seedStatic:i.seedStatic,defaultPriority:i.defaultPriority,currentPriority:resolveDefensePriority(i),serverside:i.serverside,preempt:i.preempt}),u&&t("DefPriorityChanged",{id:n,value:resolveDefensePriority(i),source:o,static:i.static,defaultPriority:i.defaultPriority,staticChanged:!0,consumed:d}),!0},setCommand:(n,a,o="manual")=>{const i=e[n];if(!i)return!1;const s=normalizeCommandList(a);return i.command=s,t("DefCommandChanged",{id:n,value:s,source:o}),!0},applyList(t=[],n="gmcp-list"){const a=new Set;(t||[]).forEach(e=>{const t=normalizeObservedDefenseId(e);t&&a.add(t)}),Object.keys(e).forEach(t=>{a.has(t)?(setHave(t,!0,n),e[t].static&&consumeStaticPriority(t,n,{observedActive:!0})):e[t].have&&!e[t].clientOnly&&setHave(t,!1,n)})}}},toDefensePriorityNumber=e=>{const t=toPriorityNumber(e);return null===t?null:t<0?0:t>26?26:t},createDefensePriorityApi=({state:e,emit:t,consumeStaticPriority:n})=>{const getEntry=t=>e[t]||null;return{getPriority(e){const t=getEntry(e);return t?getPriorityValue(t):-1},getDefaultPriority(e){const t=getEntry(e);return t?getDefaultPriorityValue(t):-1},setPriority(e,a,o="manual"){const i=toDefensePriorityNumber(a);if(null===i)return!1;const s=getEntry(e);if(!s)return!1;if(s.static&&!0===s.have&&isActiveStaticPriority(i))return n(e,o,{ignoredWhileActive:!0});const l=setPriorityValue(s,i);return!!l.changed&&(t("DefPriorityChanged",{id:s.id,value:l.priority,source:o,static:s.static,defaultPriority:s.defaultPriority}),!0)},resetPriority(e,a="manual"){const o=getEntry(e);if(!o)return!1;if(o.static&&!0===o.have)return n(e,a,{reset:!0,ignoredWhileActive:!0});const i=resetPriorityValue(o);return!!i.changed&&(t("DefPriorityChanged",{id:o.id,value:i.priority,source:a,static:o.static,defaultPriority:o.defaultPriority,reset:!0}),!0)},setDefaultPriority(e,n,a="manual"){const o=toDefensePriorityNumber(n);if(null===o)return!1;const i=getEntry(e);if(!i)return!1;const s=setDefaultPriorityValue(i,o);return!!s.changed&&(t("DefDefaultPriorityChanged",{id:i.id,value:s.priority,source:a,static:i.static,previousDefaultPriority:s.previousDefaultPriority,currentPriority:getPriorityValue(i)}),s.currentChanged&&t("DefPriorityChanged",{id:i.id,value:s.priority,source:a,static:i.static,defaultPriority:i.defaultPriority,defaultChanged:!0}),!0)}}},createDefenseQueryApi=({state:e,list:t,getVersion:n=()=>0,getEntryVersion:a=()=>n()})=>{const buildDefEntrySnapshot=(e={})=>({id:e.id,have:e.have,lastChangeAt:e.lastChangeAt,order:e.order,defaultPriority:e.defaultPriority,priorityOverride:e.priorityOverride,priority:resolveDefensePriority(e),command:e.command,bals_req:e.bals_req,bals_used:e.bals_used,blocks:e.blocks,skills:e.skills,opps:e.opps,serverside:e.serverside,preempt:e.preempt,static:e.static,clientOnly:e.clientOnly}),o=new Map,getDefSnapshot=t=>e[t]?(o.has(t)||o.set(t,createSnapshotCache({getVersion:()=>a(t),buildSnapshot:()=>buildDefEntrySnapshot(e[t])})),o.get(t)()):null,i=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(t[n]=resolveDefensePriority(e[n]),t),{})}),s=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(t[n]=Number(e[n].defaultPriority??-1),t),{})}),l=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(t[n]=Boolean(e[n]?.static),t),{})}),c=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((t,n)=>(Boolean(e[n]?.static)!==Boolean(e[n]?.seedStatic)&&(t[n]=Boolean(e[n]?.static)),t),{})}),u=createSnapshotCache({getVersion:n,buildSnapshot:()=>Object.keys(e).reduce((e,t)=>(e[t]=getDefSnapshot(t),e),{})});return{snapshot:()=>u(),get:e=>getDefSnapshot(e),list:()=>[...t,...Object.keys(e).filter(e=>!t.includes(e))],isAvailableForClass:(t,n="")=>matchesClass(e[t]?.skills,n),haveDef:t=>Boolean(e[t]?.have),getPriority(t){const n=e[t];return n?resolveDefensePriority(n):-1},getDefaultPriority:t=>Number(e[t]?.defaultPriority??-1),getPriorities:()=>i(),getDefaultPriorities:()=>s(),getStatics:()=>l(),getStaticOverrides:()=>c(),isStatic:t=>Boolean(e[t]?.static)}},createDefenseModel=({defTable:e={},defPrios:t={}}={})=>{const{state:n,list:a}=createInitialDefenseState({defTable:e,defPrios:t}),o=new Set;let i=0;const s=new Map,emit=(e,t)=>{i+=1,t?.id&&s.set(t.id,(s.get(t.id)??0)+1),o.forEach(n=>n(e,t))},getEntryVersion=e=>s.get(e)??0,l=createDefenseLifecycleApi({state:n,emit}),c=createDefensePriorityApi({state:n,emit,consumeStaticPriority:l.consumeStaticPriority}),u=createDefenseQueryApi({state:n,list:a,getVersion:()=>i,getEntryVersion});return{onChange:e=>(o.add(e),()=>o.delete(e)),snapshot:u.snapshot,get:u.get,list:u.list,isAvailableForClass:u.isAvailableForClass,haveDef:u.haveDef,isStatic:u.isStatic,setStatic:l.setStatic,setCommand:l.setCommand,setHave:l.setHave,applyList:l.applyList,setPriority:c.setPriority,setDefaultPriority:c.setDefaultPriority,resetPriority:c.resetPriority,getPriority:c.getPriority,getDefaultPriority:c.getDefaultPriority,getDefaultPriorities:u.getDefaultPriorities,getPriorities:u.getPriorities,getStatics:u.getStatics,getStaticOverrides:u.getStaticOverrides}},Kn=["brokenleftarm","damagedleftarm","mangledleftarm"],Qn=["brokenrightarm","damagedrightarm","mangledrightarm"],createCachePrecacheSupport=({state:e,haveAff:t=()=>!1}={})=>{const isPrecacheBlocked=()=>{const e=Kn.some(e=>t(e)),n=Qn.some(e=>t(e));return!(!e||!n)},buildPrecacheCommands=()=>isPrecacheBlocked()?[]:e.hydration.inventoryKnown&&e.hydration.riftKnown?Object.entries(e.desiredPrecache).flatMap(([t,n])=>{const a=toNumber(e.inventory[t],0),o=toNumber(e.rift[t],0),i=Math.max(0,toNumber(n,0)),s=Math.max(0,i-a),l=Math.max(0,a-i),c=Math.min(s,o);return c>0?[`outr ${c} ${t}`]:l>0?[`inr ${l} ${t}`]:[]}):[];return{getPrecacheCommands:()=>buildPrecacheCommands(),isPrecacheBlocked,isHydrated:()=>e.hydration.inventoryKnown&&e.hydration.riftKnown,getTotal:t=>toNumber(e.inventory[t],0)+toNumber(e.rift[t],0)}},findCaseInsensitiveKey=(e={},t="")=>{if(!e||"object"!=typeof e)return null;const n=String(t).toLowerCase();return Object.keys(e).find(e=>String(e).toLowerCase()===n)||null},createCacheNameNormalizer=({cacheTable:e={},cacheNames:t={}}={})=>{const n=t.herb_name_to_herb||{},a=new Set(Object.keys(e)),toCount=(e,t=1)=>Math.max(0,toNumber(e,t)),resolveName=e=>{if(!e)return"";const t=String(e).trim().toLowerCase();return n[t]||t},resolveCountedName=e=>{const t=resolveName(e);if(a.has(t)||!t.endsWith("s"))return t;const n=resolveName(t.slice(0,-1));return a.has(n)?n:t},parseNameAndAmount=(e,t)=>{const n=String(e||"").trim().toLowerCase();if(!n)return{name:"",amount:Math.max(0,toNumber(t,1))};const o=n.match(/^a group of\s+(\d+)\s+(.+)$/);if(o){const[,e,n]=o,i=resolveCountedName(n);if(a.has(i))return{name:i,amount:toCount(t,toNumber(e,1))}}const i=n.match(/^(\d+)\s+(.+)$/);if(i){const[,e,n]=i,o=resolveCountedName(n);if(a.has(o))return{name:o,amount:toCount(t,toNumber(e,1))}}return{name:resolveCountedName(n),amount:toCount(t,1)}};return{resolveName,parseNameAndAmount,normalizeName:e=>parseNameAndAmount(e).name}},readGmcpPath=(e={},t=[])=>{const n=findCaseInsensitiveKey(e,t.join("."));if(n)return e[n];let a=e;for(const o of t){if(!a||"object"!=typeof a)return;const e=findCaseInsensitiveKey(a,o);if(!e)return;a=a[e]}return a},createCacheStateSupport=({state:e,emit:t=()=>{},cacheTable:n={},cacheNames:a={}}={})=>{const{parseNameAndAmount:o,normalizeName:i}=createCacheNameNormalizer({cacheTable:n,cacheNames:a}),s={invAddsById:new Map,roomRemovesById:new Map,appliedIds:new Set},normalizeItemId=e=>null==e||""===e?"":String(e),adjustInventoryAmount=(n,a,o="inventory-delta")=>!(!n||!(n in e.inventory))&&(e.inventory[n]=Math.max(0,e.inventory[n]+toNumber(a,0)),t("CacheAmountChanged",{bucket:"inventory",name:n,amount:e.inventory[n],source:o}),!0),parseInventoryEntry=(e={})=>{const t=e?.item||e,n=o(t?.name||t?.item||t,t?.amount??t?.count??t?.qty??e?.amount??e?.count??e?.qty);return{id:normalizeItemId(t?.id??e?.id),location:String(e?.location??t?.parentid??t?.location??"inv").toLowerCase(),name:n.name,amount:n.amount,icon:t?.icon??e?.icon,attrib:t?.attrib??e?.attrib}},storeInventoryCurative=(t={})=>{if(!t.id||!t.name||!(t.name in e.inventory))return!1;const n={name:t.name,amount:t.amount,location:t.location||"inv"};return void 0!==t.icon&&null!==t.icon&&(n.icon=t.icon),void 0!==t.attrib&&null!==t.attrib&&(n.attrib=t.attrib),e.inventoryCurativesById[t.id]=n,!0},deleteInventoryCurative=t=>{const n=normalizeItemId(t);return!(!n||!(n in e.inventoryCurativesById))&&(delete e.inventoryCurativesById[n],!0)},deleteInventoryCurativesByName=t=>{let n=!1;return Object.entries(e.inventoryCurativesById).forEach(([a,o])=>{o?.name===t&&(delete e.inventoryCurativesById[a],n=!0)}),n},emitInventoryIdentityChanged=()=>{t("CacheInventoryIdentityChanged",{...e.inventoryCurativesById})},buildResult=({changed:e=!1,identityChanged:t=!1,name:n="",amount:a=0,delta:o=0,source:i=""}={})=>({changed:e,identityChanged:t,name:n,amount:a,delta:o,source:i}),readInventorySnapshot=(e={})=>{const t=readGmcpPath(e,["Char","Items","List"]);if(void 0!==t)return t;const n=readGmcpPath(e,["Items","Inv"]);return void 0!==n?{location:"inv",items:n}:void 0},setAmount=(n,a,o,s="manual")=>{const l=i(a);if(!l||!(l in e[n]))return!1;const c=Math.max(0,toNumber(o,e[n][l]));return e[n][l]=c,t("CacheAmountChanged",{bucket:n,name:l,amount:c,source:s}),!0},observeInventorySnapshot=(n=[])=>{const a={...e.inventory},o={};Object.keys(a).forEach(e=>{a[e]=0}),(n||[]).forEach(e=>{const t=parseInventoryEntry(e);if("inv"===t.location&&t.name&&t.name in a&&(a[t.name]+=t.amount,t.id)){const e={name:t.name,amount:t.amount,location:t.location};void 0!==t.icon&&null!==t.icon&&(e.icon=t.icon),void 0!==t.attrib&&null!==t.attrib&&(e.attrib=t.attrib),o[t.id]=e}}),e.inventory=a,e.inventoryCurativesById=o,e.hydration.inventoryKnown=!0,t("CacheInventoryListApplied",{...e.inventory})},applyRoomPickupTransfer=t=>{if(!t||s.appliedIds.has(t))return null;const n=s.invAddsById.get(t),a=s.roomRemovesById.get(t);if(!n||!a)return null;const o=n.name&&n.name in e.inventory,i=Math.max(0,toNumber(n.amount,0)),l=a.name&&a.name in e.inventory,c=Math.max(0,toNumber(a.amount,0)),u=o&&i>0?n:l&&c>0?a:null;if(s.invAddsById.delete(t),s.roomRemovesById.delete(t),s.appliedIds.add(t),!u)return null;const d=Math.max(0,toNumber(u.amount,0));return!u.name||!(u.name in e.inventory)||d<=0?null:adjustInventoryAmount(u.name,d,"gmcp:room-pickup")?buildResult({changed:!0,name:u.name,amount:d,delta:d,source:"gmcp:room-pickup"}):null},observeRoomPickupCandidate=(e,t)=>{if(!e.id||s.appliedIds.has(e.id))return null;if("inv"===e.location&&"add"===t)s.invAddsById.set(e.id,e);else{if("room"!==e.location||"remove"!==t)return null;s.roomRemovesById.set(e.id,e)}return applyRoomPickupTransfer(e.id)},observeRiftSnapshot=(n={})=>{const a=n.items||n,i=Array.isArray(a)?a:Object.entries(a).map(([e,t])=>({name:e,amount:t})),s={...e.rift};Object.keys(s).forEach(e=>{s[e]=0}),i.forEach(e=>{const t=o(e.name||e.item||e,e.amount??e.count??e.qty??0);t.name&&t.name in s&&(s[t.name]=t.amount)}),e.rift=s,e.hydration.riftKnown=!0,t("CacheRiftListApplied",{...e.rift})},hydrateFromGmcp=(e={})=>{let t=!1;const n=readInventorySnapshot(e);void 0!==n&&(Array.isArray(n)?(observeInventorySnapshot(n),t=!0):"inv"===String(n?.location??n?.Location??"inv").toLowerCase()&&(observeInventorySnapshot(n?.items||[]),t=!0));const a=readGmcpPath(e,["IRE","Rift","List"]);return void 0!==a&&(observeRiftSnapshot(a||{}),t=!0),t};return{observeInventorySnapshot,observeItemDelta:(t={})=>{const n=parseInventoryEntry(t),a=String(t.action||"").toLowerCase(),o=String(t.direction||"").toLowerCase(),i=a||o;let s=!1;if("inv"===n.location){const t=n.id&&e.inventoryCurativesById[n.id]||null;"add"===i?n.name&&n.name in e.inventory&&(s=storeInventoryCurative(n),s&&emitInventoryIdentityChanged()):"remove"===i?(s=!!t&&deleteInventoryCurative(n.id),s&&emitInventoryIdentityChanged()):"update"===i?n.name&&n.name in e.inventory?(s=storeInventoryCurative(n),s&&emitInventoryIdentityChanged()):t&&(s=deleteInventoryCurative(n.id),s&&emitInventoryIdentityChanged()):n.name&&n.name in e.inventory&&(s=storeInventoryCurative(n),s&&emitInventoryIdentityChanged())}const l=observeRoomPickupCandidate(n,i);return l?{...l,identityChanged:s}:buildResult({identityChanged:s})},observeRiftSnapshot,ignoreRiftChange:()=>{},observeRiftOutText:({item:t,name:n,amount:a=1,riftAmount:i}={})=>{const s=o(t||n,a);if(!s.name||!(s.name in e.inventory)||!(s.name in e.rift))return!1;const l=Math.max(0,toNumber(a,s.amount));return!(l<=0)&&(adjustInventoryAmount(s.name,l,"text:rift-out"),setAmount("rift",s.name,i,"text:rift-out"),{name:s.name,amount:l,riftAmount:e.rift[s.name]})},observeRiftInText:({item:t,name:n,amount:a=1,riftAmount:i}={})=>{const s=o(t||n,a);if(!s.name||!(s.name in e.inventory)||!(s.name in e.rift))return!1;const l=Math.max(0,toNumber(a,s.amount));return!(l<=0)&&(adjustInventoryAmount(s.name,-l,"text:rift-in"),setAmount("rift",s.name,i,"text:rift-in"),{name:s.name,amount:l,riftAmount:e.rift[s.name]})},observeInventoryDeltaText:({item:t,name:n,amount:a,delta:i,source:s="text:inventory"}={})=>{const l=o(t||n,a);if(!l.name||!(l.name in e.inventory))return!1;const c=Math.max(0,toNumber(a,l.amount)),u=toNumber(i,0);if(c<=0||0===u)return!1;const d=u>0?c:-c;return adjustInventoryAmount(l.name,d,s),{name:l.name,amount:c,delta:d,inventoryAmount:e.inventory[l.name]}},observeInventoryEmptyText:({item:t,name:n,source:a="text:inventory-empty"}={})=>{const i=o(t||n,0);if(!i.name||!(i.name in e.inventory))return!1;const s=e.inventory[i.name],l=deleteInventoryCurativesByName(i.name);return l&&emitInventoryIdentityChanged(),setAmount("inventory",i.name,0,a),{changed:0!==s||l,identityChanged:l,name:i.name,amount:0,delta:-s,inventoryAmount:e.inventory[i.name],source:a}},observeCurativeConsumedText:({item:t,name:n,amount:a=1}={})=>{const i=o(t||n,a);if(!i.name||!(i.name in e.inventory))return!1;const s=Math.max(0,toNumber(a,i.amount));return!(s<=0)&&(adjustInventoryAmount(i.name,-s,"text:consume"),{name:i.name,amount:s,inventoryAmount:e.inventory[i.name]})},completeObservationBlock:()=>{s.invAddsById.clear(),s.roomRemovesById.clear(),s.appliedIds.clear()},hydrateFromGmcp,setDesiredPrecache:(n={})=>{Object.entries(n).forEach(([t,n])=>{t in e.desiredPrecache&&(e.desiredPrecache[t]=Math.max(0,toNumber(n,0)))}),t("CacheDesiredPrecacheChanged",{...e.desiredPrecache})}}},createCacheModel=({cacheTable:e={},cacheNames:t={},haveAff:n=()=>!1,haveDef:a=()=>!1}={})=>{const o=new Set;let i=0;const s={inventory:{...e},rift:{...e},inventoryCurativesById:{},desiredPrecache:Object.keys(e).reduce((e,t)=>(e[t]=0,e),{}),hydration:{inventoryKnown:!1,riftKnown:!1}},emit=(e,t)=>{i+=1,o.forEach(n=>n(e,t))},l=createSnapshotCache({getVersion:()=>i,buildSnapshot:()=>({inventory:{...s.inventory},rift:{...s.rift},inventoryCurativesById:Object.entries(s.inventoryCurativesById).reduce((e,[t,n])=>(e[t]={...n},e),{}),desiredPrecache:{...s.desiredPrecache},hydration:{...s.hydration}})});return{onChange:e=>(o.add(e),()=>o.delete(e)),snapshot:()=>l(),...createCacheStateSupport({state:s,emit,cacheTable:e,cacheNames:t}),...createCachePrecacheSupport({state:s,haveAff:n,haveDef:a}),getDesiredPrecache:()=>({...s.desiredPrecache})}},Zn={loadOnLogin:!1,flushSafetyMs:120,maxSendPerChunk:20,queueWhilePaused:!1,overrideTab:!1,customPrompt:!0,debug:!1,notices:{affGot:!0,affLost:!0,defGot:!0,defLost:!0,balanceLost:!1,balanceRecovered:!1,trackableGot:!1,trackableLost:!1,priority:!0,output:!1},ss:{transmutation:!0,sipPriority:"health",sipHealthAt:55,sipManaAt:35,mossHealthAt:45,mossManaAt:35,focus:!0,focusOverHerbs:!1,tree:"on",clot:!0,clotAt:19,fracturesAbove:25,manaThreshold:75,batch:!0}},Xn={paused:!0,slowMode:!1,aeonLocked:!1,phase:re.IDLE,startupFailureMessage:""},Jn={name:"",class:"",race:"",color:"",hp:0,maxhp:0,mp:0,maxmp:0,ep:0,maxep:0,wp:0,maxwp:0,bleed:0,rage:0,dead:!1,mount:null,wielded:{left:null,right:null}},ea={id:"",text:"",isPlayer:null,hp:""},ta={id:null,name:"",exits:{},items:{}},getChangedPatchKeys=(e={},t,n)=>Object.keys(e||{}).filter(e=>JSON.stringify(n[e])!==JSON.stringify(t[e])),createSystemConfigApi=({state:e,emit:t})=>({getRuntime:()=>e.runtime,getSettings:()=>e.settings,getBaselineIntent:()=>e.baselineIntent,setRuntime(n={}){const a=e.runtime,o=deepMerge(e.runtime,n),i=Object.keys(o).filter(e=>o[e]!==a[e]);if(!i.length)return!1;const s=a.paused;return e.runtime=o,e.runtime.paused!==s&&t("PauseStateChanged",{paused:e.runtime.paused}),t("RuntimeStateChanged",{current:e.runtime,changedKeys:i}),!0},setSettings(n={},a={}){const o=e.settings,i=deepMerge(e.settings,n),s=getChangedPatchKeys(n,o,i);return!!s.length&&(e.settings=i,a.setBaseline&&(e.baselineIntent=deepMerge(e.baselineIntent,n)),t("SettingsChanged",{current:e.settings,patch:n,changedKeys:s}),!0)},setBaselineIntent(n={}){const a=e.baselineIntent,o=deepMerge(e.baselineIntent,n),i=getChangedPatchKeys(n,a,o);return!!i.length&&(e.baselineIntent=o,t("BaselineIntentChanged",{current:e.baselineIntent,patch:n,changedKeys:i}),!0)}}),shallowEqualRecord=(e={},t={})=>{const n=Object.keys(e||{}),a=Object.keys(t||{});return n.length===a.length&&n.every(n=>e[n]===t[n])},collectChangedFields=(e={})=>{const t={};return Object.entries(e).forEach(([e,[n,a]])=>{n!==a&&(t[e]={previous:n,current:a})}),t},ra=["hp","maxhp","mp","maxmp","ep","maxep","wp","maxwp"],hasOwn$3=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),isDragonClass=(e="")=>/\bdragon\b/i.test(String(e||"")),getDragonColor=(e="")=>{const t=String(e||"").trim().split(/\s+/).filter(Boolean),n=t.findIndex(e=>"dragon"===e.toLowerCase()),a=n>0?t[n-1]:"";return a?a[0].toUpperCase()+a.slice(1).toLowerCase():""},normalizeStatusClass=({className:e="",race:t="",classProvided:n=!1,raceProvided:a=!1}={})=>{const o=String(e||"").trim(),i=String(t||"").trim(),s=isDragonClass(o),l=isDragonClass(i);return s||!n&&a&&l?{className:"Dragon",color:getDragonColor(o)||getDragonColor(i)}:{className:normalizeClassName(o),color:""}},createSystemCharacterApi=({state:e,emit:t})=>({updateVitals(n={}){const a=toParsedGmcpVitals(n),o=a.resourceStats.filter(({balanceState:e})=>void 0===e),i={dead:e.char.dead};ra.forEach(t=>{i[t]=e.char[t]}),o.forEach(({key:t})=>{t in i||(i[t]=e.char[t])}),ra.forEach(t=>{void 0!==a.vitals[t]&&(e.char[t]=a.vitals[t])}),o.forEach(({key:t,value:n})=>{e.char[t]=n}),e.char.dead=e.char.hp<=0;const s={dead:[i.dead,e.char.dead]};ra.forEach(t=>{s[t]=[i[t],e.char[t]]}),o.forEach(({key:t})=>{s[t]=[i[t],e.char[t]]});const l=collectChangedFields(s);return!!Object.keys(l).length&&(t("VitalsUpdated",{current:e.char,hpDiff:e.char.hp-i.hp,mpDiff:e.char.mp-i.mp,changedFields:l}),e.char.dead&&!i.dead&&t("DeathDetected",{hp:e.char.hp,previousHp:i.hp}),!0)},updateStatus(n={}){const a={name:e.char.name,class:e.char.class,race:e.char.race,color:e.char.color};hasOwn$3(n,"name")&&(e.char.name=n.name??""),hasOwn$3(n,"race")&&(e.char.race=n.race??"");const o=hasOwn$3(n,"class"),i=hasOwn$3(n,"race");if(o||i){const t=normalizeStatusClass({className:o?n.class:e.char.class,race:e.char.race,classProvided:o,raceProvided:i});e.char.class=t.className,e.char.color=t.color}const s=collectChangedFields({name:[a.name,e.char.name],class:[a.class,e.char.class],race:[a.race,e.char.race],color:[a.color,e.char.color]});return!!Object.keys(s).length&&(a.class!==e.char.class&&t("ClassChanged",{class:e.char.class,previousClass:a.class}),t("StatusUpdated",{current:e.char,changedFields:s}),!0)},updateWielded(n,a){if("left"!==n&&"right"!==n)return!1;const o=e.char.wielded[n],i=a?{id:a.id??null,name:String(a.name||""),icon:a.icon||null}:null;return(null!==o||null!==i)&&((!o||!i||o.id!==i.id||o.name!==i.name)&&(e.char.wielded[n]=i,t("WieldedUpdated",{side:n,current:i,previous:o}),!0))},updateMount(n){const a=e.char.mount,o=n?{name:String(n.name||""),id:n.id??null}:null;return a!==o&&((!a||!o||a.name!==o.name||a.id!==o.id)&&(e.char.mount=o,t("MountUpdated",{current:o,previous:a}),!0))},getChar:()=>e.char,getClass:()=>e.char.class,checkClass:t=>classesMatch(e.char.class,t),isClass:t=>void 0===t||!!t&&(Array.isArray(t)?t.some(t=>classesMatch(e.char.class,t)):classesMatch(e.char.class,t))}),na=["Text","text","short_desc"],hasOwn$2=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),getProvidedValue=(e,t,n,a="")=>{for(const o of t)if(hasOwn$2(e,o))return e[o]??a;return n},deriveIsPlayer=e=>"-1"===String(e),createSystemTargetApi=({state:e,emit:t})=>({updateTarget(n={}){const a=e.target,o={id:getProvidedValue(n,["id","ID"],a.id),text:getProvidedValue(n,na,a.text),hp:getProvidedValue(n,["HP","hp","hpperc"],a.hp)};if(o.isPlayer=deriveIsPlayer(o.id),o.id===a.id&&o.text===a.text&&o.hp===a.hp&&o.isPlayer===a.isPlayer)return!1;e.target=o;const i=na.some(e=>hasOwn$2(n,e)),s=o.id!==a.id||o.text!==a.text;return!(!i||!s)&&(t("TargetUpdated",{current:e.target,changedFields:collectChangedFields({id:[a.id,o.id],text:[a.text,o.text],isPlayer:[a.isPlayer,o.isPlayer],hp:[a.hp,o.hp]})}),!0)},isTarget(t){if(null==t)return!1;const n=String(t).toLowerCase();return e.target.text.toLowerCase()===n||String(e.target.id).toLowerCase()===n}}),hasOwn$1=(e,t)=>null!==e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,t),createSystemRoomApi=({state:e,emit:t})=>({getRoom:()=>e.room,updateRoom(n={}){const a=e.room,o={id:hasOwn$1(n,"num")?n.num:a.id,name:hasOwn$1(n,"name")?n.name??"":a.name,exits:hasOwn$1(n,"exits")?{...n.exits??{}}:a.exits,items:a.items},i=collectChangedFields({id:[a.id,o.id],name:[a.name,o.name]});return shallowEqualRecord(a.exits,o.exits)||(i.exits={previous:a.exits,current:o.exits}),!!Object.keys(i).length&&(e.room=o,t("RoomUpdated",{current:e.room,changedFields:i}),!0)},setRoomItems(n={}){const a={...n};return!shallowEqualRecord(e.room.items,a)&&(e.room.items=a,t("RoomItemsUpdated",{current:e.room.items}),!0)}}),createSystemModel=(e={})=>{const t={settings:deepMerge(Zn,e.settings||{}),baselineIntent:deepMerge(Zn,e.baselineIntent||{}),runtime:deepMerge(Xn,e.runtime||{}),char:deepMerge(Jn,e.char||{}),target:deepMerge(ea,e.target||{}),room:deepMerge(ta,e.room||{})},n=new Set;let a=0;const emit=(e,t)=>{a+=1,n.forEach(n=>n(e,t))},o=createSystemConfigApi({state:t,emit}),i=createSystemCharacterApi({state:t,emit}),s=createSystemTargetApi({state:t,emit}),l=createSystemRoomApi({state:t,emit}),copySettingsBucket=(e={})=>({...e,notices:{...e.notices||{}},ss:{...e.ss||{}}}),copyCharSnapshot=(e={})=>({...e,mount:e.mount?{...e.mount}:null,wielded:{left:e.wielded?.left?{...e.wielded.left}:null,right:e.wielded?.right?{...e.wielded.right}:null}}),copyTargetSnapshot=(e={})=>({...e}),copyRoomSnapshot=(e={})=>({...e,exits:{...e.exits||{}},items:{...e.items||{}}}),c=createSnapshotCache({getVersion:()=>a,buildSnapshot:()=>({settings:copySettingsBucket(t.settings),baselineIntent:copySettingsBucket(t.baselineIntent),runtime:{...t.runtime},char:copyCharSnapshot(t.char),target:copyTargetSnapshot(t.target),room:copyRoomSnapshot(t.room)})});return{onChange:e=>(n.add(e),()=>n.delete(e)),snapshot:()=>c(),getRuntime:o.getRuntime,getSettings:o.getSettings,getBaselineIntent:o.getBaselineIntent,setRuntime:o.setRuntime,setSettings:o.setSettings,setBaselineIntent:o.setBaselineIntent,updateVitals:i.updateVitals,updateStatus:i.updateStatus,updateWielded:i.updateWielded,updateMount:i.updateMount,getChar:i.getChar,getClass:i.getClass,checkClass:i.checkClass,isClass:i.isClass,updateTarget:s.updateTarget,isTarget:s.isTarget,getRoom:l.getRoom,updateRoom:l.updateRoom,setRoomItems:l.setRoomItems}},createModels=({adapter:e,seedData:t,options:n={},now:a})=>{const o=Boolean(n.debug),i=createSystemModel({settings:{debug:o},baselineIntent:{debug:o}}),s=createAfflictionModel({affTable:t.affTable,now:a,setTimeoutFn:e.setTimeout,clearTimeoutFn:e.clearTimeout}),l=createBalanceModel({balanceTable:t.balanceTable,haveAff:e=>s.haveAff(e),now:a,setTimeoutFn:e.setTimeout,clearTimeoutFn:e.clearTimeout}),c=createDefenseModel({defTable:t.defTable,defPrios:t.defPrios});return{systemModel:i,affModel:s,balanceModel:l,defModel:c,cacheModel:createCacheModel({cacheTable:t.cacheTable,cacheNames:t.cacheNames,haveAff:e=>s.haveAff(e),haveDef:e=>c.haveDef(e)}),limbModel:createLimbModel({now:a,setTimeoutFn:e.setTimeout,clearTimeoutFn:e.clearTimeout})}},aa="parry",oa=25,resetParryPriorities=e=>{Object.keys(be.long).forEach(t=>{e.setDefaultPriority(`parrying ${t}`,0,aa),e.get(`guarding ${t}`)&&e.setDefaultPriority(`guarding ${t}`,0,aa)})},createCombatDomainService=({affModel:e,defModel:t,limbModel:n,systemModel:a,queueController:o,serverside:i})=>({observeLimbHit:({limb:t,amount:a,source:o="manual",at:s}={})=>applyObservedLimbHit({limbModel:n,affModel:e,serverside:i,limb:t,amount:a,source:o,at:s}),observeLimbReset:({limb:t,source:a="manual",at:o}={})=>applyObservedLimbReset({limbModel:n,affModel:e,serverside:i,limb:t,source:a,at:o}),observeLimbStage:({limb:t,stage:a,source:o="manual",at:s}={})=>applyObservedLimbStage({limbModel:n,affModel:e,serverside:i,limb:t,stage:a,source:o,at:s}),parry(e){resetParryPriorities(t);const n=be.short[e]||e,i=t.get(`guarding ${n}`);let s;return i&&a.isClass(i.skills)?(t.setDefaultPriority(`guarding ${n}`,oa,aa),s=`guard ${n}`):(t.setDefaultPriority(`parrying ${n}`,oa,aa),a.isClass("Dragon")?(t.setCommand(`parrying ${n}`,`clawparry ${n}`,aa),s=`clawparry ${n}`):(t.setCommand(`parrying ${n}`,`parry ${n}`,aa),s=`parry ${n}`)),o.prepend("freeQueue",s),{limbName:n,command:s}}}),isRecordValue=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),hasSupportedSchemaVersion=e=>isRecordValue(e)&&isSupportedPersistenceSchemaVersion(e.schemaVersion),createPersistenceStore=({adapter:e,key:t="nexSys4Settings",noticeCenter:n}={})=>{let a=!1;const noticeSchemaResetIfNeeded=e=>{a||!isRecordValue(e)||null==e.schemaVersion||isSupportedPersistenceSchemaVersion(e.schemaVersion)||(a=!0,n?.publish?.("persistence","Saved nexSys4 settings were in an older format and have been reset to defaults.",{force:!0}))},read=()=>{const n=e.getVariable(t);return noticeSchemaResetIfNeeded(n),{key:t,exists:hasSupportedSchemaVersion(n),snapshot:deepClone$1(normalizePersistenceSnapshot(n))}},load=()=>read().snapshot,save=(n={})=>{const a=deepClone$1(normalizePersistenceSnapshot(n,{assumeCurrentVersion:!0}));return e.setVariable(t,a),deepClone$1(a)};return{key:t,read,load,save}},createNoticeCenter=({adapter:e,systemModel:t})=>({publish:(n,a,o={})=>{const i=t.getSettings().notices||{},{force:s=!1,...l}=o;(s||!1!==i[n])&&e.notice(String(a),{category:n,...l})}}),ia=Object.freeze({PLANNED:"planned",SENT:"sent",AWAITING_COMPLETION:"awaiting-completion",COMPLETED:"completed",EXPIRED:"expired",RECOVERING:"recovering"}),createOutputCycle=({adapter:e,dispatchCommands:t,systemModel:n,serverside:a,outputPlanner:o,noticeCenter:i,options:s={}}={})=>{const now=()=>e?.now?.()??Date.now();let l=[],c="",u=1,d=null,p=null,m=null,g=[];const h=`echo SystemEvent ${ne.OUTPUT_COMPLETE}`,b=Math.max(50,Number(s.outputCompletionTimeoutMs||1e3)),y=Math.max(0,Number(s.maxOutputRecoveryAttempts??2)),clearCompletionTimer=()=>{m&&(e?.clearTimeout?.(m),m=null)},recordBatchState=(e,t,n={})=>{if(!e)return null;const a=now();return e.state=t,e.stateHistory.push({state:t,at:a}),Object.assign(e,n),e},snapshotBatch=e=>e?{id:e.id,source:e.source,state:e.state,stateHistory:e.stateHistory.map(e=>({...e})),completionRequired:e.completionRequired,recoveryAttempts:e.recoveryAttempts,maxRecoveryAttempts:e.maxRecoveryAttempts,commands:[...e.commands],dispatchedCommands:[...e.dispatchedCommands],serversideCommands:[...e.serversideCommands],batchCount:e.batchCount,createdAt:e.createdAt,sentAt:e.sentAt??null,completedAt:e.completedAt??null,expiredAt:e.expiredAt??null,lastRecoveryAt:e.lastRecoveryAt??null}:null,storeLastBatch=e=>{p=snapshotBatch(e)},createBatch=({source:e,intents:t=[],commands:n,serversideCommands:a,maxCommands:o})=>{const i=t.some(e=>!0===e?.requiresCompletion),s=i?n.filter(e=>e!==h):[...n],l=i?chunkCommandsWithTrailing(s,{maxEntries:o,trailing:[h]}):chunkCommands(s,o);return{id:u++,source:e,state:ia.PLANNED,stateHistory:[{state:ia.PLANNED,at:now()}],completionRequired:i,recoveryAttempts:0,maxRecoveryAttempts:y,commands:[...s],dispatchedCommands:i?[...s,h]:[...s],serversideCommands:[...a],batches:l,batchCount:l.length,createdAt:now(),observedOutbound:!1}},dispatchBatchBatches=(e,n,a={})=>{n.forEach((o,i)=>{t(o,{source:a.source||"output-cycle",cycleSource:e.source,batch:i+1,batchCount:n.length,outputBatchId:e.id,outputBatchState:e.state,recoveryAttempt:a.recoveryAttempt||0})})},scheduleCompletionTimeout=t=>{clearCompletionTimer(),m=e?.setTimeout?.(()=>{if(d&&d.id===t.id&&d.completionRequired){if(recordBatchState(d,ia.EXPIRED,{expiredAt:now()}),c="",d.recoveryAttempts>=d.maxRecoveryAttempts)return i?.publish?.("output",`Output completion confirmation expired after ${d.maxRecoveryAttempts} recovery probe(s).`,{force:!0}),storeLastBatch(d),d=null,void clearCompletionTimer();d.recoveryAttempts+=1,recordBatchState(d,ia.RECOVERING,{lastRecoveryAt:now()}),dispatchBatchBatches(d,[[h]],{source:"output-cycle-recovery",recoveryAttempt:d.recoveryAttempts}),scheduleCompletionTimeout(d)}},b)};return{planAndSend:({source:e="prompt"}={})=>{const t=n.getRuntime(),i=n.getSettings();if(t.paused)return[];if(d)return[];const s="output-complete"===e?[...g]:[];g=[];const u=o.plan({source:e,injectedCommands:l,suppressedServersideCommands:s});if(!u.commands.length)return l=[],[];const p=Math.max(1,Number(i.maxSendPerChunk||20)),m=createBatch({source:e,intents:u.intents,commands:u.commands,serversideCommands:u.serversideCommands,maxCommands:p}),h=m.dispatchedCommands.join("");return h===c?[]:(m.serversideCommands.length&&!m.observedOutbound&&(a.observeOutbound(m.serversideCommands),m.observedOutbound=!0),recordBatchState(m,ia.SENT,{sentAt:now()}),dispatchBatchBatches(m,m.batches),c=h,m.completionRequired?(d=m,recordBatchState(d,ia.AWAITING_COMPLETION),scheduleCompletionTimeout(d)):(recordBatchState(m,ia.COMPLETED,{completedAt:now()}),storeLastBatch(m)),l=[],u.commands)},markComplete:()=>!!d&&(clearCompletionTimer(),g=[...d.serversideCommands],d.serversideCommands.length&&a.acknowledgeCommands(d.serversideCommands),recordBatchState(d,ia.COMPLETED,{completedAt:now()}),storeLastBatch(d),d=null,!0),isWaitingForCompletion:()=>d?.state===ia.AWAITING_COMPLETION||d?.state===ia.RECOVERING,isBlockingOutput:()=>Boolean(d),getLifecycleState:()=>({activeBatch:snapshotBatch(d),lastBatch:snapshotBatch(p)}),invalidate(){c=""},injectCommands(e=[]){l=[...l,...e.filter(Boolean)]},dispose(){clearCompletionTimer(),d=null,g=[]}}},createRuntimeServices=({adapter:e,options:t={},models:n,controllers:a})=>{const{systemModel:o,affModel:i,defModel:s,limbModel:l}=n,{commandDispatcher:c,queueController:u,serverside:d,defensePlanner:p,precachePlanner:m,outputPlanner:g}=a,h=createNoticeCenter({adapter:e,systemModel:o});return{persistence:createPersistenceStore({adapter:e,key:t.persistenceKey||"nexSys4Settings",noticeCenter:h}),combatService:createCombatDomainService({affModel:i,defModel:s,limbModel:l,systemModel:o,queueController:u,serverside:d}),noticeCenter:h,defensePlanner:p,precachePlanner:m,outputCycle:createOutputCycle({adapter:e,dispatchCommands:c.sendCommands,systemModel:o,serverside:d,outputPlanner:g,noticeCenter:h,options:t})}},createRuntimeDependencies=({adapter:e,seedData:t,options:n={}})=>{const now=()=>e.now(),a=createModels({adapter:e,seedData:t,options:n,now}),o=createDomainControllers({adapter:e,seedData:t,options:n,now,models:a}),i=createRuntimeServices({adapter:e,options:n,models:a,controllers:o});return{now,...o,...a,...i}},createRuntimeFlushCoordinator=({adapter:e,systemModel:t,serverside:n,outputCycle:a,flushGmcpBuffer:o})=>{const now=()=>e?.now?.()??Date.now(),i={started:!1,safetyTimer:null,dirty:!1,flushing:!1,dirtyAt:null},clearSafetyTimer=()=>{i.safetyTimer&&(e.clearTimeout(i.safetyTimer),i.safetyTimer=null)},isRuntimeReady=()=>isRuntimeReadyPhase(t.getRuntime().phase),hasPendingSafetyWork=()=>{const e="function"!=typeof n.isDirty||n.isDirty();return i.dirty&&e},scheduleSafetyFlush=()=>{const n=t.getSettings(),a=Number(n.flushSafetyMs||120),o=Number(n.flushSafetyMaxWaitMs||500),s=now();i.dirtyAt||(i.dirtyAt=s),clearSafetyTimer();const l=s-i.dirtyAt,c=l>=o?0:Math.min(a,o-l);i.safetyTimer=e.setTimeout(()=>{i.safetyTimer=null,hasPendingSafetyWork()?(i.dirtyAt=null,flushCycle("safety-flush")):i.dirtyAt=null},c)},invalidateOutput=()=>{i.dirty=!0,a.invalidate?.()},markDirty=(e="dirty")=>{if(invalidateOutput(),n.markDirty(e),!isRuntimeReady())return clearSafetyTimer(),void(i.dirtyAt=null);i.flushing||a.isBlockingOutput?.()||scheduleSafetyFlush()},flushCycle=(e="prompt")=>{if(!i.started||i.flushing)return[];if(clearSafetyTimer(),!isRuntimeReady())return[];i.flushing=!0;try{if(o(),t.getRuntime().paused)return i.dirty=!1,[];const n=a.planAndSend({source:e});return i.dirty=a.isBlockingOutput()&&0===n.length,i.dirty||(i.dirtyAt=null),n}finally{i.flushing=!1}};return{start(){i.started=!0},stop(){i.started=!1,i.dirty=!1,i.flushing=!1,i.dirtyAt=null,clearSafetyTimer()},isStarted:()=>i.started,isFlushing:()=>i.flushing,invalidateOutput,markDirty,flushCycle}},cell=(e="",t="",n="")=>({text:e,fg:t,bg:n}),createDefaultCureColors=()=>({antimony:{fg:"olive",bg:""},argentum:{fg:"royalblue",bg:""},arsenic:{fg:"",bg:""},aurum:{fg:"ForestGreen",bg:""},azurite:{fg:"",bg:""},calcite:{fg:"slategray",bg:""},cinnabar:{fg:"greenyellow",bg:""},cuprum:{fg:"DeepSkyBlue",bg:""},ferrum:{fg:"DarkOrange",bg:""},magnesium:{fg:"Red",bg:""},plumbum:{fg:"Gold",bg:""},realgar:{fg:"firebrick",bg:""},stannum:{fg:"Tan",bg:""},caloric:{fg:"darkseagreen",bg:""},mending:{fg:"orchid",bg:""},epidermal:{fg:"sienna",bg:""},restoration:{fg:"darkviolet",bg:""},health:{fg:"lightpink",bg:""},writhe:{fg:"PaleGoldenRod",bg:"darkslategray"}}),createDefaultVars=()=>({blackout:!1,paused:cell("","red"),retard:cell("","blue"),aeon:cell("","red"),h:cell("0","green"),m:cell("0","green"),e:cell("0","green"),w:cell("0","green"),maxh:cell(""),maxm:cell(""),maxe:cell(""),maxw:cell(""),ph:cell("100%","green"),pm:cell("100%","green"),pe:cell("100%"),pw:cell("100%"),diffh:cell("","green"),diffm:cell("","green"),diffhp:cell("","green"),diffmp:cell("","green"),target:cell("","pink"),targetHP:cell("","green"),eq:cell(""),bal:cell(""),c:cell(""),k:cell(""),d:cell(""),b:cell(""),shield:cell("","cyan"),prismatic:cell("","magenta"),rage:cell("","red"),karma:cell("","green"),essence:cell("","purple"),kai:cell("","blue")}),createDefaultAffs=(e=createDefaultCureColors())=>({aeon:{text:"ae",...e.cinnabar},addiction:{text:"add",...e.ferrum},anorexia:{text:"ANO",...e.epidermal},asthma:{text:"AST",...e.aurum},blindness:{text:"unb",...e.arsenic},clumsiness:{text:"clu",...e.aurum},confusion:{text:"con",...e.stannum},dazed:{text:"dzd",...e.cinnabar},deafness:{text:"und",...e.calcite},epilepsy:{text:"epi",...e.plumbum},impatience:{text:"IMPAT",...e.plumbum},paralysis:{text:"PAR",...e.magnesium},prone:{text:"pr",fg:"",bg:""},recklessness:{text:"reck",...e.argentum},slickness:{text:"SLI",...e.magnesium},stupidity:{text:"st",...e.plumbum},weariness:{text:"wea",...e.aurum}}),createDefaultPromptState=()=>{const e=createDefaultCureColors();return{vars:createDefaultVars(),affs:createDefaultAffs(e),cureColors:e}},sa={"&":"&","<":"<",">":">",'"':""","'":"'"},escapeHtml=e=>String(e??"").replace(/[&<>"']/g,e=>sa[e]),renderChunk=(e,t="",n="")=>{if(""===e||null==e)return"";const a=[];return t&&a.push(`color:${t}`),n&&a.push(`background-color:${n}`),`<span${a.length?` style="${a.join(";")}"`:""}>${escapeHtml(e)}</span>`},createPromptBuilder=({vars:e,affs:t,cureColors:n,renderAffsHtml:a,renderDiffHtml:o,renderTargetHtml:i,renderVarHtml:s,renderChunkHtml:l=renderChunk})=>{const c=[],u={vars:e,affs:t,cureColors:n,add(t,n,a){if(""===t||null==t)return u;const o="string"==typeof t?e[t]:null;return o&&"object"==typeof o&&"text"in o?c.push("function"==typeof s?s(t):l(o.text,o.fg,o.bg)):c.push(l(t,n,a)),u},addHTML:e=>(e&&c.push(String(e)),u),addAffs:()=>(c.push(a()),u),addDiff:()=>(c.push(o()),u),addTarget:()=>(c.push(i()),u),toHTML:()=>`<span class="nexsys-prompt">${c.join("")}</span>`};return u},la=new Set(["diffh","diffm","diffhp","diffmp"]),ca=new Set(["target","targetHP"]),getCellSignature=(e={})=>`${String(e.text??"")}\0${String(e.fg??"")}\0${String(e.bg??"")}`,createPromptRenderer=({state:e,getComposer:t,getSortedAffNames:n,getAffSnapshot:a,renderChunkHtml:o=renderChunk})=>{const i=new Map,s=new Map,l=new Map,c=new Map;let u="",d="",p="",m="",g=!0,h=!0,b=!0,y=!0,v=null,S=Boolean(e.vars.blackout),x=[];const markPromptDirty=()=>{y=!0},markVarsDirty=(t=[])=>{Array.isArray(t)&&t.length&&(t.forEach(t=>{const n=e.vars[t];n&&"object"==typeof n&&"text"in n&&s.delete(t),la.has(t)&&(h=!0),ca.has(t)&&(b=!0)}),y=!0)},syncExternalVarMutations=()=>{let t=!1;const n=new Set;Object.keys(e.vars||{}).forEach(a=>{n.add(a);const o=e.vars[a];if(!o||"object"!=typeof o||!("text"in o))return void((s.has(a)||i.has(a))&&(s.delete(a),i.delete(a),t=!0));const l=getCellSignature(o);s.get(a)!==l&&(s.delete(a),i.delete(a),t=!0,la.has(a)&&(h=!0),ca.has(a)&&(b=!0))}),[...s.keys()].forEach(e=>{n.has(e)||(s.delete(e),i.delete(e),t=!0,la.has(e)&&(h=!0),ca.has(e)&&(b=!0))});const a=Boolean(e.vars.blackout);a!==S&&(S=a,t=!0),t&&(y=!0)},syncExternalAffMutations=()=>{if(g||!x.length)return;let t=!1;x.forEach(n=>{const a=getCellSignature(e.affs[n]||{});l.get(n)!==a&&(t=!0)}),t&&(g=!0,y=!0)},syncExternalCureColorMutations=()=>{let t=!1;const n=new Set;Object.keys(e.cureColors||{}).forEach(a=>{n.add(a);const o=getCellSignature(e.cureColors[a]||{});c.get(a)!==o&&(t=!0)}),[...c.keys()].forEach(e=>{n.has(e)||(t=!0)}),t&&(y=!0)},renderVarHtml=t=>{const n=e.vars[t];if(!n||"object"!=typeof n||!("text"in n))return"";const a=getCellSignature(n);return s.get(t)===a&&i.has(t)||(i.set(t,o(n.text,n.fg,n.bg)),s.set(t,a)),i.get(t)||""},buildAffsHtml=()=>{const t=n()||[],{affs:i}=e;if(x=[...t],l.clear(),!t.length)return'<span class="nexsys-prompt-affs mono"></span>';const s=[o("[","brown")];for(let e=0;e<t.length;e+=1){const n=t[e],c=i[n]||{text:n,fg:"",bg:""},u="function"==typeof a&&a(n)||{},d=Number(u.max)>1&&Number.isFinite(Number(u.count))?`(${Number(u.count)})`:"";l.set(n,getCellSignature(i[n]||{}));const p=e<t.length-1?" ":"";s.push(o(`${c.text}${d}${p}`,c.fg,c.bg))}return s.push(o("]","brown")),`<span class="nexsys-prompt-affs mono">${s.join("")}</span>`},renderAffsHtml=()=>(g&&(u=buildAffsHtml(),g=!1),u),renderDiffHtml=()=>{if(h){const t=e.vars.diffh||{},n=e.vars.diffhp||{},a=e.vars.diffm||{},i=e.vars.diffmp||{},s=[];t.text&&(s.push(o(`${t.text}h`,t.fg,t.bg)),n.text&&s.push(o(`(${n.text})`,n.fg,n.bg))),a.text&&(s.length&&s.push(o(", ")),s.push(o(`${a.text}m`,a.fg,a.bg)),i.text&&s.push(o(`(${i.text})`,i.fg,i.bg))),d=s.join(""),h=!1}return d},renderTargetHtml=()=>{if(b){const t=e.vars.target||{},n=e.vars.targetHP||{},a=[];(t.text||n.text)&&(a.push(o(" [")),t.text&&a.push(renderVarHtml("target")),t.text&&n.text&&a.push(o(": ")),n.text&&a.push(renderVarHtml("targetHP")),a.push(o("] "))),p=a.join(""),b=!1}return p},resetTransients=()=>{const{vars:t}=e,n=["diffh","diffm","diffhp","diffmp"].filter(e=>{const n=t[e];return!(!n||""===n.text)&&(n.text="",!0)});n.length&&markVarsDirty(n)};return{render(){const n=t();if("function"!=typeof n)return"";if(syncExternalVarMutations(),syncExternalAffMutations(),syncExternalCureColorMutations(),!y&&n===v)return m;const a=createPromptBuilder({vars:e.vars,affs:e.affs,cureColors:e.cureColors,renderAffsHtml,renderDiffHtml,renderTargetHtml,renderVarHtml,renderChunkHtml:o});try{n(a)}catch(i){return console.error("nexSys4 prompt compose error",i),""}return m=a.toHTML(),y=!1,v=n,Object.keys(e.cureColors||{}).forEach(t=>{c.set(t,getCellSignature(e.cureColors[t]||{}))}),[...c.keys()].forEach(t=>{t in(e.cureColors||{})||c.delete(t)}),resetTransients(),m},markAffsDirty(){g=!0,y=!0},isAffDirty:()=>g,markDiffDirty(){h=!0,y=!0},markTargetDirty(){b=!0,y=!0},markVarsDirty,markPromptDirty,isPromptDirty:()=>y}},defaultCompose=e=>{const{vars:t}=e;t.blackout?e.add("-","reset"):(e.add("paused"),e.add("aeon"),e.add("retard"),e.add("h"),e.add(`(${t.ph.text}), `,t.h.fg,t.h.bg),e.add("m"),e.add(`(${t.pm.text}) `,t.m.fg,t.m.bg),t.rage.text&&Number(t.rage.text)>0&&e.add(`${t.rage.text}R `,t.rage.fg,t.rage.bg),t.karma.text&&e.add(`${t.karma.text}K `,t.karma.fg,t.karma.bg),e.add("eq"),e.add("bal"),e.add("|"),e.add("c"),e.add("k"),e.add("d"),e.add("b"),e.add(" "),e.addAffs(),e.addDiff())},ua=new Set(["diffh","diffm","diffhp","diffmp"]),da=new Set(["target","targetHP"]),clampPct=e=>{const t=Number(e);return Number.isFinite(t)?t<0?0:t>100?100:t:0},colorGradation=e=>{const t=clampPct(e),n=t<75?50:Math.abs(t-100)/2+25;return`hsl(${(1.2*t).toFixed(0)}, 100%, ${n}%)`},colorPercentage=e=>{const t=Number(e)||0;return t>75?"green":t>=33?"yellow":"red"},createPromptPresenter=({publicEvents:e,affModel:t,defModel:n,balanceModel:a,systemModel:o,renderPrompt:i}={})=>{const s=createDefaultPromptState();let l=defaultCompose;const c=createPromptRenderer({state:s,getComposer:()=>l,getSortedAffNames:()=>t?.currentSorted&&t.currentSorted()||[],getAffSnapshot:e=>t?.get?.(e)||null}),isRecord=e=>e&&"object"==typeof e&&!Array.isArray(e),isCellLike=e=>isRecord(e)&&("text"in e||"fg"in e||"bg"in e),normalizeCellField=e=>null==e?"":String(e),getVarRegion=e=>ua.has(e)?"diff":da.has(e)?"target":"",ensureVarCell=e=>{const t=s.vars[e];if(t&&"object"==typeof t&&"text"in t)return t;if(e in s.vars)return null;const n={text:"",fg:"",bg:""};return s.vars[e]=n,c.markPromptDirty(),n},applyCell=(e,t={},n={})=>{const a=n.create?ensureVarCell(e):s.vars[e];if(!a||"object"!=typeof a||!("text"in a))return!1;let o=!1;if("text"in t){const e=normalizeCellField(t.text);a.text!==e&&(a.text=e,o=!0)}if("fg"in t){const e=normalizeCellField(t.fg);a.fg!==e&&(a.fg=e,o=!0)}if("bg"in t){const e=normalizeCellField(t.bg);a.bg!==e&&(a.bg=e,o=!0)}return!!o&&(c.markVarsDirty([e]),"diff"===n.region&&c.markDiffDirty(),"target"===n.region&&c.markTargetDirty(),!0)},applyFlag=(e,t)=>{const n=Boolean(t);return s.vars[e]!==n&&(s.vars[e]=n,c.markPromptDirty(),!0)},patchVars=(e={})=>{if(!isRecord(e))return!1;let t=!1;return Object.entries(e).forEach(([e,n])=>{const a=s.vars[e],o=getVarRegion(e);"boolean"!=typeof a?"boolean"!=typeof n||void 0!==a?t=applyCell(e,isCellLike(n)?n:{text:n},{create:!0,region:o})||t:s.vars[e]!==n&&(s.vars[e]=n,c.markPromptDirty(),t=!0):t=applyFlag(e,n)||t}),t},patchAffs=(e={})=>{if(!isRecord(e))return!1;let t=!1;return Object.entries(e).forEach(([e,n])=>{if(null===n)return void(e in s.affs&&(delete s.affs[e],t=!0));const a=isCellLike(n)?n:{text:n},o=s.affs[e],i=o&&"object"==typeof o?o:s.affs[e]={text:"",fg:"",bg:""};["text","fg","bg"].forEach(e=>{if(!(e in a))return;const n=normalizeCellField(a[e]);i[e]!==n&&(i[e]=n,t=!0)})}),t&&c.markAffsDirty(),t},patchCureColors=(e={})=>{if(!isRecord(e))return!1;let t=!1;return Object.entries(e).forEach(([e,n])=>{if(null===n)return void(e in s.cureColors&&(delete s.cureColors[e],t=!0));const a=isRecord(n)?n:{fg:n},o=s.cureColors[e],i=o&&"object"==typeof o?o:s.cureColors[e]={fg:"",bg:""};["fg","bg"].forEach(e=>{if(!(e in a))return;const n=normalizeCellField(a[e]);i[e]!==n&&(i[e]=n,t=!0)})}),t&&c.markPromptDirty(),t},updateBalanceGlyphs=()=>{applyCell("eq",{text:a?.have?.(Fn.EQUILIBRIUM)?"e":""}),applyCell("bal",{text:a?.have?.(Fn.BALANCE)?"x":""})},updateDefGlyphs=()=>{applyCell("c",{text:n?.haveDef?.("cloak")?"c":""}),applyCell("k",{text:n?.haveDef?.("kola")?"k":""}),applyCell("d",{text:n?.haveDef?.("deafness")?"d":""}),applyCell("b",{text:n?.haveDef?.("blindness")?"b":""}),applyCell("shield",{text:n?.haveDef?.("shield")?"(":""}),applyCell("prismatic",{text:n?.haveDef?.("prismatic")?"[":""})},pctOf=(e,t)=>{const n=Number(e)||0,a=Number(t)||0;return a>0?100*n/a:0},onVitals=(e={})=>{const t=e.current||o?.snapshot?.().char||{},n=pctOf(t.hp,t.maxhp),a=pctOf(t.mp,t.maxmp),i=pctOf(t.ep,t.maxep),s=pctOf(t.wp,t.maxwp);applyCell("h",{text:t.hp??"",fg:colorGradation(n)}),applyCell("m",{text:t.mp??"",fg:colorGradation(a)}),applyCell("e",{text:t.ep??"",fg:colorGradation(i)}),applyCell("w",{text:t.wp??"",fg:colorGradation(s)}),applyCell("maxh",{text:t.maxhp??""}),applyCell("maxm",{text:t.maxmp??""}),applyCell("maxe",{text:t.maxep??""}),applyCell("maxw",{text:t.maxwp??""}),applyCell("ph",{text:`${n.toFixed(1)}%`}),applyCell("pm",{text:`${a.toFixed(1)}%`}),applyCell("pe",{text:`${i.toFixed(1)}%`}),applyCell("pw",{text:`${s.toFixed(1)}%`});const l=Number(e.hpDiff||0),c=Number(e.mpDiff||0),u=Number(t.maxhp)||0,d=Number(t.maxmp)||0;if(l){const e=l<0?"red":"green";applyCell("diffh",{text:`${l>0?"+":""}${l}`,fg:e},{region:"diff"}),applyCell("diffhp",{text:u?`${(l/u*100).toFixed(1)}%`:"",fg:e},{region:"diff"})}if(c){const e=c<0?"red":"green";applyCell("diffm",{text:`${c>0?"+":""}${c}`,fg:e},{region:"diff"}),applyCell("diffmp",{text:d?`${(c/d*100).toFixed(1)}%`:"",fg:e},{region:"diff"})}"karma"in t&&applyCell("karma",{text:t.karma??""}),"rage"in t&&applyCell("rage",{text:t.rage??""}),"essence"in t&&applyCell("essence",{text:t.essence??""}),"kai"in t&&applyCell("kai",{text:t.kai??""}),applyFlag("blackout",t.dead)},onRuntimeChange=()=>{const e=o?.snapshot?.().runtime||{};applyCell("retard",{text:e.slowMode?"(r)":""}),applyCell("paused",{text:e.paused?"(p)":""}),applyCell("aeon",{text:e.aeonLocked?"(a)":""})},onTargetChange=()=>{const e=o?.snapshot?.().target||{};applyCell("target",{text:e.text||""},{region:"target"}),applyCell("targetHP",{text:e.hp||""},{region:"target"});const t=parseInt(e.hp,10);Number.isFinite(t)&&applyCell("targetHP",{fg:colorGradation(t)},{region:"target"})},onAffEvent=(e={})=>{"aeon"===e?.name&&applyCell("aeon",{text:t?.haveAff?.("aeon")?"(a)":""}),c.markAffsDirty()},onDefEvent=()=>updateDefGlyphs(),onBalanceEvent=()=>updateBalanceGlyphs(),u=[];let d=!1;const subscribe=(t,n)=>{if(!e||"function"!=typeof e.on)return;const a=e.on(t,n);"function"==typeof a&&u.push(a)};return{start:()=>{d||(d=!0,subscribe(te.SYSTEM_VITALS_CHANGED,onVitals),subscribe(te.SYSTEM_RUNTIME_CHANGED,onRuntimeChange),subscribe(te.SYSTEM_PAUSE_CHANGED,onRuntimeChange),subscribe(te.SYSTEM_TARGET_CHANGED,onTargetChange),subscribe(te.AFF_GOT,onAffEvent),subscribe(te.AFF_LOST,onAffEvent),subscribe(te.AFF_STACK_CHANGED,onAffEvent),subscribe(te.AFF_PRIORITY_CHANGED,()=>c.markAffsDirty()),subscribe(te.DEF_GOT,onDefEvent),subscribe(te.DEF_LOST,onDefEvent),subscribe(te.BALANCE_GOT,onBalanceEvent),subscribe(te.BALANCE_LOST,onBalanceEvent),subscribe(te.BALANCE_RESET,onBalanceEvent),subscribe(te.BALANCE_TIMER_RESTARTED,onBalanceEvent),updateDefGlyphs(),updateBalanceGlyphs(),onRuntimeChange())},stop:()=>{u.forEach(e=>{try{e()}catch(t){console.error("nexSys4 prompt presenter unsubscribe failed",t)}}),u.length=0,d=!1},render:(e={})=>{const t=c.render();return"function"==typeof i?i(t,e):t},markAffsDirty:()=>c.markAffsDirty(),markPromptDirty:()=>c.markPromptDirty(),patchVars,patchAffs,patchCureColors,colorGradation,colorPercentage,get vars(){return s.vars},get affs(){return s.affs},get cureColors(){return s.cureColors},get compose(){return l},set compose(e){l="function"==typeof e?e:defaultCompose,c.markPromptDirty()},_state:s,_onVitals:onVitals,_onAffEvent:onAffEvent,_onDefEvent:onDefEvent,_onBalanceEvent:onBalanceEvent,_onRuntimeChange:onRuntimeChange,_onTargetChange:onTargetChange}},pa=Object.freeze({INTERNAL:"internal",JS:"js",EVENTSTREAM:"eventstream"}),ma=Object.freeze({STABLE:"stable",EXPERIMENTAL:"experimental",DEPRECATED:"deprecated"}),fa=/^nexsys4(\.[a-z0-9_-]+)+$/,ga=Object.freeze(Object.values(pa)),ha=Object.freeze(Object.values(ma)),ba=Object.freeze({[pa.INTERNAL]:Object.freeze([null,pa.INTERNAL]),[pa.JS]:Object.freeze([null,pa.INTERNAL,pa.JS]),[pa.EVENTSTREAM]:Object.freeze([null,pa.INTERNAL,pa.JS,pa.EVENTSTREAM])}),topicEntry=(e,t,n={})=>{const a=n.scopedAudience??null,o={audience:e,scopedAudience:a,stability:n.stability??ma.STABLE,description:t};return null!=a&&n.scopedPayloadKey&&(o.scopedPayloadKey=n.scopedPayloadKey),Object.freeze(o)},eventStreamTopic=(e,t={})=>topicEntry(pa.EVENTSTREAM,e,t),jsTopic=(e,t={})=>topicEntry(pa.JS,e,t),scopedEventStreamTopic=(e,t)=>eventStreamTopic(e,{scopedAudience:pa.EVENTSTREAM,scopedPayloadKey:t}),isScopedAudienceAllowed=(e,t)=>{const n=ba[e];return Array.isArray(n)&&n.includes(t)},validateRegistryEntry=(e,t)=>{if(!fa.test(e))throw new Error(`Invalid topic registry key "${e}": expected lowercase dotted nexsys4.* form.`);if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(`Invalid registry entry for "${e}": expected an object.`);if(!ga.includes(t.audience))throw new Error(`Invalid audience for "${e}": received "${t.audience}".`);if(!("scopedAudience"in t))throw new Error(`Missing scopedAudience metadata for "${e}".`);if(null!=t.scopedAudience&&!ga.includes(t.scopedAudience))throw new Error(`Invalid scopedAudience for "${e}": received "${t.scopedAudience}".`);if(!isScopedAudienceAllowed(t.audience,t.scopedAudience??null))throw new Error(`Invalid scopedAudience for "${e}": "${t.scopedAudience}" exceeds base audience "${t.audience}".`);if(null!=t.scopedAudience&&("string"!=typeof t.scopedPayloadKey||!t.scopedPayloadKey.trim()))throw new Error(`Missing scopedPayloadKey for scoped topic "${e}".`);if(!ha.includes(t.stability))throw new Error(`Invalid stability for "${e}": received "${t.stability}".`);if("string"!=typeof t.description||!t.description.trim())throw new Error(`Invalid description for "${e}": expected a non-empty string.`)},validateTopicRegistry=(e,t=Object.values(te))=>{if(!e||"object"!=typeof e||Array.isArray(e))throw new Error("Invalid topic registry: expected an object.");for(const n of t)if(!Object.prototype.hasOwnProperty.call(e,n))throw new Error(`Missing registry entry for "${n}".`);for(const n of Object.keys(e)){if(!t.includes(n))throw new Error(`Unexpected registry entry for "${n}".`);validateRegistryEntry(n,e[n])}return!0},ya=Object.freeze({[te.RUNTIME_STARTED]:eventStreamTopic("Runtime startup completed."),[te.RUNTIME_STOPPED]:eventStreamTopic("Runtime shutdown completed."),[te.RAW_GMCP]:eventStreamTopic("Raw GMCP payload observed at the adapter boundary."),[te.SYSTEM_VITALS_CHANGED]:eventStreamTopic("Character vitals changed."),[te.SYSTEM_HEALTH_CHANGED]:eventStreamTopic("Health changed."),[te.SYSTEM_MANA_CHANGED]:eventStreamTopic("Mana changed."),[te.SYSTEM_RAGE_CHANGED]:eventStreamTopic("Rage changed."),[te.SYSTEM_BLEED_CHANGED]:eventStreamTopic("Bleed changed."),[te.SYSTEM_STATUS_CHANGED]:eventStreamTopic("Character status snapshot changed."),[te.SYSTEM_CLASS_CHANGED]:eventStreamTopic("Character class changed."),[te.SYSTEM_TARGET_CHANGED]:eventStreamTopic("Current target changed."),[te.SYSTEM_ROOM_CHANGED]:eventStreamTopic("Current room changed."),[te.SYSTEM_ROOM_ITEMS_CHANGED]:eventStreamTopic("Visible room items changed."),[te.SYSTEM_RUNTIME_CHANGED]:jsTopic("Runtime implementation state changed."),[te.SYSTEM_PAUSE_CHANGED]:eventStreamTopic("Runtime pause state changed."),[te.SYSTEM_PAUSED]:eventStreamTopic("Runtime paused."),[te.SYSTEM_UNPAUSED]:eventStreamTopic("Runtime unpaused."),[te.SYSTEM_LOADED]:eventStreamTopic("Startup game-state initialization completed."),[te.SYSTEM_SETTINGS_CHANGED]:jsTopic("Runtime settings changed."),[te.SYSTEM_BASELINE_CHANGED]:jsTopic("Baseline intent changed."),[te.SYSTEM_DEATH_DETECTED]:eventStreamTopic("Death was detected from character state."),[te.SYSTEM_MOUNT_CHANGED]:eventStreamTopic("Mounted state changed."),[te.SYSTEM_WIELDED_CHANGED]:eventStreamTopic("Wielded equipment changed."),[te.UI_CONFIG_CHANGED]:jsTopic("Configuration dialog open state changed."),[te.AFF_GOT]:scopedEventStreamTopic("Affliction became active.","name"),[te.AFF_LOST]:scopedEventStreamTopic("Affliction was cured or removed.","name"),[te.AFF_STACK_CHANGED]:scopedEventStreamTopic("Affliction stack count changed.","name"),[te.AFF_PRIORITY_CHANGED]:jsTopic("Affliction priority changed."),[te.DEF_GOT]:scopedEventStreamTopic("Defence became active.","id"),[te.DEF_LOST]:scopedEventStreamTopic("Defence expired or was removed.","id"),[te.DEF_PRIORITY_CHANGED]:jsTopic("Defence priority changed."),[te.BALANCE_GOT]:scopedEventStreamTopic("Balance became available.","id"),[te.BALANCE_LOST]:scopedEventStreamTopic("Balance was consumed or lost.","id"),[te.BALANCE_RESET]:scopedEventStreamTopic("Balance timing was reset.","id"),[te.BALANCE_DURATION_OBSERVED]:scopedEventStreamTopic("Observed balance recovery duration changed.","id"),[te.BALANCE_TIMER_RESTARTED]:jsTopic("Balance loss timer was restarted without a state flip."),[te.EQBAL_GOT]:eventStreamTopic("Balance and equilibrium are both available."),[te.LIMB_HIT]:scopedEventStreamTopic("Limb damage was recorded.","limb"),[te.LIMB_RESET]:scopedEventStreamTopic("Limb tracking was reset.","limb"),[te.LIMB_STAGE_CHANGED]:scopedEventStreamTopic("Limb damage stage changed.","limb"),[te.LIMB_DECAY]:jsTopic("Limb damage counter reset after 3 minutes of no hits."),[te.CACHE_AMOUNT_CHANGED]:eventStreamTopic("Cached item counts changed."),[te.CACHE_INVENTORY_LIST]:eventStreamTopic("Inventory cache snapshot applied."),[te.CACHE_RIFT_LIST]:eventStreamTopic("Rift cache snapshot applied."),[te.CACHE_PRECACHE_CHANGED]:jsTopic("Desired precache state changed."),[te.ITEM_ROOM_ADDED]:eventStreamTopic("An item appeared in the current room."),[te.ITEM_ROOM_REMOVED]:eventStreamTopic("An item left the current room."),[te.ITEM_ROOM_UPDATED]:eventStreamTopic("A current-room item changed."),[te.ITEM_ROOM_LIST]:eventStreamTopic("Current-room item list snapshot received."),[te.ITEM_INV_ADDED]:eventStreamTopic("An item was added to inventory."),[te.ITEM_INV_REMOVED]:eventStreamTopic("An item was removed from inventory."),[te.ITEM_INV_UPDATED]:eventStreamTopic("An inventory item changed."),[te.ITEM_INV_LIST]:eventStreamTopic("Inventory item list snapshot received."),[te.QUEUE_UPDATED]:jsTopic("Queue contents changed."),[te.QUEUE_FLUSHED]:jsTopic("Queue flush decision completed."),[te.QUEUE_DEFERRED]:jsTopic("Queue execution was deferred."),[te.QUEUE_CLEARED]:jsTopic("Queue contents were cleared."),[te.QUEUE_SENT]:scopedEventStreamTopic("A queue submission was accepted by the server.","queueName"),[te.QUEUE_FIRED]:scopedEventStreamTopic("A queue fire was acknowledged for a named queue.","queueName"),[te.QUEUE_FIRED_ACK]:eventStreamTopic("Queue fire acknowledgement was recorded."),[te.SERVERSIDE_AFF_PRIORITY_SET]:scopedEventStreamTopic("Live serverside affliction priority confirmation was observed.","id"),[te.SERVERSIDE_DEF_PRIORITY_SET]:scopedEventStreamTopic("Live serverside defence priority confirmation was observed.","id"),[te.SERVERSIDE_DIRTY]:jsTopic("Serverside reconciliation dirty flag changed."),[te.SERVERSIDE_EVALUATED]:jsTopic("Serverside evaluation completed."),[te.SERVERSIDE_RULE_CHANGED]:jsTopic("Legacy generic serverside rule-change signal reserved for compatibility."),[te.RULE_ADDED]:jsTopic("Serverside rule was added to the registry."),[te.RULE_REMOVED]:jsTopic("Serverside rule was removed from the registry."),[te.RULE_ENABLED]:jsTopic("Serverside rule was enabled."),[te.RULE_DISABLED]:jsTopic("Serverside rule was disabled."),[te.RULE_PACK_LOADED]:jsTopic("Serverside rule pack was loaded."),[te.RULE_PACK_UNLOADED]:jsTopic("Serverside rule pack was unloaded."),[te.RULE_ORDER_CHANGED]:jsTopic("Serverside rule evaluation order changed."),[te.RULE_ACTIVATED]:scopedEventStreamTopic("Serverside rule became active.","id"),[te.RULE_DEACTIVATED]:scopedEventStreamTopic("Serverside rule stopped being active.","id")});validateTopicRegistry(ya);var buildExactTopicSet=e=>new Set(Object.keys(e||{})),buildScopedBaseMap=e=>{const t=new Map;return Object.entries(e||{}).forEach(([e,n])=>{null!=n?.scopedAudience&&t.set(e,n.scopedAudience)}),t},createEventStreamPublisher=({adapter:e,registry:t,globallyEnabled:n,rawGmcpEnabled:a})=>{const o=buildExactTopicSet(t),i=buildScopedBaseMap(t),resolveAudience=e=>{const n=String(e||"").trim();if(!n)return null;if(o.has(n))return t[n].audience;const a=n.lastIndexOf(".");if(a<0)return null;const s=n.slice(0,a);return i.get(s)??null},isAllowed=(e,t)=>!!n&&(t===pa.EVENTSTREAM&&!(e===te.RAW_GMCP&&!a)),evaluate=(t,n)=>{const a=String(t||"").trim();return!!isAllowed(a,resolveAudience(a))&&("function"==typeof e?.raiseToEventStream&&e.raiseToEventStream(a,n))};return{attach:e=>e&&"function"==typeof e.onAny?e.onAny((e,t)=>{evaluate(t,e)}):()=>{},evaluate,resolveAudience,debugInfo:()=>({globallyEnabled:Boolean(n),rawGmcpEnabled:Boolean(a),exactTopicCount:o.size,scopedBaseCount:i.size})}},normalizeScopedTopicSegment=e=>{const t=String(e||"").trim().toLowerCase();return t?t.replace(/\s+/g,"_").replace(/[^a-z0-9._-]/g,""):""},normalizePublishedPayload=(e={})=>e&&"object"==typeof e&&!Array.isArray(e)?e:{value:e},normalizeMessage=(e,t={},n)=>{const a=normalizePublishedPayload(t);return{...a,topic:e,at:a.at??n()}},createRuntimeEventPorts=({adapter:e,internalEvents:t,publicEvents:n,now:a})=>{const publishPublic=(e,t={})=>{const o=normalizeMessage(e,t,a);return n.emit(e,o),o},publishPublicScoped=(e,t={},n)=>{const a=publishPublic(e,t),o=normalizeScopedTopicSegment(n);return o?(publishPublic(`${e}.${o}`,a),a):a};return{publishPublic,publishPublicScoped,publishInternal:(e,n={})=>{const o=normalizeMessage(e,n,a);return t.emit(e,o),o},publishAdapterLocal:(t,n={})=>("function"==typeof e?.emitLocal&&e.emitLocal(t,n),n)}},createRuntimeEngine=({adapter:e,seedData:t,options:n={}})=>{const a=resolveAdapterCapabilities(e),{now:o,commandDispatcher:i,systemModel:s,affModel:l,balanceModel:c,defModel:u,cacheModel:d,limbModel:p,persistence:m,queueController:g,serverside:h,combatService:b,noticeCenter:y,defensePlanner:v,precachePlanner:S,outputPlanner:x,outputCycle:w}=createRuntimeDependencies({adapter:e,seedData:t,options:n}),C=createGmcpBlockBuffer({coalesce:!1!==n.coalesceGmcp}),k=createEventBus({label:"nexSys4.internal"}),E=createEventBus({label:"nexSys4.public"}),P=createPromptPresenter({publicEvents:E,affModel:l,defModel:u,balanceModel:c,systemModel:s,renderPrompt:(t,n={})=>a.promptRender?e.renderPrompt(t,n):t}),T=createEventStreamPublisher({adapter:e,registry:ya,globallyEnabled:!1!==n.publishToEventStream,rawGmcpEnabled:!0===n.publishRawGmcp}),R=createRuntimeEventPorts({adapter:e,internalEvents:k,publicEvents:E,now:o});T.attach(E);const setRuntimePhase=(e,t={})=>s.setRuntime({phase:e,...t}),syncDebugMode=()=>{const t=Boolean(s.getSettings().debug);return a.debugToggle&&e.setDebugEnabled(t),k.setDebugEnabled?.(t),E.setDebugEnabled?.(t),t},M=R.publishPublic,D=R.publishPublicScoped,O=R.publishAdapterLocal,publishStartupPhase=e=>O("StartupPhaseEvent",{phase:e}),$=createStartupCoordinator({adapter:e,systemModel:s,serverside:h,persistence:m,seedBaselineFromObservedStartup:()=>B.seedBaselineFromObservedStartup(),noticeCenter:y,buildPersistenceSnapshot:()=>B.buildPersistenceSnapshot(),startupTimeoutMs:n.startupTimeoutMs,maxStartupRetries:n.maxStartupRetries,publishStartupPhase,setRuntimePhase}),I=createGmcpApplier({emit:(e,t)=>k.emit(e,t)}),N=createItemTopicNotifier({publishPublic:M}),queueTranslatedGmcp=e=>{I.translate(e).forEach(e=>{N.notify(e),C.enqueue(e)})},hydrateCacheFromAdapterGmcp=()=>{if(!a.gmcpSnapshot)return!1;const t=e.getGMCP();return!(!t||"object"!=typeof t)&&(d.hydrateFromGmcp?.(t)??!1)},L=createRuntimeFlushCoordinator({adapter:e,systemModel:s,serverside:h,outputCycle:w,flushGmcpBuffer:()=>{C.flush().forEach(({topic:e,payload:t})=>{k.emit(e,t)}),d.completeObservationBlock?.({source:"runtime-flush"})}}),j=createRuntimeControlApi({systemModel:s,serverside:h,queueController:g,noticeCenter:y,dispatchCommands:i.sendCommands,markDirty:L.markDirty,onResume:e=>{L.isFlushing()||L.flushCycle(e)}}),B=createRuntimePersistenceApi({persistence:m,systemModel:s,affModel:l,defModel:u,cacheModel:d,serverside:h,syncDebugMode,markDirty:L.markDirty}),F=createRuntimeEventWiring({adapter:e,internalEvents:k}),q=createRuntimeStartupOrchestrator({adapter:e,systemModel:s,persistenceApi:B,startup:$,noticeCenter:y,syncDebugMode,isStarted:L.isStarted,markStarted:L.start,setRuntimePhase,publishStartupPhase,attachEventWiring:()=>{F.attach({options:n,queueTranslatedGmcp,publishPublic:M,publishPublicScoped:D,noticeCenter:y,syncDebugMode,systemModel:s,affModel:l,defModel:u,balanceModel:c,cacheModel:d,limbModel:p,queueController:g,serverside:h,markDirty:L.markDirty,invalidateOutput:L.invalidateOutput,flushCycle:L.flushCycle,outputCycle:w,startup:$,runtimeControl:j,savePersistence:B.savePersistence})},promptPresenter:P,publishRuntimeStarted:()=>M(te.RUNTIME_STARTED,{source:"runtime-start"}),hydrateCacheFromAdapterGmcp,runtimeControl:j,commandDispatcher:i}),stop=()=>{q.dispose(),L.isStarted()&&(M(te.RUNTIME_STOPPED,{source:"runtime-stop"}),L.stop(),$.dispose?.(),w.dispose?.(),F.dispose(),setRuntimePhase(re.IDLE,{paused:!0,startupFailureMessage:""}),P.stop(),l.dispose?.(),c.dispose?.(),p.dispose(),k.clear(),E.clear(),T.attach(E),a.destroy&&e.destroy())};let U=null;const snapshot=()=>{const e=s.snapshot(),t=l.snapshot(),n=c.snapshot(),a=u.snapshot(),o=d.snapshot(),i=p.snapshot(),m=g.snapshot(),b=h.snapshot();return U&&U.system===e&&U.affs===t&&U.balances===n&&U.defs===a&&U.cache===o&&U.limbs===i&&U.queues===m&&U.serverside===b||(U={system:e,affs:t,balances:n,defs:a,cache:o,limbs:i,queues:m,serverside:b}),U};return{start:q.start,stop,flushCycle:L.flushCycle,savePersistence:B.savePersistence,setPaused:j.setPaused,setSlowMode:j.setSlowMode,setConfigOpen:(e,t="runtime-ui")=>M(te.UI_CONFIG_CHANGED,{open:Boolean(e),source:t}),get paused(){return s.getRuntime().paused},snapshot,adapter:e,models:{systemModel:s,affModel:l,balanceModel:c,defModel:u,cacheModel:d,limbModel:p},services:{combat:b},planners:{defensePlanner:v,precachePlanner:S,outputPlanner:x,outputCycle:w},queueController:g,serverside:h,noticeCenter:y,persistence:m,commandDispatcher:i,promptPresenter:P,topics:te,onEvent:(e,t)=>E.on(e,t),offEvent:(e,t)=>E.off(e,t),markDirty:L.markDirty,ingestGmcp(e,t){queueTranslatedGmcp({tag:e,payload:t}),!0===n.publishRawGmcp&&M(te.RAW_GMCP,{source:"manual-gmcp",tag:String(e||"").trim().toLowerCase(),payload:t}),L.markDirty(`manual-gmcp:${e}`)},evaluateNow:(e="manual")=>L.flushCycle(e),addOutputCommands(e=[]){w.injectCommands(Array.isArray(e)?e:[e]),L.markDirty("manual-output-inject")},dispatchCommands:i.sendCommands,debugInfo:()=>({adapter:e.debugInfo?.()??null,internalEvents:k.debugInfo?.()??null,publicEvents:E.debugInfo?.()??null,eventStreamPublisher:T.debugInfo?.()??null})}},toArray=e=>Array.isArray(e)?e:[e],normalizeQueueKey=e=>String(e||"").trim(),createPublicCommandApi=({runtime:e})=>{const t=e.queueController,n=t.listQueues().map(e=>({queueId:e,meta:t.getQueue(e)||{}})),a=new Map,o=new Map,resolveQueueId=e=>{const t=normalizeQueueKey(e);return o.get(t)||t},getQueueHandle=e=>{const t=resolveQueueId(e);return a.get(t)||null},inspectQueue=e=>t.getQueue(resolveQueueId(e)),addQueue=(e,n,a)=>t.add(resolveQueueId(e),n,a),prependQueue=(e,n,a)=>t.prepend(resolveQueueId(e),n,a),clearLocalQueue=e=>t.clear(resolveQueueId(e)),clearGameQueue=e=>t.clearQueue(resolveQueueId(e)),flushQueue=(e,n)=>t.flush(resolveQueueId(e),n),isQueued=(e,t)=>{if(!t)return!1;const n=inspectQueue(e);return!!n&&(n.items.includes(t)||n.prepend.includes(t))};n.forEach(({queueId:e,meta:t})=>{a.set(e,{get id(){return e},get queueId(){return e},get name(){return inspectQueue(e)?.name||t.name||""},get type(){return inspectQueue(e)?.type||t.type||""},get exclusions(){return inspectQueue(e)?.exclusions||t.exclusions||[]},inspect:()=>inspectQueue(e),state:()=>inspectQueue(e),add:(t,n)=>addQueue(e,t,n),prepend:(t,n)=>prependQueue(e,t,n),clear:()=>clearLocalQueue(e),clearQueue:()=>clearGameQueue(e),flush:t=>flushQueue(e,t),isQueued:t=>isQueued(e,t)}),o.set(e,e),t.name&&o.set(t.name,e)});const i={controller:t,listQueues:()=>t.listQueues(),inspect:e=>inspectQueue(e),get:e=>getQueueHandle(e),add:(e,t,n)=>addQueue(e,t,n),prepend:(e,t,n)=>prependQueue(e,t,n),clear:e=>clearLocalQueue(e),clearQueue:e=>clearGameQueue(e),flush:(e,t)=>flushQueue(e,t),flushAll:()=>t.flushAll(),isQueued:(e,t)=>isQueued(e,t)},s={listQueues:()=>i.listQueues(),inspect:e=>i.inspect(e),get:e=>i.get(e)},l={};return n.forEach(({queueId:e,meta:t})=>{const n=a.get(e);n&&(l[e]=n,s[e]=n,t.name&&(s[t.name]=n))}),{queue:i,queues:s,...l,sendCmd:(t,n={})=>e.dispatchCommands([t],{source:"public-api",...n}),setTarget(t){const n=String(t??"").trim();if(!n)return{target:"",dispatched:!1,dispatchResult:null};const a=e.dispatchCommands(["settarget "+n],{source:"set-target"});return{target:n,dispatched:Boolean(a),dispatchResult:a}},sendInline:(t=[],n={})=>e.dispatchCommands(toArray(t),{source:"public-api-inline",...n}),addOutput(t=[]){e.addOutputCommands(toArray(t))},evaluateNow:(t="public-api")=>e.evaluateNow(t)}},va="nexSys4",Sa="https://unpkg.com/nexsys4/dist/nexSys4.nxs",xa="khaseem",wa=Object.freeze(["nexSys4.userSettings"]),Ca=1e4,ka=Object.freeze({fg:"red"}),toLowerName=e=>String(e??"").trim().toLowerCase(),safeCall=e=>{try{return e()}catch{return null}},clonePackageItem=e=>{if(!e||"object"!=typeof e)return null;if("function"==typeof structuredClone)try{return structuredClone(e)}catch{}try{return JSON.parse(JSON.stringify(e))}catch{return e}},getReflexes=e=>safeCall(()=>e?.reflexes?.())??null,getPackageRegistry=e=>{const t=safeCall(()=>e?.packages?.());if("function"==typeof t?.get)return t;const n=safeCall(()=>getReflexes(e)?.packages?.());return"function"==typeof n?.get?n:null},getInstalledPackage=(e,t)=>safeCall(()=>getPackageRegistry(e)?.get(t))??null,findGroupByName=(e,t)=>{if(!Array.isArray(e))return null;const n=toLowerName(t);return e.find(e=>toLowerName(e?.name)===n)??null},capturePreservedGroups=(e,t)=>t.map(t=>{const n=findGroupByName(e?.items,t);return n?{name:t,data:clonePackageItem(n)}:null}).filter(Boolean),applyPreservedGroup=(e,t,n)=>{const a=findGroupByName(e?.items,t.name);a&&t.data&&("function"!=typeof a.apply?"object"==typeof a&&Object.assign(a,clonePackageItem(t.data)):a.apply(t.data,n))},enableShippedGroups=(e,t)=>{if(!Array.isArray(e?.items))return;const n=new Set(t.map(toLowerName));e.items.filter(e=>"group"===e?.type&&!n.has(toLowerName(e.name))).forEach(e=>{e.enabled=!0})},reportUpdateError=({adapter:e,consoleObj:t,message:n,nexusClient:a})=>{t.error(n),"function"!=typeof e?.notice?a?.display?.(n):e.notice(n,ka)},createAbortSignal=({AbortControllerCtor:e,setTimeoutFn:t,timeoutMs:n})=>{if(!e||n<=0)return{signal:void 0,timeout:null};const a=new e,o=t(()=>a.abort(),n);return{signal:a.signal,timeout:o}},updateNxs=async({adapter:e=null,clearTimeoutFn:t=clearTimeout,consoleObj:n=console,fetchFn:a=globalThis.fetch,nexusClient:o=globalThis.nexusclient,packageName:i=va,preservedGroupNames:s=wa,setTimeoutFn:l=setTimeout,skipCharacterName:c=xa,timeoutMs:u=Ca,url:d=Sa}={})=>{if(c&&toLowerName(o?.charname)===toLowerName(c))return null;let p=null;try{if("function"!=typeof a)throw new Error("fetch is not available.");const e=getInstalledPackage(o,i);if(!e||"function"!=typeof e.apply)throw new Error(`${i} package is not installed in Nexus.`);const t=capturePreservedGroups(e,s),{signal:n,timeout:c}=createAbortSignal({AbortControllerCtor:globalThis.AbortController,setTimeoutFn:l,timeoutMs:u});p=c;const m=await a(d,{cache:"no-store",...n?{signal:n}:{}});if(!m?.ok)throw new Error(`${i} update failed: ${m?.status??"unknown"} ${m?.statusText??""}`.trim());const g=await m.json(),h=getReflexes(o);e.apply(g,h);const b=getInstalledPackage(o,i)??e;return t.forEach(e=>applyPreservedGroup(b,e,h)),enableShippedGroups(b,s),g}catch(m){return reportUpdateError({adapter:e,consoleObj:n,message:"AbortError"===m?.name?`${i} update timed out. Check your connection.`:`${i} update error: ${m?.message??String(m)}`,nexusClient:o}),null}finally{null!==p&&t(p)}},createPublicControlApi=({runtime:e,getModels:t})=>{const applySettings=(n={})=>(t().systemModel.setSettings(n,{setBaseline:!0}),e.savePersistence());return{pause:()=>e.setPaused(!0),unpause:()=>e.setPaused(!1),pauseToggle:()=>e.setPaused(!e.paused),setSlowMode:t=>e.setSlowMode(t),slowOn:()=>e.setSlowMode(!0),slowOff:()=>e.setSlowMode(!1),applySettings,setDebug:e=>applySettings({debug:Boolean(e)}),debugOn:()=>applySettings({debug:!0}),debugOff:()=>applySettings({debug:!1}),debug:()=>({runtime:e.snapshot(),internals:e.debugInfo?.()??null}),start:e.start,stop:e.stop,updateNxs:(t={})=>updateNxs({adapter:e.adapter,...t})}},resolveAudienceFor=(e,t)=>{const n=String(e||"").trim();if(!n)return null;if(Object.prototype.hasOwnProperty.call(t,n))return t[n].audience;const a=n.lastIndexOf(".");return a<0?null:t[n.slice(0,a)]?.scopedAudience??null},isPublicAudience=e=>e===pa.JS||e===pa.EVENTSTREAM,defaultIsDevMode=()=>{try{const e=globalThis.process?.env?.NODE_ENV;return!!e&&"production"!==e}catch{return!1}},defaultWarn=e=>{console.warn(e)},createPublicEventApi=({runtime:e,registry:t=ya,isDevMode:n=defaultIsDevMode,warn:a=defaultWarn})=>{const o={on(o,i){const s=String(o||"").trim();return s&&"function"==typeof i?isPublicAudience(resolveAudienceFor(s,t))?e.onEvent(s,i):(n()&&a(`[nexSys4] topic "${s}" is not a public topic`),()=>{}):()=>{}},off(t,n){const a=String(t||"").trim();return!!a&&e.offEvent(a,n)}};return{events:o,on:o.on,off:o.off}},createPublicMutationApi=({runtime:e,getModels:t})=>{const n=e.services.combat,normalizeServersidePriority=e=>{const t=Number(e);return Number.isFinite(t)?t<0?0:t>26?26:t:0},samePriorityMaps=(e={},t={})=>{const n=new Set([...Object.keys(e||{}),...Object.keys(t||{})]);for(const a of n)if(normalizeServersidePriority(e?.[a])!==normalizeServersidePriority(t?.[a]))return!1;return!0},resetPriorities=(e=[],t,n="public-api")=>{let a=!1;return e.forEach(e=>{t(e,n)&&(a=!0)}),a},buildAffPriorityTarget=e=>{const t=e.list().reduce((t,n)=>(t[n]=normalizeServersidePriority(e.getPriority?.(n)),t),{});return e.getCountablePriorityNames?.().forEach(e=>{t[e]=0}),t},buildDefPriorityTarget=(e,t)=>{const n=t.snapshot?.().char?.class||"";return e.list().reduce((t,a)=>{const o=e.get(a);return!o?.serverside||o.static?t:"function"!=typeof e.isAvailableForClass||e.isAvailableForClass(a,n)?(t[a]=normalizeServersidePriority(e.getPriority?.(a)),t):t},{})},restorePersistedPriorities=({restoreAffs:n=!1,restoreDefs:a=!1,reason:o})=>{const{affModel:i,defModel:s,systemModel:l}=t();let c=!1;n&&(c=resetPriorities(i.list(),(e,t)=>i.resetPriority(e,t))||c),a&&(c=resetPriorities(s.list(),(e,t)=>s.resetPriority(e,t))||c);const u=e.serverside.snapshot?.(),d=n?buildAffPriorityTarget(i):null,p=a?buildDefPriorityTarget(s,l):null,m=Boolean(u&&(n&&!samePriorityMaps(u.sessionBaseline?.affPriorities,d)||a&&!samePriorityMaps(u.sessionBaseline?.defPriorities,p)));return!(!c&&!m)&&(refreshServersideBaseline(),e.markDirty(o),!0)},refreshServersideBaseline=()=>{e.serverside.setBaselineFromRuntime?.()},applyMutation=(t,n)=>!!t&&(refreshServersideBaseline(),e.markDirty(n),!0),applyDirtyOnly=(t,n)=>!!t&&(e.markDirty(n),!0);return{updateAffPriority:(e,n)=>applyMutation(t().affModel.setPriority(e,n,"public-api"),"api-aff-priority"),updateAffDefault:(e,n)=>applyMutation(t().affModel.setDefaultPriority(e,n,"public-api"),"api-aff-default"),resetAffPriority:e=>applyMutation(t().affModel.resetPriority(e,"public-api"),"api-aff-priority-reset"),resetAllAffPriorities:()=>restorePersistedPriorities({restoreAffs:!0,reason:"api-aff-priority-reset-all"}),updateDefPriority:(e,n)=>applyMutation(t().defModel.setPriority(e,n,"public-api"),"api-def-priority"),updateDefDefault:(e,n)=>applyMutation(t().defModel.setDefaultPriority(e,n,"public-api"),"api-def-default"),updateDefStatic:(e,n)=>applyMutation(t().defModel.setStatic(e,n,"public-api"),"api-def-static"),updateDefCommand:(e,n)=>applyMutation(t().defModel.setCommand(e,n,"public-api"),"api-def-command"),resetDefPriority:e=>applyMutation(t().defModel.resetPriority(e,"public-api"),"api-def-priority-reset"),resetAllDefPriorities:()=>restorePersistedPriorities({restoreDefs:!0,reason:"api-def-priority-reset-all"}),resetAllPriorities:()=>restorePersistedPriorities({restoreAffs:!0,restoreDefs:!0,reason:"api-priority-reset-all"}),defup(){const n=t().defModel,a={};let o=!1;for(const e of n.list()){const t=n.get(e);if(!t||t.have)continue;n.resetPriority(e,"defup")&&(o=!0);const i=n.get(e),s=normalizeServersidePriority(n.getPriority(e));i?.static&&s>=1&&s<=25&&(a[e]=s)}const i=e.serverside.requestStaticDefPriorities?.(a)??!1;return(o||i)&&(refreshServersideBaseline(),e.markDirty("api-defup")),o||i},defoff(){const n=t().defModel;let a=!1;for(const e of n.list()){const t=n.get(e);t&&!t.have&&(n.setPriority(e,0,"defoff")&&(a=!0))}const o=e.serverside.clearStaticDefPriorities?.()??!1;return(a||o)&&(refreshServersideBaseline(),e.markDirty("api-defoff")),a||o},setPrecache:(n={})=>(t().cacheModel.setDesiredPrecache(n),e.markDirty("api-precache"),e.savePersistence()),prioAff:t=>applyDirtyOnly(e.serverside.setPrioAff(t),"api-prioaff"),clearPrioAff:()=>applyDirtyOnly(e.serverside.clearPrioAff(),"api-prioaff-clear"),parry(t){n.parry(t),refreshServersideBaseline(),e.markDirty("api-parry")}}},Ea="public-observe",freezeHandles=(e=[],t)=>Object.freeze(e.reduce((e,n)=>(e[n]=Object.freeze(t(n)),e),{})),getObserveSource=(e={})=>String(e?.source||Ea),getObserveAt=(e={})=>e?.atMs??e?.at,getAffSnapshotState=(e,t)=>({have:e.haveAff(t),count:e.get(t)?.count??0}),didAffStateChange=(e,t)=>e.have!==t.have||e.count!==t.count,createPublicObserveApi=({runtime:e,getModels:t})=>{const n=t(),a=n.affModel,o=n.defModel,i=n.balanceModel,s=n.limbModel,l=n.systemModel,c=e.services.combat,u=freezeHandles(a.list?.()||[],t=>({got(n={}){const o=getAffSnapshotState(a,t);return a.got(t,{...n,source:getObserveSource(n)}),!!didAffStateChange(o,getAffSnapshotState(a,t))&&("function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"affliction"):s?.applyAfflictionTransition?.(t,!0),e.markDirty(`api-observe-aff-got:${t}`),!0)},lost(n={}){const o=getAffSnapshotState(a,t);return a.lose(t,{...n,source:getObserveSource(n)}),!!didAffStateChange(o,getAffSnapshotState(a,t))&&("function"==typeof s?.syncFromAfflictions&&"function"==typeof a?.currentSorted?s.syncFromAfflictions(a.currentSorted(),"affliction"):s?.applyAfflictionTransition?.(t,!1),e.markDirty(`api-observe-aff-lost:${t}`),!0)}})),d=freezeHandles(o.list?.()||[],t=>({got:(n={})=>!!o.setHave(t,!0,getObserveSource(n),getObserveAt(n))&&(e.markDirty(`api-observe-def-got:${t}`),!0),lost:(n={})=>!!o.setHave(t,!1,getObserveSource(n),getObserveAt(n))&&(e.markDirty(`api-observe-def-lost:${t}`),!0)})),p=freezeHandles(i.list?.()||[],t=>{const observeServerUse=(n,a={})=>{const o=i.observeServerUse(t,n,{...a,source:getObserveSource({...a,source:a.source||"server-duration-observe"})});return o&&e.markDirty(`api-observe-balance-used:${t}`),o};return{got(n={}){const a=i.gain(t,getObserveSource(n),getObserveAt(n));return a&&e.markDirty(`api-observe-balance-got:${t}`),a},lost(n={}){const a=i.lose(t,getObserveSource(n),getObserveAt(n));return a&&e.markDirty(`api-observe-balance-lost:${t}`),a},used:observeServerUse,serverUsed:observeServerUse,observeServerUse}}),createObservedLimbHit=(e,t={},n)=>c.observeLimbHit({limb:e,amount:n,source:getObserveSource(t),at:getObserveAt(t)}),createObservedLimbReset=(e,t={})=>c.observeLimbReset({limb:e,source:getObserveSource(t),at:getObserveAt(t)}),createObservedLimbStage=(e,t,n={})=>c.observeLimbStage({limb:e,stage:t,source:getObserveSource(n),at:getObserveAt(n)}),m=freezeHandles(s?.list?.()||[],t=>({hit(n,a={}){const o=createObservedLimbHit(t,a,n);return o.changed&&"torso"===o.limb&&o.stageChanged&&e.markDirty(`api-observe-limb-torso:${o.after?.stage||"unknown"}`),o.changed},reset(n={}){const a=createObservedLimbReset(t,n);return a.changed&&"torso"===a.limb&&e.markDirty("api-observe-limb-torso:healthy"),a.changed},setStage(n,a={}){const o=createObservedLimbStage(t,n,a);return o.changed&&"torso"===o.limb&&o.stageChanged&&e.markDirty(`api-observe-limb-torso:${o.after?.stage||"unknown"}`),o.changed}})),markObservedLimbResult=t=>(t.changed&&"torso"===t.limb&&t.stageChanged?e.markDirty(`api-observe-limb-torso:${t.after?.stage||"unknown"}`):t.changed&&"torso"===t.limb&&"healthy"===t.after?.stage?e.markDirty("api-observe-limb-torso:healthy"):t.changed&&e.markDirty(`api-observe-limb:${t.limb}`),t.changed),g=Object.freeze({...m,get(e){if(!e)return null;const t=s?.get?.(e);return t?.id&&m[t.id]||null},list:()=>Object.keys(m),hit:(e,t,n={})=>markObservedLimbResult(createObservedLimbHit(e,n,t)),reset:(e,t={})=>markObservedLimbResult(createObservedLimbReset(e,t)),setStage:(e,t,n={})=>markObservedLimbResult(createObservedLimbStage(e,t,n))}),h=Object.freeze({set(t={}){const n=l.updateMount({name:String(t.name||""),id:t.id??null});return n&&e.markDirty("api-observe-mount-set"),n},clear(){const t=l.updateMount(null);return t&&e.markDirty("api-observe-mount-clear"),t}});return{observe:Object.freeze({affs:u,defs:d,balances:p,limbs:g,mount:h})}},createPublicPromptApi=({runtime:e,control:t})=>{const n=e?.promptPresenter;if(!n)return{prompt:null};const getSystemModel=()=>e?.models?.systemModel;let a=null;return a={colorGradation:n.colorGradation,colorPercentage:n.colorPercentage,render:e=>n.render(e),getCustomPrompt:()=>n.render({source:"legacy-getCustomPrompt"}),markAffsDirty:()=>n.markAffsDirty(),markPromptDirty:()=>n.markPromptDirty?.(),patchVars:(e={})=>(n.patchVars?.(e),a),patchAffs:(e={})=>(n.patchAffs?.(e),a),patchCureColors:(e={})=>(n.patchCureColors?.(e),a),applyPreset:e=>"function"==typeof e?(e(a),n.markPromptDirty?.(),a):(!e||"object"!=typeof e||Array.isArray(e)||("cureColors"in e&&a.patchCureColors(e.cureColors),"affs"in e&&a.patchAffs(e.affs),"vars"in e&&a.patchVars(e.vars),"compose"in e&&(a.compose=e.compose),"enabled"in e&&(a.enabled=e.enabled)),a),get vars(){return n.vars},get affs(){return n.affs},get cureColors(){return n.cureColors},get compose(){return n.compose},set compose(e){n.compose=e},get enabled(){const e=getSystemModel()?.snapshot?.().settings||{};return Boolean(e.customPrompt)},set enabled(e){t?.applySettings?.({customPrompt:Boolean(e)})}},{prompt:a}},createPublicLineApi=({lineUtils:e={}})=>({replace:e.replace,replaceHTML:e.replaceHTML,replaceWord:e.replaceWord,replaceWordHTML:e.replaceWordHTML,nextLine:e.nextLine,checkLine:e.checkLine,prevLine:e.prevLine,prependNotice:e.prependNotice,say:e.say}),normalizeScopedSegment=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_").replace(/[^a-z0-9._-]/g,""),createPublicRulesApi=({runtime:e})=>({add:(t,n)=>e.serverside.lifecycle.add(t,n),remove:t=>e.serverside.lifecycle.remove(t),enable:t=>e.serverside.lifecycle.enable(t),disable:t=>e.serverside.lifecycle.disable(t),load:(t,n)=>e.serverside.lifecycle.load(t,n),unload:t=>e.serverside.lifecycle.unload(t),reorder:t=>e.serverside.lifecycle.reorder(t),list:()=>e.serverside.lifecycle.list(),bindTransition(t,n={}){const a=normalizeScopedSegment(t);if(!a)return()=>{};const o=e.topics||{},i=[];return"function"==typeof n.onActivate&&i.push(e.onEvent(`${o.RULE_ACTIVATED||"nexsys4.rule.activated"}.${a}`,n.onActivate)),"function"==typeof n.onDeactivate&&i.push(e.onEvent(`${o.RULE_DEACTIVATED||"nexsys4.rule.deactivated"}.${a}`,n.onDeactivate)),()=>{i.forEach(e=>e?.())}}}),createPublicServersideApi=({runtime:e})=>({predictions:{add:t=>e.serverside.addPrediction(t),remove:t=>e.serverside.removePrediction(t)},ssQueue:{add:t=>e.serverside.manualQueueAdd(t),insert:(t,n)=>e.serverside.manualQueueInsert(t,n),remove:t=>e.serverside.manualQueueRemove(t),reset:()=>e.serverside.manualQueueReset()},ss:{syncSnapshots:()=>e.serverside.requestSnapshotSync(),startupStatus:()=>e.serverside.getStartupStatus()},curingSets:{list:()=>e.serverside.listCuringSets(),create:t=>e.serverside.createCuringSet(t),switch:t=>e.serverside.switchCuringSet(t),clone:t=>e.serverside.cloneCuringSet(t),rename:(t,n)=>e.serverside.renameCuringSet(t,n),remove:t=>e.serverside.deleteCuringSet(t)},restoreWorkingFromDefault:()=>e.serverside.restoreWorkingFromDefault()}),createPublicStateApi=({runtime:e,getModels:t})=>{const{systemModel:n,affModel:a,defModel:o,balanceModel:i,limbModel:s}=t();return{snapshot:e.snapshot,getTarget:()=>n.snapshot().target,topics:e.topics,haveAff:e=>a.haveAff(e),affElapsedMs:e=>a.elapsedMs(e),affElapsedSeconds:e=>a.elapsedSeconds(e),affRemainingMs:e=>a.remainingMs(e),affRemainingSeconds:e=>a.remainingSeconds(e),affTiming:e=>a.timing(e),haveAffs:e=>a.haveAffs(toArray(e)),haveAnAff:e=>a.haveAnAff(toArray(e)),haveDef:e=>o.haveDef(e),haveDefs:e=>toArray(e).every(e=>o.haveDef(e)),haveAnyDef:e=>toArray(e).some(e=>o.haveDef(e)),haveBal:e=>i.have(e),haveBals:e=>toArray(e).every(e=>i.have(e)),haveAnyBal:e=>toArray(e).some(e=>i.have(e)),balElapsedMs:e=>i.elapsedMs(e),balElapsedSeconds:e=>i.elapsedSeconds(e),balRemainingMs:e=>i.remainingMs(e),balRemainingSeconds:e=>i.remainingSeconds(e),balTiming:e=>i.timing(e),getLimb:e=>s?.get?.(e)||null,listLimbs:()=>s?.list?.()||[],getClass:()=>n.getClass(),checkClass:e=>n.checkClass(e),isClass:e=>n.isClass(e),isTarget:e=>n.isTarget(e)}},isRecord=e=>null!==e&&"object"==typeof e&&!Array.isArray(e),cloneAndFreezeCells=(e={})=>{const t={};for(const[n,a]of Object.entries(e))t[n]=isRecord(a)?Object.freeze({...a}):a;return Object.freeze(t)},buildPromptSnapshot=e=>e?Object.freeze({vars:cloneAndFreezeCells(e.vars),affs:cloneAndFreezeCells(e.affs),cureColors:cloneAndFreezeCells(e.cureColors)}):null,createPublicApi=({runtime:e,lineUtils:t={}})=>{const getModels=()=>e.models,n=createPublicStateApi({runtime:e,getModels}),a=createPublicEventApi({runtime:e}),o=createPublicControlApi({runtime:e,getModels}),i=createPublicCommandApi({runtime:e}),s=createPublicMutationApi({runtime:e,getModels}),l=createPublicObserveApi({runtime:e,getModels}),c=createPublicRulesApi({runtime:e}),u=createPublicServersideApi({runtime:e}),d=createPublicPromptApi({runtime:e,control:o}),p=createPublicLineApi({lineUtils:t}),{systemModel:m,affModel:g,defModel:h,balanceModel:b,limbModel:y,cacheModel:v}=getModels(),S=Object.freeze(Object.create(null,{system:{enumerable:!0,get:()=>m.snapshot()},target:{enumerable:!0,get:()=>m.snapshot().target},class:{enumerable:!0,get:()=>m.snapshot().char.class},affs:{enumerable:!0,get:()=>g.snapshot()},defs:{enumerable:!0,get:()=>h.snapshot()},balances:{enumerable:!0,get:()=>b.snapshot()},limbs:{enumerable:!0,get:()=>y.snapshot()},queue:{enumerable:!0,get:()=>e.queueController.snapshot()},cache:{enumerable:!0,get:()=>v.snapshot()},prompt:{enumerable:!0,get:()=>buildPromptSnapshot(e.promptPresenter)},serverside:{enumerable:!0,get:()=>e.serverside.snapshot()}})),x=Object.freeze({on:a.events.on,off:a.events.off,topics:e.topics}),w=Object.freeze({affs:l.observe.affs,defs:l.observe.defs,balances:l.observe.balances,limbs:l.observe.limbs,mount:Object.freeze({set:l.observe.mount.set,reset:l.observe.mount.clear})}),C=Object.freeze({openConfig:(t="api.ui.openConfig")=>e.setConfigOpen(!0,t),closeConfig:(t="api.ui.closeConfig")=>e.setConfigOpen(!1,t),setConfigOpen:(t,n="api.ui.setConfigOpen")=>e.setConfigOpen(Boolean(t),n)}),k={...i.queue,...i.queues,list:i.queue.listQueues};return{state:S,api:{affs:{have:n.haveAff,haveAll:n.haveAffs,haveAny:n.haveAnAff,elapsedMs:n.affElapsedMs,elapsedSeconds:n.affElapsedSeconds,remainingMs:n.affRemainingMs,remainingSeconds:n.affRemainingSeconds,timing:n.affTiming,setPriority:s.updateAffPriority,setDefaultPriority:s.updateAffDefault,resetPriority:s.resetAffPriority,resetAllPriorities:s.resetAllAffPriorities},defs:{have:n.haveDef,haveAll:n.haveDefs,haveAny:n.haveAnyDef,setPriority:s.updateDefPriority,setDefaultPriority:s.updateDefDefault,setStatic:s.updateDefStatic,setCommand:s.updateDefCommand,resetPriority:s.resetDefPriority,resetAllPriorities:s.resetAllDefPriorities,defup:s.defup,defoff:s.defoff,parry:s.parry},balances:{have:n.haveBal,haveAll:n.haveBals,haveAny:n.haveAnyBal,elapsedMs:n.balElapsedMs,elapsedSeconds:n.balElapsedSeconds,remainingMs:n.balRemainingMs,remainingSeconds:n.balRemainingSeconds,timing:n.balTiming},limbs:{get:n.getLimb,list:n.listLimbs},target:{get:n.getTarget,set:i.setTarget,is:n.isTarget},class:{get:n.getClass,is:n.isClass,check:n.checkClass},command:{send:i.sendCmd,sendInline:i.sendInline,addOutput:i.addOutput,evaluateNow:i.evaluateNow},queue:k,rules:c,prompt:d.prompt,observe:w,ui:C,line:p,control:{...o},ss:{predictions:u.predictions,queue:{add:u.ssQueue.add,insert:u.ssQueue.insert,remove:u.ssQueue.remove,clear:u.ssQueue.reset},curingSets:u.curingSets,syncSnapshots:u.ss.syncSnapshots,startupStatus:u.ss.startupStatus,restoreWorkingFromDefault:u.restoreWorkingFromDefault,precache:{set:s.setPrecache},prioAff:{set:s.prioAff,reset:s.clearPrioAff}}},events:x}},generateChunk=(e,t,n)=>{const a=document.createElement("span");return a.style.color=t,a.style.backgroundColor=n,a.textContent=e,a},cloneTrustedHtmlNodes=e=>{const t=document.createElement("template");return t.innerHTML=String(e??""),[...t.content.childNodes].map(e=>e.cloneNode(!0))},replaceWordNodes=(e,t,n)=>{const a=String(t??"");if(!a)return!1;const o=document.createTreeWalker(e,globalThis.NodeFilter?.SHOW_TEXT??4),i=[];for(;o.nextNode();)i.push(o.currentNode);let s=!1;return i.forEach(e=>{const t=e?.textContent||"";if(!e?.parentNode||!t.includes(a))return;const o=document.createDocumentFragment();let i=0;for(;i<t.length;){const e=t.indexOf(a,i);if(-1===e){o.append(t.slice(i));break}e>i&&o.append(t.slice(i,e)),n().forEach(e=>o.appendChild(e)),i=e+a.length,s=!0}e.replaceWith(o)}),s},updateCurrentFormattedLine=e=>{const t=document.createElement("span");t.innerHTML=globalThis.nexusclient.current_line.parsed_line.formatted();const n=e(t);return globalThis.nexusclient.current_line.parsed_line.formatted=()=>t.innerHTML,n},replace$1=(...e)=>{const t=document.createElement("span");for(let n=0;n<e.length;n+=3)t.appendChild(generateChunk(e[n],e[n+1],e[n+2]));return globalThis.nexusclient.current_line.parsed_line.formatted=()=>t.outerHTML,!0},replaceHTML=e=>(globalThis.nexusclient.current_line.parsed_line.formatted=()=>e,!0),replaceWord=(e,t,n,a)=>updateCurrentFormattedLine(o=>replaceWordNodes(o,e,()=>[generateChunk(t,n,a)])),replaceWordHTML=(e,t)=>updateCurrentFormattedLine(n=>replaceWordNodes(n,e,()=>cloneTrustedHtmlNodes(t))),matchPattern=(e,t)=>"string"==typeof t?e.includes(t):t instanceof RegExp&&t.test(e),prevLine=e=>{const{current_block:t,current_line:n}=globalThis.nexusclient,a=t.indexOf(n);return!(a<=0)&&matchPattern(t[a-1].parsed_line.text(),e)},nextLine=e=>{const{current_block:t,current_line:n}=globalThis.nexusclient,a=t.indexOf(n);return!(a>=t.length-1)&&matchPattern(t[a+1].parsed_line.text(),e)},checkLine=(e,t)=>{const{current_block:n,current_line:a}=globalThis.nexusclient,o=n.indexOf(a)+t;return!(o<0||o>n.length-1)&&matchPattern(n[o].parsed_line.text(),e)},prependNotice=(...e)=>{const t=document.createElement("span");for(let n=0;n<e.length;n+=3)t.appendChild(generateChunk(e[n],e[n+1],e[n+2]));return globalThis.nexSys.prepend_line={timestamp:globalThis.nexusclient.current_block[1].timestamp,timestamp_ms:globalThis.nexusclient.current_block[1].timestamp_ms,parsed_line:{text:()=>t.outerHTML,formatted:()=>t.outerHTML}},t.outerHTML},say=e=>{const t=new SpeechSynthesisUtterance;t.voice=globalThis.speechSynthesis.getVoices().find(e=>"Google UK English Female"===e.voiceURI)||globalThis.speechSynthesis.getVoices().find(e=>"en-US"===e.lang),t.rate=1.1,t.pitch=1.3,t.text=e,globalThis.speechSynthesis.speaking&&globalThis.speechSynthesis.cancel(),setTimeout(()=>globalThis.speechSynthesis.speak(t),10)},_a={affTable:U,balanceTable:V,cacheTable:P,cacheNames:{herb_name_to_herb:C,mineral_to_herb:k,herb_to_mineral:E,herb_names:x,herb_names_group:w,mineral_names:v,mineral_names_group:S},cureTable:G,defTable:Q,defPrios:Z},Pa=Object.freeze({affCount:Array.isArray(U?.list)?U.list.length:0,cureCount:Object.keys(G||{}).length,defCount:Object.keys(Q||{}).length,balanceCount:Object.keys(V||{}).length,cacheCount:Object.keys(P||{}).length}),createNexSys=({adapter:e,adapterType:t="nexus",options:n={}}={})=>{const a={...n.adapterOptions||{}};void 0===a.debug&&(a.debug=n.debug??!1),void 0===a.startupGag&&(a.startupGag=n.startupGag??!0);const o=assertAdapterContract(e||("mock"===t?createMockAdapter(a):createNexusAdapter(a))),i=createRuntimeEngine({adapter:o,seedData:_a,options:n}),{state:s,api:l,events:c}=createPublicApi({runtime:i,lineUtils:{replace:replace$1,replaceHTML,replaceWord,replaceWordHTML,nextLine,checkLine,prependNotice,prevLine,say}});return{version:"1.0.1",seedMeta:Pa,tables:{limbs:be,dirs:ye,dirMap:ve,oppdirs:Se,shortDirs:xe,classList:we},adapter:o,runtime:i,state:s,api:l,events:c}},clearGlobalNexSys=()=>{if("undefined"==typeof globalThis)return;const e=globalThis.nexSys,t=e?.api?.control?.stop;if(e&&"function"==typeof t)try{t()}catch(n){console.error("nexSys4 failed to stop the existing global runtime during reinstall",n)}try{delete globalThis.nexSys}catch{globalThis.nexSys=void 0}},installGlobalNexSys=(e={})=>{clearGlobalNexSys();const t=createNexSys(e);return globalThis.nexSys=t,t.api.control.start(),t},Ta=Object.freeze({coalesceGmcp:!0,publishToEventStream:!0,publishRawGmcp:!1,debug:!1,startupTimeoutMs:2500,maxStartupRetries:3,maxEntriesPerSubmission:20,pendingTimeoutMs:12e3,desyncCommandRepeats:3,maxSsCommandsPerCycle:40}),bootstrapNexus=(e={})=>{const{forceNew:t,...n}=e;return uninstallNexusClientOverrides(),installNexusClientOverrides(),installGlobalNexSys({adapterType:"nexus",options:{...Ta,...n}})},Aa=Symbol.for("nexsys4.startup.installed"),Ra="font_stacks_original",getNexusclient=()=>globalThis.nexusclient&&"object"==typeof globalThis.nexusclient?globalThis.nexusclient:null,mountGui=e=>{if(!globalThis.ReactDOM||!globalThis.React)return!1;document.getElementById("modal-root")||document.body.appendChild(Object.assign(document.createElement("div"),{id:"modal-root"})),document.getElementById("nexsys-modal")?.remove();const t=Object.assign(document.createElement("div"),{id:"nexsys-modal"});return document.getElementById("modal-root").appendChild(t),globalThis.ReactDOM.createRoot(t).render(globalThis.React.createElement(e.component,{nexSys:e})),!0},injectFonts=()=>{const e=document.getElementsByTagName("head")[0],t=document.createElement("link");t.rel="stylesheet",t.href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap",e.appendChild(t);const n=document.createElement("link");n.rel="stylesheet",n.href="https://fonts.googleapis.com/css?family=Roboto%20Mono:300,400,500,700&display=swap",e.appendChild(n)},patchFontStacks=e=>{const t=e.settings();if(void 0!==t[Ra])return;const n=document.getElementsByTagName("head")[0],a=document.getElementById("nexSysCSS")||document.createElement("style");a.id="nexSysCSS",a.parentNode||n.appendChild(a),t[Ra]=t.font_stacks,t.font_stacks=function(){return a.textContent=`.timestamp {font-family: ${t.font_stack}}`,[{name:"RobotoMono",stack:"Roboto Mono,Consolas,monospace"},{name:"Consolas",stack:"Consolas,RobotoMono,monospace"},{name:"Verdana",stack:"Verdana, Geneva, sans-serif"},{name:"Lucida",stack:"'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', Geneva, Verdana, sans-serif"},{name:"Arial",stack:"Arial, 'Helvetica Neue', Helvetica, sans-serif"},{name:"Futura",stack:"Futura, 'Trebuchet MS', Arial, sans-serif"},{name:"Book Antiqua",stack:"'Book Antiqua', Palatino, 'Palatino Linotype', 'Palatino LT STD', Georgia, serif"},...t[Ra]()]}},initializeSettings=e=>{void 0===e.variables().vars.nexSys4Settings&&(e.variables().vars.nexSys4Settings={})},startupNexus=()=>{const e=getNexusclient();return!!e&&(e[Aa]||(injectFonts(),patchFontStacks(e),initializeSettings(e),e[Aa]=!0),mountGui(globalThis.nexSys),!0)},Ma=(0,c.createContext)(null);function useNexSys(){return(0,c.useContext)(Ma)}var Da=__commonJSMin(e=>{var t=Symbol.for("react.transitional.element");Symbol.for("react.fragment");function jsxProd(e,n,a){var o=null;if(void 0!==a&&(o=""+a),void 0!==n.key&&(o=""+n.key),"key"in n)for(var i in a={},n)"key"!==i&&(a[i]=n[i]);else a=n;return n=a.ref,{$$typeof:t,type:e,key:o,ref:void 0!==n?n:null,props:a}}e.jsx=jsxProd,e.jsxs=jsxProd}),Oa=__commonJSMin((e,t)=>{t.exports=Da()})();function NexSysProvider({nexSys:e,children:t}){return(0,Oa.jsx)(Ma.Provider,{value:e,children:t})}var $a={black:"#000",white:"#fff"},Ia={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},Na={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},za={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},La={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},ja={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},Ba={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},Fa={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};function formatMuiErrorMessage(e,...t){const n=new URL(`https://mui.com/production-error/?code=${e}`);return t.forEach(e=>n.searchParams.append("args[]",e)),`Minified MUI error #${e}; visit ${n} for the full message.`}var qa="$$material";function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_extends.apply(null,arguments)}var Ua=!1;function sheetForTag(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}function createStyleElement(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}var Va=function(){function StyleSheet(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy?!Ua:e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var e=StyleSheet.prototype;return e.hydrate=function hydrate(e){e.forEach(this._insertTag)},e.insert=function insert(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(createStyleElement(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=sheetForTag(t);try{n.insertRule(e,n.cssRules.length)}catch(a){}}else t.appendChild(document.createTextNode(e));this.ctr++},e.flush=function flush(){this.tags.forEach(function(e){var t;return null==(t=e.parentNode)?void 0:t.removeChild(e)}),this.tags=[],this.ctr=0},StyleSheet}(),Ha="-ms-",Wa="-moz-",Ga="-webkit-",Ya="comm",Ka="rule",Qa="decl",Za="@import",Xa="@keyframes",Ja="@layer",eo=Math.abs,to=String.fromCharCode,ro=Object.assign;function hash$2(e,t){return 45^charat(e,0)?(((t<<2^charat(e,0))<<2^charat(e,1))<<2^charat(e,2))<<2^charat(e,3):0}function trim(e){return e.trim()}function match(e,t){return(e=t.exec(e))?e[0]:e}function replace(e,t,n){return e.replace(t,n)}function indexof(e,t){return e.indexOf(t)}function charat(e,t){return 0|e.charCodeAt(t)}function substr(e,t,n){return e.slice(t,n)}function strlen(e){return e.length}function sizeof(e){return e.length}function append(e,t){return t.push(e),e}function combine(e,t){return e.map(t).join("")}var no=1,ao=1,oo=0,io=0,so=0,lo="";function node(e,t,n,a,o,i,s){return{value:e,root:t,parent:n,type:a,props:o,children:i,line:no,column:ao,length:s,return:""}}function copy(e,t){return ro(node("",null,null,"",null,null,0),e,{length:-e.length},t)}function char(){return so}function prev(){return so=io>0?charat(lo,--io):0,ao--,10===so&&(ao=1,no--),so}function next(){return so=io<oo?charat(lo,io++):0,ao++,10===so&&(ao=1,no++),so}function peek$1(){return charat(lo,io)}function caret(){return io}function slice(e,t){return substr(lo,e,t)}function token(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function alloc(e){return no=ao=1,oo=strlen(lo=e),io=0,[]}function dealloc(e){return lo="",e}function delimit(e){return trim(slice(io-1,delimiter(91===e?e+2:40===e?e+1:e)))}function whitespace(e){for(;(so=peek$1())&&so<33;)next();return token(e)>2||token(so)>3?"":" "}function escaping(e,t){for(;--t&&next()&&!(so<48||so>102||so>57&&so<65||so>70&&so<97););return slice(e,caret()+(t<6&&32==peek$1()&&32==next()))}function delimiter(e){for(;next();)switch(so){case e:return io;case 34:case 39:34!==e&&39!==e&&delimiter(so);break;case 40:41===e&&delimiter(e);break;case 92:next()}return io}function commenter(e,t){for(;next()&&e+so!==57&&(e+so!==84||47!==peek$1()););return"/*"+slice(t,io-1)+"*"+to(47===e?e:next())}function identifier(e){for(;!token(peek$1());)next();return slice(e,io)}function compile(e){return dealloc(parse("",null,null,null,[""],e=alloc(e),0,[0],e))}function parse(e,t,n,a,o,i,s,l,c){for(var u=0,d=0,p=s,m=0,g=0,h=0,b=1,y=1,v=1,S=0,x="",w=o,C=i,k=a,E=x;y;)switch(h=S,S=next()){case 40:if(108!=h&&58==charat(E,p-1)){-1!=indexof(E+=replace(delimit(S),"&","&\f"),"&\f")&&(v=-1);break}case 34:case 39:case 91:E+=delimit(S);break;case 9:case 10:case 13:case 32:E+=whitespace(h);break;case 92:E+=escaping(caret()-1,7);continue;case 47:switch(peek$1()){case 42:case 47:append(comment(commenter(next(),caret()),t,n),c);break;default:E+="/"}break;case 123*b:l[u++]=strlen(E)*v;case 125*b:case 59:case 0:switch(S){case 0:case 125:y=0;case 59+d:-1==v&&(E=replace(E,/\f/g,"")),g>0&&strlen(E)-p&&append(g>32?declaration(E+";",a,n,p-1):declaration(replace(E," ","")+";",a,n,p-2),c);break;case 59:E+=";";default:if(append(k=ruleset(E,t,n,u,d,o,l,x,w=[],C=[],p),i),123===S)if(0===d)parse(E,t,k,k,w,i,p,l,C);else switch(99===m&&110===charat(E,3)?100:m){case 100:case 108:case 109:case 115:parse(e,k,k,a&&append(ruleset(e,k,k,0,0,o,l,x,o,w=[],p),C),o,C,p,l,a?w:C);break;default:parse(E,k,k,k,[""],C,0,l,C)}}u=d=g=0,b=v=1,x=E="",p=s;break;case 58:p=1+strlen(E),g=h;default:if(b<1)if(123==S)--b;else if(125==S&&0==b++&&125==prev())continue;switch(E+=to(S),S*b){case 38:v=d>0?1:(E+="\f",-1);break;case 44:l[u++]=(strlen(E)-1)*v,v=1;break;case 64:45===peek$1()&&(E+=delimit(next())),m=peek$1(),d=p=strlen(x=E+=identifier(caret())),S++;break;case 45:45===h&&2==strlen(E)&&(b=0)}}return i}function ruleset(e,t,n,a,o,i,s,l,c,u,d){for(var p=o-1,m=0===o?i:[""],g=sizeof(m),h=0,b=0,y=0;h<a;++h)for(var v=0,S=substr(e,p+1,p=eo(b=s[h])),x=e;v<g;++v)(x=trim(b>0?m[v]+" "+S:replace(S,/&\f/g,m[v])))&&(c[y++]=x);return node(e,t,n,0===o?Ka:l,c,u,d)}function comment(e,t,n){return node(e,t,n,Ya,to(char()),substr(e,2,-2),0)}function declaration(e,t,n,a){return node(e,t,n,Qa,substr(e,0,a),substr(e,a+1,-1),a)}function serialize(e,t){for(var n="",a=sizeof(e),o=0;o<a;o++)n+=t(e[o],o,e,t)||"";return n}function stringify(e,t,n,a){switch(e.type){case Ja:if(e.children.length)break;case Za:case Qa:return e.return=e.return||e.value;case Ya:return"";case Xa:return e.return=e.value+"{"+serialize(e.children,a)+"}";case Ka:e.value=e.props.join(",")}return strlen(n=serialize(e.children,a))?e.return=e.value+"{"+n+"}":""}function middleware(e){var t=sizeof(e);return function(n,a,o,i){for(var s="",l=0;l<t;l++)s+=e[l](n,a,o,i)||"";return s}}function rulesheet(e){return function(t){t.root||(t=t.return)&&e(t)}}function memoize(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var co=function identifierWithPointTracking(e,t,n){for(var a=0,o=0;a=o,o=peek$1(),38===a&&12===o&&(t[n]=1),!token(o);)next();return slice(e,io)},uo=function toRules(e,t){var n=-1,a=44;do{switch(token(a)){case 0:38===a&&12===peek$1()&&(t[n]=1),e[n]+=co(io-1,t,n);break;case 2:e[n]+=delimit(a);break;case 4:if(44===a){e[++n]=58===peek$1()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=to(a)}}while(a=next());return e},po=function getRules(e,t){return dealloc(uo(alloc(e),t))},mo=new WeakMap,fo=function compat(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,a=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||mo.get(n))&&!a){mo.set(e,!0);for(var o=[],i=po(t,o),s=n.props,l=0,c=0;l<i.length;l++)for(var u=0;u<s.length;u++,c++)e.props[c]=o[l]?i[l].replace(/&\f/g,s[u]):s[u]+" "+i[l]}}},go=function removeLabel(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function prefix(e,t){switch(hash$2(e,t)){case 5103:return Ga+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Ga+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return Ga+e+Wa+e+Ha+e+e;case 6828:case 4268:return Ga+e+Ha+e+e;case 6165:return Ga+e+Ha+"flex-"+e+e;case 5187:return Ga+e+replace(e,/(\w+).+(:[^]+)/,Ga+"box-$1$2"+Ha+"flex-$1$2")+e;case 5443:return Ga+e+Ha+"flex-item-"+replace(e,/flex-|-self/,"")+e;case 4675:return Ga+e+Ha+"flex-line-pack"+replace(e,/align-content|flex-|-self/,"")+e;case 5548:return Ga+e+Ha+replace(e,"shrink","negative")+e;case 5292:return Ga+e+Ha+replace(e,"basis","preferred-size")+e;case 6060:return Ga+"box-"+replace(e,"-grow","")+Ga+e+Ha+replace(e,"grow","positive")+e;case 4554:return Ga+replace(e,/([^-])(transform)/g,"$1"+Ga+"$2")+e;case 6187:return replace(replace(replace(e,/(zoom-|grab)/,Ga+"$1"),/(image-set)/,Ga+"$1"),e,"")+e;case 5495:case 3959:return replace(e,/(image-set\([^]*)/,Ga+"$1$`$1");case 4968:return replace(replace(e,/(.+:)(flex-)?(.*)/,Ga+"box-pack:$3"+Ha+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Ga+e+e;case 4095:case 3583:case 4068:case 2532:return replace(e,/(.+)-inline(.+)/,Ga+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(strlen(e)-1-t>6)switch(charat(e,t+1)){case 109:if(45!==charat(e,t+4))break;case 102:return replace(e,/(.+:)(.+)-([^]+)/,"$1"+Ga+"$2-$3$1"+Wa+(108==charat(e,t+3)?"$3":"$2-$3"))+e;case 115:return~indexof(e,"stretch")?prefix(replace(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==charat(e,t+1))break;case 6444:switch(charat(e,strlen(e)-3-(~indexof(e,"!important")&&10))){case 107:return replace(e,":",":"+Ga)+e;case 101:return replace(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Ga+(45===charat(e,14)?"inline-":"")+"box$3$1"+Ga+"$2$3$1"+Ha+"$2box$3")+e}break;case 5936:switch(charat(e,t+11)){case 114:return Ga+e+Ha+replace(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Ga+e+Ha+replace(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Ga+e+Ha+replace(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return Ga+e+Ha+e+e}return e}var ho=[function prefixer(e,t,n,a){if(e.length>-1&&!e.return)switch(e.type){case Qa:e.return=prefix(e.value,e.length);break;case Xa:return serialize([copy(e,{value:replace(e.value,"@","@"+Ga)})],a);case Ka:if(e.length)return combine(e.props,function(t){switch(match(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return serialize([copy(e,{props:[replace(t,/:(read-\w+)/,":"+Wa+"$1")]})],a);case"::placeholder":return serialize([copy(e,{props:[replace(t,/:(plac\w+)/,":"+Ga+"input-$1")]}),copy(e,{props:[replace(t,/:(plac\w+)/,":"+Wa+"$1")]}),copy(e,{props:[replace(t,/:(plac\w+)/,Ha+"input-$1")]})],a)}return""})}}],bo=function createCache(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))})}var a,o,i=e.stylisPlugins||ho,s={},l=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)s[t[n]]=!0;l.push(e)});var c,u=[fo,go],d=[stringify,rulesheet(function(e){c.insert(e)})],p=middleware(u.concat(i,d)),m=function stylis(e){return serialize(compile(e),p)};o=function insert(e,t,n,a){c=n,m(e?e+"{"+t.styles+"}":t.styles),a&&(g.inserted[t.name]=!0)};var g={key:t,sheet:new Va({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:s,registered:{},insert:o};return g.sheet.hydrate(l),g},yo=__commonJSMin(e=>{var t="function"==typeof Symbol&&Symbol.for,n=t?Symbol.for("react.element"):60103,a=t?Symbol.for("react.portal"):60106,o=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,s=t?Symbol.for("react.profiler"):60114,l=t?Symbol.for("react.provider"):60109,c=t?Symbol.for("react.context"):60110,u=t?Symbol.for("react.async_mode"):60111,d=t?Symbol.for("react.concurrent_mode"):60111,p=t?Symbol.for("react.forward_ref"):60112,m=t?Symbol.for("react.suspense"):60113,g=t?Symbol.for("react.suspense_list"):60120,h=t?Symbol.for("react.memo"):60115,b=t?Symbol.for("react.lazy"):60116,y=t?Symbol.for("react.block"):60121,v=t?Symbol.for("react.fundamental"):60117,S=t?Symbol.for("react.responder"):60118,x=t?Symbol.for("react.scope"):60119;function z(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case u:case d:case o:case s:case i:case m:return e;default:switch(e=e&&e.$$typeof){case c:case p:case b:case h:case l:return e;default:return t}}case a:return t}}}function A(e){return z(e)===d}e.AsyncMode=u,e.ConcurrentMode=d,e.ContextConsumer=c,e.ContextProvider=l,e.Element=n,e.ForwardRef=p,e.Fragment=o,e.Lazy=b,e.Memo=h,e.Portal=a,e.Profiler=s,e.StrictMode=i,e.Suspense=m,e.isAsyncMode=function(e){return A(e)||z(e)===u},e.isConcurrentMode=A,e.isContextConsumer=function(e){return z(e)===c},e.isContextProvider=function(e){return z(e)===l},e.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},e.isForwardRef=function(e){return z(e)===p},e.isFragment=function(e){return z(e)===o},e.isLazy=function(e){return z(e)===b},e.isMemo=function(e){return z(e)===h},e.isPortal=function(e){return z(e)===a},e.isProfiler=function(e){return z(e)===s},e.isStrictMode=function(e){return z(e)===i},e.isSuspense=function(e){return z(e)===m},e.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===i||e===m||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===S||e.$$typeof===x||e.$$typeof===y)},e.typeOf=z}),vo=__commonJSMin((e,t)=>{t.exports=yo()}),So=__commonJSMin((e,t)=>{var n=vo(),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function getStatics(e){return n.isMemo(e)?s:l[e.$$typeof]||a}l[n.ForwardRef]=i,l[n.Memo]=s;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,m=Object.getPrototypeOf,g=Object.prototype;function hoistNonReactStatics(e,t,n){if("string"!=typeof t){if(g){var a=m(t);a&&a!==g&&hoistNonReactStatics(e,a,n)}var i=u(t);d&&(i=i.concat(d(t)));for(var s=getStatics(e),l=getStatics(t),h=0;h<i.length;++h){var b=i[h];if(!(o[b]||n&&n[b]||l&&l[b]||s&&s[b])){var y=p(t,b);try{c(e,b,y)}catch(v){}}}}return e}t.exports=hoistNonReactStatics}),xo=!0;function getRegisteredStyles(e,t,n){var a="";return n.split(" ").forEach(function(n){void 0!==e[n]?t.push(e[n]+";"):n&&(a+=n+" ")}),a}var wo=function registerStyles(e,t,n){var a=e.key+"-"+t.name;!1!==n&&!1!==xo||void 0!==e.registered[a]||(e.registered[a]=t.styles)},Co=function insertStyles(e,t,n){wo(e,t,n);var a=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+a:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}};function murmur2(e){for(var t,n=0,a=0,o=e.length;o>=4;++a,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(a)|(255&e.charCodeAt(++a))<<8|(255&e.charCodeAt(++a))<<16|(255&e.charCodeAt(++a))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(a+2))<<16;case 2:n^=(255&e.charCodeAt(a+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(a)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}var ko={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,scale:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Eo=!1,_o=/[A-Z]|^ms/g,Po=/_EMO_([^_]+?)_([^]*?)_EMO_/g,To=function isCustomProperty(e){return 45===e.charCodeAt(1)},Ao=function isProcessableValue(e){return null!=e&&"boolean"!=typeof e},Ro=memoize(function(e){return To(e)?e:e.replace(_o,"-$&").toLowerCase()}),Mo=function processStyleValue(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(Po,function(e,t,n){return Oo={name:t,styles:n,next:Oo},t})}return 1===ko[e]||To(e)||"number"!=typeof t||0===t?t:t+"px"},Do="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function handleInterpolation(e,t,n){if(null==n)return"";var a=n;if(void 0!==a.__emotion_styles)return a;switch(typeof n){case"boolean":return"";case"object":var o=n;if(1===o.anim)return Oo={name:o.name,styles:o.styles,next:Oo},o.name;var i=n;if(void 0!==i.styles){var s=i.next;if(void 0!==s)for(;void 0!==s;)Oo={name:s.name,styles:s.styles,next:Oo},s=s.next;return i.styles+";"}return createStringFromObject(e,t,n);case"function":if(void 0!==e){var l=Oo,c=n(e);return Oo=l,handleInterpolation(e,t,c)}}var u=n;if(null==t)return u;var d=t[u];return void 0!==d?d:u}function createStringFromObject(e,t,n){var a="";if(Array.isArray(n))for(var o=0;o<n.length;o++)a+=handleInterpolation(e,t,n[o])+";";else for(var i in n){var s=n[i];if("object"!=typeof s){var l=s;null!=t&&void 0!==t[l]?a+=i+"{"+t[l]+"}":Ao(l)&&(a+=Ro(i)+":"+Mo(i,l)+";")}else{if("NO_COMPONENT_SELECTOR"===i&&Eo)throw new Error(Do);if(!Array.isArray(s)||"string"!=typeof s[0]||null!=t&&void 0!==t[s[0]]){var c=handleInterpolation(e,t,s);switch(i){case"animation":case"animationName":a+=Ro(i)+":"+c+";";break;default:a+=i+"{"+c+"}"}}else for(var u=0;u<s.length;u++)Ao(s[u])&&(a+=Ro(i)+":"+Mo(i,s[u])+";")}}return a}var Oo,$o=/label:\s*([^\s;{]+)\s*(;|$)/g;function serializeStyles(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var a=!0,o="";Oo=void 0;var i=e[0];null==i||void 0===i.raw?(a=!1,o+=handleInterpolation(n,t,i)):o+=i[0];for(var s=1;s<e.length;s++)o+=handleInterpolation(n,t,e[s]),a&&(o+=i[s]);$o.lastIndex=0;for(var l,c="";null!==(l=$o.exec(o));)c+="-"+l[1];return{name:murmur2(o)+c,styles:o,next:Oo}}var Io=function syncFallback(e){return e()},No=!!e.useInsertionEffect&&e.useInsertionEffect,zo=No||Io,Lo=No||e.useLayoutEffect,jo=e.createContext("undefined"!=typeof HTMLElement?bo({key:"css"}):null),Bo=(jo.Provider,function withEmotionCache(t){return(0,e.forwardRef)(function(n,a){return t(n,(0,e.useContext)(jo),a)})}),Fo=e.createContext({}),qo={}.hasOwnProperty,Uo="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Vo=function createEmotionProps(e,t){var n={};for(var a in t)qo.call(t,a)&&(n[a]=t[a]);return n[Uo]=e,n},Ho=function Insertion(e){var t=e.cache,n=e.serialized,a=e.isStringTag;return wo(t,n,a),zo(function(){return Co(t,n,a)}),null},Wo=Bo(function(t,n,a){var o=t.css;"string"==typeof o&&void 0!==n.registered[o]&&(o=n.registered[o]);var i=t[Uo],s=[o],l="";"string"==typeof t.className?l=getRegisteredStyles(n.registered,s,t.className):null!=t.className&&(l=t.className+" ");var c=serializeStyles(s,void 0,e.useContext(Fo));l+=n.key+"-"+c.name;var u={};for(var d in t)qo.call(t,d)&&"css"!==d&&d!==Uo&&(u[d]=t[d]);return u.className=l,a&&(u.ref=a),e.createElement(e.Fragment,null,e.createElement(Ho,{cache:n,serialized:c,isStringTag:"string"==typeof i}),e.createElement(i,u))}),Go=(So(),function jsx(t,n){var a=arguments;if(null==n||!qo.call(n,"css"))return e.createElement.apply(void 0,a);var o=a.length,i=new Array(o);i[0]=Wo,i[1]=Vo(t,n);for(var s=2;s<o;s++)i[s]=a[s];return e.createElement.apply(null,i)});!function(e){var t;t||(t=e.JSX||(e.JSX={}))}(Go||(Go={}));var Yo=Bo(function(t,n){var a=serializeStyles([t.styles],void 0,e.useContext(Fo)),o=e.useRef();return Lo(function(){var e=n.key+"-global",t=new n.sheet.constructor({key:e,nonce:n.sheet.nonce,container:n.sheet.container,speedy:n.sheet.isSpeedy}),i=!1,s=document.querySelector('style[data-emotion="'+e+" "+a.name+'"]');return n.sheet.tags.length&&(t.before=n.sheet.tags[0]),null!==s&&(i=!0,s.setAttribute("data-emotion",e),t.hydrate([s])),o.current=[t,i],function(){t.flush()}},[n]),Lo(function(){var e=o.current,t=e[0];e[1]?e[1]=!1:(void 0!==a.next&&Co(n,a.next,!0),t.tags.length&&(t.before=t.tags[t.tags.length-1].nextElementSibling,t.flush()),n.insert("",a,t,!1))},[n,a.name]),null});function css(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return serializeStyles(t)}function keyframes(){var e=css.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function toString(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}}var Ko=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Qo=!1,Zo=memoize(function(e){return Ko.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}),Xo=function testOmitPropsOnComponent(e){return"theme"!==e},Jo=function getDefaultShouldForwardProp(e){return"string"==typeof e&&e.charCodeAt(0)>96?Zo:Xo},ei=function composeShouldForwardProps(e,t,n){var a;if(t){var o=t.shouldForwardProp;a=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!=typeof a&&n&&(a=e.__emotion_forwardProp),a},ti=function Insertion(e){var t=e.cache,n=e.serialized,a=e.isStringTag;return wo(t,n,a),zo(function(){return Co(t,n,a)}),null},ri=function createStyled(t,n){var a,o,i=t.__emotion_real===t,s=i&&t.__emotion_base||t;void 0!==n&&(a=n.label,o=n.target);var l=ei(t,n,i),c=l||Jo(s),u=!c("as");return function(){var d=arguments,p=i&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&p.push("label:"+a+";"),null==d[0]||void 0===d[0].raw)p.push.apply(p,d);else{var m=d[0];p.push(m[0]);for(var g=d.length,h=1;h<g;h++)p.push(d[h],m[h])}var b=Bo(function(t,n,a){var i=u&&t.as||s,d="",m=[],g=t;if(null==t.theme){for(var h in g={},t)g[h]=t[h];g.theme=e.useContext(Fo)}"string"==typeof t.className?d=getRegisteredStyles(n.registered,m,t.className):null!=t.className&&(d=t.className+" ");var b=serializeStyles(p.concat(m),n.registered,g);d+=n.key+"-"+b.name,void 0!==o&&(d+=" "+o);var y=u&&void 0===l?Jo(i):c,v={};for(var S in t)u&&"as"===S||y(S)&&(v[S]=t[S]);return v.className=d,a&&(v.ref=a),e.createElement(e.Fragment,null,e.createElement(ti,{cache:n,serialized:b,isStringTag:"string"==typeof i}),e.createElement(i,v))});return b.displayName=void 0!==a?a:"Styled("+("string"==typeof s?s:s.displayName||s.name||"Component")+")",b.defaultProps=t.defaultProps,b.__emotion_real=b,b.__emotion_base=s,b.__emotion_styles=p,b.__emotion_forwardProp=l,Object.defineProperty(b,"toString",{value:function value(){return void 0===o&&Qo?"NO_COMPONENT_SELECTOR":"."+o}}),b.withComponent=function(e,t){return createStyled(e,_extends({},n,t,{shouldForwardProp:ei(b,t,!0)})).apply(void 0,p)},b}},ni=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"],ai=ri.bind(null);function isEmpty$2(e){return null==e||0===Object.keys(e).length}function GlobalStyles$2(e){const{styles:t,defaultTheme:n={}}=e;return(0,Oa.jsx)(Yo,{styles:"function"==typeof t?e=>t(isEmpty$2(e)?n:e):t})}function styled$1(e,t){return ai(e,t)}function internal_mutateStyles(e,t){Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}ni.forEach(function(e){ai[e]=ai(e)});var oi=[];function internal_serializeStyles(e){return oi[0]=e,serializeStyles(oi)}var ii=__commonJSMin(e=>{Symbol.for("react.transitional.element"),Symbol.for("react.portal");var t=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),i=Symbol.for("react.context"),s=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.suspense_list"),u=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),p=(Symbol.for("react.view_transition"),Symbol.for("react.client.reference"));e.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===t||e===a||e===n||e===l||e===c||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===u||e.$$typeof===i||e.$$typeof===o||e.$$typeof===s||e.$$typeof===p||void 0!==e.getModuleId)}}),si=__commonJSMin((e,t)=>{t.exports=ii()})();function isPlainObject$1(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}function deepClone(e){if(c.isValidElement(e)||(0,si.isValidElementType)(e)||!isPlainObject$1(e))return e;const t={};return Object.keys(e).forEach(n=>{t[n]=deepClone(e[n])}),t}function deepmerge(e,t,n={clone:!0}){const a=n.clone?{...e}:e;return isPlainObject$1(e)&&isPlainObject$1(t)&&Object.keys(t).forEach(o=>{c.isValidElement(t[o])||(0,si.isValidElementType)(t[o])?a[o]=t[o]:isPlainObject$1(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&isPlainObject$1(e[o])?a[o]=deepmerge(e[o],t[o],n):n.clone?a[o]=isPlainObject$1(t[o])?deepClone(t[o]):t[o]:a[o]=t[o]}),a}var sortBreakpointsValues=e=>{const t=Object.keys(e).map(t=>({key:t,val:e[t]}))||[];return t.sort((e,t)=>e.val-t.val),t.reduce((e,t)=>({...e,[t.key]:t.val}),{})};function createBreakpoints(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:a=5,...o}=e,i=sortBreakpointsValues(t),s=Object.keys(i);function up(e){return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n})`}function down(e){return`@media (max-width:${("number"==typeof t[e]?t[e]:e)-a/100}${n})`}function between(e,o){const i=s.indexOf(o);return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${n}) and (max-width:${(-1!==i&&"number"==typeof t[s[i]]?t[s[i]]:o)-a/100}${n})`}function only(e){return s.indexOf(e)+1<s.length?between(e,s[s.indexOf(e)+1]):up(e)}function not(e){const t=s.indexOf(e);return 0===t?up(s[1]):t===s.length-1?down(s[t]):between(e,s[s.indexOf(e)+1]).replace("@media","@media not all and")}const l=[];for(let c=0;c<s.length;c+=1)l.push(up(s[c]));return{keys:s,values:i,up,down,between,only,not,unit:n,internal_mediaKeys:l,...o}}var li=/min-width:\s*([0-9.]+)/;function sortContainerQueries(e,t){if(!e.containerQueries||!hasContainerQuery(t))return t;const n=[];for(const o in t)o.startsWith("@container")&&n.push(o);n.sort((e,t)=>+(e.match(li)?.[1]||0)-+(t.match(li)?.[1]||0));const a=t;for(let o=0;o<n.length;o+=1){const e=n[o],t=a[e];delete a[e],a[e]=t}return a}function hasContainerQuery(e){for(const t in e)if(t.startsWith("@container"))return!0;return!1}function isCqShorthand(e,t){return"@"===t||t.startsWith("@")&&(e.some(e=>t.startsWith(`@${e}`))||!!t.match(/^@\d/))}function getContainerQuery(e,t){const n=t.match(/^@([^/]+)?\/?(.+)?$/);if(!n)return null;const[,a,o]=n,i=Number.isNaN(+a)?a||0:+a;return e.containerQueries(o).up(i)}function cssContainerQueries(e){const toContainerQuery=(e,t)=>e.replace("@media",t?`@container ${t}`:"@container");function attachCq(t,n){t.up=(...t)=>toContainerQuery(e.breakpoints.up(...t),n),t.down=(...t)=>toContainerQuery(e.breakpoints.down(...t),n),t.between=(...t)=>toContainerQuery(e.breakpoints.between(...t),n),t.only=(...t)=>toContainerQuery(e.breakpoints.only(...t),n),t.not=(...t)=>{const a=toContainerQuery(e.breakpoints.not(...t),n);return a.includes("not all and")?a.replace("not all and ","").replace("min-width:","width<").replace("max-width:","width>").replace("and","or"):a}}const t={},containerQueries=e=>(attachCq(t,e),t);return attachCq(containerQueries),{...e,containerQueries}}var ci={borderRadius:4};function isObjectEmpty$2(e){if(null==e)return!0;for(const t in e)return!1;return!0}function fastDeepAssign(e,t){const n=Array.isArray(t),a=Array.isArray(e);return isPrimitive(t)?t:isPrimitiveOrBuiltIn(e)?clone(t):n&&a?mergeArray(e,t):n!==a?clone(t):mergeObject(e,t)}function cloneArray(e){let t=0;const n=e.length,a=new Array(n);for(t=0;t<n;t+=1)a[t]=clone(e[t]);return a}function cloneObject(e){const t={};for(const n in e)t[n]=clone(e[n]);return t}function mergeArray(e,t){const n=e.length;for(let a=0;a<t.length;a+=1)e[n+a]=clone(t[a]);return e}function isMergeableObject(e){return!("object"!=typeof e||null===e||e instanceof RegExp||e instanceof Date)}function isPrimitive(e){return"object"!=typeof e||null===e}function isPrimitiveOrBuiltIn(e){return"object"!=typeof e||null===e||e instanceof RegExp||e instanceof Date}function clone(e){return isMergeableObject(e)?Array.isArray(e)?cloneArray(e):cloneObject(e):e}function mergeObject(e,t){for(const n in t)e[n]=n in e?fastDeepAssign(e[n],t[n]):clone(t[n]);return e}var ui={},di={xs:0,sm:600,md:900,lg:1200,xl:1536},pi=createBreakpoints({values:di}),mi={containerQueries:e=>({up:t=>{let n="number"==typeof t?t:di[t]||t;return"number"==typeof n&&(n=`${n}px`),e?`@container ${e} (min-width:${n})`:`@container (min-width:${n})`}})};function handleBreakpoints(e,t,n){const a={};return iterateBreakpoints(a,e.theme,t,(e,t,o)=>{const i=n(t,o);e?a[e]=i:fastDeepAssign(a,i)})}function iterateBreakpoints(e,t,n,a){if(t??=ui,Array.isArray(n)){const o=t.breakpoints??pi;for(let t=0;t<n.length;t+=1)buildBreakpoint(e,o.up(o.keys[t]),n[t],void 0,a);return e}if("object"==typeof n){const o=t.breakpoints??pi,i=o.values??di;for(const s in n)if(isCqShorthand(o.keys,s)){const o=getContainerQuery(t.containerQueries?t:mi,s);o&&buildBreakpoint(e,o,n[s],s,a)}else if(s in i)buildBreakpoint(e,o.up(s),n[s],s,a);else{const t=s;e[t]=n[t]}return e}return a(void 0,n),e}function buildBreakpoint(e,t,n,a,o){e[t]??={},o(t,n,a)}function createEmptyBreakpointObject(e=pi){const{internal_mediaKeys:t}=e,n={};for(let a=0;a<t.length;a+=1)n[t[a]]={};return n}function removeUnusedBreakpoints(e,t){const n=e.internal_mediaKeys;for(let a=0;a<n.length;a+=1){const e=n[a];isObjectEmpty$2(t[e])&&delete t[e]}return t}function hasBreakpoint(e,t){if(Array.isArray(t))return!0;if("object"==typeof t&&null!==t){for(let a=0;a<e.keys.length;a+=1)if(e.keys[a]in t)return!0;const n=Object.keys(t);for(let t=0;t<n.length;t+=1)if(isCqShorthand(e.keys,n[t]))return!0}return!1}function capitalize$1(e){if("string"!=typeof e)throw new Error(formatMuiErrorMessage(7));return e.charAt(0).toUpperCase()+e.slice(1)}function getStyleValue2(e,t,n,a){let o;return o="function"==typeof e?e(n):Array.isArray(e)?e[n]||n:"string"==typeof n&&getPath(e,n,!0,a)||n,t&&(o=t(o,n,e)),o}function getPath(e,t,n=!0,a=void 0){if(!e||!t)return null;const o=t.split(".");if(e.vars&&n){const t=getPathImpl(e.vars,o,a);if(null!=t)return t}return getPathImpl(e,o,a)}function getPathImpl(e,t,n=void 0){let a,o=e,i=0;for(;i<t.length;){if(null==o)return o;a=o,o=o[t[i]],i+=1}if(n&&void 0===o){const e=t[t.length-1],o=`${n}${"default"===e?"":capitalize$1(e)}`;return a?.[o]}return o}function style$1(e){const{prop:t,cssProperty:n=e.prop,themeKey:a,transform:o}=e,fn=e=>{if(null==e[t])return null;const i=e[t],s=getPath(e.theme,a)||{};return handleBreakpoints(e,i,e=>{const a=getStyleValue2(s,o,e,t);return!1===n?a:{[n]:a}})};return fn.propTypes={},fn.filterProps=[t],fn}var fi={internal_cache:{}},gi={m:"margin",p:"padding"},hi={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},bi={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},yi={};for(const Mg in gi)yi[Mg]=[gi[Mg]];for(const Mg in gi)for(const e in hi){const t=gi[Mg],n=hi[e],a=Array.isArray(n)?n.map(e=>t+e):[t+n];yi[Mg+e]=a}for(const Mg in bi)yi[Mg]=yi[bi[Mg]];var vi=new Set(["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"]),Si=new Set(["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"]),xi=new Set([...vi,...Si]);function createUnaryUnit(e,t,n,a){const o=getPath(e,t,!0)??n;return"number"==typeof o||"string"==typeof o?e=>"string"==typeof e?e:"string"==typeof o?o.startsWith("var(")&&0===e?0:o.startsWith("var(")&&1===e?o:`calc(${e} * ${o})`:o*e:Array.isArray(o)?e=>{if("string"==typeof e)return e;const t=o[Math.abs(e)];return e>=0?t:"number"==typeof t?-t:"string"==typeof t&&t.startsWith("var(")?`calc(-1 * ${t})`:`-${t}`}:"function"==typeof o?o:()=>{}}function createUnarySpacing(e){return createUnaryUnit(e,"spacing",8,"spacing")}function getValue(e,t){return"string"==typeof t||null==t?t:e(t)}var wi=[""];function style(e,t){const n=e.theme??fi,a=n?.internal_cache?.unarySpacing??createUnarySpacing(n),o={};for(const i in e){if(!t.has(i))continue;const n=yi[i]??(wi[0]=i,wi),s=e[i];iterateBreakpoints(o,e.theme,s,(e,t)=>{const i=e?o[e]:o;for(let o=0;o<n.length;o+=1)i[n[o]]=getValue(a,t)})}return o}function margin(e){return style(e,vi)}function padding(e){return style(e,Si)}function spacing(e){return style(e,xi)}function createSpacing(e=8,t=createUnarySpacing({spacing:e})){if(e.mui)return e;const spacing=(...e)=>(0===e.length?[1]:e).map(e=>{const n=t(e);return"number"==typeof n?`${n}px`:n}).join(" ");return spacing.mui=!0,spacing}function compose(...e){const t=e.reduce((e,t)=>(t.filterProps.forEach(n=>{e[n]=t}),e),{}),fn=e=>{const n={};for(const a in e)t[a]&&fastDeepAssign(n,t[a](e));return n};return fn.propTypes={},fn.filterProps=e.reduce((e,t)=>e.concat(t.filterProps),[]),fn}function borderTransform(e){return"number"!=typeof e?e:`${e}px solid`}function createBorderStyle(e,t){return style$1({prop:e,themeKey:"borders",transform:t})}margin.propTypes={},margin.filterProps=vi,padding.propTypes={},padding.filterProps=Si,spacing.propTypes={},spacing.filterProps=xi;var Ci=createBorderStyle("border",borderTransform),ki=createBorderStyle("borderTop",borderTransform),Ei=createBorderStyle("borderRight",borderTransform),_i=createBorderStyle("borderBottom",borderTransform),Pi=createBorderStyle("borderLeft",borderTransform),Ti=createBorderStyle("borderColor"),Ai=createBorderStyle("borderTopColor"),Ri=createBorderStyle("borderRightColor"),Mi=createBorderStyle("borderBottomColor"),Di=createBorderStyle("borderLeftColor"),Oi=createBorderStyle("outline",borderTransform),$i=createBorderStyle("outlineColor"),borderRadius=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=createUnaryUnit(e.theme,"shape.borderRadius",4,"borderRadius"),styleFromPropValue=e=>({borderRadius:getValue(t,e)});return handleBreakpoints(e,e.borderRadius,styleFromPropValue)}return null};borderRadius.propTypes={},borderRadius.filterProps=["borderRadius"];compose(Ci,ki,Ei,_i,Pi,Ti,Ai,Ri,Mi,Di,borderRadius,Oi,$i);var gap=e=>{if(void 0!==e.gap&&null!==e.gap){const t=createUnaryUnit(e.theme,"spacing",8,"gap"),styleFromPropValue=e=>({gap:getValue(t,e)});return handleBreakpoints(e,e.gap,styleFromPropValue)}return null};gap.propTypes={},gap.filterProps=["gap"];var columnGap=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=createUnaryUnit(e.theme,"spacing",8,"columnGap"),styleFromPropValue=e=>({columnGap:getValue(t,e)});return handleBreakpoints(e,e.columnGap,styleFromPropValue)}return null};columnGap.propTypes={},columnGap.filterProps=["columnGap"];var rowGap=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=createUnaryUnit(e.theme,"spacing",8,"rowGap"),styleFromPropValue=e=>({rowGap:getValue(t,e)});return handleBreakpoints(e,e.rowGap,styleFromPropValue)}return null};rowGap.propTypes={},rowGap.filterProps=["rowGap"];compose(gap,columnGap,rowGap,style$1({prop:"gridColumn"}),style$1({prop:"gridRow"}),style$1({prop:"gridAutoFlow"}),style$1({prop:"gridAutoColumns"}),style$1({prop:"gridAutoRows"}),style$1({prop:"gridTemplateColumns"}),style$1({prop:"gridTemplateRows"}),style$1({prop:"gridTemplateAreas"}),style$1({prop:"gridArea"}));function paletteTransform(e,t){return"grey"===t?t:e}compose(style$1({prop:"color",themeKey:"palette",transform:paletteTransform}),style$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:paletteTransform}),style$1({prop:"backgroundColor",themeKey:"palette",transform:paletteTransform}));function sizingTransform(e){return e<=1&&0!==e?100*e+"%":e}var Ii=style$1({prop:"width",transform:sizingTransform}),maxWidth=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const styleFromPropValue=t=>{const n=e.theme?.breakpoints?.values?.[t]||di[t];return n?"px"!==e.theme?.breakpoints?.unit?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:sizingTransform(t)}};return handleBreakpoints(e,e.maxWidth,styleFromPropValue)}return null};maxWidth.filterProps=["maxWidth"];var Ni=style$1({prop:"minWidth",transform:sizingTransform}),zi=style$1({prop:"height",transform:sizingTransform}),Li=style$1({prop:"maxHeight",transform:sizingTransform}),ji=style$1({prop:"minHeight",transform:sizingTransform}),Bi=(style$1({prop:"size",cssProperty:"width",transform:sizingTransform}),style$1({prop:"size",cssProperty:"height",transform:sizingTransform}),compose(Ii,maxWidth,Ni,zi,Li,ji,style$1({prop:"boxSizing"})),{border:{themeKey:"borders",transform:borderTransform},borderTop:{themeKey:"borders",transform:borderTransform},borderRight:{themeKey:"borders",transform:borderTransform},borderBottom:{themeKey:"borders",transform:borderTransform},borderLeft:{themeKey:"borders",transform:borderTransform},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:borderTransform},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:borderRadius},color:{themeKey:"palette",transform:paletteTransform},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:paletteTransform},backgroundColor:{themeKey:"palette",transform:paletteTransform},p:{style:padding},pt:{style:padding},pr:{style:padding},pb:{style:padding},pl:{style:padding},px:{style:padding},py:{style:padding},padding:{style:padding},paddingTop:{style:padding},paddingRight:{style:padding},paddingBottom:{style:padding},paddingLeft:{style:padding},paddingX:{style:padding},paddingY:{style:padding},paddingInline:{style:padding},paddingInlineStart:{style:padding},paddingInlineEnd:{style:padding},paddingBlock:{style:padding},paddingBlockStart:{style:padding},paddingBlockEnd:{style:padding},m:{style:margin},mt:{style:margin},mr:{style:margin},mb:{style:margin},ml:{style:margin},mx:{style:margin},my:{style:margin},margin:{style:margin},marginTop:{style:margin},marginRight:{style:margin},marginBottom:{style:margin},marginLeft:{style:margin},marginX:{style:margin},marginY:{style:margin},marginInline:{style:margin},marginInlineStart:{style:margin},marginInlineEnd:{style:margin},marginBlock:{style:margin},marginBlockStart:{style:margin},marginBlockEnd:{style:margin},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:gap},rowGap:{style:rowGap},columnGap:{style:columnGap},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:sizingTransform},maxWidth:{style:maxWidth},minWidth:{transform:sizingTransform},height:{transform:sizingTransform},maxHeight:{transform:sizingTransform},minHeight:{transform:sizingTransform},boxSizing:{},font:{themeKey:"font"},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}}),Fi={};function unstable_createStyleFunctionSx(){function styleFunctionSx(e){if(!e.sx)return null;const{sx:t,theme:n=Fi,nested:a}=e,o=n.unstable_sxConfig??Bi,i={sx:null,theme:n,nested:!0};function process(t){let s=t;if("function"==typeof t)s=t(n);else if("object"!=typeof t)return t;if(!s)return null;const l=n.breakpoints??pi,c=createEmptyBreakpointObject(l);for(const a in s){const t=callIfFn(s[a],n);null!=t&&("object"==typeof t?o[a]?setThemeValue(c,a,t,n,o):hasBreakpoint(l,t)?iterateBreakpoints(c,e.theme,t,(e,t)=>{c[e][a]=t}):(i.sx=t,c[a]=styleFunctionSx(i)):setThemeValue(c,a,t,n,o))}return!a&&n.modularCssLayers?{"@layer sx":sortContainerQueries(n,removeUnusedBreakpoints(l,c))}:sortContainerQueries(n,removeUnusedBreakpoints(l,c))}return Array.isArray(t)?t.map(process):process(t)}return styleFunctionSx.filterProps=["sx"],styleFunctionSx}var qi=unstable_createStyleFunctionSx();function setThemeValue(e,t,n,a,o){const i=o[t];if(!i)return void(e[t]=n);if(null==n)return;const{themeKey:s}=i;if("typography"===s&&"inherit"===n)return void(e[t]=n);const{style:l}=i;if(l)return void fastDeepAssign(e,l({[t]:n,theme:a}));const{cssProperty:c=t,transform:u}=i,d=getPath(a,s);iterateBreakpoints(e,a,n,(n,a)=>{const o=getStyleValue2(d,u,a,t);!1===c?fastDeepAssign(n?e[n]:e,o):n?e[n][c]=o:e[c]=o})}function callIfFn(e,t){return"function"==typeof e?e(t):e}function applyStyles$1(e,t){const n=this;if(n.vars){if(!n.colorSchemes?.[e]||"function"!=typeof n.getColorSchemeSelector)return{};let a=n.getColorSchemeSelector(e);return"&"===a?t:((a.includes("data-")||a.includes("."))&&(a=`*:where(${a.replace(/\s*&$/,"")}) &`),{[a]:t})}return n.palette.mode===e?t:{}}function createTheme$1(e={},...t){const{breakpoints:n={},palette:a={},spacing:o,shape:i={},...s}=e;let l=deepmerge({breakpoints:createBreakpoints(n),direction:"ltr",components:{},palette:{mode:"light",...a},spacing:createSpacing(o),shape:{...ci,...i}},s);return l=cssContainerQueries(l),l.applyStyles=applyStyles$1,l=t.reduce((e,t)=>deepmerge(e,t),l),l.unstable_sxConfig={...Bi,...s?.unstable_sxConfig},l.unstable_sx=function sx(e){return qi({sx:e,theme:this})},l.internal_cache={},l}function isObjectEmpty$1(e){return 0===Object.keys(e).length}function useTheme$3(e=null){const t=c.useContext(Fo);return!t||isObjectEmpty$1(t)?e:t}var Ui=createTheme$1();function useTheme$2(e=Ui){return useTheme$3(e)}function wrapGlobalLayer(e){const t=internal_serializeStyles(e);return e!==t&&t.styles?(t.styles.match(/^@layer\s+[^{]*$/)||(t.styles=`@layer global{${t.styles}}`),t):e}function GlobalStyles$1({styles:e,themeId:t,defaultTheme:n={}}){const a=useTheme$2(n),o=t&&a[t]||a;let i="function"==typeof e?e(o):e;return o.modularCssLayers&&(i=Array.isArray(i)?i.map(e=>wrapGlobalLayer("function"==typeof e?e(o):e)):wrapGlobalLayer(i)),(0,Oa.jsx)(GlobalStyles$2,{styles:i})}var defaultGenerator=e=>e,Vi=(()=>{let e=defaultGenerator;return{configure(t){e=t},generate:t=>e(t),reset(){e=defaultGenerator}}})();function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function clsx(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}function createBox(e={}){const{themeId:t,defaultTheme:n,defaultClassName:a="MuiBox-root",generateClassName:o}=e,i=styled$1("div",{shouldForwardProp:e=>"theme"!==e&&"sx"!==e&&"as"!==e})(qi);return c.forwardRef(function Box(e,s){const l=useTheme$2(n),{className:c,component:u="div",...d}=e;return(0,Oa.jsx)(i,{as:u,ref:s,className:clsx(c,o?o(a):a),theme:t&&l[t]||l,...d})})}var Hi={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function generateUtilityClass(e,t,n="Mui"){const a=Hi[t];return a?`${n}-${a}`:`${Vi.generate(e)}-${t}`}function generateUtilityClasses(e,t,n="Mui"){const a={};return t.forEach(t=>{a[t]=generateUtilityClass(e,t,n)}),a}function preprocessStyles(e){const{variants:t,...n}=e,a={variants:t,style:internal_serializeStyles(n),isProcessed:!0};return a.style===n||t&&t.forEach(e=>{"function"!=typeof e.style&&(e.style=internal_serializeStyles(e.style))}),a}var Wi=createTheme$1();function shouldForwardProp(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}function shallowLayer(e,t){return t&&e&&"object"==typeof e&&e.styles&&!e.styles.startsWith("@layer")&&(e.styles=`@layer ${t}{${String(e.styles)}}`),e}function defaultOverridesResolver(e){return e?(t,n)=>n[e]:null}function attachTheme(e,t,n){e.theme=isObjectEmpty$2(e.theme)?n:e.theme[t]||e.theme}function processStyle(e,t,n){const a="function"==typeof t?t(e):t;if(Array.isArray(a))return a.flatMap(t=>processStyle(e,t,n));if(Array.isArray(a?.variants)){let t;if(a.isProcessed)t=n?shallowLayer(a.style,n):a.style;else{const{variants:e,...o}=a;t=n?shallowLayer(internal_serializeStyles(o),n):o}return processStyleVariants(e,a.variants,[t],n)}return a?.isProcessed?n?shallowLayer(internal_serializeStyles(a.style),n):a.style:n?shallowLayer(internal_serializeStyles(a),n):a}function processStyleVariants(e,t,n=[],a=void 0){let o;e:for(let i=0;i<t.length;i+=1){const s=t[i];if("function"==typeof s.props){if(o??={...e,...e.ownerState,ownerState:e.ownerState},!s.props(o))continue}else for(const t in s.props)if(e[t]!==s.props[t]&&e.ownerState?.[t]!==s.props[t])continue e;"function"==typeof s.style?(o??={...e,...e.ownerState,ownerState:e.ownerState},n.push(a?shallowLayer(internal_serializeStyles(s.style(o)),a):s.style(o))):n.push(a?shallowLayer(internal_serializeStyles(s.style),a):s.style)}return n}function createStyled(e={}){const{themeId:t,defaultTheme:n=Wi,rootShouldForwardProp:a=shouldForwardProp,slotShouldForwardProp:o=shouldForwardProp}=e;function styleAttachTheme(e){attachTheme(e,t,n)}const styled=(e,t={})=>{internal_mutateStyles(e,e=>e.filter(e=>e!==qi));const{name:n,slot:i,skipVariantsResolver:s,skipSx:l,overridesResolver:c=defaultOverridesResolver(lowercaseFirstLetter(i)),...u}=t,d=n&&n.startsWith("Mui")||i?"components":"custom",p=void 0!==s?s:i&&"Root"!==i&&"root"!==i||!1,m=l||!1;let g=shouldForwardProp;"Root"===i||"root"===i?g=a:i?g=o:isStringTag(e)&&(g=void 0);const h=styled$1(e,{shouldForwardProp:g,label:generateStyledLabel(n,i),...u}),transformStyle=e=>{if(e.__emotion_real===e)return e;if("function"==typeof e)return function styleFunctionProcessor(t){return processStyle(t,e,t.theme.modularCssLayers?d:void 0)};if(isPlainObject$1(e)){const t=preprocessStyles(e);return function styleObjectProcessor(e){return t.variants?processStyle(e,t,e.theme.modularCssLayers?d:void 0):e.theme.modularCssLayers?shallowLayer(t.style,d):t.style}}return e},muiStyledResolver=(...t)=>{const a=[],o=t.map(transformStyle),i=[];if(a.push(styleAttachTheme),n&&c&&i.push(function styleThemeOverrides(e){const t=e.theme.components?.[n]?.styleOverrides;if(!t)return null;const a={};for(const n in t)a[n]=processStyle(e,t[n],e.theme.modularCssLayers?"theme":void 0);return c(e,a)}),n&&!p&&i.push(function styleThemeVariants(e){const t=e.theme?.components?.[n]?.variants;return t?processStyleVariants(e,t,[],e.theme.modularCssLayers?"theme":void 0):null}),m||i.push(qi),Array.isArray(o[0])){const e=o.shift(),t=new Array(a.length).fill(""),n=new Array(i.length).fill("");let s;s=[...t,...e,...n],s.raw=[...t,...e.raw,...n],a.unshift(s)}const s=h(...a,...o,...i);return e.muiName&&(s.muiName=e.muiName),s};return h.withConfig&&(muiStyledResolver.withConfig=h.withConfig),muiStyledResolver};return styled}function generateStyledLabel(e,t){let n;return n}function isStringTag(e){return"string"==typeof e&&e.charCodeAt(0)>96}function lowercaseFirstLetter(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e}function resolveProps(e,t,n=!1){const a={...t};for(const o in e)if(Object.prototype.hasOwnProperty.call(e,o)){const i=o;if("components"===i||"slots"===i)a[i]={...e[i],...a[i]};else if("componentsProps"===i||"slotProps"===i){const o=e[i],s=t[i];if(s)if(o){a[i]={...s};for(const e in o)if(Object.prototype.hasOwnProperty.call(o,e)){const t=e;a[i][t]=resolveProps(o[t],s[t],n)}}else a[i]=s;else a[i]=o||{}}else"className"===i&&n&&void 0!==t.className?a.className=clsx(e?.className,t?.className):"style"===i&&n&&t.style?a.style={...e?.style,...t?.style}:void 0===a[i]&&(a[i]=e[i])}return a}var Gi="undefined"!=typeof window?c.useLayoutEffect:c.useEffect;function clamp(e,t=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,n))}function clampWrapper(e,t=0,n=1){return clamp(e,t,n)}function hexToRgb(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let n=e.match(t);return n&&1===n[0].length&&(n=n.map(e=>e+e)),n?`rgb${4===n.length?"a":""}(${n.map((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3).join(", ")})`:""}function decomposeColor(e){if(e.type)return e;if("#"===e.charAt(0))return decomposeColor(hexToRgb(e));const t=e.indexOf("("),n=e.substring(0,t);if(!["rgb","rgba","hsl","hsla","color"].includes(n))throw new Error(formatMuiErrorMessage(9,e));let a,o=e.substring(t+1,e.length-1);if("color"===n){if(o=o.split(" "),a=o.shift(),4===o.length&&"/"===o[3].charAt(0)&&(o[3]=o[3].slice(1)),!["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].includes(a))throw new Error(formatMuiErrorMessage(10,a))}else o=o.split(",");return o=o.map(e=>parseFloat(e)),{type:n,values:o,colorSpace:a}}var colorChannel=e=>{const t=decomposeColor(e);return t.values.slice(0,3).map((e,n)=>t.type.includes("hsl")&&0!==n?`${e}%`:e).join(" ")},private_safeColorChannel=(e,t)=>{try{return colorChannel(e)}catch(n){return e}};function recomposeColor(e){const{type:t,colorSpace:n}=e;let{values:a}=e;return t.includes("rgb")?a=a.map((e,t)=>t<3?parseInt(e,10):e):t.includes("hsl")&&(a[1]=`${a[1]}%`,a[2]=`${a[2]}%`),a=t.includes("color")?`${n} ${a.join(" ")}`:`${a.join(", ")}`,`${t}(${a})`}function hslToRgb(e){e=decomposeColor(e);const{values:t}=e,n=t[0],a=t[1]/100,o=t[2]/100,i=a*Math.min(o,1-o),f=(e,t=(e+n/30)%12)=>o-i*Math.max(Math.min(t-3,9-t,1),-1);let s="rgb";const l=[Math.round(255*f(0)),Math.round(255*f(8)),Math.round(255*f(4))];return"hsla"===e.type&&(s+="a",l.push(t[3])),recomposeColor({type:s,values:l})}function getLuminance(e){let t="hsl"===(e=decomposeColor(e)).type||"hsla"===e.type?decomposeColor(hslToRgb(e)).values:e.values;return t=t.map(t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4)),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function getContrastRatio(e,t){const n=getLuminance(e),a=getLuminance(t);return(Math.max(n,a)+.05)/(Math.min(n,a)+.05)}function alpha(e,t){return e=decomposeColor(e),t=clampWrapper(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]=`/${t}`:e.values[3]=t,recomposeColor(e)}function private_safeAlpha(e,t,n){try{return alpha(e,t)}catch(a){return e}}function darken(e,t){if(e=decomposeColor(e),t=clampWrapper(t),e.type.includes("hsl"))e.values[2]*=1-t;else if(e.type.includes("rgb")||e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]*=1-t;return recomposeColor(e)}function private_safeDarken(e,t,n){try{return darken(e,t)}catch(a){return e}}function lighten(e,t){if(e=decomposeColor(e),t=clampWrapper(t),e.type.includes("hsl"))e.values[2]+=(100-e.values[2])*t;else if(e.type.includes("rgb"))for(let n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(e.type.includes("color"))for(let n=0;n<3;n+=1)e.values[n]+=(1-e.values[n])*t;return recomposeColor(e)}function private_safeLighten(e,t,n){try{return lighten(e,t)}catch(a){return e}}function emphasize(e,t=.15){return getLuminance(e)>.5?darken(e,t):lighten(e,t)}function private_safeEmphasize(e,t,n){try{return emphasize(e,t)}catch(a){return e}}var Yi=c.createContext(null);function useTheme$1(){return c.useContext(Yi)}var Ki="function"==typeof Symbol&&Symbol.for?Symbol.for("mui.nested"):"__THEME_NESTED__";function mergeOuterLocalTheme(e,t){return"function"==typeof t?t(e):{...e,...t}}function ThemeProvider$2(e){const{children:t,theme:n}=e,a=useTheme$1(),o=c.useMemo(()=>{const e=null===a?{...n}:mergeOuterLocalTheme(a,n);return null!=e&&(e[Ki]=null!==a),e},[n,a]);return(0,Oa.jsx)(Yi.Provider,{value:o,children:t})}var Qi=c.createContext();function RtlProvider({value:e,...t}){return(0,Oa.jsx)(Qi.Provider,{value:e??!0,...t})}var useRtl=()=>c.useContext(Qi)??!1,Zi=c.createContext(void 0);function DefaultPropsProvider({value:e,children:t}){return(0,Oa.jsx)(Zi.Provider,{value:e,children:t})}function getThemeProps(e){const{theme:t,name:n,props:a}=e;if(!t||!t.components||!t.components[n])return a;const o=t.components[n];return o.defaultProps?resolveProps(o.defaultProps,a,t.components.mergeClassNameAndStyle):o.styleOverrides||o.variants?a:resolveProps(o,a,t.components.mergeClassNameAndStyle)}function useDefaultProps$1({props:e,name:t}){return getThemeProps({props:e,name:t,theme:{components:c.useContext(Zi)}})}var Xi=0;function useGlobalId(e){const[t,n]=c.useState(e),a=e||t;return c.useEffect(()=>{null==t&&n(`mui-${Xi+=1}`)},[t]),a}var Ji={...c}.useId;function useId(e){if(void 0!==Ji){const t=Ji();return e??t}return useGlobalId(e)}function useLayerOrder(e){const t=useTheme$3(),n=useId()||"",{modularCssLayers:a}=e;let o="mui.global, mui.components, mui.theme, mui.custom, mui.sx";return o=a&&null===t?"string"==typeof a?a.replace(/mui(?!\.)/g,o):`@layer ${o};`:"",Gi(()=>{const e=document.querySelector("head");if(!e)return;const t=e.firstChild;if(o){if(t&&t.hasAttribute?.("data-mui-layer-order")&&t.getAttribute("data-mui-layer-order")===n)return;const a=document.createElement("style");a.setAttribute("data-mui-layer-order",n),a.textContent=o,e.prepend(a)}else e.querySelector(`style[data-mui-layer-order="${n}"]`)?.remove()},[o,n]),o?(0,Oa.jsx)(GlobalStyles$1,{styles:o}):null}var es={};function useThemeScoping(e,t,n,a=!1){return c.useMemo(()=>{const o=e&&t[e]||t;if("function"==typeof n){const i=n(o),s=e?{...t,[e]:i}:i;return a?()=>s:s}return e?{...t,[e]:n}:{...t,...n}},[e,t,n,a])}function ThemeProvider$1(e){const{children:t,theme:n,themeId:a}=e,o=useTheme$3(es),i=useTheme$1()||es,s=useThemeScoping(a,o,n),l=useThemeScoping(a,i,n,!0),c="rtl"===(a?s[a]:s).direction,u=useLayerOrder(s);return(0,Oa.jsx)(ThemeProvider$2,{theme:l,children:(0,Oa.jsx)(Fo.Provider,{value:s,children:(0,Oa.jsx)(RtlProvider,{value:c,children:(0,Oa.jsxs)(DefaultPropsProvider,{value:a?s[a].components:s.components,children:[u,t]})})})})}var ts={theme:void 0};function unstable_memoTheme(e){let t,n;return function styleMemoized(a){let o=t;return void 0!==o&&a.theme===n||(ts.theme=a.theme,o=preprocessStyles(e(ts)),t=o,n=a.theme),o}}var rs="mode",ns="color-scheme",as="data-color-scheme";function InitColorSchemeScript(e){const{defaultMode:t="system",defaultLightColorScheme:n="light",defaultDarkColorScheme:a="dark",modeStorageKey:o=rs,colorSchemeStorageKey:i=ns,attribute:s=as,colorSchemeNode:l="document.documentElement",nonce:c}=e||{};let u="",d=s;if("class"===s&&(d=".%s"),"data"===s&&(d="[data-%s]"),d.startsWith(".")){const e=d.substring(1);u+=`${l}.classList.remove('${e}'.replace('%s', light), '${e}'.replace('%s', dark));\n ${l}.classList.add('${e}'.replace('%s', colorScheme));`}const p=d.match(/\[([^[\]]+)\]/);if(p){const[e,t]=p[1].split("=");t||(u+=`${l}.removeAttribute('${e}'.replace('%s', light));\n ${l}.removeAttribute('${e}'.replace('%s', dark));`),u+=`\n ${l}.setAttribute('${e}'.replace('%s', colorScheme), ${t?`${t}.replace('%s', colorScheme)`:'""'});`}else".%s"!==d&&(u+=`${l}.setAttribute('${d}', colorScheme);`);return(0,Oa.jsx)("script",{suppressHydrationWarning:!0,nonce:"undefined"==typeof window?c:"",dangerouslySetInnerHTML:{__html:`(function() {\ntry {\n let colorScheme = '';\n const mode = localStorage.getItem('${o}') || '${t}';\n const dark = localStorage.getItem('${i}-dark') || '${a}';\n const light = localStorage.getItem('${i}-light') || '${n}';\n if (mode === 'system') {\n // handle system mode\n const mql = window.matchMedia('(prefers-color-scheme: dark)');\n if (mql.matches) {\n colorScheme = dark\n } else {\n colorScheme = light\n }\n }\n if (mode === 'light') {\n colorScheme = light;\n }\n if (mode === 'dark') {\n colorScheme = dark;\n }\n if (colorScheme) {\n ${u}\n }\n} catch(e){}})();`}},"mui-color-scheme-init")}function noop$4(){}var localStorageManager=({key:e,storageWindow:t})=>(t||"undefined"==typeof window||(t=window),{get(n){if("undefined"==typeof window)return;if(!t)return n;let a;try{a=t.localStorage.getItem(e)}catch{}return a||n},set:n=>{if(t)try{t.localStorage.setItem(e,n)}catch{}},subscribe:n=>{if(!t)return noop$4;const listener=t=>{const a=t.newValue;t.key===e&&n(a)};return t.addEventListener("storage",listener),()=>{t.removeEventListener("storage",listener)}}});function noop$3(){}function getSystemMode(e){if("undefined"!=typeof window&&"function"==typeof window.matchMedia&&"system"===e)return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function processState(e,t){return"light"===e.mode||"system"===e.mode&&"light"===e.systemMode?t("light"):"dark"===e.mode||"system"===e.mode&&"dark"===e.systemMode?t("dark"):void 0}function getColorScheme(e){return processState(e,t=>"light"===t?e.lightColorScheme:"dark"===t?e.darkColorScheme:void 0)}function useCurrentColorScheme(e){const{defaultMode:t="light",defaultLightColorScheme:n,defaultDarkColorScheme:a,supportedColorSchemes:o=[],modeStorageKey:i=rs,colorSchemeStorageKey:s=ns,storageWindow:l=("undefined"==typeof window?void 0:window),storageManager:u=localStorageManager,noSsr:d=!1}=e,p=o.join(","),m=o.length>1,g=c.useMemo(()=>u?.({key:i,storageWindow:l}),[u,i,l]),h=c.useMemo(()=>u?.({key:`${s}-light`,storageWindow:l}),[u,s,l]),b=c.useMemo(()=>u?.({key:`${s}-dark`,storageWindow:l}),[u,s,l]),[y,v]=c.useState(()=>{const e=g?.get(t)||t,o=h?.get(n)||n,i=b?.get(a)||a;return{mode:e,systemMode:getSystemMode(e),lightColorScheme:o,darkColorScheme:i}}),[S,x]=c.useState(d||!m);c.useEffect(()=>{x(!0)},[]);const w=getColorScheme(y),C=c.useCallback(e=>{v(n=>{if(e===n.mode)return n;const a=e??t;return g?.set(a),{...n,mode:a,systemMode:getSystemMode(a)}})},[g,t]),k=c.useCallback(e=>{e?"string"==typeof e?e&&!p.includes(e)?console.error(`\`${e}\` does not exist in \`theme.colorSchemes\`.`):v(t=>{const n={...t};return processState(t,t=>{"light"===t&&(h?.set(e),n.lightColorScheme=e),"dark"===t&&(b?.set(e),n.darkColorScheme=e)}),n}):v(t=>{const o={...t},i=null===e.light?n:e.light,s=null===e.dark?a:e.dark;return i&&(p.includes(i)?(o.lightColorScheme=i,h?.set(i)):console.error(`\`${i}\` does not exist in \`theme.colorSchemes\`.`)),s&&(p.includes(s)?(o.darkColorScheme=s,b?.set(s)):console.error(`\`${s}\` does not exist in \`theme.colorSchemes\`.`)),o}):v(e=>(h?.set(n),b?.set(a),{...e,lightColorScheme:n,darkColorScheme:a}))},[p,h,b,n,a]),E=c.useCallback(e=>{"system"===y.mode&&v(t=>{const n=e?.matches?"dark":"light";return t.systemMode===n?t:{...t,systemMode:n}})},[y.mode]),P=c.useRef(E);return P.current=E,c.useEffect(()=>{if("function"!=typeof window.matchMedia||!m)return;const handler=(...e)=>P.current(...e),e=window.matchMedia("(prefers-color-scheme: dark)");return e.addListener(handler),handler(e),()=>{e.removeListener(handler)}},[m]),c.useEffect(()=>{if(m){const e=g?.subscribe(e=>{e&&!["light","dark","system"].includes(e)||C(e||t)})||noop$3,n=h?.subscribe(e=>{e&&!p.match(e)||k({light:e})})||noop$3,a=b?.subscribe(e=>{e&&!p.match(e)||k({dark:e})})||noop$3;return()=>{e(),n(),a()}}},[k,C,p,t,l,m,g,h,b]),{...y,mode:S?y.mode:void 0,systemMode:S?y.systemMode:void 0,colorScheme:S?w:void 0,setMode:C,setColorScheme:k}}var os="*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function createCssVarsProvider(e){const{themeId:t,theme:n={},modeStorageKey:a=rs,colorSchemeStorageKey:o=ns,disableTransitionOnChange:i=!1,defaultColorScheme:s,resolveTheme:l}=e,u={allColorSchemes:[],colorScheme:void 0,darkColorScheme:void 0,lightColorScheme:void 0,mode:void 0,setColorScheme:()=>{},setMode:()=>{},systemMode:void 0},d=c.createContext(void 0),useColorScheme=()=>c.useContext(d)||u,p={},m={};function CssVarsProvider(e){const{children:u,theme:g,modeStorageKey:h=a,colorSchemeStorageKey:b=o,disableTransitionOnChange:y=i,storageManager:v,storageWindow:S=("undefined"==typeof window?void 0:window),documentNode:x=("undefined"==typeof document?void 0:document),colorSchemeNode:w=("undefined"==typeof document?void 0:document.documentElement),disableNestedContext:C=!1,disableStyleSheetGeneration:k=!1,defaultMode:E="system",forceThemeRerender:P=!1,noSsr:T}=e,R=c.useRef(!1),M=useTheme$1(),D=c.useContext(d),O=!!D&&!C,$=c.useMemo(()=>g||("function"==typeof n?n():n),[g]),I=$[t],N=I||$,{colorSchemes:L=p,components:j=m,cssVarPrefix:B}=N,F=Object.keys(L).filter(e=>!!L[e]).join(","),q=c.useMemo(()=>F.split(","),[F]),U="string"==typeof s?s:s.light,V="string"==typeof s?s:s.dark,{mode:H,setMode:W,systemMode:G,lightColorScheme:Y,darkColorScheme:K,colorScheme:Q,setColorScheme:Z}=useCurrentColorScheme({supportedColorSchemes:q,defaultLightColorScheme:U,defaultDarkColorScheme:V,modeStorageKey:h,colorSchemeStorageKey:b,defaultMode:L[U]&&L[V]?E:L[N.defaultColorScheme]?.palette?.mode||N.palette?.mode,storageManager:v,storageWindow:S,noSsr:T});let X=H,J=Q;O&&(X=D.mode,J=D.colorScheme);let ee=J||N.defaultColorScheme;N.vars&&!P&&(ee=N.defaultColorScheme);const te=c.useMemo(()=>{const e=N.generateThemeVars?.()||N.vars,t={...N,components:j,colorSchemes:L,cssVarPrefix:B,vars:e};if("function"==typeof t.generateSpacing&&(t.spacing=t.generateSpacing()),ee){const e=L[ee];e&&"object"==typeof e&&Object.keys(e).forEach(n=>{e[n]&&"object"==typeof e[n]?t[n]={...t[n],...e[n]}:t[n]=e[n]})}return l?l(t):t},[N,ee,j,L,B]),re=N.colorSchemeSelector;Gi(()=>{if(J&&w&&re&&"media"!==re){const e=re;let t=re;if("class"===e&&(t=".%s"),"data"===e&&(t="[data-%s]"),e?.startsWith("data-")&&!e.includes("%s")&&(t=`[${e}="%s"]`),t.startsWith("."))w.classList.remove(...q.map(e=>t.substring(1).replace("%s",e))),w.classList.add(t.substring(1).replace("%s",J));else{const e=t.replace("%s",J).match(/\[([^\]]+)\]/);if(e){const[t,n]=e[1].split("=");n||q.forEach(e=>{w.removeAttribute(t.replace(J,e))}),w.setAttribute(t,n?n.replace(/"|'/g,""):"")}else w.setAttribute(t,J)}}},[J,re,w,q]),c.useEffect(()=>{let e;if(y&&R.current&&x){const t=x.createElement("style");t.appendChild(x.createTextNode(os)),x.head.appendChild(t),window.getComputedStyle(x.body),e=setTimeout(()=>{x.head.removeChild(t)},1)}return()=>{clearTimeout(e)}},[J,y,x]),c.useEffect(()=>(R.current=!0,()=>{R.current=!1}),[]);const ne=c.useMemo(()=>({allColorSchemes:q,colorScheme:J,darkColorScheme:K,lightColorScheme:Y,mode:X,setColorScheme:Z,setMode:W,systemMode:G}),[q,J,K,Y,X,Z,W,G,te.colorSchemeSelector]);let ae=!0;(k||!1===N.cssVariables||O&&M?.cssVarPrefix===B)&&(ae=!1);const oe=(0,Oa.jsxs)(c.Fragment,{children:[(0,Oa.jsx)(ThemeProvider$1,{themeId:I?t:void 0,theme:te,children:u}),ae&&(0,Oa.jsx)(GlobalStyles$2,{styles:te.generateStyleSheets?.()||[]})]});return O?oe:(0,Oa.jsx)(d.Provider,{value:ne,children:oe})}const g="string"==typeof s?s:s.light,h="string"==typeof s?s:s.dark;return{CssVarsProvider,useColorScheme,getInitColorSchemeScript:e=>InitColorSchemeScript({colorSchemeStorageKey:o,defaultLightColorScheme:g,defaultDarkColorScheme:h,modeStorageKey:a,...e})}}function createGetCssVar$1(e=""){function appendVar(...t){if(!t.length)return"";const n=t[0];return"string"!=typeof n||n.match(/(#|\(|\)|(-?(\d*\.)?\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\d*\.)?\d+)$|(\d+ \d+ \d+)/)?`, ${n}`:`, var(--${e?`${e}-`:""}${n}${appendVar(...t.slice(1))})`}return(t,...n)=>`var(--${e?`${e}-`:""}${t}${appendVar(...n)})`}var assignNestedKeys=(e,t,n,a=[])=>{let o=e;t.forEach((e,i)=>{i===t.length-1?Array.isArray(o)?o[Number(e)]=n:o&&"object"==typeof o&&(o[e]=n):o&&"object"==typeof o&&(o[e]||(o[e]=a.includes(e)?[]:{}),o=o[e])})},walkObjectDeep=(e,t,n)=>{function recurse(e,a=[],o=[]){Object.entries(e).forEach(([e,i])=>{(!n||n&&!n([...a,e]))&&null!=i&&("object"==typeof i&&Object.keys(i).length>0?recurse(i,[...a,e],Array.isArray(i)?[...o,e]:o):t([...a,e],i,o))})}recurse(e)},getCssValue=(e,t)=>"number"==typeof t?["lineHeight","fontWeight","opacity","zIndex"].some(t=>e.includes(t))||e[e.length-1].toLowerCase().includes("opacity")?t:`${t}px`:t;function cssVarsParser(e,t){const{prefix:n,shouldSkipGeneratingVar:a}=t||{},o={},i={},s={};return walkObjectDeep(e,(e,t,l)=>{if(!("string"!=typeof t&&"number"!=typeof t||a&&a(e,t))){const a=`--${n?`${n}-`:""}${e.join("-")}`,c=getCssValue(e,t);Object.assign(o,{[a]:c}),assignNestedKeys(i,e,`var(${a})`,l),assignNestedKeys(s,e,`var(${a}, ${c})`,l)}},e=>"vars"===e[0]),{css:o,vars:i,varsWithDefaults:s}}function prepareCssVars(e,t={}){const{getSelector:n=defaultGetSelector,disableCssColorScheme:a,colorSchemeSelector:o,enableContrastVars:i}=t,{colorSchemes:s={},components:l,defaultColorScheme:c="light",...u}=e,{vars:d,css:p,varsWithDefaults:m}=cssVarsParser(u,t);let g=m;const h={},{[c]:b,...y}=s;if(Object.entries(y||{}).forEach(([e,n])=>{const{vars:a,css:o,varsWithDefaults:i}=cssVarsParser(n,t);g=deepmerge(g,i),h[e]={css:o,vars:a}}),b){const{css:e,vars:n,varsWithDefaults:a}=cssVarsParser(b,t);g=deepmerge(g,a),h[c]={css:e,vars:n}}function defaultGetSelector(t,n){let a=o;if("class"===o&&(a=".%s"),"data"===o&&(a="[data-%s]"),o?.startsWith("data-")&&!o.includes("%s")&&(a=`[${o}="%s"]`),t){if("media"===a)return e.defaultColorScheme===t?":root":{[`@media (prefers-color-scheme: ${s[t]?.palette?.mode||t})`]:{":root":n}};if(a)return e.defaultColorScheme===t?`:root, ${a.replace("%s",String(t))}`:a.replace("%s",String(t))}return":root"}const generateStyleSheets=()=>{const t=[],o=e.defaultColorScheme||"light";function insertStyleSheet(e,n){Object.keys(n).length&&t.push("string"==typeof e?{[e]:{...n}}:e)}insertStyleSheet(n(void 0,{...p}),p);const{[o]:l,...c}=h;if(l){const{css:e}=l,t=s[o]?.palette?.mode,i=!a&&t?{colorScheme:t,...e}:{...e};insertStyleSheet(n(o,{...i}),i)}return Object.entries(c).forEach(([e,{css:t}])=>{const o=s[e]?.palette?.mode,i=!a&&o?{colorScheme:o,...t}:{...t};insertStyleSheet(n(e,{...i}),i)}),i&&t.push({":root":{"--__l-threshold":"0.7","--__l":"clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)","--__a":"clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)"}}),t};return{vars:g,generateThemeVars:()=>{let e={...d};return Object.entries(h).forEach(([,{vars:t}])=>{e=deepmerge(e,t)}),e},generateStyleSheets}}function createGetColorSchemeSelector(e){return function getColorSchemeSelector(t){return"media"===e?`@media (prefers-color-scheme: ${t})`:e?e.startsWith("data-")&&!e.includes("%s")?`[${e}="${t}"] &`:"class"===e?`.${t} &`:"data"===e?`[data-${t}] &`:`${e.replace("%s",t)} &`:"&"}}function composeClasses(e,t,n=void 0){const a={};for(const o in e){const i=e[o];let s="",l=!0;for(let e=0;e<i.length;e+=1){const a=i[e];a&&(s+=(!0===l?"":" ")+t(a),l=!1,n&&n[a]&&(s+=" "+n[a]))}a[o]=s}return a}function isMuiElement(e,t){return c.isValidElement(e)&&-1!==t.indexOf(e.type.muiName??e.type?._payload?.value?.muiName)}function getLight(){return{text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:$a.white,default:$a.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}}}var ss=getLight();function getDark(){return{text:{primary:$a.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:$a.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}}}var ls=getDark();function addLightOrDark(e,t,n,a){const o=a.light||a,i=a.dark||1.5*a;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=lighten(e.main,o):"dark"===t&&(e.dark=darken(e.main,i)))}function mixLightOrDark(e,t,n,a,o){const i=o.light||o,s=o.dark||1.5*o;t[n]||(t.hasOwnProperty(a)?t[n]=t[a]:"light"===n?t.light=`color-mix(in ${e}, ${t.main}, #fff ${(100*i).toFixed(0)}%)`:"dark"===n&&(t.dark=`color-mix(in ${e}, ${t.main}, #000 ${(100*s).toFixed(0)}%)`))}function getDefaultPrimary(e="light"){return"dark"===e?{main:za[200],light:za[50],dark:za[400]}:{main:za[700],light:za[400],dark:za[800]}}function getDefaultSecondary(e="light"){return"dark"===e?{main:Na[200],light:Na[50],dark:Na[400]}:{main:Na[500],light:Na[300],dark:Na[700]}}function getDefaultError(e="light"){return"dark"===e?{main:Ia[500],light:Ia[300],dark:Ia[700]}:{main:Ia[700],light:Ia[400],dark:Ia[800]}}function getDefaultInfo(e="light"){return"dark"===e?{main:La[400],light:La[300],dark:La[700]}:{main:La[700],light:La[500],dark:La[900]}}function getDefaultSuccess(e="light"){return"dark"===e?{main:ja[400],light:ja[300],dark:ja[700]}:{main:ja[800],light:ja[500],dark:ja[900]}}function getDefaultWarning(e="light"){return"dark"===e?{main:Ba[400],light:Ba[300],dark:Ba[700]}:{main:"#ed6c02",light:Ba[500],dark:Ba[900]}}function contrastColor(e){return`oklch(from ${e} var(--__l) 0 h / var(--__a))`}function createPalette(e){const{mode:t="light",contrastThreshold:n=3,tonalOffset:a=.2,colorSpace:o,...i}=e,s=e.primary||getDefaultPrimary(t),l=e.secondary||getDefaultSecondary(t),c=e.error||getDefaultError(t),u=e.info||getDefaultInfo(t),d=e.success||getDefaultSuccess(t),p=e.warning||getDefaultWarning(t);function getContrastText(e){return o?contrastColor(e):getContrastRatio(e,ls.text.primary)>=n?ls.text.primary:ss.text.primary}const augmentColor=({color:e,name:t,mainShade:n=500,lightShade:i=300,darkShade:s=700})=>{if(!(e={...e}).main&&e[n]&&(e.main=e[n]),!e.hasOwnProperty("main"))throw new Error(formatMuiErrorMessage(11,t?` (${t})`:"",n));if("string"!=typeof e.main)throw new Error(formatMuiErrorMessage(12,t?` (${t})`:"",JSON.stringify(e.main)));return o?(mixLightOrDark(o,e,"light",i,a),mixLightOrDark(o,e,"dark",s,a)):(addLightOrDark(e,"light",i,a),addLightOrDark(e,"dark",s,a)),e.contrastText||(e.contrastText=getContrastText(e.main)),e};let m;return"light"===t?m=getLight():"dark"===t&&(m=getDark()),deepmerge({common:{...$a},mode:t,primary:augmentColor({color:s,name:"primary"}),secondary:augmentColor({color:l,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:augmentColor({color:c,name:"error"}),warning:augmentColor({color:p,name:"warning"}),info:augmentColor({color:u,name:"info"}),success:augmentColor({color:d,name:"success"}),grey:Fa,contrastThreshold:n,getContrastText,augmentColor,tonalOffset:a,...m},i)}function prepareTypographyVars(e){const t={};return Object.entries(e).forEach(e=>{const[n,a]=e;"object"==typeof a&&(t[n]=`${a.fontStyle?`${a.fontStyle} `:""}${a.fontVariant?`${a.fontVariant} `:""}${a.fontWeight?`${a.fontWeight} `:""}${a.fontStretch?`${a.fontStretch} `:""}${a.fontSize||""}${a.lineHeight?`/${a.lineHeight} `:""}${a.fontFamily||""}`)}),t}function createMixins(e,t){return{toolbar:{minHeight:56,[e.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[e.up("sm")]:{minHeight:64}},...t}}function round$2(e){return Math.round(1e5*e)/1e5}var cs={textTransform:"uppercase"},us='"Roboto", "Helvetica", "Arial", sans-serif';function createTypography(e,t){const{fontFamily:n=us,fontSize:a=14,fontWeightLight:o=300,fontWeightRegular:i=400,fontWeightMedium:s=500,fontWeightBold:l=700,htmlFontSize:c=16,allVariants:u,pxToRem:d,...p}="function"==typeof t?t(e):t,m=a/14,g=d||(e=>e/c*m+"rem"),buildVariant=(e,t,a,o,i)=>({fontFamily:n,fontWeight:e,fontSize:g(t),lineHeight:a,...n===us?{letterSpacing:`${round$2(o/t)}em`}:{},...i,...u});return deepmerge({htmlFontSize:c,pxToRem:g,fontFamily:n,fontSize:a,fontWeightLight:o,fontWeightRegular:i,fontWeightMedium:s,fontWeightBold:l,h1:buildVariant(o,96,1.167,-1.5),h2:buildVariant(o,60,1.2,-.5),h3:buildVariant(i,48,1.167,0),h4:buildVariant(i,34,1.235,.25),h5:buildVariant(i,24,1.334,0),h6:buildVariant(s,20,1.6,.15),subtitle1:buildVariant(i,16,1.75,.15),subtitle2:buildVariant(s,14,1.57,.1),body1:buildVariant(i,16,1.5,.15),body2:buildVariant(i,14,1.43,.15),button:buildVariant(s,14,1.75,.4,cs),caption:buildVariant(i,12,1.66,.4),overline:buildVariant(i,12,2.66,1,cs),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},p,{clone:!1})}var ds=.2,ps=.14,ms=.12;function createShadow(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,${ds})`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,${ps})`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,${ms})`].join(",")}var fs=["none",createShadow(0,2,1,-1,0,1,1,0,0,1,3,0),createShadow(0,3,1,-2,0,2,2,0,0,1,5,0),createShadow(0,3,3,-2,0,3,4,0,0,1,8,0),createShadow(0,2,4,-1,0,4,5,0,0,1,10,0),createShadow(0,3,5,-1,0,5,8,0,0,1,14,0),createShadow(0,3,5,-1,0,6,10,0,0,1,18,0),createShadow(0,4,5,-2,0,7,10,1,0,2,16,1),createShadow(0,5,5,-3,0,8,10,1,0,3,14,2),createShadow(0,5,6,-3,0,9,12,1,0,3,16,2),createShadow(0,6,6,-3,0,10,14,1,0,4,18,3),createShadow(0,6,7,-4,0,11,15,1,0,4,20,3),createShadow(0,7,8,-4,0,12,17,2,0,5,22,4),createShadow(0,7,8,-4,0,13,19,2,0,5,24,4),createShadow(0,7,9,-4,0,14,21,2,0,5,26,4),createShadow(0,8,9,-5,0,15,22,2,0,6,28,5),createShadow(0,8,10,-5,0,16,24,2,0,6,30,5),createShadow(0,8,11,-5,0,17,26,2,0,6,32,5),createShadow(0,9,11,-5,0,18,28,2,0,7,34,6),createShadow(0,9,12,-6,0,19,29,2,0,7,36,6),createShadow(0,10,13,-6,0,20,31,3,0,8,38,7),createShadow(0,10,13,-6,0,21,33,3,0,8,40,7),createShadow(0,10,14,-6,0,22,35,3,0,8,42,7),createShadow(0,11,14,-7,0,23,36,3,0,9,44,8),createShadow(0,11,15,-7,0,24,38,3,0,9,46,8)],gs={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},hs={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function formatMs(e){return`${Math.round(e)}ms`}function getAutoHeightDuration(e){if(!e)return 0;const t=e/36;return Math.min(Math.round(10*(4+15*t**.25+t/5)),3e3)}function createTransitions(e){const t={...gs,...e.easing},n={...hs,...e.duration};return{getAutoHeightDuration,create:(e=["all"],a={})=>{const{duration:o=n.standard,easing:i=t.easeInOut,delay:s=0,...l}=a;return(Array.isArray(e)?e:[e]).map(e=>`${e} ${"string"==typeof o?o:formatMs(o)} ${i} ${"string"==typeof s?s:formatMs(s)}`).join(",")},...e,easing:t,duration:n}}var bs={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};function isSerializable(e){return isPlainObject$1(e)||void 0===e||"string"==typeof e||"boolean"==typeof e||"number"==typeof e||Array.isArray(e)}function stringifyTheme(e={}){const t={...e};function serializeTheme(e){const t=Object.entries(e);for(let n=0;n<t.length;n++){const[a,o]=t[n];!isSerializable(o)||a.startsWith("unstable_")||a.startsWith("internal_")?delete e[a]:isPlainObject$1(o)&&(e[a]={...o},serializeTheme(e[a]))}}return serializeTheme(t),`import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';\n\nconst theme = ${JSON.stringify(t,null,2)};\n\ntheme.breakpoints = createBreakpoints(theme.breakpoints || {});\ntheme.transitions = createTransitions(theme.transitions || {});\n\nexport default theme;`}function coefficientToPercentage(e){return"number"==typeof e?`${(100*e).toFixed(0)}%`:`calc((${e}) * 100%)`}var parseAddition=e=>{if(!Number.isNaN(+e))return+e;const t=e.match(/\d*\.?\d+/g);if(!t)return 0;let n=0;for(let a=0;a<t.length;a+=1)n+=+t[a];return n};function attachColorManipulators(e){Object.assign(e,{alpha(t,n){const a=this||e;return a.colorSpace?`oklch(from ${t} l c h / ${"string"==typeof n?`calc(${n})`:n})`:a.vars?`rgba(${t.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g,"var(--$1Channel)")} / ${"string"==typeof n?`calc(${n})`:n})`:alpha(t,parseAddition(n))},lighten(t,n){const a=this||e;return a.colorSpace?`color-mix(in ${a.colorSpace}, ${t}, #fff ${coefficientToPercentage(n)})`:lighten(t,n)},darken(t,n){const a=this||e;return a.colorSpace?`color-mix(in ${a.colorSpace}, ${t}, #000 ${coefficientToPercentage(n)})`:darken(t,n)}})}function createThemeNoVars(e={},...t){const{breakpoints:n,mixins:a={},spacing:o,palette:i={},transitions:s={},typography:l={},shape:c,colorSpace:u,...d}=e;if(e.vars&&void 0===e.generateThemeVars)throw new Error(formatMuiErrorMessage(22));const p=createPalette({...i,colorSpace:u}),m=createTheme$1(e);let g=deepmerge(m,{mixins:createMixins(m.breakpoints,a),palette:p,shadows:fs.slice(),typography:createTypography(p,l),transitions:createTransitions(s),zIndex:{...bs}});return g=deepmerge(g,d),g=t.reduce((e,t)=>deepmerge(e,t),g),g.unstable_sxConfig={...Bi,...d?.unstable_sxConfig},g.unstable_sx=function sx(e){return qi({sx:e,theme:this})},g.toRuntimeSource=stringifyTheme,attachColorManipulators(g),g}function getOverlayAlpha(e){let t;return t=e<1?5.11916*e**2:4.5*Math.log(e+1)+2,Math.round(10*t)/1e3}var ys=[...Array(25)].map((e,t)=>{if(0===t)return"none";const n=getOverlayAlpha(t);return`linear-gradient(rgba(255 255 255 / ${n}), rgba(255 255 255 / ${n}))`});function getOpacity(e){return{inputPlaceholder:"dark"===e?.5:.42,inputUnderline:"dark"===e?.7:.42,switchTrackDisabled:"dark"===e?.2:.12,switchTrack:"dark"===e?.3:.38}}function getOverlays(e){return"dark"===e?ys:[]}function createColorScheme(e){const{palette:t={mode:"light"},opacity:n,overlays:a,colorSpace:o,...i}=e,s=createPalette({...t,colorSpace:o});return{palette:s,opacity:{...getOpacity(s.mode),...n},overlays:a||getOverlays(s.mode),...i}}function shouldSkipGeneratingVar(e){return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||"palette"===e[0]&&!!e[1]?.match(/(mode|contrastThreshold|tonalOffset)/)}var excludeVariablesFromRoot=e=>[...[...Array(25)].map((t,n)=>`--${e?`${e}-`:""}overlays-${n}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],createGetSelector_default=e=>(t,n)=>{const a=e.rootSelector||":root",o=e.colorSchemeSelector;let i=o;if("class"===o&&(i=".%s"),"data"===o&&(i="[data-%s]"),o?.startsWith("data-")&&!o.includes("%s")&&(i=`[${o}="%s"]`),e.defaultColorScheme===t){if("dark"===t){const o={};return excludeVariablesFromRoot(e.cssVarPrefix).forEach(e=>{o[e]=n[e],delete n[e]}),"media"===i?{[a]:n,"@media (prefers-color-scheme: dark)":{[a]:o}}:i?{[i.replace("%s",t)]:o,[`${a}, ${i.replace("%s",t)}`]:n}:{[a]:{...n,...o}}}if(i&&"media"!==i)return`${a}, ${i.replace("%s",String(t))}`}else if(t){if("media"===i)return{[`@media (prefers-color-scheme: ${String(t)})`]:{[a]:n}};if(i)return i.replace("%s",String(t))}return a};function assignNode(e,t){t.forEach(t=>{e[t]||(e[t]={})})}function setColor(e,t,n){!e[t]&&n&&(e[t]=n)}function toRgb(e){return"string"==typeof e&&e.startsWith("hsl")?hslToRgb(e):e}function setColorChannel(e,t){`${t}Channel`in e||(e[`${t}Channel`]=private_safeColorChannel(toRgb(e[t]),`MUI: Can't create \`palette.${t}Channel\` because \`palette.${t}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().\nTo suppress this warning, you need to explicitly provide the \`palette.${t}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`))}function getSpacingVal(e){return"number"==typeof e?`${e}px`:"string"==typeof e||"function"==typeof e||Array.isArray(e)?e:"8px"}var silent=e=>{try{return e()}catch(t){}},createGetCssVar=(e="mui")=>createGetCssVar$1(e);function attachColorScheme$1(e,t,n,a,o){if(!n)return;n=!0===n?{}:n;const i="dark"===o?"dark":"light";if(!a)return void(t[o]=createColorScheme({...n,palette:{mode:i,...n?.palette},colorSpace:e}));const{palette:s,...l}=createThemeNoVars({...a,palette:{mode:i,...n?.palette},colorSpace:e});return t[o]={...n,palette:s,opacity:{...getOpacity(i),...n?.opacity},overlays:n?.overlays||getOverlays(i)},l}function createThemeWithVars(e={},...t){const{colorSchemes:n={light:!0},defaultColorScheme:a,disableCssColorScheme:o=!1,cssVarPrefix:i="mui",nativeColor:s=!1,shouldSkipGeneratingVar:l=shouldSkipGeneratingVar,colorSchemeSelector:c=(n.light&&n.dark?"media":void 0),rootSelector:u=":root",...d}=e,p=Object.keys(n)[0],m=a||(n.light&&"light"!==p?"light":p),g=createGetCssVar(i),{[m]:h,light:b,dark:y,...v}=n,S={...v};let x,w=h;if(("dark"===m&&!("dark"in n)||"light"===m&&!("light"in n))&&(w=!0),!w)throw new Error(formatMuiErrorMessage(21,m));s&&(x="oklch");const C=attachColorScheme$1(x,S,w,d,m);b&&!S.light&&attachColorScheme$1(x,S,b,void 0,"light"),y&&!S.dark&&attachColorScheme$1(x,S,y,void 0,"dark");let k={defaultColorScheme:m,...C,cssVarPrefix:i,colorSchemeSelector:c,rootSelector:u,getCssVar:g,colorSchemes:S,font:{...prepareTypographyVars(C.typography),...C.font},spacing:getSpacingVal(d.spacing)};Object.keys(k.colorSchemes).forEach(e=>{const t=k.colorSchemes[e].palette,setCssVarColor=e=>{const n=e.split("-"),a=n[1],o=n[2];return g(e,t[a][o])};function colorMix(e,t,n){if(x){let a;return e===private_safeAlpha&&(a=`transparent ${(100*(1-n)).toFixed(0)}%`),e===private_safeDarken&&(a=`#000 ${(100*n).toFixed(0)}%`),e===private_safeLighten&&(a=`#fff ${(100*n).toFixed(0)}%`),`color-mix(in ${x}, ${t}, ${a})`}return e(t,n)}if("light"===t.mode&&(setColor(t.common,"background","#fff"),setColor(t.common,"onBackground","#000")),"dark"===t.mode&&(setColor(t.common,"background","#000"),setColor(t.common,"onBackground","#fff")),assignNode(t,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),"light"===t.mode){setColor(t.Alert,"errorColor",colorMix(private_safeDarken,s?g("palette-error-light"):t.error.light,.6)),setColor(t.Alert,"infoColor",colorMix(private_safeDarken,s?g("palette-info-light"):t.info.light,.6)),setColor(t.Alert,"successColor",colorMix(private_safeDarken,s?g("palette-success-light"):t.success.light,.6)),setColor(t.Alert,"warningColor",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.light,.6)),setColor(t.Alert,"errorFilledBg",setCssVarColor("palette-error-main")),setColor(t.Alert,"infoFilledBg",setCssVarColor("palette-info-main")),setColor(t.Alert,"successFilledBg",setCssVarColor("palette-success-main")),setColor(t.Alert,"warningFilledBg",setCssVarColor("palette-warning-main")),setColor(t.Alert,"errorFilledColor",silent(()=>t.getContrastText(t.error.main))),setColor(t.Alert,"infoFilledColor",silent(()=>t.getContrastText(t.info.main))),setColor(t.Alert,"successFilledColor",silent(()=>t.getContrastText(t.success.main))),setColor(t.Alert,"warningFilledColor",silent(()=>t.getContrastText(t.warning.main))),setColor(t.Alert,"errorStandardBg",colorMix(private_safeLighten,s?g("palette-error-light"):t.error.light,.9)),setColor(t.Alert,"infoStandardBg",colorMix(private_safeLighten,s?g("palette-info-light"):t.info.light,.9)),setColor(t.Alert,"successStandardBg",colorMix(private_safeLighten,s?g("palette-success-light"):t.success.light,.9)),setColor(t.Alert,"warningStandardBg",colorMix(private_safeLighten,s?g("palette-warning-light"):t.warning.light,.9)),setColor(t.Alert,"errorIconColor",setCssVarColor("palette-error-main")),setColor(t.Alert,"infoIconColor",setCssVarColor("palette-info-main")),setColor(t.Alert,"successIconColor",setCssVarColor("palette-success-main")),setColor(t.Alert,"warningIconColor",setCssVarColor("palette-warning-main")),setColor(t.AppBar,"defaultBg",setCssVarColor("palette-grey-100")),setColor(t.Avatar,"defaultBg",setCssVarColor("palette-grey-400")),setColor(t.Button,"inheritContainedBg",setCssVarColor("palette-grey-300")),setColor(t.Button,"inheritContainedHoverBg",setCssVarColor("palette-grey-A100")),setColor(t.Chip,"defaultBorder",setCssVarColor("palette-grey-400")),setColor(t.Chip,"defaultAvatarColor",setCssVarColor("palette-grey-700")),setColor(t.Chip,"defaultIconColor",setCssVarColor("palette-grey-700")),setColor(t.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),setColor(t.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),setColor(t.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),setColor(t.LinearProgress,"primaryBg",colorMix(private_safeLighten,s?g("palette-primary-main"):t.primary.main,.62)),setColor(t.LinearProgress,"secondaryBg",colorMix(private_safeLighten,s?g("palette-secondary-main"):t.secondary.main,.62)),setColor(t.LinearProgress,"errorBg",colorMix(private_safeLighten,s?g("palette-error-main"):t.error.main,.62)),setColor(t.LinearProgress,"infoBg",colorMix(private_safeLighten,s?g("palette-info-main"):t.info.main,.62)),setColor(t.LinearProgress,"successBg",colorMix(private_safeLighten,s?g("palette-success-main"):t.success.main,.62)),setColor(t.LinearProgress,"warningBg",colorMix(private_safeLighten,s?g("palette-warning-light"):t.warning.main,.62)),setColor(t.Skeleton,"bg",x?colorMix(private_safeAlpha,s?g("palette-text-primary"):t.text.primary,.11):`rgba(${setCssVarColor("palette-text-primaryChannel")} / 0.11)`),setColor(t.Slider,"primaryTrack",colorMix(private_safeLighten,s?g("palette-primary-main"):t.primary.main,.62)),setColor(t.Slider,"secondaryTrack",colorMix(private_safeLighten,s?g("palette-secondary-main"):t.secondary.main,.62)),setColor(t.Slider,"errorTrack",colorMix(private_safeLighten,s?g("palette-error-main"):t.error.main,.62)),setColor(t.Slider,"infoTrack",colorMix(private_safeLighten,s?g("palette-info-main"):t.info.main,.62)),setColor(t.Slider,"successTrack",colorMix(private_safeLighten,s?g("palette-success-main"):t.success.main,.62)),setColor(t.Slider,"warningTrack",colorMix(private_safeLighten,s?g("palette-warning-main"):t.warning.main,.62));const e=x?colorMix(private_safeDarken,s?g("palette-background-default"):t.background.default,.6825):private_safeEmphasize(t.background.default,.8);setColor(t.SnackbarContent,"bg",e),setColor(t.SnackbarContent,"color",silent(()=>x?ls.text.primary:t.getContrastText(e))),setColor(t.SpeedDialAction,"fabHoverBg",private_safeEmphasize(t.background.paper,.15)),setColor(t.StepConnector,"border",setCssVarColor("palette-grey-400")),setColor(t.StepContent,"border",setCssVarColor("palette-grey-400")),setColor(t.Switch,"defaultColor",setCssVarColor("palette-common-white")),setColor(t.Switch,"defaultDisabledColor",setCssVarColor("palette-grey-100")),setColor(t.Switch,"primaryDisabledColor",colorMix(private_safeLighten,s?g("palette-primary-main"):t.primary.main,.62)),setColor(t.Switch,"secondaryDisabledColor",colorMix(private_safeLighten,s?g("palette-secondary-main"):t.secondary.main,.62)),setColor(t.Switch,"errorDisabledColor",colorMix(private_safeLighten,s?g("palette-error-main"):t.error.main,.62)),setColor(t.Switch,"infoDisabledColor",colorMix(private_safeLighten,s?g("palette-info-main"):t.info.main,.62)),setColor(t.Switch,"successDisabledColor",colorMix(private_safeLighten,s?g("palette-success-main"):t.success.main,.62)),setColor(t.Switch,"warningDisabledColor",colorMix(private_safeLighten,s?g("palette-warning-main"):t.warning.main,.62)),setColor(t.TableCell,"border",colorMix(private_safeLighten,private_safeAlpha(s?g("palette-divider"):t.divider,1),.88)),setColor(t.Tooltip,"bg",colorMix(private_safeAlpha,s?g("palette-grey-700"):t.grey[700],.92))}if("dark"===t.mode){setColor(t.Alert,"errorColor",colorMix(private_safeLighten,s?g("palette-error-light"):t.error.light,.6)),setColor(t.Alert,"infoColor",colorMix(private_safeLighten,s?g("palette-info-light"):t.info.light,.6)),setColor(t.Alert,"successColor",colorMix(private_safeLighten,s?g("palette-success-light"):t.success.light,.6)),setColor(t.Alert,"warningColor",colorMix(private_safeLighten,s?g("palette-warning-light"):t.warning.light,.6)),setColor(t.Alert,"errorFilledBg",setCssVarColor("palette-error-dark")),setColor(t.Alert,"infoFilledBg",setCssVarColor("palette-info-dark")),setColor(t.Alert,"successFilledBg",setCssVarColor("palette-success-dark")),setColor(t.Alert,"warningFilledBg",setCssVarColor("palette-warning-dark")),setColor(t.Alert,"errorFilledColor",silent(()=>t.getContrastText(t.error.dark))),setColor(t.Alert,"infoFilledColor",silent(()=>t.getContrastText(t.info.dark))),setColor(t.Alert,"successFilledColor",silent(()=>t.getContrastText(t.success.dark))),setColor(t.Alert,"warningFilledColor",silent(()=>t.getContrastText(t.warning.dark))),setColor(t.Alert,"errorStandardBg",colorMix(private_safeDarken,s?g("palette-error-light"):t.error.light,.9)),setColor(t.Alert,"infoStandardBg",colorMix(private_safeDarken,s?g("palette-info-light"):t.info.light,.9)),setColor(t.Alert,"successStandardBg",colorMix(private_safeDarken,s?g("palette-success-light"):t.success.light,.9)),setColor(t.Alert,"warningStandardBg",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.light,.9)),setColor(t.Alert,"errorIconColor",setCssVarColor("palette-error-main")),setColor(t.Alert,"infoIconColor",setCssVarColor("palette-info-main")),setColor(t.Alert,"successIconColor",setCssVarColor("palette-success-main")),setColor(t.Alert,"warningIconColor",setCssVarColor("palette-warning-main")),setColor(t.AppBar,"defaultBg",setCssVarColor("palette-grey-900")),setColor(t.AppBar,"darkBg",setCssVarColor("palette-background-paper")),setColor(t.AppBar,"darkColor",setCssVarColor("palette-text-primary")),setColor(t.Avatar,"defaultBg",setCssVarColor("palette-grey-600")),setColor(t.Button,"inheritContainedBg",setCssVarColor("palette-grey-800")),setColor(t.Button,"inheritContainedHoverBg",setCssVarColor("palette-grey-700")),setColor(t.Chip,"defaultBorder",setCssVarColor("palette-grey-700")),setColor(t.Chip,"defaultAvatarColor",setCssVarColor("palette-grey-300")),setColor(t.Chip,"defaultIconColor",setCssVarColor("palette-grey-300")),setColor(t.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),setColor(t.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),setColor(t.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),setColor(t.LinearProgress,"primaryBg",colorMix(private_safeDarken,s?g("palette-primary-main"):t.primary.main,.5)),setColor(t.LinearProgress,"secondaryBg",colorMix(private_safeDarken,s?g("palette-secondary-main"):t.secondary.main,.5)),setColor(t.LinearProgress,"errorBg",colorMix(private_safeDarken,s?g("palette-error-main"):t.error.main,.5)),setColor(t.LinearProgress,"infoBg",colorMix(private_safeDarken,s?g("palette-info-main"):t.info.main,.5)),setColor(t.LinearProgress,"successBg",colorMix(private_safeDarken,s?g("palette-success-main"):t.success.main,.5)),setColor(t.LinearProgress,"warningBg",colorMix(private_safeDarken,s?g("palette-warning-main"):t.warning.main,.5)),setColor(t.Skeleton,"bg",x?colorMix(private_safeAlpha,s?g("palette-text-primary"):t.text.primary,.13):`rgba(${setCssVarColor("palette-text-primaryChannel")} / 0.13)`),setColor(t.Slider,"primaryTrack",colorMix(private_safeDarken,s?g("palette-primary-main"):t.primary.main,.5)),setColor(t.Slider,"secondaryTrack",colorMix(private_safeDarken,s?g("palette-secondary-main"):t.secondary.main,.5)),setColor(t.Slider,"errorTrack",colorMix(private_safeDarken,s?g("palette-error-main"):t.error.main,.5)),setColor(t.Slider,"infoTrack",colorMix(private_safeDarken,s?g("palette-info-main"):t.info.main,.5)),setColor(t.Slider,"successTrack",colorMix(private_safeDarken,s?g("palette-success-main"):t.success.main,.5)),setColor(t.Slider,"warningTrack",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.main,.5));const e=x?colorMix(private_safeLighten,s?g("palette-background-default"):t.background.default,.985):private_safeEmphasize(t.background.default,.98);setColor(t.SnackbarContent,"bg",e),setColor(t.SnackbarContent,"color",silent(()=>x?ss.text.primary:t.getContrastText(e))),setColor(t.SpeedDialAction,"fabHoverBg",private_safeEmphasize(t.background.paper,.15)),setColor(t.StepConnector,"border",setCssVarColor("palette-grey-600")),setColor(t.StepContent,"border",setCssVarColor("palette-grey-600")),setColor(t.Switch,"defaultColor",setCssVarColor("palette-grey-300")),setColor(t.Switch,"defaultDisabledColor",setCssVarColor("palette-grey-600")),setColor(t.Switch,"primaryDisabledColor",colorMix(private_safeDarken,s?g("palette-primary-main"):t.primary.main,.55)),setColor(t.Switch,"secondaryDisabledColor",colorMix(private_safeDarken,s?g("palette-secondary-main"):t.secondary.main,.55)),setColor(t.Switch,"errorDisabledColor",colorMix(private_safeDarken,s?g("palette-error-main"):t.error.main,.55)),setColor(t.Switch,"infoDisabledColor",colorMix(private_safeDarken,s?g("palette-info-main"):t.info.main,.55)),setColor(t.Switch,"successDisabledColor",colorMix(private_safeDarken,s?g("palette-success-main"):t.success.main,.55)),setColor(t.Switch,"warningDisabledColor",colorMix(private_safeDarken,s?g("palette-warning-light"):t.warning.main,.55)),setColor(t.TableCell,"border",colorMix(private_safeDarken,private_safeAlpha(s?g("palette-divider"):t.divider,1),.68)),setColor(t.Tooltip,"bg",colorMix(private_safeAlpha,s?g("palette-grey-700"):t.grey[700],.92))}s||(setColorChannel(t.background,"default"),setColorChannel(t.background,"paper"),setColorChannel(t.common,"background"),setColorChannel(t.common,"onBackground"),setColorChannel(t,"divider")),Object.keys(t).forEach(e=>{const n=t[e];"tonalOffset"!==e&&!s&&n&&"object"==typeof n&&(n.main&&setColor(t[e],"mainChannel",private_safeColorChannel(toRgb(n.main))),n.light&&setColor(t[e],"lightChannel",private_safeColorChannel(toRgb(n.light))),n.dark&&setColor(t[e],"darkChannel",private_safeColorChannel(toRgb(n.dark))),n.contrastText&&setColor(t[e],"contrastTextChannel",private_safeColorChannel(toRgb(n.contrastText))),"text"===e&&(setColorChannel(t[e],"primary"),setColorChannel(t[e],"secondary")),"action"===e&&(n.active&&setColorChannel(t[e],"active"),n.selected&&setColorChannel(t[e],"selected")))})}),k=t.reduce((e,t)=>deepmerge(e,t),k);const E={prefix:i,disableCssColorScheme:o,shouldSkipGeneratingVar:l,getSelector:createGetSelector_default(k),enableContrastVars:s},{vars:P,generateThemeVars:T,generateStyleSheets:R}=prepareCssVars(k,E);return k.vars=P,Object.entries(k.colorSchemes[k.defaultColorScheme]).forEach(([e,t])=>{k[e]=t}),k.generateThemeVars=T,k.generateStyleSheets=R,k.generateSpacing=function generateSpacing(){return createSpacing(d.spacing,createUnarySpacing(this))},k.getColorSchemeSelector=createGetColorSchemeSelector(c),k.spacing=k.generateSpacing(),k.shouldSkipGeneratingVar=l,k.unstable_sxConfig={...Bi,...d?.unstable_sxConfig},k.unstable_sx=function sx(e){return qi({sx:e,theme:this})},k.internal_cache={},k.toRuntimeSource=stringifyTheme,k}function attachColorScheme(e,t,n){e.colorSchemes&&n&&(e.colorSchemes[t]={...!0!==n&&n,palette:createPalette({...!0===n?{}:n.palette,mode:t})})}function createTheme(e={},...t){const{palette:n,cssVariables:a=!1,colorSchemes:o=(n?void 0:{light:!0}),defaultColorScheme:i=n?.mode,...s}=e,l=i||"light",c=o?.[l],u={...o,...n?{[l]:{..."boolean"!=typeof c&&c,palette:n}}:void 0};if(!1===a){if(!("colorSchemes"in e))return createThemeNoVars(e,...t);let a=n;"palette"in e||u[l]&&(!0!==u[l]?a=u[l].palette:"dark"===l&&(a={mode:"dark"}));const o=createThemeNoVars({...e,palette:a},...t);return o.defaultColorScheme=l,o.colorSchemes=u,"light"===o.palette.mode&&(o.colorSchemes.light={...!0!==u.light&&u.light,palette:o.palette},attachColorScheme(o,"dark",u.dark)),"dark"===o.palette.mode&&(o.colorSchemes.dark={...!0!==u.dark&&u.dark,palette:o.palette},attachColorScheme(o,"light",u.light)),o}return n||"light"in u||"light"!==l||(u.light=!0),createThemeWithVars({...s,colorSchemes:u,defaultColorScheme:l,..."boolean"!=typeof a&&a},...t)}var vs=createTheme();function useTheme(){const e=useTheme$2(vs);return e.$$material||e}function slotShouldForwardProp(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}var rootShouldForwardProp=e=>slotShouldForwardProp(e)&&"classes"!==e,Ss=createStyled({themeId:qa,defaultTheme:vs,rootShouldForwardProp});function ThemeProviderNoVars({theme:e,...t}){const n="$$material"in e?e[qa]:void 0;return(0,Oa.jsx)(ThemeProvider$1,{...t,themeId:n?qa:void 0,theme:n||e})}var xs={attribute:"data-mui-color-scheme",colorSchemeStorageKey:"mui-color-scheme",defaultLightColorScheme:"light",defaultDarkColorScheme:"dark",modeStorageKey:"mui-mode"},{CssVarsProvider:ws,useColorScheme:Cs,getInitColorSchemeScript:ks}=createCssVarsProvider({themeId:qa,theme:()=>createTheme({cssVariables:!0}),colorSchemeStorageKey:xs.colorSchemeStorageKey,modeStorageKey:xs.modeStorageKey,defaultColorScheme:{light:xs.defaultLightColorScheme,dark:xs.defaultDarkColorScheme},resolveTheme:e=>{const t={...e,typography:createTypography(e.palette,e.typography)};return t.unstable_sx=function sx(e){return qi({sx:e,theme:this})},t}}),Es=ws;function ThemeProvider({theme:e,...t}){const n=c.useMemo(()=>{if("function"==typeof e)return e;const t="$$material"in e?e[qa]:e;return"colorSchemes"in t?null:"vars"in t?e:{...e,vars:null}},[e]);return n?(0,Oa.jsx)(ThemeProviderNoVars,{theme:n,...t}):(0,Oa.jsx)(Es,{theme:e,...t})}var _s=capitalize$1;function createChainedFunction(...e){return e.reduce((e,t)=>null==t?e:function chainedFunction(...n){e.apply(this,n),t.apply(this,n)},()=>{})}function GlobalStyles(e){return(0,Oa.jsx)(GlobalStyles$1,{...e,defaultTheme:vs,themeId:qa})}function globalCss(e){return function GlobalStylesWrapper(t){return(0,Oa.jsx)(GlobalStyles,{styles:"function"==typeof e?n=>e({theme:n,...t}):e})}}var Ps=unstable_memoTheme;function useDefaultProps(e){return useDefaultProps$1(e)}function getSvgIconUtilityClass(e){return generateUtilityClass("MuiSvgIcon",e)}generateUtilityClasses("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);var useUtilityClasses$48=e=>{const{color:t,fontSize:n,classes:a}=e;return composeClasses({root:["root","inherit"!==t&&`color${_s(t)}`,`fontSize${_s(n)}`]},getSvgIconUtilityClass,a)},Ts=Ss("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"inherit"!==n.color&&t[`color${_s(n.color)}`],t[`fontSize${_s(n.fontSize)}`]]}})(Ps(({theme:e})=>({userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:e.transitions?.create?.("fill",{duration:(e.vars??e).transitions?.duration?.shorter}),variants:[{props:e=>!e.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:e.typography?.pxToRem?.(20)||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:e.typography?.pxToRem?.(24)||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:e.typography?.pxToRem?.(35)||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,e])=>e&&e.main).map(([t])=>({props:{color:t},style:{color:(e.vars??e).palette?.[t]?.main}})),{props:{color:"action"},style:{color:(e.vars??e).palette?.action?.active}},{props:{color:"disabled"},style:{color:(e.vars??e).palette?.action?.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}))),As=c.forwardRef(function SvgIcon(e,t){const n=useDefaultProps({props:e,name:"MuiSvgIcon"}),{children:a,className:o,color:i="inherit",component:s="svg",fontSize:l="medium",htmlColor:u,inheritViewBox:d=!1,titleAccess:p,viewBox:m="0 0 24 24",...g}=n,h=c.isValidElement(a)&&"svg"===a.type,b={...n,color:i,component:s,fontSize:l,instanceFontSize:e.fontSize,inheritViewBox:d,viewBox:m,hasSvgAsChild:h},y={};return d||(y.viewBox=m),(0,Oa.jsxs)(Ts,{as:s,className:clsx(useUtilityClasses$48(b).root,o),focusable:"false",color:u,"aria-hidden":!p||void 0,role:p?"img":void 0,ref:t,...y,...g,...h&&a.props,ownerState:b,children:[h?a.props.children:a,p?(0,Oa.jsx)("title",{children:p}):null]})});function createSvgIcon(e,t){function Component(t,n){return(0,Oa.jsx)(As,{"data-testid":void 0,ref:n,...t,children:e})}return Component.muiName=As.muiName,c.memo(c.forwardRef(Component))}function debounce$1(e,t=166){let n;function debounced(...a){const later=()=>{e.apply(this,a)};clearTimeout(n),n=setTimeout(later,t)}return debounced.clear=()=>{clearTimeout(n)},debounced}As.muiName="SvgIcon";var Rs=debounce$1,Ms=isMuiElement;function activeElement(e){let t=e.activeElement;for(;null!=t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}var Ds=activeElement;function ownerDocument(e){return e&&e.ownerDocument||document}var Os=ownerDocument;function ownerWindow(e){return ownerDocument(e).defaultView||window}var $s=ownerWindow;function setRef(e,t){"function"==typeof e?e(t):e&&(e.current=t)}var Is=Gi,Ns=useId;function useControlled(e){const{controlled:t,default:n,name:a,state:o="value"}=e,{current:i}=c.useRef(void 0!==t),[s,l]=c.useState(n);return[i?t:s,c.useCallback(e=>{i||l(e)},[])]}var zs=useControlled;function useEventCallback(e){const t=c.useRef(e);return Gi(()=>{t.current=e}),c.useRef((...e)=>(0,t.current)(...e)).current}var Ls=useEventCallback;function useForkRef(...e){const t=c.useRef(void 0),n=c.useCallback(t=>{const n=e.map(e=>{if(null==e)return null;if("function"==typeof e){const n=e,a=n(t);return"function"==typeof a?a:()=>{n(null)}}return e.current=t,()=>{e.current=null}});return()=>{n.forEach(e=>e?.())}},e);return c.useMemo(()=>e.every(e=>null==e)?null:e=>{t.current&&(t.current(),t.current=void 0),null!=e&&(t.current=n(e))},e)}var js=useForkRef;function isEventHandler(e,t){const n=e.charCodeAt(2);return"o"===e[0]&&"n"===e[1]&&n>=65&&n<=90&&"function"==typeof t}function mergeSlotProps$1(e,t){if(!e)return t;function extractHandlers(e,t){const n={};return Object.keys(t).forEach(a=>{isEventHandler(a,t[a])&&"function"==typeof e[a]&&(n[a]=(...n)=>{e[a](...n),t[a](...n)})}),n}if("function"==typeof e||"function"==typeof t)return n=>{const a="function"==typeof t?t(n):t,o="function"==typeof e?e({...n,...a}):e,i=clsx(n?.className,a?.className,o?.className),s=extractHandlers(o,a);return{...a,...o,...s,...!!i&&{className:i},...a?.style&&o?.style&&{style:{...a.style,...o.style}},...a?.sx&&o?.sx&&{sx:[...Array.isArray(a.sx)?a.sx:[a.sx],...Array.isArray(o.sx)?o.sx:[o.sx]]}}};const n=t,a=extractHandlers(e,n),o=clsx(n?.className,e?.className);return{...t,...e,...a,...!!o&&{className:o},...n?.style&&e?.style&&{style:{...n.style,...e.style}},...n?.sx&&e?.sx&&{sx:[...Array.isArray(n.sx)?n.sx:[n.sx],...Array.isArray(e.sx)?e.sx:[e.sx]]}}}function _objectWithoutPropertiesLoose(e,t){if(null==e)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;n[a]=e[a]}return n}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,_setPrototypeOf(e,t)}var Bs={disabled:!1},Fs=e.default.createContext(null),qs=function forceReflow(e){return e.scrollTop},Us="unmounted",Vs="exited",Hs="entering",Ws="entered",Gs="exiting",Ys=function(n){function Transition(e,t){var a,o=n.call(this,e,t)||this,i=t&&!t.isMounting?e.enter:e.appear;return o.appearStatus=null,e.in?i?(a=Vs,o.appearStatus=Hs):a=Ws:a=e.unmountOnExit||e.mountOnEnter?Us:Vs,o.state={status:a},o.nextCallback=null,o}_inheritsLoose(Transition,n),Transition.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){return e.in&&"unmounted"===t.status?{status:Vs}:null};var a=Transition.prototype;return a.componentDidMount=function componentDidMount(){this.updateStatus(!0,this.appearStatus)},a.componentDidUpdate=function componentDidUpdate(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?"entering"!==n&&"entered"!==n&&(t=Hs):"entering"!==n&&"entered"!==n||(t=Gs)}this.updateStatus(!1,t)},a.componentWillUnmount=function componentWillUnmount(){this.cancelNextCallback()},a.getTimeouts=function getTimeouts(){var e,t,n=this.props.timeout,a=e=t=n;return null!=n&&"number"!=typeof n&&(a=n.exit,e=n.enter,t=void 0!==n.appear?n.appear:e),{exit:a,enter:e,appear:t}},a.updateStatus=function updateStatus(e,n){if(void 0===e&&(e=!1),null!==n)if(this.cancelNextCallback(),"entering"===n){if(this.props.unmountOnExit||this.props.mountOnEnter){var a=this.props.nodeRef?this.props.nodeRef.current:t.default.findDOMNode(this);a&&qs(a)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&"exited"===this.state.status&&this.setState({status:Us})},a.performEnter=function performEnter(e){var n=this,a=this.props.enter,o=this.context?this.context.isMounting:e,i=this.props.nodeRef?[o]:[t.default.findDOMNode(this),o],s=i[0],l=i[1],c=this.getTimeouts(),u=o?c.appear:c.enter;!e&&!a||Bs.disabled?this.safeSetState({status:Ws},function(){n.props.onEntered(s)}):(this.props.onEnter(s,l),this.safeSetState({status:Hs},function(){n.props.onEntering(s,l),n.onTransitionEnd(u,function(){n.safeSetState({status:Ws},function(){n.props.onEntered(s,l)})})}))},a.performExit=function performExit(){var e=this,n=this.props.exit,a=this.getTimeouts(),o=this.props.nodeRef?void 0:t.default.findDOMNode(this);n&&!Bs.disabled?(this.props.onExit(o),this.safeSetState({status:Gs},function(){e.props.onExiting(o),e.onTransitionEnd(a.exit,function(){e.safeSetState({status:Vs},function(){e.props.onExited(o)})})})):this.safeSetState({status:Vs},function(){e.props.onExited(o)})},a.cancelNextCallback=function cancelNextCallback(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},a.safeSetState=function safeSetState(e,t){t=this.setNextCallback(t),this.setState(e,t)},a.setNextCallback=function setNextCallback(e){var t=this,n=!0;return this.nextCallback=function(a){n&&(n=!1,t.nextCallback=null,e(a))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},a.onTransitionEnd=function onTransitionEnd(e,n){this.setNextCallback(n);var a=this.props.nodeRef?this.props.nodeRef.current:t.default.findDOMNode(this),o=null==e&&!this.props.addEndListener;if(a&&!o){if(this.props.addEndListener){var i=this.props.nodeRef?[this.nextCallback]:[a,this.nextCallback],s=i[0],l=i[1];this.props.addEndListener(s,l)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},a.render=function render(){var t=this.state.status;if("unmounted"===t)return null;var n=this.props,a=n.children;n.in,n.mountOnEnter,n.unmountOnExit,n.appear,n.enter,n.exit,n.timeout,n.addEndListener,n.onEnter,n.onEntering,n.onEntered,n.onExit,n.onExiting,n.onExited,n.nodeRef;var o=_objectWithoutPropertiesLoose(n,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]);return e.default.createElement(Fs.Provider,{value:null},"function"==typeof a?a(t,o):e.default.cloneElement(e.default.Children.only(a),o))},Transition}(e.default.Component);function noop$2(){}function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function getChildMapping(t,n){var a=function mapper(t){return n&&(0,e.isValidElement)(t)?n(t):t},o=Object.create(null);return t&&e.Children.map(t,function(e){return e}).forEach(function(e){o[e.key]=a(e)}),o}function mergeChildMappings(e,t){function getValueForKey(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var n,a=Object.create(null),o=[];for(var i in e)i in t?o.length&&(a[i]=o,o=[]):o.push(i);var s={};for(var l in t){if(a[l])for(n=0;n<a[l].length;n++){var c=a[l][n];s[a[l][n]]=getValueForKey(c)}s[l]=getValueForKey(l)}for(n=0;n<o.length;n++)s[o[n]]=getValueForKey(o[n]);return s}function getProp(e,t,n){return null!=n[t]?n[t]:e.props[t]}function getInitialChildMapping(t,n){return getChildMapping(t.children,function(a){return(0,e.cloneElement)(a,{onExited:n.bind(null,a),in:!0,appear:getProp(a,"appear",t),enter:getProp(a,"enter",t),exit:getProp(a,"exit",t)})})}function getNextChildMapping(t,n,a){var o=getChildMapping(t.children),i=mergeChildMappings(n,o);return Object.keys(i).forEach(function(s){var l=i[s];if((0,e.isValidElement)(l)){var c=s in n,u=s in o,d=n[s],p=(0,e.isValidElement)(d)&&!d.props.in;!u||c&&!p?u||!c||p?u&&c&&(0,e.isValidElement)(d)&&(i[s]=(0,e.cloneElement)(l,{onExited:a.bind(null,l),in:d.props.in,exit:getProp(l,"exit",t),enter:getProp(l,"enter",t)})):i[s]=(0,e.cloneElement)(l,{in:!1}):i[s]=(0,e.cloneElement)(l,{onExited:a.bind(null,l),in:!0,exit:getProp(l,"exit",t),enter:getProp(l,"enter",t)})}}),i}Ys.contextType=Fs,Ys.propTypes={},Ys.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:noop$2,onEntering:noop$2,onEntered:noop$2,onExit:noop$2,onExiting:noop$2,onExited:noop$2},Ys.UNMOUNTED=Us,Ys.EXITED=Vs,Ys.ENTERING=Hs,Ys.ENTERED=Ws,Ys.EXITING=Gs;var Ks=Object.values||function(e){return Object.keys(e).map(function(t){return e[t]})},Qs={component:"div",childFactory:function childFactory(e){return e}},Zs=function(t){function TransitionGroup(e,n){var a=t.call(this,e,n)||this;return a.state={contextValue:{isMounting:!0},handleExited:a.handleExited.bind(_assertThisInitialized(a)),firstRender:!0},a}_inheritsLoose(TransitionGroup,t);var n=TransitionGroup.prototype;return n.componentDidMount=function componentDidMount(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function componentWillUnmount(){this.mounted=!1},TransitionGroup.getDerivedStateFromProps=function getDerivedStateFromProps(e,t){var n=t.children,a=t.handleExited;return{children:t.firstRender?getInitialChildMapping(e,a):getNextChildMapping(e,n,a),firstRender:!1}},n.handleExited=function handleExited(e,t){var n=getChildMapping(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState(function(t){var n=_extends({},t.children);return delete n[e.key],{children:n}}))},n.render=function render(){var t=this.props,n=t.component,a=t.childFactory,o=_objectWithoutPropertiesLoose(t,["component","childFactory"]),i=this.state.contextValue,s=Ks(this.state.children).map(a);return delete o.appear,delete o.enter,delete o.exit,null===n?e.default.createElement(Fs.Provider,{value:i},s):e.default.createElement(Fs.Provider,{value:i},e.default.createElement(n,o,s))},TransitionGroup}(e.default.Component);Zs.propTypes={},Zs.defaultProps=Qs;var Xs={};function useLazyRef(e,t){const n=c.useRef(Xs);return n.current===Xs&&(n.current=e(t)),n}var Js=[];function useOnMount(e){c.useEffect(e,Js)}var el=class Timeout{static create(){return new Timeout}currentId=null;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=null,t()},e)}clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)};disposeEffect=()=>this.clear};function useTimeout(){const e=useLazyRef(el.create).current;return useOnMount(e.disposeEffect),e}var reflow=e=>e.scrollTop;function normalizedTransitionCallback(e,t){return n=>{if(t){const a=e.current;void 0===n?t(a):t(a,n)}}}function getTransitionChildStyle(e,t,n,a,o,i){const s="exited"!==e||t?n[e]||n.exited:a;return o||i?{...s,...o,...i}:s}function getTransitionProps(e,t){const{timeout:n,easing:a,style:o={}}=e;return{duration:o.transitionDuration??("number"==typeof n?n:n[t.mode]||0),easing:o.transitionTimingFunction??("object"==typeof a?a[t.mode]:a),delay:o.transitionDelay}}function isHostComponent(e){return"string"==typeof e}function appendOwnerState(e,t,n){return void 0===e||isHostComponent(e)?t:{...t,ownerState:{...t.ownerState,...n}}}function resolveComponentProps(e,t,n){return"function"==typeof e?e(t,n):e}function extractEventHandlers(e){if(void 0===e)return{};const t={};for(const n of Object.keys(e))isEventHandler(n,e[n])&&(t[n]=e[n]);return t}function omitEventHandlers(e){if(void 0===e)return{};const t={};return Object.keys(e).filter(t=>!(t.match(/^on[A-Z]/)&&"function"==typeof e[t])).forEach(n=>{t[n]=e[n]}),t}function mergeSlotProps(e){const{getSlotProps:t,additionalProps:n,externalSlotProps:a,externalForwardedProps:o,className:i}=e;if(!t){const e=clsx(n?.className,i,o?.className,a?.className),t={...n?.style,...o?.style,...a?.style},s={...n,...o,...a};return e.length>0&&(s.className=e),Object.keys(t).length>0&&(s.style=t),{props:s,internalRef:void 0}}const s=extractEventHandlers({...o,...a}),l=omitEventHandlers(a),c=omitEventHandlers(o),u=t(s),d=clsx(u?.className,n?.className,i,o?.className,a?.className),p={...u?.style,...n?.style,...o?.style,...a?.style},m={...u,...n,...c,...l};return d.length>0&&(m.className=d),Object.keys(p).length>0&&(m.style=p),{props:m,internalRef:u.ref}}function useSlot(e,t){const{className:n,elementType:a,ownerState:o,externalForwardedProps:i,internalForwardedProps:s,shouldForwardComponentProp:l=!1,...c}=t,{component:u,slots:d={[e]:void 0},slotProps:p={[e]:void 0},...m}=i,g=d[e]||a,h=resolveComponentProps(p[e],o),{props:{component:b,...y},internalRef:v}=mergeSlotProps({className:n,...c,externalForwardedProps:"root"===e?m:void 0,externalSlotProps:h}),S=useForkRef(v,h?.ref,t.ref),x="root"===e?b||u:b;return[g,appendOwnerState(g,{..."root"===e&&!u&&!d[e]&&s,..."root"!==e&&!d[e]&&s,...y,...x&&!l&&{as:x},...x&&l&&{component:x},ref:S},o)]}function getPaperUtilityClass(e){return generateUtilityClass("MuiPaper",e)}generateUtilityClasses("MuiPaper",["root","rounded","outlined","elevation","elevation0","elevation1","elevation2","elevation3","elevation4","elevation5","elevation6","elevation7","elevation8","elevation9","elevation10","elevation11","elevation12","elevation13","elevation14","elevation15","elevation16","elevation17","elevation18","elevation19","elevation20","elevation21","elevation22","elevation23","elevation24"]);var useUtilityClasses$47=e=>{const{square:t,elevation:n,variant:a,classes:o}=e;return composeClasses({root:["root",a,!t&&"rounded","elevation"===a&&`elevation${n}`]},getPaperUtilityClass,o)},tl=Ss("div",{name:"MuiPaper",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],!n.square&&t.rounded,"elevation"===n.variant&&t[`elevation${n.elevation}`]]}})(Ps(({theme:e})=>({backgroundColor:(e.vars||e).palette.background.paper,color:(e.vars||e).palette.text.primary,transition:e.transitions.create("box-shadow"),variants:[{props:({ownerState:e})=>!e.square,style:{borderRadius:e.shape.borderRadius}},{props:{variant:"outlined"},style:{border:`1px solid ${(e.vars||e).palette.divider}`}},{props:{variant:"elevation"},style:{boxShadow:"var(--Paper-shadow)",backgroundImage:"var(--Paper-overlay)"}}]}))),rl=c.forwardRef(function Paper(e,t){const n=useDefaultProps({props:e,name:"MuiPaper"}),a=useTheme(),{className:o,component:i="div",elevation:s=1,square:l=!1,variant:c="elevation",...u}=n,d={...n,component:i,elevation:s,square:l,variant:c};return(0,Oa.jsx)(tl,{as:i,ownerState:d,className:clsx(useUtilityClasses$47(d).root,o),ref:t,...u,style:{..."elevation"===c&&{"--Paper-shadow":(a.vars||a).shadows[s],...a.vars&&{"--Paper-overlay":a.vars.overlays?.[s]},...!a.vars&&"dark"===a.palette.mode&&{"--Paper-overlay":`linear-gradient(${alpha("#fff",getOverlayAlpha(s))}, ${alpha("#fff",getOverlayAlpha(s))})`}},...u.style}})});function isFocusVisible(e){try{return e.matches(":focus-visible")}catch(t){}return!1}function useFocusableWhenDisabled(e){const{focusableWhenDisabled:t,disabled:n,composite:a=!1,tabIndex:o=0,isNativeButton:i}=e,s=a&&!1!==t,l=a&&!1===t;return c.useMemo(()=>{const e={onKeyDown(e){n&&t&&"Tab"!==e.key&&e.preventDefault()}};return a||(e.tabIndex=o,!i&&n&&(e.tabIndex=t?o:-1)),(i&&(t||s)||!i&&n)&&(e["aria-disabled"]=n),!i||t&&!l||(e.disabled=n),e},[a,n,t,s,l,i,o])}var nl={};function useButtonBase(e){const{nativeButton:t,nativeButtonProp:n,internalNativeButton:a=t,allowInferredHostMismatch:o=!1,disabled:i,type:s,hasFormAction:l=!1,tabIndex:u=0,focusableWhenDisabled:d,stopEventPropagation:p=!1,onBeforeKeyDown:m,onBeforeKeyUp:g}=e,h=c.useRef(null),b=!0===d,y=useFocusableWhenDisabled({focusableWhenDisabled:b,disabled:i,isNativeButton:t,tabIndex:u}),v=c.useCallback(()=>{const e=h.current;return null==e?t:"BUTTON"===e.tagName||Boolean("A"===e.tagName&&e.href)},[t]),S=c.useMemo(()=>{const e=b?{}:{tabIndex:i?-1:u};return t?(e.type=void 0!==s||l?s:"button",b||(e.disabled=i)):(e.role="button",!b&&i&&(e["aria-disabled"]=i)),b?{...e,...y}:e},[i,b,y,l,t,u,s]);return{getButtonProps:c.useCallback((e=nl)=>{const{onClick:t,onKeyDown:n,onKeyUp:a,...o}=e,handleClick=e=>{p&&e.stopPropagation(),i?e.preventDefault():t?.(e)},handleKeyDown=e=>{b&&y.onKeyDown(e),i||(m?.(e),n?.(e),e.target!==e.currentTarget||v()||(" "!==e.key?"Enter"===e.key&&(e.preventDefault(),e.currentTarget.click()):e.preventDefault()))},handleKeyUp=e=>{i||(g?.(e),a?.(e),e.target!==e.currentTarget||v()||" "!==e.key||e.defaultPrevented||e.currentTarget.click())};return{...S,...o,onClick:handleClick,onKeyDown:handleKeyDown,onKeyUp:handleKeyUp}},[S,i,b,y,v,m,g,p]),rootRef:h}}var al=class LazyRipple{static create(){return new LazyRipple}static use(){const e=useLazyRef(LazyRipple.create).current,[t,n]=c.useState(!1);return e.shouldMount=t,e.setShouldMount=n,c.useEffect(e.mountEffect,[t]),e}constructor(){this.ref={current:null},this.mounted=null,this.didMount=!1,this.shouldMount=!1,this.setShouldMount=null}mount(){return this.mounted||(this.mounted=createControlledPromise(),this.shouldMount=!0,this.setShouldMount(this.shouldMount)),this.mounted}mountEffect=()=>{this.shouldMount&&!this.didMount&&null!==this.ref.current&&(this.didMount=!0,this.mounted.resolve())};start(...e){this.mount().then(()=>this.ref.current?.start(...e))}stop(...e){this.mount().then(()=>this.ref.current?.stop(...e))}pulsate(...e){this.mount().then(()=>this.ref.current?.pulsate(...e))}};function useLazyRipple(){return al.use()}function createControlledPromise(){let e,t;const n=new Promise((n,a)=>{e=n,t=a});return n.resolve=e,n.reject=t,n}function Ripple(e){const{className:t,classes:n,pulsate:a=!1,rippleX:o,rippleY:i,rippleSize:s,in:l,onExited:u,timeout:d}=e,[p,m]=c.useState(!1),g=clsx(t,n.ripple,n.rippleVisible,a&&n.ripplePulsate),h={width:s,height:s,top:-s/2+i,left:-s/2+o},b=clsx(n.child,p&&n.childLeaving,a&&n.childPulsate);return l||p||m(!0),c.useEffect(()=>{if(!l&&null!=u){const e=setTimeout(u,d);return()=>{clearTimeout(e)}}},[u,l,d]),(0,Oa.jsx)("span",{className:g,style:h,children:(0,Oa.jsx)("span",{className:b})})}var ol=generateUtilityClasses("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]),il=550,sl=keyframes`
|
|
2
2
|
0% {
|
|
3
3
|
transform: scale(0);
|
|
4
4
|
opacity: 0.1;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
transform: scale(1);
|
|
9
9
|
opacity: 0.3;
|
|
10
10
|
}
|
|
11
|
-
`,
|
|
11
|
+
`,ll=keyframes`
|
|
12
12
|
0% {
|
|
13
13
|
opacity: 1;
|
|
14
14
|
}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
100% {
|
|
17
17
|
opacity: 0;
|
|
18
18
|
}
|
|
19
|
-
`,
|
|
19
|
+
`,cl=keyframes`
|
|
20
20
|
0% {
|
|
21
21
|
transform: scale(1);
|
|
22
22
|
}
|
|
@@ -28,23 +28,23 @@
|
|
|
28
28
|
100% {
|
|
29
29
|
transform: scale(1);
|
|
30
30
|
}
|
|
31
|
-
`,
|
|
31
|
+
`,ul=Ss("span",{name:"MuiTouchRipple",slot:"Root"})({overflow:"hidden",pointerEvents:"none",position:"absolute",zIndex:0,top:0,right:0,bottom:0,left:0,borderRadius:"inherit"}),dl=Ss(Ripple,{name:"MuiTouchRipple",slot:"Ripple"})`
|
|
32
32
|
opacity: 0;
|
|
33
33
|
position: absolute;
|
|
34
34
|
|
|
35
|
-
&.${
|
|
35
|
+
&.${ol.rippleVisible} {
|
|
36
36
|
opacity: 0.3;
|
|
37
37
|
transform: scale(1);
|
|
38
|
-
animation-name: ${
|
|
39
|
-
animation-duration: ${
|
|
38
|
+
animation-name: ${sl};
|
|
39
|
+
animation-duration: ${il}ms;
|
|
40
40
|
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
&.${
|
|
43
|
+
&.${ol.ripplePulsate} {
|
|
44
44
|
animation-duration: ${({theme:e})=>e.transitions.duration.shorter}ms;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
& .${
|
|
47
|
+
& .${ol.child} {
|
|
48
48
|
opacity: 1;
|
|
49
49
|
display: block;
|
|
50
50
|
width: 100%;
|
|
@@ -53,25 +53,25 @@
|
|
|
53
53
|
background-color: currentColor;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
& .${
|
|
56
|
+
& .${ol.childLeaving} {
|
|
57
57
|
opacity: 0;
|
|
58
|
-
animation-name: ${
|
|
59
|
-
animation-duration: ${
|
|
58
|
+
animation-name: ${ll};
|
|
59
|
+
animation-duration: ${il}ms;
|
|
60
60
|
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
& .${
|
|
63
|
+
& .${ol.childPulsate} {
|
|
64
64
|
position: absolute;
|
|
65
65
|
/* @noflip */
|
|
66
66
|
left: 0px;
|
|
67
67
|
top: 0;
|
|
68
|
-
animation-name: ${
|
|
68
|
+
animation-name: ${cl};
|
|
69
69
|
animation-duration: 2500ms;
|
|
70
70
|
animation-timing-function: ${({theme:e})=>e.transitions.easing.easeInOut};
|
|
71
71
|
animation-iteration-count: infinite;
|
|
72
72
|
animation-delay: 200ms;
|
|
73
73
|
}
|
|
74
|
-
`,
|
|
74
|
+
`,pl=c.forwardRef(function TouchRipple(e,t){const{center:n=!1,classes:a={},className:o,...i}=useDefaultProps({props:e,name:"MuiTouchRipple"}),[s,l]=c.useState([]),u=c.useRef(0),d=c.useRef(null);c.useEffect(()=>{d.current&&(d.current(),d.current=null)},[s]);const p=c.useRef(!1),m=useTimeout(),g=c.useRef(null),h=c.useRef(null),b=c.useCallback(e=>{const{pulsate:t,rippleX:n,rippleY:o,rippleSize:i,cb:s}=e;l(e=>[...e,(0,Oa.jsx)(dl,{classes:{ripple:clsx(a.ripple,ol.ripple),rippleVisible:clsx(a.rippleVisible,ol.rippleVisible),ripplePulsate:clsx(a.ripplePulsate,ol.ripplePulsate),child:clsx(a.child,ol.child),childLeaving:clsx(a.childLeaving,ol.childLeaving),childPulsate:clsx(a.childPulsate,ol.childPulsate)},timeout:il,pulsate:t,rippleX:n,rippleY:o,rippleSize:i},u.current)]),u.current+=1,d.current=s},[a]),y=c.useCallback((e={},t={},a=()=>{})=>{const{pulsate:o=!1,center:i=n||t.pulsate,fakeElement:s=!1}=t;if("mousedown"===e?.type&&p.current)return void(p.current=!1);"touchstart"===e?.type&&(p.current=!0);const l=s?null:h.current,c=l?l.getBoundingClientRect():{width:0,height:0,left:0,top:0};let u,d,y;if(i||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)u=Math.round(c.width/2),d=Math.round(c.height/2);else{const{clientX:t,clientY:n}=e.touches&&e.touches.length>0?e.touches[0]:e;u=Math.round(t-c.left),d=Math.round(n-c.top)}if(i)y=Math.sqrt((2*c.width**2+c.height**2)/3),y%2==0&&(y+=1);else{const e=2*Math.max(Math.abs((l?l.clientWidth:0)-u),u)+2,t=2*Math.max(Math.abs((l?l.clientHeight:0)-d),d)+2;y=Math.sqrt(e**2+t**2)}e?.touches?null===g.current&&(g.current=()=>{b({pulsate:o,rippleX:u,rippleY:d,rippleSize:y,cb:a})},m.start(80,()=>{g.current&&(g.current(),g.current=null)})):b({pulsate:o,rippleX:u,rippleY:d,rippleSize:y,cb:a})},[n,b,m]),v=c.useCallback(()=>{y({},{pulsate:!0})},[y]),S=c.useCallback((e,t)=>{if(m.clear(),"touchend"===e?.type&&g.current)return g.current(),g.current=null,void m.start(0,()=>{S(e,t)});g.current=null,l(e=>e.length>0?e.slice(1):e),d.current=t},[m]);return c.useImperativeHandle(t,()=>({pulsate:v,start:y,stop:S}),[v,y,S]),(0,Oa.jsx)(ul,{className:clsx(ol.root,a.root,o),ref:h,...i,children:(0,Oa.jsx)(Zs,{component:null,exit:!0,children:s})})});function getButtonBaseUtilityClass(e){return generateUtilityClass("MuiButtonBase",e)}var ml=generateUtilityClasses("MuiButtonBase",["root","disabled","focusVisible"]),useUtilityClasses$46=e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:a,suppressFocusVisible:o,classes:i}=e,s=composeClasses({root:["root",t&&"disabled",n&&!o&&"focusVisible"]},getButtonBaseUtilityClass,i);return n&&!o&&a&&(s.root+=` ${a}`),s},fl=Ss("button",{name:"MuiButtonBase",slot:"Root"})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${ml.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),gl=c.forwardRef(function ButtonBase(e,t){const n=useDefaultProps({props:e,name:"MuiButtonBase"}),{action:a,centerRipple:o=!1,children:i,className:s,component:l="button",disabled:u=!1,disableRipple:d=!1,disableTouchRipple:p=!1,focusRipple:m=!1,focusVisibleClassName:g,focusableWhenDisabled:h,suppressFocusVisible:b=!1,internalNativeButton:y,LinkComponent:v="a",nativeButton:S,onBlur:x,onClick:w,onContextMenu:C,onDragLeave:k,onFocus:E,onFocusVisible:P,onKeyDown:T,onKeyUp:R,onMouseDown:M,onMouseLeave:D,onMouseUp:O,onTouchEnd:$,onTouchMove:I,onTouchStart:N,tabIndex:L=0,TouchRippleProps:j,touchRippleRef:B,type:F,...q}=n,U=Boolean(q.href||q.to),V=Boolean(q.formAction);let H=l;"button"===H&&U&&(H=v);const W="string"==typeof H?"button"===H:y??!1,G=S??W,Y=useLazyRipple(),K=js(Y.ref,B),[Q,Z]=c.useState(!1);(u||b)&&Q&&Z(!1);const X=Ls(e=>{m&&!e.repeat&&Q&&" "===e.key&&Y.stop(e,()=>{Y.start(e)})}),J=Ls(e=>{m&&" "===e.key&&Q&&!e.defaultPrevented&&Y.stop(e,()=>{Y.pulsate(e)})}),{getButtonProps:ee,rootRef:te}=useButtonBase({nativeButton:G,nativeButtonProp:S,internalNativeButton:W,allowInferredHostMismatch:U||"string"==typeof H,disabled:u,type:F,hasFormAction:V,tabIndex:L,onBeforeKeyDown:X,onBeforeKeyUp:J}),{onClick:re,onKeyDown:ne,onKeyUp:ae,...oe}=ee({onClick:w,onKeyDown:T,onKeyUp:R});c.useImperativeHandle(a,()=>({focusVisible:()=>{Z(!0),te.current.focus()}}),[te]);const ie=Y.shouldMount&&!d&&!u;c.useEffect(()=>{Q&&m&&!d&&Y.pulsate()},[d,m,Q,Y]);const se=useRippleHandler(Y,"start",M,p),le=useRippleHandler(Y,"stop",C,p),ce=useRippleHandler(Y,"stop",k,p),ue=useRippleHandler(Y,"stop",O,p),de=useRippleHandler(Y,"stop",e=>{Q&&e.preventDefault(),D&&D(e)},p),pe=useRippleHandler(Y,"start",N,p),me=useRippleHandler(Y,"stop",$,p),fe=useRippleHandler(Y,"stop",I,p),ge=useRippleHandler(Y,"stop",e=>{isFocusVisible(e.target)||Z(!1),x&&x(e)},!1),he=Ls(e=>{te.current||(te.current=e.currentTarget),!b&&isFocusVisible(e.target)&&(Z(!0),P&&P(e)),E&&E(e)}),be={};U&&(be.tabIndex=u?-1:L,u&&(be["aria-disabled"]=u),be.type=F);const ye=js(t,te),ve={...n,centerRipple:o,component:l,disabled:u,disableRipple:d,disableTouchRipple:p,focusRipple:m,suppressFocusVisible:b,tabIndex:L,focusVisible:Q},Se=useUtilityClasses$46(ve);return(0,Oa.jsxs)(fl,{as:H,className:clsx(Se.root,s),ownerState:ve,onBlur:ge,onClick:re,onContextMenu:le,onFocus:he,onKeyDown:ne,onKeyUp:ae,onMouseDown:se,onMouseLeave:de,onMouseUp:ue,onDragLeave:ce,onTouchEnd:me,onTouchMove:fe,onTouchStart:pe,ref:ye,...U?be:oe,...q,children:[i,ie?(0,Oa.jsx)(pl,{ref:K,center:o,...j}):null]})});function useRippleHandler(e,t,n,a=!1){return Ls(o=>(n&&n(o),a||e[t](o),!0))}function hasCorrectMainProperty(e){return"string"==typeof e.main}function checkSimplePaletteColorValues(e,t=[]){if(!hasCorrectMainProperty(e))return!1;for(const n of t)if(!e.hasOwnProperty(n)||"string"!=typeof e[n])return!1;return!0}function createSimplePaletteValueFilter(e=[]){return([,t])=>t&&checkSimplePaletteColorValues(t,e)}function getCircularProgressUtilityClass(e){return generateUtilityClass("MuiCircularProgress",e)}generateUtilityClasses("MuiCircularProgress",["root","determinate","indeterminate","colorPrimary","colorSecondary","svg","track","circle","circleDisableShrink"]);var hl=44,bl=keyframes`
|
|
75
75
|
0% {
|
|
76
76
|
transform: rotate(0deg);
|
|
77
77
|
}
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
100% {
|
|
80
80
|
transform: rotate(360deg);
|
|
81
81
|
}
|
|
82
|
-
`,
|
|
82
|
+
`,yl=keyframes`
|
|
83
83
|
0% {
|
|
84
84
|
stroke-dasharray: 1px, 200px;
|
|
85
85
|
stroke-dashoffset: 0;
|
|
@@ -94,8 +94,8 @@
|
|
|
94
94
|
stroke-dasharray: 1px, 200px;
|
|
95
95
|
stroke-dashoffset: -126px;
|
|
96
96
|
}
|
|
97
|
-
`,
|
|
98
|
-
animation: ${
|
|
99
|
-
`:null,
|
|
100
|
-
animation: ${
|
|
101
|
-
`:null,useUtilityClasses$45=e=>{const{classes:t,variant:n,color:a,disableShrink:o}=e;return composeClasses({root:["root",n,`color${bs(a)}`],svg:["svg"],track:["track"],circle:["circle",o&&"circleDisableShrink"]},getCircularProgressUtilityClass,t)},pl=ds("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`color${bs(n.color)}`]]}})(ys(({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:ul||{animation:`${ll} 1.4s linear infinite`}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),ml=ds("svg",{name:"MuiCircularProgress",slot:"Svg"})({display:"block"}),fl=ds("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.circle,n.disableShrink&&t.circleDisableShrink]}})(ys(({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>"indeterminate"===e.variant&&!e.disableShrink,style:dl||{animation:`${cl} 1.4s ease-in-out infinite`}}]}))),gl=ds("circle",{name:"MuiCircularProgress",slot:"Track"})(ys(({theme:e})=>({stroke:"currentColor",opacity:(e.vars||e).palette.action.activatedOpacity}))),hl=c.forwardRef(function CircularProgress(e,t){const n=useDefaultProps({props:e,name:"MuiCircularProgress"}),{className:a,color:o="primary",disableShrink:i=!1,enableTrackSlot:s=!1,min:l,max:c,size:u=40,style:d,thickness:p=3.6,value:m=n.min??0,variant:g="indeterminate",...h}=n,b=l??0,y=c??100,v={...n,color:o,disableShrink:i,size:u,thickness:p,value:m,variant:g,enableTrackSlot:s},S=useUtilityClasses$45(v),x={},w={},C={};if("determinate"===g){const e=2*Math.PI*((sl-p)/2),t=y-b;x.strokeDasharray=e.toFixed(3),x.strokeDashoffset=t>0?`${((y-m)/t*e).toFixed(3)}px`:`${e.toFixed(3)}px`,w.transform="rotate(-90deg)",C["aria-valuenow"]=m,C["aria-valuemin"]=b,C["aria-valuemax"]=y}return(0,ka.jsx)(pl,{className:clsx(S.root,a),style:{width:u,height:u,...w,...d},ownerState:v,ref:t,role:"progressbar",...C,...h,children:(0,ka.jsxs)(ml,{className:S.svg,ownerState:v,viewBox:`${sl/2} ${sl/2} ${sl} ${sl}`,children:[s?(0,ka.jsx)(gl,{className:S.track,ownerState:v,cx:sl,cy:sl,r:(sl-p)/2,fill:"none",strokeWidth:p,"aria-hidden":"true"}):null,(0,ka.jsx)(fl,{className:S.circle,style:x,ownerState:v,cx:sl,cy:sl,r:(sl-p)/2,fill:"none",strokeWidth:p})]})})});function getTypographyUtilityClass(e){return generateUtilityClass("MuiTypography",e)}generateUtilityClasses("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom"]);var useUtilityClasses$44=e=>{const{align:t,gutterBottom:n,noWrap:a,variant:o,classes:i}=e;return composeClasses({root:["root",o,"inherit"!==e.align&&`align${bs(t)}`,n&&"gutterBottom",a&&"noWrap"]},getTypographyUtilityClass,i)},bl=ds("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],"inherit"!==n.align&&t[`align${bs(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom]}})(ys(({theme:e})=>({margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([e,t])=>"inherit"!==e&&t&&"object"==typeof t).map(([e,t])=>({props:{variant:e},style:t})),...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette?.text||{}).filter(([,e])=>"string"==typeof e).map(([t])=>({props:{color:`text${bs(t)}`},style:{color:(e.vars||e).palette.text[t]}})),{props:({ownerState:e})=>"inherit"!==e.align,style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:e})=>e.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:e})=>e.gutterBottom,style:{marginBottom:"0.35em"}}]}))),yl={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},vl=c.forwardRef(function Typography(e,t){const n=useDefaultProps({props:e,name:"MuiTypography"}),{color:a,align:o="inherit",className:i,component:s,gutterBottom:l=!1,noWrap:c=!1,variant:u="body1",variantMapping:d=yl,...p}=n,m={...n,align:o,color:a,className:i,component:s,gutterBottom:l,noWrap:c,variant:u,variantMapping:d};return(0,ka.jsx)(bl,{as:s||d[u]||yl[u]||"span",ref:t,className:clsx(useUtilityClasses$44(m).root,i),...p,ownerState:m,style:{..."inherit"!==o&&{"--Typography-textAlign":o},...p.style}})});function contains$1(e,t){if(!e||!t)return!1;if(e.contains(t))return!0;const n=t.getRootNode?.();if(n&&n instanceof ShadowRoot){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode??n.host??null}}return!1}var Sl="bottom",xl="right",wl="left",Cl="auto",kl=["top",Sl,xl,wl],El="start",_l="clippingParents",Pl="viewport",Tl="popper",Al="reference",Rl=kl.reduce(function(e,t){return e.concat([t+"-"+El,t+"-end"])},[]),Ml=[].concat(kl,[Cl]).reduce(function(e,t){return e.concat([t,t+"-"+El,t+"-end"])},[]),Dl=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function getNodeName(e){return e?(e.nodeName||"").toLowerCase():null}function getWindow$1(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function isElement(e){return e instanceof getWindow$1(e).Element||e instanceof Element}function isHTMLElement$2(e){return e instanceof getWindow$1(e).HTMLElement||e instanceof HTMLElement}function isShadowRoot(e){return"undefined"!=typeof ShadowRoot&&(e instanceof getWindow$1(e).ShadowRoot||e instanceof ShadowRoot)}function applyStyles(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},a=t.attributes[e]||{},o=t.elements[e];isHTMLElement$2(o)&&getNodeName(o)&&(Object.assign(o.style,n),Object.keys(a).forEach(function(e){var t=a[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)}))})}function effect$2(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var a=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});isHTMLElement$2(a)&&getNodeName(a)&&(Object.assign(a.style,i),Object.keys(o).forEach(function(e){a.removeAttribute(e)}))})}}var Ol={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(e){return e.split("-")[0]}var $l=Math.max,Il=Math.min,Nl=Math.round;function getUAString(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var a=e.getBoundingClientRect(),o=1,i=1;t&&isHTMLElement$2(e)&&(o=e.offsetWidth>0&&Nl(a.width)/e.offsetWidth||1,i=e.offsetHeight>0&&Nl(a.height)/e.offsetHeight||1);var s=(isElement(e)?getWindow$1(e):window).visualViewport,l=!isLayoutViewport()&&n,c=(a.left+(l&&s?s.offsetLeft:0))/o,u=(a.top+(l&&s?s.offsetTop:0))/i,d=a.width/o,p=a.height/i;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c,x:c,y:u}}function getLayoutRect(e){var t=getBoundingClientRect(e),n=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:a}}function contains(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&isShadowRoot(n)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function getComputedStyle(e){return getWindow$1(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement$2(e)&&"fixed"!==getComputedStyle(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString());if(/Trident/i.test(getUAString())&&isHTMLElement$2(e)&&"fixed"===getComputedStyle(e).position)return null;var n=getParentNode(e);for(isShadowRoot(n)&&(n=n.host);isHTMLElement$2(n)&&["html","body"].indexOf(getNodeName(n))<0;){var a=getComputedStyle(n);if("none"!==a.transform||"none"!==a.perspective||"paint"===a.contain||-1!==["transform","perspective"].indexOf(a.willChange)||t&&"filter"===a.willChange||t&&a.filter&&"none"!==a.filter)return n;n=n.parentNode}return null}function getOffsetParent(e){for(var t=getWindow$1(e),n=getTrueOffsetParent(e);n&&isTableElement(n)&&"static"===getComputedStyle(n).position;)n=getTrueOffsetParent(n);return n&&("html"===getNodeName(n)||"body"===getNodeName(n)&&"static"===getComputedStyle(n).position)?t:n||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,n){return $l(e,Il(t,n))}function withinMaxClamp(e,t,n){var a=within(e,t,n);return a>n?n:a}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var zl=function toPaddingObject(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,kl))};function arrow(e){var t,n=e.state,a=e.name,o=e.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,l=getBasePlacement(n.placement),c=getMainAxisFromPlacement(l),u=["left","right"].indexOf(l)>=0?"height":"width";if(i&&s){var d=zl(o.padding,n),p=getLayoutRect(i),m="y"===c?"top":wl,g="y"===c?Sl:xl,h=n.rects.reference[u]+n.rects.reference[c]-s[c]-n.rects.popper[u],b=s[c]-n.rects.reference[c],y=getOffsetParent(i),v=y?"y"===c?y.clientHeight||0:y.clientWidth||0:0,S=h/2-b/2,x=d[m],w=v-p[u]-d[g],C=v/2-p[u]/2+S,k=within(x,C,w),E=c;n.modifiersData[a]=((t={})[E]=k,t.centerOffset=k-C,t)}}function effect$1(e){var t=e.state,n=e.options.element,a=void 0===n?"[data-popper-arrow]":n;null!=a&&("string"!=typeof a||(a=t.elements.popper.querySelector(a)))&&contains(t.elements.popper,a)&&(t.elements.arrow=a)}function getVariation(e){return e.split("-")[1]}var Ll={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e,t){var n=e.x,a=e.y,o=t.devicePixelRatio||1;return{x:Nl(n*o)/o||0,y:Nl(a*o)/o||0}}function mapToStyles(e){var t,n=e.popper,a=e.popperRect,o=e.placement,i=e.variation,s=e.offsets,l=e.position,c=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,p=e.isFixed,m=s.x,g=void 0===m?0:m,h=s.y,b=void 0===h?0:h,y="function"==typeof d?d({x:g,y:b}):{x:g,y:b};g=y.x,b=y.y;var v=s.hasOwnProperty("x"),S=s.hasOwnProperty("y"),x=wl,w="top",C=window;if(u){var k=getOffsetParent(n),E="clientHeight",P="clientWidth";if(k===getWindow$1(n)&&"static"!==getComputedStyle(k=getDocumentElement(n)).position&&"absolute"===l&&(E="scrollHeight",P="scrollWidth"),"top"===o||("left"===o||"right"===o)&&"end"===i)w=Sl,b-=(p&&k===C&&C.visualViewport?C.visualViewport.height:k[E])-a.height,b*=c?1:-1;if("left"===o||("top"===o||"bottom"===o)&&"end"===i)x=xl,g-=(p&&k===C&&C.visualViewport?C.visualViewport.width:k[P])-a.width,g*=c?1:-1}var T,R=Object.assign({position:l},u&&Ll),M=!0===d?roundOffsetsByDPR({x:g,y:b},getWindow$1(n)):{x:g,y:b};return g=M.x,b=M.y,c?Object.assign({},R,((T={})[w]=S?"0":"",T[x]=v?"0":"",T.transform=(C.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",T)):Object.assign({},R,((t={})[w]=S?b+"px":"",t[x]=v?g+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,n=e.options,a=n.gpuAcceleration,o=void 0===a||a,i=n.adaptive,s=void 0===i||i,l=n.roundOffsets,c=void 0===l||l,u={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var jl={passive:!0};function effect(e){var t=e.state,n=e.instance,a=e.options,o=a.scroll,i=void 0===o||o,s=a.resize,l=void 0===s||s,c=getWindow$1(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&u.forEach(function(e){e.addEventListener("scroll",n.update,jl)}),l&&c.addEventListener("resize",n.update,jl),function(){i&&u.forEach(function(e){e.removeEventListener("scroll",n.update,jl)}),l&&c.removeEventListener("resize",n.update,jl)}}var Bl={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,function(e){return Bl[e]})}var Fl={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,function(e){return Fl[e]})}function getWindowScroll(e){var t=getWindow$1(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e,t){var n=getWindow$1(e),a=getDocumentElement(e),o=n.visualViewport,i=a.clientWidth,s=a.clientHeight,l=0,c=0;if(o){i=o.width,s=o.height;var u=isLayoutViewport();(u||!u&&"fixed"===t)&&(l=o.offsetLeft,c=o.offsetTop)}return{width:i,height:s,x:l+getWindowScrollBarX(e),y:c}}function getDocumentRect(e){var t,n=getDocumentElement(e),a=getWindowScroll(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=$l(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=$l(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),l=-a.scrollLeft+getWindowScrollBarX(e),c=-a.scrollTop;return"rtl"===getComputedStyle(o||n).direction&&(l+=$l(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:s,x:l,y:c}}function isScrollParent(e){var t=getComputedStyle(e),n=t.overflow,a=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+a)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement$2(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var n;void 0===t&&(t=[]);var a=getScrollParent(e),o=a===(null==(n=e.ownerDocument)?void 0:n.body),i=getWindow$1(a),s=o?[i].concat(i.visualViewport||[],isScrollParent(a)?a:[]):a,l=t.concat(s);return o?l:l.concat(listScrollParents(getParentNode(s)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e,t){var n=getBoundingClientRect(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function getClientRectFromMixedType(e,t,n){return"viewport"===t?rectToClientRect(getViewportRect(e,n)):isElement(t)?getInnerBoundingClientRect(t,n):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),n=["absolute","fixed"].indexOf(getComputedStyle(e).position)>=0&&isHTMLElement$2(e)?getOffsetParent(e):e;return isElement(n)?t.filter(function(e){return isElement(e)&&contains(e,n)&&"body"!==getNodeName(e)}):[]}function getClippingRect(e,t,n,a){var o="clippingParents"===t?getClippingParents(e):[].concat(t),i=[].concat(o,[n]),s=i[0],l=i.reduce(function(t,n){var o=getClientRectFromMixedType(e,n,a);return t.top=$l(o.top,t.top),t.right=Il(o.right,t.right),t.bottom=Il(o.bottom,t.bottom),t.left=$l(o.left,t.left),t},getClientRectFromMixedType(e,s,a));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function computeOffsets(e){var t,n=e.reference,a=e.element,o=e.placement,i=o?getBasePlacement(o):null,s=o?getVariation(o):null,l=n.x+n.width/2-a.width/2,c=n.y+n.height/2-a.height/2;switch(i){case"top":t={x:l,y:n.y-a.height};break;case Sl:t={x:l,y:n.y+n.height};break;case xl:t={x:n.x+n.width,y:c};break;case wl:t={x:n.x-a.width,y:c};break;default:t={x:n.x,y:n.y}}var u=i?getMainAxisFromPlacement(i):null;if(null!=u){var d="y"===u?"height":"width";switch(s){case El:t[u]=t[u]-(n[d]/2-a[d]/2);break;case"end":t[u]=t[u]+(n[d]/2-a[d]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var n=t,a=n.placement,o=void 0===a?e.placement:a,i=n.strategy,s=void 0===i?e.strategy:i,l=n.boundary,c=void 0===l?_l:l,u=n.rootBoundary,d=void 0===u?Pl:u,p=n.elementContext,m=void 0===p?Tl:p,g=n.altBoundary,h=void 0!==g&&g,b=n.padding,y=void 0===b?0:b,v=mergePaddingObject("number"!=typeof y?y:expandToHashMap(y,kl)),S="popper"===m?Al:Tl,x=e.rects.popper,w=e.elements[h?S:m],C=getClippingRect(isElement(w)?w:w.contextElement||getDocumentElement(e.elements.popper),c,d,s),k=getBoundingClientRect(e.elements.reference),E=computeOffsets({reference:k,element:x,strategy:"absolute",placement:o}),P=rectToClientRect(Object.assign({},x,E)),T="popper"===m?P:k,R={top:C.top-T.top+v.top,bottom:T.bottom-C.bottom+v.bottom,left:C.left-T.left+v.left,right:T.right-C.right+v.right},M=e.modifiersData.offset;if("popper"===m&&M){var D=M[o];Object.keys(R).forEach(function(e){var t=["right","bottom"].indexOf(e)>=0?1:-1,n=["top","bottom"].indexOf(e)>=0?"y":"x";R[e]+=D[n]*t})}return R}function computeAutoPlacement(e,t){void 0===t&&(t={});var n=t,a=n.placement,o=n.boundary,i=n.rootBoundary,s=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?Ml:c,d=getVariation(a),p=d?l?Rl:Rl.filter(function(e){return getVariation(e)===d}):kl,m=p.filter(function(e){return u.indexOf(e)>=0});0===m.length&&(m=p);var g=m.reduce(function(t,n){return t[n]=detectOverflow(e,{placement:n,boundary:o,rootBoundary:i,padding:s})[getBasePlacement(n)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}function getExpandedFallbackPlacements(e){if("auto"===getBasePlacement(e))return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var o=n.mainAxis,i=void 0===o||o,s=n.altAxis,l=void 0===s||s,c=n.fallbackPlacements,u=n.padding,d=n.boundary,p=n.rootBoundary,m=n.altBoundary,g=n.flipVariations,h=void 0===g||g,b=n.allowedAutoPlacements,y=t.options.placement,v=getBasePlacement(y)===y,S=c||(v||!h?[getOppositePlacement(y)]:getExpandedFallbackPlacements(y)),x=[y].concat(S).reduce(function(e,n){return e.concat("auto"===getBasePlacement(n)?computeAutoPlacement(t,{placement:n,boundary:d,rootBoundary:p,padding:u,flipVariations:h,allowedAutoPlacements:b}):n)},[]),w=t.rects.reference,C=t.rects.popper,k=new Map,E=!0,P=x[0],T=0;T<x.length;T++){var R=x[T],M=getBasePlacement(R),D=getVariation(R)===El,O=["top",Sl].indexOf(M)>=0,$=O?"width":"height",I=detectOverflow(t,{placement:R,boundary:d,rootBoundary:p,altBoundary:m,padding:u}),N=O?D?xl:wl:D?Sl:"top";w[$]>C[$]&&(N=getOppositePlacement(N));var L=getOppositePlacement(N),j=[];if(i&&j.push(I[M]<=0),l&&j.push(I[N]<=0,I[L]<=0),j.every(function(e){return e})){P=R,E=!1;break}k.set(R,j)}if(E)for(var B=function _loop(e){var t=x.find(function(t){var n=k.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return P=t,"break"},F=h?3:1;F>0&&"break"!==B(F);F--);t.placement!==P&&(t.modifiersData[a]._skip=!0,t.placement=P,t.reset=!0)}}function getSideOffsets(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function isAnySideFullyClipped(e){return["top",xl,Sl,wl].some(function(t){return e[t]>=0})}function hide(e){var t=e.state,n=e.name,a=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,s=detectOverflow(t,{elementContext:"reference"}),l=detectOverflow(t,{altBoundary:!0}),c=getSideOffsets(s,a),u=getSideOffsets(l,o,i),d=isAnySideFullyClipped(c),p=isAnySideFullyClipped(u);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":p})}function distanceAndSkiddingToXY(e,t,n){var a=getBasePlacement(e),o=["left","top"].indexOf(a)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,s=i[0],l=i[1];return s=s||0,l=(l||0)*o,["left","right"].indexOf(a)>=0?{x:l,y:s}:{x:s,y:l}}function offset(e){var t=e.state,n=e.options,a=e.name,o=n.offset,i=void 0===o?[0,0]:o,s=Ml.reduce(function(e,n){return e[n]=distanceAndSkiddingToXY(n,t.rects,i),e},{}),l=s[t.placement],c=l.x,u=l.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=u),t.modifiersData[a]=s}function popperOffsets(e){var t=e.state,n=e.name;t.modifiersData[n]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,n=e.options,a=e.name,o=n.mainAxis,i=void 0===o||o,s=n.altAxis,l=void 0!==s&&s,c=n.boundary,u=n.rootBoundary,d=n.altBoundary,p=n.padding,m=n.tether,g=void 0===m||m,h=n.tetherOffset,b=void 0===h?0:h,y=detectOverflow(t,{boundary:c,rootBoundary:u,padding:p,altBoundary:d}),v=getBasePlacement(t.placement),S=getVariation(t.placement),x=!S,w=getMainAxisFromPlacement(v),C=getAltAxis(w),k=t.modifiersData.popperOffsets,E=t.rects.reference,P=t.rects.popper,T="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),M=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,D={x:0,y:0};if(k){if(i){var O,$="y"===w?"top":wl,I="y"===w?Sl:xl,N="y"===w?"height":"width",L=k[w],j=L+y[$],B=L-y[I],F=g?-P[N]/2:0,q="start"===S?E[N]:P[N],U="start"===S?-P[N]:-E[N],V=t.elements.arrow,H=g&&V?getLayoutRect(V):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),G=W[$],Y=W[I],K=within(0,E[N],H[N]),Q=x?E[N]/2-F-K-G-R.mainAxis:q-K-G-R.mainAxis,Z=x?-E[N]/2+F+K+Y+R.mainAxis:U+K+Y+R.mainAxis,X=t.elements.arrow&&getOffsetParent(t.elements.arrow),J=X?"y"===w?X.clientTop||0:X.clientLeft||0:0,ee=null!=(O=null==M?void 0:M[w])?O:0,te=L+Z-ee,re=within(g?Il(j,L+Q-ee-J):j,L,g?$l(B,te):B);k[w]=re,D[w]=re-L}if(l){var ne,ae="x"===w?"top":wl,oe="x"===w?Sl:xl,ie=k[C],se="y"===C?"height":"width",le=ie+y[ae],ce=ie-y[oe],ue=-1!==["top",wl].indexOf(v),de=null!=(ne=null==M?void 0:M[C])?ne:0,pe=ue?le:ie-E[se]-P[se]-de+R.altAxis,me=ue?ie+E[se]+P[se]-de-R.altAxis:ce,fe=g&&ue?withinMaxClamp(pe,ie,me):within(g?pe:le,ie,g?me:ce);k[C]=fe,D[C]=fe-ie}t.modifiersData[a]=D}}function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow$1(e)&&isHTMLElement$2(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),n=Nl(t.width)/e.offsetWidth||1,a=Nl(t.height)/e.offsetHeight||1;return 1!==n||1!==a}function getCompositeRect(e,t,n){void 0===n&&(n=!1);var a=isHTMLElement$2(t),o=isHTMLElement$2(t)&&isElementScaled(t),i=getDocumentElement(t),s=getBoundingClientRect(e,o,n),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==getNodeName(t)||isScrollParent(i))&&(l=getNodeScroll(t)),isHTMLElement$2(t)?((c=getBoundingClientRect(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):i&&(c.x=getWindowScrollBarX(i))),{x:s.left+l.scrollLeft-c.x,y:s.top+l.scrollTop-c.y,width:s.width,height:s.height}}function order(e){var t=new Map,n=new Set,a=[];function sort(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var a=t.get(e);a&&sort(a)}}),a.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||sort(e)}),a}function orderModifiers(e){var t=order(e);return Dl.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function debounce(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function mergeByName(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var ql={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&"function"==typeof e.getBoundingClientRect)})}function popperGenerator(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,a=void 0===n?[]:n,o=t.defaultOptions,i=void 0===o?ql:o;return function createPopper(e,t,n){void 0===n&&(n=i);var o={placement:"bottom",orderedModifiers:[],options:Object.assign({},ql,i),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},s=[],l=!1,c={state:o,setOptions:function setOptions(n){var s="function"==typeof n?n(o.options):n;cleanupModifierEffects(),o.options=Object.assign({},i,o.options,s),o.scrollParents={reference:isElement(e)?listScrollParents(e):e.contextElement?listScrollParents(e.contextElement):[],popper:listScrollParents(t)};var l=orderModifiers(mergeByName([].concat(a,o.options.modifiers)));return o.orderedModifiers=l.filter(function(e){return e.enabled}),runModifierEffects(),c.update()},forceUpdate:function forceUpdate(){if(!l){var e=o.elements,t=e.reference,n=e.popper;if(areValidElements(t,n)){o.rects={reference:getCompositeRect(t,getOffsetParent(n),"fixed"===o.options.strategy),popper:getLayoutRect(n)},o.reset=!1,o.placement=o.options.placement,o.orderedModifiers.forEach(function(e){return o.modifiersData[e.name]=Object.assign({},e.data)});for(var a=0;a<o.orderedModifiers.length;a++)if(!0!==o.reset){var i=o.orderedModifiers[a],s=i.fn,u=i.options,d=void 0===u?{}:u,p=i.name;"function"==typeof s&&(o=s({state:o,options:d,name:p,instance:c})||o)}else o.reset=!1,a=-1}}},update:debounce(function(){return new Promise(function(e){c.forceUpdate(),e(o)})}),destroy:function destroy(){cleanupModifierEffects(),l=!0}};if(!areValidElements(e,t))return c;function runModifierEffects(){o.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,a=void 0===n?{}:n,i=e.effect;if("function"==typeof i){var l=i({state:o,name:t,instance:c,options:a});s.push(l||function noopFn(){})}})}function cleanupModifierEffects(){s.forEach(function(e){return e()}),s=[]}return c.setOptions(n).then(function(e){!l&&n.onFirstUpdate&&n.onFirstUpdate(e)}),c}}var Ul=popperGenerator({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function fn(){},effect,data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},Ol,{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset},{name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide}]});function useSlotProps(e){const{elementType:t,externalSlotProps:n,ownerState:a,skipResolvingSlotProps:o=!1,...i}=e,s=o?{}:resolveComponentProps(n,a),{props:l,internalRef:c}=mergeSlotProps({...i,externalSlotProps:s});return appendOwnerState(t,{...l,ref:useForkRef(c,s?.ref,e.additionalProps?.ref)},a)}function getReactElementRef(e){return parseInt(c.version,10)>=19?e?.props?.ref||null:e?.ref||null}function getContainer$1(e){return"function"==typeof e?e():e}var Vl=c.forwardRef(function Portal(e,t){const{children:n,container:a,disablePortal:o=!1}=e,[i,s]=c.useState(null),l=useForkRef(c.isValidElement(n)?getReactElementRef(n):null,t);if(Li(()=>{o||s(getContainer$1(a)||document.body)},[a,o]),Li(()=>{if(i&&!o)return setRef(t,i),()=>{setRef(t,null)}},[t,i,o]),o){if(c.isValidElement(n)){const e={ref:l};return c.cloneElement(n,e)}return n}return i?u.createPortal(n,i):i});function getPopperUtilityClass(e){return generateUtilityClass("MuiPopper",e)}generateUtilityClasses("MuiPopper",["root"]);function flipPlacement(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function resolveAnchorEl$1(e){return"function"==typeof e?e():e}function isHTMLElement$1(e){return void 0!==e.nodeType}var useUtilityClasses$43=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getPopperUtilityClass,t)},Hl={},Wl=c.forwardRef(function PopperTooltip(e,t){const{anchorEl:n,children:a,direction:o,disablePortal:i,modifiers:s,open:l,placement:u,popperOptions:d,popperRef:p,slotProps:m={},slots:g={},TransitionProps:h,ownerState:b,...y}=e,v=c.useRef(null),S=useForkRef(v,t),x=c.useRef(null),w=useForkRef(x,p),C=c.useRef(w);Li(()=>{C.current=w},[w]),c.useImperativeHandle(p,()=>x.current,[]);const k=flipPlacement(u,o),[E,P]=c.useState(k),[T,R]=c.useState(resolveAnchorEl$1(n));c.useEffect(()=>{x.current&&x.current.forceUpdate()}),c.useEffect(()=>{n&&R(resolveAnchorEl$1(n))},[n]),Li(()=>{if(!T||!l)return;const handlePopperUpdate=e=>{P(e.placement)};let e=[{name:"preventOverflow",options:{altBoundary:i}},{name:"flip",options:{altBoundary:i}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:e})=>{handlePopperUpdate(e)}}];null!=s&&(e=e.concat(s)),d&&null!=d.modifiers&&(e=e.concat(d.modifiers));const t=Ul(T,v.current,{placement:k,...d,modifiers:e});C.current(t);const n=v.current;return()=>{if(n){const{style:e}=n,a=e.position,o=e.top,i=e.left,s=e.transform;t.destroy(),e.position=a,e.top=o,e.left=i,e.transform=s}else t.destroy();C.current(null)}},[T,i,s,l,d,k]);const M={placement:E};null!==h&&(M.TransitionProps=h);const D=useUtilityClasses$43(e),O=g.root??"div";return(0,ka.jsx)(O,{...useSlotProps({elementType:O,externalSlotProps:m.root,externalForwardedProps:y,additionalProps:{role:"tooltip",ref:S},ownerState:e,className:D.root}),children:"function"==typeof a?a(M):a})}),Gl=c.forwardRef(function Popper(e,t){const{anchorEl:n,children:a,container:o,direction:i="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:u,open:d,placement:p="bottom",popperOptions:m=Hl,popperRef:g,style:h,transition:b=!1,slotProps:y={},slots:v={},...S}=e,[x,w]=c.useState(!0),handleEnter=()=>{w(!1)},handleExited=()=>{w(!0)};if(!l&&!d&&(!b||x))return null;let C;if(o)C=o;else if(n){const e=resolveAnchorEl$1(n);C=e&&isHTMLElement$1(e)?ownerDocument(e).body:ownerDocument(null).body}const k=d||!l||b&&!x?void 0:"none",E=b?{in:d,onEnter:handleEnter,onExited:handleExited}:void 0;return(0,ka.jsx)(Vl,{disablePortal:s,container:C,children:(0,ka.jsx)(Wl,{anchorEl:n,direction:i,disablePortal:s,modifiers:u,ref:t,open:b?!x:d,placement:p,popperOptions:m,popperRef:g,slotProps:y,slots:v,...S,style:{position:"fixed",top:0,left:0,display:k,...h},TransitionProps:E,children:a})})}),Yl=ds(Gl,{name:"MuiPopper",slot:"Root"})({}),Kl=c.forwardRef(function Popper(e,t){const n=useRtl(),{anchorEl:a,component:o,container:i,disablePortal:s,keepMounted:l,modifiers:c,open:u,placement:d,popperOptions:p,popperRef:m,transition:g,slots:h,slotProps:b,...y}=useDefaultProps({props:e,name:"MuiPopper"}),v={anchorEl:a,container:i,disablePortal:s,keepMounted:l,modifiers:c,open:u,placement:d,popperOptions:p,popperRef:m,transition:g,...y};return(0,ka.jsx)(Yl,{as:o,direction:n?"rtl":"ltr",slots:h,slotProps:b,...v,ref:t})}),Ql=createSvgIcon((0,ka.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function getChipUtilityClass(e){return generateUtilityClass("MuiChip",e)}var Zl=generateUtilityClasses("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","deletable","outlined","filled","avatar","icon","label","deleteIcon","focusVisible"]),useUtilityClasses$42=e=>{const{classes:t,disabled:n,size:a,color:o,onDelete:i,clickable:s,variant:l}=e;return composeClasses({root:["root",l,n&&"disabled",`size${bs(a)}`,`color${bs(o)}`,s&&"clickable",i&&"deletable"],label:["label"],avatar:["avatar"],icon:["icon"],deleteIcon:["deleteIcon"]},getChipUtilityClass,t)},Xl=ds("div",{name:"MuiChip",slot:"Root",shouldForwardProp:e=>rootShouldForwardProp(e)&&"focusableWhenDisabled"!==e&&"skipFocusWhenDisabled"!==e,overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:a,clickable:o,onDelete:i,size:s,variant:l}=n;return[{[`& .${Zl.avatar}`]:t.avatar},{[`& .${Zl.icon}`]:t.icon},{[`& .${Zl.deleteIcon}`]:t.deleteIcon},t.root,t[`size${bs(s)}`],t[`color${bs(a)}`],o&&t.clickable,i&&t.deletable,t[l]]}})(ys(({theme:e})=>{const t="light"===e.palette.mode?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,lineHeight:1.5,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${Zl.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${Zl.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${Zl.icon}`]:{marginLeft:5,marginRight:-6},[`& .${Zl.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:e.alpha((e.vars||e).palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.alpha((e.vars||e).palette.text.primary,.4)}},variants:[{props:{color:"primary"},style:{[`& .${Zl.avatar}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark}}},{props:{color:"secondary"},style:{[`& .${Zl.avatar}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark}}},{props:{size:"small"},style:{height:24,[`& .${Zl.avatar}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${Zl.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${Zl.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["contrastText"])).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main,color:(e.vars||e).palette[t].contrastText,[`& .${Zl.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].contrastText}}}})),{props:e=>e.iconColor===e.color,style:{[`& .${Zl.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:e=>e.iconColor===e.color&&"default"!==e.color,style:{[`& .${Zl.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${Zl.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["dark"])).map(([t])=>({props:{color:t,onDelete:!0},style:{[`&.${Zl.focusVisible}`]:{background:(e.vars||e).palette[t].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)},[`&.${Zl.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["dark"])).map(([t])=>({props:{color:t,clickable:!0},style:{[`&:hover, &.${Zl.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===e.palette.mode?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${Zl.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Zl.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${Zl.avatar}`]:{marginLeft:4},[`& .${Zl.icon}`]:{marginLeft:4},[`& .${Zl.deleteIcon}`]:{marginRight:5}}},{props:{size:"small",variant:"outlined"},style:{[`& .${Zl.avatar}`]:{marginLeft:2},[`& .${Zl.icon}`]:{marginLeft:2},[`& .${Zl.deleteIcon}`]:{marginRight:3}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{variant:"outlined",color:t},style:{color:(e.vars||e).palette[t].main,border:`1px solid ${e.alpha((e.vars||e).palette[t].main,.7)}`,[`&.${Zl.clickable}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)},[`&.${Zl.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.focusOpacity)},[`& .${Zl.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].main}}}}))]}})),Jl=ds("span",{name:"MuiChip",slot:"Label"})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function isDeleteKeyboardEvent(e){return"Backspace"===e.key||"Delete"===e.key}var ec=c.forwardRef(function Chip(e,t){const n=useDefaultProps({props:e,name:"MuiChip"}),{avatar:a,className:o,clickable:i,color:s="default",component:l,deleteIcon:u,disabled:d=!1,icon:p,label:m,onClick:g,onDelete:h,onKeyDown:b,onKeyUp:y,size:v="medium",variant:S="filled",tabIndex:x,skipFocusWhenDisabled:w=!1,slots:C={},slotProps:k={},...E}=n,{nativeButton:P,...T}=E,R=Rs(c.useRef(null),t),handleDeleteIconClick=e=>{e.stopPropagation(),h(e)},handleKeyDown=e=>{e.currentTarget===e.target&&isDeleteKeyboardEvent(e)&&e.preventDefault(),b&&b(e)},handleKeyUp=e=>{e.currentTarget===e.target&&h&&isDeleteKeyboardEvent(e)&&h(e),y&&y(e)},M=!(!1===i||!g)||i,D=M||h?il:l||"div",O={...n,component:D,disabled:d,size:v,color:s,iconColor:c.isValidElement(p)&&p.props.color||s,onDelete:!!h,clickable:M,variant:S},$=useUtilityClasses$42(O),I=D===il?{component:l||"div",internalNativeButton:!1,focusVisibleClassName:$.focusVisible,...h&&{disableRipple:!0},...void 0!==P&&{nativeButton:P}}:{};let N=null;h&&(N=u&&c.isValidElement(u)?c.cloneElement(u,{className:clsx(u.props.className,$.deleteIcon),onClick:handleDeleteIconClick}):(0,ka.jsx)(Ql,{className:$.deleteIcon,onClick:handleDeleteIconClick}));let L=null;a&&c.isValidElement(a)&&(L=c.cloneElement(a,{className:clsx($.avatar,a.props.className)}));let j=null;p&&c.isValidElement(p)&&(j=c.cloneElement(p,{className:clsx($.icon,p.props.className)}));const B={slots:C,slotProps:k},[F,q]=useSlot("root",{elementType:Xl,externalForwardedProps:{...B,...T},ownerState:O,shouldForwardComponentProp:!0,ref:R,className:clsx($.root,o),additionalProps:{disabled:!(!M||!d)||void 0,tabIndex:w&&d?-1:x,...I},getSlotProps:e=>({...e,onClick:t=>{e.onClick?.(t),g?.(t)},onKeyDown:t=>{e.onKeyDown?.(t),handleKeyDown(t)},onKeyUp:t=>{e.onKeyUp?.(t),handleKeyUp(t)}})}),[U,V]=useSlot("label",{elementType:Jl,externalForwardedProps:B,ownerState:O,className:$.label});return(0,ka.jsxs)(F,{as:D,...q,children:[L||j,(0,ka.jsx)(U,{...V,children:m}),N]})});function getStyleValue(e){return parseInt(e,10)||0}var tc={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isObjectEmpty(e){for(const t in e)return!1;return!0}function isEmpty$1(e){return isObjectEmpty(e)||0===e.outerHeightStyle&&!e.overflowing}var rc=c.forwardRef(function TextareaAutosize(e,t){const{onChange:n,maxRows:a,minRows:o=1,style:i,value:s,...l}=e,{current:u}=c.useRef(null!=s),d=c.useRef(null),p=useForkRef(t,d),m=c.useRef(null),g=c.useRef(null),h=c.useCallback(()=>{const t=d.current,n=g.current;if(!t||!n)return;const i=ownerWindow(t).getComputedStyle(t);if("0px"===i.width)return{outerHeightStyle:0,overflowing:!1};n.style.width=i.width,n.value=t.value||e.placeholder||"x","\n"===n.value.slice(-1)&&(n.value+=" ");const s=i.boxSizing,l=getStyleValue(i.paddingBottom)+getStyleValue(i.paddingTop),c=getStyleValue(i.borderBottomWidth)+getStyleValue(i.borderTopWidth),u=n.scrollHeight;n.value="x";const p=n.scrollHeight;let m=u;return o&&(m=Math.max(Number(o)*p,m)),a&&(m=Math.min(Number(a)*p,m)),m=Math.max(m,p),{outerHeightStyle:m+("border-box"===s?l+c:0),overflowing:Math.abs(m-u)<=1}},[a,o,e.placeholder]),b=useEventCallback(()=>{const e=d.current,t=h();if(!e||!t||isEmpty$1(t))return!1;const n=t.outerHeightStyle;return null!=m.current&&m.current!==n}),y=c.useCallback(()=>{const e=d.current,t=h();if(!e||!t||isEmpty$1(t))return;const n=t.outerHeightStyle;m.current!==n&&(m.current=n,e.style.height=`${n}px`),e.style.overflow=t.overflowing?"hidden":""},[h]),v=c.useRef(-1);Li(()=>{const e=debounce$1(y),t=d?.current;if(!t)return;const n=ownerWindow(t);let a;return n.addEventListener("resize",e),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(()=>{b()&&(a.unobserve(t),cancelAnimationFrame(v.current),y(),v.current=requestAnimationFrame(()=>{a.observe(t)}))}),a.observe(t)),()=>{e.clear(),cancelAnimationFrame(v.current),n.removeEventListener("resize",e),a&&a.disconnect()}},[h,y,b]),Li(()=>{y()});const handleChange=e=>{u||y();const t=e.target,a=t.value.length,o=t.value.endsWith("\n"),i=t.selectionStart===a;o&&i&&t.setSelectionRange(a,a),n&&n(e)};return(0,ka.jsxs)(c.Fragment,{children:[(0,ka.jsx)("textarea",{value:s,onChange:handleChange,ref:p,rows:o,style:i,...l}),(0,ka.jsx)("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:g,tabIndex:-1,style:{...tc.shadow,...i,paddingTop:0,paddingBottom:0}})]})}),nc=c.createContext(void 0);function useFormControl(){return c.useContext(nc)}function useFormControlState({props:e,states:t}){const n=c.useContext(nc),a={};return t.forEach(t=>{const o=e[t];a[t]=void 0===o&&n?n[t]:o}),[a,n]}function hasValue(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function isFilled(e,t=!1){return e&&(hasValue(e.value)&&""!==e.value||t&&hasValue(e.defaultValue)&&""!==e.defaultValue)}function isAdornedStart(e){return e.startAdornment}function getInputBaseUtilityClass(e){return generateUtilityClass("MuiInputBase",e)}var ac,oc=generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputTypeSearch"]),ic="mui-auto-fill",sc="mui-auto-fill-cancel",rootOverridesResolver=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,"small"===n.size&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${bs(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},inputOverridesResolver=(e,t)=>{const{ownerState:n}=e;return[t.input,"search"===n.type&&t.inputTypeSearch]},useUtilityClasses$41=e=>{const{classes:t,color:n,disabled:a,error:o,endAdornment:i,focused:s,formControl:l,fullWidth:c,hiddenLabel:u,multiline:d,readOnly:p,size:m,startAdornment:g,type:h}=e;return composeClasses({root:["root",`color${bs(n)}`,a&&"disabled",o&&"error",c&&"fullWidth",s&&"focused",l&&"formControl",m&&"medium"!==m&&`size${bs(m)}`,d&&"multiline",g&&"adornedStart",i&&"adornedEnd",u&&"hiddenLabel",p&&"readOnly"],input:["input",a&&"disabled","search"===h&&"inputTypeSearch",p&&"readOnly"]},getInputBaseUtilityClass,t)},lc=ds("div",{name:"MuiInputBase",slot:"Root",overridesResolver:rootOverridesResolver})(ys(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${oc.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:e})=>e.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:e,size:t})=>e.multiline&&"small"===t,style:{paddingTop:1}},{props:({ownerState:e})=>e.fullWidth,style:{width:"100%"}}]}))),cc=ds("input",{name:"MuiInputBase",slot:"Input",overridesResolver:inputOverridesResolver})(ys(({theme:e})=>{const t="light"===e.palette.mode,n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},a={opacity:"0 !important"},o=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${oc.formControl} &`]:{"&::-webkit-input-placeholder":a,"&::-moz-placeholder":a,"&::-ms-input-placeholder":a,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus::-ms-input-placeholder":o},[`&.${oc.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:e})=>!e.disableInjectingGlobalStyles,style:{animationName:sc,animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:ic}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:e})=>e.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),uc=globalCss({[`@keyframes ${ic}`]:{from:{animationName:ic}},[`@keyframes ${sc}`]:{from:{animationName:sc}}}),dc=c.forwardRef(function InputBase(e,t){const n=useDefaultProps({props:e,name:"MuiInputBase"}),{"aria-describedby":a,"aria-label":o,autoComplete:i,autoFocus:s,className:l,color:u,defaultValue:d,disabled:p,disableInjectingGlobalStyles:m,endAdornment:g,error:h,fullWidth:b=!1,id:y,inputComponent:v="input",inputProps:S={},inputRef:x,margin:w,maxRows:C,minRows:k,multiline:E=!1,name:P,onBlur:T,onChange:R,onClick:M,onFocus:D,onKeyDown:O,onKeyUp:$,placeholder:I,readOnly:N,renderSuffix:L,rows:j,size:B,slotProps:F={},slots:q={},startAdornment:U,type:V="text",value:H,...W}=n,G=null!=S.value?S.value:H,{current:Y}=c.useRef(null!=G),K=c.useRef(),Q=c.useCallback(e=>{},[]),Z=Rs(K,x,S.ref,Q),[X,J]=c.useState(!1),[ee,te]=useFormControlState({props:n,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ee.focused=te?te.focused:X,c.useEffect(()=>{!te&&p&&X&&(J(!1),T&&T())},[te,p,X,T]);const re=te&&te.onFilled,ne=te&&te.onEmpty,ae=c.useCallback(e=>{isFilled(e)?re&&re():ne&&ne()},[re,ne]);_s(()=>{Y&&ae({value:G})},[G,ae,Y]),_s(()=>{if(!s)return;const e=K.current;if(!e)return;const t=ks(e),n=Cs(t),a=null==n||n===t.body||n===t.documentElement;e===n?te&&te.onFocus?te.onFocus():J(!0):a&&e.focus()},[s]);const handleFocus=e=>{D&&D(e),S.onFocus&&S.onFocus(e),te&&te.onFocus?te.onFocus(e):J(!0)},handleBlur=e=>{T&&T(e),S.onBlur&&S.onBlur(e),te&&te.onBlur?te.onBlur(e):J(!1)},handleChange=(e,...t)=>{if(!Y){const t=e.target||K.current;if(null==t)throw new Error(formatMuiErrorMessage(1));ae({value:t.value})}S.onChange&&S.onChange(e,...t),R&&R(e,...t)};c.useEffect(()=>{ae(K.current)},[]);const handleClick=e=>{K.current&&e.currentTarget===e.target&&K.current.focus(),M&&M(e)};let oe=v,ie=S;E&&"input"===oe&&(ie=j?{type:void 0,minRows:j,maxRows:j,...ie}:{type:void 0,maxRows:C,minRows:k,...ie},oe=rc);const handleAutoFill=e=>{ae(e.animationName===sc?K.current:{value:"x"})};c.useEffect(()=>{te&&te.setAdornedStart(Boolean(U))},[te,U]);const se={...n,color:ee.color||"primary",disabled:ee.disabled,endAdornment:g,error:ee.error,focused:ee.focused,formControl:te,fullWidth:b,hiddenLabel:ee.hiddenLabel,multiline:E,size:ee.size,startAdornment:U,type:V},le=useUtilityClasses$41(se),ce=q.root||lc,ue=F.root||{},de=q.input||cc;return ie={...ie,...F.input},(0,ka.jsxs)(c.Fragment,{children:[!m&&"function"==typeof uc&&(ac||(ac=(0,ka.jsx)(uc,{}))),(0,ka.jsxs)(ce,{...ue,ref:t,onClick:handleClick,...W,...!isHostComponent(ce)&&{ownerState:{...se,...ue.ownerState}},className:clsx(le.root,ue.className,l,N&&"MuiInputBase-readOnly"),children:[U,(0,ka.jsx)(nc.Provider,{value:null,children:(0,ka.jsx)(de,{"aria-invalid":ee.error,"aria-describedby":a,"aria-label":o,autoComplete:i,autoFocus:s,defaultValue:d,disabled:ee.disabled,id:y,onAnimationStart:handleAutoFill,name:P,placeholder:I,readOnly:N,required:ee.required,rows:j,value:G,onKeyDown:O,onKeyUp:$,type:V,...ie,...!isHostComponent(de)&&{as:oe,ownerState:{...se,...ie.ownerState}},ref:Z,className:clsx(le.input,ie.className,N&&"MuiInputBase-readOnly"),onBlur:handleBlur,onChange:handleChange,onFocus:handleFocus})}),g,L?L({...ee,startAdornment:U}):null]})]})});function getInputUtilityClass(e){return generateUtilityClass("MuiInput",e)}var pc={...oc,...generateUtilityClasses("MuiInput",["root","underline","input"])};function getOutlinedInputUtilityClass(e){return generateUtilityClass("MuiOutlinedInput",e)}var mc={...oc,...generateUtilityClasses("MuiOutlinedInput",["root","notchedOutline","input"])};function getFilledInputUtilityClass(e){return generateUtilityClass("MuiFilledInput",e)}var fc={...oc,...generateUtilityClasses("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},gc=createSvgIcon((0,ka.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),hc={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0}},bc={opacity:0,visibility:"hidden"},yc=c.forwardRef(function Fade(e,t){const n=useTheme(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:o,appear:i=!0,children:s,easing:l,in:u,onEnter:d,onEntered:p,onEntering:m,onExit:g,onExited:h,onExiting:b,style:y,timeout:v=a,...S}=e,x=c.useRef(null),w=Rs(x,getReactElementRef(s),t),C=normalizedTransitionCallback(x,m),k=normalizedTransitionCallback(x,(e,t)=>{reflow(e);const a=getTransitionProps({style:y,timeout:v,easing:l},{mode:"enter"});e.style.transition=n.transitions.create("opacity",a),d&&d(e,t)}),E=normalizedTransitionCallback(x,p),P=normalizedTransitionCallback(x,b),T=normalizedTransitionCallback(x,e=>{const t=getTransitionProps({style:y,timeout:v,easing:l},{mode:"exit"});e.style.transition=n.transitions.create("opacity",t),g&&g(e)}),R=normalizedTransitionCallback(x,e=>{e.style.transition="",h&&h(e)}),handleAddEndListener=e=>{o&&o(x.current,e)};return(0,ka.jsx)(js,{appear:i,in:u,nodeRef:x,onEnter:k,onEntered:E,onEntering:C,onExit:T,onExited:R,onExiting:P,addEndListener:handleAddEndListener,timeout:v,...S,children:(e,{ownerState:t,...n})=>{const a=getTransitionChildStyle(e,u,hc,bc,y,s.props.style);return c.cloneElement(s,{style:a,ref:w,...n})}})});function getBackdropUtilityClass(e){return generateUtilityClass("MuiBackdrop",e)}generateUtilityClasses("MuiBackdrop",["root","invisible"]);var useUtilityClasses$40=e=>{const{classes:t,invisible:n}=e;return composeClasses({root:["root",n&&"invisible"]},getBackdropUtilityClass,t)},vc=ds("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),Sc=c.forwardRef(function Backdrop(e,t){const n=useDefaultProps({props:e,name:"MuiBackdrop"}),{children:a,className:o,component:i="div",invisible:s=!1,open:l,slotProps:c={},slots:u={},transitionDuration:d,...p}=n,m={...n,component:i,invisible:s},g=useUtilityClasses$40(m),h={component:i,slots:u,slotProps:c},[b,y]=useSlot("root",{elementType:vc,externalForwardedProps:h,className:clsx(g.root,o),ownerState:m}),[v,S]=useSlot("transition",{elementType:yc,externalForwardedProps:h,ownerState:m});return(0,ka.jsx)(v,{in:l,timeout:d,...p,...S,children:(0,ka.jsx)(b,{...y,ref:t,children:a})})}),xc=generateUtilityClasses("MuiBox",["root"]),wc=createBox({themeId:Oa,defaultTheme:createTheme(),defaultClassName:xc.root,generateClassName:Ii.generate});function getButtonUtilityClass(e){return generateUtilityClass("MuiButton",e)}var Cc=generateUtilityClasses("MuiButton",["root","text","outlined","contained","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","loading","loadingWrapper","loadingIconPlaceholder","loadingIndicator","loadingPositionCenter","loadingPositionStart","loadingPositionEnd"]),kc=c.createContext({}),Ec=c.createContext(void 0),useUtilityClasses$39=e=>{const{color:t,disableElevation:n,fullWidth:a,size:o,variant:i,loading:s,loadingPosition:l,classes:c}=e,u=composeClasses({root:["root",s&&"loading",i,`size${bs(o)}`,`color${bs(t)}`,n&&"disableElevation",a&&"fullWidth",s&&`loadingPosition${bs(l)}`],startIcon:["icon","startIcon"],endIcon:["icon","endIcon"],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]},getButtonUtilityClass,c);return{...c,...u}},_c=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],Pc=ds(il,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${bs(n.size)}`],"inherit"===n.color&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,n.loading&&t.loading]}})(ys(({theme:e})=>{const t="light"===e.palette.mode?e.palette.grey[300]:e.palette.grey[800],n="light"===e.palette.mode?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Cc.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:e})=>e.startIcon||e.loading&&"start"===e.loadingPosition,style:{"&::before":{content:'"\\200b"',width:0,overflow:"hidden"}}},{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${Cc.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${Cc.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Cc.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{"--variant-textColor":(e.vars||e).palette[t].main,"--variant-outlinedColor":(e.vars||e).palette[t].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[t].main,.5),"--variant-containedColor":(e.vars||e).palette[t].contrastText,"--variant-containedBg":(e.vars||e).palette[t].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[t].dark,"--variant-textBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[t].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Cc.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Cc.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{loadingPosition:"center"},style:{transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),[`&.${Cc.loading}`]:{color:"transparent"}}}]}})),Tc=ds("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,n.loading&&t.startIconLoadingStart]}})(({theme:e})=>({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},{props:{loadingPosition:"start",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"start",loading:!0,fullWidth:!0},style:{marginRight:-8}},..._c]})),Ac=ds("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,n.loading&&t.endIconLoadingEnd]}})(({theme:e})=>({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},{props:{loadingPosition:"end",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"end",loading:!0,fullWidth:!0},style:{marginLeft:-8}},..._c]})),Rc=ds("span",{name:"MuiButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",variants:[{props:{loading:!0},style:{display:"flex"}},{props:{loadingPosition:"start"},style:{left:14}},{props:{loadingPosition:"start",size:"small"},style:{left:10}},{props:{variant:"text",loadingPosition:"start"},style:{left:6}},{props:{loadingPosition:"center"},style:{left:"50%",transform:"translate(-50%)",color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:"end"},style:{right:14}},{props:{loadingPosition:"end",size:"small"},style:{right:10}},{props:{variant:"text",loadingPosition:"end"},style:{right:6}},{props:{loadingPosition:"start",fullWidth:!0},style:{position:"relative",left:-10}},{props:{loadingPosition:"end",fullWidth:!0},style:{position:"relative",right:-10}}]})),Mc=ds("span",{name:"MuiButton",slot:"LoadingIconPlaceholder"})({display:"inline-block",width:"1em",height:"1em"}),Dc=c.forwardRef(function Button(e,t){const n=c.useContext(kc),a=c.useContext(Ec),o=useDefaultProps({props:resolveProps(n,e),name:"MuiButton"}),{children:i,color:s="primary",component:l="button",className:u,disabled:d=!1,disableElevation:p=!1,disableFocusRipple:m=!1,endIcon:g,focusVisibleClassName:h,fullWidth:b=!1,id:y,loading:v=null,loadingIndicator:S,loadingPosition:x="center",size:w="medium",startIcon:C,type:k,variant:E="text",...P}=o,T=Ps(y),R=S??(0,ka.jsx)(hl,{"aria-labelledby":T,color:"inherit",size:16}),M={...o,color:s,component:l,disabled:d,disableElevation:p,disableFocusRipple:m,fullWidth:b,loading:v,loadingIndicator:R,loadingPosition:x,size:w,type:k,variant:E},D=useUtilityClasses$39(M),O=(C||v&&"start"===x)&&(0,ka.jsx)(Tc,{className:D.startIcon,ownerState:M,children:C||(0,ka.jsx)(Mc,{className:D.loadingIconPlaceholder,ownerState:M})}),$=(g||v&&"end"===x)&&(0,ka.jsx)(Ac,{className:D.endIcon,ownerState:M,children:g||(0,ka.jsx)(Mc,{className:D.loadingIconPlaceholder,ownerState:M})}),I=a||"",N="boolean"==typeof v?(0,ka.jsx)("span",{className:D.loadingWrapper,style:{display:"contents"},children:v&&(0,ka.jsx)(Rc,{className:D.loadingIndicator,ownerState:M,children:R})}):null,{root:L,...j}=D;return(0,ka.jsxs)(Pc,{ownerState:M,className:clsx(n.className,D.root,u,I),component:l,disabled:d||v,focusRipple:!m,focusVisibleClassName:clsx(D.focusVisible,h),ref:t,internalNativeButton:!0,type:k,id:v?T:y,...P,classes:j,children:[O,"end"!==x&&N,i,"end"===x&&N,$]})});function getValidReactChildren(e){return c.Children.toArray(e).filter(e=>c.isValidElement(e))}function getButtonGroupUtilityClass(e){return generateUtilityClass("MuiButtonGroup",e)}var Oc=generateUtilityClasses("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","horizontal","vertical","colorPrimary","colorSecondary","grouped","lastButton","middleButton"]),overridesResolver$1=(e,t)=>{const{ownerState:n}=e;return[{[`& .${Oc.grouped}`]:t.grouped},{[`& .${Oc.firstButton}`]:t.firstButton},{[`& .${Oc.lastButton}`]:t.lastButton},{[`& .${Oc.middleButton}`]:t.middleButton},t.root,t[n.variant],!0===n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,"vertical"===n.orientation&&t.vertical]},useUtilityClasses$38=e=>{const{classes:t,color:n,disabled:a,disableElevation:o,fullWidth:i,orientation:s,variant:l}=e;return composeClasses({root:["root",l,s,i&&"fullWidth",o&&"disableElevation",`color${bs(n)}`],grouped:["grouped",a&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]},getButtonGroupUtilityClass,t)},$c=ds("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:overridesResolver$1})(ys(({theme:e})=>({display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius,variants:[{props:{variant:"contained"},style:{boxShadow:(e.vars||e).shadows[2],[`& .${Oc.grouped}`]:{boxShadow:"none","&:hover":{boxShadow:"none"}}}},{props:{disableElevation:!0},style:{boxShadow:"none"}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Oc.lastButton},& .${Oc.middleButton}`]:{borderTopRightRadius:0,borderTopLeftRadius:0},[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderBottomRightRadius:0,borderBottomLeftRadius:0}}},{props:{orientation:"horizontal"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Oc.lastButton},& .${Oc.middleButton}`]:{borderTopLeftRadius:0,borderBottomLeftRadius:0}}},{props:{variant:"text",orientation:"horizontal"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderRight:e.vars?`1px solid ${e.alpha(e.vars.palette.common.onBackground,.23)}`:"1px solid "+("light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),[`&.${Oc.disabled}`]:{borderRight:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},{props:{variant:"text",orientation:"vertical"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderBottom:e.vars?`1px solid ${e.alpha(e.vars.palette.common.onBackground,.23)}`:"1px solid "+("light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),[`&.${Oc.disabled}`]:{borderBottom:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).flatMap(([t])=>[{props:{variant:"text",color:t},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderColor:e.alpha((e.vars||e).palette[t].main,.5)}}}]),{props:{variant:"outlined",orientation:"horizontal"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderRightColor:"transparent","&:hover":{borderRightColor:"currentColor"}},[`& .${Oc.lastButton},& .${Oc.middleButton}`]:{marginLeft:-1}}},{props:{variant:"outlined",orientation:"vertical"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderBottomColor:"transparent","&:hover":{borderBottomColor:"currentColor"}},[`& .${Oc.lastButton},& .${Oc.middleButton}`]:{marginTop:-1}}},{props:{variant:"contained",orientation:"horizontal"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderRight:`1px solid ${(e.vars||e).palette.grey[400]}`,[`&.${Oc.disabled}`]:{borderRight:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},{props:{variant:"contained",orientation:"vertical"},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderBottom:`1px solid ${(e.vars||e).palette.grey[400]}`,[`&.${Oc.disabled}`]:{borderBottom:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["dark"])).map(([t])=>({props:{variant:"contained",color:t},style:{[`& .${Oc.firstButton},& .${Oc.middleButton}`]:{borderColor:(e.vars||e).palette[t].dark}}}))],[`& .${Oc.grouped}`]:{minWidth:40}}))),Ic=c.forwardRef(function ButtonGroup(e,t){const n=useDefaultProps({props:e,name:"MuiButtonGroup"}),{children:a,className:o,color:i="primary",component:s="div",disabled:l=!1,disableElevation:u=!1,disableFocusRipple:d=!1,disableRipple:p=!1,fullWidth:m=!1,orientation:g="horizontal",size:h="medium",variant:b="outlined",...y}=n,v={...n,color:i,component:s,disabled:l,disableElevation:u,disableFocusRipple:d,disableRipple:p,fullWidth:m,orientation:g,size:h,variant:b},S=useUtilityClasses$38(v),x=c.useMemo(()=>({className:S.grouped,color:i,disabled:l,disableElevation:u,disableFocusRipple:d,disableRipple:p,fullWidth:m,size:h,variant:b}),[i,l,u,d,p,m,h,b,S.grouped]),w=getValidReactChildren(a),C=w.length,getButtonPositionClassName=e=>{const t=0===e,n=e===C-1;return t&&n?"":t?S.firstButton:n?S.lastButton:S.middleButton};return(0,ka.jsx)($c,{as:s,role:"group",className:clsx(S.root,o),ref:t,ownerState:v,...y,children:(0,ka.jsx)(kc.Provider,{value:x,children:w.map((e,t)=>(0,ka.jsx)(Ec.Provider,{value:getButtonPositionClassName(t),children:e},t))})})});function getSwitchBaseUtilityClass(e){return generateUtilityClass("PrivateSwitchBase",e)}generateUtilityClasses("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);var useUtilityClasses$37=e=>{const{classes:t,checked:n,disabled:a,edge:o}=e;return composeClasses({root:["root",n&&"checked",a&&"disabled",o&&`edge${bs(o)}`],input:["input"]},getSwitchBaseUtilityClass,t)},Nc=ds(il,{name:"MuiSwitchBase"})({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>"start"===e&&"small"!==t.size,style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>"end"===e&&"small"!==t.size,style:{marginRight:-12}}]}),zc=ds("input",{name:"MuiSwitchBase",shouldForwardProp:rootShouldForwardProp})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Lc=c.forwardRef(function SwitchBase(e,t){const{autoFocus:n,checked:a,checkedIcon:o,defaultChecked:i,disabled:s,disableFocusRipple:l=!1,edge:c=!1,icon:u,id:d,name:p,onBlur:m,onChange:g,onFocus:h,readOnly:b,required:y=!1,tabIndex:v,type:S,value:x,slots:w={},slotProps:C={},...k}=e,{nativeButton:E,...P}=k,[T,R]=Ts({controlled:a,default:Boolean(i),name:"SwitchBase",state:"checked"}),M=useFormControl(),handleFocus=e=>{h&&h(e),M&&M.onFocus&&M.onFocus(e)},handleBlur=e=>{m&&m(e),M&&M.onBlur&&M.onBlur(e)},handleInputChange=e=>{if(e.nativeEvent.defaultPrevented||b)return;const t=e.target.checked;R(t),g&&g(e,t)};let D=s;M&&void 0===D&&(D=M.disabled);const O="checkbox"===S||"radio"===S,$={...e,checked:T,disabled:D,disableFocusRipple:l,edge:c},I=useUtilityClasses$37($),N={slots:w,slotProps:C},[L,j]=useSlot("root",{ref:t,elementType:Nc,className:I.root,shouldForwardComponentProp:!0,externalForwardedProps:{...N,component:"span",...P},getSlotProps:e=>({...e,onFocus:t=>{e.onFocus?.(t),handleFocus(t)},onBlur:t=>{e.onBlur?.(t),handleBlur(t)}}),ownerState:$,additionalProps:{centerRipple:!0,focusRipple:!l,role:void 0,tabIndex:null}}),[B,F]=useSlot("input",{elementType:zc,className:I.input,externalForwardedProps:N,getSlotProps:e=>({...e,onChange:t=>{e.onChange?.(t),handleInputChange(t)}}),ownerState:$,additionalProps:{autoFocus:n,checked:a,defaultChecked:i,disabled:D,id:O?d:void 0,name:p,readOnly:b,required:y,tabIndex:v,type:S,..."checkbox"===S&&void 0===x?{}:{value:x}}});return(0,ka.jsxs)(L,{...j,children:[(0,ka.jsx)(B,{...F}),T?o:u]})}),jc=createSvgIcon((0,ka.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Bc=createSvgIcon((0,ka.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Fc=createSvgIcon((0,ka.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function getCheckboxUtilityClass(e){return generateUtilityClass("MuiCheckbox",e)}var qc=generateUtilityClasses("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),useUtilityClasses$36=e=>{const{classes:t,indeterminate:n,color:a,size:o}=e,i=composeClasses({root:["root",n&&"indeterminate",`color${bs(a)}`,`size${bs(o)}`]},getCheckboxUtilityClass,t);return{...t,...i}},Uc=ds(Lc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${bs(n.size)}`],"default"!==n.color&&t[`color${bs(n.color)}`]]}})(ys(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${qc.checked}, &.${qc.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${qc.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),Vc=(0,ka.jsx)(Bc,{}),Hc=(0,ka.jsx)(jc,{}),Wc=(0,ka.jsx)(Fc,{}),Gc=c.forwardRef(function Checkbox(e,t){const n=useDefaultProps({props:e,name:"MuiCheckbox"}),{checkedIcon:a=Vc,color:o="primary",icon:i=Hc,indeterminate:s=!1,indeterminateIcon:l=Wc,size:u="medium",disableRipple:d=!1,className:p,slots:m={},slotProps:g={},...h}=n,b=s?l:i,y=s?l:a,v={...n,disableRipple:d,color:o,indeterminate:s,size:u},S=useUtilityClasses$36(v),x=g.input,[w,C]=useSlot("root",{ref:t,elementType:Uc,className:clsx(S.root,p),shouldForwardComponentProp:!0,externalForwardedProps:{slots:m,slotProps:g,...h},ownerState:v,additionalProps:{type:"checkbox",icon:c.cloneElement(b,{fontSize:b.props.fontSize??u}),checkedIcon:c.cloneElement(y,{fontSize:y.props.fontSize??u}),disableRipple:d,slots:m,slotProps:{input:mergeSlotProps$1("function"==typeof x?x(v):x,{"data-indeterminate":s,"aria-checked":s?"mixed":void 0})}}});return(0,ka.jsx)(w,{...C,classes:S})});function getScrollbarSize(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}function isOverflowing(e){const t=ownerDocument(e);return t.body===e?ownerWindow(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function ariaHidden(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function getPaddingRight(e){return parseFloat(ownerWindow(e).getComputedStyle(e).paddingRight)||0}function isAriaHiddenForbiddenOnElement(e){const t=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),n="INPUT"===e.tagName&&"hidden"===e.getAttribute("type");return t||n}function ariaHiddenSiblings(e,t,n,a,o){const i=[t,n,...a];[].forEach.call(e.children,e=>{const t=!i.includes(e),n=!isAriaHiddenForbiddenOnElement(e);t&&n&&ariaHidden(e,o)})}function findIndexOf(e,t){let n=-1;return e.some((e,a)=>!!t(e)&&(n=a,!0)),n}function handleContainer(e,t){const n=[],a=e.container;if(!t.disableScrollLock){if(isOverflowing(a)){const e=getScrollbarSize(ownerWindow(a));n.push({value:a.style.paddingRight,property:"padding-right",el:a}),a.style.paddingRight=`${getPaddingRight(a)+e}px`;const t=ownerDocument(a).querySelectorAll(".mui-fixed");[].forEach.call(t,t=>{n.push({value:t.style.paddingRight,property:"padding-right",el:t}),t.style.paddingRight=`${getPaddingRight(t)+e}px`})}let e;if(a.parentNode instanceof DocumentFragment)e=ownerDocument(a).body;else{const t=a.parentElement,n=ownerWindow(a);e="HTML"===t?.nodeName&&"scroll"===n.getComputedStyle(t).overflowY?t:a}n.push({value:e.style.overflow,property:"overflow",el:e},{value:e.style.overflowX,property:"overflow-x",el:e},{value:e.style.overflowY,property:"overflow-y",el:e}),e.style.overflow="hidden"}return()=>{n.forEach(({value:e,el:t,property:n})=>{e?t.style.setProperty(n,e):t.style.removeProperty(n)})}}function getHiddenSiblings(e){const t=[];return[].forEach.call(e.children,e=>{"true"===e.getAttribute("aria-hidden")&&t.push(e)}),t}var Yc=class{constructor(){this.modals=[],this.containers=[]}add(e,t){let n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&ariaHidden(e.modalRef,!1);const a=getHiddenSiblings(t);ariaHiddenSiblings(t,e.mount,e.modalRef,a,!0);const o=findIndexOf(this.containers,e=>e.container===t);return-1!==o?(this.containers[o].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:a}),n)}mount(e,t){const n=findIndexOf(this.containers,t=>t.modals.includes(e)),a=this.containers[n];a.restore||(a.restore=handleContainer(a,t))}remove(e,t=!0){const n=this.modals.indexOf(e);if(-1===n)return n;const a=findIndexOf(this.containers,t=>t.modals.includes(e)),o=this.containers[a];if(o.modals.splice(o.modals.indexOf(e),1),this.modals.splice(n,1),0===o.modals.length)o.restore&&o.restore(),e.modalRef&&ariaHidden(e.modalRef,t),ariaHiddenSiblings(o.container,e.mount,e.modalRef,o.hiddenSiblings,!1),this.containers.splice(a,1);else{const e=o.modals[o.modals.length-1];e.modalRef&&ariaHidden(e.modalRef,!1)}return n}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}},Kc=contains$1,Qc="data-mui-focusable";function getFocusTarget(e){return e?e.hasAttribute("data-mui-focusable")?e:e.querySelector(`[${Qc}]`):null}var Zc=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?"true"===e.contentEditable||("AUDIO"===e.nodeName||"VIDEO"===e.nodeName||"DETAILS"===e.nodeName)&&null===e.getAttribute("tabindex")?0:e.tabIndex:t}function isNonTabbableRadio(e){if("INPUT"!==e.tagName||"radio"!==e.type)return!1;if(!e.name)return!1;const getRadio=t=>e.ownerDocument.querySelector(`input[type="radio"]${t}`);let t=getRadio(`[name="${e.name}"]:checked`);return t||(t=getRadio(`[name="${e.name}"]`)),t!==e}function isNodeMatchingSelectorFocusable(e){return!(e.disabled||"INPUT"===e.tagName&&"hidden"===e.type||isNonTabbableRadio(e))}function defaultGetTabbable(e){const t=[],n=[];return Array.from(e.querySelectorAll(Zc)).forEach((e,a)=>{const o=getTabIndex(e);-1!==o&&isNodeMatchingSelectorFocusable(e)&&(0===o?t.push(e):n.push({documentOrder:a,tabIndex:o,node:e}))}),n.sort((e,t)=>e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex).map(e=>e.node).concat(t)}function defaultIsEnabled(){return!0}function FocusTrap(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:a=!1,disableRestoreFocus:o=!1,getTabbable:i=defaultGetTabbable,isEnabled:s=defaultIsEnabled,open:l}=e,u=c.useRef(!1),d=c.useRef(null),p=c.useRef(null),m=c.useRef(null),g=c.useRef(null),h=c.useRef(!1),b=c.useRef(null),y=useForkRef(getReactElementRef(t),b),v=c.useRef(null);c.useEffect(()=>{l&&b.current&&(h.current=!n)},[n,l]),c.useEffect(()=>{if(u.current=!1,!l||!b.current)return;const e=Cs(ownerDocument(b.current)),t=getFocusTarget(b.current)??b.current;return Kc(b.current,e)||(t.hasAttribute("tabIndex")||t.setAttribute("tabIndex","-1"),h.current&&t.focus()),()=>{!o&&m.current&&(u.current=!0,m.current.focus(),m.current=null)}},[l]),c.useEffect(()=>{if(!l||!b.current)return;const e=ownerDocument(b.current),loopFocus=t=>{v.current=t,!a&&s()&&"Tab"===t.key&&Cs(e)===b.current&&t.shiftKey&&(u.current=!0,p.current&&p.current.focus())},contain=()=>{const t=b.current;if(null===t)return;const n=Cs(e);if(!e.hasFocus()||!s()||u.current)return void(u.current=!1);if(Kc(t,n))return;if(a&&n!==d.current&&n!==p.current)return;if(n!==g.current)g.current=null;else if(null!==g.current)return;if(!h.current)return;let o=[];if(n!==d.current&&n!==p.current||(o=i(b.current)),o.length>0){const e=Boolean(v.current?.shiftKey&&"Tab"===v.current?.key),t=o[0],n=o[o.length-1];"string"!=typeof t&&"string"!=typeof n&&(e?n.focus():t.focus())}else t.focus()};e.addEventListener("focusin",contain),e.addEventListener("keydown",loopFocus,!0);const t=setInterval(()=>{const t=Cs(e);t&&"BODY"===t.tagName&&contain()},50);return()=>{clearInterval(t),e.removeEventListener("focusin",contain),e.removeEventListener("keydown",loopFocus,!0)}},[n,a,o,s,l,i]);const onFocus=e=>{null===m.current&&(m.current=e.relatedTarget),h.current=!0,g.current=e.target;const n=t.props.onFocus;n&&n(e)},handleFocusSentinel=e=>{null===m.current&&(m.current=e.relatedTarget),h.current=!0};return(0,ka.jsxs)(c.Fragment,{children:[(0,ka.jsx)("div",{tabIndex:l?0:-1,onFocus:handleFocusSentinel,ref:d,"data-testid":"sentinelStart"}),c.cloneElement(t,{ref:y,onFocus}),(0,ka.jsx)("div",{tabIndex:l?0:-1,onFocus:handleFocusSentinel,ref:p,"data-testid":"sentinelEnd"})]})}function getContainer(e){return"function"==typeof e?e():e}function getHasTransition(e){return!!e&&e.props.hasOwnProperty("in")}var noop$1=()=>{},Xc=new Yc;function useModal(e){const{container:t,disableScrollLock:n=!1,closeAfterTransition:a=!1,onTransitionEnter:o,onTransitionExited:i,children:s,onClose:l,open:u,rootRef:d}=e,p=c.useRef({}),m=c.useRef(null),g=c.useRef(null),h=useForkRef(g,d),[b,y]=c.useState(!u),v=getHasTransition(s);let S=!0;"false"!==e["aria-hidden"]&&!1!==e["aria-hidden"]||(S=!1);const getDoc=()=>ownerDocument(m.current),getModal=()=>(p.current.modalRef=g.current,p.current.mount=m.current,p.current),handleMounted=()=>{Xc.mount(getModal(),{disableScrollLock:n}),g.current&&(g.current.scrollTop=0)},x=useEventCallback(()=>{const e=getContainer(t)||getDoc().body;Xc.add(getModal(),e),g.current&&handleMounted()}),isTopModal=()=>Xc.isTopModal(getModal()),w=useEventCallback(e=>{m.current=e,e&&(u&&isTopModal()?handleMounted():g.current&&ariaHidden(g.current,S))}),C=c.useCallback(()=>{Xc.remove(getModal(),S)},[S]);c.useEffect(()=>()=>{C()},[C]),c.useEffect(()=>{u?x():v&&a||C()},[u,C,v,a,x]);const createHandleKeyDown=e=>t=>{e.onKeyDown?.(t),"Escape"===t.key&&229!==t.which&&isTopModal()&&(t.stopPropagation(),l&&l(t,"escapeKeyDown"))},createHandleBackdropClick=e=>t=>{e.onClick?.(t),t.target===t.currentTarget&&l&&l(t,"backdropClick")};return{getRootProps:(t={})=>{const n=extractEventHandlers(e);delete n.onTransitionEnter,delete n.onTransitionExited;const a={...n,...t};return{role:"presentation",...a,onKeyDown:createHandleKeyDown(a),ref:h}},getBackdropProps:(e={})=>{const t=e;return{"aria-hidden":!0,...t,onClick:createHandleBackdropClick(t),open:u}},getTransitionProps:()=>{const handleExited=()=>{y(!0),i&&i(),a&&C()};return{onEnter:createChainedFunction(()=>{y(!1),o&&o()},s?.props.onEnter??noop$1),onExited:createChainedFunction(handleExited,s?.props.onExited??noop$1)}},rootRef:h,portalRef:w,isTopModal,exited:b,hasTransition:v}}function getModalUtilityClass(e){return generateUtilityClass("MuiModal",e)}generateUtilityClasses("MuiModal",["root","hidden","backdrop"]);var useUtilityClasses$35=e=>{const{open:t,exited:n,classes:a}=e;return composeClasses({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},getModalUtilityClass,a)},Jc=ds("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(ys(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:e})=>!e.open&&e.exited,style:{visibility:"hidden"}}]}))),eu=ds(Sc,{name:"MuiModal",slot:"Backdrop"})({zIndex:-1}),tu=c.forwardRef(function Modal(e,t){const n=useDefaultProps({name:"MuiModal",props:e}),{classes:a,className:o,closeAfterTransition:i=!1,children:s,container:l,component:u,disableAutoFocus:d=!1,disableEnforceFocus:p=!1,disablePortal:m=!1,disableRestoreFocus:g=!1,disableScrollLock:h=!1,hideBackdrop:b=!1,keepMounted:y=!1,onClose:v,onTransitionEnter:S,onTransitionExited:x,open:w,slotProps:C={},slots:k={},theme:E,...P}=n,T={...n,closeAfterTransition:i,disableAutoFocus:d,disableEnforceFocus:p,disablePortal:m,disableRestoreFocus:g,disableScrollLock:h,hideBackdrop:b,keepMounted:y},{getRootProps:R,getBackdropProps:M,getTransitionProps:D,portalRef:O,isTopModal:$,exited:I,hasTransition:N}=useModal({...T,rootRef:t}),L={...T,exited:I},j=useUtilityClasses$35(L),B={};if(void 0===s.props.tabIndex&&(B.tabIndex="-1"),N){const{onEnter:e,onExited:t}=D();B.onEnter=e,B.onExited=t}const F={slots:k,slotProps:C},[q,U]=useSlot("root",{ref:t,elementType:Jc,externalForwardedProps:{...F,...P,component:u},getSlotProps:R,ownerState:L,className:clsx(o,j?.root,!L.open&&L.exited&&j?.hidden)}),[V,H]=useSlot("backdrop",{elementType:eu,externalForwardedProps:F,shouldForwardComponentProp:!0,getSlotProps:e=>M({...e,onClick:t=>{e?.onClick&&e.onClick(t)}}),className:j?.backdrop,ownerState:L});return y||w||N&&!I?(0,ka.jsx)(Vl,{ref:O,container:l,disablePortal:m,children:(0,ka.jsxs)(q,{...U,children:[b?null:(0,ka.jsx)(V,{...H}),(0,ka.jsx)(FocusTrap,{disableEnforceFocus:p,disableAutoFocus:d,disableRestoreFocus:g,isEnabled:$,open:w,children:c.cloneElement(s,B)})]})}):null});function getDialogUtilityClass(e){return generateUtilityClass("MuiDialog",e)}generateUtilityClasses("MuiDialog",["root","backdrop","scrollPaper","scrollBody","container","paper","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]);var ru=c.createContext({}),nu=ds(Sc,{name:"MuiDialog",slot:"Backdrop"})({zIndex:-1}),useUtilityClasses$34=e=>{const{classes:t,scroll:n,maxWidth:a,fullWidth:o,fullScreen:i}=e;return composeClasses({root:["root"],backdrop:["backdrop"],container:["container",`scroll${bs(n)}`],paper:["paper",`paperWidth${bs(String(a))}`,o&&"paperFullWidth",i&&"paperFullScreen"]},getDialogUtilityClass,t)},au=ds(tu,{name:"MuiDialog",slot:"Root"})({"@media print":{position:"absolute !important"}}),ou=ds("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.container,t[`scroll${bs(n.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),iu=ds(Gs,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`paperWidth${bs(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(ys(({theme:e})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:e})=>!e.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:"px"===e.breakpoints.unit?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`}},{props:{maxWidth:"xs",scroll:"body"},style:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}},...Object.keys(e.breakpoints.values).filter(e=>"xs"!==e).map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`}})),...Object.keys(e.breakpoints.values).filter(e=>"xs"!==e).map(t=>({props:{maxWidth:t,scroll:"body"},style:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:"calc(100% - 64px)"}}})),{props:({ownerState:e})=>e.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:e})=>e.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0}},{props:({ownerState:e})=>e.fullScreen&&"body"===e.scroll,style:{margin:0,maxWidth:"100%"}}]}))),su=c.forwardRef(function Dialog(e,t){const n=useDefaultProps({props:e,name:"MuiDialog"}),a=useTheme(),o={enter:a.transitions.duration.enteringScreen,exit:a.transitions.duration.leavingScreen},{"aria-describedby":i,"aria-labelledby":s,"aria-modal":l=!0,children:u,className:d,fullScreen:p=!1,fullWidth:m=!1,maxWidth:g="sm",onClick:h,onClose:b,open:y,PaperComponent:v=Gs,role:S="dialog",scroll:x="paper",slots:w={},slotProps:C={},transitionDuration:k=o,...E}=n,P={...n,fullScreen:p,fullWidth:m,maxWidth:g,scroll:x},T=useUtilityClasses$34(P),R=c.useRef(),handleMouseDown=e=>{R.current=e.target===e.currentTarget},handleBackdropClick=e=>{h&&h(e),R.current&&(R.current=null,b&&b(e,"backdropClick"))},M=useId(s),D=c.useMemo(()=>({titleId:M}),[M]),O={slots:w,slotProps:C},[$,I]=useSlot("root",{elementType:au,shouldForwardComponentProp:!0,externalForwardedProps:O,ownerState:P,className:clsx(T.root,d),ref:t}),[N,L]=useSlot("backdrop",{elementType:nu,shouldForwardComponentProp:!0,externalForwardedProps:O,ownerState:P,className:T.backdrop}),[j,B]=useSlot("paper",{elementType:iu,shouldForwardComponentProp:!0,externalForwardedProps:O,ownerState:P,className:T.paper,additionalProps:{elevation:24,role:S,"aria-describedby":i,"aria-labelledby":M,"aria-modal":l,tabIndex:-1,[Qc]:""}}),[F,q]=useSlot("container",{elementType:ou,externalForwardedProps:O,ownerState:P,className:T.container}),[U,V]=useSlot("transition",{elementType:yc,externalForwardedProps:O,ownerState:P,additionalProps:{appear:!0,in:y,timeout:k,role:"presentation"}});return(0,ka.jsx)($,{closeAfterTransition:!0,slots:{backdrop:N},slotProps:{backdrop:{transitionDuration:k,...L}},onClose:b,open:y,onClick:handleBackdropClick,...I,...E,children:(0,ka.jsx)(U,{...V,children:(0,ka.jsx)(F,{onMouseDown:handleMouseDown,...q,children:(0,ka.jsx)(j,{as:v,...B,children:(0,ka.jsx)(ru.Provider,{value:D,children:u})})})})})});function getDialogActionsUtilityClass(e){return generateUtilityClass("MuiDialogActions",e)}generateUtilityClasses("MuiDialogActions",["root","spacing"]);var useUtilityClasses$33=e=>{const{classes:t,disableSpacing:n}=e;return composeClasses({root:["root",!n&&"spacing"]},getDialogActionsUtilityClass,t)},lu=ds("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:e})=>!e.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),cu=c.forwardRef(function DialogActions(e,t){const n=useDefaultProps({props:e,name:"MuiDialogActions"}),{className:a,disableSpacing:o=!1,...i}=n,s={...n,disableSpacing:o};return(0,ka.jsx)(lu,{className:clsx(useUtilityClasses$33(s).root,a),ownerState:s,ref:t,...i})});function getDialogContentUtilityClass(e){return generateUtilityClass("MuiDialogContent",e)}generateUtilityClasses("MuiDialogContent",["root","dividers"]);function getDialogTitleUtilityClass(e){return generateUtilityClass("MuiDialogTitle",e)}var uu=generateUtilityClasses("MuiDialogTitle",["root"]),useUtilityClasses$32=e=>{const{classes:t,dividers:n}=e;return composeClasses({root:["root",n&&"dividers"]},getDialogContentUtilityClass,t)},du=ds("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(ys(({theme:e})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:e})=>e.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>!e.dividers,style:{[`.${uu.root} + &`]:{paddingTop:0}}}]}))),pu=c.forwardRef(function DialogContent(e,t){const n=useDefaultProps({props:e,name:"MuiDialogContent"}),{className:a,dividers:o=!1,...i}=n,s={...n,dividers:o};return(0,ka.jsx)(du,{className:clsx(useUtilityClasses$32(s).root,a),ownerState:s,ref:t,...i})}),useUtilityClasses$31=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getDialogTitleUtilityClass,t)},mu=ds(vl,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),fu=c.forwardRef(function DialogTitle(e,t){const n=useDefaultProps({props:e,name:"MuiDialogTitle"}),{className:a,id:o,...i}=n,s=n,l=useUtilityClasses$31(s),{titleId:u=o}=c.useContext(ru);return(0,ka.jsx)(mu,{component:"h2",className:clsx(l.root,a),ownerState:s,ref:t,variant:"h6",id:o??u,...i})});function getDividerUtilityClass(e){return generateUtilityClass("MuiDivider",e)}var gu=generateUtilityClasses("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","vertical","withChildren","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),useUtilityClasses$30=e=>{const{absolute:t,children:n,classes:a,flexItem:o,orientation:i,textAlign:s,variant:l}=e;return composeClasses({root:["root",t&&"absolute",l,"vertical"===i&&"vertical",o&&"flexItem",n&&"withChildren","right"===s&&"vertical"!==i&&"textAlignRight","left"===s&&"vertical"!==i&&"textAlignLeft"],wrapper:["wrapper","vertical"===i&&"wrapperVertical"]},getDividerUtilityClass,a)},hu=ds("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],"vertical"===n.orientation&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,"right"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignLeft]}})(ys(({theme:e})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(e.vars||e).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:e})=>!!e.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:e})=>e.children&&"vertical"!==e.orientation,style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:e})=>"vertical"===e.orientation&&e.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:e})=>"right"===e.textAlign&&"vertical"!==e.orientation,style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:e})=>"left"===e.textAlign&&"vertical"!==e.orientation,style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),bu=ds("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.wrapper,"vertical"===n.orientation&&t.wrapperVertical]}})(ys(({theme:e})=>({display:"inline-block",paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`}}]}))),yu=c.forwardRef(function Divider(e,t){const n=useDefaultProps({props:e,name:"MuiDivider"}),{absolute:a=!1,children:o,className:i,orientation:s="horizontal",component:l=(o||"vertical"===s?"div":"hr"),flexItem:c=!1,role:u=("hr"!==l?"separator":void 0),textAlign:d="center",variant:p="fullWidth",...m}=n,g={...n,absolute:a,component:l,flexItem:c,orientation:s,role:u,textAlign:d,variant:p},h=useUtilityClasses$30(g);return(0,ka.jsx)(hu,{as:l,className:clsx(h.root,i),role:u,ref:t,ownerState:g,"aria-orientation":"separator"!==u||"hr"===l&&"vertical"!==s?void 0:s,...m,children:o?(0,ka.jsx)(bu,{className:h.wrapper,ownerState:g,children:o}):null})}),useUtilityClasses$29=e=>{const{classes:t,disableUnderline:n,startAdornment:a,endAdornment:o,size:i,hiddenLabel:s,multiline:l}=e,c=composeClasses({root:["root",!n&&"underline",a&&"adornedStart",o&&"adornedEnd","small"===i&&`size${bs(i)}`,s&&"hiddenLabel",l&&"multiline"],input:["input"]},getFilledInputUtilityClass,t);return{...t,...c}},vu=ds(lc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(ys(({theme:e})=>{const t="light"===e.palette.mode,n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",a=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",o=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",i=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:a,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:o,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:a}},[`&.${fc.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:a},[`&.${fc.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:i},variants:[{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${fc.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${fc.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline):n}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${fc.disabled}, .${fc.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${fc.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{disableUnderline:!1,color:t},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t]?.main}`}}})),{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:12}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:12}},{props:({ownerState:e})=>e.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:e,size:t})=>e.multiline&&"small"===t,style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel&&"small"===e.size,style:{paddingTop:8,paddingBottom:9}}]}})),Su=ds(cc,{name:"MuiFilledInput",slot:"Input",overridesResolver:inputOverridesResolver})(ys(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,"&:-webkit-autofill":{...!e.vars&&{WebkitBoxShadow:"light"===e.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.mode?null:"#fff",caretColor:"light"===e.palette.mode?null:"#fff"},borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit",...e.vars&&e.applyStyles("dark",{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"})},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}},{props:({ownerState:e})=>e.hiddenLabel&&"small"===e.size,style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:e})=>e.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),xu=c.forwardRef(function FilledInput(e,t){const n=useDefaultProps({props:e,name:"MuiFilledInput"}),{disableUnderline:a=!1,fullWidth:o=!1,hiddenLabel:i,inputComponent:s="input",multiline:l=!1,notched:c,slotProps:u,slots:d={},type:p="text",...m}=n,g={...n,disableUnderline:a,fullWidth:o,inputComponent:s,multiline:l,type:p},h=useUtilityClasses$29(n),b={root:{ownerState:g},input:{ownerState:g}},y=u?deepmerge(b,u):b;return(0,ka.jsx)(dc,{slots:{root:d.root??vu,input:d.input??Su},slotProps:y,fullWidth:o,inputComponent:s,multiline:l,ref:t,type:p,...m,classes:h})});function getFormControlUtilityClasses(e){return generateUtilityClass("MuiFormControl",e)}xu.muiName="Input";generateUtilityClasses("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);var useUtilityClasses$28=e=>{const{classes:t,margin:n,fullWidth:a}=e;return composeClasses({root:["root","none"!==n&&`margin${bs(n)}`,a&&"fullWidth"]},getFormControlUtilityClasses,t)},wu=ds("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`margin${bs(n.margin)}`],n.fullWidth&&t.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),Cu=c.forwardRef(function FormControl(e,t){const n=useDefaultProps({props:e,name:"MuiFormControl"}),{children:a,className:o,color:i="primary",component:s="div",disabled:l=!1,error:u=!1,focused:d,fullWidth:p=!1,hiddenLabel:m=!1,margin:g="none",required:h=!1,size:b="medium",variant:y="outlined",...v}=n,S={...n,color:i,component:s,disabled:l,error:u,fullWidth:p,hiddenLabel:m,margin:g,required:h,size:b,variant:y},x=useUtilityClasses$28(S),[w,C]=c.useState(()=>{let e=!1;return a&&c.Children.forEach(a,t=>{if(!ws(t,["Input","Select"]))return;const n=ws(t,["Select"])?t.props.input:t;n&&isAdornedStart(n.props)&&(e=!0)}),e}),[k,E]=c.useState(()=>{let e=!1;return a&&c.Children.forEach(a,t=>{ws(t,["Input","Select"])&&(isFilled(t.props,!0)||isFilled(t.props.inputProps,!0))&&(e=!0)}),e}),[P,T]=c.useState(!1);l&&P&&T(!1);const R=void 0===d||l?P:d;let M;c.useRef(!1);const D=c.useCallback(()=>{E(!0)},[]),O=c.useCallback(()=>{E(!1)},[]),$=c.useMemo(()=>({adornedStart:w,setAdornedStart:C,color:i,disabled:l,error:u,filled:k,focused:R,fullWidth:p,hiddenLabel:m,size:b,onBlur:()=>{T(!1)},onFocus:()=>{T(!0)},onEmpty:O,onFilled:D,registerEffect:M,required:h,variant:y}),[w,i,l,u,k,R,p,m,M,O,D,h,b,y]);return(0,ka.jsx)(nc.Provider,{value:$,children:(0,ka.jsx)(wu,{as:s,ownerState:S,className:clsx(x.root,o),ref:t,...v,children:a})})});function getFormControlLabelUtilityClasses(e){return generateUtilityClass("MuiFormControlLabel",e)}var ku=generateUtilityClasses("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),useUtilityClasses$27=e=>{const{classes:t,disabled:n,labelPlacement:a,error:o,required:i}=e;return composeClasses({root:["root",n&&"disabled",`labelPlacement${bs(a)}`,o&&"error",i&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]},getFormControlLabelUtilityClasses,t)},Eu=ds("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${ku.label}`]:t.label},t.root,t[`labelPlacement${bs(n.labelPlacement)}`]]}})(ys(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${ku.disabled}`]:{cursor:"default"},[`& .${ku.label}`]:{[`&.${ku.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:e})=>"start"===e||"top"===e||"bottom"===e,style:{marginLeft:16}}]}))),_u=ds("span",{name:"MuiFormControlLabel",slot:"Asterisk"})(ys(({theme:e})=>({[`&.${ku.error}`]:{color:(e.vars||e).palette.error.main}}))),Pu=c.forwardRef(function FormControlLabel(e,t){const n=useDefaultProps({props:e,name:"MuiFormControlLabel"}),{checked:a,className:o,control:i,disabled:s,disableTypography:l,inputRef:u,label:d,labelPlacement:p="end",name:m,onChange:g,required:h,slots:b={},slotProps:y={},value:v,...S}=n,[x,w]=useFormControlState({props:n,states:["error"]}),C=s??i.props.disabled??w?.disabled,k=h??i.props.required,E={disabled:C,required:k};["checked","name","onChange","value","inputRef"].forEach(e=>{void 0===i.props[e]&&void 0!==n[e]&&(E[e]=n[e])});const P={...n,disabled:C,labelPlacement:p,required:k,error:x.error},T=useUtilityClasses$27(P),[R,M]=useSlot("typography",{elementType:vl,externalForwardedProps:{slots:b,slotProps:y},ownerState:P});let D=d;return null==D||D.type===vl||l||(D=(0,ka.jsx)(R,{component:"span",...M,className:clsx(T.label,M?.className),children:D})),(0,ka.jsxs)(Eu,{className:clsx(T.root,o),ownerState:P,ref:t,...S,children:[c.cloneElement(i,E),k?(0,ka.jsxs)("div",{children:[D,(0,ka.jsxs)(_u,{ownerState:P,"aria-hidden":!0,className:T.asterisk,children:[" ","*"]})]}):D]})});function getFormHelperTextUtilityClasses(e){return generateUtilityClass("MuiFormHelperText",e)}var Tu,Au=generateUtilityClasses("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),useUtilityClasses$26=e=>{const{classes:t,contained:n,size:a,disabled:o,error:i,filled:s,focused:l,required:c}=e;return composeClasses({root:["root",o&&"disabled",i&&"error",a&&`size${bs(a)}`,n&&"contained",l&&"focused",s&&"filled",c&&"required"]},getFormHelperTextUtilityClasses,t)},Ru=ds("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${bs(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(ys(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Au.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Au.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:e})=>e.contained,style:{marginLeft:14,marginRight:14}}]}))),Mu=c.forwardRef(function FormHelperText(e,t){const n=useDefaultProps({props:e,name:"MuiFormHelperText"}),{children:a,className:o,component:i="p",disabled:s,error:l,filled:c,focused:u,margin:d,required:p,variant:m,...g}=n,[h]=useFormControlState({props:n,states:["variant","size","disabled","error","filled","focused","required"]}),b={...n,component:i,contained:"filled"===h.variant||"outlined"===h.variant,variant:h.variant,size:h.size,disabled:h.disabled,error:h.error,filled:h.filled,focused:h.focused,required:h.required};return delete b.ownerState,(0,ka.jsx)(Ru,{as:i,className:clsx(useUtilityClasses$26(b).root,o),ref:t,...g,ownerState:b,children:" "===a?Tu||(Tu=(0,ka.jsx)("span",{className:"notranslate","aria-hidden":!0,children:""})):a})});function getFormLabelUtilityClasses(e){return generateUtilityClass("MuiFormLabel",e)}var Du=generateUtilityClasses("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),useUtilityClasses$25=e=>{const{classes:t,color:n,focused:a,disabled:o,error:i,filled:s,required:l}=e;return composeClasses({root:["root",`color${bs(n)}`,o&&"disabled",i&&"error",s&&"filled",a&&"focused",l&&"required"],asterisk:["asterisk",i&&"error"]},getFormLabelUtilityClasses,t)},Ou=ds("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled]}})(ys(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${Du.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Du.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Du.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),$u=ds("span",{name:"MuiFormLabel",slot:"Asterisk"})(ys(({theme:e})=>({[`&.${Du.error}`]:{color:(e.vars||e).palette.error.main}}))),Iu=c.forwardRef(function FormLabel(e,t){const n=useDefaultProps({props:e,name:"MuiFormLabel"}),{children:a,className:o,color:i,component:s="label",disabled:l,error:c,filled:u,focused:d,required:p,...m}=n,[g]=useFormControlState({props:n,states:["color","required","focused","disabled","error","filled"]}),h={...n,color:g.color||"primary",component:s,disabled:g.disabled,error:g.error,filled:g.filled,focused:g.focused,required:g.required},b=useUtilityClasses$25(h);return(0,ka.jsxs)(Ou,{as:s,ownerState:h,className:clsx(b.root,o),ref:t,...m,children:[a,g.required&&(0,ka.jsxs)($u,{ownerState:h,"aria-hidden":!0,className:b.asterisk,children:[" ","*"]})]})});function getScale(e){return`scale(${e}, ${e**2})`}var Nu={entering:{opacity:1,transform:getScale(1)},entered:{opacity:1,transform:"none"},exiting:{opacity:0,transform:getScale(.75)},exited:{opacity:0,transform:getScale(.75)}},zu={opacity:0,transform:getScale(.75),visibility:"hidden"},Lu=c.forwardRef(function Grow(e,t){const{addEndListener:n,appear:a=!0,children:o,easing:i,in:s,onEnter:l,onEntered:u,onEntering:d,onExit:p,onExited:m,onExiting:g,style:h,timeout:b="auto",...y}=e,v=useTimeout(),S=c.useRef(),x=useTheme(),w=c.useRef(null),C=Rs(w,getReactElementRef(o),t),k=normalizedTransitionCallback(w,d),E=normalizedTransitionCallback(w,(e,t)=>{reflow(e);const{duration:n,delay:a,easing:o}=getTransitionProps({style:h,timeout:b,easing:i},{mode:"enter"});let s;"auto"===b?(s=x.transitions.getAutoHeightDuration(e.clientHeight),S.current=s):s=n,e.style.transition=[x.transitions.create("opacity",{duration:s,delay:a}),x.transitions.create("transform",{duration:.666*s,delay:a,easing:o})].join(","),l&&l(e,t)}),P=normalizedTransitionCallback(w,u),T=normalizedTransitionCallback(w,g),R=normalizedTransitionCallback(w,e=>{const{duration:t,delay:n,easing:a}=getTransitionProps({style:h,timeout:b,easing:i},{mode:"exit"});let o;"auto"===b?(o=x.transitions.getAutoHeightDuration(e.clientHeight),S.current=o):o=t,e.style.transition=[x.transitions.create("opacity",{duration:o,delay:n}),x.transitions.create("transform",{duration:.666*o,delay:n||.333*o,easing:a})].join(","),e.style.opacity=0,e.style.transform=getScale(.75),p&&p(e)}),M=normalizedTransitionCallback(w,e=>{e.style.transition="",m&&m(e)}),handleAddEndListener=e=>{"auto"===b&&v.start(S.current||0,e),n&&n(w.current,e)};return(0,ka.jsx)(js,{appear:a,in:s,nodeRef:w,onEnter:E,onEntered:P,onEntering:k,onExit:R,onExited:M,onExiting:T,addEndListener:handleAddEndListener,timeout:"auto"===b?null:b,...y,children:(e,{ownerState:t,...n})=>{const a=getTransitionChildStyle(e,s,Nu,zu,h,o.props.style);return c.cloneElement(o,{style:a,ref:C,...n})}})});function getInputLabelUtilityClasses(e){return generateUtilityClass("MuiInputLabel",e)}Lu&&(Lu.muiSupportAuto=!0);var ju=generateUtilityClasses("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]),useUtilityClasses$24=e=>{const{classes:t,disableUnderline:n}=e,a=composeClasses({root:["root",!n&&"underline"],input:["input"]},getInputUtilityClass,t);return{...t,...a}},Bu=ds(lc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(ys(({theme:e})=>{let t="light"===e.palette.mode?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(t=e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline)),{position:"relative",variants:[{props:({ownerState:e})=>e.formControl,style:{[`label + &, .${ju.root} + &`]:{marginTop:16}}},{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${pc.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${pc.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${t}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${pc.disabled}, .${pc.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${t}`}},[`&.${pc.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t].main}`}}}))]}})),Fu=ds(cc,{name:"MuiInput",slot:"Input",overridesResolver:inputOverridesResolver})({}),qu=c.forwardRef(function Input(e,t){const n=useDefaultProps({props:e,name:"MuiInput"}),{disableUnderline:a=!1,fullWidth:o=!1,inputComponent:i="input",multiline:s=!1,notched:l,slotProps:c,slots:u={},type:d="text",...p}=n,m=useUtilityClasses$24(n),g={root:{ownerState:{disableUnderline:a}}},h=c?deepmerge(c,g):g;return(0,ka.jsx)(dc,{slots:{root:u.root??Bu,input:u.input??Fu},slotProps:h,fullWidth:o,inputComponent:i,multiline:s,ref:t,type:d,...p,classes:m})});qu.muiName="Input";var useUtilityClasses$23=e=>{const{classes:t,formControl:n,size:a,shrink:o,disableAnimation:i,variant:s,required:l}=e,c=composeClasses({root:["root",n&&"formControl",!i&&"animated",o&&"shrink",a&&"medium"!==a&&`size${bs(a)}`,s],asterisk:[l&&"asterisk"]},getInputLabelUtilityClasses,t);return{...t,...c}},Uu=ds(Iu,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Du.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,"small"===n.size&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(ys(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:e})=>e.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:e})=>e.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:e})=>!e.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:e,ownerState:t})=>"filled"===e&&t.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:e,ownerState:t,size:n})=>"filled"===e&&t.shrink&&"small"===n,style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:e,ownerState:t})=>"outlined"===e&&t.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),Vu=c.forwardRef(function InputLabel(e,t){const n=useDefaultProps({name:"MuiInputLabel",props:e}),{disableAnimation:a=!1,margin:o,shrink:i,variant:s,className:l,...c}=n,[u,d]=useFormControlState({props:n,states:["size","variant","required","focused"]});let p=i;void 0===p&&d&&(p=d.filled||d.focused||d.adornedStart);const m={...n,disableAnimation:a,formControl:d,shrink:p,size:u.size,variant:u.variant,required:u.required,focused:u.focused},g=useUtilityClasses$23(m);return(0,ka.jsx)(Uu,{"data-shrink":p,ref:t,className:clsx(g.root,l),...c,ownerState:m,classes:g})}),Hu=c.createContext({});function getListUtilityClass(e){return generateUtilityClass("MuiList",e)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);var useUtilityClasses$22=e=>{const{classes:t,disablePadding:n,dense:a,subheader:o}=e;return composeClasses({root:["root",!n&&"padding",a&&"dense",o&&"subheader"]},getListUtilityClass,t)},Wu=ds("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0,isolation:"isolate"}}]}),Gu=c.forwardRef(function List(e,t){const n=useDefaultProps({props:e,name:"MuiList"}),{children:a,className:o,component:i="ul",dense:s=!1,disablePadding:l=!1,subheader:u,...d}=n,p=c.useMemo(()=>({dense:s}),[s]),m={...n,component:i,dense:s,disablePadding:l},g=useUtilityClasses$22(m);return(0,ka.jsx)(Hu.Provider,{value:p,children:(0,ka.jsxs)(Wu,{as:i,className:clsx(g.root,o),ref:t,ownerState:m,...d,children:[u,a]})})}),Yu=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),Ku=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),Qu=c.createContext(void 0);function useRovingTabIndexContext(){const e=c.useContext(Qu);if(void 0===e)throw new Error("MUI: RovingTabIndexContext is missing. Roving tab index items must be placed within a roving tab index provider.");return e}var Zu=Object.is;function fastObjectShallowCompare(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;let n=0,a=0;for(const o in e){if(n+=1,!Zu(e[o],t[o]))return!1;if(!(o in t))return!1}for(const o in t)a+=1;return n===a}var Xu=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown","Home","End"];function useRovingTabIndexRoot(e){const{activeItemId:t,getDefaultActiveItemId:n,orientation:a,isRtl:o=!1,isItemFocusable:i=isItemFocusable,wrap:s=!0}=e,[l,u]=c.useState(t),d=c.useRef(t);let p=l;t!==d.current&&(d.current=t,void 0!==t&&t!==l&&(p=t,u(t)));const m=c.useRef(null),g=c.useRef(new Map),[h,b]=c.useState(0),y=resolveActiveItemId(p,c.useMemo(()=>getOrderedItems(g.current),[h]),i,n),v=c.useRef(y);v.current=y;const S=c.useCallback(()=>{const e=getOrderedItems(g.current);return getItemById(e,resolveActiveItemId(v.current,e,i,n))},[n,i]),x=c.useCallback(()=>g.current,[]),w=useEventCallback(e=>{fastObjectShallowCompare(g.current.get(e.id)??null,e)||(g.current.set(e.id,e),b(e=>e+1))}),C=useEventCallback(e=>{g.current.delete(e)&&b(e=>e+1)}),k=useEventCallback(e=>{u(e)}),E=c.useCallback(e=>v.current===e,[]),P=c.useCallback((e,t,n,a)=>{const o=getNextActiveItem(getNavigableItemsSnapshot(g.current),e,t,n,a??i);return o?(o.element?.focus(),u(o.id),o):null},[i]),T=c.useCallback(e=>({onFocus:e=>{const t=getNavigableItemsSnapshot(g.current),n=findItemIndexByElement(t,e.target);-1!==n&&u(t[n].id)},onKeyDown:e=>{if(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)return;if(!Xu.includes(e.key))return;let t="horizontal"===a?"ArrowLeft":"ArrowUp",n="horizontal"===a?"ArrowRight":"ArrowDown";"horizontal"===a&&o&&(t="ArrowRight",n="ArrowLeft");const i=getNavigableItemsSnapshot(g.current),l=activeElement(ownerDocument(m.current)),c=l===m.current;let u=getCurrentActiveItemIndex(i,l,v.current),d="next";switch(e.key){case t:d="previous",e.preventDefault(),c&&(u=i.length);break;case n:e.preventDefault(),c&&(u=-1);break;case"Home":e.preventDefault(),u=-1;break;case"End":e.preventDefault(),d="previous",u=i.length;break;default:return}P(u,d,s)},ref:handleRefs(e,e=>{m.current=e})}),[P,o,a,s]),R=c.useCallback(e=>{const t=getNavigableItemsSnapshot(g.current),n=activeElement(ownerDocument(m.current));return P(n===m.current?-1:getCurrentActiveItemIndex(t,n,v.current),"next",!0,e)?.id??null},[P]);return c.useMemo(()=>({activeItemId:y,focusNext:R,getActiveItem:S,getContainerProps:T,getItemMap:x,isItemActive:E,registerItem:w,setActiveItemId:k,unregisterItem:C}),[y,R,S,T,x,E,w,k,C])}function useRovingTabIndexItem(e){const{activeItemId:t,registerItem:n,unregisterItem:a}=useRovingTabIndexContext(),o=c.useRef(null),i=c.useMemo(()=>({disabled:e.disabled??!1,element:null,focusableWhenDisabled:e.focusableWhenDisabled??!1,id:e.id,selected:e.selected??!1,textValue:e.textValue}),[e.disabled,e.focusableWhenDisabled,e.id,e.selected,e.textValue]),s=c.useRef(i);s.current=i;const l=c.useCallback(t=>{o.current=t,null!=t?n({...s.current,element:t}):queueMicrotask(()=>{null==o.current&&a(e.id)})},[e.id,n,a]),u=useForkRef(e.ref,l);return Li(()=>{o.current&&n({...i,element:o.current})},[i,n]),Li(()=>{const t=e.id;return()=>{a(t)}},[e.id,a]),{ref:u,tabIndex:t===e.id?0:-1}}function resolveActiveItemId(e,t,n,a){return null!=e?resolveRequestedItemId(e,t,n):resolveDefaultItemId(t,n,a)}function resolveRequestedItemId(e,t,n){const a=findItemIndexById(t,e);return-1===a?getFirstFocusableItemId(t,n):n(t[a])?t[a].id:getNextActiveItem(t,a,"next",!1,n)?.id??null}function resolveDefaultItemId(e,t,n){const a=n?.(e);if(null!=a){const n=getItemById(e,a);if(n&&t(n))return n.id}return getFirstFocusableItemId(e,t)}function getCurrentActiveItemIndex(e,t,n){if(t){const n=findItemIndexByElement(e,t);if(-1!==n)return n}return findItemIndexById(e,n)}function getNextActiveItem(e,t,n,a,o){const i=e.length-1;if(-1===i)return null;let s=!1,l=getNextIndex(t,i,n,a);const c=l;for(;-1!==l;){if(l===c){if(s)return null;s=!0}const t=e[l];if(t&&o(t))return t;l=getNextIndex(l,i,n,a)}return null}function getFirstFocusableItemId(e,t){return e.find(e=>t(e))?.id??null}function getItemById(e,t){return null==t?null:e.find(e=>e.id===t)??null}function findItemIndexById(e,t){return null==t?-1:e.findIndex(e=>e.id===t)}function findItemIndexByElement(e,t){return t?e.findIndex(e=>e.element===t||e.element?.contains(t)):-1}function getOrderedItems(e){const t=Array.from(e.values());if(t.every(e=>null==e.element))return t;return[...t.filter(isConnectedItem).sort((e,t)=>sortByDocumentPosition(e.element,t.element)),...t.filter(e=>!isConnectedItem(e))]}function getNavigableItemsSnapshot(e){return getOrderedItems(e).filter(isConnectedItem)}function getNextIndex(e,t,n,a=!0){return"next"===n?e===t?a?0:-1:e+1:0===e?a?t:-1:e-1}function isItemFocusable(e){return!!e.element&&(!!e.focusableWhenDisabled||!e.disabled&&!e.element.hasAttribute("disabled")&&"true"!==e.element.getAttribute("aria-disabled")&&e.element.hasAttribute("tabindex"))}function isConnectedItem(e){return null!=e.element&&e.element.isConnected}function sortByDocumentPosition(e,t){if(e===t)return 0;const n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}function handleRefs(...e){return t=>{e.forEach(e=>{setRef(e??null,t)})}}var Ju=getScrollbarSize;function focusWithVisible(e,t){if(null!=t)try{e.focus({focusVisible:"keyboard"===t})}catch(n){e.focus()}else e.focus()}function getOpenInteractionType(e){return e?"mousedown"===e.type||"pointerdown"===e.type||"touchstart"===e.type?"pointer":"keydown"===e.type||"click"===e.type&&0===e.detail?"keyboard":null:null}function isEmpty(e){return null==e||"string"==typeof e&&!e.trim()}function areEqualValues(e,t){return"object"==typeof t&&null!==t?e===t:String(e)===String(t)}var ed=c.createContext(null);function useSelectFocusSource(){return c.useContext(ed)}var td=ed.Provider,rd=c.createContext(void 0);function useMenuListContext(){const e=c.useContext(rd);if(void 0===e)throw new Error("MUI: MenuListContext is missing. MenuItems must be placed within Menu or MenuList.");return e}function getItemText(e){const t=e?.element??e;if(!t)return"";if(void 0!==e?.textValue)return e.textValue;let n=t.innerText;return void 0===n&&(n=t.textContent),n??""}function textCriteriaMatches(e,t){if(void 0===t)return!0;let n=getItemText(e);return n=n.trim().toLowerCase(),0!==n.length&&(t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join("")))}function isItemFocusableWithTextCriteria(e,t){return!!textCriteriaMatches(e,t)&&isItemFocusable(e)}function focusInitialItem(e,t){focusWithVisible(e,t)}var nd=c.forwardRef(function MenuList(e,t){const{actions:n,autoFocus:a=!1,autoFocusItem:o=!1,children:i,className:s,disabledItemsFocusable:l=!1,disableListWrap:u=!1,onKeyDown:d,variant:p="selectedMenu",...m}=e,g=c.useRef(null),h=c.useRef(!1),[b,y]=c.useState(!1),v=useSelectFocusSource(),S=c.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null}),x=useRovingTabIndexRoot({activeItemId:void 0,getDefaultActiveItemId:c.useCallback(e=>"selectedMenu"===p?e.find(e=>e.selected&&isItemFocusable(e))?.id??e.find(e=>isItemFocusable(e))?.id??null:e.find(e=>isItemFocusable(e))?.id??null,[p]),orientation:"vertical",wrap:!u}),{activeItemId:w,focusNext:C,getActiveItem:k,getContainerProps:E,getItemMap:P}=x,T=As((e=!1)=>{if(!g.current||!e&&h.current)return null;if(o){const e=k();if(e?.element){const t=Array.from(P().values()).some(e=>e.selected);return y("menu"===p&&t&&!e.selected&&null==v),focusInitialItem(e.element,v),h.current=!0,e.element}return a?(y(!1),g.current.focus(),g.current):null}return a?(y(!1),g.current.focus(),h.current=!0,g.current):(y(!1),null)});_s(()=>{if(!a&&!o)return h.current=!1,void y(!1);T()},[w,o,a,T]),c.useImperativeHandle(n,()=>({adjustStyleForScrollbar:(e,{direction:t})=>{const n=!g.current.style.width;if(e.clientHeight<g.current.clientHeight&&n){const n=`${Ju(Es(e))}px`;g.current.style["rtl"===t?"paddingLeft":"paddingRight"]=n,g.current.style.width=`calc(100% + ${n})`}return g.current},focusInitialTarget:()=>{if(!g.current)return null;const e=Cs(ks(g.current));return e&&Kc(g.current,e)?e:T(!0)}}),[T]);const R=E(),M=Rs(g,R.ref,t),D=c.useMemo(()=>({itemsFocusableWhenDisabled:l,suppressInitialFocusVisible:b,variant:p}),[l,b,p]);return(0,ka.jsx)(Gu,{role:"menu",ref:M,className:s,onKeyDown:As(e=>{if(b&&y(!1),(e.ctrlKey||e.metaKey||e.altKey)&&d)d(e);else{if(R.onKeyDown(e),1===e.key.length){const t=S.current,n=e.key.toLowerCase(),a=performance.now();t.keys.length>0&&(a-t.lastTime>500?(t.keys=[],t.repeating=!0,t.previousKeyMatched=!0):t.repeating&&n!==t.keys[0]&&(t.repeating=!1)),t.lastTime=a,t.keys.push(n);const o=Cs(ks(g.current)),i=o&&!t.repeating&&textCriteriaMatches(o,t);t.previousKeyMatched&&(i||null!=C(e=>isItemFocusableWithTextCriteria(e,t)))?e.preventDefault():t.previousKeyMatched=!1}d&&d(e)}}),onFocus:R.onFocus,tabIndex:-1,...m,children:(0,ka.jsx)(rd.Provider,{value:D,children:(0,ka.jsx)(Qu.Provider,{value:x,children:i})})})});function getPopoverUtilityClass(e){return generateUtilityClass("MuiPopover",e)}generateUtilityClasses("MuiPopover",["root","paper"]);function getOffsetTop(e,t){let n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function getOffsetLeft(e,t){let n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function getTransformOriginValue(e){return[e.horizontal,e.vertical].map(e=>"number"==typeof e?`${e}px`:e).join(" ")}function resolveAnchorEl(e){return"function"==typeof e?e():e}var useUtilityClasses$21=e=>{const{classes:t}=e;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,t)},ad=ds(tu,{name:"MuiPopover",slot:"Root"})({}),od=ds(Gs,{name:"MuiPopover",slot:"Paper"})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),id=c.forwardRef(function Popover(e,t){const n=useDefaultProps({props:e,name:"MuiPopover"}),{action:a,anchorEl:o,anchorOrigin:i={vertical:"top",horizontal:"left"},anchorPosition:s,anchorReference:l="anchorEl",children:u,className:d,container:p,disableAutoFocus:m=!1,elevation:g=8,marginThreshold:h=16,open:b,slots:y={},slotProps:v={},transformOrigin:S={vertical:"top",horizontal:"left"},transitionDuration:x="auto",disableScrollLock:w=!1,...C}=n,k=c.useRef(),E={...n,anchorOrigin:i,anchorReference:l,elevation:g,marginThreshold:h,transformOrigin:S,transitionDuration:x},P=useUtilityClasses$21(E),T=c.useCallback(()=>{if("anchorPosition"===l)return s;const e=resolveAnchorEl(o),t=(e&&1===e.nodeType?e:ks(k.current).body).getBoundingClientRect();return{top:t.top+getOffsetTop(t,i.vertical),left:t.left+getOffsetLeft(t,i.horizontal)}},[o,i.horizontal,i.vertical,s,l]),R=c.useCallback(e=>({vertical:getOffsetTop(e,S.vertical),horizontal:getOffsetLeft(e,S.horizontal)}),[S.horizontal,S.vertical]),M=c.useCallback(e=>{const t={width:e.offsetWidth,height:e.offsetHeight},n=R(t);if("none"===l)return{top:null,left:null,transformOrigin:getTransformOriginValue(n)};const a=T();let i=a.top-n.vertical,s=a.left-n.horizontal;const c=i+t.height,u=s+t.width,d=Es(resolveAnchorEl(o)),p=d.innerHeight-h,m=d.innerWidth-h;if(null!=h&&i<h){const e=i-h;i-=e,n.vertical+=e}else if(null!=h&&c>p){const e=c-p;i-=e,n.vertical+=e}if(null!=h&&s<h){const e=s-h;s-=e,n.horizontal+=e}else if(u>m){const e=u-m;s-=e,n.horizontal+=e}return{top:`${Math.round(i)}px`,left:`${Math.round(s)}px`,transformOrigin:getTransformOriginValue(n)}},[o,l,T,R,h]),[D,O]=c.useState(b),$=c.useCallback(()=>{const e=k.current;if(!e)return;const t=M(e);null!=t.top&&e.style.setProperty("top",t.top),null!=t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,O(!0)},[M]);c.useEffect(()=>(w&&window.addEventListener("scroll",$),()=>window.removeEventListener("scroll",$)),[o,w,$]);const handleEntering=()=>{$()},handleExited=()=>{O(!1)};c.useEffect(()=>{b&&$()}),c.useImperativeHandle(a,()=>b?{updatePosition:()=>{$()}}:null,[b,$]),c.useEffect(()=>{if(!b)return;const e=xs(()=>{$()}),t=Es(resolveAnchorEl(o));return t.addEventListener("resize",e),()=>{e.clear(),t.removeEventListener("resize",e)}},[o,b,$]);let I=x;const N={slots:y,slotProps:v},[L,j]=useSlot("transition",{elementType:Lu,externalForwardedProps:N,ownerState:E,getSlotProps:e=>({...e,onEntering:(t,n)=>{e.onEntering?.(t,n),handleEntering()},onExited:t=>{e.onExited?.(t),handleExited()}}),additionalProps:{appear:!0,in:b}});"auto"!==x||L.muiSupportAuto||(I=void 0);const B=p||(o?ks(resolveAnchorEl(o)).body:void 0),[F,{slots:q,slotProps:U,...V}]=useSlot("root",{ref:t,elementType:ad,externalForwardedProps:{...N,...C},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:y.backdrop},slotProps:{backdrop:mergeSlotProps$1("function"==typeof v.backdrop?v.backdrop(E):v.backdrop,{invisible:!0})},container:B,open:b},ownerState:E,className:clsx(P.root,d)}),[H,W]=useSlot("paper",{ref:k,className:P.paper,elementType:od,externalForwardedProps:N,shouldForwardComponentProp:!0,additionalProps:{elevation:g,style:D?void 0:{opacity:0}},ownerState:E});return(0,ka.jsx)(F,{...V,...!isHostComponent(F)&&{slots:q,slotProps:U,disableAutoFocus:m,disableScrollLock:w},children:(0,ka.jsx)(L,{...j,timeout:I,children:(0,ka.jsx)(H,{...W,children:u})})})});function getMenuUtilityClass(e){return generateUtilityClass("MuiMenu",e)}generateUtilityClasses("MuiMenu",["root","paper","list"]);var sd={vertical:"top",horizontal:"right"},ld={vertical:"top",horizontal:"left"},useUtilityClasses$20=e=>{const{classes:t}=e;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,t)},cd=ds(id,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiMenu",slot:"Root"})({}),ud=ds(od,{name:"MuiMenu",slot:"Paper"})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),dd=ds(nd,{name:"MuiMenu",slot:"List"})({outline:0}),pd=c.forwardRef(function Menu(e,t){const n=useDefaultProps({props:e,name:"MuiMenu"}),{autoFocus:a=!0,children:o,className:i,disableAutoFocusItem:s=!1,onClose:l,open:u,PopoverClasses:d,transitionDuration:p="auto",variant:m="selectedMenu",slots:g={},slotProps:h={},...b}=n,y=useRtl(),v={...n,autoFocus:a,disableAutoFocusItem:s,transitionDuration:p,variant:m},S=useUtilityClasses$20(v),x=a&&u,w=x&&!s,C=c.useRef(null),handleEntering=(e,t)=>{C.current&&(C.current.adjustStyleForScrollbar(e,{direction:y?"rtl":"ltr"}),x&&C.current.focusInitialTarget?.())},handleListKeyDown=e=>{"Tab"===e.key&&(e.preventDefault(),l&&l(e,"tabKeyDown"))},k={slots:g,slotProps:h},E=useSlotProps({elementType:g.root,externalSlotProps:h.root,ownerState:v,className:[S.root,i]}),[P,T]=useSlot("paper",{className:S.paper,elementType:ud,externalForwardedProps:k,shouldForwardComponentProp:!0,ownerState:v}),[R,M]=useSlot("list",{className:S.list,elementType:dd,shouldForwardComponentProp:!0,externalForwardedProps:k,getSlotProps:e=>({...e,onKeyDown:t=>{handleListKeyDown(t),e.onKeyDown?.(t)}}),ownerState:v}),D="function"==typeof h.transition?h.transition(v):h.transition;return(0,ka.jsx)(cd,{disableAutoFocus:a,onClose:l,anchorOrigin:{vertical:"bottom",horizontal:y?"right":"left"},transformOrigin:y?sd:ld,slots:{root:g.root,paper:P,backdrop:g.backdrop,transition:g.transition},slotProps:{root:E,paper:T,backdrop:"function"==typeof h.backdrop?h.backdrop(v):h.backdrop,transition:{...D,onEntering:(...e)=>{handleEntering(...e),D?.onEntering?.(...e)}}},open:u,ref:t,transitionDuration:p,ownerState:v,...b,classes:d,children:(0,ka.jsx)(R,{actions:C,autoFocus:x,autoFocusItem:w,variant:m,...M,children:o})})});function getMenuItemUtilityClass(e){return generateUtilityClass("MuiMenuItem",e)}var md=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),overridesResolver=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},useUtilityClasses$19=e=>{const{disabled:t,dense:n,divider:a,disableGutters:o,selected:i,classes:s}=e,l=composeClasses({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",a&&"divider",i&&"selected"]},getMenuItemUtilityClass,s);return{...s,...l}},fd=ds(il,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiMenuItem",slot:"Root",overridesResolver})(ys(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${md.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${md.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${md.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${md.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${md.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${gu.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${gu.inset}`]:{marginLeft:52},[`& .${Ku.root}`]:{marginTop:0,marginBottom:0},[`& .${Ku.inset}`]:{paddingLeft:36},[`& .${Yu.root}`]:{minWidth:36},variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>!e.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:e})=>e.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${Yu.root} svg`]:{fontSize:"1.25rem"}}}]}))),gd=c.forwardRef(function MenuItem(e,t){const n=useDefaultProps({props:e,name:"MuiMenuItem"}),{autoFocus:a=!1,component:o="li",dense:i=!1,divider:s=!1,disableGutters:l=!1,focusVisibleClassName:u,role:d="menuitem",tabIndex:p,className:m,...g}=n,h=useSelectFocusSource(),b=c.useContext(Hu),y=c.useMemo(()=>({dense:i||b.dense||!1,disableGutters:l}),[b.dense,i,l]),v=useMenuListContext(),S=Ps(),x=v.suppressInitialFocusVisible,w=v.itemsFocusableWhenDisabled,C=c.useRef(null);_s(()=>{a&&C.current&&focusWithVisible(C.current,h)},[a]);const k={...n,dense:y.dense,divider:s,disableGutters:l},E=useUtilityClasses$19(n),{root:P,...T}=E,R=useRovingTabIndexItem({id:S,ref:t,disabled:n.disabled,focusableWhenDisabled:w,selected:n.selected}),M=Rs(C,R.ref);let D;return void 0!==p?D=p:"selectedMenu"===v.variant?D=R.tabIndex:n.disabled&&!w||(D=-1),(0,ka.jsx)(Hu.Provider,{value:y,children:(0,ka.jsx)(fd,{ref:M,role:d,tabIndex:D,component:o,internalNativeButton:!1,focusableWhenDisabled:w,suppressFocusVisible:x,focusVisibleClassName:clsx(E.focusVisible,u),className:clsx(E.root,m),...g,ownerState:k,classes:T})})});function getNativeSelectUtilityClasses(e){return generateUtilityClass("MuiNativeSelect",e)}var hd,bd=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),useUtilityClasses$18=e=>{const{classes:t,variant:n,disabled:a,multiple:o,open:i,error:s}=e;return composeClasses({select:["select",n,a&&"disabled",o&&"multiple",s&&"error"],icon:["icon",`icon${bs(n)}`,i&&"iconOpen",a&&"disabled"]},getNativeSelectUtilityClasses,t)},yd=ds("select",{name:"MuiNativeSelect"})(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${bd.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:e})=>"filled"!==e.variant&&"outlined"!==e.variant,style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),vd=ds(yd,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${bd.multiple}`]:t.multiple}]}})({}),Sd=ds("svg",{name:"MuiNativeSelect"})(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${bd.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:e})=>e.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),xd=ds(Sd,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${bs(n.variant)}`],n.open&&t.iconOpen]}})({}),wd=c.forwardRef(function NativeSelectInput(e,t){const{className:n,disabled:a,error:o,IconComponent:i,inputRef:s,variant:l="standard",...u}=e,d={...e,disabled:a,variant:l,error:o},p=useUtilityClasses$18(d);return(0,ka.jsxs)(c.Fragment,{children:[(0,ka.jsx)(vd,{ownerState:d,className:clsx(p.select,n),disabled:a,ref:s||t,...u}),e.multiple?null:(0,ka.jsx)(xd,{as:i,ownerState:d,className:p.icon})]})}),Cd=ds("fieldset",{name:"MuiNotchedOutlined",shouldForwardProp:rootShouldForwardProp})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),kd=ds("legend",{name:"MuiNotchedOutlined",shouldForwardProp:rootShouldForwardProp})(ys(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:e})=>!e.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:e})=>e.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:e})=>e.withLabel&&e.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function NotchedOutline(e){const{children:t,classes:n,className:a,label:o,notched:i,...s}=e,l=null!=o&&""!==o,c={...e,notched:i,withLabel:l};return(0,ka.jsx)(Cd,{"aria-hidden":!0,className:a,ownerState:c,...s,children:(0,ka.jsx)(kd,{ownerState:c,children:l?(0,ka.jsx)("span",{children:o}):hd||(hd=(0,ka.jsx)("span",{className:"notranslate","aria-hidden":!0,children:""}))})})}var useUtilityClasses$17=e=>{const{classes:t}=e,n=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,t);return{...t,...n}},Ed=ds(lc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(ys(({theme:e})=>{const t="light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${mc.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${mc.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${mc.focused} .${mc.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${mc.focused} .${mc.notchedOutline}`]:{borderColor:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${mc.error} .${mc.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${mc.disabled} .${mc.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:14}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:14}},{props:({ownerState:e})=>e.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:e,size:t})=>e.multiline&&"small"===t,style:{padding:"8.5px 14px"}}]}})),_d=ds(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline"})(ys(({theme:e})=>{const t="light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),Pd=ds(cc,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(ys(({theme:e})=>({padding:"16.5px 14px","&:-webkit-autofill":{...!e.vars&&{WebkitBoxShadow:"light"===e.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.mode?null:"#fff",caretColor:"light"===e.palette.mode?null:"#fff"},borderRadius:"inherit",...e.vars&&e.applyStyles("dark",{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"})},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:e})=>e.multiline,style:{padding:0}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}}]}))),Td=c.forwardRef(function OutlinedInput(e,t){const n=useDefaultProps({props:e,name:"MuiOutlinedInput"}),{fullWidth:a=!1,inputComponent:o="input",label:i,multiline:s=!1,notched:l,slots:u={},slotProps:d={},type:p="text",...m}=n,g=useUtilityClasses$17(n),[h,b]=useFormControlState({props:n,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),y={...n,color:h.color||"primary",disabled:h.disabled,error:h.error,focused:h.focused,formControl:b,fullWidth:a,hiddenLabel:h.hiddenLabel,multiline:s,size:h.size,type:p},v=u.root??Ed,S=u.input??Pd,[x,w]=useSlot("notchedOutline",{elementType:_d,className:g.notchedOutline,shouldForwardComponentProp:!0,ownerState:y,externalForwardedProps:{slots:u,slotProps:d},additionalProps:{label:null!=i&&""!==i&&h.required?(0,ka.jsxs)(c.Fragment,{children:[i," ","*"]}):i}});return(0,ka.jsx)(dc,{slots:{root:v,input:S},slotProps:d,renderSuffix:e=>(0,ka.jsx)(x,{...w,notched:void 0!==l?l:Boolean(e.startAdornment||e.filled||e.focused)}),fullWidth:a,inputComponent:o,multiline:s,ref:t,type:p,...m,classes:{...g,notchedOutline:null}})});Td.muiName="Input";var Ad={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"};function getSelectUtilityClasses(e){return generateUtilityClass("MuiSelect",e)}var Rd,Md=generateUtilityClasses("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","nativeInput","error"]),Dd=2,Od=400,$d=200;function isMouseEventInsideElement(e,t){if(!t)return!1;if(e.composedPath().includes(t))return!0;if(e.target?.nodeType&&t.contains(e.target))return!0;const n=t.getBoundingClientRect();return(0!==n.width||0!==n.height)&&(e.clientX>=n.left-Dd&&e.clientX<=n.right+Dd&&e.clientY>=n.top-Dd&&e.clientY<=n.bottom+Dd)}var Id=ds(yd,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${Md.select}`]:t.select},{[`&.${Md.select}`]:t[n.variant]},{[`&.${Md.error}`]:t.error},{[`&.${Md.multiple}`]:t.multiple}]}})({[`&.${Md.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),Nd=ds(Sd,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.open&&t.iconOpen]}})({}),zd=ds("input",{shouldForwardProp:e=>slotShouldForwardProp(e)&&"classes"!==e,name:"MuiSelect",slot:"NativeInput"})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"}),useUtilityClasses$16=e=>{const{classes:t,variant:n,disabled:a,multiple:o,open:i,error:s}=e;return composeClasses({select:["select",n,a&&"disabled",o&&"multiple",s&&"error"],icon:["icon",i&&"iconOpen",a&&"disabled"],nativeInput:["nativeInput"]},getSelectUtilityClasses,t)},Ld=c.forwardRef(function SelectInput(e,t){const{"aria-describedby":n,"aria-label":a,autoFocus:o,autoWidth:i,children:s,className:l,defaultOpen:u,defaultValue:d,disabled:p,displayEmpty:m,error:g=!1,IconComponent:h,inputRef:b,labelId:y,MenuProps:v={},multiple:S,name:x,onBlur:w,onChange:C,onClose:k,onFocus:E,onKeyDown:P,onMouseDown:T,onOpen:R,open:M,readOnly:D,renderValue:O,required:$,SelectDisplayProps:I={},tabIndex:N,type:L,value:j,variant:B="standard",...F}=e,[q,U]=Ts({controlled:j,default:d,name:"Select"}),[V,H]=Ts({controlled:M,default:u,name:"Select"}),W=c.useRef(null),G=c.useRef(null),Y=c.useRef(null),K=c.useRef(!1),Q=c.useRef(!1),Z=c.useRef(null),X=c.useRef(!1),J=c.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}),ee=useTimeout(),te=useTimeout(),[re,ne]=c.useState(null),{current:ae}=c.useRef(null!=M),[oe,ie]=c.useState(),[se,le]=c.useState(null),ce=Rs(t,b),ue=c.useCallback(e=>{G.current=e,e&&ne(e)},[]),de=re?.parentNode;c.useImperativeHandle(ce,()=>({focus:()=>{G.current.focus()},node:W.current,value:q}),[q]);const pe=null!==re&&V;_s(()=>{K.current=pe},[pe]);const me=c.useCallback(()=>{ee.clear(),te.clear()},[ee,te]),fe=c.useCallback(()=>{me(),X.current=!1,J.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}},[me]),ge=c.useCallback(()=>{Z.current&&(Z.current(),Z.current=null)},[]);c.useEffect(()=>{pe||(fe(),ge())},[pe,fe,ge]),c.useEffect(()=>()=>{fe(),ge()},[fe,ge]),c.useEffect(()=>{if(!pe||!de||i)return;if("undefined"==typeof ResizeObserver)return;const e=new ResizeObserver(()=>{ie(de.clientWidth)});return e.observe(de),()=>{e.disconnect()}},[pe,de,i]),c.useEffect(()=>{u&&V&&re&&!ae&&(ie(i?null:de.clientWidth),G.current.focus())},[re,i]),c.useEffect(()=>{o&&G.current.focus()},[o]),c.useEffect(()=>{if(!y)return;const e=ks(G.current).getElementById(y);if(e){const handler=()=>{getSelection().isCollapsed&&G.current.focus()};return e.addEventListener("click",handler),()=>{e.removeEventListener("click",handler)}}},[y]);const he=As((e,t)=>{e||(fe(),ge()),e?(le(getOpenInteractionType(t)),R&&R(t)):(le(null),k&&k(t)),ae||(K.current=e,ie(i?null:de.clientWidth),H(e))}),scheduleMouseUpSelection=()=>{fe(),Q.current?te.start($d,()=>{J.current.allowUnselectedMouseUp=!0,ee.start($d,()=>{J.current.allowSelectedMouseUp=!0})}):ee.start(Od,()=>{J.current.allowSelectedMouseUp=!0,J.current.allowUnselectedMouseUp=!0})},handleMouseDown=e=>{if(T?.(e),0!==e.button)return;e.preventDefault(),G.current.focus();const t=ks(e.currentTarget);scheduleMouseUpSelection(),ge();const handleMouseUp=e=>{Z.current=null,G.current&&(isMouseEventInsideElement(e,G.current)||isMouseEventInsideElement(e,Y.current)||!K.current&&ae||he(!1,e))};t.addEventListener("mouseup",handleMouseUp,{capture:!0,once:!0}),Z.current=()=>{t.removeEventListener("mouseup",handleMouseUp,!0)},he(!0,e)},handleClose=e=>{he(!1,e)},be=c.Children.toArray(s),handleChange=e=>{const t=be.find(t=>t.props.value===e.target.value);void 0!==t&&(U(t.props.value),C&&C(e,t))},handleItemClick=e=>t=>{let n;if(X.current=!1,t.currentTarget.hasAttribute("tabindex")){if(S){n=Array.isArray(q)?q.slice():[];const t=q.indexOf(e.props.value);-1===t?n.push(e.props.value):n.splice(t,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),q!==n&&(U(n),C)){const a=t.nativeEvent||t,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:n,name:x}}),C(o,e)}S||he(!1,t)}},handleItemMouseUp=(e,t)=>n=>{if(e.props.onMouseUp?.(n),X.current)return void(X.current=!1);const a=!J.current.allowSelectedMouseUp&&t,o=!J.current.allowUnselectedMouseUp&&!t;a||o||n.currentTarget.click()},handleKeyDown=e=>{D||([" ","ArrowUp","ArrowDown","Enter"].includes(e.key)&&(e.preventDefault(),he(!0,e)),P?.(e))},handleBlur=e=>{!pe&&w&&(Object.defineProperty(e,"target",{writable:!0,value:{value:q,name:x}}),w(e))};let ye,ve;delete F["aria-invalid"];const Se=[];let xe=!1,we=!1;(isFilled({value:q})||m)&&(O?ye=O(q):xe=!0);const Ce=be.map(e=>{if(!c.isValidElement(e))return null;let t;if(S){if(!Array.isArray(q))throw new Error(formatMuiErrorMessage(2));t=q.some(t=>areEqualValues(t,e.props.value)),t&&xe&&Se.push(e.props.children)}else t=areEqualValues(q,e.props.value),t&&xe&&(ve=e.props.children);return t&&(we=!0),c.cloneElement(e,{"aria-selected":t?"true":"false",onMouseDown:t=>{X.current=!0,e.props.onMouseDown?.(t)},onPointerDown:t=>{X.current=!0,e.props.onPointerDown?.(t)},onClick:handleItemClick(e),onMouseUp:handleItemMouseUp(e,t),onKeyUp:t=>{" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})});_s(()=>{Q.current=we},[we]),xe&&(ye=S?0===Se.length?null:Se.reduce((e,t,n)=>(e.push(t),n<Se.length-1&&e.push(", "),e),[]):ve);let ke,Ee=oe;!i&&ae&&re&&(Ee=de.clientWidth),ke=void 0!==N?N:p?null:0;const _e=I.id||(x?`mui-component-select-${x}`:void 0),Pe={...e,variant:B,value:q,open:pe,error:g},Te=useUtilityClasses$16(Pe),Ae="function"==typeof v.slotProps?.paper?v.slotProps.paper(Pe):v.slotProps?.paper,Re=Rs(Ae?.ref,Y),Me="function"==typeof v.slotProps?.list?v.slotProps.list(Pe):v.slotProps?.list,De=useId(),Oe=useId();return(0,ka.jsxs)(c.Fragment,{children:[(0,ka.jsx)(Id,{as:"div",ref:ue,tabIndex:ke,role:"combobox","aria-controls":pe?De:void 0,"aria-disabled":p?"true":void 0,"aria-expanded":pe?"true":"false","aria-haspopup":"listbox","aria-label":a,"aria-labelledby":y,"aria-describedby":n,"aria-required":$?"true":void 0,"aria-invalid":g?"true":void 0,onKeyDown:handleKeyDown,onMouseDown:p||D?null:handleMouseDown,onBlur:handleBlur,onFocus:E,...I,ownerState:Pe,className:clsx(I.className,Te.select,l),id:_e,children:isEmpty(ye)?Rd||(Rd=(0,ka.jsx)("span",{className:"notranslate","aria-hidden":!0,children:""})):ye}),(0,ka.jsx)(zd,{"aria-invalid":g,value:Array.isArray(q)?q.join(","):q,name:x,ref:W,"aria-hidden":!0,onChange:handleChange,tabIndex:-1,disabled:p,className:Te.nativeInput,autoFocus:o,required:$,...F,id:F.id??Oe,ownerState:Pe}),(0,ka.jsx)(Nd,{as:h,className:Te.icon,ownerState:Pe}),(0,ka.jsx)(td,{value:se,children:(0,ka.jsx)(pd,{id:`menu-${x||""}`,anchorEl:de,open:pe,onClose:handleClose,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},...v,slotProps:{...v.slotProps,list:{"aria-labelledby":y,role:"listbox","aria-multiselectable":S?"true":void 0,disableListWrap:!0,id:De,...Me},paper:{...Ae,ref:Re,style:{minWidth:Ee,...Ae?.style}}},children:Ce})})]})}),useUtilityClasses$15=e=>{const{classes:t}=e,n=composeClasses({root:["root"]},getSelectUtilityClasses,t);return{...t,...n}},jd={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>rootShouldForwardProp(e)&&"variant"!==e},Bd=ds(qu,jd)(""),Fd=ds(Td,jd)(""),qd=ds(xu,jd)(""),Ud=c.forwardRef(function Select(e,t){const n=useDefaultProps({name:"MuiSelect",props:e}),{autoWidth:a=!1,children:o,classes:i={},className:s,defaultOpen:l=!1,displayEmpty:u=!1,IconComponent:d=gc,id:p,input:m,inputProps:g,label:h,labelId:b,MenuProps:y,multiple:v=!1,native:S=!1,onClose:x,onOpen:w,open:C,renderValue:k,SelectDisplayProps:E,variant:P="outlined",...T}=n,R=S?wd:Ld,[M]=useFormControlState({props:n,states:["variant","error"]}),D=M.variant||P,O={...n,variant:D,classes:i},$=useUtilityClasses$15(O),{root:I,...N}=$,L=m||{standard:(0,ka.jsx)(Bd,{ownerState:O}),outlined:(0,ka.jsx)(Fd,{label:h,ownerState:O}),filled:(0,ka.jsx)(qd,{ownerState:O})}[D],j=Rs(t,getReactElementRef(L));return(0,ka.jsx)(c.Fragment,{children:c.cloneElement(L,{inputComponent:R,inputProps:{children:o,error:M.error,IconComponent:d,variant:D,type:void 0,multiple:v,...S?{id:p}:{autoWidth:a,defaultOpen:l,displayEmpty:u,labelId:b,MenuProps:y,onClose:x,onOpen:w,open:C,renderValue:k,SelectDisplayProps:{id:p,...E}},...g,classes:g?deepmerge(N,g.classes):N,...m?m.props.inputProps:{}},...(v&&S||u)&&"outlined"===D?{notched:!0}:{},ref:j,className:clsx(L.props.className,s,$.root),...!m&&{variant:D},...T})})});function areArraysEqual(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,a)=>n(e,t[a]))}Ud.muiName="Select";var Vd=2,Hd=[],Wd={};function getNewValue(e,t,n,a,o){return 1===n?Math.min(e+t,o):Math.max(e-t,a)}function asc(e,t){return e-t}function findClosest(e,t,n=-1){const{index:a}=e.reduce((e,n,a)=>{const o=Math.abs(t-n);return null==e||o<=e.distance?{distance:o,index:a}:e},null)??Wd;return null==a?a:n>=0&&e[n]===e[a]?n:a}function trackFinger(e,t){if(null!=t.current&&e.changedTouches){const n=e;for(let e=0;e<n.changedTouches.length;e+=1){const a=n.changedTouches[e];if(a.identifier===t.current)return{x:a.clientX,y:a.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function valueToPercent(e,t,n){return 100*(e-t)/(n-t)}function percentToValue(e,t,n){return(n-t)*e+t}function getDecimalPrecision(e){if(Math.abs(e)<1){const t=e.toExponential().split("e-"),n=t[0].split(".")[1];return(n?n.length:0)+parseInt(t[1],10)}const t=e.toString().split(".")[1];return t?t.length:0}function roundValueToStep(e,t,n){const a=Math.round((e-n)/t)*t+n;return Number(a.toFixed(getDecimalPrecision(t)))}function setValueIndex(e,t,n){const a=e.slice();return a[n]=t,a.sort(asc)}function focusThumb(e,t,n,a){const o=Cs(ownerDocument(e.current));if(!Kc(e.current,o)||Number(o?.getAttribute("data-index"))!==t){const n=e.current?.querySelector(`[type="range"][data-index="${t}"]`);null!=n&&(null==a?n.focus({preventScroll:!0}):n.focus({preventScroll:!0,focusVisible:a}))}n&&n(t)}function areValuesEqual(e,t){return"number"==typeof e&&"number"==typeof t?e===t:"object"==typeof e&&"object"==typeof t&&areArraysEqual(e,t)}var Gd={horizontal:{offset:e=>({left:`${e}%`}),leap:e=>({width:`${e}%`})},"horizontal-reverse":{offset:e=>({right:`${e}%`}),leap:e=>({width:`${e}%`})},vertical:{offset:e=>({bottom:`${e}%`}),leap:e=>({height:`${e}%`})}},Identity$1=e=>e;function useSlider(e){const{"aria-labelledby":t,defaultValue:n,disabled:a=!1,disableSwap:o=!1,isRtl:i=!1,marks:s=!1,max:l=100,min:u=0,name:d,onChange:p,onChangeCommitted:m,orientation:g="horizontal",rootRef:h,scale:b=Identity$1,step:y=1,shiftStep:v=10,tabIndex:S,value:x}=e,w=c.useRef(void 0),C=c.useRef(null),[k,E]=c.useState(-1),[P,T]=c.useState(-1),[R,M]=c.useState(!1),D=c.useRef(0),O=c.useRef(-1),$=c.useRef(!1),I=c.useRef(-1),N=useEventCallback(()=>{null!=C.current&&(cancelAnimationFrame(C.current),C.current=null)}),L=c.useRef(null),[j,B]=useControlled({controlled:x,default:n??u,name:"Slider"}),F=useEventCallback((e,t,n)=>{const a="nativeEvent"in e?e.nativeEvent:e,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:t,name:d}}),L.current=t,p?.(o,t,n)}),q=Array.isArray(j),U=c.useMemo(()=>{if("number"==typeof j)return[clamp(j,u,l)];if(null==j)return[u];const e=j.slice().sort(asc);for(let t=0;t<e.length;t+=1){const n=e[t];e[t]=null==n?u:clamp(n,u,l)}return e},[j,u,l]),V=c.useMemo(()=>{if(!0===s&&null!=y){const e=new Array(Math.floor((l-u)/y)+1);for(let t=0;t<e.length;t+=1)e[t]={value:u+y*t};return e}return Array.isArray(s)?s:Hd},[s,y,u,l]),H=c.useMemo(()=>{const e=new Array(V.length);for(let t=0;t<V.length;t+=1)e[t]=V[t].value;return e},[V]),[W,G]=c.useState(-1),Y=c.useRef(null),K=useForkRef(h,Y),createHandleHiddenInputFocus=e=>t=>{const n=Number(t.currentTarget.getAttribute("data-index"));isFocusVisible(t.target)&&G(n),T(n),e?.onFocus?.(t)},createHandleHiddenInputBlur=e=>t=>{isFocusVisible(t.target)||G(-1),T(-1),e?.onBlur?.(t)},changeValue=(e,t)=>{const n=Number(e.currentTarget.getAttribute("data-index")),a=U[n],i=H.indexOf(a);let s=t;if(V&&null==y){const e=H[H.length-1];s=s>=e?e:s<=H[0]?H[0]:s<a?H[i-1]:H[i+1]}if(s=clamp(s,u,l),q){o&&(s=clamp(s,U[n-1]||-1/0,U[n+1]||1/0));const e=s;s=setValueIndex(U,s,n);let t=n;o||(t=s.indexOf(e)),focusThumb(Y,t)}B(s),G(n),p&&!areValuesEqual(s,j)&&F(e,s,n),m&&m(e,L.current??s)},createHandleHiddenInputKeyDown=e=>t=>{if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"].includes(t.key)){t.preventDefault();const e=U[Number(t.currentTarget.getAttribute("data-index"))];let n=null;if(null!=y){const a=t.shiftKey?v:y;switch(t.key){case"ArrowUp":n=getNewValue(e,a,1,u,l);break;case"ArrowRight":n=getNewValue(e,a,i?-1:1,u,l);break;case"ArrowDown":n=getNewValue(e,a,-1,u,l);break;case"ArrowLeft":n=getNewValue(e,a,i?1:-1,u,l);break;case"PageUp":n=getNewValue(e,v,1,u,l);break;case"PageDown":n=getNewValue(e,v,-1,u,l);break;case"Home":n=u;break;case"End":n=l}}else if(V){const a=H[H.length-1],o=H.indexOf(e),s=[i?"ArrowLeft":"ArrowRight","ArrowUp","PageUp","End"];[i?"ArrowRight":"ArrowLeft","ArrowDown","PageDown","Home"].includes(t.key)?n=0===o?H[0]:H[o-1]:s.includes(t.key)&&(n=o===H.length-1?a:H[o+1])}null!=n&&changeValue(t,n)}e?.onKeyDown?.(t)};Li(()=>{const e=Cs(ownerDocument(Y.current));a&&Kc(Y.current,e)&&null!=e&&"blur"in e&&e.blur()},[a]),a&&-1!==k&&E(-1),a&&-1!==W&&G(-1);const createHandleHiddenInputChange=e=>t=>{e.onChange?.(t),changeValue(t,t.currentTarget.valueAsNumber)},Q=c.useRef(void 0);let Z=g;i&&"horizontal"===g&&(Z+="-reverse");const getValueAtFinger=e=>{const{current:t}=Y;if(!t)return null;const{width:n,height:a,bottom:i,left:s}=t.getBoundingClientRect();let c,d;c=Z.startsWith("vertical")?(i-e.y)/a:(e.x-s)/n,Z.includes("-reverse")&&(c=1-c),d=percentToValue(c,u,l),d=y?roundValueToStep(d,y,u):H[findClosest(H,d)],d=clamp(d,u,l);let p=0;if(q){const e=-1!==Q.current;p=e?Q.current:findClosest(U,d,O.current),o&&(d=clamp(d,U[p-1]||-1/0,U[p+1]||1/0));const t=d;d=setValueIndex(U,d,p),o&&e||(p=d.indexOf(t),Q.current=p)}return{newValue:d,activeIndex:p}},X=useEventCallback(e=>{if("pointerId"in e&&e.pointerId!==I.current)return;const t=trackFinger(e,w);if(!t)return;if(D.current+=1,"pointermove"===e.type&&0===e.buttons)return void J(e);const n=getValueAtFinger(t);n&&(focusThumb(Y,n.activeIndex,E,!1),O.current=n.activeIndex,B(n.newValue),!R&&D.current>Vd&&M(!0),p&&!areValuesEqual(n.newValue,j)&&F(e,n.newValue,n.activeIndex))}),J=useEventCallback(e=>{if("pointerId"in e&&e.pointerId!==I.current)return;const t=trackFinger(e,w);if(M(!1),!t)return;const n=getValueAtFinger(t);E(-1),"touchend"===e.type&&T(-1),n&&m&&m(e,L.current??n.newValue),"pointerType"in e&&Y.current?.hasPointerCapture(e.pointerId)&&Y.current.releasePointerCapture(e.pointerId),w.current=void 0,I.current=-1,te()}),ee=useEventCallback(e=>{if(a)return;if($.current){$.current=!1;const t=e.changedTouches[0];return void(null!=t&&(w.current=t.identifier))}const t=e.changedTouches[0];null!=t&&(w.current=t.identifier);const n=trackFinger(e,w);if(!1!==n){Q.current=-1;const t=getValueAtFinger(n);t&&(focusThumb(Y,t.activeIndex,E,!1),O.current=t.activeIndex,B(t.newValue),p&&!areValuesEqual(t.newValue,j)&&F(e,t.newValue,t.activeIndex))}D.current=0;const o=ownerDocument(Y.current);o.addEventListener("touchmove",X,{passive:!0}),o.addEventListener("touchend",J,{passive:!0})}),te=c.useCallback(()=>{const e=ownerDocument(Y.current);e.removeEventListener("pointermove",X),e.removeEventListener("pointerup",J),e.removeEventListener("touchmove",X),e.removeEventListener("touchend",J)},[J,X]);c.useEffect(()=>{const e=Y.current;if(e)return e.addEventListener("touchstart",ee,{passive:!0}),()=>{e.removeEventListener("touchstart",ee),N(),te()}},[te,ee,N]),c.useEffect(()=>{a&&(te(),N())},[a,te,N]);const createHandlePointerDown=e=>t=>{if(e.onPointerDown?.(t),"touch"===t.pointerType&&($.current=!0),a||t.defaultPrevented||0!==t.button)return;const n=trackFinger(t,w);if(!1!==n){Q.current=-1;const e=getValueAtFinger(n);if(e){const n=Y.current?.querySelector(`input[type="range"][data-index="${e.activeIndex}"]`),a=ownerDocument(Y.current),o=null!=n&&n===Cs(a);E(e.activeIndex),O.current=e.activeIndex,o?t.preventDefault():(N(),C.current=requestAnimationFrame(()=>{C.current=null,focusThumb(Y,e.activeIndex,void 0,!1)})),B(e.newValue),p&&!areValuesEqual(e.newValue,j)&&F(t,e.newValue,e.activeIndex)}}D.current=0,I.current=t.pointerId;const o=ownerDocument(Y.current);try{t.currentTarget.setPointerCapture(t.pointerId)}catch{}o.addEventListener("pointermove",X,{passive:!0}),o.addEventListener("pointerup",J)},re=valueToPercent(q?U[0]:u,u,l),ne=valueToPercent(U[U.length-1],u,l)-re,createHandleMouseOver=e=>t=>{e.onMouseOver?.(t),T(Number(t.currentTarget.getAttribute("data-index")))},createHandleMouseLeave=e=>t=>{e.onMouseLeave?.(t),T(-1)},getThumbStyle=e=>{let t;return q?k===e?t=2:O.current===e&&(t=1):k===e&&(t=1),{pointerEvents:-1!==k&&k!==e?"none":void 0,zIndex:t}};let ae;"vertical"===g&&(ae=i?"vertical-rl":"vertical-lr");return{active:k,axis:Z,axisProps:Gd,dragging:R,focusedThumbIndex:W,getHiddenInputProps:(n=Wd)=>{const o=extractEventHandlers(n),s={onChange:createHandleHiddenInputChange(o),onFocus:createHandleHiddenInputFocus(o),onBlur:createHandleHiddenInputBlur(o),onKeyDown:createHandleHiddenInputKeyDown(o)},c={...o,...s};return{tabIndex:S,"aria-labelledby":t,"aria-orientation":g,"aria-valuemax":b(l),"aria-valuemin":b(u),name:d,type:"range",min:e.min,max:e.max,step:null===e.step&&e.marks?"any":e.step??void 0,disabled:a,...n,...c,style:{...Ad,direction:i?"rtl":"ltr",width:"100%",height:"100%",writingMode:ae}}},getRootProps:(e=Wd)=>{const t=extractEventHandlers(e),n={onPointerDown:createHandlePointerDown(t)},a={...t,...n};return{...e,ref:K,...a}},getThumbProps:(e=Wd)=>{const t=extractEventHandlers(e),n={onMouseOver:createHandleMouseOver(t),onMouseLeave:createHandleMouseLeave(t)};return{...e,...t,...n}},marks:V,open:P,range:q,rootRef:K,trackLeap:ne,trackOffset:re,values:U,getThumbStyle}}function getSliderUtilityClass(e){return generateUtilityClass("MuiSlider",e)}var Yd=generateUtilityClasses("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","track","trackInverted","trackFalse","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),useValueLabelClasses=e=>{const{open:t}=e;return{offset:clsx(t&&Yd.valueLabelOpen),circle:Yd.valueLabelCircle,label:Yd.valueLabelLabel}};function SliderValueLabel$1(e){const{children:t,className:n,value:a}=e,o=useValueLabelClasses(e);return t?c.cloneElement(t,{className:t.props.className},(0,ka.jsxs)(c.Fragment,{children:[t.props.children,(0,ka.jsx)("span",{className:clsx(o.offset,n),"aria-hidden":!0,children:(0,ka.jsx)("span",{className:o.circle,children:(0,ka.jsx)("span",{className:o.label,children:a})})})]})):null}function Identity(e){return e}var Kd=ds("span",{name:"MuiSlider",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`color${bs(n.color)}`],"medium"!==n.size&&t[`size${bs(n.size)}`],n.marked&&t.marked,"vertical"===n.orientation&&t.vertical,"inverted"===n.track&&t.trackInverted,!1===n.track&&t.trackFalse]}})(ys(({theme:e})=>({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${Yd.disabled}`]:{pointerEvents:"none",cursor:"default",color:(e.vars||e).palette.grey[400]},[`&.${Yd.dragging}`]:{[`& .${Yd.thumb}, & .${Yd.track}`]:{transition:"none"}},variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}))),Qd=ds("span",{name:"MuiSlider",slot:"Rail"})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,"@media (forced-colors: active)":{border:"1px solid transparent",boxSizing:"border-box"},variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),Zd=ds("span",{name:"MuiSlider",slot:"Track"})(ys(({theme:e})=>({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:e.transitions.create(["left","width","bottom","height"],{duration:e.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{"@media (forced-colors: none)":{border:"none"}}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t,track:"inverted"},style:{...e.vars?{backgroundColor:e.vars.palette.Slider[`${t}Track`],borderColor:e.vars.palette.Slider[`${t}Track`]}:{backgroundColor:e.lighten(e.palette[t].main,.62),borderColor:e.lighten(e.palette[t].main,.62),...e.applyStyles("dark",{backgroundColor:e.darken(e.palette[t].main,.5)}),...e.applyStyles("dark",{borderColor:e.darken(e.palette[t].main,.5)})}}}))]}))),Xd=ds("span",{name:"MuiSlider",slot:"Thumb"})(ys(({theme:e})=>({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:e.transitions.create(["box-shadow","left","bottom"],{duration:e.transitions.duration.shortest}),"@media (forced-colors: active)":{border:"1px solid ButtonBorder"},"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(e.vars||e).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${Yd.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&:hover, &.${Yd.focusVisible}`]:{boxShadow:`0px 0px 0px 8px ${e.alpha((e.vars||e).palette[t].main,.16)}`,"@media (hover: none)":{boxShadow:"none"}},[`&.${Yd.active}`]:{boxShadow:`0px 0px 0px 14px ${e.alpha((e.vars||e).palette[t].main,.16)}`}}}))]}))),Jd=ds(SliderValueLabel$1,{name:"MuiSlider",slot:"ValueLabel"})(ys(({theme:e})=>({zIndex:1,whiteSpace:"nowrap",...e.typography.body2,fontWeight:500,transition:e.transitions.create(["transform"],{duration:e.transitions.duration.shortest}),position:"absolute",backgroundColor:(e.vars||e).palette.grey[600],borderRadius:2,color:(e.vars||e).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${Yd.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${Yd.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:e.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]}))),ep=ds("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:e=>slotShouldForwardProp(e)&&"markActive"!==e,overridesResolver:(e,t)=>{const{markActive:n}=e;return[t.mark,n&&t.markActive]}})(ys(({theme:e})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(e.vars||e).palette.background.paper,opacity:.8}}]}))),tp=ds("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:e=>slotShouldForwardProp(e)&&"markLabelActive"!==e})(ys(({theme:e})=>({...e.typography.body2,color:(e.vars||e).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(e.vars||e).palette.text.primary}}]}))),useUtilityClasses$14=e=>{const{disabled:t,dragging:n,marked:a,orientation:o,track:i,classes:s,color:l,size:c}=e;return composeClasses({root:["root",t&&"disabled",n&&"dragging",a&&"marked","vertical"===o&&"vertical","inverted"===i&&"trackInverted",!1===i&&"trackFalse",l&&`color${bs(l)}`,c&&`size${bs(c)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",t&&"disabled"],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]},getSliderUtilityClass,s)},Forward=({children:e})=>e,rp=c.forwardRef(function Slider(e,t){const n=useDefaultProps({props:e,name:"MuiSlider"}),a=useRtl(),{"aria-label":o,"aria-valuetext":i,"aria-labelledby":s,color:l="primary",classes:u,className:d,disableSwap:p=!1,disabled:m=!1,getAriaLabel:g,getAriaValueText:h,marks:b=!1,max:y=100,min:v=0,name:S,onChange:x,onChangeCommitted:w,orientation:C="horizontal",shiftStep:k=10,size:E="medium",step:P=1,scale:T=Identity,slotProps:R={},slots:M={},tabIndex:D,track:O="normal",value:$,valueLabelDisplay:I="off",valueLabelFormat:N=Identity,...L}=n,j={...n,isRtl:a,max:y,min:v,classes:u,disabled:m,disableSwap:p,orientation:C,marks:b,color:l,size:E,step:P,shiftStep:k,scale:T,track:O,valueLabelDisplay:I,valueLabelFormat:N},{axisProps:B,getRootProps:F,getHiddenInputProps:q,getThumbProps:U,open:V,active:H,axis:W,focusedThumbIndex:G,range:Y,dragging:K,marks:Q,values:Z,trackOffset:X,trackLeap:J,getThumbStyle:ee}=useSlider({...j,rootRef:t});j.marked=Q.length>0&&Q.some(e=>e.label),j.dragging=K,j.focusedThumbIndex=G;const te=useUtilityClasses$14(j),re={slots:M,slotProps:R},[ne,ae]=useSlot("root",{elementType:Kd,getSlotProps:F,externalForwardedProps:{...re,...L},ownerState:j,className:[te.root,d]}),[oe,ie]=useSlot("rail",{elementType:Qd,externalForwardedProps:re,ownerState:j,className:te.rail}),[se,le]=useSlot("track",{elementType:Zd,externalForwardedProps:re,additionalProps:{style:{...B[W].offset(X),...B[W].leap(J)}},ownerState:j,className:te.track}),[ce,ue]=useSlot("thumb",{elementType:Xd,getSlotProps:U,externalForwardedProps:re,ownerState:j,className:te.thumb}),[de,pe]=useSlot("valueLabel",{elementType:Jd,externalForwardedProps:re,ownerState:j,className:te.valueLabel}),[me,fe]=useSlot("mark",{elementType:ep,externalForwardedProps:re,ownerState:j,className:te.mark}),[ge,he]=useSlot("markLabel",{elementType:tp,externalForwardedProps:re,ownerState:j,className:te.markLabel}),[be,ye]=useSlot("input",{elementType:"input",getSlotProps:q,externalForwardedProps:re,ownerState:j});return(0,ka.jsxs)(ne,{...ae,children:[(0,ka.jsx)(oe,{...ie}),(0,ka.jsx)(se,{...le}),Q.filter(e=>e.value>=v&&e.value<=y).map((e,t)=>{const n=valueToPercent(e.value,v,y),a=B[W].offset(n);let o;return o=!1===O?Z.includes(e.value):"normal"===O&&(Y?e.value>=Z[0]&&e.value<=Z[Z.length-1]:e.value<=Z[0])||"inverted"===O&&(Y?e.value<=Z[0]||e.value>=Z[Z.length-1]:e.value>=Z[0]),(0,ka.jsxs)(c.Fragment,{children:[(0,ka.jsx)(me,{"data-index":t,...fe,...!isHostComponent(me)&&{markActive:o},style:{...a,...fe.style},className:clsx(fe.className,o&&te.markActive)}),null!=e.label?(0,ka.jsx)(ge,{"aria-hidden":!0,"data-index":t,...he,...!isHostComponent(ge)&&{markLabelActive:o},style:{...a,...he.style},className:clsx(te.markLabel,he.className,o&&te.markLabelActive),children:e.label}):null]},t)}),Z.map((e,t)=>{const n=valueToPercent(e,v,y),a=B[W].offset(n),l="off"===I?Forward:de;return(0,ka.jsx)(l,{...!isHostComponent(l)&&{valueLabelFormat:N,valueLabelDisplay:I,value:"function"==typeof N?N(T(e),t):N,index:t,open:V===t||H===t||"on"===I,disabled:m},...pe,children:(0,ka.jsx)(ce,{"data-index":t,...ue,className:clsx(te.thumb,ue.className,H===t&&te.active,G===t&&te.focusVisible),style:{...a,...ee(t),...ue.style},children:(0,ka.jsx)(be,{"data-index":t,"aria-label":g?g(t):o,"aria-valuenow":T(e),"aria-labelledby":s,"aria-valuetext":h?h(T(e),t):i,value:Z[t],...ye})})},t)})]})});function getTooltipUtilityClass(e){return generateUtilityClass("MuiTooltip",e)}var np=generateUtilityClasses("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function round(e){return Math.round(1e5*e)/1e5}var useUtilityClasses$13=e=>{const{classes:t,disableInteractive:n,arrow:a,touch:o,placement:i}=e;return composeClasses({popper:["popper",!n&&"popperInteractive",a&&"popperArrow"],tooltip:["tooltip",a&&"tooltipArrow",o&&"touch",`tooltipPlacement${bs(i.split("-")[0])}`],arrow:["arrow"]},getTooltipUtilityClass,t)},ap=ds(Kl,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})(ys(({theme:e})=>({zIndex:(e.vars||e).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:e,open:t})=>t&&!e.disableInteractive,style:{pointerEvents:"auto"}},{props:({ownerState:e})=>e.arrow,style:{[`&[data-popper-placement*="bottom"] .${np.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${np.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${np.arrow}`]:{height:"1em",width:"0.71em",insetInlineStart:0,marginInlineStart:"-0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${np.arrow}`]:{height:"1em",width:"0.71em",insetInlineEnd:0,marginInlineEnd:"-0.71em","&::before":{transformOrigin:"0 0"}}}}]}))),op=ds("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t[`tooltipPlacement${bs(n.placement.split("-")[0])}`]]}})(ys(({theme:e})=>({backgroundColor:e.vars?e.vars.palette.Tooltip.bg:e.alpha(e.palette.grey[700],.92),borderRadius:(e.vars||e).shape.borderRadius,color:(e.vars||e).palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium,[`.${np.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center",marginInlineEnd:"14px"},[`.${np.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center",marginInlineStart:"14px"},[`.${np.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${np.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:e})=>e.arrow,style:{position:"relative",marginBlock:0}},{props:({ownerState:e})=>e.touch,style:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:`${round(16/14)}em`,fontWeight:e.typography.fontWeightRegular}},{props:({ownerState:e})=>e.touch,style:{[`.${np.popper}[data-popper-placement*="left"] &`]:{marginInlineEnd:"24px"},[`.${np.popper}[data-popper-placement*="right"] &`]:{marginInlineStart:"24px"},[`.${np.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"},[`.${np.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),ip=ds("span",{name:"MuiTooltip",slot:"Arrow"})(ys(({theme:e})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:e.vars?e.vars.palette.Tooltip.bg:e.alpha(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}))),sp=!1,lp=new Hs,cp={x:0,y:0};function composeEventHandler(e,t){return(n,...a)=>{t&&t(n,...a),e(n,...a)}}var dp=c.forwardRef(function Tooltip(e,t){const n=useDefaultProps({props:e,name:"MuiTooltip"}),{arrow:a=!1,children:o,classes:i,describeChild:s=!1,disableFocusListener:l=!1,disableHoverListener:u=!1,disableInteractive:d=!1,disableTouchListener:p=!1,enterDelay:m=100,enterNextDelay:g=0,enterTouchDelay:h=700,followCursor:b=!1,id:y,leaveDelay:v=0,leaveTouchDelay:S=1500,onClose:x,onOpen:w,open:C,placement:k="bottom",slotProps:E={},slots:P={},title:T,...R}=n,M=c.isValidElement(o)?o:(0,ka.jsx)("span",{children:o}),D=useTheme(),[O,$]=c.useState(),[I,N]=c.useState(null),L=c.useRef(!1),j=d||b,B=useTimeout(),F=useTimeout(),q=useTimeout(),U=useTimeout(),[V,H]=Ts({controlled:C,default:!1,name:"Tooltip",state:"open"});let W=V;const G=Ps(y),Y=c.useRef(),K=As(()=>{void 0!==Y.current&&(document.body.style.WebkitUserSelect=Y.current,Y.current=void 0),U.clear()});c.useEffect(()=>K,[K]);const handleOpen=e=>{lp.clear(),sp=!0,H(!0),w&&!W&&w(e)},Q=As(e=>{lp.start(800+v,()=>{sp=!1}),H(!1),x&&W&&x(e),B.start(D.transitions.duration.shortest,()=>{L.current=!1})}),handleMouseOver=e=>{L.current&&"touchstart"!==e.type||(O&&O.removeAttribute("title"),F.clear(),q.clear(),m||sp&&g?F.start(sp?g:m,()=>{handleOpen(e)}):handleOpen(e))},handleMouseLeave=e=>{F.clear(),q.start(v,()=>{Q(e)})},[,Z]=c.useState(!1),handleBlur=e=>{const t=e?.target??O;if(!t||t.disabled||!isFocusVisible(t)){Z(!1);const n=e??new Event("blur");!e&&t&&(Object.defineProperty(n,"target",{value:t}),Object.defineProperty(n,"currentTarget",{value:t})),handleMouseLeave(n)}},handleFocus=e=>{if(O||$(e.currentTarget),isFocusVisible(e.target)){const handleNativeBlur=e=>{e.target.disabled&&handleBlur(e),e.target.removeEventListener("blur",handleNativeBlur)};e.target.addEventListener("blur",handleNativeBlur),Z(!0),handleMouseOver(e)}},detectTouchStart=e=>{L.current=!0;const t=M.props;t.onTouchStart&&t.onTouchStart(e)},handleTouchStart=e=>{detectTouchStart(e),q.clear(),B.clear(),K(),Y.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",U.start(h,()=>{document.body.style.WebkitUserSelect=Y.current,handleMouseOver(e)})},handleTouchEnd=e=>{M.props.onTouchEnd&&M.props.onTouchEnd(e),K(),q.start(S,()=>{Q(e)})};c.useEffect(()=>{if(W)return document.addEventListener("keydown",handleKeyDown),()=>{document.removeEventListener("keydown",handleKeyDown)};function handleKeyDown(e){"Escape"===e.key&&Q(e)}},[Q,W]);const X=Rs(getReactElementRef(M),$,t);T||0===T||(W=!1);const J=c.useRef(),handleMouseMove=e=>{const t=M.props;t.onMouseMove&&t.onMouseMove(e),cp={x:e.clientX,y:e.clientY},J.current&&J.current.update()},ee={},te="string"==typeof T;s?(ee.title=W||!te||u?null:T,ee["aria-describedby"]=W?G:null):(ee["aria-label"]=te?T:null,ee["aria-labelledby"]=W&&!te?G:null);const re={...ee,...R,...M.props,className:clsx(R.className,M.props.className),onTouchStart:detectTouchStart,ref:X,...b?{onMouseMove:handleMouseMove}:{}},ne={};p||(re.onTouchStart=handleTouchStart,re.onTouchEnd=handleTouchEnd),u||(re.onMouseOver=composeEventHandler(handleMouseOver,re.onMouseOver),re.onMouseLeave=composeEventHandler(handleMouseLeave,re.onMouseLeave),j||(ne.onMouseOver=handleMouseOver,ne.onMouseLeave=handleMouseLeave)),l||(re.onFocus=composeEventHandler(handleFocus,re.onFocus),re.onBlur=composeEventHandler(handleBlur,re.onBlur),j||(ne.onFocus=handleFocus,ne.onBlur=handleBlur));const ae={...n,arrow:a,disableInteractive:j,placement:k,touch:L.current},oe="function"==typeof E.popper?E.popper(ae):E.popper,ie=c.useMemo(()=>{let e=[{name:"arrow",enabled:Boolean(I),options:{element:I,padding:4}}];return oe?.popperOptions?.modifiers&&(e=e.concat(oe.popperOptions.modifiers)),{...oe?.popperOptions,modifiers:e}},[I,oe?.popperOptions]),se=useUtilityClasses$13(ae),le={slots:P,slotProps:{arrow:E.arrow,popper:oe,tooltip:E.tooltip,transition:E.transition}},[ce,ue]=useSlot("popper",{elementType:ap,externalForwardedProps:le,ownerState:ae,className:se.popper}),[de,pe]=useSlot("transition",{elementType:Lu,externalForwardedProps:le,ownerState:ae}),[me,fe]=useSlot("tooltip",{elementType:op,className:se.tooltip,externalForwardedProps:le,ownerState:ae}),[ge,he]=useSlot("arrow",{elementType:ip,className:se.arrow,externalForwardedProps:le,ownerState:ae,ref:N});return(0,ka.jsxs)(c.Fragment,{children:[c.cloneElement(M,re),(0,ka.jsx)(ce,{as:Kl,placement:k,anchorEl:b?{getBoundingClientRect:()=>({top:cp.y,left:cp.x,right:cp.x,bottom:cp.y,width:0,height:0})}:O,popperRef:J,open:!!O&&W,id:G,transition:!0,...ne,...ue,popperOptions:ie,children:({TransitionProps:e})=>(0,ka.jsx)(de,{timeout:D.transitions.duration.shorter,...e,...pe,children:(0,ka.jsxs)(me,{...fe,children:[T,a?(0,ka.jsx)(ge,{...he}):null]})})})]})});function getSwitchUtilityClass(e){return generateUtilityClass("MuiSwitch",e)}var pp=generateUtilityClasses("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),useUtilityClasses$12=e=>{const{classes:t,edge:n,size:a,color:o,checked:i,disabled:s}=e,l=composeClasses({root:["root",n&&`edge${bs(n)}`,`size${bs(a)}`],switchBase:["switchBase",`color${bs(o)}`,i&&"checked",s&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},getSwitchUtilityClass,t);return{...t,...l}},mp=ds("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${bs(n.edge)}`],t[`size${bs(n.size)}`]]}})({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${pp.thumb}`]:{width:16,height:16},[`& .${pp.switchBase}`]:{padding:4,[`&.${pp.checked}`]:{transform:"translateX(16px)"}}}}]}),fp=ds(Lc,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${pp.input}`]:t.input},"default"!==n.color&&t[`color${bs(n.color)}`]]}})(ys(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${"light"===e.palette.mode?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${pp.checked}`]:{transform:"translateX(20px)"},[`&.${pp.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${"light"===e.palette.mode?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${pp.checked} + .${pp.track}`]:{opacity:.5},[`&.${pp.disabled} + .${pp.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:""+("light"===e.palette.mode?.12:.2)},[`& .${pp.input}`]:{left:"-100%",width:"300%"}})),ys(({theme:e})=>({"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["light"])).map(([t])=>({props:{color:t},style:{[`&.${pp.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${pp.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${"light"===e.palette.mode?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.55)}`}},[`&.${pp.checked} + .${pp.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),gp=ds("span",{name:"MuiSwitch",slot:"Track"})(ys(({theme:e})=>({height:"100%",width:"100%",borderRadius:7,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),"@media (forced-colors: active)":{boxSizing:"border-box",border:"1px solid ButtonBorder"},backgroundColor:e.vars?e.vars.palette.common.onBackground:`${"light"===e.palette.mode?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:""+("light"===e.palette.mode?.38:.3)}))),hp=ds("span",{name:"MuiSwitch",slot:"Thumb"})(ys(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",boxSizing:"border-box",border:"1px solid transparent",width:20,height:20,borderRadius:"50%"}))),bp=c.forwardRef(function Switch(e,t){const n=useDefaultProps({props:e,name:"MuiSwitch"}),{className:a,color:o="primary",edge:i=!1,size:s="medium",sx:l,slots:c={},slotProps:u={},...d}=n,p={...n,color:o,edge:i,size:s},m=useUtilityClasses$12(p),g=u.input,h={slots:c,slotProps:u},[b,y]=useSlot("root",{className:clsx(m.root,a),elementType:mp,externalForwardedProps:h,ownerState:p,additionalProps:{sx:l}}),[v,S]=useSlot("thumb",{className:m.thumb,elementType:hp,externalForwardedProps:h,ownerState:p}),x=(0,ka.jsx)(v,{...S}),[w,C]=useSlot("track",{className:m.track,elementType:gp,externalForwardedProps:h,ownerState:p});return(0,ka.jsxs)(b,{...y,children:[(0,ka.jsx)(fp,{type:"checkbox",icon:x,checkedIcon:x,ref:t,ownerState:p,...d,classes:{...m,root:m.switchBase},slots:{...c.switchBase&&{root:c.switchBase},...c.input&&{input:c.input}},slotProps:{...u.switchBase&&{root:"function"==typeof u.switchBase?u.switchBase(p):u.switchBase},input:mergeSlotProps$1("function"==typeof g?g(p):g,{role:"switch"})}}),(0,ka.jsx)(w,{...C})]})});function getTabUtilityClass(e){return generateUtilityClass("MuiTab",e)}var yp=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","icon"]),useUtilityClasses$11=e=>{const{classes:t,textColor:n,fullWidth:a,wrapped:o,icon:i,label:s,selected:l,disabled:c}=e;return composeClasses({root:["root",i&&s&&"labelIcon",`textColor${bs(n)}`,a&&"fullWidth",o&&"wrapped",l&&"selected",c&&"disabled"],icon:["icon"]},getTabUtilityClass,t)},vp=ds(il,{name:"MuiTab",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${bs(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${yp.icon}`]:t.icon}]}})(ys(({theme:e})=>({...e.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:e})=>e.label&&("top"===e.iconPosition||"bottom"===e.iconPosition),style:{flexDirection:"column"}},{props:({ownerState:e})=>e.label&&"top"!==e.iconPosition&&"bottom"!==e.iconPosition,style:{flexDirection:"row"}},{props:({ownerState:e})=>e.icon&&e.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"top"===t,style:{[`& > .${yp.icon}`]:{marginBottom:6}}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"bottom"===t,style:{[`& > .${yp.icon}`]:{marginTop:6}}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"start"===t,style:{[`& > .${yp.icon}`]:{marginRight:e.spacing(1)}}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"end"===t,style:{[`& > .${yp.icon}`]:{marginLeft:e.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${yp.selected}`]:{opacity:1},[`&.${yp.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${yp.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${yp.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${yp.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${yp.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:({ownerState:e})=>e.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:e})=>e.wrapped,style:{fontSize:e.typography.pxToRem(12)}}]}))),Sp=c.forwardRef(function Tab(e,t){const n=useDefaultProps({props:e,name:"MuiTab"}),{className:a,disabled:o=!1,disableFocusRipple:i=!1,fullWidth:s,icon:l,iconPosition:u="top",indicator:d,label:p,onChange:m,onClick:g,onFocus:h,selected:b,selectionFollowsFocus:y,textColor:v="inherit",value:S,wrapped:x=!1,...w}=n,C=useRovingTabIndexContext(),k=useRovingTabIndexItem({id:S,ref:t,disabled:o,selected:b}),E=0===C.getItemMap().size&&b?0:k.tabIndex,P={...n,disabled:o,disableFocusRipple:i,selected:b,icon:!!l,iconPosition:u,label:!!p,fullWidth:s,textColor:v,wrapped:x},T=useUtilityClasses$11(P),R=l&&p&&c.isValidElement(l)?c.cloneElement(l,{className:clsx(T.icon,l.props.className)}):l,handleClick=e=>{!b&&m&&m(e,S),g&&g(e)},handleFocus=e=>{y&&!b&&m&&m(e,S),h&&h(e)};return(0,ka.jsxs)(vp,{internalNativeButton:!0,focusRipple:!i,className:clsx(T.root,a),ref:k.ref,role:"tab","aria-selected":b,disabled:o,onClick:handleClick,onFocus:handleFocus,tabIndex:E,ownerState:P,...w,children:["top"===u||"start"===u?(0,ka.jsxs)(c.Fragment,{children:[R,p]}):(0,ka.jsxs)(c.Fragment,{children:[p,R]}),d]})}),xp=c.createContext();function getTableUtilityClass(e){return generateUtilityClass("MuiTable",e)}generateUtilityClasses("MuiTable",["root","stickyHeader"]);var useUtilityClasses$10=e=>{const{classes:t,stickyHeader:n}=e;return composeClasses({root:["root",n&&"stickyHeader"]},getTableUtilityClass,t)},wp=ds("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})(ys(({theme:e})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...e.typography.body2,padding:e.spacing(2),color:(e.vars||e).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:e})=>e.stickyHeader,style:{borderCollapse:"separate"}}]}))),Cp="table",kp=c.forwardRef(function Table(e,t){const n=useDefaultProps({props:e,name:"MuiTable"}),{className:a,component:o=Cp,padding:i="normal",size:s="medium",stickyHeader:l=!1,...u}=n,d={...n,component:o,padding:i,size:s,stickyHeader:l},p=useUtilityClasses$10(d),m=c.useMemo(()=>({padding:i,size:s,stickyHeader:l}),[i,s,l]);return(0,ka.jsx)(xp.Provider,{value:m,children:(0,ka.jsx)(wp,{as:o,role:o===Cp?null:"table",ref:t,className:clsx(p.root,a),ownerState:d,...u})})}),Ep=c.createContext();function getTableBodyUtilityClass(e){return generateUtilityClass("MuiTableBody",e)}generateUtilityClasses("MuiTableBody",["root"]);var useUtilityClasses$9=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTableBodyUtilityClass,t)},_p=ds("tbody",{name:"MuiTableBody",slot:"Root"})({display:"table-row-group"}),Pp={variant:"body"},Tp="tbody",Ap=c.forwardRef(function TableBody(e,t){const n=useDefaultProps({props:e,name:"MuiTableBody"}),{className:a,component:o=Tp,...i}=n,s={...n,component:o},l=useUtilityClasses$9(s);return(0,ka.jsx)(Ep.Provider,{value:Pp,children:(0,ka.jsx)(_p,{className:clsx(l.root,a),as:o,ref:t,role:o===Tp?null:"rowgroup",ownerState:s,...i})})});function getTableCellUtilityClass(e){return generateUtilityClass("MuiTableCell",e)}var Rp=generateUtilityClasses("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),useUtilityClasses$8=e=>{const{classes:t,variant:n,align:a,padding:o,size:i,stickyHeader:s}=e;return composeClasses({root:["root",n,s&&"stickyHeader","inherit"!==a&&`align${bs(a)}`,"normal"!==o&&`padding${bs(o)}`,`size${bs(i)}`]},getTableCellUtilityClass,t)},Mp=ds("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${bs(n.size)}`],"normal"!==n.padding&&t[`padding${bs(n.padding)}`],"inherit"!==n.align&&t[`align${bs(n.align)}`],n.stickyHeader&&t.stickyHeader]}})(ys(({theme:e})=>({...e.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:e.vars?`1px solid ${e.vars.palette.TableCell.border}`:`1px solid\n ${"light"===e.palette.mode?e.lighten(e.alpha(e.palette.divider,1),.88):e.darken(e.alpha(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${Rp.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:e})=>e.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),Dp=c.forwardRef(function TableCell(e,t){const n=useDefaultProps({props:e,name:"MuiTableCell"}),{align:a="inherit",className:o,component:i,padding:s,scope:l,size:u,sortDirection:d,variant:p,...m}=n,g=c.useContext(xp),h=c.useContext(Ep),b=h&&"head"===h.variant;let y;y=i||(b?"th":"td");let v=l;"td"===y?v=void 0:!v&&b&&(v="col");const S=p||h&&h.variant,x={...n,align:a,component:y,padding:s||(g&&g.padding?g.padding:"normal"),size:u||(g&&g.size?g.size:"medium"),sortDirection:d,stickyHeader:"head"===S&&g&&g.stickyHeader,variant:S},w=useUtilityClasses$8(x);let C=null;return d&&(C="asc"===d?"ascending":"descending"),(0,ka.jsx)(Mp,{as:y,ref:t,className:clsx(w.root,o),"aria-sort":C,scope:v,ownerState:x,...m})});function getTableContainerUtilityClass(e){return generateUtilityClass("MuiTableContainer",e)}generateUtilityClasses("MuiTableContainer",["root"]);var useUtilityClasses$7=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTableContainerUtilityClass,t)},Op=ds("div",{name:"MuiTableContainer",slot:"Root"})({width:"100%",overflowX:"auto"}),$p=c.forwardRef(function TableContainer(e,t){const n=useDefaultProps({props:e,name:"MuiTableContainer"}),{className:a,component:o="div",...i}=n,s={...n,component:o};return(0,ka.jsx)(Op,{ref:t,as:o,className:clsx(useUtilityClasses$7(s).root,a),ownerState:s,...i})});function getTableHeadUtilityClass(e){return generateUtilityClass("MuiTableHead",e)}generateUtilityClasses("MuiTableHead",["root"]);var useUtilityClasses$6=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTableHeadUtilityClass,t)},Ip=ds("thead",{name:"MuiTableHead",slot:"Root"})({display:"table-header-group"}),Np={variant:"head"},zp="thead",Lp=c.forwardRef(function TableHead(e,t){const n=useDefaultProps({props:e,name:"MuiTableHead"}),{className:a,component:o=zp,...i}=n,s={...n,component:o},l=useUtilityClasses$6(s);return(0,ka.jsx)(Ep.Provider,{value:Np,children:(0,ka.jsx)(Ip,{as:o,className:clsx(l.root,a),ref:t,role:o===zp?null:"rowgroup",ownerState:s,...i})})}),jp=createSvgIcon((0,ka.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),Bp=createSvgIcon((0,ka.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function getTableRowUtilityClass(e){return generateUtilityClass("MuiTableRow",e)}var Fp=generateUtilityClasses("MuiTableRow",["root","selected","hover","head","footer"]),useUtilityClasses$5=e=>{const{classes:t,selected:n,hover:a,head:o,footer:i}=e;return composeClasses({root:["root",n&&"selected",a&&"hover",o&&"head",i&&"footer"]},getTableRowUtilityClass,t)},qp=ds("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})(ys(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${Fp.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Fp.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)}}}))),Up="tr",Vp=c.forwardRef(function TableRow(e,t){const n=useDefaultProps({props:e,name:"MuiTableRow"}),{className:a,component:o=Up,hover:i=!1,selected:s=!1,...l}=n,u=c.useContext(Ep),d={...n,component:o,hover:i,selected:s,head:u&&"head"===u.variant,footer:u&&"footer"===u.variant};return(0,ka.jsx)(qp,{as:o,ref:t,className:clsx(useUtilityClasses$5(d).root,a),role:o===Up?null:"row",ownerState:d,...l})});function easeInOutSin(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function animate(e,t,n,a={},o=()=>{}){const{ease:i=easeInOutSin,duration:s=300}=a;let l=null;const c=t[e];let u=!1;const cancel=()=>{u=!0},step=a=>{if(u)return void o(new Error("Animation cancelled"));null===l&&(l=a);const d=Math.min(1,(a-l)/s);t[e]=i(d)*(n-c)+c,d>=1?requestAnimationFrame(()=>{o(null)}):requestAnimationFrame(step)};return c===n?(o(new Error("Element already at target position")),cancel):(requestAnimationFrame(step),cancel)}var Hp={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll",pointerEvents:"none"};function ScrollbarSize(e){const{onChange:t,...n}=e,a=c.useRef(),o=c.useRef(null),setMeasurements=()=>{a.current=o.current.offsetHeight-o.current.clientHeight};return _s(()=>{const e=xs(()=>{const e=a.current;setMeasurements(),e!==a.current&&t(a.current)}),n=Es(o.current);return n.addEventListener("resize",e),()=>{e.clear(),n.removeEventListener("resize",e)}},[t]),c.useEffect(()=>{setMeasurements(),t(a.current)},[t]),(0,ka.jsx)("div",{style:Hp,...n,ref:o})}function getTabScrollButtonUtilityClass(e){return generateUtilityClass("MuiTabScrollButton",e)}var Wp=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),useUtilityClasses$4=e=>{const{classes:t,orientation:n,disabled:a}=e;return composeClasses({root:["root",n,a&&"disabled"]},getTabScrollButtonUtilityClass,t)},Gp=ds(il,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${Wp.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),Yp=c.forwardRef(function TabScrollButton(e,t){const n=useDefaultProps({props:e,name:"MuiTabScrollButton"}),{className:a,slots:o={},slotProps:i={},direction:s,orientation:l,disabled:c,...u}=n,{nativeButton:d,...p}=u,m=useRtl(),g={isRtl:m,...n},h=useUtilityClasses$4(g),b=o.StartScrollButtonIcon??jp,y=o.EndScrollButtonIcon??Bp,v=useSlotProps({elementType:b,externalSlotProps:i.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:g}),S=useSlotProps({elementType:y,externalSlotProps:i.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:g});return(0,ka.jsx)(Gp,{component:"div",className:clsx(h.root,a),ref:t,role:null,ownerState:g,tabIndex:null,...p,style:{...p.style,..."vertical"===l&&{"--TabScrollButton-svgRotate":`rotate(${m?-90:90}deg)`}},children:"left"===s?(0,ka.jsx)(b,{...v}):(0,ka.jsx)(y,{...S})})});function getTabsUtilityClass(e){return generateUtilityClass("MuiTabs",e)}var Kp=generateUtilityClasses("MuiTabs",["root","vertical","list","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),useUtilityClasses$3=e=>{const{vertical:t,fixed:n,hideScrollbar:a,scrollableX:o,scrollableY:i,centered:s,scrollButtonsHideMobile:l,classes:c}=e;return composeClasses({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",a&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],list:["list",t&&"vertical",s&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",l&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[a&&"hideScrollbar"]},getTabsUtilityClass,c)},Qp=ds("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Kp.scrollButtons}`]:t.scrollButtons},{[`& .${Kp.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})(ys(({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.scrollButtonsHideMobile,style:{[`& .${Kp.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]}))),Zp=ds("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),Xp=ds("div",{name:"MuiTabs",slot:"List",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.list,n.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),Jp=ds("span",{name:"MuiTabs",slot:"Indicator"})(ys(({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:e})=>e.vertical,style:{height:"100%",width:2,right:0}}]}))),em=ds(ScrollbarSize)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),tm={},rm=c.forwardRef(function Tabs(e,t){const n=useDefaultProps({props:e,name:"MuiTabs"}),a=useTheme(),o=useRtl(),{"aria-label":i,"aria-labelledby":s,action:l,centered:u=!1,children:d,className:p,component:m="div",allowScrollButtonsMobile:g=!1,indicatorColor:h="primary",onChange:b,orientation:y="horizontal",scrollButtons:v="auto",selectionFollowsFocus:S,slots:x={},slotProps:w={},textColor:C="primary",value:k,variant:E="standard",visibleScrollbar:P=!1,...T}=n,R="scrollable"===E,M="vertical"===y,D=M?"scrollTop":"scrollLeft",O=M?"top":"left",$=M?"bottom":"right",I=M?"clientHeight":"clientWidth",N=M?"height":"width",L={...n,component:m,allowScrollButtonsMobile:g,indicatorColor:h,orientation:y,vertical:M,scrollButtons:v,textColor:C,variant:E,visibleScrollbar:P,fixed:!R,hideScrollbar:R&&!P,scrollableX:R&&!M,scrollableY:R&&M,centered:u&&!R,scrollButtonsHideMobile:!g},j=useUtilityClasses$3(L),B=useSlotProps({elementType:x.startScrollButtonIcon,externalSlotProps:w.startScrollButtonIcon,ownerState:L}),F=useSlotProps({elementType:x.endScrollButtonIcon,externalSlotProps:w.endScrollButtonIcon,ownerState:L}),[q,U]=c.useState(!1),[V,H]=c.useState(tm),[W,G]=c.useState(!1),[Y,K]=c.useState(!1),[Q,Z]=c.useState(!1),X=!1===k?null:k,[J,ee]=c.useState(!1),[te,re]=c.useState({overflow:"hidden",scrollbarWidth:0}),ne=new Map,ae=c.useRef(null),oe=c.useRef(null),ie={slots:x,slotProps:w},getTabsMeta=()=>{const e=ae.current;let t,n;if(e){const n=e.getBoundingClientRect();t={clientWidth:e.clientWidth,scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollWidth:e.scrollWidth,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}if(e&&!1!==k){const e=oe.current.children;if(e.length>0){const t=e[ne.get(k)];n=t?t.getBoundingClientRect():null}}return{tabsMeta:t,tabMeta:n}},se=As(()=>{const{tabsMeta:e,tabMeta:t}=getTabsMeta();let n,a=0;M?(n="top",t&&e&&(a=t.top-e.top+e.scrollTop)):(n=o?"right":"left",t&&e&&(a=(o?-1:1)*(t[n]-e[n]+e.scrollLeft)));const i={[n]:a,[N]:t?t[N]:0};if("number"!=typeof V[n]||"number"!=typeof V[N])H(i);else{const e=Math.abs(V[n]-i[n]),t=Math.abs(V[N]-i[N]);(e>=1||t>=1)&&H(i)}}),scroll=(e,{animation:t=!0}={})=>{t?animate(D,ae.current,e,{duration:a.transitions.duration.standard}):ae.current[D]=e},moveTabsScroll=e=>{let t=ae.current[D];t+=M?e:e*(o?-1:1),scroll(t)},getScrollSize=()=>{const e=ae.current[I];let t=0;const n=Array.from(oe.current.children);for(let a=0;a<n.length;a+=1){const o=n[a];if(t+o[I]>e){0===a&&(t=e);break}t+=o[I]}return t},handleStartScrollClick=()=>{moveTabsScroll(-1*getScrollSize())},handleEndScrollClick=()=>{moveTabsScroll(getScrollSize())},[le,{onChange:ce,...ue}]=useSlot("scrollbar",{className:clsx(j.scrollableX,j.hideScrollbar),elementType:em,shouldForwardComponentProp:!0,externalForwardedProps:ie,ownerState:L}),de=c.useCallback(e=>{ce?.(e),re({overflow:null,scrollbarWidth:e})},[ce]),[pe,me]=useSlot("scrollButtons",{className:j.scrollButtons,elementType:Yp,externalForwardedProps:ie,ownerState:L,additionalProps:{orientation:y,slots:{StartScrollButtonIcon:x.startScrollButtonIcon,EndScrollButtonIcon:x.endScrollButtonIcon},slotProps:{startScrollButtonIcon:B,endScrollButtonIcon:F}}}),getConditionalElements=()=>{const e={};e.scrollbarSizeListener=R?(0,ka.jsx)(le,{...ue,onChange:de}):null;const t=R&&("auto"===v&&(W||Y)||!0===v);return e.scrollButtonStart=t?(0,ka.jsx)(pe,{direction:o?"right":"left",onClick:handleStartScrollClick,disabled:!W,...me}):null,e.scrollButtonEnd=t?(0,ka.jsx)(pe,{direction:o?"left":"right",onClick:handleEndScrollClick,disabled:!Y,...me}):null,e},fe=As(e=>{const{tabsMeta:t,tabMeta:n}=getTabsMeta();n&&t&&(n[O]<t[O]?scroll(t[D]+(n[O]-t[O]),{animation:e}):n[$]>t[$]&&scroll(t[D]+(n[$]-t[$]),{animation:e}))}),ge=As(()=>{R&&!1!==v&&Z(!Q)});c.useEffect(()=>{const e=xs(()=>{ae.current&&se()});let t;const handleMutation=n=>{n.forEach(e=>{e.removedNodes.forEach(e=>{t?.unobserve(e)}),e.addedNodes.forEach(e=>{t?.observe(e)})}),e(),ge()},n=Es(ae.current);let a;return n.addEventListener("resize",e),"undefined"!=typeof ResizeObserver&&(t=new ResizeObserver(e),Array.from(oe.current.children).forEach(e=>{t.observe(e)})),"undefined"!=typeof MutationObserver&&(a=new MutationObserver(handleMutation),a.observe(oe.current,{childList:!0})),()=>{e.clear(),n.removeEventListener("resize",e),a?.disconnect(),t?.disconnect()}},[se,ge]),c.useEffect(()=>{const e=Array.from(oe.current.children),t=e.length;if("undefined"!=typeof IntersectionObserver&&t>0&&R&&!1!==v){const n=e[0],a=e[t-1],o={root:ae.current,threshold:.99},i=new IntersectionObserver(e=>{G(!e[0].isIntersecting)},o);i.observe(n);const s=new IntersectionObserver(e=>{K(!e[0].isIntersecting)},o);return s.observe(a),()=>{i.disconnect(),s.disconnect()}}},[R,v,Q,d?.length]),c.useEffect(()=>{U(!0)},[]),c.useEffect(()=>{se()}),c.useEffect(()=>{fe(tm!==V)},[fe,V]),c.useImperativeHandle(l,()=>({updateIndicator:se,updateScrollButtons:ge}),[se,ge]);const[he,be]=useSlot("indicator",{className:j.indicator,elementType:Jp,externalForwardedProps:ie,ownerState:L,additionalProps:{style:V}}),ye=(0,ka.jsx)(he,{...be}),ve=useRovingTabIndexRoot({activeItemId:J?void 0:X,orientation:y,isRtl:o}),Se=ve.getContainerProps(),xe=c.Children.toArray(d).filter(c.isValidElement).map((e,t)=>{const n=void 0===e.props.value?t:e.props.value;return ne.set(n,t),{child:e,index:t,childValue:n}}).map(({child:e,childValue:t})=>{const n=t===k;return c.cloneElement(e,{fullWidth:"fullWidth"===E,indicator:n&&!q&&ye,selected:n,selectionFollowsFocus:S,onChange:b,textColor:C,value:t})}),we=getConditionalElements(),[Ce,ke]=useSlot("root",{ref:t,className:clsx(j.root,p),elementType:Qp,externalForwardedProps:{...ie,...T,component:m},ownerState:L}),[Ee,_e]=useSlot("scroller",{ref:ae,className:j.scroller,elementType:Zp,externalForwardedProps:ie,ownerState:L,additionalProps:{style:{overflow:te.overflow,[M?"margin"+(o?"Left":"Right"):"marginBottom"]:P?void 0:-te.scrollbarWidth}}}),Pe=Rs(Se.ref,oe),handleKeyDown=e=>{const t=oe.current;"tab"===Cs(ks(t))?.getAttribute("role")&&Se.onKeyDown(e)},[Te,Ae]=useSlot("list",{ref:Pe,className:j.list,elementType:Xp,externalForwardedProps:ie,ownerState:L,getSlotProps:e=>({...e,onBlur:t=>{Kc(t.currentTarget,t.relatedTarget)||ee(!1),e.onBlur?.(t)},onKeyDown:t=>{handleKeyDown(t),e.onKeyDown?.(t)},onFocus:t=>{ee(!0),Se.onFocus(t),e.onFocus?.(t)}})});return(0,ka.jsxs)(Ce,{...ke,children:[we.scrollButtonStart,we.scrollbarSizeListener,(0,ka.jsxs)(Ee,{..._e,children:[(0,ka.jsx)(Te,{"aria-label":i,"aria-labelledby":s,"aria-orientation":"vertical"===y?"vertical":null,role:"tablist",...Ae,children:(0,ka.jsx)(Qu.Provider,{value:ve,children:xe})}),q&&ye]}),we.scrollButtonEnd]})});function getTextFieldUtilityClass(e){return generateUtilityClass("MuiTextField",e)}generateUtilityClasses("MuiTextField",["root"]);var nm={standard:qu,filled:xu,outlined:Td},useUtilityClasses$2=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTextFieldUtilityClass,t)},am=ds(Cu,{name:"MuiTextField",slot:"Root"})({}),om=c.forwardRef(function TextField(e,t){const n=useDefaultProps({props:e,name:"MuiTextField"}),{autoComplete:a,autoFocus:o=!1,children:i,className:s,color:l="primary",defaultValue:c,disabled:u=!1,error:d=!1,fullWidth:p=!1,helperText:m,id:g,inputRef:h,label:b,maxRows:y,minRows:v,multiline:S=!1,name:x,onBlur:w,onChange:C,onFocus:k,placeholder:E,required:P=!1,rows:T,select:R=!1,slots:M={},slotProps:D={},type:O,value:$,variant:I="outlined",...N}=n,L={...n,autoFocus:o,color:l,disabled:u,error:d,fullWidth:p,multiline:S,required:P,select:R,variant:I},j=useUtilityClasses$2(L),B=useId(g),F=m&&B?`${B}-helper-text`:void 0,q=b&&B?`${B}-label`:void 0,U=nm[I],V={slots:M,slotProps:D},[H,W]=useSlot("select",{elementType:Ud,externalForwardedProps:V,ownerState:L}),G=R&&W.native,Y={},K=V.slotProps.inputLabel;"outlined"===I&&(K&&void 0!==K.shrink&&(Y.notched=K.shrink),Y.label=b),R&&(G||(Y.id=void 0),Y["aria-describedby"]=void 0);const[Q,Z]=useSlot("root",{elementType:am,shouldForwardComponentProp:!0,externalForwardedProps:{...V,...N},ownerState:L,className:clsx(j.root,s),ref:t,additionalProps:{disabled:u,error:d,fullWidth:p,required:P,color:l,variant:I}}),[X,J]=useSlot("input",{elementType:U,externalForwardedProps:V,additionalProps:Y,ownerState:L}),[ee,te]=useSlot("inputLabel",{elementType:Vu,externalForwardedProps:V,ownerState:L}),[re,ne]=useSlot("htmlInput",{elementType:"input",externalForwardedProps:V,ownerState:L}),[ae,oe]=useSlot("formHelperText",{elementType:Mu,externalForwardedProps:V,ownerState:L}),ie=(0,ka.jsx)(X,{"aria-describedby":F,autoComplete:a,autoFocus:o,defaultValue:c,fullWidth:p,multiline:S,name:x,rows:T,maxRows:y,minRows:v,type:O,value:$,id:B,inputRef:h,onBlur:w,onChange:C,onFocus:k,placeholder:E,inputProps:ne,slots:{input:M.htmlInput?re:void 0},...J});return(0,ka.jsxs)(Q,{...Z,children:[null!=b&&""!==b&&(0,ka.jsx)(ee,{htmlFor:R&&!G?void 0:B,id:q,...R&&!G&&{component:"div"},...te,children:b}),R?(0,ka.jsx)(H,{"aria-describedby":F,id:B,labelId:q,value:$,input:ie,...W,children:i}):ie,m&&(0,ka.jsx)(ae,{id:F,...oe,children:m})]})});function getToggleButtonUtilityClass(e){return generateUtilityClass("MuiToggleButton",e)}var im=generateUtilityClasses("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),sm=c.createContext({}),lm=c.createContext(void 0);function isValueSelected(e,t){return void 0!==t&&void 0!==e&&(Array.isArray(t)?t.includes(e):e===t)}var useUtilityClasses$1=e=>{const{classes:t,fullWidth:n,selected:a,disabled:o,size:i,color:s}=e;return composeClasses({root:["root",a&&"selected",o&&"disabled",n&&"fullWidth",`size${bs(i)}`,s]},getToggleButtonUtilityClass,t)},cm=ds(il,{name:"MuiToggleButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`size${bs(n.size)}`]]}})(ys(({theme:e})=>({...e.typography.button,borderRadius:(e.vars||e).shape.borderRadius,padding:11,border:`1px solid ${(e.vars||e).palette.divider}`,color:(e.vars||e).palette.action.active,[`&.${im.disabled}`]:{color:(e.vars||e).palette.action.disabled,border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${im.selected}`]:{color:(e.vars||e).palette.text.primary,backgroundColor:e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.text.primary,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.selectedOpacity)}}}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${im.selected}`]:{color:(e.vars||e).palette[t].main,backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:e.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:e.typography.pxToRem(15)}}]}))),um=c.forwardRef(function ToggleButton(e,t){const{value:n,...a}=c.useContext(sm),o=c.useContext(lm),i=useDefaultProps({props:resolveProps({...a,selected:isValueSelected(e.value,n)},e),name:"MuiToggleButton"}),{children:s,className:l,color:u="standard",disabled:d=!1,disableFocusRipple:p=!1,fullWidth:m=!1,onChange:g,onClick:h,selected:b,size:y="medium",value:v,...S}=i,x={...i,color:u,disabled:d,disableFocusRipple:p,fullWidth:m,size:y},w=useUtilityClasses$1(x),handleChange=e=>{h&&(h(e,v),e.defaultPrevented)||g&&g(e,v)},C=o||"";return(0,ka.jsx)(cm,{className:clsx(a.className,w.root,l,C),internalNativeButton:!0,disabled:d,focusRipple:!p,ref:t,onClick:handleChange,onChange:g,value:v,ownerState:x,"aria-pressed":b,...S,children:s})});function getToggleButtonGroupUtilityClass(e){return generateUtilityClass("MuiToggleButtonGroup",e)}var dm=generateUtilityClasses("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","fullWidth","firstButton","lastButton","middleButton"]),useUtilityClasses=e=>{const{classes:t,orientation:n,fullWidth:a,disabled:o}=e;return composeClasses({root:["root",n,a&&"fullWidth"],grouped:["grouped",o&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]},getToggleButtonGroupUtilityClass,t)},pm=ds("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${dm.grouped}`]:t.grouped},{[`& .${dm.firstButton}`]:t.firstButton},{[`& .${dm.lastButton}`]:t.lastButton},{[`& .${dm.middleButton}`]:t.middleButton},t.root,"vertical"===n.orientation&&t.vertical,n.fullWidth&&t.fullWidth]}})(ys(({theme:e})=>({display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${dm.grouped}`]:{[`&.${dm.selected} + .${dm.grouped}.${dm.selected}`]:{borderTop:0,marginTop:0}},[`& .${dm.firstButton},& .${dm.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${dm.lastButton},& .${dm.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${dm.lastButton}.${im.disabled},& .${dm.middleButton}.${im.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${dm.grouped}`]:{[`&.${dm.selected} + .${dm.grouped}.${dm.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${dm.firstButton},& .${dm.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${dm.lastButton},& .${dm.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${dm.lastButton}.${im.disabled},& .${dm.middleButton}.${im.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),mm=c.forwardRef(function ToggleButtonGroup(e,t){const n=useDefaultProps({props:e,name:"MuiToggleButtonGroup"}),{children:a,className:o,color:i="standard",disabled:s=!1,exclusive:l=!1,fullWidth:u=!1,onChange:d,orientation:p="horizontal",size:m="medium",value:g,...h}=n,b={...n,disabled:s,fullWidth:u,orientation:p,size:m},y=useUtilityClasses(b),v=c.useCallback((e,t)=>{if(!d)return;const n=g&&g.indexOf(t);let a;g&&n>=0?(a=g.slice(),a.splice(n,1)):a=g?g.concat(t):[t],d(e,a)},[d,g]),S=c.useCallback((e,t)=>{d&&d(e,g===t?null:t)},[d,g]),x=c.useMemo(()=>({className:y.grouped,onChange:l?S:v,value:g,size:m,fullWidth:u,color:i,disabled:s}),[y.grouped,l,S,v,g,m,u,i,s]),w=getValidReactChildren(a),C=w.length,getButtonPositionClassName=e=>{const t=0===e,n=e===C-1;return t&&n?"":t?y.firstButton:n?y.lastButton:y.middleButton};return(0,ka.jsx)(pm,{role:"group",className:clsx(y.root,o),ref:t,ownerState:b,...h,children:(0,ka.jsx)(sm.Provider,{value:x,children:w.map((e,t)=>(0,ka.jsx)(lm.Provider,{value:getButtonPositionClassName(t),children:e},t))})})}),fm=createTheme({palette:{mode:"dark",text:{primary:"#FFF5D6",secondary:"#C0B090",muted:"#706050",accent:"#FFD700"},background:{primary:"#0d0d0d",panel:"#141414",header:"#1a1a1a",modal:"#1e1e1e"},primary:{main:"#FFD700"}},typography:{fontFamily:"Roboto Mono, Consolas, monospace",fontSize:13},components:{MuiSwitch:{defaultProps:{size:"small"}},MuiTextField:{defaultProps:{size:"small"}},MuiSelect:{defaultProps:{size:"small"}},MuiPopover:{styleOverrides:{paper:{background:"#000",border:"1px solid #fff"}}},MuiDialog:{styleOverrides:{paper:({theme:e})=>({backgroundImage:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius})}}}}),gm=!1;function useDialogOpen(e){const[t,n]=(0,c.useState)(gm);return(0,c.useEffect)(()=>e?.events?.on?.(X.UI_CONFIG_CHANGED,({open:e})=>{n(Boolean(e))})??void 0,[e]),[t,n]}var hm=Symbol.for("immer-nothing"),bm=Symbol.for("immer-draftable"),ym=Symbol.for("immer-state");function die(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var vm=Object,Sm=vm.getPrototypeOf,xm="constructor",wm="prototype",Cm="configurable",km="enumerable",Em="writable",_m="value",isDraft=e=>!!e&&!!e[ym];function isDraftable(e){return!!e&&(isPlainObject(e)||Am(e)||!!e[bm]||!!e[xm]?.[bm]||isMap(e)||isSet(e))}var Pm=vm[wm][xm].toString(),Tm=new WeakMap;function isPlainObject(e){if(!e||!isObjectish(e))return!1;const t=Sm(e);if(null===t||t===vm[wm])return!0;const n=vm.hasOwnProperty.call(t,xm)&&t[xm];if(n===Object)return!0;if(!isFunction(n))return!1;let a=Tm.get(n);return void 0===a&&(a=Function.toString.call(n),Tm.set(n,a)),a===Pm}function each(e,t,n=!0){0===getArchtype(e)?(n?Reflect.ownKeys(e):vm.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,a)=>t(a,n,e))}function getArchtype(e){const t=e[ym];return t?t.type_:Am(e)?1:isMap(e)?2:isSet(e)?3:0}var has=(e,t,n=getArchtype(e))=>2===n?e.has(t):vm[wm].hasOwnProperty.call(e,t),get=(e,t,n=getArchtype(e))=>2===n?e.get(t):e[t],set=(e,t,n,a=getArchtype(e))=>{2===a?e.set(t,n):3===a?e.add(n):e[t]=n};function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}var Am=Array.isArray,isMap=e=>e instanceof Map,isSet=e=>e instanceof Set,isObjectish=e=>"object"==typeof e,isFunction=e=>"function"==typeof e,isBoolean=e=>"boolean"==typeof e;function isArrayIndex(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var latest=e=>e.copy_||e.base_,getFinalValue=e=>e.modified_?e.copy_:e.base_;function shallowCopy(e,t){if(isMap(e))return new Map(e);if(isSet(e))return new Set(e);if(Am(e))return Array[wm].slice.call(e);const n=isPlainObject(e);if(!0===t||"class_only"===t&&!n){const t=vm.getOwnPropertyDescriptors(e);delete t[ym];let n=Reflect.ownKeys(t);for(let a=0;a<n.length;a++){const o=n[a],i=t[o];!1===i[Em]&&(i[Em]=!0,i[Cm]=!0),(i.get||i.set)&&(t[o]={[Cm]:!0,[Em]:!0,[km]:i[km],[_m]:e[o]})}return vm.create(Sm(e),t)}{const t=Sm(e);if(null!==t&&n)return{...e};const a=vm.create(t);return vm.assign(a,e)}}function freeze(e,t=!1){return isFrozen(e)||isDraft(e)||!isDraftable(e)||(getArchtype(e)>1&&vm.defineProperties(e,{set:Rm,add:Rm,clear:Rm,delete:Rm}),vm.freeze(e),t&&each(e,(e,t)=>{freeze(t,!0)},!1)),e}function dontMutateFrozenCollections(){die(2)}var Rm={[_m]:dontMutateFrozenCollections};function isFrozen(e){return null===e||!isObjectish(e)||vm.isFrozen(e)}var Mm="MapSet",Dm="Patches",Om="ArrayMethods",$m={};function getPlugin(e){const t=$m[e];return t||die(0,e),t}var Im,isPluginLoaded=e=>!!$m[e],getCurrentScope=()=>Im,createScope=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:isPluginLoaded(Mm)?getPlugin(Mm):void 0,arrayMethodsPlugin_:isPluginLoaded(Om)?getPlugin(Om):void 0});function usePatchesInScope(e,t){t&&(e.patchPlugin_=getPlugin(Dm),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function revokeScope(e){leaveScope(e),e.drafts_.forEach(revokeDraft),e.drafts_=null}function leaveScope(e){e===Im&&(Im=e.parent_)}var enterScope=e=>Im=createScope(Im,e);function revokeDraft(e){const t=e[ym];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function processResult(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];if(void 0!==e&&e!==n){n[ym].modified_&&(revokeScope(t),die(4)),isDraftable(e)&&(e=finalize(t,e));const{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(n[ym].base_,e,t)}else e=finalize(t,n);return maybeFreeze(t,e,!0),revokeScope(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==hm?e:void 0}function finalize(e,t){if(isFrozen(t))return t;const n=t[ym];if(!n)return handleValue(t,e.handledSet_,e);if(!isSameScope(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);generatePatchesAndFinalize(n,e)}return n.copy_}function maybeFreeze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&freeze(t,n)}function markStateFinalized(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var isSameScope=(e,t)=>e.scope_===t,Nm=[];function updateDraftInParent(e,t,n,a){const o=latest(e),i=e.type_;if(void 0!==a&&get(o,a,i)===t)return void set(o,a,n,i);if(!e.draftLocations_){const t=e.draftLocations_=new Map;each(o,(e,n)=>{if(isDraft(n)){const a=t.get(n)||[];a.push(e),t.set(n,a)}})}const s=e.draftLocations_.get(t)??Nm;for(const l of s)set(o,l,n,i)}function registerChildFinalizationCallback(e,t,n){e.callbacks_.push(function childCleanup(a){const o=t;if(!o||!isSameScope(o,a))return;a.mapSetPlugin_?.fixSetContents(o);const i=getFinalValue(o);updateDraftInParent(e,o.draft_??o,i,n),generatePatchesAndFinalize(o,a)})}function generatePatchesAndFinalize(e,t){if(e.modified_&&!e.finalized_&&(3===e.type_||1===e.type_&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:n}=t;if(n){const a=n.getPath(e);a&&n.generatePatches_(e,a,t)}markStateFinalized(e)}}function handleCrossReference(e,t,n){const{scope_:a}=e;if(isDraft(n)){const o=n[ym];isSameScope(o,a)&&o.callbacks_.push(function crossReferenceCleanup(){prepareCopy(e),updateDraftInParent(e,n,getFinalValue(o),t)})}else isDraftable(n)&&e.callbacks_.push(function nestedDraftCleanup(){const o=latest(e);3===e.type_?o.has(n)&&handleValue(n,a.handledSet_,a):get(o,t,e.type_)===n&&a.drafts_.length>1&&!0===(e.assigned_.get(t)??!1)&&e.copy_&&handleValue(get(e.copy_,t,e.type_),a.handledSet_,a)})}function handleValue(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||isDraft(e)||t.has(e)||!isDraftable(e)||isFrozen(e)||(t.add(e),each(e,(a,o)=>{if(isDraft(o)){const t=o[ym];isSameScope(t,n)&&(set(e,a,getFinalValue(t),e.type_),markStateFinalized(t))}else isDraftable(o)&&handleValue(o,t,n)})),e}function createProxyProxy(e,t){const n=Am(e),a={type_:n?1:0,scope_:t?t.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let o=a,i=zm;n&&(o=[a],i=Lm);const{revoke:s,proxy:l}=Proxy.revocable(o,i);return a.draft_=l,a.revoke_=s,[l,a]}var zm={get(e,t){if(t===ym)return e;let n=e.scope_.arrayMethodsPlugin_;const a=1===e.type_&&"string"==typeof t;if(a&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);const o=latest(e);if(!has(o,t,e.type_))return readPropFromProto(e,o,t);const i=o[t];if(e.finalized_||!isDraftable(i))return i;if(a&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&isArrayIndex(t))return i;if(i===peek(e.base_,t)){prepareCopy(e);const n=1===e.type_?+t:t,a=createProxy(e.scope_,i,e,n);return e.copy_[n]=a}return i},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const a=getDescriptorFromProto(latest(e),t);if(a?.set)return a.set.call(e.draft_,n),!0;if(!e.modified_){const a=peek(latest(e),t),o=a?.[ym];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(is(n,a)&&(void 0!==n||has(e.base_,t,e.type_)))return!0;prepareCopy(e),markChanged(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_.set(t,!0),handleCrossReference(e,t,n)),!0},deleteProperty:(e,t)=>(prepareCopy(e),void 0!==peek(e.base_,t)||t in e.base_?(e.assigned_.set(t,!1),markChanged(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=latest(e),a=Reflect.getOwnPropertyDescriptor(n,t);return a?{[Em]:!0,[Cm]:1!==e.type_||"length"!==t,[km]:a[km],[_m]:n[t]}:a},defineProperty(){die(11)},getPrototypeOf:e=>Sm(e.base_),setPrototypeOf(){die(12)}},Lm={};for(let xg in zm){let e=zm[xg];Lm[xg]=function(){const t=arguments;return t[0]=t[0][0],e.apply(this,t)}}function peek(e,t){const n=e[ym];return(n?latest(n):e)[t]}function readPropFromProto(e,t,n){const a=getDescriptorFromProto(t,n);return a?_m in a?a[_m]:a.get?.call(e.draft_):void 0}function getDescriptorFromProto(e,t){if(!(t in e))return;let n=Sm(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Sm(n)}}function markChanged(e){e.modified_||(e.modified_=!0,e.parent_&&markChanged(e.parent_))}function prepareCopy(e){e.copy_||(e.assigned_=new Map,e.copy_=shallowCopy(e.base_,e.scope_.immer_.useStrictShallowCopy_))}Lm.deleteProperty=function(e,t){return Lm.set.call(this,e,t,void 0)},Lm.set=function(e,t,n){return zm.set.call(this,e[0],t,n,e[0])};var jm=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(isFunction(e)&&!isFunction(t)){const n=t;t=e;const a=this;return function curriedProduce(e=n,...o){return a.produce(e,e=>t.call(this,e,...o))}}let a;if(isFunction(t)||die(6),void 0===n||isFunction(n)||die(7),isDraftable(e)){const o=enterScope(this),i=createProxy(o,e,void 0);let s=!0;try{a=t(i),s=!1}finally{s?revokeScope(o):leaveScope(o)}return usePatchesInScope(o,n),processResult(a,o)}if(!e||!isObjectish(e)){if(a=t(e),void 0===a&&(a=e),a===hm&&(a=void 0),this.autoFreeze_&&freeze(a,!0),n){const t=[],o=[];getPlugin(Dm).generateReplacementPatches_(e,a,{patches_:t,inversePatches_:o}),n(t,o)}return a}die(1,e)},this.produceWithPatches=(e,t)=>{if(isFunction(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,a;return[this.produce(e,t,(e,t)=>{n=e,a=t}),n,a]},isBoolean(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),isBoolean(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),isBoolean(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){isDraftable(e)||die(8),isDraft(e)&&(e=current(e));const t=enterScope(this),n=createProxy(t,e,void 0);return n[ym].isManual_=!0,leaveScope(t),n}finishDraft(e,t){const n=e&&e[ym];n&&n.isManual_||die(9);const{scope_:a}=n;return usePatchesInScope(a,t),processResult(void 0,a)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const a=t[n];if(0===a.path.length&&"replace"===a.op){e=a.value;break}}n>-1&&(t=t.slice(n+1));const a=getPlugin(Dm).applyPatches_;return isDraft(e)?a(e,t):this.produce(e,e=>a(e,t))}};function createProxy(e,t,n,a){const[o,i]=isMap(t)?getPlugin(Mm).proxyMap_(t,n):isSet(t)?getPlugin(Mm).proxySet_(t,n):createProxyProxy(t,n);return(n?.scope_??getCurrentScope()).drafts_.push(o),i.callbacks_=n?.callbacks_??[],i.key_=a,n&&void 0!==a?registerChildFinalizationCallback(n,i,a):i.callbacks_.push(function rootDraftCleanup(e){e.mapSetPlugin_?.fixSetContents(i);const{patchPlugin_:t}=e;i.modified_&&t&&t.generatePatches_(i,[],e)}),o}function current(e){return isDraft(e)||die(10,e),currentImpl(e)}function currentImpl(e){if(!isDraftable(e)||isFrozen(e))return e;const t=e[ym];let n,a=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=shallowCopy(e,t.scope_.immer_.useStrictShallowCopy_),a=t.scope_.immer_.shouldUseStrictIteration()}else n=shallowCopy(e,!0);return each(n,(e,t)=>{set(n,e,currentImpl(t))},a),t&&(t.finalized_=!1),n}var Bm=(new jm).produce,cloneSettings=(e={})=>Bm(e,()=>{}),toFiniteNumber=(e,t=0)=>{const n=Number(e);return Number.isFinite(n)?n:t},toPriority=e=>toFiniteNumber(e,0),toConfigPriority=e=>Math.max(0,Math.min(26,toPriority(e))),toQuantity=e=>Math.max(0,toFiniteNumber(e,0)),isBlankInput=e=>""===e,toDraftConfigPriority=(e,t=0)=>{if(isBlankInput(e))return"";const n=Number(e);return Number.isFinite(n)?Math.max(0,Math.min(26,n)):t},normalizePriorityDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=toConfigPriority(n),e),{}),buildAffPriorityDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=toPriority(n?.defaultPriority),e),{}),buildDefPriorityDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=toConfigPriority(n?.defaultPriority),e),{}),buildDefStaticDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=Boolean(n?.static),e),{}),buildPrecacheDraft=(e={})=>Object.entries(e?.desiredPrecache??{}).reduce((e,[t,n])=>(e[t]=toQuantity(n),e),{}),buildDraft=(e={})=>({settings:cloneSettings(e.system?.settings??{}),affPriorities:buildAffPriorityDraft(e.affs??{}),defPriorities:buildDefPriorityDraft(e.defs??{}),defStatics:buildDefStaticDraft(e.defs??{}),desiredPrecache:buildPrecacheDraft(e.cache??{})}),keysChangedFrom=(e={},t={})=>[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>e[n]!==t[n]);function useSettingsForm(e){const[t]=(0,c.useState)(()=>buildDraft(e?.runtime?.snapshot?.()??{})),[n,a]=(0,c.useState)(()=>t.settings),[o,i]=(0,c.useState)(()=>t.affPriorities),[s,l]=(0,c.useState)(()=>t.defPriorities),[u,d]=(0,c.useState)(()=>t.defStatics),[p,m]=(0,c.useState)(()=>t.desiredPrecache);return{pending:n,set:(0,c.useCallback)((e,t)=>{a(n=>n?Bm(n,n=>{const a=e.split(".");let o=n;for(let e=0;e<a.length-1;e+=1)o[a[e]]&&"object"==typeof o[a[e]]||(o[a[e]]={}),o=o[a[e]];o[a[a.length-1]]=t}):n)},[]),affPriorities:o,setAffPriority:(0,c.useCallback)((e,t)=>{i(n=>({...n,[e]:toConfigPriority(t)}))},[]),defPriorities:s,setDefPriority:(0,c.useCallback)((e,t)=>{l(n=>{const a=n?.[e]??0;return{...n,[e]:toDraftConfigPriority(t,a)}})},[]),defStatics:u,setDefStatic:(0,c.useCallback)((e,t)=>{d(n=>({...n,[e]:Boolean(t)}))},[]),desiredPrecache:p,setPrecache:(0,c.useCallback)((e,t)=>{m(n=>({...n,[e]:toQuantity(t)}))},[]),commit:(0,c.useCallback)(()=>{if(!e)return;const a=t;keysChangedFrom(o,a.affPriorities).forEach(t=>{e.api?.affs?.setDefaultPriority?.(t,o[t])});const i=normalizePriorityDraft(s);keysChangedFrom(i,a.defPriorities).forEach(t=>{e.api?.defs?.setDefaultPriority?.(t,i[t])}),keysChangedFrom(u,a.defStatics).forEach(t=>{e.api?.defs?.setStatic?.(t,u[t])});const l=keysChangedFrom(p,a.desiredPrecache).reduce((e,t)=>(e[t]=p[t]??0,e),{});Object.keys(l).length&&e.api?.ss?.precache?.set?.(l),n&&e.api?.control?.applySettings?.(n)},[n,o,s,u,p,t,e])}}function LabelledSwitch({label:e,checked:t,onChange:n}){return(0,ka.jsx)(Pu,{control:(0,ka.jsx)(bp,{checked:Boolean(t),onChange:e=>n(e.target.checked),size:"small"}),label:e,sx:{ml:0,mr:0,gap:.5,alignItems:"center",userSelect:"none","& .MuiSwitch-root":{mr:.5},"& .MuiFormControlLabel-label":{fontSize:11,lineHeight:1.25}}})}function ThresholdSlider({label:e,value:t,onChange:n,min:a=0,max:o=100,step:i=5,unit:s="%"}){return(0,ka.jsxs)(wc,{sx:{mb:1},children:[(0,ka.jsxs)(vl,{variant:"body2",sx:{mb:.5,fontSize:11,lineHeight:1.3},children:[e,": ",t,s]}),(0,ka.jsx)(rp,{value:t,min:a,max:o,step:i,onChange:(e,t)=>n(t),size:"small",sx:{color:"primary.main"}})]})}var Fm="50px",qm={minWidth:95,height:25,px:1,fontSize:11,lineHeight:1};function SectionHeader({children:e}){return(0,ka.jsx)(vl,{variant:"overline",sx:{display:"block",color:"primary.main",mt:2,mb:.5,fontWeight:700},children:e})}function SystemSettingsTab({pending:e,set:t}){return e?(0,ka.jsxs)(wc,{sx:{display:"flex",flexWrap:"wrap",alignItems:"flex-start",columnGap:{xs:2,md:Fm},rowGap:2,pt:1},children:[(0,ka.jsxs)(wc,{sx:{flexGrow:0,flexShrink:0,flexBasis:{xs:"100%",md:250},width:{xs:"100%",md:250},minWidth:0},children:[(0,ka.jsx)(SectionHeader,{children:"nexSys Config"}),(0,ka.jsxs)(wc,{sx:{display:"flex",flexDirection:"column"},children:[(0,ka.jsx)(LabelledSwitch,{label:"Load on login",checked:!!e.loadOnLogin,onChange:e=>t("loadOnLogin",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Queue while paused",checked:e.queueWhilePaused,onChange:e=>t("queueWhilePaused",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Override Tab target",checked:e.overrideTab,onChange:e=>t("overrideTab",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Custom Prompt",checked:e.customPrompt,onChange:e=>t("customPrompt",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Debug output",checked:e.debug,onChange:e=>t("debug",e)})]}),(0,ka.jsx)(SectionHeader,{children:"Notices (Echo)"}),(0,ka.jsxs)(wc,{sx:{display:"flex",flexDirection:"column"},children:[(0,ka.jsx)(LabelledSwitch,{label:"Affliction gained",checked:e.notices?.affGot,onChange:e=>t("notices.affGot",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Affliction lost",checked:e.notices?.affLost,onChange:e=>t("notices.affLost",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Defence gained",checked:e.notices?.defGot,onChange:e=>t("notices.defGot",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Defence lost",checked:e.notices?.defLost,onChange:e=>t("notices.defLost",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Balance lost",checked:e.notices?.balanceLost,onChange:e=>t("notices.balanceLost",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Balance recovered",checked:e.notices?.balanceRecovered,onChange:e=>t("notices.balanceRecovered",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Trackable gained",checked:e.notices?.trackableGot,onChange:e=>t("notices.trackableGot",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Trackable lost",checked:e.notices?.trackableLost,onChange:e=>t("notices.trackableLost",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Priority changes",checked:e.notices?.priority,onChange:e=>t("notices.priority",e)}),(0,ka.jsx)(LabelledSwitch,{label:"General output",checked:e.notices?.output,onChange:e=>t("notices.output",e)})]})]}),(0,ka.jsxs)(wc,{sx:{flexGrow:0,flexShrink:0,flexBasis:{xs:"100%",md:190},width:{xs:"100%",md:190},minWidth:0},children:[(0,ka.jsx)(SectionHeader,{children:"Curing Method"}),(0,ka.jsxs)(wc,{sx:{mb:1},children:[(0,ka.jsx)(vl,{variant:"caption",sx:{display:"block",mb:.5,opacity:.7},children:"Curing type"}),(0,ka.jsxs)(mm,{exclusive:!0,size:"small",value:e.ss?.transmutation?"transmutation":"concoctions",onChange:(e,n)=>n&&t("ss.transmutation","transmutation"===n),sx:{"& .MuiToggleButton-root":qm},children:[(0,ka.jsx)(um,{value:"transmutation",children:"Transmutation"}),(0,ka.jsx)(um,{value:"concoctions",children:"Concoctions"})]})]}),(0,ka.jsxs)(wc,{sx:{mb:1},children:[(0,ka.jsx)(vl,{variant:"caption",sx:{display:"block",mb:.5,opacity:.7},children:"Sip priority"}),(0,ka.jsxs)(mm,{exclusive:!0,size:"small",value:e.ss?.sipPriority??"health",onChange:(e,n)=>n&&t("ss.sipPriority",n),sx:{"& .MuiToggleButton-root":qm},children:[(0,ka.jsx)(um,{value:"health",children:"Health"}),(0,ka.jsx)(um,{value:"mana",children:"Mana"})]})]}),(0,ka.jsxs)(wc,{sx:{display:"flex",flexDirection:"column",mt:1},children:[(0,ka.jsx)(LabelledSwitch,{label:"Batching",checked:e.ss?.batch,onChange:e=>t("ss.batch",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Tree Tattoo",checked:"on"===e.ss?.tree,onChange:e=>t("ss.tree",e?"on":"off")}),(0,ka.jsx)(LabelledSwitch,{label:"Focus",checked:e.ss?.focus,onChange:e=>t("ss.focus",e)}),e.ss?.focus&&(0,ka.jsx)(LabelledSwitch,{label:"Focus over Herbs",checked:e.ss?.focusOverHerbs,onChange:e=>t("ss.focusOverHerbs",e)}),(0,ka.jsx)(LabelledSwitch,{label:"Blood clotting",checked:e.ss?.clot,onChange:e=>t("ss.clot",e)}),e.ss?.clot&&(0,ka.jsx)(wc,{sx:{ml:1,mt:2,mb:.5},children:(0,ka.jsx)(om,{label:"Clot above",value:e.ss?.clotAt??"",onChange:e=>t("ss.clotAt",Number(e.target.value)||0),type:"number",size:"small",sx:{width:100,maxWidth:"100%"},slotProps:{htmlInput:{min:0}}})})]})]}),(0,ka.jsxs)(wc,{sx:{flexGrow:0,flexShrink:0,flexBasis:{xs:"100%",md:250},width:{xs:"100%",md:250},minWidth:0},children:[(0,ka.jsx)(SectionHeader,{children:"Thresholds"}),(0,ka.jsx)(ThresholdSlider,{label:"Sip health at",value:e.ss?.sipHealthAt??0,onChange:e=>t("ss.sipHealthAt",e)}),(0,ka.jsx)(ThresholdSlider,{label:"Sip mana at",value:e.ss?.sipManaAt??0,onChange:e=>t("ss.sipManaAt",e)}),(0,ka.jsx)(yu,{sx:{my:1,opacity:.3}}),(0,ka.jsx)(ThresholdSlider,{label:"Moss health at",value:e.ss?.mossHealthAt??0,onChange:e=>t("ss.mossHealthAt",e)}),(0,ka.jsx)(ThresholdSlider,{label:"Moss mana at",value:e.ss?.mossManaAt??0,onChange:e=>t("ss.mossManaAt",e)}),(0,ka.jsx)(yu,{sx:{my:1,opacity:.3}}),(0,ka.jsx)(ThresholdSlider,{label:"Cure fractures above",value:e.ss?.fracturesAbove??0,onChange:e=>t("ss.fracturesAbove",e)}),(0,ka.jsx)(ThresholdSlider,{label:"Use mana abilities above",value:e.ss?.manaThreshold??0,onChange:e=>t("ss.manaThreshold",e)})]})]}):null}function useCombinedRefs(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return(0,e.useMemo)(()=>e=>{n.forEach(t=>t(e))},n)}var Um="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function isWindow(e){const t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function isNode(e){return"nodeType"in e}function getWindow(e){var t,n;return e?isWindow(e)?e:isNode(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function isDocument(e){const{Document:t}=getWindow(e);return e instanceof t}function isHTMLElement(e){return!isWindow(e)&&e instanceof getWindow(e).HTMLElement}function isSVGElement(e){return e instanceof getWindow(e).SVGElement}function getOwnerDocument(e){return e?isWindow(e)?e.document:isNode(e)?isDocument(e)?e:isHTMLElement(e)||isSVGElement(e)?e.ownerDocument:document:document:document}var Vm=Um?e.useLayoutEffect:e.useEffect;function useEvent(t){const n=(0,e.useRef)(t);return Vm(()=>{n.current=t}),(0,e.useCallback)(function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return null==n.current?void 0:n.current(...t)},[])}function useInterval(){const t=(0,e.useRef)(null);return[(0,e.useCallback)((e,n)=>{t.current=setInterval(e,n)},[]),(0,e.useCallback)(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]}function useLatestValue(t,n){void 0===n&&(n=[t]);const a=(0,e.useRef)(t);return Vm(()=>{a.current!==t&&(a.current=t)},n),a}function useLazyMemo(t,n){const a=(0,e.useRef)();return(0,e.useMemo)(()=>{const e=t(a.current);return a.current=e,e},[...n])}function useNodeRef(t){const n=useEvent(t),a=(0,e.useRef)(null);return[a,(0,e.useCallback)(e=>{e!==a.current&&n?.(e,a.current),a.current=e},[])]}function usePrevious(t){const n=(0,e.useRef)();return(0,e.useEffect)(()=>{n.current=t},[t]),n.current}var Hm={};function useUniqueId(t,n){return(0,e.useMemo)(()=>{if(n)return n;const e=null==Hm[t]?0:Hm[t]+1;return Hm[t]=e,t+"-"+e},[t,n])}function createAdjustmentFn(e){return function(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];return a.reduce((t,n)=>{const a=Object.entries(n);for(const[o,i]of a){const n=t[o];null!=n&&(t[o]=n+e*i)}return t},{...t})}}var Wm=createAdjustmentFn(1),Gm=createAdjustmentFn(-1);function hasViewportRelativeCoordinates(e){return"clientX"in e&&"clientY"in e}function isKeyboardEvent(e){if(!e)return!1;const{KeyboardEvent:t}=getWindow(e.target);return t&&e instanceof t}function isTouchEvent(e){if(!e)return!1;const{TouchEvent:t}=getWindow(e.target);return t&&e instanceof t}function getEventCoordinates(e){if(isTouchEvent(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return hasViewportRelativeCoordinates(e)?{x:e.clientX,y:e.clientY}:null}var Ym=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[Ym.Translate.toString(e),Ym.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:a}=e;return t+" "+n+"ms "+a}}}),Km="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function findFirstFocusableNode(e){return e.matches(Km)?e:e.querySelector(Km)}var Qm={display:"none"};function HiddenText(t){let{id:n,value:a}=t;return e.default.createElement("div",{id:n,style:Qm},a)}function LiveRegion(t){let{id:n,announcement:a,ariaLiveType:o="assertive"}=t;return e.default.createElement("div",{id:n,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":o,"aria-atomic":!0},a)}function useAnnouncement(){const[t,n]=(0,e.useState)("");return{announce:(0,e.useCallback)(e=>{null!=e&&n(e)},[]),announcement:t}}var Zm=(0,e.createContext)(null);function useDndMonitor(t){const n=(0,e.useContext)(Zm);(0,e.useEffect)(()=>{if(!n)throw new Error("useDndMonitor must be used within a children of <DndContext>");return n(t)},[t,n])}function useDndMonitorProvider(){const[t]=(0,e.useState)(()=>new Set),n=(0,e.useCallback)(e=>(t.add(e),()=>t.delete(e)),[t]);return[(0,e.useCallback)(e=>{let{type:n,event:a}=e;t.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,a)})},[t]),n]}var Xm,Jm={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},ef={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Accessibility(n){let{announcements:a=ef,container:o,hiddenTextDescribedById:i,screenReaderInstructions:s=Jm}=n;const{announce:l,announcement:c}=useAnnouncement(),u=useUniqueId("DndLiveRegion"),[d,p]=(0,e.useState)(!1);if((0,e.useEffect)(()=>{p(!0)},[]),useDndMonitor((0,e.useMemo)(()=>({onDragStart(e){let{active:t}=e;l(a.onDragStart({active:t}))},onDragMove(e){let{active:t,over:n}=e;a.onDragMove&&l(a.onDragMove({active:t,over:n}))},onDragOver(e){let{active:t,over:n}=e;l(a.onDragOver({active:t,over:n}))},onDragEnd(e){let{active:t,over:n}=e;l(a.onDragEnd({active:t,over:n}))},onDragCancel(e){let{active:t,over:n}=e;l(a.onDragCancel({active:t,over:n}))}}),[l,a])),!d)return null;const m=e.default.createElement(e.default.Fragment,null,e.default.createElement(HiddenText,{id:i,value:s.draggable}),e.default.createElement(LiveRegion,{id:u,announcement:c}));return o?(0,t.createPortal)(m,o):m}function noop(){}function useSensor(t,n){return(0,e.useMemo)(()=>({sensor:t,options:null!=n?n:{}}),[t,n])}function useSensors(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return(0,e.useMemo)(()=>[...n].filter(e=>null!=e),[...n])}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(Xm||(Xm={}));var tf=Object.freeze({x:0,y:0});function distanceBetween(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function getRelativeTransformOrigin(e,t){const n=getEventCoordinates(e);if(!n)return"0 0";const a={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return a.x+"% "+a.y+"%"}function sortCollisionsAsc(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return n-a}function sortCollisionsDesc(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return a-n}function cornersOfRectangle(e){let{left:t,top:n,height:a,width:o}=e;return[{x:t,y:n},{x:t+o,y:n},{x:t,y:n+a},{x:t+o,y:n+a}]}function getFirstCollision(e,t){if(!e||0===e.length)return null;const[n]=e;return t?n[t]:n}var closestCorners=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const o=cornersOfRectangle(t),i=[];for(const s of a){const{id:e}=s,t=n.get(e);if(t){const n=cornersOfRectangle(t),a=o.reduce((e,t,a)=>e+distanceBetween(n[a],t),0),l=Number((a/4).toFixed(4));i.push({id:e,data:{droppableContainer:s,value:l}})}}return i.sort(sortCollisionsAsc)};function getIntersectionRatio(e,t){const n=Math.max(t.top,e.top),a=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),s=o-a,l=i-n;if(a<o&&n<i){const n=t.width*t.height,a=e.width*e.height,o=s*l;return Number((o/(n+a-o)).toFixed(4))}return 0}var rectIntersection=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const o=[];for(const i of a){const{id:e}=i,a=n.get(e);if(a){const n=getIntersectionRatio(a,t);n>0&&o.push({id:e,data:{droppableContainer:i,value:n}})}}return o.sort(sortCollisionsDesc)};function adjustScale(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function getRectDelta(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:tf}function createRectAdjustmentFn(e){return function adjustClientRect(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];return a.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var rf=createRectAdjustmentFn(1);function parseTransform(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function inverseTransform(e,t,n){const a=parseTransform(t);if(!a)return e;const{scaleX:o,scaleY:i,x:s,y:l}=a,c=e.left-s-(1-o)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=o?e.width/o:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}var nf,af={ignoreTransform:!1};function getClientRect(e,t){void 0===t&&(t=af);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:a}=getWindow(e).getComputedStyle(e);t&&(n=inverseTransform(n,t,a))}const{top:a,left:o,width:i,height:s,bottom:l,right:c}=n;return{top:a,left:o,width:i,height:s,bottom:l,right:c}}function getTransformAgnosticClientRect(e){return getClientRect(e,{ignoreTransform:!0})}function getWindowClientRect(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function isFixed(e,t){return void 0===t&&(t=getWindow(e).getComputedStyle(e)),"fixed"===t.position}function isScrollable(e,t){void 0===t&&(t=getWindow(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(e=>{const a=t[e];return"string"==typeof a&&n.test(a)})}function getScrollableAncestors(e,t){const n=[];function findScrollableAncestors(a){if(null!=t&&n.length>=t)return n;if(!a)return n;if(isDocument(a)&&null!=a.scrollingElement&&!n.includes(a.scrollingElement))return n.push(a.scrollingElement),n;if(!isHTMLElement(a)||isSVGElement(a))return n;if(n.includes(a))return n;const o=getWindow(e).getComputedStyle(a);return a!==e&&isScrollable(a,o)&&n.push(a),isFixed(a,o)?n:findScrollableAncestors(a.parentNode)}return e?findScrollableAncestors(e):n}function getFirstScrollableAncestor(e){const[t]=getScrollableAncestors(e,1);return null!=t?t:null}function getScrollableElement(e){return Um&&e?isWindow(e)?e:isNode(e)?isDocument(e)||e===getOwnerDocument(e).scrollingElement?window:isHTMLElement(e)?e:null:null:null}function getScrollXCoordinate(e){return isWindow(e)?e.scrollX:e.scrollLeft}function getScrollYCoordinate(e){return isWindow(e)?e.scrollY:e.scrollTop}function getScrollCoordinates(e){return{x:getScrollXCoordinate(e),y:getScrollYCoordinate(e)}}function isDocumentScrollingElement(e){return!(!Um||!e)&&e===document.scrollingElement}function getScrollPosition(e){const t={x:0,y:0},n=isDocumentScrollingElement(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},a={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=a.y,isRight:e.scrollLeft>=a.x,maxScroll:a,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(nf||(nf={}));var of={x:.2,y:.2};function getScrollDirectionAndSpeed(e,t,n,a,o){let{top:i,left:s,right:l,bottom:c}=n;void 0===a&&(a=10),void 0===o&&(o=of);const{isTop:u,isBottom:d,isLeft:p,isRight:m}=getScrollPosition(e),g={x:0,y:0},h={x:0,y:0},b={height:t.height*o.y,width:t.width*o.x};return!u&&i<=t.top+b.height?(g.y=nf.Backward,h.y=a*Math.abs((t.top+b.height-i)/b.height)):!d&&c>=t.bottom-b.height&&(g.y=nf.Forward,h.y=a*Math.abs((t.bottom-b.height-c)/b.height)),!m&&l>=t.right-b.width?(g.x=nf.Forward,h.x=a*Math.abs((t.right-b.width-l)/b.width)):!p&&s<=t.left+b.width&&(g.x=nf.Backward,h.x=a*Math.abs((t.left+b.width-s)/b.width)),{direction:g,speed:h}}function getScrollElementRect(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:a,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:a,bottom:o,width:e.clientWidth,height:e.clientHeight}}function getScrollOffsets(e){return e.reduce((e,t)=>Wm(e,getScrollCoordinates(t)),tf)}function getScrollXOffset(e){return e.reduce((e,t)=>e+getScrollXCoordinate(t),0)}function getScrollYOffset(e){return e.reduce((e,t)=>e+getScrollYCoordinate(t),0)}function scrollIntoViewIfNeeded(e,t){if(void 0===t&&(t=getClientRect),!e)return;const{top:n,left:a,bottom:o,right:i}=t(e);getFirstScrollableAncestor(e)&&(o<=0||i<=0||n>=window.innerHeight||a>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}var sf,lf,cf=[["x",["left","right"],getScrollXOffset],["y",["top","bottom"],getScrollYOffset]],uf=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=getScrollableAncestors(t),a=getScrollOffsets(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[o,i,s]of cf)for(const e of i)Object.defineProperty(this,e,{get:()=>{const t=s(n),i=a[o]-t;return this.rect[e]+i},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},df=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var a;null==(a=this.target)||a.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function getEventListenerTarget(e){const{EventTarget:t}=getWindow(e);return e instanceof t?e:getOwnerDocument(e)}function hasExceededDistance(e,t){const n=Math.abs(e.x),a=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+a**2)>t:"x"in t&&"y"in t?n>t.x&&a>t.y:"x"in t?n>t.x:"y"in t&&a>t.y}function preventDefault(e){e.preventDefault()}function stopPropagation(e){e.stopPropagation()}!function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"}(sf||(sf={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"}(lf||(lf={}));var pf={start:[lf.Space,lf.Enter],cancel:[lf.Esc],end:[lf.Space,lf.Enter,lf.Tab]},defaultKeyboardCoordinateGetter=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case lf.Right:return{...n,x:n.x+25};case lf.Left:return{...n,x:n.x-25};case lf.Down:return{...n,y:n.y+25};case lf.Up:return{...n,y:n.y-25}}},mf=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new df(getOwnerDocument(t)),this.windowListeners=new df(getWindow(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(sf.Resize,this.handleCancel),this.windowListeners.add(sf.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(sf.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&scrollIntoViewIfNeeded(n),t(tf)}handleKeyDown(e){if(isKeyboardEvent(e)){const{active:t,context:n,options:a}=this.props,{keyboardCodes:o=pf,coordinateGetter:i=defaultKeyboardCoordinateGetter,scrollBehavior:s="smooth"}=a,{code:l}=e;if(o.end.includes(l))return void this.handleEnd(e);if(o.cancel.includes(l))return void this.handleCancel(e);const{collisionRect:c}=n.current,u=c?{x:c.left,y:c.top}:tf;this.referenceCoordinates||(this.referenceCoordinates=u);const d=i(e,{active:t,context:n.current,currentCoordinates:u});if(d){const t=Gm(d,u),a={x:0,y:0},{scrollableAncestors:o}=n.current;for(const n of o){const o=e.code,{isTop:i,isRight:l,isLeft:c,isBottom:u,maxScroll:p,minScroll:m}=getScrollPosition(n),g=getScrollElementRect(n),h={x:Math.min(o===lf.Right?g.right-g.width/2:g.right,Math.max(o===lf.Right?g.left:g.left+g.width/2,d.x)),y:Math.min(o===lf.Down?g.bottom-g.height/2:g.bottom,Math.max(o===lf.Down?g.top:g.top+g.height/2,d.y))},b=o===lf.Right&&!l||o===lf.Left&&!c,y=o===lf.Down&&!u||o===lf.Up&&!i;if(b&&h.x!==d.x){const e=n.scrollLeft+t.x,i=o===lf.Right&&e<=p.x||o===lf.Left&&e>=m.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:s});a.x=i?n.scrollLeft-e:o===lf.Right?n.scrollLeft-p.x:n.scrollLeft-m.x,a.x&&n.scrollBy({left:-a.x,behavior:s});break}if(y&&h.y!==d.y){const e=n.scrollTop+t.y,i=o===lf.Down&&e<=p.y||o===lf.Up&&e>=m.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:s});a.y=i?n.scrollTop-e:o===lf.Down?n.scrollTop-p.y:n.scrollTop-m.y,a.y&&n.scrollBy({top:-a.y,behavior:s});break}}this.handleMove(e,Wm(Gm(d,this.referenceCoordinates),a))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};function isDistanceConstraint(e){return Boolean(e&&"distance"in e)}function isDelayConstraint(e){return Boolean(e&&"delay"in e)}mf.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:a=pf,onActivation:o}=t,{active:i}=n;const{code:s}=e.nativeEvent;if(a.start.includes(s)){const t=i.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),o?.({event:e.nativeEvent}),!0)}return!1}}];var ff=class{constructor(e,t,n){var a;void 0===n&&(n=getEventListenerTarget(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:o}=e,{target:i}=o;this.props=e,this.events=t,this.document=getOwnerDocument(i),this.documentListeners=new df(this.document),this.listeners=new df(n),this.windowListeners=new df(getWindow(i)),this.initialCoordinates=null!=(a=getEventCoordinates(o))?a:tf,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(sf.Resize,this.handleCancel),this.windowListeners.add(sf.DragStart,preventDefault),this.windowListeners.add(sf.VisibilityChange,this.handleCancel),this.windowListeners.add(sf.ContextMenu,preventDefault),this.documentListeners.add(sf.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(isDelayConstraint(t))return this.timeoutId=setTimeout(this.handleStart,t.delay),void this.handlePending(t);if(isDistanceConstraint(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){const{active:n,onPending:a}=this.props;a(n,e,this.initialCoordinates,t)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(sf.Click,stopPropagation,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(sf.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:a,props:o}=this,{onMove:i,options:{activationConstraint:s}}=o;if(!a)return;const l=null!=(t=getEventCoordinates(e))?t:tf,c=Gm(a,l);if(!n&&s){if(isDistanceConstraint(s)){if(null!=s.tolerance&&hasExceededDistance(c,s.tolerance))return this.handleCancel();if(hasExceededDistance(c,s.distance))return this.handleStart()}return isDelayConstraint(s)&&hasExceededDistance(c,s.tolerance)?this.handleCancel():void this.handlePending(s,c)}e.cancelable&&e.preventDefault(),i(l)}handleEnd(){const{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){const{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===lf.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}},gf={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}},hf=class extends ff{constructor(e){const{event:t}=e,n=getOwnerDocument(t.target);super(e,gf,n)}};hf.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return!(!n.isPrimary||0!==n.button)&&(a?.({event:n}),!0)}}];var bf,yf={move:{name:"mousemove"},end:{name:"mouseup"}};!function(e){e[e.RightClick=2]="RightClick"}(bf||(bf={})),class extends ff{constructor(e){super(e,yf,getOwnerDocument(e.event.target))}}.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return n.button!==bf.RightClick&&(a?.({event:n}),!0)}}];var vf,Sf,xf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}},wf=class extends ff{constructor(e){super(e,xf)}static setup(){return window.addEventListener(xf.move.name,noop,{capture:!1,passive:!1}),function teardown(){window.removeEventListener(xf.move.name,noop)};function noop(){}}};function useAutoScroller(t){let{acceleration:n,activator:a=vf.Pointer,canScroll:o,draggingRect:i,enabled:s,interval:l=5,order:c=Sf.TreeOrder,pointerCoordinates:u,scrollableAncestors:d,scrollableAncestorRects:p,delta:m,threshold:g}=t;const h=useScrollIntent({delta:m,disabled:!s}),[b,y]=useInterval(),v=(0,e.useRef)({x:0,y:0}),S=(0,e.useRef)({x:0,y:0}),x=(0,e.useMemo)(()=>{switch(a){case vf.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case vf.DraggableRect:return i}},[a,i,u]),w=(0,e.useRef)(null),C=(0,e.useCallback)(()=>{const e=w.current;if(!e)return;const t=v.current.x*S.current.x,n=v.current.y*S.current.y;e.scrollBy(t,n)},[]),k=(0,e.useMemo)(()=>c===Sf.TreeOrder?[...d].reverse():d,[c,d]);(0,e.useEffect)(()=>{if(s&&d.length&&x){for(const e of k){if(!1===(null==o?void 0:o(e)))continue;const t=p[d.indexOf(e)];if(!t)continue;const{direction:a,speed:i}=getScrollDirectionAndSpeed(e,t,x,n,g);for(const e of["x","y"])h[e][a[e]]||(i[e]=0,a[e]=0);if(i.x>0||i.y>0)return y(),w.current=e,b(C,l),v.current=i,void(S.current=a)}v.current={x:0,y:0},S.current={x:0,y:0},y()}else y()},[n,C,o,y,s,l,JSON.stringify(x),JSON.stringify(h),b,d,k,p,JSON.stringify(g)])}wf.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;const{touches:o}=n;return!(o.length>1)&&(a?.({event:n}),!0)}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(vf||(vf={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(Sf||(Sf={}));var Cf,kf,Ef={x:{[nf.Backward]:!1,[nf.Forward]:!1},y:{[nf.Backward]:!1,[nf.Forward]:!1}};function useScrollIntent(e){let{delta:t,disabled:n}=e;const a=usePrevious(t);return useLazyMemo(e=>{if(n||!a||!e)return Ef;const o={x:Math.sign(t.x-a.x),y:Math.sign(t.y-a.y)};return{x:{[nf.Backward]:e.x[nf.Backward]||-1===o.x,[nf.Forward]:e.x[nf.Forward]||1===o.x},y:{[nf.Backward]:e.y[nf.Backward]||-1===o.y,[nf.Forward]:e.y[nf.Forward]||1===o.y}}},[n,t,a])}function useCachedNode(e,t){const n=null!=t?e.get(t):void 0,a=n?n.node.current:null;return useLazyMemo(e=>{var n;return null==t?null:null!=(n=null!=a?a:e)?n:null},[a,t])}function useCombineActivators(t,n){return(0,e.useMemo)(()=>t.reduce((e,t)=>{const{sensor:a}=t;return[...e,...a.activators.map(e=>({eventName:e.eventName,handler:n(e.handler,t)}))]},[]),[t,n])}!function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"}(Cf||(Cf={})),function(e){e.Optimized="optimized"}(kf||(kf={}));var _f=new Map;function useDroppableMeasuring(t,n){let{dragging:a,dependencies:o,config:i}=n;const[s,l]=(0,e.useState)(null),{frequency:c,measure:u,strategy:d}=i,p=(0,e.useRef)(t),m=isDisabled(),g=useLatestValue(m),h=(0,e.useCallback)(function(e){void 0===e&&(e=[]),g.current||l(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[g]),b=(0,e.useRef)(null),y=useLazyMemo(e=>{if(m&&!a)return _f;if(!e||e===_f||p.current!==t||null!=s){const e=new Map;for(let n of t){if(!n)continue;if(s&&s.length>0&&!s.includes(n.id)&&n.rect.current){e.set(n.id,n.rect.current);continue}const t=n.node.current,a=t?new uf(u(t),t):null;n.rect.current=a,a&&e.set(n.id,a)}return e}return e},[t,s,a,m,u]);return(0,e.useEffect)(()=>{p.current=t},[t]),(0,e.useEffect)(()=>{m||h()},[a,m]),(0,e.useEffect)(()=>{s&&s.length>0&&l(null)},[JSON.stringify(s)]),(0,e.useEffect)(()=>{m||"number"!=typeof c||null!==b.current||(b.current=setTimeout(()=>{h(),b.current=null},c))},[c,m,h,...o]),{droppableRects:y,measureDroppableContainers:h,measuringScheduled:null!=s};function isDisabled(){switch(d){case Cf.Always:return!1;case Cf.BeforeDragging:return a;default:return!a}}}function useInitialValue(e,t){return useLazyMemo(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function useInitialRect(e,t){return useInitialValue(e,t)}function useMutationObserver(t){let{callback:n,disabled:a}=t;const o=useEvent(n),i=(0,e.useMemo)(()=>{if(a||"undefined"==typeof window||void 0===window.MutationObserver)return;const{MutationObserver:e}=window;return new e(o)},[o,a]);return(0,e.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function useResizeObserver(t){let{callback:n,disabled:a}=t;const o=useEvent(n),i=(0,e.useMemo)(()=>{if(a||"undefined"==typeof window||void 0===window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(o)},[a]);return(0,e.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function defaultMeasure(e){return new uf(getClientRect(e),e)}function useRect(t,n,a){void 0===n&&(n=defaultMeasure);const[o,i]=(0,e.useState)(null);function measureRect(){i(e=>{if(!t)return null;var o;if(!1===t.isConnected)return null!=(o=null!=e?e:a)?o:null;const i=n(t);return JSON.stringify(e)===JSON.stringify(i)?e:i})}const s=useMutationObserver({callback(e){if(t)for(const n of e){const{type:e,target:a}=n;if("childList"===e&&a instanceof HTMLElement&&a.contains(t)){measureRect();break}}}}),l=useResizeObserver({callback:measureRect});return Vm(()=>{measureRect(),t?(l?.observe(t),s?.observe(document.body,{childList:!0,subtree:!0})):(l?.disconnect(),s?.disconnect())},[t]),o}function useRectDelta(e){return getRectDelta(e,useInitialValue(e))}var Pf=[];function useScrollableAncestors(t){const n=(0,e.useRef)(t),a=useLazyMemo(e=>t?e&&e!==Pf&&t&&n.current&&t.parentNode===n.current.parentNode?e:getScrollableAncestors(t):Pf,[t]);return(0,e.useEffect)(()=>{n.current=t},[t]),a}function useScrollOffsets(t){const[n,a]=(0,e.useState)(null),o=(0,e.useRef)(t),i=(0,e.useCallback)(e=>{const t=getScrollableElement(e.target);t&&a(e=>e?(e.set(t,getScrollCoordinates(t)),new Map(e)):null)},[]);return(0,e.useEffect)(()=>{const e=o.current;if(t!==e){cleanup(e);const n=t.map(e=>{const t=getScrollableElement(e);return t?(t.addEventListener("scroll",i,{passive:!0}),[t,getScrollCoordinates(t)]):null}).filter(e=>null!=e);a(n.length?new Map(n):null),o.current=t}return()=>{cleanup(t),cleanup(e)};function cleanup(e){e.forEach(e=>{getScrollableElement(e)?.removeEventListener("scroll",i)})}},[i,t]),(0,e.useMemo)(()=>t.length?n?Array.from(n.values()).reduce((e,t)=>Wm(e,t),tf):getScrollOffsets(t):tf,[t,n])}function useScrollOffsetsDelta(t,n){void 0===n&&(n=[]);const a=(0,e.useRef)(null);return(0,e.useEffect)(()=>{a.current=null},n),(0,e.useEffect)(()=>{const e=t!==tf;e&&!a.current&&(a.current=t),!e&&a.current&&(a.current=null)},[t]),a.current?Gm(t,a.current):tf}function useSensorSetup(t){(0,e.useEffect)(()=>{if(!Um)return;const e=t.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(const t of e)t?.()}},t.map(e=>{let{sensor:t}=e;return t}))}function useSyntheticListeners(t,n){return(0,e.useMemo)(()=>t.reduce((e,t)=>{let{eventName:a,handler:o}=t;return e[a]=e=>{o(e,n)},e},{}),[t,n])}function useWindowRect(t){return(0,e.useMemo)(()=>t?getWindowClientRect(t):null,[t])}var Tf=[];function useRects(t,n){void 0===n&&(n=getClientRect);const[a]=t,o=useWindowRect(a?getWindow(a):null),[i,s]=(0,e.useState)(Tf);function measureRects(){s(()=>t.length?t.map(e=>isDocumentScrollingElement(e)?o:new uf(n(e),e)):Tf)}const l=useResizeObserver({callback:measureRects});return Vm(()=>{l?.disconnect(),measureRects(),t.forEach(e=>null==l?void 0:l.observe(e))},[t]),i}function getMeasurableNode(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return isHTMLElement(t)?t:e}function useDragOverlayMeasuring(t){let{measure:n}=t;const[a,o]=(0,e.useState)(null),i=useResizeObserver({callback:(0,e.useCallback)(e=>{for(const{target:t}of e)if(isHTMLElement(t)){o(e=>{const a=n(t);return e?{...e,width:a.width,height:a.height}:a});break}},[n])}),[s,l]=useNodeRef((0,e.useCallback)(e=>{const t=getMeasurableNode(e);i?.disconnect(),t&&i?.observe(t),o(t?n(t):null)},[n,i]));return(0,e.useMemo)(()=>({nodeRef:s,rect:a,setRef:l}),[a,s,l])}var Af=[{sensor:hf,options:{}},{sensor:mf,options:{}}],Rf={current:{}},Mf={draggable:{measure:getTransformAgnosticClientRect},droppable:{measure:getTransformAgnosticClientRect,strategy:Cf.WhileDragging,frequency:kf.Optimized},dragOverlay:{measure:getClientRect}},Df=class extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}},Of={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Df,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:noop},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Mf,measureDroppableContainers:noop,windowRect:null,measuringScheduled:!1},$f={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:noop,draggableNodes:new Map,over:null,measureDroppableContainers:noop},If=(0,e.createContext)($f),Nf=(0,e.createContext)(Of);function getInitialState(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Df}}}function reducer(e,t){switch(t.type){case Xm.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Xm.DragMove:return null==e.draggable.active?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Xm.DragEnd:case Xm.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Xm.RegisterDroppable:{const{element:n}=t,{id:a}=n,o=new Df(e.droppable.containers);return o.set(a,n),{...e,droppable:{...e.droppable,containers:o}}}case Xm.SetDroppableDisabled:{const{id:n,key:a,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||a!==i.key)return e;const s=new Df(e.droppable.containers);return s.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:s}}}case Xm.UnregisterDroppable:{const{id:n,key:a}=t,o=e.droppable.containers.get(n);if(!o||a!==o.key)return e;const i=new Df(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function RestoreFocus(t){let{disabled:n}=t;const{active:a,activatorEvent:o,draggableNodes:i}=(0,e.useContext)(If),s=usePrevious(o),l=usePrevious(null==a?void 0:a.id);return(0,e.useEffect)(()=>{if(!n&&!o&&s&&null!=l){if(!isKeyboardEvent(s))return;if(document.activeElement===s.target)return;const e=i.get(l);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=findFirstFocusableNode(e);if(t){t.focus();break}}})}},[o,n,i,l,s]),null}function applyModifiers(e,t){let{transform:n,...a}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...a}),n):n}function useMeasuringConfiguration(t){return(0,e.useMemo)(()=>({draggable:{...Mf.draggable,...null==t?void 0:t.draggable},droppable:{...Mf.droppable,...null==t?void 0:t.droppable},dragOverlay:{...Mf.dragOverlay,...null==t?void 0:t.dragOverlay}}),[null==t?void 0:t.draggable,null==t?void 0:t.droppable,null==t?void 0:t.dragOverlay])}function useLayoutShiftScrollCompensation(t){let{activeNode:n,measure:a,initialRect:o,config:i=!0}=t;const s=(0,e.useRef)(!1),{x:l,y:c}="boolean"==typeof i?{x:i,y:i}:i;Vm(()=>{if(!l&&!c||!n)return void(s.current=!1);if(s.current||!o)return;const e=null==n?void 0:n.node.current;if(!e||!1===e.isConnected)return;const t=getRectDelta(a(e),o);if(l||(t.x=0),c||(t.y=0),s.current=!0,Math.abs(t.x)>0||Math.abs(t.y)>0){const n=getFirstScrollableAncestor(e);n&&n.scrollBy({top:t.y,left:t.x})}},[n,l,c,o,a])}var zf,Lf=(0,e.createContext)({...tf,scaleX:1,scaleY:1});!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(zf||(zf={}));var jf=(0,e.memo)(function DndContext(n){var a,o,i,s;let{id:l,accessibility:c,autoScroll:u=!0,children:d,sensors:p=Af,collisionDetection:m=rectIntersection,measuring:g,modifiers:h,...b}=n;const[y,v]=(0,e.useReducer)(reducer,void 0,getInitialState),[S,x]=useDndMonitorProvider(),[w,C]=(0,e.useState)(zf.Uninitialized),k=w===zf.Initialized,{draggable:{active:E,nodes:P,translate:T},droppable:{containers:R}}=y,M=null!=E?P.get(E):null,D=(0,e.useRef)({initial:null,translated:null}),O=(0,e.useMemo)(()=>{var e;return null!=E?{id:E,data:null!=(e=null==M?void 0:M.data)?e:Rf,rect:D}:null},[E,M]),$=(0,e.useRef)(null),[I,N]=(0,e.useState)(null),[L,j]=(0,e.useState)(null),B=useLatestValue(b,Object.values(b)),F=useUniqueId("DndDescribedBy",l),q=(0,e.useMemo)(()=>R.getEnabled(),[R]),U=useMeasuringConfiguration(g),{droppableRects:V,measureDroppableContainers:H,measuringScheduled:W}=useDroppableMeasuring(q,{dragging:k,dependencies:[T.x,T.y],config:U.droppable}),G=useCachedNode(P,E),Y=(0,e.useMemo)(()=>L?getEventCoordinates(L):null,[L]),K=getAutoScrollerOptions(),Q=useInitialRect(G,U.draggable.measure);useLayoutShiftScrollCompensation({activeNode:null!=E?P.get(E):null,config:K.layoutShiftCompensation,initialRect:Q,measure:U.draggable.measure});const Z=useRect(G,U.draggable.measure,Q),X=useRect(G?G.parentElement:null),J=(0,e.useRef)({activatorEvent:null,active:null,activeNode:G,collisionRect:null,collisions:null,droppableRects:V,draggableNodes:P,draggingNode:null,draggingNodeRect:null,droppableContainers:R,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ee=R.getNodeFor(null==(a=J.current.over)?void 0:a.id),te=useDragOverlayMeasuring({measure:U.dragOverlay.measure}),re=null!=(o=te.nodeRef.current)?o:G,ne=k?null!=(i=te.rect)?i:Z:null,ae=Boolean(te.nodeRef.current&&te.rect),oe=useRectDelta(ae?null:Z),ie=useWindowRect(re?getWindow(re):null),se=useScrollableAncestors(k?null!=ee?ee:G:null),le=useRects(se),ce=applyModifiers(h,{transform:{x:T.x-oe.x,y:T.y-oe.y,scaleX:1,scaleY:1},activatorEvent:L,active:O,activeNodeRect:Z,containerNodeRect:X,draggingNodeRect:ne,over:J.current.over,overlayNodeRect:te.rect,scrollableAncestors:se,scrollableAncestorRects:le,windowRect:ie}),ue=Y?Wm(Y,T):null,de=useScrollOffsets(se),pe=useScrollOffsetsDelta(de),me=useScrollOffsetsDelta(de,[Z]),fe=Wm(ce,pe),ge=ne?rf(ne,ce):null,he=O&&ge?m({active:O,collisionRect:ge,droppableRects:V,droppableContainers:q,pointerCoordinates:ue}):null,be=getFirstCollision(he,"id"),[ye,ve]=(0,e.useState)(null),Se=adjustScale(ae?ce:Wm(ce,me),null!=(s=null==ye?void 0:ye.rect)?s:null,Z),xe=(0,e.useRef)(null),we=(0,e.useCallback)((e,n)=>{let{sensor:a,options:o}=n;if(null==$.current)return;const i=P.get($.current);if(!i)return;const s=e.nativeEvent;function createHandler(e){return async function handler(){const{active:n,collisions:a,over:o,scrollAdjustedTranslate:i}=J.current;let l=null;if(n&&i){const{cancelDrop:t}=B.current;l={activatorEvent:s,active:n,collisions:a,delta:i,over:o},e===Xm.DragEnd&&"function"==typeof t&&await Promise.resolve(t(l))&&(e=Xm.DragCancel)}$.current=null,(0,t.unstable_batchedUpdates)(()=>{v({type:e}),C(zf.Uninitialized),ve(null),N(null),j(null),xe.current=null;const t=e===Xm.DragEnd?"onDragEnd":"onDragCancel";if(l){const e=B.current[t];e?.(l),S({type:t,event:l})}})}}xe.current=new a({active:$.current,activeNode:i,event:s,options:o,context:J,onAbort(e){if(!P.get(e))return;const{onDragAbort:t}=B.current,n={id:e};t?.(n),S({type:"onDragAbort",event:n})},onPending(e,t,n,a){if(!P.get(e))return;const{onDragPending:o}=B.current,i={id:e,constraint:t,initialCoordinates:n,offset:a};o?.(i),S({type:"onDragPending",event:i})},onStart(e){const n=$.current;if(null==n)return;const a=P.get(n);if(!a)return;const{onDragStart:o}=B.current,i={activatorEvent:s,active:{id:n,data:a.data,rect:D}};(0,t.unstable_batchedUpdates)(()=>{o?.(i),C(zf.Initializing),v({type:Xm.DragStart,initialCoordinates:e,active:n}),S({type:"onDragStart",event:i}),N(xe.current),j(s)})},onMove(e){v({type:Xm.DragMove,coordinates:e})},onEnd:createHandler(Xm.DragEnd),onCancel:createHandler(Xm.DragCancel)})},[P]),Ce=useCombineActivators(p,(0,e.useCallback)((e,t)=>(n,a)=>{const o=n.nativeEvent,i=P.get(a);if(null!==$.current||!i||o.dndKit||o.defaultPrevented)return;const s={active:i};!0===e(n,t.options,s)&&(o.dndKit={capturedBy:t.sensor},$.current=a,we(n,t))},[P,we]));useSensorSetup(p),Vm(()=>{Z&&w===zf.Initializing&&C(zf.Initialized)},[Z,w]),(0,e.useEffect)(()=>{const{onDragMove:e}=B.current,{active:n,activatorEvent:a,collisions:o,over:i}=J.current;if(!n||!a)return;const s={active:n,activatorEvent:a,collisions:o,delta:{x:fe.x,y:fe.y},over:i};(0,t.unstable_batchedUpdates)(()=>{e?.(s),S({type:"onDragMove",event:s})})},[fe.x,fe.y]),(0,e.useEffect)(()=>{const{active:e,activatorEvent:n,collisions:a,droppableContainers:o,scrollAdjustedTranslate:i}=J.current;if(!e||null==$.current||!n||!i)return;const{onDragOver:s}=B.current,l=o.get(be),c=l&&l.rect.current?{id:l.id,rect:l.rect.current,data:l.data,disabled:l.disabled}:null,u={active:e,activatorEvent:n,collisions:a,delta:{x:i.x,y:i.y},over:c};(0,t.unstable_batchedUpdates)(()=>{ve(c),s?.(u),S({type:"onDragOver",event:u})})},[be]),Vm(()=>{J.current={activatorEvent:L,active:O,activeNode:G,collisionRect:ge,collisions:he,droppableRects:V,draggableNodes:P,draggingNode:re,draggingNodeRect:ne,droppableContainers:R,over:ye,scrollableAncestors:se,scrollAdjustedTranslate:fe},D.current={initial:ne,translated:ge}},[O,G,he,ge,P,re,ne,V,R,ye,se,fe]),useAutoScroller({...K,delta:T,draggingRect:ge,pointerCoordinates:ue,scrollableAncestors:se,scrollableAncestorRects:le});const ke=(0,e.useMemo)(()=>({active:O,activeNode:G,activeNodeRect:Z,activatorEvent:L,collisions:he,containerNodeRect:X,dragOverlay:te,draggableNodes:P,droppableContainers:R,droppableRects:V,over:ye,measureDroppableContainers:H,scrollableAncestors:se,scrollableAncestorRects:le,measuringConfiguration:U,measuringScheduled:W,windowRect:ie}),[O,G,Z,L,he,X,te,P,R,V,ye,H,se,le,U,W,ie]),Ee=(0,e.useMemo)(()=>({activatorEvent:L,activators:Ce,active:O,activeNodeRect:Z,ariaDescribedById:{draggable:F},dispatch:v,draggableNodes:P,over:ye,measureDroppableContainers:H}),[L,Ce,O,Z,v,F,P,ye,H]);return e.default.createElement(Zm.Provider,{value:x},e.default.createElement(If.Provider,{value:Ee},e.default.createElement(Nf.Provider,{value:ke},e.default.createElement(Lf.Provider,{value:Se},d)),e.default.createElement(RestoreFocus,{disabled:!1===(null==c?void 0:c.restoreFocus)})),e.default.createElement(Accessibility,{...c,hiddenTextDescribedById:F}));function getAutoScrollerOptions(){const e=!1===(null==I?void 0:I.autoScrollEnabled),t="object"==typeof u?!1===u.enabled:!1===u,n=k&&!e&&!t;return"object"==typeof u?{...u,enabled:n}:{enabled:n}}}),Bf=(0,e.createContext)(null),Ff="button",qf="Draggable";function useDraggable(t){let{id:n,data:a,disabled:o=!1,attributes:i}=t;const s=useUniqueId(qf),{activators:l,activatorEvent:c,active:u,activeNodeRect:d,ariaDescribedById:p,draggableNodes:m,over:g}=(0,e.useContext)(If),{role:h=Ff,roleDescription:b="draggable",tabIndex:y=0}=null!=i?i:{},v=(null==u?void 0:u.id)===n,S=(0,e.useContext)(v?Lf:Bf),[x,w]=useNodeRef(),[C,k]=useNodeRef(),E=useSyntheticListeners(l,n),P=useLatestValue(a);return Vm(()=>(m.set(n,{id:n,key:s,node:x,activatorNode:C,data:P}),()=>{const e=m.get(n);e&&e.key===s&&m.delete(n)}),[m,n]),{active:u,activatorEvent:c,activeNodeRect:d,attributes:(0,e.useMemo)(()=>({role:h,tabIndex:y,"aria-disabled":o,"aria-pressed":!(!v||h!==Ff)||void 0,"aria-roledescription":b,"aria-describedby":p.draggable}),[o,h,y,v,b,p.draggable]),isDragging:v,listeners:o?void 0:E,node:x,over:g,setNodeRef:w,setActivatorNodeRef:k,transform:S}}function useDndContext(){return(0,e.useContext)(Nf)}var Uf="Droppable",Vf={timeout:25};function useDroppable(t){let{data:n,disabled:a=!1,id:o,resizeObserverConfig:i}=t;const s=useUniqueId(Uf),{active:l,dispatch:c,over:u,measureDroppableContainers:d}=(0,e.useContext)(If),p=(0,e.useRef)({disabled:a}),m=(0,e.useRef)(!1),g=(0,e.useRef)(null),h=(0,e.useRef)(null),{disabled:b,updateMeasurementsFor:y,timeout:v}={...Vf,...i},S=useLatestValue(null!=y?y:o),x=useResizeObserver({callback:(0,e.useCallback)(()=>{m.current?(null!=h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{d(Array.isArray(S.current)?S.current:[S.current]),h.current=null},v)):m.current=!0},[v]),disabled:b||!l}),[w,C]=useNodeRef((0,e.useCallback)((e,t)=>{x&&(t&&(x.unobserve(t),m.current=!1),e&&x.observe(e))},[x])),k=useLatestValue(n);return(0,e.useEffect)(()=>{x&&w.current&&(x.disconnect(),m.current=!1,x.observe(w.current))},[w,x]),(0,e.useEffect)(()=>(c({type:Xm.RegisterDroppable,element:{id:o,key:s,disabled:a,node:w,rect:g,data:k}}),()=>c({type:Xm.UnregisterDroppable,key:s,id:o})),[o]),(0,e.useEffect)(()=>{a!==p.current.disabled&&(c({type:Xm.SetDroppableDisabled,id:o,key:s,disabled:a}),p.current.disabled=a)},[o,s,a,c]),{active:l,rect:g,isOver:(null==u?void 0:u.id)===o,node:w,over:u,setNodeRef:C}}function AnimationManager(t){let{animation:n,children:a}=t;const[o,i]=(0,e.useState)(null),[s,l]=(0,e.useState)(null),c=usePrevious(a);return a||o||!c||i(c),Vm(()=>{if(!s)return;const e=null==o?void 0:o.key,t=null==o?void 0:o.props.id;null!=e&&null!=t?Promise.resolve(n(t,s)).then(()=>{i(null)}):i(null)},[n,o,s]),e.default.createElement(e.default.Fragment,null,a,o?(0,e.cloneElement)(o,{ref:l}):null)}var Hf={x:0,y:0,scaleX:1,scaleY:1};function NullifiedContextProvider(t){let{children:n}=t;return e.default.createElement(If.Provider,{value:$f},e.default.createElement(Lf.Provider,{value:Hf},n))}var Wf={position:"fixed",touchAction:"none"},defaultTransition$1=e=>isKeyboardEvent(e)?"transform 250ms ease":void 0,Gf=(0,e.forwardRef)((t,n)=>{let{as:a,activatorEvent:o,adjustScale:i,children:s,className:l,rect:c,style:u,transform:d,transition:p=defaultTransition$1}=t;if(!c)return null;const m=i?d:{...d,scaleX:1,scaleY:1},g={...Wf,width:c.width,height:c.height,top:c.top,left:c.left,transform:Ym.Transform.toString(m),transformOrigin:i&&o?getRelativeTransformOrigin(o,c):void 0,transition:"function"==typeof p?p(o):p,...u};return e.default.createElement(a,{className:l,style:g,ref:n},s)}),defaultDropAnimationSideEffects=e=>t=>{let{active:n,dragOverlay:a}=t;const o={},{styles:i,className:s}=e;if(null!=i&&i.active)for(const[e,l]of Object.entries(i.active))void 0!==l&&(o[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,l));if(null!=i&&i.dragOverlay)for(const[e,l]of Object.entries(i.dragOverlay))void 0!==l&&a.node.style.setProperty(e,l);return null!=s&&s.active&&n.node.classList.add(s.active),null!=s&&s.dragOverlay&&a.node.classList.add(s.dragOverlay),function cleanup(){for(const[e,t]of Object.entries(o))n.node.style.setProperty(e,t);null!=s&&s.active&&n.node.classList.remove(s.active)}},Yf={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:Ym.Transform.toString(t)},{transform:Ym.Transform.toString(n)}]},sideEffects:defaultDropAnimationSideEffects({styles:{active:{opacity:"0"}}})};function useDropAnimation(e){let{config:t,draggableNodes:n,droppableContainers:a,measuringConfiguration:o}=e;return useEvent((e,i)=>{if(null===t)return;const s=n.get(e);if(!s)return;const l=s.node.current;if(!l)return;const c=getMeasurableNode(i);if(!c)return;const{transform:u}=getWindow(i).getComputedStyle(i),d=parseTransform(u);if(!d)return;const p="function"==typeof t?t:createDefaultDropAnimation(t);return scrollIntoViewIfNeeded(l,o.draggable.measure),p({active:{id:e,data:s.data,node:l,rect:o.draggable.measure(l)},draggableNodes:n,dragOverlay:{node:i,rect:o.dragOverlay.measure(c)},droppableContainers:a,measuringConfiguration:o,transform:d})})}function createDefaultDropAnimation(e){const{duration:t,easing:n,sideEffects:a,keyframes:o}={...Yf,...e};return e=>{let{active:i,dragOverlay:s,transform:l,...c}=e;if(!t)return;const u={x:s.rect.left-i.rect.left,y:s.rect.top-i.rect.top},d={scaleX:1!==l.scaleX?i.rect.width*l.scaleX/s.rect.width:1,scaleY:1!==l.scaleY?i.rect.height*l.scaleY/s.rect.height:1},p={x:l.x-u.x,y:l.y-u.y,...d},m=o({...c,active:i,dragOverlay:s,transform:{initial:l,final:p}}),[g]=m,h=m[m.length-1];if(JSON.stringify(g)===JSON.stringify(h))return;const b=null==a?void 0:a({active:i,dragOverlay:s,...c}),y=s.node.animate(m,{duration:t,easing:n,fill:"forwards"});return new Promise(e=>{y.onfinish=()=>{b?.(),e()}})}}var Kf=0;function useKey(t){return(0,e.useMemo)(()=>{if(null!=t)return++Kf},[t])}var Qf=e.default.memo(t=>{let{adjustScale:n=!1,children:a,dropAnimation:o,style:i,transition:s,modifiers:l,wrapperElement:c="div",className:u,zIndex:d=999}=t;const{activatorEvent:p,active:m,activeNodeRect:g,containerNodeRect:h,draggableNodes:b,droppableContainers:y,dragOverlay:v,over:S,measuringConfiguration:x,scrollableAncestors:w,scrollableAncestorRects:C,windowRect:k}=useDndContext(),E=(0,e.useContext)(Lf),P=useKey(null==m?void 0:m.id),T=applyModifiers(l,{activatorEvent:p,active:m,activeNodeRect:g,containerNodeRect:h,draggingNodeRect:v.rect,over:S,overlayNodeRect:v.rect,scrollableAncestors:w,scrollableAncestorRects:C,transform:E,windowRect:k}),R=useInitialValue(g),M=useDropAnimation({config:o,draggableNodes:b,droppableContainers:y,measuringConfiguration:x}),D=R?v.setRef:void 0;return e.default.createElement(NullifiedContextProvider,null,e.default.createElement(AnimationManager,{animation:M},m&&P?e.default.createElement(Gf,{key:P,id:m.id,ref:D,as:c,activatorEvent:p,adjustScale:n,className:u,transition:s,rect:R,style:{zIndex:d,...i},transform:T},a):null))});function arrayMove(e,t,n){const a=e.slice();return a.splice(n<0?a.length+n:n,0,a.splice(t,1)[0]),a}function getSortedRects(e,t){return e.reduce((e,n,a)=>{const o=t.get(n);return o&&(e[a]=o),e},Array(e.length))}function isValidIndex(e){return null!==e&&e>=0}function itemsEqual(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function normalizeDisabled(e){return"boolean"==typeof e?{draggable:e,droppable:e}:e}var rectSortingStrategy=e=>{let{rects:t,activeIndex:n,overIndex:a,index:o}=e;const i=arrayMove(t,a,n),s=t[o],l=i[o];return l&&s?{x:l.left-s.left,y:l.top-s.top,scaleX:l.width/s.width,scaleY:l.height/s.height}:null},Zf={scaleX:1,scaleY:1},verticalListSortingStrategy=e=>{var t;let{activeIndex:n,activeNodeRect:a,index:o,rects:i,overIndex:s}=e;const l=null!=(t=i[n])?t:a;if(!l)return null;if(o===n){const e=i[s];return e?{x:0,y:n<s?e.top+e.height-(l.top+l.height):e.top-l.top,...Zf}:null}const c=getItemGap$1(i,o,n);return o>n&&o<=s?{x:0,y:-l.height-c,...Zf}:o<n&&o>=s?{x:0,y:l.height+c,...Zf}:{x:0,y:0,...Zf}};function getItemGap$1(e,t,n){const a=e[t],o=e[t-1],i=e[t+1];return a?n<t?o?a.top-(o.top+o.height):i?i.top-(a.top+a.height):0:i?i.top-(a.top+a.height):o?a.top-(o.top+o.height):0:0}var Xf="Sortable",Jf=e.default.createContext({activeIndex:-1,containerId:Xf,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:rectSortingStrategy,disabled:{draggable:!1,droppable:!1}});function SortableContext(t){let{children:n,id:a,items:o,strategy:i=rectSortingStrategy,disabled:s=!1}=t;const{active:l,dragOverlay:c,droppableRects:u,over:d,measureDroppableContainers:p}=useDndContext(),m=useUniqueId(Xf,a),g=Boolean(null!==c.rect),h=(0,e.useMemo)(()=>o.map(e=>"object"==typeof e&&"id"in e?e.id:e),[o]),b=null!=l,y=l?h.indexOf(l.id):-1,v=d?h.indexOf(d.id):-1,S=(0,e.useRef)(h),x=!itemsEqual(h,S.current),w=-1!==v&&-1===y||x,C=normalizeDisabled(s);Vm(()=>{x&&b&&p(h)},[x,h,b,p]),(0,e.useEffect)(()=>{S.current=h},[h]);const k=(0,e.useMemo)(()=>({activeIndex:y,containerId:m,disabled:C,disableTransforms:w,items:h,overIndex:v,useDragOverlay:g,sortedRects:getSortedRects(h,u),strategy:i}),[y,m,C.draggable,C.droppable,w,h,v,u,g,i]);return e.default.createElement(Jf.Provider,{value:k},n)}var defaultNewIndexGetter=e=>{let{id:t,items:n,activeIndex:a,overIndex:o}=e;return arrayMove(n,a,o).indexOf(t)},defaultAnimateLayoutChanges=e=>{let{containerId:t,isSorting:n,wasDragging:a,index:o,items:i,newIndex:s,previousItems:l,previousContainerId:c,transition:u}=e;return!(!u||!a)&&((l===i||o!==s)&&(!!n||s!==o&&t===c))},eg={duration:200,easing:"ease"},tg="transform",rg=Ym.Transition.toString({property:tg,duration:0,easing:"linear"}),ng={roleDescription:"sortable"};function useDerivedTransform(t){let{disabled:n,index:a,node:o,rect:i}=t;const[s,l]=(0,e.useState)(null),c=(0,e.useRef)(a);return Vm(()=>{if(!n&&a!==c.current&&o.current){const e=i.current;if(e){const t=getClientRect(o.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&l(n)}}a!==c.current&&(c.current=a)},[n,a,o,i]),(0,e.useEffect)(()=>{s&&l(null)},[s]),s}function useSortable(t){let{animateLayoutChanges:n=defaultAnimateLayoutChanges,attributes:a,disabled:o,data:i,getNewIndex:s=defaultNewIndexGetter,id:l,strategy:c,resizeObserverConfig:u,transition:d=eg}=t;const{items:p,containerId:m,activeIndex:g,disabled:h,disableTransforms:b,sortedRects:y,overIndex:v,useDragOverlay:S,strategy:x}=(0,e.useContext)(Jf),w=normalizeLocalDisabled(o,h),C=p.indexOf(l),k=(0,e.useMemo)(()=>({sortable:{containerId:m,index:C,items:p},...i}),[m,i,C,p]),E=(0,e.useMemo)(()=>p.slice(p.indexOf(l)),[p,l]),{rect:P,node:T,isOver:R,setNodeRef:M}=useDroppable({id:l,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:E,...u}}),{active:D,activatorEvent:O,activeNodeRect:$,attributes:I,setNodeRef:N,listeners:L,isDragging:j,over:B,setActivatorNodeRef:F,transform:q}=useDraggable({id:l,data:k,attributes:{...ng,...a},disabled:w.draggable}),U=useCombinedRefs(M,N),V=Boolean(D),H=V&&!b&&isValidIndex(g)&&isValidIndex(v),W=!S&&j,G=W&&H?q:null,Y=H?null!=G?G:(null!=c?c:x)({rects:y,activeNodeRect:$,activeIndex:g,overIndex:v,index:C}):null,K=isValidIndex(g)&&isValidIndex(v)?s({id:l,items:p,activeIndex:g,overIndex:v}):C,Q=null==D?void 0:D.id,Z=(0,e.useRef)({activeId:Q,items:p,newIndex:K,containerId:m}),X=p!==Z.current.items,J=n({active:D,containerId:m,isDragging:j,isSorting:V,id:l,index:C,items:p,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:d,wasDragging:null!=Z.current.activeId}),ee=useDerivedTransform({disabled:!J,index:C,node:T,rect:P});return(0,e.useEffect)(()=>{V&&Z.current.newIndex!==K&&(Z.current.newIndex=K),m!==Z.current.containerId&&(Z.current.containerId=m),p!==Z.current.items&&(Z.current.items=p)},[V,K,m,p]),(0,e.useEffect)(()=>{if(Q===Z.current.activeId)return;if(null!=Q&&null==Z.current.activeId)return void(Z.current.activeId=Q);const e=setTimeout(()=>{Z.current.activeId=Q},50);return()=>clearTimeout(e)},[Q]),{active:D,activeIndex:g,attributes:I,data:k,rect:P,index:C,newIndex:K,items:p,isOver:R,isSorting:V,isDragging:j,listeners:L,node:T,overIndex:v,over:B,setNodeRef:U,setActivatorNodeRef:F,setDroppableNodeRef:M,setDraggableNodeRef:N,transform:null!=ee?ee:Y,transition:getTransition()};function getTransition(){return ee||X&&Z.current.newIndex===C?rg:W&&!isKeyboardEvent(O)||!d?void 0:V||J?Ym.Transition.toString({...d,property:tg}):void 0}}function normalizeLocalDisabled(e,t){var n,a;return"boolean"==typeof e?{draggable:e,droppable:!1}:{draggable:null!=(n=null==e?void 0:e.draggable)?n:t.draggable,droppable:null!=(a=null==e?void 0:e.droppable)?a:t.droppable}}function hasSortableData(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&"object"==typeof t.sortable&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}var ag=[lf.Down,lf.Right,lf.Up,lf.Left],sortableKeyboardCoordinates=(e,t)=>{let{context:{active:n,collisionRect:a,droppableRects:o,droppableContainers:i,over:s,scrollableAncestors:l}}=t;if(ag.includes(e.code)){if(e.preventDefault(),!n||!a)return;const t=[];i.getEnabled().forEach(n=>{if(!n||null!=n&&n.disabled)return;const i=o.get(n.id);if(i)switch(e.code){case lf.Down:a.top<i.top&&t.push(n);break;case lf.Up:a.top>i.top&&t.push(n);break;case lf.Left:a.left>i.left&&t.push(n);break;case lf.Right:a.left<i.left&&t.push(n)}});const c=closestCorners({active:n,collisionRect:a,droppableRects:o,droppableContainers:t,pointerCoordinates:null});let u=getFirstCollision(c,"id");if(u===(null==s?void 0:s.id)&&c.length>1&&(u=c[1].id),null!=u){const e=i.get(n.id),t=i.get(u),s=t?o.get(t.id):null,c=null==t?void 0:t.node.current;if(c&&s&&e&&t){const n=getScrollableAncestors(c).some((e,t)=>l[t]!==e),o=isSameContainer(e,t),i=isAfter(e,t),u=n||!o?{x:0,y:0}:{x:i?a.width-s.width:0,y:i?a.height-s.height:0},d={x:s.left,y:s.top};return u.x&&u.y?d:Gm(d,u)}}}};function isSameContainer(e,t){return!(!hasSortableData(e)||!hasSortableData(t))&&e.data.current.sortable.containerId===t.data.current.sortable.containerId}function isAfter(e,t){return!(!hasSortableData(e)||!hasSortableData(t))&&(!!isSameContainer(e,t)&&e.data.current.sortable.index<t.data.current.sortable.index)}function useNexSysSnapshot(e){return(0,c.useSyncExternalStore)((0,c.useCallback)(t=>{const n=e.events.topics,a=[n.SYSTEM_SETTINGS_CHANGED,n.SYSTEM_STATUS_CHANGED,n.SYSTEM_CLASS_CHANGED,n.AFF_PRIORITY_CHANGED,n.DEF_PRIORITY_CHANGED,n.CACHE_PRECACHE_CHANGED,n.SYSTEM_RUNTIME_CHANGED];return a.forEach(n=>e.events.on(n,t)),()=>a.forEach(n=>e.events.off(n,t))},[e]),e.runtime.snapshot,e.runtime.snapshot)}var og=Object.freeze({}),ig=new Set(Object.keys(B?.types?.nonServerside??{}));function buildColumns(e,t={}){return Bm({},n=>{for(let e=0;e<=26;e++)n[`col-${e}`]={id:`col-${e}`,label:0===e?"Disabled":`Prio ${e}`,priority:e,affs:[]};for(const[a,o]of Object.entries(e)){if(ig.has(a))continue;const e=Number(t[a]??o.defaultPriority??0);!Number.isFinite(e)||e>26||n[`col-${Math.max(0,Math.min(26,e))}`].affs.push(a)}})}function findContainer(e,t){return t[e]?e:Object.keys(t).find(n=>t[n].affs.includes(e))??null}function useAffPriorities(e,t={}){const[n,a]=(0,c.useState)(null),[o,i]=(0,c.useState)(null),s=(0,c.useRef)(null),l=useNexSysSnapshot(e)?.affs??og,{affPriorities:u=og,setAffPriority:d}=t,p=(0,c.useMemo)(()=>buildColumns(l,u),[l,u]);return{columns:o??p,activeId:n,sensors:useSensors(useSensor(hf,{activationConstraint:{distance:4}}),useSensor(mf,{coordinateGetter:sortableKeyboardCoordinates})),onDragStart:(0,c.useCallback)(({active:e})=>{a(String(e.id));const t=Bm(p,()=>{});s.current=t,i(t)},[p]),onDragOver:(0,c.useCallback)(({active:e,over:t})=>{if(!t)return;const n=String(e.id),a=String(t.id),o=s.current;if(!o)return;const l=findContainer(n,o),c=findContainer(a,o);if(!l||!c)return;let u;if(l===c){const e=o[l].affs,t=e.indexOf(n),i=e.indexOf(a);if(-1===t||-1===i||t===i)return;u=Bm(o,n=>{n[l].affs=arrayMove(e,t,i)})}else u=Bm(o,e=>{const t=e[l].affs,o=e[c].affs;if(-1===t.indexOf(n))return;const i=o.indexOf(a),s=-1===i?o.length:i;e[l].affs=t.filter(e=>e!==n),e[c].affs=[...o.slice(0,s),n,...o.slice(s)]});s.current=u,i(u)},[]),onDragEnd:(0,c.useCallback)(({active:e,over:t})=>{a(null);const n=s.current;if(s.current=null,i(null),!t||!n)return;const o=String(e.id),l=findContainer(o,n);if(!l)return;const c=n[l]?.priority??0;c!==(p[findContainer(o,p)]?.priority??0)&&d?.(o,c)},[p,d]),onDragCancel:(0,c.useCallback)(()=>{a(null),s.current=null,i(null)},[])}}var sg={antimony:"olive",argentum:"royalblue",aurum:"ForestGreen",calcite:"slategray",cinnabar:"greenyellow",cuprum:"DeepSkyBlue",ferrum:"DarkOrange",magnesium:"Red",plumbum:"Gold",realgar:"firebrick",stannum:"Tan",caloric:"darkseagreen",mending:"orchid",epidermal:"sienna",restoration:"darkviolet",health:"lightpink",writhe:"PaleGoldenRod"},lg={ginseng:"ferrum",bloodroot:"magnesium",kelp:"aurum",hawthorn:"calamine",lobelia:"argentum",bellwort:"cuprum",ginger:"antimony",bayberry:"arsenic",ash:"stannum",goldenseal:"plumbum",pear:"calcite",elm:"cinnabar",valerian:"realgar",skullcap:"azurite",moss:"potash",kola:"quartz",sileris:"quicksilver",cohosh:"gypsum"};function resolveCureColor(e){if(e in sg)return sg[e]??null;const t=lg[e];if(t)return sg[t]??null;const n=e.match(/^(caloric|mending|epidermal|restoration|health)\b/);return n?sg[n[1]]??null:null}var cg=["bound","daeggerimpale","entangled","impaled","transfixation","webbed","icebound"],ug={};for(const[xg,wg]of Object.entries(H))for(const e of wg){const t=resolveCureColor(e);if(t){ug[xg]=t;break}}for(const xg of cg)ug[xg]||(ug[xg]=sg.writhe);function getAffColor(e){return ug[e]??null}function AffChip({name:e,isDragging:t=!1}){const n=getAffColor(e);return(0,ka.jsx)(ec,{label:e,size:"small",sx:{fontSize:13,height:22,mb:.25,padding:.5,opacity:t?.4:1,cursor:"grab",bgcolor:"rgba(0,0,0,0.5)",color:n??"text.secondary",border:"1px solid "+(n?n+"55":"rgba(255,255,255,0.2)"),"& .MuiChip-label":{px:.75},"&:active":{cursor:"grabbing"}}})}function SortableAffChip({name:e}){const{attributes:t,listeners:n,setNodeRef:a,transform:o,transition:i,isDragging:s}=useSortable({id:e});return(0,ka.jsx)(wc,{ref:a,...t,...n,sx:{transform:Ym.Transform.toString(o),transition:i,touchAction:"none"},children:(0,ka.jsx)(AffChip,{name:e,isDragging:s})})}function PriorityColumn({column:e}){const t=0===e.priority,{setNodeRef:n}=useDroppable({id:e.id});return(0,ka.jsxs)(wc,{sx:{minWidth:125,maxWidth:125,border:"1px solid",borderColor:t?"rgba(255,255,255,0.1)":"rgba(79,195,247,0.2)",borderRadius:1,p:.5,bgcolor:t?"rgba(0,0,0,0.2)":"rgba(79,195,247,0.04)",flexShrink:0},children:[(0,ka.jsx)(vl,{variant:"caption",sx:{display:"block",textAlign:"center",fontWeight:700,color:t?"text.secondary":"primary.main",mb:.5,fontSize:13},children:e.label}),(0,ka.jsx)(SortableContext,{items:e.affs,strategy:verticalListSortingStrategy,children:(0,ka.jsx)(wc,{ref:n,sx:{minHeight:28,display:"flex",flexDirection:"column"},children:e.affs.map(e=>(0,ka.jsx)(SortableAffChip,{name:e},e))})})]})}function AffPrioritiesTab({settingsForm:e}){const{columns:t,activeId:n,sensors:a,onDragStart:o,onDragOver:i,onDragEnd:s,onDragCancel:l}=useAffPriorities(useNexSys(),e);return(0,ka.jsx)(wc,{sx:{py:1},children:(0,ka.jsx)(wc,{sx:{display:"inline-flex",gap:.75,alignItems:"flex-start"},children:(0,ka.jsxs)(jf,{sensors:a,collisionDetection:closestCorners,onDragStart:o,onDragOver:i,onDragEnd:s,onDragCancel:l,children:[Object.keys(t).map(e=>(0,ka.jsx)(PriorityColumn,{column:t[e]},e)),(0,ka.jsx)(Qf,{children:n?(0,ka.jsx)(AffChip,{name:n}):null})]})})})}var dg=createSvgIcon((0,ka.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 17h-2v-2h2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25"}),"HelpOutlined"),pg=Object.freeze({}),mg=Object.freeze({}),getDefaultClassFilter=(e="")=>{const t=normalizeClassName(e);return ve.includes(t)?t:"all"};function useDefPriorities(e,t={}){const n=useNexSysSnapshot(e)??pg,a=n.defs??mg,o=n.system?.char?.class??"",{defPriorities:i=mg,defStatics:s=mg,setDefPriority:l,setDefStatic:u}=t,d=(0,c.useMemo)(()=>getDefaultClassFilter(o),[o]),[p,m]=(0,c.useState)(null),g=p??d,h=(0,c.useMemo)(()=>["all",...ve],[]),b=(0,c.useMemo)(()=>Object.entries(a).reduce((e,[t,n])=>(e[t]={...n,defaultPriority:i[t]??n.defaultPriority,static:s[t]??n.static},e),{}),[a,i,s]),y=(0,c.useMemo)(()=>Object.entries(b).filter(([,e])=>!0===e.serverside),[b]),v=(0,c.useMemo)(()=>"all"===g?y.map(([e])=>e):y.filter(([,e])=>classListIncludes(e.skills,g)).map(([e])=>e),[y,g]),S=(0,c.useCallback)((e,t)=>{u?.(e,t)},[u]),x=(0,c.useCallback)((e,t)=>{l?.(e,t)},[l]);return{defList:v,defsState:b,classFilter:g,setClassFilter:(0,c.useCallback)(e=>{m(e)},[]),classOptions:h,updateStatic:S,updatePriority:x}}function defNameColor(e){const t=e?.bals_used??[],n=e?.bals_req??[],a=["balance","equilibrium"];return t.some(e=>a.includes(e))?"tomato":n.some(e=>a.includes(e))?"yellow":"dodgerblue"}var fg=(0,ka.jsxs)(wc,{sx:{fontSize:13,lineHeight:1.6},children:[(0,ka.jsxs)(wc,{children:[(0,ka.jsx)(wc,{component:"span",sx:{color:"tomato",fontWeight:700},children:"Red"}),": These skills will USE eq or bal to activate and should have the lowest priority."]}),(0,ka.jsxs)(wc,{children:[(0,ka.jsx)(wc,{component:"span",sx:{color:"yellow",fontWeight:700},children:"Yellow"}),": These skills are free to use but REQUIRE eq or bal to activate and should have the middle priority."]}),(0,ka.jsxs)(wc,{children:[(0,ka.jsx)(wc,{component:"span",sx:{color:"dodgerblue",fontWeight:700},children:"Blue"}),": Skills that are free to use and should likely have the highest priority."]})]}),gg=(0,ka.jsx)(wc,{sx:{fontSize:13,lineHeight:1.6},children:"Checked defences are player-controlled and only raised by the manual defence-up action. Unchecked defences are kept up by server-side curing."}),hg={py:.25,px:.75,border:"none"},bg={py:.5,px:.75,border:"none",borderBottom:"1px solid rgba(255,255,255,0.1)",fontWeight:700,fontSize:13,whiteSpace:"nowrap"};function HelpIcon(){return(0,ka.jsx)(dg,{sx:{fontSize:14,verticalAlign:"middle",ml:.25,opacity:.7}})}function DefRow({name:e,def:t,updateStatic:n,updatePriority:a}){const o=defNameColor(t);return(0,ka.jsxs)(Vp,{sx:{"& td":hg},children:[(0,ka.jsx)(Dp,{padding:"checkbox",sx:{...hg,width:36},children:(0,ka.jsx)(Gc,{size:"small",checked:Boolean(t?.static),onChange:t=>n(e,t.target.checked),sx:{p:.25}})}),(0,ka.jsx)(Dp,{sx:{width:100},children:(0,ka.jsx)(vl,{variant:"body2",sx:{color:o,fontSize:13},children:e})}),(0,ka.jsx)(Dp,{sx:{width:50},children:(0,ka.jsx)(om,{value:t?.defaultPriority??0,onChange:t=>a(e,t.target.value),type:"number",size:"small",sx:{width:56},slotProps:{htmlInput:{min:0,max:26,style:{padding:"2px 6px",fontSize:13}}}})})]})}function DefHalfTable({defNames:e,defsState:t,updateStatic:n,updatePriority:a}){return(0,ka.jsx)($p,{sx:{flex:1},children:(0,ka.jsxs)(kp,{size:"small",stickyHeader:!0,sx:{tableLayout:"fixed"},children:[(0,ka.jsx)(Lp,{children:(0,ka.jsxs)(Vp,{children:[(0,ka.jsx)(Dp,{padding:"checkbox",sx:{...bg,width:36},children:(0,ka.jsx)(dp,{arrow:!0,placement:"bottom-start",title:gg,children:(0,ka.jsxs)("span",{children:["Defup",(0,ka.jsx)(HelpIcon,{})]})})}),(0,ka.jsx)(Dp,{sx:{...bg,width:100},children:(0,ka.jsx)(dp,{arrow:!0,placement:"bottom-start",title:fg,children:(0,ka.jsxs)("span",{children:["Name ",(0,ka.jsx)(HelpIcon,{})]})})}),(0,ka.jsx)(Dp,{sx:{...bg,width:70},children:"Priority"})]})}),(0,ka.jsx)(Ap,{children:e.map(e=>(0,ka.jsx)(DefRow,{name:e,def:t[e],updateStatic:n,updatePriority:a},e))})]})})}function DefPrioritiesTab({settingsForm:e}){const{defList:t,defsState:n,classFilter:a,setClassFilter:o,classOptions:i,updateStatic:s,updatePriority:l}=useDefPriorities(useNexSys(),e),[u,d]=(0,c.useMemo)(()=>{const e=Math.ceil(t.length/2);return[t.slice(0,e),t.slice(e)]},[t]);return(0,ka.jsxs)(wc,{sx:{pt:1},children:[(0,ka.jsxs)(Cu,{size:"small",sx:{mb:1.5,minWidth:180},children:[(0,ka.jsx)(Vu,{children:"Class"}),(0,ka.jsx)(Ud,{value:a,label:"Class",onChange:e=>o(e.target.value),children:i.map(e=>(0,ka.jsx)(gd,{value:e,children:"all"===e?"All Classes":e},e))})]}),(0,ka.jsxs)(wc,{sx:{display:"flex",gap:1,alignItems:"flex-start"},children:[(0,ka.jsx)(DefHalfTable,{defNames:u,defsState:n,updateStatic:s,updatePriority:l}),d.length>0&&(0,ka.jsx)(DefHalfTable,{defNames:d,defsState:n,updateStatic:s,updatePriority:l})]})]})}var yg=Object.freeze({}),vg=x.map(e=>C[e]).filter(Boolean).map(e=>({herb:e,mineral:E[e]??null}));function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}function usePrecache(e,t={}){const n=useNexSysSnapshot(e),{desiredPrecache:a,setPrecache:o}=t,i=a??n?.cache?.desiredPrecache??yg;return{pairs:(0,c.useMemo)(()=>vg.map(({herb:e,mineral:t})=>({herb:e,herbLabel:capitalize(e),herbQty:i[e]??0,mineral:t,mineralLabel:t?capitalize(t):null,mineralQty:t?i[t]??0:0})),[i]),update:(0,c.useCallback)((e,t)=>{o?.(e,Math.max(0,t))},[o])}}function QuantityControl({label:e,value:t,onIncrement:n,onDecrement:a,compact:o=!1}){return(0,ka.jsxs)(wc,{sx:{display:"flex",alignItems:"center",gap:1,mb:o?0:.5},children:[(0,ka.jsxs)(Ic,{size:"small",variant:"outlined",children:[(0,ka.jsx)(Dc,{onClick:a,disabled:t<=0,sx:{minWidth:28,px:.5,fontSize:12},children:"−"}),(0,ka.jsx)(Dc,{disableRipple:!0,disableFocusRipple:!0,sx:{minWidth:36,px:.5,cursor:"default",pointerEvents:"none",fontSize:12,color:"text.primary",borderColor:"divider"},children:t}),(0,ka.jsx)(Dc,{onClick:n,sx:{minWidth:28,px:.5,fontSize:12},children:"+"})]}),(0,ka.jsx)(vl,{variant:"body2",children:e})]})}function PairRow({pair:e,update:t}){return(0,ka.jsxs)(wc,{sx:{display:"flex",gap:.5},children:[(0,ka.jsx)(wc,{sx:{flex:1},children:(0,ka.jsx)(QuantityControl,{compact:!0,label:e.herbLabel,value:e.herbQty,onIncrement:()=>t(e.herb,e.herbQty+1),onDecrement:()=>t(e.herb,e.herbQty-1)})}),(0,ka.jsx)(wc,{sx:{flex:1},children:e.mineral?(0,ka.jsx)(QuantityControl,{compact:!0,label:e.mineralLabel,value:e.mineralQty,onIncrement:()=>t(e.mineral,e.mineralQty+1),onDecrement:()=>t(e.mineral,e.mineralQty-1)}):(0,ka.jsx)(wc,{sx:{height:28}})})]})}function PrecacheTab({settingsForm:e}){const{pairs:t,update:n}=usePrecache(useNexSys(),e);return(0,ka.jsxs)(wc,{sx:{pt:1},children:[(0,ka.jsxs)(wc,{sx:{display:"flex",gap:.5,mb:.25},children:[(0,ka.jsx)(vl,{variant:"overline",sx:{flex:1,color:"primary.main",fontWeight:700,fontSize:10},children:"Herb"}),(0,ka.jsx)(vl,{variant:"overline",sx:{flex:1,color:"primary.main",fontWeight:700,fontSize:10},children:"Mineral"})]}),t.map(e=>(0,ka.jsx)(PairRow,{pair:e,update:n},e.herb))]})}function ColorSettingsTab(){return(0,ka.jsx)(wc,{sx:{pt:2},children:(0,ka.jsx)(vl,{variant:"body2",color:"text.secondary",children:"Color settings are not yet implemented."})})}var Sg=["System","Aff Priorities","Defences","Precache","Colors"];function ConfigTabs({settingsForm:e}){const[t,n]=(0,c.useState)(0),{pending:a,set:o}=e;return(0,ka.jsxs)(wc,{sx:{width:"100%"},children:[(0,ka.jsx)(rm,{value:t,onChange:(e,t)=>n(t),variant:"scrollable",scrollButtons:"auto",sx:{borderBottom:"1px solid rgba(255,255,255,0.1)",mb:1,"& .MuiTab-root":{fontSize:11,minHeight:36,py:.5}},children:Sg.map(e=>(0,ka.jsx)(Sp,{label:e},e))}),(0,ka.jsxs)(wc,{sx:{overflowY:"auto",overflowX:"auto",maxHeight:800},children:[0===t&&(0,ka.jsx)(SystemSettingsTab,{pending:a,set:o}),1===t&&(0,ka.jsx)(AffPrioritiesTab,{settingsForm:e}),2===t&&(0,ka.jsx)(DefPrioritiesTab,{settingsForm:e}),3===t&&(0,ka.jsx)(PrecacheTab,{settingsForm:e}),4===t&&(0,ka.jsx)(ColorSettingsTab,{})]})]})}function ConfigDialogContent({nexSys:e,onClose:t}){const n=useSettingsForm(e),handleSave=()=>{n.commit(),e?.api?.ui?.closeConfig("ui.save"),t()},handleCancel=()=>{e?.api?.ui?.closeConfig("ui.cancel"),t()};return(0,ka.jsxs)(su,{open:!0,onClose:handleCancel,maxWidth:"md",slotProps:{paper:{sx:{width:{xs:"calc(100% - 24px)",md:900},maxWidth:"calc(100% - 24px)",bgcolor:"background.paper !important",color:"text.primary !important",backgroundImage:"none",border:"1px solid rgba(79,195,247,0.2)"}}},children:[(0,ka.jsxs)(fu,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",bgcolor:"background.paper !important",color:"text.primary !important",pb:.5,borderBottom:"1px solid rgba(255,255,255,0.08)"},children:[(0,ka.jsx)(vl,{component:"span",variant:"h6",sx:{fontSize:14,color:"primary.main !important",fontWeight:700},children:"nexSys4 Configuration"}),(0,ka.jsx)(vl,{component:"span",variant:"caption",sx:{opacity:.65,color:"text.secondary !important"},children:"v1.0.0"})]}),(0,ka.jsx)(pu,{style:{padding:"16px 16px 0px"},sx:{"&.MuiDialogContent-root":{p:0}},children:(0,ka.jsx)(wc,{sx:{px:2,pt:2,pb:0},children:(0,ka.jsx)(ConfigTabs,{settingsForm:n})})}),(0,ka.jsxs)(cu,{sx:{borderTop:"1px solid rgba(255,255,255,0.08)",px:2,py:1},children:[(0,ka.jsx)(Dc,{onClick:handleCancel,size:"small",sx:{fontSize:11},children:"Cancel"}),(0,ka.jsx)(Dc,{onClick:handleSave,variant:"contained",size:"small",sx:{fontSize:11},children:"Save"})]})]})}function ConfigDialog(){const e=useNexSys(),[t,n]=useDialogOpen(e);return(0,ka.jsx)(ThemeProvider,{theme:fm,children:t?(0,ka.jsx)(ConfigDialogContent,{nexSys:e,onClose:()=>n(!1)}):null})}function NexSysGuiApp({nexSys:e}){return(0,ka.jsx)(NexSysProvider,{nexSys:e,children:(0,ka.jsx)(ConfigDialog,{})})}bootstrapNexus().component=NexSysGuiApp,startupNexus()}(React,ReactDOM);
|
|
97
|
+
`,vl="string"!=typeof bl?css`
|
|
98
|
+
animation: ${bl} 1.4s linear infinite;
|
|
99
|
+
`:null,Sl="string"!=typeof yl?css`
|
|
100
|
+
animation: ${yl} 1.4s ease-in-out infinite;
|
|
101
|
+
`:null,useUtilityClasses$45=e=>{const{classes:t,variant:n,color:a,disableShrink:o}=e;return composeClasses({root:["root",n,`color${_s(a)}`],svg:["svg"],track:["track"],circle:["circle",o&&"circleDisableShrink"]},getCircularProgressUtilityClass,t)},xl=Ss("span",{name:"MuiCircularProgress",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`color${_s(n.color)}`]]}})(Ps(({theme:e})=>({display:"inline-block",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("transform")}},{props:{variant:"indeterminate"},style:vl||{animation:`${bl} 1.4s linear infinite`}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}}))]}))),wl=Ss("svg",{name:"MuiCircularProgress",slot:"Svg"})({display:"block"}),Cl=Ss("circle",{name:"MuiCircularProgress",slot:"Circle",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.circle,n.disableShrink&&t.circleDisableShrink]}})(Ps(({theme:e})=>({stroke:"currentColor",variants:[{props:{variant:"determinate"},style:{transition:e.transitions.create("stroke-dashoffset")}},{props:{variant:"indeterminate"},style:{strokeDasharray:"80px, 200px",strokeDashoffset:0}},{props:({ownerState:e})=>"indeterminate"===e.variant&&!e.disableShrink,style:Sl||{animation:`${yl} 1.4s ease-in-out infinite`}}]}))),kl=Ss("circle",{name:"MuiCircularProgress",slot:"Track"})(Ps(({theme:e})=>({stroke:"currentColor",opacity:(e.vars||e).palette.action.activatedOpacity}))),El=c.forwardRef(function CircularProgress(e,t){const n=useDefaultProps({props:e,name:"MuiCircularProgress"}),{className:a,color:o="primary",disableShrink:i=!1,enableTrackSlot:s=!1,min:l,max:c,size:u=40,style:d,thickness:p=3.6,value:m=n.min??0,variant:g="indeterminate",...h}=n,b=l??0,y=c??100,v={...n,color:o,disableShrink:i,size:u,thickness:p,value:m,variant:g,enableTrackSlot:s},S=useUtilityClasses$45(v),x={},w={},C={};if("determinate"===g){const e=2*Math.PI*((hl-p)/2),t=y-b;x.strokeDasharray=e.toFixed(3),x.strokeDashoffset=t>0?`${((y-m)/t*e).toFixed(3)}px`:`${e.toFixed(3)}px`,w.transform="rotate(-90deg)",C["aria-valuenow"]=m,C["aria-valuemin"]=b,C["aria-valuemax"]=y}return(0,Oa.jsx)(xl,{className:clsx(S.root,a),style:{width:u,height:u,...w,...d},ownerState:v,ref:t,role:"progressbar",...C,...h,children:(0,Oa.jsxs)(wl,{className:S.svg,ownerState:v,viewBox:`${hl/2} ${hl/2} ${hl} ${hl}`,children:[s?(0,Oa.jsx)(kl,{className:S.track,ownerState:v,cx:hl,cy:hl,r:(hl-p)/2,fill:"none",strokeWidth:p,"aria-hidden":"true"}):null,(0,Oa.jsx)(Cl,{className:S.circle,style:x,ownerState:v,cx:hl,cy:hl,r:(hl-p)/2,fill:"none",strokeWidth:p})]})})});function getTypographyUtilityClass(e){return generateUtilityClass("MuiTypography",e)}generateUtilityClasses("MuiTypography",["root","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","inherit","button","caption","overline","alignLeft","alignRight","alignCenter","alignJustify","noWrap","gutterBottom"]);var useUtilityClasses$44=e=>{const{align:t,gutterBottom:n,noWrap:a,variant:o,classes:i}=e;return composeClasses({root:["root",o,"inherit"!==e.align&&`align${_s(t)}`,n&&"gutterBottom",a&&"noWrap"]},getTypographyUtilityClass,i)},_l=Ss("span",{name:"MuiTypography",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],"inherit"!==n.align&&t[`align${_s(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom]}})(Ps(({theme:e})=>({margin:0,variants:[{props:{variant:"inherit"},style:{font:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}},...Object.entries(e.typography).filter(([e,t])=>"inherit"!==e&&t&&"object"==typeof t).map(([e,t])=>({props:{variant:e},style:t})),...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),...Object.entries(e.palette?.text||{}).filter(([,e])=>"string"==typeof e).map(([t])=>({props:{color:`text${_s(t)}`},style:{color:(e.vars||e).palette.text[t]}})),{props:({ownerState:e})=>"inherit"!==e.align,style:{textAlign:"var(--Typography-textAlign)"}},{props:({ownerState:e})=>e.noWrap,style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},{props:({ownerState:e})=>e.gutterBottom,style:{marginBottom:"0.35em"}}]}))),Pl={h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",subtitle1:"h6",subtitle2:"h6",body1:"p",body2:"p",inherit:"p"},Tl=c.forwardRef(function Typography(e,t){const n=useDefaultProps({props:e,name:"MuiTypography"}),{color:a,align:o="inherit",className:i,component:s,gutterBottom:l=!1,noWrap:c=!1,variant:u="body1",variantMapping:d=Pl,...p}=n,m={...n,align:o,color:a,className:i,component:s,gutterBottom:l,noWrap:c,variant:u,variantMapping:d};return(0,Oa.jsx)(_l,{as:s||d[u]||Pl[u]||"span",ref:t,className:clsx(useUtilityClasses$44(m).root,i),...p,ownerState:m,style:{..."inherit"!==o&&{"--Typography-textAlign":o},...p.style}})});function contains$1(e,t){if(!e||!t)return!1;if(e.contains(t))return!0;const n=t.getRootNode?.();if(n&&n instanceof ShadowRoot){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode??n.host??null}}return!1}var Al="bottom",Rl="right",Ml="left",Dl="auto",Ol=["top",Al,Rl,Ml],$l="start",Il="clippingParents",Nl="viewport",zl="popper",Ll="reference",jl=Ol.reduce(function(e,t){return e.concat([t+"-"+$l,t+"-end"])},[]),Bl=[].concat(Ol,[Dl]).reduce(function(e,t){return e.concat([t,t+"-"+$l,t+"-end"])},[]),Fl=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function getNodeName(e){return e?(e.nodeName||"").toLowerCase():null}function getWindow$1(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function isElement(e){return e instanceof getWindow$1(e).Element||e instanceof Element}function isHTMLElement$2(e){return e instanceof getWindow$1(e).HTMLElement||e instanceof HTMLElement}function isShadowRoot(e){return"undefined"!=typeof ShadowRoot&&(e instanceof getWindow$1(e).ShadowRoot||e instanceof ShadowRoot)}function applyStyles(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var n=t.styles[e]||{},a=t.attributes[e]||{},o=t.elements[e];isHTMLElement$2(o)&&getNodeName(o)&&(Object.assign(o.style,n),Object.keys(a).forEach(function(e){var t=a[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)}))})}function effect$2(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(e){var a=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce(function(e,t){return e[t]="",e},{});isHTMLElement$2(a)&&getNodeName(a)&&(Object.assign(a.style,i),Object.keys(o).forEach(function(e){a.removeAttribute(e)}))})}}var ql={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(e){return e.split("-")[0]}var Ul=Math.max,Vl=Math.min,Hl=Math.round;function getUAString(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var a=e.getBoundingClientRect(),o=1,i=1;t&&isHTMLElement$2(e)&&(o=e.offsetWidth>0&&Hl(a.width)/e.offsetWidth||1,i=e.offsetHeight>0&&Hl(a.height)/e.offsetHeight||1);var s=(isElement(e)?getWindow$1(e):window).visualViewport,l=!isLayoutViewport()&&n,c=(a.left+(l&&s?s.offsetLeft:0))/o,u=(a.top+(l&&s?s.offsetTop:0))/i,d=a.width/o,p=a.height/i;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c,x:c,y:u}}function getLayoutRect(e){var t=getBoundingClientRect(e),n=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:a}}function contains(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&isShadowRoot(n)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function getComputedStyle(e){return getWindow$1(e).getComputedStyle(e)}function isTableElement(e){return["table","td","th"].indexOf(getNodeName(e))>=0}function getDocumentElement(e){return((isElement(e)?e.ownerDocument:e.document)||window.document).documentElement}function getParentNode(e){return"html"===getNodeName(e)?e:e.assignedSlot||e.parentNode||(isShadowRoot(e)?e.host:null)||getDocumentElement(e)}function getTrueOffsetParent(e){return isHTMLElement$2(e)&&"fixed"!==getComputedStyle(e).position?e.offsetParent:null}function getContainingBlock(e){var t=/firefox/i.test(getUAString());if(/Trident/i.test(getUAString())&&isHTMLElement$2(e)&&"fixed"===getComputedStyle(e).position)return null;var n=getParentNode(e);for(isShadowRoot(n)&&(n=n.host);isHTMLElement$2(n)&&["html","body"].indexOf(getNodeName(n))<0;){var a=getComputedStyle(n);if("none"!==a.transform||"none"!==a.perspective||"paint"===a.contain||-1!==["transform","perspective"].indexOf(a.willChange)||t&&"filter"===a.willChange||t&&a.filter&&"none"!==a.filter)return n;n=n.parentNode}return null}function getOffsetParent(e){for(var t=getWindow$1(e),n=getTrueOffsetParent(e);n&&isTableElement(n)&&"static"===getComputedStyle(n).position;)n=getTrueOffsetParent(n);return n&&("html"===getNodeName(n)||"body"===getNodeName(n)&&"static"===getComputedStyle(n).position)?t:n||getContainingBlock(e)||t}function getMainAxisFromPlacement(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function within(e,t,n){return Ul(e,Vl(t,n))}function withinMaxClamp(e,t,n){var a=within(e,t,n);return a>n?n:a}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(e){return Object.assign({},getFreshSideObject(),e)}function expandToHashMap(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Wl=function toPaddingObject(e,t){return mergePaddingObject("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:expandToHashMap(e,Ol))};function arrow(e){var t,n=e.state,a=e.name,o=e.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,l=getBasePlacement(n.placement),c=getMainAxisFromPlacement(l),u=["left","right"].indexOf(l)>=0?"height":"width";if(i&&s){var d=Wl(o.padding,n),p=getLayoutRect(i),m="y"===c?"top":Ml,g="y"===c?Al:Rl,h=n.rects.reference[u]+n.rects.reference[c]-s[c]-n.rects.popper[u],b=s[c]-n.rects.reference[c],y=getOffsetParent(i),v=y?"y"===c?y.clientHeight||0:y.clientWidth||0:0,S=h/2-b/2,x=d[m],w=v-p[u]-d[g],C=v/2-p[u]/2+S,k=within(x,C,w),E=c;n.modifiersData[a]=((t={})[E]=k,t.centerOffset=k-C,t)}}function effect$1(e){var t=e.state,n=e.options.element,a=void 0===n?"[data-popper-arrow]":n;null!=a&&("string"!=typeof a||(a=t.elements.popper.querySelector(a)))&&contains(t.elements.popper,a)&&(t.elements.arrow=a)}function getVariation(e){return e.split("-")[1]}var Gl={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(e,t){var n=e.x,a=e.y,o=t.devicePixelRatio||1;return{x:Hl(n*o)/o||0,y:Hl(a*o)/o||0}}function mapToStyles(e){var t,n=e.popper,a=e.popperRect,o=e.placement,i=e.variation,s=e.offsets,l=e.position,c=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,p=e.isFixed,m=s.x,g=void 0===m?0:m,h=s.y,b=void 0===h?0:h,y="function"==typeof d?d({x:g,y:b}):{x:g,y:b};g=y.x,b=y.y;var v=s.hasOwnProperty("x"),S=s.hasOwnProperty("y"),x=Ml,w="top",C=window;if(u){var k=getOffsetParent(n),E="clientHeight",P="clientWidth";if(k===getWindow$1(n)&&"static"!==getComputedStyle(k=getDocumentElement(n)).position&&"absolute"===l&&(E="scrollHeight",P="scrollWidth"),"top"===o||("left"===o||"right"===o)&&"end"===i)w=Al,b-=(p&&k===C&&C.visualViewport?C.visualViewport.height:k[E])-a.height,b*=c?1:-1;if("left"===o||("top"===o||"bottom"===o)&&"end"===i)x=Rl,g-=(p&&k===C&&C.visualViewport?C.visualViewport.width:k[P])-a.width,g*=c?1:-1}var T,R=Object.assign({position:l},u&&Gl),M=!0===d?roundOffsetsByDPR({x:g,y:b},getWindow$1(n)):{x:g,y:b};return g=M.x,b=M.y,c?Object.assign({},R,((T={})[w]=S?"0":"",T[x]=v?"0":"",T.transform=(C.devicePixelRatio||1)<=1?"translate("+g+"px, "+b+"px)":"translate3d("+g+"px, "+b+"px, 0)",T)):Object.assign({},R,((t={})[w]=S?b+"px":"",t[x]=v?g+"px":"",t.transform="",t))}function computeStyles(e){var t=e.state,n=e.options,a=n.gpuAcceleration,o=void 0===a||a,i=n.adaptive,s=void 0===i||i,l=n.roundOffsets,c=void 0===l||l,u={placement:getBasePlacement(t.placement),variation:getVariation(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:c})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,mapToStyles(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var Yl={passive:!0};function effect(e){var t=e.state,n=e.instance,a=e.options,o=a.scroll,i=void 0===o||o,s=a.resize,l=void 0===s||s,c=getWindow$1(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&u.forEach(function(e){e.addEventListener("scroll",n.update,Yl)}),l&&c.addEventListener("resize",n.update,Yl),function(){i&&u.forEach(function(e){e.removeEventListener("scroll",n.update,Yl)}),l&&c.removeEventListener("resize",n.update,Yl)}}var Kl={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(e){return e.replace(/left|right|bottom|top/g,function(e){return Kl[e]})}var Ql={start:"end",end:"start"};function getOppositeVariationPlacement(e){return e.replace(/start|end/g,function(e){return Ql[e]})}function getWindowScroll(e){var t=getWindow$1(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function getWindowScrollBarX(e){return getBoundingClientRect(getDocumentElement(e)).left+getWindowScroll(e).scrollLeft}function getViewportRect(e,t){var n=getWindow$1(e),a=getDocumentElement(e),o=n.visualViewport,i=a.clientWidth,s=a.clientHeight,l=0,c=0;if(o){i=o.width,s=o.height;var u=isLayoutViewport();(u||!u&&"fixed"===t)&&(l=o.offsetLeft,c=o.offsetTop)}return{width:i,height:s,x:l+getWindowScrollBarX(e),y:c}}function getDocumentRect(e){var t,n=getDocumentElement(e),a=getWindowScroll(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=Ul(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=Ul(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),l=-a.scrollLeft+getWindowScrollBarX(e),c=-a.scrollTop;return"rtl"===getComputedStyle(o||n).direction&&(l+=Ul(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:s,x:l,y:c}}function isScrollParent(e){var t=getComputedStyle(e),n=t.overflow,a=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+a)}function getScrollParent(e){return["html","body","#document"].indexOf(getNodeName(e))>=0?e.ownerDocument.body:isHTMLElement$2(e)&&isScrollParent(e)?e:getScrollParent(getParentNode(e))}function listScrollParents(e,t){var n;void 0===t&&(t=[]);var a=getScrollParent(e),o=a===(null==(n=e.ownerDocument)?void 0:n.body),i=getWindow$1(a),s=o?[i].concat(i.visualViewport||[],isScrollParent(a)?a:[]):a,l=t.concat(s);return o?l:l.concat(listScrollParents(getParentNode(s)))}function rectToClientRect(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function getInnerBoundingClientRect(e,t){var n=getBoundingClientRect(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function getClientRectFromMixedType(e,t,n){return"viewport"===t?rectToClientRect(getViewportRect(e,n)):isElement(t)?getInnerBoundingClientRect(t,n):rectToClientRect(getDocumentRect(getDocumentElement(e)))}function getClippingParents(e){var t=listScrollParents(getParentNode(e)),n=["absolute","fixed"].indexOf(getComputedStyle(e).position)>=0&&isHTMLElement$2(e)?getOffsetParent(e):e;return isElement(n)?t.filter(function(e){return isElement(e)&&contains(e,n)&&"body"!==getNodeName(e)}):[]}function getClippingRect(e,t,n,a){var o="clippingParents"===t?getClippingParents(e):[].concat(t),i=[].concat(o,[n]),s=i[0],l=i.reduce(function(t,n){var o=getClientRectFromMixedType(e,n,a);return t.top=Ul(o.top,t.top),t.right=Vl(o.right,t.right),t.bottom=Vl(o.bottom,t.bottom),t.left=Ul(o.left,t.left),t},getClientRectFromMixedType(e,s,a));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function computeOffsets(e){var t,n=e.reference,a=e.element,o=e.placement,i=o?getBasePlacement(o):null,s=o?getVariation(o):null,l=n.x+n.width/2-a.width/2,c=n.y+n.height/2-a.height/2;switch(i){case"top":t={x:l,y:n.y-a.height};break;case Al:t={x:l,y:n.y+n.height};break;case Rl:t={x:n.x+n.width,y:c};break;case Ml:t={x:n.x-a.width,y:c};break;default:t={x:n.x,y:n.y}}var u=i?getMainAxisFromPlacement(i):null;if(null!=u){var d="y"===u?"height":"width";switch(s){case $l:t[u]=t[u]-(n[d]/2-a[d]/2);break;case"end":t[u]=t[u]+(n[d]/2-a[d]/2)}}return t}function detectOverflow(e,t){void 0===t&&(t={});var n=t,a=n.placement,o=void 0===a?e.placement:a,i=n.strategy,s=void 0===i?e.strategy:i,l=n.boundary,c=void 0===l?Il:l,u=n.rootBoundary,d=void 0===u?Nl:u,p=n.elementContext,m=void 0===p?zl:p,g=n.altBoundary,h=void 0!==g&&g,b=n.padding,y=void 0===b?0:b,v=mergePaddingObject("number"!=typeof y?y:expandToHashMap(y,Ol)),S="popper"===m?Ll:zl,x=e.rects.popper,w=e.elements[h?S:m],C=getClippingRect(isElement(w)?w:w.contextElement||getDocumentElement(e.elements.popper),c,d,s),k=getBoundingClientRect(e.elements.reference),E=computeOffsets({reference:k,element:x,strategy:"absolute",placement:o}),P=rectToClientRect(Object.assign({},x,E)),T="popper"===m?P:k,R={top:C.top-T.top+v.top,bottom:T.bottom-C.bottom+v.bottom,left:C.left-T.left+v.left,right:T.right-C.right+v.right},M=e.modifiersData.offset;if("popper"===m&&M){var D=M[o];Object.keys(R).forEach(function(e){var t=["right","bottom"].indexOf(e)>=0?1:-1,n=["top","bottom"].indexOf(e)>=0?"y":"x";R[e]+=D[n]*t})}return R}function computeAutoPlacement(e,t){void 0===t&&(t={});var n=t,a=n.placement,o=n.boundary,i=n.rootBoundary,s=n.padding,l=n.flipVariations,c=n.allowedAutoPlacements,u=void 0===c?Bl:c,d=getVariation(a),p=d?l?jl:jl.filter(function(e){return getVariation(e)===d}):Ol,m=p.filter(function(e){return u.indexOf(e)>=0});0===m.length&&(m=p);var g=m.reduce(function(t,n){return t[n]=detectOverflow(e,{placement:n,boundary:o,rootBoundary:i,padding:s})[getBasePlacement(n)],t},{});return Object.keys(g).sort(function(e,t){return g[e]-g[t]})}function getExpandedFallbackPlacements(e){if("auto"===getBasePlacement(e))return[];var t=getOppositePlacement(e);return[getOppositeVariationPlacement(e),t,getOppositeVariationPlacement(t)]}function flip(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var o=n.mainAxis,i=void 0===o||o,s=n.altAxis,l=void 0===s||s,c=n.fallbackPlacements,u=n.padding,d=n.boundary,p=n.rootBoundary,m=n.altBoundary,g=n.flipVariations,h=void 0===g||g,b=n.allowedAutoPlacements,y=t.options.placement,v=getBasePlacement(y)===y,S=c||(v||!h?[getOppositePlacement(y)]:getExpandedFallbackPlacements(y)),x=[y].concat(S).reduce(function(e,n){return e.concat("auto"===getBasePlacement(n)?computeAutoPlacement(t,{placement:n,boundary:d,rootBoundary:p,padding:u,flipVariations:h,allowedAutoPlacements:b}):n)},[]),w=t.rects.reference,C=t.rects.popper,k=new Map,E=!0,P=x[0],T=0;T<x.length;T++){var R=x[T],M=getBasePlacement(R),D=getVariation(R)===$l,O=["top",Al].indexOf(M)>=0,$=O?"width":"height",I=detectOverflow(t,{placement:R,boundary:d,rootBoundary:p,altBoundary:m,padding:u}),N=O?D?Rl:Ml:D?Al:"top";w[$]>C[$]&&(N=getOppositePlacement(N));var L=getOppositePlacement(N),j=[];if(i&&j.push(I[M]<=0),l&&j.push(I[N]<=0,I[L]<=0),j.every(function(e){return e})){P=R,E=!1;break}k.set(R,j)}if(E)for(var B=function _loop(e){var t=x.find(function(t){var n=k.get(t);if(n)return n.slice(0,e).every(function(e){return e})});if(t)return P=t,"break"},F=h?3:1;F>0&&"break"!==B(F);F--);t.placement!==P&&(t.modifiersData[a]._skip=!0,t.placement=P,t.reset=!0)}}function getSideOffsets(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function isAnySideFullyClipped(e){return["top",Rl,Al,Ml].some(function(t){return e[t]>=0})}function hide(e){var t=e.state,n=e.name,a=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,s=detectOverflow(t,{elementContext:"reference"}),l=detectOverflow(t,{altBoundary:!0}),c=getSideOffsets(s,a),u=getSideOffsets(l,o,i),d=isAnySideFullyClipped(c),p=isAnySideFullyClipped(u);t.modifiersData[n]={referenceClippingOffsets:c,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":p})}function distanceAndSkiddingToXY(e,t,n){var a=getBasePlacement(e),o=["left","top"].indexOf(a)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,s=i[0],l=i[1];return s=s||0,l=(l||0)*o,["left","right"].indexOf(a)>=0?{x:l,y:s}:{x:s,y:l}}function offset(e){var t=e.state,n=e.options,a=e.name,o=n.offset,i=void 0===o?[0,0]:o,s=Bl.reduce(function(e,n){return e[n]=distanceAndSkiddingToXY(n,t.rects,i),e},{}),l=s[t.placement],c=l.x,u=l.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=u),t.modifiersData[a]=s}function popperOffsets(e){var t=e.state,n=e.name;t.modifiersData[n]=computeOffsets({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}function getAltAxis(e){return"x"===e?"y":"x"}function preventOverflow(e){var t=e.state,n=e.options,a=e.name,o=n.mainAxis,i=void 0===o||o,s=n.altAxis,l=void 0!==s&&s,c=n.boundary,u=n.rootBoundary,d=n.altBoundary,p=n.padding,m=n.tether,g=void 0===m||m,h=n.tetherOffset,b=void 0===h?0:h,y=detectOverflow(t,{boundary:c,rootBoundary:u,padding:p,altBoundary:d}),v=getBasePlacement(t.placement),S=getVariation(t.placement),x=!S,w=getMainAxisFromPlacement(v),C=getAltAxis(w),k=t.modifiersData.popperOffsets,E=t.rects.reference,P=t.rects.popper,T="function"==typeof b?b(Object.assign({},t.rects,{placement:t.placement})):b,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),M=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,D={x:0,y:0};if(k){if(i){var O,$="y"===w?"top":Ml,I="y"===w?Al:Rl,N="y"===w?"height":"width",L=k[w],j=L+y[$],B=L-y[I],F=g?-P[N]/2:0,q="start"===S?E[N]:P[N],U="start"===S?-P[N]:-E[N],V=t.elements.arrow,H=g&&V?getLayoutRect(V):{width:0,height:0},W=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:getFreshSideObject(),G=W[$],Y=W[I],K=within(0,E[N],H[N]),Q=x?E[N]/2-F-K-G-R.mainAxis:q-K-G-R.mainAxis,Z=x?-E[N]/2+F+K+Y+R.mainAxis:U+K+Y+R.mainAxis,X=t.elements.arrow&&getOffsetParent(t.elements.arrow),J=X?"y"===w?X.clientTop||0:X.clientLeft||0:0,ee=null!=(O=null==M?void 0:M[w])?O:0,te=L+Z-ee,re=within(g?Vl(j,L+Q-ee-J):j,L,g?Ul(B,te):B);k[w]=re,D[w]=re-L}if(l){var ne,ae="x"===w?"top":Ml,oe="x"===w?Al:Rl,ie=k[C],se="y"===C?"height":"width",le=ie+y[ae],ce=ie-y[oe],ue=-1!==["top",Ml].indexOf(v),de=null!=(ne=null==M?void 0:M[C])?ne:0,pe=ue?le:ie-E[se]-P[se]-de+R.altAxis,me=ue?ie+E[se]+P[se]-de-R.altAxis:ce,fe=g&&ue?withinMaxClamp(pe,ie,me):within(g?pe:le,ie,g?me:ce);k[C]=fe,D[C]=fe-ie}t.modifiersData[a]=D}}function getHTMLElementScroll(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function getNodeScroll(e){return e!==getWindow$1(e)&&isHTMLElement$2(e)?getHTMLElementScroll(e):getWindowScroll(e)}function isElementScaled(e){var t=e.getBoundingClientRect(),n=Hl(t.width)/e.offsetWidth||1,a=Hl(t.height)/e.offsetHeight||1;return 1!==n||1!==a}function getCompositeRect(e,t,n){void 0===n&&(n=!1);var a=isHTMLElement$2(t),o=isHTMLElement$2(t)&&isElementScaled(t),i=getDocumentElement(t),s=getBoundingClientRect(e,o,n),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(a||!a&&!n)&&(("body"!==getNodeName(t)||isScrollParent(i))&&(l=getNodeScroll(t)),isHTMLElement$2(t)?((c=getBoundingClientRect(t,!0)).x+=t.clientLeft,c.y+=t.clientTop):i&&(c.x=getWindowScrollBarX(i))),{x:s.left+l.scrollLeft-c.x,y:s.top+l.scrollTop-c.y,width:s.width,height:s.height}}function order(e){var t=new Map,n=new Set,a=[];function sort(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach(function(e){if(!n.has(e)){var a=t.get(e);a&&sort(a)}}),a.push(e)}return e.forEach(function(e){t.set(e.name,e)}),e.forEach(function(e){n.has(e.name)||sort(e)}),a}function orderModifiers(e){var t=order(e);return Fl.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function debounce(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function mergeByName(e){var t=e.reduce(function(e,t){var n=e[t.name];return e[t.name]=n?Object.assign({},n,t,{options:Object.assign({},n.options,t.options),data:Object.assign({},n.data,t.data)}):t,e},{});return Object.keys(t).map(function(e){return t[e]})}var Zl={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return!t.some(function(e){return!(e&&"function"==typeof e.getBoundingClientRect)})}function popperGenerator(e){void 0===e&&(e={});var t=e,n=t.defaultModifiers,a=void 0===n?[]:n,o=t.defaultOptions,i=void 0===o?Zl:o;return function createPopper(e,t,n){void 0===n&&(n=i);var o={placement:"bottom",orderedModifiers:[],options:Object.assign({},Zl,i),modifiersData:{},elements:{reference:e,popper:t},attributes:{},styles:{}},s=[],l=!1,c={state:o,setOptions:function setOptions(n){var s="function"==typeof n?n(o.options):n;cleanupModifierEffects(),o.options=Object.assign({},i,o.options,s),o.scrollParents={reference:isElement(e)?listScrollParents(e):e.contextElement?listScrollParents(e.contextElement):[],popper:listScrollParents(t)};var l=orderModifiers(mergeByName([].concat(a,o.options.modifiers)));return o.orderedModifiers=l.filter(function(e){return e.enabled}),runModifierEffects(),c.update()},forceUpdate:function forceUpdate(){if(!l){var e=o.elements,t=e.reference,n=e.popper;if(areValidElements(t,n)){o.rects={reference:getCompositeRect(t,getOffsetParent(n),"fixed"===o.options.strategy),popper:getLayoutRect(n)},o.reset=!1,o.placement=o.options.placement,o.orderedModifiers.forEach(function(e){return o.modifiersData[e.name]=Object.assign({},e.data)});for(var a=0;a<o.orderedModifiers.length;a++)if(!0!==o.reset){var i=o.orderedModifiers[a],s=i.fn,u=i.options,d=void 0===u?{}:u,p=i.name;"function"==typeof s&&(o=s({state:o,options:d,name:p,instance:c})||o)}else o.reset=!1,a=-1}}},update:debounce(function(){return new Promise(function(e){c.forceUpdate(),e(o)})}),destroy:function destroy(){cleanupModifierEffects(),l=!0}};if(!areValidElements(e,t))return c;function runModifierEffects(){o.orderedModifiers.forEach(function(e){var t=e.name,n=e.options,a=void 0===n?{}:n,i=e.effect;if("function"==typeof i){var l=i({state:o,name:t,instance:c,options:a});s.push(l||function noopFn(){})}})}function cleanupModifierEffects(){s.forEach(function(e){return e()}),s=[]}return c.setOptions(n).then(function(e){!l&&n.onFirstUpdate&&n.onFirstUpdate(e)}),c}}var Xl=popperGenerator({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function fn(){},effect,data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}},ql,{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset},{name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide}]});function useSlotProps(e){const{elementType:t,externalSlotProps:n,ownerState:a,skipResolvingSlotProps:o=!1,...i}=e,s=o?{}:resolveComponentProps(n,a),{props:l,internalRef:c}=mergeSlotProps({...i,externalSlotProps:s});return appendOwnerState(t,{...l,ref:useForkRef(c,s?.ref,e.additionalProps?.ref)},a)}function getReactElementRef(e){return parseInt(c.version,10)>=19?e?.props?.ref||null:e?.ref||null}function getContainer$1(e){return"function"==typeof e?e():e}var Jl=c.forwardRef(function Portal(e,t){const{children:n,container:a,disablePortal:o=!1}=e,[i,s]=c.useState(null),l=useForkRef(c.isValidElement(n)?getReactElementRef(n):null,t);if(Gi(()=>{o||s(getContainer$1(a)||document.body)},[a,o]),Gi(()=>{if(i&&!o)return setRef(t,i),()=>{setRef(t,null)}},[t,i,o]),o){if(c.isValidElement(n)){const e={ref:l};return c.cloneElement(n,e)}return n}return i?u.createPortal(n,i):i});function getPopperUtilityClass(e){return generateUtilityClass("MuiPopper",e)}generateUtilityClasses("MuiPopper",["root"]);function flipPlacement(e,t){if("ltr"===t)return e;switch(e){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return e}}function resolveAnchorEl$1(e){return"function"==typeof e?e():e}function isHTMLElement$1(e){return void 0!==e.nodeType}var useUtilityClasses$43=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getPopperUtilityClass,t)},ec={},tc=c.forwardRef(function PopperTooltip(e,t){const{anchorEl:n,children:a,direction:o,disablePortal:i,modifiers:s,open:l,placement:u,popperOptions:d,popperRef:p,slotProps:m={},slots:g={},TransitionProps:h,ownerState:b,...y}=e,v=c.useRef(null),S=useForkRef(v,t),x=c.useRef(null),w=useForkRef(x,p),C=c.useRef(w);Gi(()=>{C.current=w},[w]),c.useImperativeHandle(p,()=>x.current,[]);const k=flipPlacement(u,o),[E,P]=c.useState(k),[T,R]=c.useState(resolveAnchorEl$1(n));c.useEffect(()=>{x.current&&x.current.forceUpdate()}),c.useEffect(()=>{n&&R(resolveAnchorEl$1(n))},[n]),Gi(()=>{if(!T||!l)return;const handlePopperUpdate=e=>{P(e.placement)};let e=[{name:"preventOverflow",options:{altBoundary:i}},{name:"flip",options:{altBoundary:i}},{name:"onUpdate",enabled:!0,phase:"afterWrite",fn:({state:e})=>{handlePopperUpdate(e)}}];null!=s&&(e=e.concat(s)),d&&null!=d.modifiers&&(e=e.concat(d.modifiers));const t=Xl(T,v.current,{placement:k,...d,modifiers:e});C.current(t);const n=v.current;return()=>{if(n){const{style:e}=n,a=e.position,o=e.top,i=e.left,s=e.transform;t.destroy(),e.position=a,e.top=o,e.left=i,e.transform=s}else t.destroy();C.current(null)}},[T,i,s,l,d,k]);const M={placement:E};null!==h&&(M.TransitionProps=h);const D=useUtilityClasses$43(e),O=g.root??"div";return(0,Oa.jsx)(O,{...useSlotProps({elementType:O,externalSlotProps:m.root,externalForwardedProps:y,additionalProps:{role:"tooltip",ref:S},ownerState:e,className:D.root}),children:"function"==typeof a?a(M):a})}),rc=c.forwardRef(function Popper(e,t){const{anchorEl:n,children:a,container:o,direction:i="ltr",disablePortal:s=!1,keepMounted:l=!1,modifiers:u,open:d,placement:p="bottom",popperOptions:m=ec,popperRef:g,style:h,transition:b=!1,slotProps:y={},slots:v={},...S}=e,[x,w]=c.useState(!0),handleEnter=()=>{w(!1)},handleExited=()=>{w(!0)};if(!l&&!d&&(!b||x))return null;let C;if(o)C=o;else if(n){const e=resolveAnchorEl$1(n);C=e&&isHTMLElement$1(e)?ownerDocument(e).body:ownerDocument(null).body}const k=d||!l||b&&!x?void 0:"none",E=b?{in:d,onEnter:handleEnter,onExited:handleExited}:void 0;return(0,Oa.jsx)(Jl,{disablePortal:s,container:C,children:(0,Oa.jsx)(tc,{anchorEl:n,direction:i,disablePortal:s,modifiers:u,ref:t,open:b?!x:d,placement:p,popperOptions:m,popperRef:g,slotProps:y,slots:v,...S,style:{position:"fixed",top:0,left:0,display:k,...h},TransitionProps:E,children:a})})}),nc=Ss(rc,{name:"MuiPopper",slot:"Root"})({}),ac=c.forwardRef(function Popper(e,t){const n=useRtl(),{anchorEl:a,component:o,container:i,disablePortal:s,keepMounted:l,modifiers:c,open:u,placement:d,popperOptions:p,popperRef:m,transition:g,slots:h,slotProps:b,...y}=useDefaultProps({props:e,name:"MuiPopper"}),v={anchorEl:a,container:i,disablePortal:s,keepMounted:l,modifiers:c,open:u,placement:d,popperOptions:p,popperRef:m,transition:g,...y};return(0,Oa.jsx)(nc,{as:o,direction:n?"rtl":"ltr",slots:h,slotProps:b,...v,ref:t})}),oc=createSvgIcon((0,Oa.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");function getChipUtilityClass(e){return generateUtilityClass("MuiChip",e)}var ic=generateUtilityClasses("MuiChip",["root","sizeSmall","sizeMedium","colorDefault","colorError","colorInfo","colorPrimary","colorSecondary","colorSuccess","colorWarning","disabled","clickable","deletable","outlined","filled","avatar","icon","label","deleteIcon","focusVisible"]),useUtilityClasses$42=e=>{const{classes:t,disabled:n,size:a,color:o,onDelete:i,clickable:s,variant:l}=e;return composeClasses({root:["root",l,n&&"disabled",`size${_s(a)}`,`color${_s(o)}`,s&&"clickable",i&&"deletable"],label:["label"],avatar:["avatar"],icon:["icon"],deleteIcon:["deleteIcon"]},getChipUtilityClass,t)},sc=Ss("div",{name:"MuiChip",slot:"Root",shouldForwardProp:e=>rootShouldForwardProp(e)&&"focusableWhenDisabled"!==e&&"skipFocusWhenDisabled"!==e,overridesResolver:(e,t)=>{const{ownerState:n}=e,{color:a,clickable:o,onDelete:i,size:s,variant:l}=n;return[{[`& .${ic.avatar}`]:t.avatar},{[`& .${ic.icon}`]:t.icon},{[`& .${ic.deleteIcon}`]:t.deleteIcon},t.root,t[`size${_s(s)}`],t[`color${_s(a)}`],o&&t.clickable,i&&t.deletable,t[l]]}})(Ps(({theme:e})=>{const t="light"===e.palette.mode?e.palette.grey[700]:e.palette.grey[300];return{maxWidth:"100%",fontFamily:e.typography.fontFamily,fontSize:e.typography.pxToRem(13),display:"inline-flex",alignItems:"center",justifyContent:"center",height:32,lineHeight:1.5,color:(e.vars||e).palette.text.primary,backgroundColor:(e.vars||e).palette.action.selected,borderRadius:16,whiteSpace:"nowrap",transition:e.transitions.create(["background-color","box-shadow"]),cursor:"unset",outline:0,textDecoration:"none",border:0,padding:0,verticalAlign:"middle",boxSizing:"border-box",[`&.${ic.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity,pointerEvents:"none"},[`& .${ic.avatar}`]:{marginLeft:5,marginRight:-6,width:24,height:24,color:e.vars?e.vars.palette.Chip.defaultAvatarColor:t,fontSize:e.typography.pxToRem(12)},[`& .${ic.icon}`]:{marginLeft:5,marginRight:-6},[`& .${ic.deleteIcon}`]:{WebkitTapHighlightColor:"transparent",color:e.alpha((e.vars||e).palette.text.primary,.26),fontSize:22,cursor:"pointer",margin:"0 5px 0 -6px","&:hover":{color:e.alpha((e.vars||e).palette.text.primary,.4)}},variants:[{props:{color:"primary"},style:{[`& .${ic.avatar}`]:{color:(e.vars||e).palette.primary.contrastText,backgroundColor:(e.vars||e).palette.primary.dark}}},{props:{color:"secondary"},style:{[`& .${ic.avatar}`]:{color:(e.vars||e).palette.secondary.contrastText,backgroundColor:(e.vars||e).palette.secondary.dark}}},{props:{size:"small"},style:{height:24,[`& .${ic.avatar}`]:{marginLeft:4,marginRight:-4,width:18,height:18,fontSize:e.typography.pxToRem(10)},[`& .${ic.icon}`]:{fontSize:18,marginLeft:4,marginRight:-4},[`& .${ic.deleteIcon}`]:{fontSize:16,marginRight:4,marginLeft:-4}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["contrastText"])).map(([t])=>({props:{color:t},style:{backgroundColor:(e.vars||e).palette[t].main,color:(e.vars||e).palette[t].contrastText,[`& .${ic.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].contrastText,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].contrastText}}}})),{props:e=>e.iconColor===e.color,style:{[`& .${ic.icon}`]:{color:e.vars?e.vars.palette.Chip.defaultIconColor:t}}},{props:e=>e.iconColor===e.color&&"default"!==e.color,style:{[`& .${ic.icon}`]:{color:"inherit"}}},{props:{onDelete:!0},style:{[`&.${ic.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["dark"])).map(([t])=>({props:{color:t,onDelete:!0},style:{[`&.${ic.focusVisible}`]:{background:(e.vars||e).palette[t].dark}}})),{props:{clickable:!0},style:{userSelect:"none",WebkitTapHighlightColor:"transparent",cursor:"pointer","&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)},[`&.${ic.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.action.selected,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)},"&:active":{boxShadow:(e.vars||e).shadows[1]}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["dark"])).map(([t])=>({props:{color:t,clickable:!0},style:{[`&:hover, &.${ic.focusVisible}`]:{backgroundColor:(e.vars||e).palette[t].dark}}})),{props:{variant:"outlined"},style:{backgroundColor:"transparent",border:e.vars?`1px solid ${e.vars.palette.Chip.defaultBorder}`:`1px solid ${"light"===e.palette.mode?e.palette.grey[400]:e.palette.grey[700]}`,[`&.${ic.clickable}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${ic.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`& .${ic.avatar}`]:{marginLeft:4},[`& .${ic.icon}`]:{marginLeft:4},[`& .${ic.deleteIcon}`]:{marginRight:5}}},{props:{size:"small",variant:"outlined"},style:{[`& .${ic.avatar}`]:{marginLeft:2},[`& .${ic.icon}`]:{marginLeft:2},[`& .${ic.deleteIcon}`]:{marginRight:3}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{variant:"outlined",color:t},style:{color:(e.vars||e).palette[t].main,border:`1px solid ${e.alpha((e.vars||e).palette[t].main,.7)}`,[`&.${ic.clickable}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)},[`&.${ic.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.focusOpacity)},[`& .${ic.deleteIcon}`]:{color:e.alpha((e.vars||e).palette[t].main,.7),"&:hover, &:active":{color:(e.vars||e).palette[t].main}}}}))]}})),lc=Ss("span",{name:"MuiChip",slot:"Label"})({overflow:"hidden",textOverflow:"ellipsis",paddingLeft:12,paddingRight:12,whiteSpace:"nowrap",variants:[{props:{variant:"outlined"},style:{paddingLeft:11,paddingRight:11}},{props:{size:"small"},style:{paddingLeft:8,paddingRight:8}},{props:{size:"small",variant:"outlined"},style:{paddingLeft:7,paddingRight:7}}]});function isDeleteKeyboardEvent(e){return"Backspace"===e.key||"Delete"===e.key}var cc=c.forwardRef(function Chip(e,t){const n=useDefaultProps({props:e,name:"MuiChip"}),{avatar:a,className:o,clickable:i,color:s="default",component:l,deleteIcon:u,disabled:d=!1,icon:p,label:m,onClick:g,onDelete:h,onKeyDown:b,onKeyUp:y,size:v="medium",variant:S="filled",tabIndex:x,skipFocusWhenDisabled:w=!1,slots:C={},slotProps:k={},...E}=n,{nativeButton:P,...T}=E,R=js(c.useRef(null),t),handleDeleteIconClick=e=>{e.stopPropagation(),h(e)},handleKeyDown=e=>{e.currentTarget===e.target&&isDeleteKeyboardEvent(e)&&e.preventDefault(),b&&b(e)},handleKeyUp=e=>{e.currentTarget===e.target&&h&&isDeleteKeyboardEvent(e)&&h(e),y&&y(e)},M=!(!1===i||!g)||i,D=M||h?gl:l||"div",O={...n,component:D,disabled:d,size:v,color:s,iconColor:c.isValidElement(p)&&p.props.color||s,onDelete:!!h,clickable:M,variant:S},$=useUtilityClasses$42(O),I=D===gl?{component:l||"div",internalNativeButton:!1,focusVisibleClassName:$.focusVisible,...h&&{disableRipple:!0},...void 0!==P&&{nativeButton:P}}:{};let N=null;h&&(N=u&&c.isValidElement(u)?c.cloneElement(u,{className:clsx(u.props.className,$.deleteIcon),onClick:handleDeleteIconClick}):(0,Oa.jsx)(oc,{className:$.deleteIcon,onClick:handleDeleteIconClick}));let L=null;a&&c.isValidElement(a)&&(L=c.cloneElement(a,{className:clsx($.avatar,a.props.className)}));let j=null;p&&c.isValidElement(p)&&(j=c.cloneElement(p,{className:clsx($.icon,p.props.className)}));const B={slots:C,slotProps:k},[F,q]=useSlot("root",{elementType:sc,externalForwardedProps:{...B,...T},ownerState:O,shouldForwardComponentProp:!0,ref:R,className:clsx($.root,o),additionalProps:{disabled:!(!M||!d)||void 0,tabIndex:w&&d?-1:x,...I},getSlotProps:e=>({...e,onClick:t=>{e.onClick?.(t),g?.(t)},onKeyDown:t=>{e.onKeyDown?.(t),handleKeyDown(t)},onKeyUp:t=>{e.onKeyUp?.(t),handleKeyUp(t)}})}),[U,V]=useSlot("label",{elementType:lc,externalForwardedProps:B,ownerState:O,className:$.label});return(0,Oa.jsxs)(F,{as:D,...q,children:[L||j,(0,Oa.jsx)(U,{...V,children:m}),N]})});function getStyleValue(e){return parseInt(e,10)||0}var uc={shadow:{visibility:"hidden",position:"absolute",overflow:"hidden",height:0,top:0,left:0,transform:"translateZ(0)"}};function isObjectEmpty(e){for(const t in e)return!1;return!0}function isEmpty$1(e){return isObjectEmpty(e)||0===e.outerHeightStyle&&!e.overflowing}var dc=c.forwardRef(function TextareaAutosize(e,t){const{onChange:n,maxRows:a,minRows:o=1,style:i,value:s,...l}=e,{current:u}=c.useRef(null!=s),d=c.useRef(null),p=useForkRef(t,d),m=c.useRef(null),g=c.useRef(null),h=c.useCallback(()=>{const t=d.current,n=g.current;if(!t||!n)return;const i=ownerWindow(t).getComputedStyle(t);if("0px"===i.width)return{outerHeightStyle:0,overflowing:!1};n.style.width=i.width,n.value=t.value||e.placeholder||"x","\n"===n.value.slice(-1)&&(n.value+=" ");const s=i.boxSizing,l=getStyleValue(i.paddingBottom)+getStyleValue(i.paddingTop),c=getStyleValue(i.borderBottomWidth)+getStyleValue(i.borderTopWidth),u=n.scrollHeight;n.value="x";const p=n.scrollHeight;let m=u;return o&&(m=Math.max(Number(o)*p,m)),a&&(m=Math.min(Number(a)*p,m)),m=Math.max(m,p),{outerHeightStyle:m+("border-box"===s?l+c:0),overflowing:Math.abs(m-u)<=1}},[a,o,e.placeholder]),b=useEventCallback(()=>{const e=d.current,t=h();if(!e||!t||isEmpty$1(t))return!1;const n=t.outerHeightStyle;return null!=m.current&&m.current!==n}),y=c.useCallback(()=>{const e=d.current,t=h();if(!e||!t||isEmpty$1(t))return;const n=t.outerHeightStyle;m.current!==n&&(m.current=n,e.style.height=`${n}px`),e.style.overflow=t.overflowing?"hidden":""},[h]),v=c.useRef(-1);Gi(()=>{const e=debounce$1(y),t=d?.current;if(!t)return;const n=ownerWindow(t);let a;return n.addEventListener("resize",e),"undefined"!=typeof ResizeObserver&&(a=new ResizeObserver(()=>{b()&&(a.unobserve(t),cancelAnimationFrame(v.current),y(),v.current=requestAnimationFrame(()=>{a.observe(t)}))}),a.observe(t)),()=>{e.clear(),cancelAnimationFrame(v.current),n.removeEventListener("resize",e),a&&a.disconnect()}},[h,y,b]),Gi(()=>{y()});const handleChange=e=>{u||y();const t=e.target,a=t.value.length,o=t.value.endsWith("\n"),i=t.selectionStart===a;o&&i&&t.setSelectionRange(a,a),n&&n(e)};return(0,Oa.jsxs)(c.Fragment,{children:[(0,Oa.jsx)("textarea",{value:s,onChange:handleChange,ref:p,rows:o,style:i,...l}),(0,Oa.jsx)("textarea",{"aria-hidden":!0,className:e.className,readOnly:!0,ref:g,tabIndex:-1,style:{...uc.shadow,...i,paddingTop:0,paddingBottom:0}})]})}),pc=c.createContext(void 0);function useFormControl(){return c.useContext(pc)}function useFormControlState({props:e,states:t}){const n=c.useContext(pc),a={};return t.forEach(t=>{const o=e[t];a[t]=void 0===o&&n?n[t]:o}),[a,n]}function hasValue(e){return null!=e&&!(Array.isArray(e)&&0===e.length)}function isFilled(e,t=!1){return e&&(hasValue(e.value)&&""!==e.value||t&&hasValue(e.defaultValue)&&""!==e.defaultValue)}function isAdornedStart(e){return e.startAdornment}function getInputBaseUtilityClass(e){return generateUtilityClass("MuiInputBase",e)}var mc,fc=generateUtilityClasses("MuiInputBase",["root","formControl","focused","disabled","adornedStart","adornedEnd","error","sizeSmall","multiline","colorSecondary","fullWidth","hiddenLabel","readOnly","input","inputTypeSearch"]),gc="mui-auto-fill",hc="mui-auto-fill-cancel",rootOverridesResolver=(e,t)=>{const{ownerState:n}=e;return[t.root,n.formControl&&t.formControl,n.startAdornment&&t.adornedStart,n.endAdornment&&t.adornedEnd,n.error&&t.error,"small"===n.size&&t.sizeSmall,n.multiline&&t.multiline,n.color&&t[`color${_s(n.color)}`],n.fullWidth&&t.fullWidth,n.hiddenLabel&&t.hiddenLabel]},inputOverridesResolver=(e,t)=>{const{ownerState:n}=e;return[t.input,"search"===n.type&&t.inputTypeSearch]},useUtilityClasses$41=e=>{const{classes:t,color:n,disabled:a,error:o,endAdornment:i,focused:s,formControl:l,fullWidth:c,hiddenLabel:u,multiline:d,readOnly:p,size:m,startAdornment:g,type:h}=e;return composeClasses({root:["root",`color${_s(n)}`,a&&"disabled",o&&"error",c&&"fullWidth",s&&"focused",l&&"formControl",m&&"medium"!==m&&`size${_s(m)}`,d&&"multiline",g&&"adornedStart",i&&"adornedEnd",u&&"hiddenLabel",p&&"readOnly"],input:["input",a&&"disabled","search"===h&&"inputTypeSearch",p&&"readOnly"]},getInputBaseUtilityClass,t)},bc=Ss("div",{name:"MuiInputBase",slot:"Root",overridesResolver:rootOverridesResolver})(Ps(({theme:e})=>({...e.typography.body1,color:(e.vars||e).palette.text.primary,lineHeight:"1.4375em",boxSizing:"border-box",position:"relative",cursor:"text",display:"inline-flex",alignItems:"center",[`&.${fc.disabled}`]:{color:(e.vars||e).palette.text.disabled,cursor:"default"},variants:[{props:({ownerState:e})=>e.multiline,style:{padding:"4px 0 5px"}},{props:({ownerState:e,size:t})=>e.multiline&&"small"===t,style:{paddingTop:1}},{props:({ownerState:e})=>e.fullWidth,style:{width:"100%"}}]}))),yc=Ss("input",{name:"MuiInputBase",slot:"Input",overridesResolver:inputOverridesResolver})(Ps(({theme:e})=>{const t="light"===e.palette.mode,n={color:"currentColor",...e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5},transition:e.transitions.create("opacity",{duration:e.transitions.duration.shorter})},a={opacity:"0 !important"},o=e.vars?{opacity:e.vars.opacity.inputPlaceholder}:{opacity:t?.42:.5};return{font:"inherit",letterSpacing:"inherit",color:"currentColor",padding:"4px 0 5px",border:0,boxSizing:"content-box",background:"none",height:"1.4375em",margin:0,WebkitTapHighlightColor:"transparent",display:"block",minWidth:0,width:"100%","&::-webkit-input-placeholder":n,"&::-moz-placeholder":n,"&::-ms-input-placeholder":n,"&:focus":{outline:0},"&:invalid":{boxShadow:"none"},"&::-webkit-search-decoration":{WebkitAppearance:"none"},[`label[data-shrink=false] + .${fc.formControl} &`]:{"&::-webkit-input-placeholder":a,"&::-moz-placeholder":a,"&::-ms-input-placeholder":a,"&:focus::-webkit-input-placeholder":o,"&:focus::-moz-placeholder":o,"&:focus::-ms-input-placeholder":o},[`&.${fc.disabled}`]:{opacity:1,WebkitTextFillColor:(e.vars||e).palette.text.disabled},variants:[{props:({ownerState:e})=>!e.disableInjectingGlobalStyles,style:{animationName:hc,animationDuration:"10ms","&:-webkit-autofill":{animationDuration:"5000s",animationName:gc}}},{props:{size:"small"},style:{paddingTop:1}},{props:({ownerState:e})=>e.multiline,style:{height:"auto",resize:"none",padding:0,paddingTop:0}},{props:{type:"search"},style:{MozAppearance:"textfield"}}]}})),vc=globalCss({[`@keyframes ${gc}`]:{from:{animationName:gc}},[`@keyframes ${hc}`]:{from:{animationName:hc}}}),Sc=c.forwardRef(function InputBase(e,t){const n=useDefaultProps({props:e,name:"MuiInputBase"}),{"aria-describedby":a,"aria-label":o,autoComplete:i,autoFocus:s,className:l,color:u,defaultValue:d,disabled:p,disableInjectingGlobalStyles:m,endAdornment:g,error:h,fullWidth:b=!1,id:y,inputComponent:v="input",inputProps:S={},inputRef:x,margin:w,maxRows:C,minRows:k,multiline:E=!1,name:P,onBlur:T,onChange:R,onClick:M,onFocus:D,onKeyDown:O,onKeyUp:$,placeholder:I,readOnly:N,renderSuffix:L,rows:j,size:B,slotProps:F={},slots:q={},startAdornment:U,type:V="text",value:H,...W}=n,G=null!=S.value?S.value:H,{current:Y}=c.useRef(null!=G),K=c.useRef(),Q=c.useCallback(e=>{},[]),Z=js(K,x,S.ref,Q),[X,J]=c.useState(!1),[ee,te]=useFormControlState({props:n,states:["color","disabled","error","hiddenLabel","size","required","filled"]});ee.focused=te?te.focused:X,c.useEffect(()=>{!te&&p&&X&&(J(!1),T&&T())},[te,p,X,T]);const re=te&&te.onFilled,ne=te&&te.onEmpty,ae=c.useCallback(e=>{isFilled(e)?re&&re():ne&&ne()},[re,ne]);Is(()=>{Y&&ae({value:G})},[G,ae,Y]),Is(()=>{if(!s)return;const e=K.current;if(!e)return;const t=Os(e),n=Ds(t),a=null==n||n===t.body||n===t.documentElement;e===n?te&&te.onFocus?te.onFocus():J(!0):a&&e.focus()},[s]);const handleFocus=e=>{D&&D(e),S.onFocus&&S.onFocus(e),te&&te.onFocus?te.onFocus(e):J(!0)},handleBlur=e=>{T&&T(e),S.onBlur&&S.onBlur(e),te&&te.onBlur?te.onBlur(e):J(!1)},handleChange=(e,...t)=>{if(!Y){const t=e.target||K.current;if(null==t)throw new Error(formatMuiErrorMessage(1));ae({value:t.value})}S.onChange&&S.onChange(e,...t),R&&R(e,...t)};c.useEffect(()=>{ae(K.current)},[]);const handleClick=e=>{K.current&&e.currentTarget===e.target&&K.current.focus(),M&&M(e)};let oe=v,ie=S;E&&"input"===oe&&(ie=j?{type:void 0,minRows:j,maxRows:j,...ie}:{type:void 0,maxRows:C,minRows:k,...ie},oe=dc);const handleAutoFill=e=>{ae(e.animationName===hc?K.current:{value:"x"})};c.useEffect(()=>{te&&te.setAdornedStart(Boolean(U))},[te,U]);const se={...n,color:ee.color||"primary",disabled:ee.disabled,endAdornment:g,error:ee.error,focused:ee.focused,formControl:te,fullWidth:b,hiddenLabel:ee.hiddenLabel,multiline:E,size:ee.size,startAdornment:U,type:V},le=useUtilityClasses$41(se),ce=q.root||bc,ue=F.root||{},de=q.input||yc;return ie={...ie,...F.input},(0,Oa.jsxs)(c.Fragment,{children:[!m&&"function"==typeof vc&&(mc||(mc=(0,Oa.jsx)(vc,{}))),(0,Oa.jsxs)(ce,{...ue,ref:t,onClick:handleClick,...W,...!isHostComponent(ce)&&{ownerState:{...se,...ue.ownerState}},className:clsx(le.root,ue.className,l,N&&"MuiInputBase-readOnly"),children:[U,(0,Oa.jsx)(pc.Provider,{value:null,children:(0,Oa.jsx)(de,{"aria-invalid":ee.error,"aria-describedby":a,"aria-label":o,autoComplete:i,autoFocus:s,defaultValue:d,disabled:ee.disabled,id:y,onAnimationStart:handleAutoFill,name:P,placeholder:I,readOnly:N,required:ee.required,rows:j,value:G,onKeyDown:O,onKeyUp:$,type:V,...ie,...!isHostComponent(de)&&{as:oe,ownerState:{...se,...ie.ownerState}},ref:Z,className:clsx(le.input,ie.className,N&&"MuiInputBase-readOnly"),onBlur:handleBlur,onChange:handleChange,onFocus:handleFocus})}),g,L?L({...ee,startAdornment:U}):null]})]})});function getInputUtilityClass(e){return generateUtilityClass("MuiInput",e)}var xc={...fc,...generateUtilityClasses("MuiInput",["root","underline","input"])};function getOutlinedInputUtilityClass(e){return generateUtilityClass("MuiOutlinedInput",e)}var wc={...fc,...generateUtilityClasses("MuiOutlinedInput",["root","notchedOutline","input"])};function getFilledInputUtilityClass(e){return generateUtilityClass("MuiFilledInput",e)}var Cc={...fc,...generateUtilityClasses("MuiFilledInput",["root","underline","input","adornedStart","adornedEnd","sizeSmall","multiline","hiddenLabel"])},kc=createSvgIcon((0,Oa.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),Ec={entering:{opacity:1},entered:{opacity:1},exiting:{opacity:0},exited:{opacity:0}},_c={opacity:0,visibility:"hidden"},Pc=c.forwardRef(function Fade(e,t){const n=useTheme(),a={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:o,appear:i=!0,children:s,easing:l,in:u,onEnter:d,onEntered:p,onEntering:m,onExit:g,onExited:h,onExiting:b,style:y,timeout:v=a,...S}=e,x=c.useRef(null),w=js(x,getReactElementRef(s),t),C=normalizedTransitionCallback(x,m),k=normalizedTransitionCallback(x,(e,t)=>{reflow(e);const a=getTransitionProps({style:y,timeout:v,easing:l},{mode:"enter"});e.style.transition=n.transitions.create("opacity",a),d&&d(e,t)}),E=normalizedTransitionCallback(x,p),P=normalizedTransitionCallback(x,b),T=normalizedTransitionCallback(x,e=>{const t=getTransitionProps({style:y,timeout:v,easing:l},{mode:"exit"});e.style.transition=n.transitions.create("opacity",t),g&&g(e)}),R=normalizedTransitionCallback(x,e=>{e.style.transition="",h&&h(e)}),handleAddEndListener=e=>{o&&o(x.current,e)};return(0,Oa.jsx)(Ys,{appear:i,in:u,nodeRef:x,onEnter:k,onEntered:E,onEntering:C,onExit:T,onExited:R,onExiting:P,addEndListener:handleAddEndListener,timeout:v,...S,children:(e,{ownerState:t,...n})=>{const a=getTransitionChildStyle(e,u,Ec,_c,y,s.props.style);return c.cloneElement(s,{style:a,ref:w,...n})}})});function getBackdropUtilityClass(e){return generateUtilityClass("MuiBackdrop",e)}generateUtilityClasses("MuiBackdrop",["root","invisible"]);var useUtilityClasses$40=e=>{const{classes:t,invisible:n}=e;return composeClasses({root:["root",n&&"invisible"]},getBackdropUtilityClass,t)},Tc=Ss("div",{name:"MuiBackdrop",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.invisible&&t.invisible]}})({position:"fixed",display:"flex",alignItems:"center",justifyContent:"center",right:0,bottom:0,top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.5)",WebkitTapHighlightColor:"transparent",variants:[{props:{invisible:!0},style:{backgroundColor:"transparent"}}]}),Ac=c.forwardRef(function Backdrop(e,t){const n=useDefaultProps({props:e,name:"MuiBackdrop"}),{children:a,className:o,component:i="div",invisible:s=!1,open:l,slotProps:c={},slots:u={},transitionDuration:d,...p}=n,m={...n,component:i,invisible:s},g=useUtilityClasses$40(m),h={component:i,slots:u,slotProps:c},[b,y]=useSlot("root",{elementType:Tc,externalForwardedProps:h,className:clsx(g.root,o),ownerState:m}),[v,S]=useSlot("transition",{elementType:Pc,externalForwardedProps:h,ownerState:m});return(0,Oa.jsx)(v,{in:l,timeout:d,...p,...S,children:(0,Oa.jsx)(b,{...y,ref:t,children:a})})}),Rc=generateUtilityClasses("MuiBox",["root"]),Mc=createBox({themeId:qa,defaultTheme:createTheme(),defaultClassName:Rc.root,generateClassName:Vi.generate});function getButtonUtilityClass(e){return generateUtilityClass("MuiButton",e)}var Dc=generateUtilityClasses("MuiButton",["root","text","outlined","contained","disableElevation","focusVisible","disabled","colorInherit","colorPrimary","colorSecondary","colorSuccess","colorError","colorInfo","colorWarning","sizeMedium","sizeSmall","sizeLarge","fullWidth","startIcon","endIcon","icon","loading","loadingWrapper","loadingIconPlaceholder","loadingIndicator","loadingPositionCenter","loadingPositionStart","loadingPositionEnd"]),Oc=c.createContext({}),$c=c.createContext(void 0),useUtilityClasses$39=e=>{const{color:t,disableElevation:n,fullWidth:a,size:o,variant:i,loading:s,loadingPosition:l,classes:c}=e,u=composeClasses({root:["root",s&&"loading",i,`size${_s(o)}`,`color${_s(t)}`,n&&"disableElevation",a&&"fullWidth",s&&`loadingPosition${_s(l)}`],startIcon:["icon","startIcon"],endIcon:["icon","endIcon"],loadingIndicator:["loadingIndicator"],loadingWrapper:["loadingWrapper"]},getButtonUtilityClass,c);return{...c,...u}},Ic=[{props:{size:"small"},style:{"& > *:nth-of-type(1)":{fontSize:18}}},{props:{size:"medium"},style:{"& > *:nth-of-type(1)":{fontSize:20}}},{props:{size:"large"},style:{"& > *:nth-of-type(1)":{fontSize:22}}}],Nc=Ss(gl,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${_s(n.size)}`],"inherit"===n.color&&t.colorInherit,n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,n.loading&&t.loading]}})(Ps(({theme:e})=>{const t="light"===e.palette.mode?e.palette.grey[300]:e.palette.grey[800],n="light"===e.palette.mode?e.palette.grey.A100:e.palette.grey[700];return{...e.typography.button,minWidth:64,padding:"6px 16px",border:0,borderRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create(["background-color","box-shadow","border-color","color"],{duration:e.transitions.duration.short}),"&:hover":{textDecoration:"none"},[`&.${Dc.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:e})=>e.startIcon||e.loading&&"start"===e.loadingPosition,style:{"&::before":{content:'"\\200b"',width:0,overflow:"hidden"}}},{props:{variant:"contained"},style:{color:"var(--variant-containedColor)",backgroundColor:"var(--variant-containedBg)",boxShadow:(e.vars||e).shadows[2],"&:hover":{boxShadow:(e.vars||e).shadows[4],"@media (hover: none)":{boxShadow:(e.vars||e).shadows[2]}},"&:active":{boxShadow:(e.vars||e).shadows[8]},[`&.${Dc.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},[`&.${Dc.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}},{props:{variant:"outlined"},style:{padding:"5px 15px",border:"1px solid currentColor",borderColor:"var(--variant-outlinedBorder, currentColor)",backgroundColor:"var(--variant-outlinedBg)",color:"var(--variant-outlinedColor)",[`&.${Dc.disabled}`]:{border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`}}},{props:{variant:"text"},style:{padding:"6px 8px",color:"var(--variant-textColor)",backgroundColor:"var(--variant-textBg)"}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{"--variant-textColor":(e.vars||e).palette[t].main,"--variant-outlinedColor":(e.vars||e).palette[t].main,"--variant-outlinedBorder":e.alpha((e.vars||e).palette[t].main,.5),"--variant-containedColor":(e.vars||e).palette[t].contrastText,"--variant-containedBg":(e.vars||e).palette[t].main,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":(e.vars||e).palette[t].dark,"--variant-textBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBorder":(e.vars||e).palette[t].main,"--variant-outlinedBg":e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}}})),{props:{color:"inherit"},style:{color:"inherit",borderColor:"currentColor","--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedBg:t,"@media (hover: hover)":{"&:hover":{"--variant-containedBg":e.vars?e.vars.palette.Button.inheritContainedHoverBg:n,"--variant-textBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"--variant-outlinedBg":e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity)}}}},{props:{size:"small",variant:"text"},style:{padding:"4px 5px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"text"},style:{padding:"8px 11px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"outlined"},style:{padding:"3px 9px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"outlined"},style:{padding:"7px 21px",fontSize:e.typography.pxToRem(15)}},{props:{size:"small",variant:"contained"},style:{padding:"4px 10px",fontSize:e.typography.pxToRem(13)}},{props:{size:"large",variant:"contained"},style:{padding:"8px 22px",fontSize:e.typography.pxToRem(15)}},{props:{disableElevation:!0},style:{boxShadow:"none","&:hover":{boxShadow:"none"},[`&.${Dc.focusVisible}`]:{boxShadow:"none"},"&:active":{boxShadow:"none"},[`&.${Dc.disabled}`]:{boxShadow:"none"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{loadingPosition:"center"},style:{transition:e.transitions.create(["background-color","box-shadow","border-color"],{duration:e.transitions.duration.short}),[`&.${Dc.loading}`]:{color:"transparent"}}}]}})),zc=Ss("span",{name:"MuiButton",slot:"StartIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.startIcon,n.loading&&t.startIconLoadingStart]}})(({theme:e})=>({display:"inherit",marginRight:8,marginLeft:-4,variants:[{props:{size:"small"},style:{marginLeft:-2}},{props:{loadingPosition:"start",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"start",loading:!0,fullWidth:!0},style:{marginRight:-8}},...Ic]})),Lc=Ss("span",{name:"MuiButton",slot:"EndIcon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.endIcon,n.loading&&t.endIconLoadingEnd]}})(({theme:e})=>({display:"inherit",marginRight:-4,marginLeft:8,variants:[{props:{size:"small"},style:{marginRight:-2}},{props:{loadingPosition:"end",loading:!0},style:{transition:e.transitions.create(["opacity"],{duration:e.transitions.duration.short}),opacity:0}},{props:{loadingPosition:"end",loading:!0,fullWidth:!0},style:{marginLeft:-8}},...Ic]})),jc=Ss("span",{name:"MuiButton",slot:"LoadingIndicator"})(({theme:e})=>({display:"none",position:"absolute",visibility:"visible",variants:[{props:{loading:!0},style:{display:"flex"}},{props:{loadingPosition:"start"},style:{left:14}},{props:{loadingPosition:"start",size:"small"},style:{left:10}},{props:{variant:"text",loadingPosition:"start"},style:{left:6}},{props:{loadingPosition:"center"},style:{left:"50%",transform:"translate(-50%)",color:(e.vars||e).palette.action.disabled}},{props:{loadingPosition:"end"},style:{right:14}},{props:{loadingPosition:"end",size:"small"},style:{right:10}},{props:{variant:"text",loadingPosition:"end"},style:{right:6}},{props:{loadingPosition:"start",fullWidth:!0},style:{position:"relative",left:-10}},{props:{loadingPosition:"end",fullWidth:!0},style:{position:"relative",right:-10}}]})),Bc=Ss("span",{name:"MuiButton",slot:"LoadingIconPlaceholder"})({display:"inline-block",width:"1em",height:"1em"}),Fc=c.forwardRef(function Button(e,t){const n=c.useContext(Oc),a=c.useContext($c),o=useDefaultProps({props:resolveProps(n,e),name:"MuiButton"}),{children:i,color:s="primary",component:l="button",className:u,disabled:d=!1,disableElevation:p=!1,disableFocusRipple:m=!1,endIcon:g,focusVisibleClassName:h,fullWidth:b=!1,id:y,loading:v=null,loadingIndicator:S,loadingPosition:x="center",size:w="medium",startIcon:C,type:k,variant:E="text",...P}=o,T=Ns(y),R=S??(0,Oa.jsx)(El,{"aria-labelledby":T,color:"inherit",size:16}),M={...o,color:s,component:l,disabled:d,disableElevation:p,disableFocusRipple:m,fullWidth:b,loading:v,loadingIndicator:R,loadingPosition:x,size:w,type:k,variant:E},D=useUtilityClasses$39(M),O=(C||v&&"start"===x)&&(0,Oa.jsx)(zc,{className:D.startIcon,ownerState:M,children:C||(0,Oa.jsx)(Bc,{className:D.loadingIconPlaceholder,ownerState:M})}),$=(g||v&&"end"===x)&&(0,Oa.jsx)(Lc,{className:D.endIcon,ownerState:M,children:g||(0,Oa.jsx)(Bc,{className:D.loadingIconPlaceholder,ownerState:M})}),I=a||"",N="boolean"==typeof v?(0,Oa.jsx)("span",{className:D.loadingWrapper,style:{display:"contents"},children:v&&(0,Oa.jsx)(jc,{className:D.loadingIndicator,ownerState:M,children:R})}):null,{root:L,...j}=D;return(0,Oa.jsxs)(Nc,{ownerState:M,className:clsx(n.className,D.root,u,I),component:l,disabled:d||v,focusRipple:!m,focusVisibleClassName:clsx(D.focusVisible,h),ref:t,internalNativeButton:!0,type:k,id:v?T:y,...P,classes:j,children:[O,"end"!==x&&N,i,"end"===x&&N,$]})});function getValidReactChildren(e){return c.Children.toArray(e).filter(e=>c.isValidElement(e))}function getButtonGroupUtilityClass(e){return generateUtilityClass("MuiButtonGroup",e)}var qc=generateUtilityClasses("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","firstButton","fullWidth","horizontal","vertical","colorPrimary","colorSecondary","grouped","lastButton","middleButton"]),overridesResolver$1=(e,t)=>{const{ownerState:n}=e;return[{[`& .${qc.grouped}`]:t.grouped},{[`& .${qc.firstButton}`]:t.firstButton},{[`& .${qc.lastButton}`]:t.lastButton},{[`& .${qc.middleButton}`]:t.middleButton},t.root,t[n.variant],!0===n.disableElevation&&t.disableElevation,n.fullWidth&&t.fullWidth,"vertical"===n.orientation&&t.vertical]},useUtilityClasses$38=e=>{const{classes:t,color:n,disabled:a,disableElevation:o,fullWidth:i,orientation:s,variant:l}=e;return composeClasses({root:["root",l,s,i&&"fullWidth",o&&"disableElevation",`color${_s(n)}`],grouped:["grouped",a&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]},getButtonGroupUtilityClass,t)},Uc=Ss("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:overridesResolver$1})(Ps(({theme:e})=>({display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius,variants:[{props:{variant:"contained"},style:{boxShadow:(e.vars||e).shadows[2],[`& .${qc.grouped}`]:{boxShadow:"none","&:hover":{boxShadow:"none"}}}},{props:{disableElevation:!0},style:{boxShadow:"none"}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${qc.lastButton},& .${qc.middleButton}`]:{borderTopRightRadius:0,borderTopLeftRadius:0},[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderBottomRightRadius:0,borderBottomLeftRadius:0}}},{props:{orientation:"horizontal"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${qc.lastButton},& .${qc.middleButton}`]:{borderTopLeftRadius:0,borderBottomLeftRadius:0}}},{props:{variant:"text",orientation:"horizontal"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderRight:e.vars?`1px solid ${e.alpha(e.vars.palette.common.onBackground,.23)}`:"1px solid "+("light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),[`&.${qc.disabled}`]:{borderRight:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},{props:{variant:"text",orientation:"vertical"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderBottom:e.vars?`1px solid ${e.alpha(e.vars.palette.common.onBackground,.23)}`:"1px solid "+("light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"),[`&.${qc.disabled}`]:{borderBottom:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).flatMap(([t])=>[{props:{variant:"text",color:t},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderColor:e.alpha((e.vars||e).palette[t].main,.5)}}}]),{props:{variant:"outlined",orientation:"horizontal"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderRightColor:"transparent","&:hover":{borderRightColor:"currentColor"}},[`& .${qc.lastButton},& .${qc.middleButton}`]:{marginLeft:-1}}},{props:{variant:"outlined",orientation:"vertical"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderBottomColor:"transparent","&:hover":{borderBottomColor:"currentColor"}},[`& .${qc.lastButton},& .${qc.middleButton}`]:{marginTop:-1}}},{props:{variant:"contained",orientation:"horizontal"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderRight:`1px solid ${(e.vars||e).palette.grey[400]}`,[`&.${qc.disabled}`]:{borderRight:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},{props:{variant:"contained",orientation:"vertical"},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderBottom:`1px solid ${(e.vars||e).palette.grey[400]}`,[`&.${qc.disabled}`]:{borderBottom:`1px solid ${(e.vars||e).palette.action.disabled}`}}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["dark"])).map(([t])=>({props:{variant:"contained",color:t},style:{[`& .${qc.firstButton},& .${qc.middleButton}`]:{borderColor:(e.vars||e).palette[t].dark}}}))],[`& .${qc.grouped}`]:{minWidth:40}}))),Vc=c.forwardRef(function ButtonGroup(e,t){const n=useDefaultProps({props:e,name:"MuiButtonGroup"}),{children:a,className:o,color:i="primary",component:s="div",disabled:l=!1,disableElevation:u=!1,disableFocusRipple:d=!1,disableRipple:p=!1,fullWidth:m=!1,orientation:g="horizontal",size:h="medium",variant:b="outlined",...y}=n,v={...n,color:i,component:s,disabled:l,disableElevation:u,disableFocusRipple:d,disableRipple:p,fullWidth:m,orientation:g,size:h,variant:b},S=useUtilityClasses$38(v),x=c.useMemo(()=>({className:S.grouped,color:i,disabled:l,disableElevation:u,disableFocusRipple:d,disableRipple:p,fullWidth:m,size:h,variant:b}),[i,l,u,d,p,m,h,b,S.grouped]),w=getValidReactChildren(a),C=w.length,getButtonPositionClassName=e=>{const t=0===e,n=e===C-1;return t&&n?"":t?S.firstButton:n?S.lastButton:S.middleButton};return(0,Oa.jsx)(Uc,{as:s,role:"group",className:clsx(S.root,o),ref:t,ownerState:v,...y,children:(0,Oa.jsx)(Oc.Provider,{value:x,children:w.map((e,t)=>(0,Oa.jsx)($c.Provider,{value:getButtonPositionClassName(t),children:e},t))})})});function getSwitchBaseUtilityClass(e){return generateUtilityClass("PrivateSwitchBase",e)}generateUtilityClasses("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);var useUtilityClasses$37=e=>{const{classes:t,checked:n,disabled:a,edge:o}=e;return composeClasses({root:["root",n&&"checked",a&&"disabled",o&&`edge${_s(o)}`],input:["input"]},getSwitchBaseUtilityClass,t)},Hc=Ss(gl,{name:"MuiSwitchBase"})({padding:9,borderRadius:"50%",variants:[{props:{edge:"start",size:"small"},style:{marginLeft:-3}},{props:({edge:e,ownerState:t})=>"start"===e&&"small"!==t.size,style:{marginLeft:-12}},{props:{edge:"end",size:"small"},style:{marginRight:-3}},{props:({edge:e,ownerState:t})=>"end"===e&&"small"!==t.size,style:{marginRight:-12}}]}),Wc=Ss("input",{name:"MuiSwitchBase",shouldForwardProp:rootShouldForwardProp})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1}),Gc=c.forwardRef(function SwitchBase(e,t){const{autoFocus:n,checked:a,checkedIcon:o,defaultChecked:i,disabled:s,disableFocusRipple:l=!1,edge:c=!1,icon:u,id:d,name:p,onBlur:m,onChange:g,onFocus:h,readOnly:b,required:y=!1,tabIndex:v,type:S,value:x,slots:w={},slotProps:C={},...k}=e,{nativeButton:E,...P}=k,[T,R]=zs({controlled:a,default:Boolean(i),name:"SwitchBase",state:"checked"}),M=useFormControl(),handleFocus=e=>{h&&h(e),M&&M.onFocus&&M.onFocus(e)},handleBlur=e=>{m&&m(e),M&&M.onBlur&&M.onBlur(e)},handleInputChange=e=>{if(e.nativeEvent.defaultPrevented||b)return;const t=e.target.checked;R(t),g&&g(e,t)};let D=s;M&&void 0===D&&(D=M.disabled);const O="checkbox"===S||"radio"===S,$={...e,checked:T,disabled:D,disableFocusRipple:l,edge:c},I=useUtilityClasses$37($),N={slots:w,slotProps:C},[L,j]=useSlot("root",{ref:t,elementType:Hc,className:I.root,shouldForwardComponentProp:!0,externalForwardedProps:{...N,component:"span",...P},getSlotProps:e=>({...e,onFocus:t=>{e.onFocus?.(t),handleFocus(t)},onBlur:t=>{e.onBlur?.(t),handleBlur(t)}}),ownerState:$,additionalProps:{centerRipple:!0,focusRipple:!l,role:void 0,tabIndex:null}}),[B,F]=useSlot("input",{elementType:Wc,className:I.input,externalForwardedProps:N,getSlotProps:e=>({...e,onChange:t=>{e.onChange?.(t),handleInputChange(t)}}),ownerState:$,additionalProps:{autoFocus:n,checked:a,defaultChecked:i,disabled:D,id:O?d:void 0,name:p,readOnly:b,required:y,tabIndex:v,type:S,..."checkbox"===S&&void 0===x?{}:{value:x}}});return(0,Oa.jsxs)(L,{...j,children:[(0,Oa.jsx)(B,{...F}),T?o:u]})}),Yc=createSvgIcon((0,Oa.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Kc=createSvgIcon((0,Oa.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Qc=createSvgIcon((0,Oa.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function getCheckboxUtilityClass(e){return generateUtilityClass("MuiCheckbox",e)}var Zc=generateUtilityClasses("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]),useUtilityClasses$36=e=>{const{classes:t,indeterminate:n,color:a,size:o}=e,i=composeClasses({root:["root",n&&"indeterminate",`color${_s(a)}`,`size${_s(o)}`]},getCheckboxUtilityClass,t);return{...t,...i}},Xc=Ss(Gc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${_s(n.size)}`],"default"!==n.color&&t[`color${_s(n.color)}`]]}})(Ps(({theme:e})=>({color:(e.vars||e).palette.text.secondary,variants:[{props:{color:"default",disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity)}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t,disableRipple:!1},style:{"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity)}}})),...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${Zc.checked}, &.${Zc.indeterminate}`]:{color:(e.vars||e).palette[t].main},[`&.${Zc.disabled}`]:{color:(e.vars||e).palette.action.disabled}}})),{props:{disableRipple:!1},style:{"&:hover":{"@media (hover: none)":{backgroundColor:"transparent"}}}}]}))),Jc=(0,Oa.jsx)(Kc,{}),eu=(0,Oa.jsx)(Yc,{}),tu=(0,Oa.jsx)(Qc,{}),ru=c.forwardRef(function Checkbox(e,t){const n=useDefaultProps({props:e,name:"MuiCheckbox"}),{checkedIcon:a=Jc,color:o="primary",icon:i=eu,indeterminate:s=!1,indeterminateIcon:l=tu,size:u="medium",disableRipple:d=!1,className:p,slots:m={},slotProps:g={},...h}=n,b=s?l:i,y=s?l:a,v={...n,disableRipple:d,color:o,indeterminate:s,size:u},S=useUtilityClasses$36(v),x=g.input,[w,C]=useSlot("root",{ref:t,elementType:Xc,className:clsx(S.root,p),shouldForwardComponentProp:!0,externalForwardedProps:{slots:m,slotProps:g,...h},ownerState:v,additionalProps:{type:"checkbox",icon:c.cloneElement(b,{fontSize:b.props.fontSize??u}),checkedIcon:c.cloneElement(y,{fontSize:y.props.fontSize??u}),disableRipple:d,slots:m,slotProps:{input:mergeSlotProps$1("function"==typeof x?x(v):x,{"data-indeterminate":s,"aria-checked":s?"mixed":void 0})}}});return(0,Oa.jsx)(w,{...C,classes:S})});function getScrollbarSize(e=window){const t=e.document.documentElement.clientWidth;return e.innerWidth-t}function isOverflowing(e){const t=ownerDocument(e);return t.body===e?ownerWindow(e).innerWidth>t.documentElement.clientWidth:e.scrollHeight>e.clientHeight}function ariaHidden(e,t){t?e.setAttribute("aria-hidden","true"):e.removeAttribute("aria-hidden")}function getPaddingRight(e){return parseFloat(ownerWindow(e).getComputedStyle(e).paddingRight)||0}function isAriaHiddenForbiddenOnElement(e){const t=["TEMPLATE","SCRIPT","STYLE","LINK","MAP","META","NOSCRIPT","PICTURE","COL","COLGROUP","PARAM","SLOT","SOURCE","TRACK"].includes(e.tagName),n="INPUT"===e.tagName&&"hidden"===e.getAttribute("type");return t||n}function ariaHiddenSiblings(e,t,n,a,o){const i=[t,n,...a];[].forEach.call(e.children,e=>{const t=!i.includes(e),n=!isAriaHiddenForbiddenOnElement(e);t&&n&&ariaHidden(e,o)})}function findIndexOf(e,t){let n=-1;return e.some((e,a)=>!!t(e)&&(n=a,!0)),n}function handleContainer(e,t){const n=[],a=e.container;if(!t.disableScrollLock){if(isOverflowing(a)){const e=getScrollbarSize(ownerWindow(a));n.push({value:a.style.paddingRight,property:"padding-right",el:a}),a.style.paddingRight=`${getPaddingRight(a)+e}px`;const t=ownerDocument(a).querySelectorAll(".mui-fixed");[].forEach.call(t,t=>{n.push({value:t.style.paddingRight,property:"padding-right",el:t}),t.style.paddingRight=`${getPaddingRight(t)+e}px`})}let e;if(a.parentNode instanceof DocumentFragment)e=ownerDocument(a).body;else{const t=a.parentElement,n=ownerWindow(a);e="HTML"===t?.nodeName&&"scroll"===n.getComputedStyle(t).overflowY?t:a}n.push({value:e.style.overflow,property:"overflow",el:e},{value:e.style.overflowX,property:"overflow-x",el:e},{value:e.style.overflowY,property:"overflow-y",el:e}),e.style.overflow="hidden"}return()=>{n.forEach(({value:e,el:t,property:n})=>{e?t.style.setProperty(n,e):t.style.removeProperty(n)})}}function getHiddenSiblings(e){const t=[];return[].forEach.call(e.children,e=>{"true"===e.getAttribute("aria-hidden")&&t.push(e)}),t}var nu=class{constructor(){this.modals=[],this.containers=[]}add(e,t){let n=this.modals.indexOf(e);if(-1!==n)return n;n=this.modals.length,this.modals.push(e),e.modalRef&&ariaHidden(e.modalRef,!1);const a=getHiddenSiblings(t);ariaHiddenSiblings(t,e.mount,e.modalRef,a,!0);const o=findIndexOf(this.containers,e=>e.container===t);return-1!==o?(this.containers[o].modals.push(e),n):(this.containers.push({modals:[e],container:t,restore:null,hiddenSiblings:a}),n)}mount(e,t){const n=findIndexOf(this.containers,t=>t.modals.includes(e)),a=this.containers[n];a.restore||(a.restore=handleContainer(a,t))}remove(e,t=!0){const n=this.modals.indexOf(e);if(-1===n)return n;const a=findIndexOf(this.containers,t=>t.modals.includes(e)),o=this.containers[a];if(o.modals.splice(o.modals.indexOf(e),1),this.modals.splice(n,1),0===o.modals.length)o.restore&&o.restore(),e.modalRef&&ariaHidden(e.modalRef,t),ariaHiddenSiblings(o.container,e.mount,e.modalRef,o.hiddenSiblings,!1),this.containers.splice(a,1);else{const e=o.modals[o.modals.length-1];e.modalRef&&ariaHidden(e.modalRef,!1)}return n}isTopModal(e){return this.modals.length>0&&this.modals[this.modals.length-1]===e}},au=contains$1,ou="data-mui-focusable";function getFocusTarget(e){return e?e.hasAttribute("data-mui-focusable")?e:e.querySelector(`[${ou}]`):null}var iu=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'].join(",");function getTabIndex(e){const t=parseInt(e.getAttribute("tabindex")||"",10);return Number.isNaN(t)?"true"===e.contentEditable||("AUDIO"===e.nodeName||"VIDEO"===e.nodeName||"DETAILS"===e.nodeName)&&null===e.getAttribute("tabindex")?0:e.tabIndex:t}function isNonTabbableRadio(e){if("INPUT"!==e.tagName||"radio"!==e.type)return!1;if(!e.name)return!1;const getRadio=t=>e.ownerDocument.querySelector(`input[type="radio"]${t}`);let t=getRadio(`[name="${e.name}"]:checked`);return t||(t=getRadio(`[name="${e.name}"]`)),t!==e}function isNodeMatchingSelectorFocusable(e){return!(e.disabled||"INPUT"===e.tagName&&"hidden"===e.type||isNonTabbableRadio(e))}function defaultGetTabbable(e){const t=[],n=[];return Array.from(e.querySelectorAll(iu)).forEach((e,a)=>{const o=getTabIndex(e);-1!==o&&isNodeMatchingSelectorFocusable(e)&&(0===o?t.push(e):n.push({documentOrder:a,tabIndex:o,node:e}))}),n.sort((e,t)=>e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex).map(e=>e.node).concat(t)}function defaultIsEnabled(){return!0}function FocusTrap(e){const{children:t,disableAutoFocus:n=!1,disableEnforceFocus:a=!1,disableRestoreFocus:o=!1,getTabbable:i=defaultGetTabbable,isEnabled:s=defaultIsEnabled,open:l}=e,u=c.useRef(!1),d=c.useRef(null),p=c.useRef(null),m=c.useRef(null),g=c.useRef(null),h=c.useRef(!1),b=c.useRef(null),y=useForkRef(getReactElementRef(t),b),v=c.useRef(null);c.useEffect(()=>{l&&b.current&&(h.current=!n)},[n,l]),c.useEffect(()=>{if(u.current=!1,!l||!b.current)return;const e=Ds(ownerDocument(b.current)),t=getFocusTarget(b.current)??b.current;return au(b.current,e)||(t.hasAttribute("tabIndex")||t.setAttribute("tabIndex","-1"),h.current&&t.focus()),()=>{!o&&m.current&&(u.current=!0,m.current.focus(),m.current=null)}},[l]),c.useEffect(()=>{if(!l||!b.current)return;const e=ownerDocument(b.current),loopFocus=t=>{v.current=t,!a&&s()&&"Tab"===t.key&&Ds(e)===b.current&&t.shiftKey&&(u.current=!0,p.current&&p.current.focus())},contain=()=>{const t=b.current;if(null===t)return;const n=Ds(e);if(!e.hasFocus()||!s()||u.current)return void(u.current=!1);if(au(t,n))return;if(a&&n!==d.current&&n!==p.current)return;if(n!==g.current)g.current=null;else if(null!==g.current)return;if(!h.current)return;let o=[];if(n!==d.current&&n!==p.current||(o=i(b.current)),o.length>0){const e=Boolean(v.current?.shiftKey&&"Tab"===v.current?.key),t=o[0],n=o[o.length-1];"string"!=typeof t&&"string"!=typeof n&&(e?n.focus():t.focus())}else t.focus()};e.addEventListener("focusin",contain),e.addEventListener("keydown",loopFocus,!0);const t=setInterval(()=>{const t=Ds(e);t&&"BODY"===t.tagName&&contain()},50);return()=>{clearInterval(t),e.removeEventListener("focusin",contain),e.removeEventListener("keydown",loopFocus,!0)}},[n,a,o,s,l,i]);const onFocus=e=>{null===m.current&&(m.current=e.relatedTarget),h.current=!0,g.current=e.target;const n=t.props.onFocus;n&&n(e)},handleFocusSentinel=e=>{null===m.current&&(m.current=e.relatedTarget),h.current=!0};return(0,Oa.jsxs)(c.Fragment,{children:[(0,Oa.jsx)("div",{tabIndex:l?0:-1,onFocus:handleFocusSentinel,ref:d,"data-testid":"sentinelStart"}),c.cloneElement(t,{ref:y,onFocus}),(0,Oa.jsx)("div",{tabIndex:l?0:-1,onFocus:handleFocusSentinel,ref:p,"data-testid":"sentinelEnd"})]})}function getContainer(e){return"function"==typeof e?e():e}function getHasTransition(e){return!!e&&e.props.hasOwnProperty("in")}var noop$1=()=>{},su=new nu;function useModal(e){const{container:t,disableScrollLock:n=!1,closeAfterTransition:a=!1,onTransitionEnter:o,onTransitionExited:i,children:s,onClose:l,open:u,rootRef:d}=e,p=c.useRef({}),m=c.useRef(null),g=c.useRef(null),h=useForkRef(g,d),[b,y]=c.useState(!u),v=getHasTransition(s);let S=!0;"false"!==e["aria-hidden"]&&!1!==e["aria-hidden"]||(S=!1);const getDoc=()=>ownerDocument(m.current),getModal=()=>(p.current.modalRef=g.current,p.current.mount=m.current,p.current),handleMounted=()=>{su.mount(getModal(),{disableScrollLock:n}),g.current&&(g.current.scrollTop=0)},x=useEventCallback(()=>{const e=getContainer(t)||getDoc().body;su.add(getModal(),e),g.current&&handleMounted()}),isTopModal=()=>su.isTopModal(getModal()),w=useEventCallback(e=>{m.current=e,e&&(u&&isTopModal()?handleMounted():g.current&&ariaHidden(g.current,S))}),C=c.useCallback(()=>{su.remove(getModal(),S)},[S]);c.useEffect(()=>()=>{C()},[C]),c.useEffect(()=>{u?x():v&&a||C()},[u,C,v,a,x]);const createHandleKeyDown=e=>t=>{e.onKeyDown?.(t),"Escape"===t.key&&229!==t.which&&isTopModal()&&(t.stopPropagation(),l&&l(t,"escapeKeyDown"))},createHandleBackdropClick=e=>t=>{e.onClick?.(t),t.target===t.currentTarget&&l&&l(t,"backdropClick")};return{getRootProps:(t={})=>{const n=extractEventHandlers(e);delete n.onTransitionEnter,delete n.onTransitionExited;const a={...n,...t};return{role:"presentation",...a,onKeyDown:createHandleKeyDown(a),ref:h}},getBackdropProps:(e={})=>{const t=e;return{"aria-hidden":!0,...t,onClick:createHandleBackdropClick(t),open:u}},getTransitionProps:()=>{const handleExited=()=>{y(!0),i&&i(),a&&C()};return{onEnter:createChainedFunction(()=>{y(!1),o&&o()},s?.props.onEnter??noop$1),onExited:createChainedFunction(handleExited,s?.props.onExited??noop$1)}},rootRef:h,portalRef:w,isTopModal,exited:b,hasTransition:v}}function getModalUtilityClass(e){return generateUtilityClass("MuiModal",e)}generateUtilityClasses("MuiModal",["root","hidden","backdrop"]);var useUtilityClasses$35=e=>{const{open:t,exited:n,classes:a}=e;return composeClasses({root:["root",!t&&n&&"hidden"],backdrop:["backdrop"]},getModalUtilityClass,a)},lu=Ss("div",{name:"MuiModal",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.open&&n.exited&&t.hidden]}})(Ps(({theme:e})=>({position:"fixed",zIndex:(e.vars||e).zIndex.modal,right:0,bottom:0,top:0,left:0,variants:[{props:({ownerState:e})=>!e.open&&e.exited,style:{visibility:"hidden"}}]}))),cu=Ss(Ac,{name:"MuiModal",slot:"Backdrop"})({zIndex:-1}),uu=c.forwardRef(function Modal(e,t){const n=useDefaultProps({name:"MuiModal",props:e}),{classes:a,className:o,closeAfterTransition:i=!1,children:s,container:l,component:u,disableAutoFocus:d=!1,disableEnforceFocus:p=!1,disablePortal:m=!1,disableRestoreFocus:g=!1,disableScrollLock:h=!1,hideBackdrop:b=!1,keepMounted:y=!1,onClose:v,onTransitionEnter:S,onTransitionExited:x,open:w,slotProps:C={},slots:k={},theme:E,...P}=n,T={...n,closeAfterTransition:i,disableAutoFocus:d,disableEnforceFocus:p,disablePortal:m,disableRestoreFocus:g,disableScrollLock:h,hideBackdrop:b,keepMounted:y},{getRootProps:R,getBackdropProps:M,getTransitionProps:D,portalRef:O,isTopModal:$,exited:I,hasTransition:N}=useModal({...T,rootRef:t}),L={...T,exited:I},j=useUtilityClasses$35(L),B={};if(void 0===s.props.tabIndex&&(B.tabIndex="-1"),N){const{onEnter:e,onExited:t}=D();B.onEnter=e,B.onExited=t}const F={slots:k,slotProps:C},[q,U]=useSlot("root",{ref:t,elementType:lu,externalForwardedProps:{...F,...P,component:u},getSlotProps:R,ownerState:L,className:clsx(o,j?.root,!L.open&&L.exited&&j?.hidden)}),[V,H]=useSlot("backdrop",{elementType:cu,externalForwardedProps:F,shouldForwardComponentProp:!0,getSlotProps:e=>M({...e,onClick:t=>{e?.onClick&&e.onClick(t)}}),className:j?.backdrop,ownerState:L});return y||w||N&&!I?(0,Oa.jsx)(Jl,{ref:O,container:l,disablePortal:m,children:(0,Oa.jsxs)(q,{...U,children:[b?null:(0,Oa.jsx)(V,{...H}),(0,Oa.jsx)(FocusTrap,{disableEnforceFocus:p,disableAutoFocus:d,disableRestoreFocus:g,isEnabled:$,open:w,children:c.cloneElement(s,B)})]})}):null});function getDialogUtilityClass(e){return generateUtilityClass("MuiDialog",e)}generateUtilityClasses("MuiDialog",["root","backdrop","scrollPaper","scrollBody","container","paper","paperWidthFalse","paperWidthXs","paperWidthSm","paperWidthMd","paperWidthLg","paperWidthXl","paperFullWidth","paperFullScreen"]);var du=c.createContext({}),pu=Ss(Ac,{name:"MuiDialog",slot:"Backdrop"})({zIndex:-1}),useUtilityClasses$34=e=>{const{classes:t,scroll:n,maxWidth:a,fullWidth:o,fullScreen:i}=e;return composeClasses({root:["root"],backdrop:["backdrop"],container:["container",`scroll${_s(n)}`],paper:["paper",`paperWidth${_s(String(a))}`,o&&"paperFullWidth",i&&"paperFullScreen"]},getDialogUtilityClass,t)},mu=Ss(uu,{name:"MuiDialog",slot:"Root"})({"@media print":{position:"absolute !important"}}),fu=Ss("div",{name:"MuiDialog",slot:"Container",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.container,t[`scroll${_s(n.scroll)}`]]}})({height:"100%","@media print":{height:"auto"},outline:0,variants:[{props:{scroll:"paper"},style:{display:"flex",justifyContent:"center",alignItems:"center"}},{props:{scroll:"body"},style:{overflowY:"auto",overflowX:"hidden",textAlign:"center","&::after":{content:'""',display:"inline-block",verticalAlign:"middle",height:"100%",width:"0"}}}]}),gu=Ss(rl,{name:"MuiDialog",slot:"Paper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.paper,t[`paperWidth${_s(String(n.maxWidth))}`],n.fullWidth&&t.paperFullWidth,n.fullScreen&&t.paperFullScreen]}})(Ps(({theme:e})=>({margin:32,position:"relative",overflowY:"auto","@media print":{overflowY:"visible",boxShadow:"none"},variants:[{props:{scroll:"paper"},style:{display:"flex",flexDirection:"column",maxHeight:"calc(100% - 64px)"}},{props:{scroll:"body"},style:{display:"inline-block",verticalAlign:"middle",textAlign:"initial"}},{props:({ownerState:e})=>!e.maxWidth,style:{maxWidth:"calc(100% - 64px)"}},{props:{maxWidth:"xs"},style:{maxWidth:"px"===e.breakpoints.unit?Math.max(e.breakpoints.values.xs,444):`max(${e.breakpoints.values.xs}${e.breakpoints.unit}, 444px)`}},{props:{maxWidth:"xs",scroll:"body"},style:{[e.breakpoints.down(Math.max(e.breakpoints.values.xs,444)+64)]:{maxWidth:"calc(100% - 64px)"}}},...Object.keys(e.breakpoints.values).filter(e=>"xs"!==e).map(t=>({props:{maxWidth:t},style:{maxWidth:`${e.breakpoints.values[t]}${e.breakpoints.unit}`}})),...Object.keys(e.breakpoints.values).filter(e=>"xs"!==e).map(t=>({props:{maxWidth:t,scroll:"body"},style:{[e.breakpoints.down(e.breakpoints.values[t]+64)]:{maxWidth:"calc(100% - 64px)"}}})),{props:({ownerState:e})=>e.fullWidth,style:{width:"calc(100% - 64px)"}},{props:({ownerState:e})=>e.fullScreen,style:{margin:0,width:"100%",maxWidth:"100%",height:"100%",maxHeight:"none",borderRadius:0}},{props:({ownerState:e})=>e.fullScreen&&"body"===e.scroll,style:{margin:0,maxWidth:"100%"}}]}))),hu=c.forwardRef(function Dialog(e,t){const n=useDefaultProps({props:e,name:"MuiDialog"}),a=useTheme(),o={enter:a.transitions.duration.enteringScreen,exit:a.transitions.duration.leavingScreen},{"aria-describedby":i,"aria-labelledby":s,"aria-modal":l=!0,children:u,className:d,fullScreen:p=!1,fullWidth:m=!1,maxWidth:g="sm",onClick:h,onClose:b,open:y,PaperComponent:v=rl,role:S="dialog",scroll:x="paper",slots:w={},slotProps:C={},transitionDuration:k=o,...E}=n,P={...n,fullScreen:p,fullWidth:m,maxWidth:g,scroll:x},T=useUtilityClasses$34(P),R=c.useRef(),handleMouseDown=e=>{R.current=e.target===e.currentTarget},handleBackdropClick=e=>{h&&h(e),R.current&&(R.current=null,b&&b(e,"backdropClick"))},M=useId(s),D=c.useMemo(()=>({titleId:M}),[M]),O={slots:w,slotProps:C},[$,I]=useSlot("root",{elementType:mu,shouldForwardComponentProp:!0,externalForwardedProps:O,ownerState:P,className:clsx(T.root,d),ref:t}),[N,L]=useSlot("backdrop",{elementType:pu,shouldForwardComponentProp:!0,externalForwardedProps:O,ownerState:P,className:T.backdrop}),[j,B]=useSlot("paper",{elementType:gu,shouldForwardComponentProp:!0,externalForwardedProps:O,ownerState:P,className:T.paper,additionalProps:{elevation:24,role:S,"aria-describedby":i,"aria-labelledby":M,"aria-modal":l,tabIndex:-1,[ou]:""}}),[F,q]=useSlot("container",{elementType:fu,externalForwardedProps:O,ownerState:P,className:T.container}),[U,V]=useSlot("transition",{elementType:Pc,externalForwardedProps:O,ownerState:P,additionalProps:{appear:!0,in:y,timeout:k,role:"presentation"}});return(0,Oa.jsx)($,{closeAfterTransition:!0,slots:{backdrop:N},slotProps:{backdrop:{transitionDuration:k,...L}},onClose:b,open:y,onClick:handleBackdropClick,...I,...E,children:(0,Oa.jsx)(U,{...V,children:(0,Oa.jsx)(F,{onMouseDown:handleMouseDown,...q,children:(0,Oa.jsx)(j,{as:v,...B,children:(0,Oa.jsx)(du.Provider,{value:D,children:u})})})})})});function getDialogActionsUtilityClass(e){return generateUtilityClass("MuiDialogActions",e)}generateUtilityClasses("MuiDialogActions",["root","spacing"]);var useUtilityClasses$33=e=>{const{classes:t,disableSpacing:n}=e;return composeClasses({root:["root",!n&&"spacing"]},getDialogActionsUtilityClass,t)},bu=Ss("div",{name:"MuiDialogActions",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disableSpacing&&t.spacing]}})({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end",flex:"0 0 auto",variants:[{props:({ownerState:e})=>!e.disableSpacing,style:{"& > :not(style) ~ :not(style)":{marginLeft:8}}}]}),yu=c.forwardRef(function DialogActions(e,t){const n=useDefaultProps({props:e,name:"MuiDialogActions"}),{className:a,disableSpacing:o=!1,...i}=n,s={...n,disableSpacing:o};return(0,Oa.jsx)(bu,{className:clsx(useUtilityClasses$33(s).root,a),ownerState:s,ref:t,...i})});function getDialogContentUtilityClass(e){return generateUtilityClass("MuiDialogContent",e)}generateUtilityClasses("MuiDialogContent",["root","dividers"]);function getDialogTitleUtilityClass(e){return generateUtilityClass("MuiDialogTitle",e)}var vu=generateUtilityClasses("MuiDialogTitle",["root"]),useUtilityClasses$32=e=>{const{classes:t,dividers:n}=e;return composeClasses({root:["root",n&&"dividers"]},getDialogContentUtilityClass,t)},Su=Ss("div",{name:"MuiDialogContent",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dividers&&t.dividers]}})(Ps(({theme:e})=>({flex:"1 1 auto",WebkitOverflowScrolling:"touch",overflowY:"auto",padding:"20px 24px",variants:[{props:({ownerState:e})=>e.dividers,style:{padding:"16px 24px",borderTop:`1px solid ${(e.vars||e).palette.divider}`,borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>!e.dividers,style:{[`.${vu.root} + &`]:{paddingTop:0}}}]}))),xu=c.forwardRef(function DialogContent(e,t){const n=useDefaultProps({props:e,name:"MuiDialogContent"}),{className:a,dividers:o=!1,...i}=n,s={...n,dividers:o};return(0,Oa.jsx)(Su,{className:clsx(useUtilityClasses$32(s).root,a),ownerState:s,ref:t,...i})}),useUtilityClasses$31=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getDialogTitleUtilityClass,t)},wu=Ss(Tl,{name:"MuiDialogTitle",slot:"Root"})({padding:"16px 24px",flex:"0 0 auto"}),Cu=c.forwardRef(function DialogTitle(e,t){const n=useDefaultProps({props:e,name:"MuiDialogTitle"}),{className:a,id:o,...i}=n,s=n,l=useUtilityClasses$31(s),{titleId:u=o}=c.useContext(du);return(0,Oa.jsx)(wu,{component:"h2",className:clsx(l.root,a),ownerState:s,ref:t,variant:"h6",id:o??u,...i})});function getDividerUtilityClass(e){return generateUtilityClass("MuiDivider",e)}var ku=generateUtilityClasses("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","vertical","withChildren","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]),useUtilityClasses$30=e=>{const{absolute:t,children:n,classes:a,flexItem:o,orientation:i,textAlign:s,variant:l}=e;return composeClasses({root:["root",t&&"absolute",l,"vertical"===i&&"vertical",o&&"flexItem",n&&"withChildren","right"===s&&"vertical"!==i&&"textAlignRight","left"===s&&"vertical"!==i&&"textAlignLeft"],wrapper:["wrapper","vertical"===i&&"wrapperVertical"]},getDividerUtilityClass,a)},Eu=Ss("div",{name:"MuiDivider",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.absolute&&t.absolute,t[n.variant],"vertical"===n.orientation&&t.vertical,n.flexItem&&t.flexItem,n.children&&t.withChildren,"right"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignRight,"left"===n.textAlign&&"vertical"!==n.orientation&&t.textAlignLeft]}})(Ps(({theme:e})=>({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:(e.vars||e).palette.divider,borderBottomWidth:"thin",variants:[{props:{absolute:!0},style:{position:"absolute",bottom:0,left:0,width:"100%"}},{props:{variant:"inset"},style:{marginLeft:72}},{props:{variant:"middle",orientation:"horizontal"},style:{marginLeft:e.spacing(2),marginRight:e.spacing(2)}},{props:{variant:"middle",orientation:"vertical"},style:{marginTop:e.spacing(1),marginBottom:e.spacing(1)}},{props:{orientation:"vertical"},style:{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"}},{props:{flexItem:!0},style:{alignSelf:"stretch",height:"auto"}},{props:({ownerState:e})=>!!e.children,style:{display:"flex",textAlign:"center",border:0,borderTopStyle:"solid",borderLeftStyle:"solid","&::before, &::after":{content:'""',alignSelf:"center"}}},{props:({ownerState:e})=>e.children&&"vertical"!==e.orientation,style:{"&::before, &::after":{width:"100%",borderTop:`thin solid ${(e.vars||e).palette.divider}`,borderTopStyle:"inherit"}}},{props:({ownerState:e})=>"vertical"===e.orientation&&e.children,style:{flexDirection:"column","&::before, &::after":{height:"100%",borderLeft:`thin solid ${(e.vars||e).palette.divider}`,borderLeftStyle:"inherit"}}},{props:({ownerState:e})=>"right"===e.textAlign&&"vertical"!==e.orientation,style:{"&::before":{width:"90%"},"&::after":{width:"10%"}}},{props:({ownerState:e})=>"left"===e.textAlign&&"vertical"!==e.orientation,style:{"&::before":{width:"10%"},"&::after":{width:"90%"}}}]}))),_u=Ss("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.wrapper,"vertical"===n.orientation&&t.wrapperVertical]}})(Ps(({theme:e})=>({display:"inline-block",paddingLeft:`calc(${e.spacing(1)} * 1.2)`,paddingRight:`calc(${e.spacing(1)} * 1.2)`,whiteSpace:"nowrap",variants:[{props:{orientation:"vertical"},style:{paddingTop:`calc(${e.spacing(1)} * 1.2)`,paddingBottom:`calc(${e.spacing(1)} * 1.2)`}}]}))),Pu=c.forwardRef(function Divider(e,t){const n=useDefaultProps({props:e,name:"MuiDivider"}),{absolute:a=!1,children:o,className:i,orientation:s="horizontal",component:l=(o||"vertical"===s?"div":"hr"),flexItem:c=!1,role:u=("hr"!==l?"separator":void 0),textAlign:d="center",variant:p="fullWidth",...m}=n,g={...n,absolute:a,component:l,flexItem:c,orientation:s,role:u,textAlign:d,variant:p},h=useUtilityClasses$30(g);return(0,Oa.jsx)(Eu,{as:l,className:clsx(h.root,i),role:u,ref:t,ownerState:g,"aria-orientation":"separator"!==u||"hr"===l&&"vertical"!==s?void 0:s,...m,children:o?(0,Oa.jsx)(_u,{className:h.wrapper,ownerState:g,children:o}):null})}),useUtilityClasses$29=e=>{const{classes:t,disableUnderline:n,startAdornment:a,endAdornment:o,size:i,hiddenLabel:s,multiline:l}=e,c=composeClasses({root:["root",!n&&"underline",a&&"adornedStart",o&&"adornedEnd","small"===i&&`size${_s(i)}`,s&&"hiddenLabel",l&&"multiline"],input:["input"]},getFilledInputUtilityClass,t);return{...t,...c}},Tu=Ss(bc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiFilledInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(Ps(({theme:e})=>{const t="light"===e.palette.mode,n=t?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)",a=t?"rgba(0, 0, 0, 0.06)":"rgba(255, 255, 255, 0.09)",o=t?"rgba(0, 0, 0, 0.09)":"rgba(255, 255, 255, 0.13)",i=t?"rgba(0, 0, 0, 0.12)":"rgba(255, 255, 255, 0.12)";return{position:"relative",backgroundColor:e.vars?e.vars.palette.FilledInput.bg:a,borderTopLeftRadius:(e.vars||e).shape.borderRadius,borderTopRightRadius:(e.vars||e).shape.borderRadius,transition:e.transitions.create("background-color",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),"&:hover":{backgroundColor:e.vars?e.vars.palette.FilledInput.hoverBg:o,"@media (hover: none)":{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:a}},[`&.${Cc.focused}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.bg:a},[`&.${Cc.disabled}`]:{backgroundColor:e.vars?e.vars.palette.FilledInput.disabledBg:i},variants:[{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${Cc.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${Cc.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${e.vars?e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline):n}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${Cc.disabled}, .${Cc.error}):before`]:{borderBottom:`1px solid ${(e.vars||e).palette.text.primary}`},[`&.${Cc.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{disableUnderline:!1,color:t},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t]?.main}`}}})),{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:12}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:12}},{props:({ownerState:e})=>e.multiline,style:{padding:"25px 12px 8px"}},{props:({ownerState:e,size:t})=>e.multiline&&"small"===t,style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.multiline&&e.hiddenLabel&&"small"===e.size,style:{paddingTop:8,paddingBottom:9}}]}})),Au=Ss(yc,{name:"MuiFilledInput",slot:"Input",overridesResolver:inputOverridesResolver})(Ps(({theme:e})=>({paddingTop:25,paddingRight:12,paddingBottom:8,paddingLeft:12,"&:-webkit-autofill":{...!e.vars&&{WebkitBoxShadow:"light"===e.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.mode?null:"#fff",caretColor:"light"===e.palette.mode?null:"#fff"},borderTopLeftRadius:"inherit",borderTopRightRadius:"inherit",...e.vars&&e.applyStyles("dark",{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"})},variants:[{props:{size:"small"},style:{paddingTop:21,paddingBottom:4}},{props:({ownerState:e})=>e.hiddenLabel,style:{paddingTop:16,paddingBottom:17}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}},{props:({ownerState:e})=>e.hiddenLabel&&"small"===e.size,style:{paddingTop:8,paddingBottom:9}},{props:({ownerState:e})=>e.multiline,style:{paddingTop:0,paddingBottom:0,paddingLeft:0,paddingRight:0}}]}))),Ru=c.forwardRef(function FilledInput(e,t){const n=useDefaultProps({props:e,name:"MuiFilledInput"}),{disableUnderline:a=!1,fullWidth:o=!1,hiddenLabel:i,inputComponent:s="input",multiline:l=!1,notched:c,slotProps:u,slots:d={},type:p="text",...m}=n,g={...n,disableUnderline:a,fullWidth:o,inputComponent:s,multiline:l,type:p},h=useUtilityClasses$29(n),b={root:{ownerState:g},input:{ownerState:g}},y=u?deepmerge(b,u):b;return(0,Oa.jsx)(Sc,{slots:{root:d.root??Tu,input:d.input??Au},slotProps:y,fullWidth:o,inputComponent:s,multiline:l,ref:t,type:p,...m,classes:h})});function getFormControlUtilityClasses(e){return generateUtilityClass("MuiFormControl",e)}Ru.muiName="Input";generateUtilityClasses("MuiFormControl",["root","marginNone","marginNormal","marginDense","fullWidth","disabled"]);var useUtilityClasses$28=e=>{const{classes:t,margin:n,fullWidth:a}=e;return composeClasses({root:["root","none"!==n&&`margin${_s(n)}`,a&&"fullWidth"]},getFormControlUtilityClasses,t)},Mu=Ss("div",{name:"MuiFormControl",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`margin${_s(n.margin)}`],n.fullWidth&&t.fullWidth]}})({display:"inline-flex",flexDirection:"column",position:"relative",minWidth:0,padding:0,margin:0,border:0,verticalAlign:"top",variants:[{props:{margin:"normal"},style:{marginTop:16,marginBottom:8}},{props:{margin:"dense"},style:{marginTop:8,marginBottom:4}},{props:{fullWidth:!0},style:{width:"100%"}}]}),Du=c.forwardRef(function FormControl(e,t){const n=useDefaultProps({props:e,name:"MuiFormControl"}),{children:a,className:o,color:i="primary",component:s="div",disabled:l=!1,error:u=!1,focused:d,fullWidth:p=!1,hiddenLabel:m=!1,margin:g="none",required:h=!1,size:b="medium",variant:y="outlined",...v}=n,S={...n,color:i,component:s,disabled:l,error:u,fullWidth:p,hiddenLabel:m,margin:g,required:h,size:b,variant:y},x=useUtilityClasses$28(S),[w,C]=c.useState(()=>{let e=!1;return a&&c.Children.forEach(a,t=>{if(!Ms(t,["Input","Select"]))return;const n=Ms(t,["Select"])?t.props.input:t;n&&isAdornedStart(n.props)&&(e=!0)}),e}),[k,E]=c.useState(()=>{let e=!1;return a&&c.Children.forEach(a,t=>{Ms(t,["Input","Select"])&&(isFilled(t.props,!0)||isFilled(t.props.inputProps,!0))&&(e=!0)}),e}),[P,T]=c.useState(!1);l&&P&&T(!1);const R=void 0===d||l?P:d;let M;c.useRef(!1);const D=c.useCallback(()=>{E(!0)},[]),O=c.useCallback(()=>{E(!1)},[]),$=c.useMemo(()=>({adornedStart:w,setAdornedStart:C,color:i,disabled:l,error:u,filled:k,focused:R,fullWidth:p,hiddenLabel:m,size:b,onBlur:()=>{T(!1)},onFocus:()=>{T(!0)},onEmpty:O,onFilled:D,registerEffect:M,required:h,variant:y}),[w,i,l,u,k,R,p,m,M,O,D,h,b,y]);return(0,Oa.jsx)(pc.Provider,{value:$,children:(0,Oa.jsx)(Mu,{as:s,ownerState:S,className:clsx(x.root,o),ref:t,...v,children:a})})});function getFormControlLabelUtilityClasses(e){return generateUtilityClass("MuiFormControlLabel",e)}var Ou=generateUtilityClasses("MuiFormControlLabel",["root","labelPlacementStart","labelPlacementTop","labelPlacementBottom","disabled","label","error","required","asterisk"]),useUtilityClasses$27=e=>{const{classes:t,disabled:n,labelPlacement:a,error:o,required:i}=e;return composeClasses({root:["root",n&&"disabled",`labelPlacement${_s(a)}`,o&&"error",i&&"required"],label:["label",n&&"disabled"],asterisk:["asterisk",o&&"error"]},getFormControlLabelUtilityClasses,t)},$u=Ss("label",{name:"MuiFormControlLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Ou.label}`]:t.label},t.root,t[`labelPlacement${_s(n.labelPlacement)}`]]}})(Ps(({theme:e})=>({display:"inline-flex",alignItems:"center",cursor:"pointer",verticalAlign:"middle",WebkitTapHighlightColor:"transparent",marginLeft:-11,marginRight:16,[`&.${Ou.disabled}`]:{cursor:"default"},[`& .${Ou.label}`]:{[`&.${Ou.disabled}`]:{color:(e.vars||e).palette.text.disabled}},variants:[{props:{labelPlacement:"start"},style:{flexDirection:"row-reverse",marginRight:-11}},{props:{labelPlacement:"top"},style:{flexDirection:"column-reverse"}},{props:{labelPlacement:"bottom"},style:{flexDirection:"column"}},{props:({labelPlacement:e})=>"start"===e||"top"===e||"bottom"===e,style:{marginLeft:16}}]}))),Iu=Ss("span",{name:"MuiFormControlLabel",slot:"Asterisk"})(Ps(({theme:e})=>({[`&.${Ou.error}`]:{color:(e.vars||e).palette.error.main}}))),Nu=c.forwardRef(function FormControlLabel(e,t){const n=useDefaultProps({props:e,name:"MuiFormControlLabel"}),{checked:a,className:o,control:i,disabled:s,disableTypography:l,inputRef:u,label:d,labelPlacement:p="end",name:m,onChange:g,required:h,slots:b={},slotProps:y={},value:v,...S}=n,[x,w]=useFormControlState({props:n,states:["error"]}),C=s??i.props.disabled??w?.disabled,k=h??i.props.required,E={disabled:C,required:k};["checked","name","onChange","value","inputRef"].forEach(e=>{void 0===i.props[e]&&void 0!==n[e]&&(E[e]=n[e])});const P={...n,disabled:C,labelPlacement:p,required:k,error:x.error},T=useUtilityClasses$27(P),[R,M]=useSlot("typography",{elementType:Tl,externalForwardedProps:{slots:b,slotProps:y},ownerState:P});let D=d;return null==D||D.type===Tl||l||(D=(0,Oa.jsx)(R,{component:"span",...M,className:clsx(T.label,M?.className),children:D})),(0,Oa.jsxs)($u,{className:clsx(T.root,o),ownerState:P,ref:t,...S,children:[c.cloneElement(i,E),k?(0,Oa.jsxs)("div",{children:[D,(0,Oa.jsxs)(Iu,{ownerState:P,"aria-hidden":!0,className:T.asterisk,children:[" ","*"]})]}):D]})});function getFormHelperTextUtilityClasses(e){return generateUtilityClass("MuiFormHelperText",e)}var zu,Lu=generateUtilityClasses("MuiFormHelperText",["root","error","disabled","sizeSmall","sizeMedium","contained","focused","filled","required"]),useUtilityClasses$26=e=>{const{classes:t,contained:n,size:a,disabled:o,error:i,filled:s,focused:l,required:c}=e;return composeClasses({root:["root",o&&"disabled",i&&"error",a&&`size${_s(a)}`,n&&"contained",l&&"focused",s&&"filled",c&&"required"]},getFormHelperTextUtilityClasses,t)},ju=Ss("p",{name:"MuiFormHelperText",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.size&&t[`size${_s(n.size)}`],n.contained&&t.contained,n.filled&&t.filled]}})(Ps(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.caption,textAlign:"left",marginTop:3,marginRight:0,marginBottom:0,marginLeft:0,[`&.${Lu.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Lu.error}`]:{color:(e.vars||e).palette.error.main},variants:[{props:{size:"small"},style:{marginTop:4}},{props:({ownerState:e})=>e.contained,style:{marginLeft:14,marginRight:14}}]}))),Bu=c.forwardRef(function FormHelperText(e,t){const n=useDefaultProps({props:e,name:"MuiFormHelperText"}),{children:a,className:o,component:i="p",disabled:s,error:l,filled:c,focused:u,margin:d,required:p,variant:m,...g}=n,[h]=useFormControlState({props:n,states:["variant","size","disabled","error","filled","focused","required"]}),b={...n,component:i,contained:"filled"===h.variant||"outlined"===h.variant,variant:h.variant,size:h.size,disabled:h.disabled,error:h.error,filled:h.filled,focused:h.focused,required:h.required};return delete b.ownerState,(0,Oa.jsx)(ju,{as:i,className:clsx(useUtilityClasses$26(b).root,o),ref:t,...g,ownerState:b,children:" "===a?zu||(zu=(0,Oa.jsx)("span",{className:"notranslate","aria-hidden":!0,children:""})):a})});function getFormLabelUtilityClasses(e){return generateUtilityClass("MuiFormLabel",e)}var Fu=generateUtilityClasses("MuiFormLabel",["root","colorSecondary","focused","disabled","error","filled","required","asterisk"]),useUtilityClasses$25=e=>{const{classes:t,color:n,focused:a,disabled:o,error:i,filled:s,required:l}=e;return composeClasses({root:["root",`color${_s(n)}`,o&&"disabled",i&&"error",s&&"filled",a&&"focused",l&&"required"],asterisk:["asterisk",i&&"error"]},getFormLabelUtilityClasses,t)},qu=Ss("label",{name:"MuiFormLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,"secondary"===n.color&&t.colorSecondary,n.filled&&t.filled]}})(Ps(({theme:e})=>({color:(e.vars||e).palette.text.secondary,...e.typography.body1,lineHeight:"1.4375em",padding:0,position:"relative",variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${Fu.focused}`]:{color:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${Fu.disabled}`]:{color:(e.vars||e).palette.text.disabled},[`&.${Fu.error}`]:{color:(e.vars||e).palette.error.main}}}]}))),Uu=Ss("span",{name:"MuiFormLabel",slot:"Asterisk"})(Ps(({theme:e})=>({[`&.${Fu.error}`]:{color:(e.vars||e).palette.error.main}}))),Vu=c.forwardRef(function FormLabel(e,t){const n=useDefaultProps({props:e,name:"MuiFormLabel"}),{children:a,className:o,color:i,component:s="label",disabled:l,error:c,filled:u,focused:d,required:p,...m}=n,[g]=useFormControlState({props:n,states:["color","required","focused","disabled","error","filled"]}),h={...n,color:g.color||"primary",component:s,disabled:g.disabled,error:g.error,filled:g.filled,focused:g.focused,required:g.required},b=useUtilityClasses$25(h);return(0,Oa.jsxs)(qu,{as:s,ownerState:h,className:clsx(b.root,o),ref:t,...m,children:[a,g.required&&(0,Oa.jsxs)(Uu,{ownerState:h,"aria-hidden":!0,className:b.asterisk,children:[" ","*"]})]})});function getScale(e){return`scale(${e}, ${e**2})`}var Hu={entering:{opacity:1,transform:getScale(1)},entered:{opacity:1,transform:"none"},exiting:{opacity:0,transform:getScale(.75)},exited:{opacity:0,transform:getScale(.75)}},Wu={opacity:0,transform:getScale(.75),visibility:"hidden"},Gu=c.forwardRef(function Grow(e,t){const{addEndListener:n,appear:a=!0,children:o,easing:i,in:s,onEnter:l,onEntered:u,onEntering:d,onExit:p,onExited:m,onExiting:g,style:h,timeout:b="auto",...y}=e,v=useTimeout(),S=c.useRef(),x=useTheme(),w=c.useRef(null),C=js(w,getReactElementRef(o),t),k=normalizedTransitionCallback(w,d),E=normalizedTransitionCallback(w,(e,t)=>{reflow(e);const{duration:n,delay:a,easing:o}=getTransitionProps({style:h,timeout:b,easing:i},{mode:"enter"});let s;"auto"===b?(s=x.transitions.getAutoHeightDuration(e.clientHeight),S.current=s):s=n,e.style.transition=[x.transitions.create("opacity",{duration:s,delay:a}),x.transitions.create("transform",{duration:.666*s,delay:a,easing:o})].join(","),l&&l(e,t)}),P=normalizedTransitionCallback(w,u),T=normalizedTransitionCallback(w,g),R=normalizedTransitionCallback(w,e=>{const{duration:t,delay:n,easing:a}=getTransitionProps({style:h,timeout:b,easing:i},{mode:"exit"});let o;"auto"===b?(o=x.transitions.getAutoHeightDuration(e.clientHeight),S.current=o):o=t,e.style.transition=[x.transitions.create("opacity",{duration:o,delay:n}),x.transitions.create("transform",{duration:.666*o,delay:n||.333*o,easing:a})].join(","),e.style.opacity=0,e.style.transform=getScale(.75),p&&p(e)}),M=normalizedTransitionCallback(w,e=>{e.style.transition="",m&&m(e)}),handleAddEndListener=e=>{"auto"===b&&v.start(S.current||0,e),n&&n(w.current,e)};return(0,Oa.jsx)(Ys,{appear:a,in:s,nodeRef:w,onEnter:E,onEntered:P,onEntering:k,onExit:R,onExited:M,onExiting:T,addEndListener:handleAddEndListener,timeout:"auto"===b?null:b,...y,children:(e,{ownerState:t,...n})=>{const a=getTransitionChildStyle(e,s,Hu,Wu,h,o.props.style);return c.cloneElement(o,{style:a,ref:C,...n})}})});function getInputLabelUtilityClasses(e){return generateUtilityClass("MuiInputLabel",e)}Gu&&(Gu.muiSupportAuto=!0);var Yu=generateUtilityClasses("MuiInputLabel",["root","focused","disabled","error","required","asterisk","formControl","sizeSmall","shrink","animated","standard","filled","outlined"]),useUtilityClasses$24=e=>{const{classes:t,disableUnderline:n}=e,a=composeClasses({root:["root",!n&&"underline"],input:["input"]},getInputUtilityClass,t);return{...t,...a}},Ku=Ss(bc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiInput",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[...rootOverridesResolver(e,t),!n.disableUnderline&&t.underline]}})(Ps(({theme:e})=>{let t="light"===e.palette.mode?"rgba(0, 0, 0, 0.42)":"rgba(255, 255, 255, 0.7)";return e.vars&&(t=e.alpha(e.vars.palette.common.onBackground,e.vars.opacity.inputUnderline)),{position:"relative",variants:[{props:({ownerState:e})=>e.formControl,style:{[`label + &, .${Yu.root} + &`]:{marginTop:16}}},{props:({ownerState:e})=>!e.disableUnderline,style:{"&::after":{left:0,bottom:0,content:'""',position:"absolute",right:0,transform:"scaleX(0)",transition:e.transitions.create("transform",{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut}),pointerEvents:"none"},[`&.${xc.focused}:after`]:{transform:"scaleX(1) translateX(0)"},[`&.${xc.error}`]:{"&::before, &::after":{borderBottomColor:(e.vars||e).palette.error.main}},"&::before":{borderBottom:`1px solid ${t}`,left:0,bottom:0,content:'""',position:"absolute",right:0,transition:e.transitions.create("border-bottom-color",{duration:e.transitions.duration.shorter}),pointerEvents:"none"},[`&:hover:not(.${xc.disabled}, .${xc.error}):before`]:{borderBottom:`2px solid ${(e.vars||e).palette.text.primary}`,"@media (hover: none)":{borderBottom:`1px solid ${t}`}},[`&.${xc.disabled}:before`]:{borderBottomStyle:"dotted"}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t,disableUnderline:!1},style:{"&::after":{borderBottom:`2px solid ${(e.vars||e).palette[t].main}`}}}))]}})),Qu=Ss(yc,{name:"MuiInput",slot:"Input",overridesResolver:inputOverridesResolver})({}),Zu=c.forwardRef(function Input(e,t){const n=useDefaultProps({props:e,name:"MuiInput"}),{disableUnderline:a=!1,fullWidth:o=!1,inputComponent:i="input",multiline:s=!1,notched:l,slotProps:c,slots:u={},type:d="text",...p}=n,m=useUtilityClasses$24(n),g={root:{ownerState:{disableUnderline:a}}},h=c?deepmerge(c,g):g;return(0,Oa.jsx)(Sc,{slots:{root:u.root??Ku,input:u.input??Qu},slotProps:h,fullWidth:o,inputComponent:i,multiline:s,ref:t,type:d,...p,classes:m})});Zu.muiName="Input";var useUtilityClasses$23=e=>{const{classes:t,formControl:n,size:a,shrink:o,disableAnimation:i,variant:s,required:l}=e,c=composeClasses({root:["root",n&&"formControl",!i&&"animated",o&&"shrink",a&&"medium"!==a&&`size${_s(a)}`,s],asterisk:[l&&"asterisk"]},getInputLabelUtilityClasses,t);return{...t,...c}},Xu=Ss(Vu,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiInputLabel",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Fu.asterisk}`]:t.asterisk},t.root,n.formControl&&t.formControl,"small"===n.size&&t.sizeSmall,n.shrink&&t.shrink,!n.disableAnimation&&t.animated,n.focused&&t.focused,t[n.variant]]}})(Ps(({theme:e})=>({display:"block",transformOrigin:"top left",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:"100%",variants:[{props:({ownerState:e})=>e.formControl,style:{position:"absolute",left:0,top:0,transform:"translate(0, 20px) scale(1)"}},{props:{size:"small"},style:{transform:"translate(0, 17px) scale(1)"}},{props:({ownerState:e})=>e.shrink,style:{transform:"translate(0, -1.5px) scale(0.75)",transformOrigin:"top left",maxWidth:"133%"}},{props:({ownerState:e})=>!e.disableAnimation,style:{transition:e.transitions.create(["color","transform","max-width"],{duration:e.transitions.duration.shorter,easing:e.transitions.easing.easeOut})}},{props:{variant:"filled"},style:{zIndex:1,pointerEvents:"none",transform:"translate(12px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"filled",size:"small"},style:{transform:"translate(12px, 13px) scale(1)"}},{props:({variant:e,ownerState:t})=>"filled"===e&&t.shrink,style:{userSelect:"none",pointerEvents:"auto",transform:"translate(12px, 7px) scale(0.75)",maxWidth:"calc(133% - 24px)"}},{props:({variant:e,ownerState:t,size:n})=>"filled"===e&&t.shrink&&"small"===n,style:{transform:"translate(12px, 4px) scale(0.75)"}},{props:{variant:"outlined"},style:{zIndex:1,pointerEvents:"none",transform:"translate(14px, 16px) scale(1)",maxWidth:"calc(100% - 24px)"}},{props:{variant:"outlined",size:"small"},style:{transform:"translate(14px, 9px) scale(1)"}},{props:({variant:e,ownerState:t})=>"outlined"===e&&t.shrink,style:{userSelect:"none",pointerEvents:"auto",maxWidth:"calc(133% - 32px)",transform:"translate(14px, -9px) scale(0.75)"}}]}))),Ju=c.forwardRef(function InputLabel(e,t){const n=useDefaultProps({name:"MuiInputLabel",props:e}),{disableAnimation:a=!1,margin:o,shrink:i,variant:s,className:l,...c}=n,[u,d]=useFormControlState({props:n,states:["size","variant","required","focused"]});let p=i;void 0===p&&d&&(p=d.filled||d.focused||d.adornedStart);const m={...n,disableAnimation:a,formControl:d,shrink:p,size:u.size,variant:u.variant,required:u.required,focused:u.focused},g=useUtilityClasses$23(m);return(0,Oa.jsx)(Xu,{"data-shrink":p,ref:t,className:clsx(g.root,l),...c,ownerState:m,classes:g})}),ed=c.createContext({});function getListUtilityClass(e){return generateUtilityClass("MuiList",e)}generateUtilityClasses("MuiList",["root","padding","dense","subheader"]);var useUtilityClasses$22=e=>{const{classes:t,disablePadding:n,dense:a,subheader:o}=e;return composeClasses({root:["root",!n&&"padding",a&&"dense",o&&"subheader"]},getListUtilityClass,t)},td=Ss("ul",{name:"MuiList",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,!n.disablePadding&&t.padding,n.dense&&t.dense,n.subheader&&t.subheader]}})({listStyle:"none",margin:0,padding:0,position:"relative",variants:[{props:({ownerState:e})=>!e.disablePadding,style:{paddingTop:8,paddingBottom:8}},{props:({ownerState:e})=>e.subheader,style:{paddingTop:0,isolation:"isolate"}}]}),rd=c.forwardRef(function List(e,t){const n=useDefaultProps({props:e,name:"MuiList"}),{children:a,className:o,component:i="ul",dense:s=!1,disablePadding:l=!1,subheader:u,...d}=n,p=c.useMemo(()=>({dense:s}),[s]),m={...n,component:i,dense:s,disablePadding:l},g=useUtilityClasses$22(m);return(0,Oa.jsx)(ed.Provider,{value:p,children:(0,Oa.jsxs)(td,{as:i,className:clsx(g.root,o),ref:t,ownerState:m,...d,children:[u,a]})})}),nd=generateUtilityClasses("MuiListItemIcon",["root","alignItemsFlexStart"]),ad=generateUtilityClasses("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]),od=c.createContext(void 0);function useRovingTabIndexContext(){const e=c.useContext(od);if(void 0===e)throw new Error("MUI: RovingTabIndexContext is missing. Roving tab index items must be placed within a roving tab index provider.");return e}var id=Object.is;function fastObjectShallowCompare(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;let n=0,a=0;for(const o in e){if(n+=1,!id(e[o],t[o]))return!1;if(!(o in t))return!1}for(const o in t)a+=1;return n===a}var sd=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown","Home","End"];function useRovingTabIndexRoot(e){const{activeItemId:t,getDefaultActiveItemId:n,orientation:a,isRtl:o=!1,isItemFocusable:i=isItemFocusable,wrap:s=!0}=e,[l,u]=c.useState(t),d=c.useRef(t);let p=l;t!==d.current&&(d.current=t,void 0!==t&&t!==l&&(p=t,u(t)));const m=c.useRef(null),g=c.useRef(new Map),[h,b]=c.useState(0),y=resolveActiveItemId(p,c.useMemo(()=>getOrderedItems(g.current),[h]),i,n),v=c.useRef(y);v.current=y;const S=c.useCallback(()=>{const e=getOrderedItems(g.current);return getItemById(e,resolveActiveItemId(v.current,e,i,n))},[n,i]),x=c.useCallback(()=>g.current,[]),w=useEventCallback(e=>{fastObjectShallowCompare(g.current.get(e.id)??null,e)||(g.current.set(e.id,e),b(e=>e+1))}),C=useEventCallback(e=>{g.current.delete(e)&&b(e=>e+1)}),k=useEventCallback(e=>{u(e)}),E=c.useCallback(e=>v.current===e,[]),P=c.useCallback((e,t,n,a)=>{const o=getNextActiveItem(getNavigableItemsSnapshot(g.current),e,t,n,a??i);return o?(o.element?.focus(),u(o.id),o):null},[i]),T=c.useCallback(e=>({onFocus:e=>{const t=getNavigableItemsSnapshot(g.current),n=findItemIndexByElement(t,e.target);-1!==n&&u(t[n].id)},onKeyDown:e=>{if(e.altKey||e.shiftKey||e.ctrlKey||e.metaKey)return;if(!sd.includes(e.key))return;let t="horizontal"===a?"ArrowLeft":"ArrowUp",n="horizontal"===a?"ArrowRight":"ArrowDown";"horizontal"===a&&o&&(t="ArrowRight",n="ArrowLeft");const i=getNavigableItemsSnapshot(g.current),l=activeElement(ownerDocument(m.current)),c=l===m.current;let u=getCurrentActiveItemIndex(i,l,v.current),d="next";switch(e.key){case t:d="previous",e.preventDefault(),c&&(u=i.length);break;case n:e.preventDefault(),c&&(u=-1);break;case"Home":e.preventDefault(),u=-1;break;case"End":e.preventDefault(),d="previous",u=i.length;break;default:return}P(u,d,s)},ref:handleRefs(e,e=>{m.current=e})}),[P,o,a,s]),R=c.useCallback(e=>{const t=getNavigableItemsSnapshot(g.current),n=activeElement(ownerDocument(m.current));return P(n===m.current?-1:getCurrentActiveItemIndex(t,n,v.current),"next",!0,e)?.id??null},[P]);return c.useMemo(()=>({activeItemId:y,focusNext:R,getActiveItem:S,getContainerProps:T,getItemMap:x,isItemActive:E,registerItem:w,setActiveItemId:k,unregisterItem:C}),[y,R,S,T,x,E,w,k,C])}function useRovingTabIndexItem(e){const{activeItemId:t,registerItem:n,unregisterItem:a}=useRovingTabIndexContext(),o=c.useRef(null),i=c.useMemo(()=>({disabled:e.disabled??!1,element:null,focusableWhenDisabled:e.focusableWhenDisabled??!1,id:e.id,selected:e.selected??!1,textValue:e.textValue}),[e.disabled,e.focusableWhenDisabled,e.id,e.selected,e.textValue]),s=c.useRef(i);s.current=i;const l=c.useCallback(t=>{o.current=t,null!=t?n({...s.current,element:t}):queueMicrotask(()=>{null==o.current&&a(e.id)})},[e.id,n,a]),u=useForkRef(e.ref,l);return Gi(()=>{o.current&&n({...i,element:o.current})},[i,n]),Gi(()=>{const t=e.id;return()=>{a(t)}},[e.id,a]),{ref:u,tabIndex:t===e.id?0:-1}}function resolveActiveItemId(e,t,n,a){return null!=e?resolveRequestedItemId(e,t,n):resolveDefaultItemId(t,n,a)}function resolveRequestedItemId(e,t,n){const a=findItemIndexById(t,e);return-1===a?getFirstFocusableItemId(t,n):n(t[a])?t[a].id:getNextActiveItem(t,a,"next",!1,n)?.id??null}function resolveDefaultItemId(e,t,n){const a=n?.(e);if(null!=a){const n=getItemById(e,a);if(n&&t(n))return n.id}return getFirstFocusableItemId(e,t)}function getCurrentActiveItemIndex(e,t,n){if(t){const n=findItemIndexByElement(e,t);if(-1!==n)return n}return findItemIndexById(e,n)}function getNextActiveItem(e,t,n,a,o){const i=e.length-1;if(-1===i)return null;let s=!1,l=getNextIndex(t,i,n,a);const c=l;for(;-1!==l;){if(l===c){if(s)return null;s=!0}const t=e[l];if(t&&o(t))return t;l=getNextIndex(l,i,n,a)}return null}function getFirstFocusableItemId(e,t){return e.find(e=>t(e))?.id??null}function getItemById(e,t){return null==t?null:e.find(e=>e.id===t)??null}function findItemIndexById(e,t){return null==t?-1:e.findIndex(e=>e.id===t)}function findItemIndexByElement(e,t){return t?e.findIndex(e=>e.element===t||e.element?.contains(t)):-1}function getOrderedItems(e){const t=Array.from(e.values());if(t.every(e=>null==e.element))return t;return[...t.filter(isConnectedItem).sort((e,t)=>sortByDocumentPosition(e.element,t.element)),...t.filter(e=>!isConnectedItem(e))]}function getNavigableItemsSnapshot(e){return getOrderedItems(e).filter(isConnectedItem)}function getNextIndex(e,t,n,a=!0){return"next"===n?e===t?a?0:-1:e+1:0===e?a?t:-1:e-1}function isItemFocusable(e){return!!e.element&&(!!e.focusableWhenDisabled||!e.disabled&&!e.element.hasAttribute("disabled")&&"true"!==e.element.getAttribute("aria-disabled")&&e.element.hasAttribute("tabindex"))}function isConnectedItem(e){return null!=e.element&&e.element.isConnected}function sortByDocumentPosition(e,t){if(e===t)return 0;const n=e.compareDocumentPosition(t);return n&Node.DOCUMENT_POSITION_FOLLOWING||n&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:n&Node.DOCUMENT_POSITION_PRECEDING||n&Node.DOCUMENT_POSITION_CONTAINS?1:0}function handleRefs(...e){return t=>{e.forEach(e=>{setRef(e??null,t)})}}var ld=getScrollbarSize;function focusWithVisible(e,t){if(null!=t)try{e.focus({focusVisible:"keyboard"===t})}catch(n){e.focus()}else e.focus()}function getOpenInteractionType(e){return e?"mousedown"===e.type||"pointerdown"===e.type||"touchstart"===e.type?"pointer":"keydown"===e.type||"click"===e.type&&0===e.detail?"keyboard":null:null}function isEmpty(e){return null==e||"string"==typeof e&&!e.trim()}function areEqualValues(e,t){return"object"==typeof t&&null!==t?e===t:String(e)===String(t)}var cd=c.createContext(null);function useSelectFocusSource(){return c.useContext(cd)}var ud=cd.Provider,dd=c.createContext(void 0);function useMenuListContext(){const e=c.useContext(dd);if(void 0===e)throw new Error("MUI: MenuListContext is missing. MenuItems must be placed within Menu or MenuList.");return e}function getItemText(e){const t=e?.element??e;if(!t)return"";if(void 0!==e?.textValue)return e.textValue;let n=t.innerText;return void 0===n&&(n=t.textContent),n??""}function textCriteriaMatches(e,t){if(void 0===t)return!0;let n=getItemText(e);return n=n.trim().toLowerCase(),0!==n.length&&(t.repeating?n[0]===t.keys[0]:n.startsWith(t.keys.join("")))}function isItemFocusableWithTextCriteria(e,t){return!!textCriteriaMatches(e,t)&&isItemFocusable(e)}function focusInitialItem(e,t){focusWithVisible(e,t)}var pd=c.forwardRef(function MenuList(e,t){const{actions:n,autoFocus:a=!1,autoFocusItem:o=!1,children:i,className:s,disabledItemsFocusable:l=!1,disableListWrap:u=!1,onKeyDown:d,variant:p="selectedMenu",...m}=e,g=c.useRef(null),h=c.useRef(!1),[b,y]=c.useState(!1),v=useSelectFocusSource(),S=c.useRef({keys:[],repeating:!0,previousKeyMatched:!0,lastTime:null}),x=useRovingTabIndexRoot({activeItemId:void 0,getDefaultActiveItemId:c.useCallback(e=>"selectedMenu"===p?e.find(e=>e.selected&&isItemFocusable(e))?.id??e.find(e=>isItemFocusable(e))?.id??null:e.find(e=>isItemFocusable(e))?.id??null,[p]),orientation:"vertical",wrap:!u}),{activeItemId:w,focusNext:C,getActiveItem:k,getContainerProps:E,getItemMap:P}=x,T=Ls((e=!1)=>{if(!g.current||!e&&h.current)return null;if(o){const e=k();if(e?.element){const t=Array.from(P().values()).some(e=>e.selected);return y("menu"===p&&t&&!e.selected&&null==v),focusInitialItem(e.element,v),h.current=!0,e.element}return a?(y(!1),g.current.focus(),g.current):null}return a?(y(!1),g.current.focus(),h.current=!0,g.current):(y(!1),null)});Is(()=>{if(!a&&!o)return h.current=!1,void y(!1);T()},[w,o,a,T]),c.useImperativeHandle(n,()=>({adjustStyleForScrollbar:(e,{direction:t})=>{const n=!g.current.style.width;if(e.clientHeight<g.current.clientHeight&&n){const n=`${ld($s(e))}px`;g.current.style["rtl"===t?"paddingLeft":"paddingRight"]=n,g.current.style.width=`calc(100% + ${n})`}return g.current},focusInitialTarget:()=>{if(!g.current)return null;const e=Ds(Os(g.current));return e&&au(g.current,e)?e:T(!0)}}),[T]);const R=E(),M=js(g,R.ref,t),D=c.useMemo(()=>({itemsFocusableWhenDisabled:l,suppressInitialFocusVisible:b,variant:p}),[l,b,p]);return(0,Oa.jsx)(rd,{role:"menu",ref:M,className:s,onKeyDown:Ls(e=>{if(b&&y(!1),(e.ctrlKey||e.metaKey||e.altKey)&&d)d(e);else{if(R.onKeyDown(e),1===e.key.length){const t=S.current,n=e.key.toLowerCase(),a=performance.now();t.keys.length>0&&(a-t.lastTime>500?(t.keys=[],t.repeating=!0,t.previousKeyMatched=!0):t.repeating&&n!==t.keys[0]&&(t.repeating=!1)),t.lastTime=a,t.keys.push(n);const o=Ds(Os(g.current)),i=o&&!t.repeating&&textCriteriaMatches(o,t);t.previousKeyMatched&&(i||null!=C(e=>isItemFocusableWithTextCriteria(e,t)))?e.preventDefault():t.previousKeyMatched=!1}d&&d(e)}}),onFocus:R.onFocus,tabIndex:-1,...m,children:(0,Oa.jsx)(dd.Provider,{value:D,children:(0,Oa.jsx)(od.Provider,{value:x,children:i})})})});function getPopoverUtilityClass(e){return generateUtilityClass("MuiPopover",e)}generateUtilityClasses("MuiPopover",["root","paper"]);function getOffsetTop(e,t){let n=0;return"number"==typeof t?n=t:"center"===t?n=e.height/2:"bottom"===t&&(n=e.height),n}function getOffsetLeft(e,t){let n=0;return"number"==typeof t?n=t:"center"===t?n=e.width/2:"right"===t&&(n=e.width),n}function getTransformOriginValue(e){return[e.horizontal,e.vertical].map(e=>"number"==typeof e?`${e}px`:e).join(" ")}function resolveAnchorEl(e){return"function"==typeof e?e():e}var useUtilityClasses$21=e=>{const{classes:t}=e;return composeClasses({root:["root"],paper:["paper"]},getPopoverUtilityClass,t)},md=Ss(uu,{name:"MuiPopover",slot:"Root"})({}),fd=Ss(rl,{name:"MuiPopover",slot:"Paper"})({position:"absolute",overflowY:"auto",overflowX:"hidden",minWidth:16,minHeight:16,maxWidth:"calc(100% - 32px)",maxHeight:"calc(100% - 32px)",outline:0}),gd=c.forwardRef(function Popover(e,t){const n=useDefaultProps({props:e,name:"MuiPopover"}),{action:a,anchorEl:o,anchorOrigin:i={vertical:"top",horizontal:"left"},anchorPosition:s,anchorReference:l="anchorEl",children:u,className:d,container:p,disableAutoFocus:m=!1,elevation:g=8,marginThreshold:h=16,open:b,slots:y={},slotProps:v={},transformOrigin:S={vertical:"top",horizontal:"left"},transitionDuration:x="auto",disableScrollLock:w=!1,...C}=n,k=c.useRef(),E={...n,anchorOrigin:i,anchorReference:l,elevation:g,marginThreshold:h,transformOrigin:S,transitionDuration:x},P=useUtilityClasses$21(E),T=c.useCallback(()=>{if("anchorPosition"===l)return s;const e=resolveAnchorEl(o),t=(e&&1===e.nodeType?e:Os(k.current).body).getBoundingClientRect();return{top:t.top+getOffsetTop(t,i.vertical),left:t.left+getOffsetLeft(t,i.horizontal)}},[o,i.horizontal,i.vertical,s,l]),R=c.useCallback(e=>({vertical:getOffsetTop(e,S.vertical),horizontal:getOffsetLeft(e,S.horizontal)}),[S.horizontal,S.vertical]),M=c.useCallback(e=>{const t={width:e.offsetWidth,height:e.offsetHeight},n=R(t);if("none"===l)return{top:null,left:null,transformOrigin:getTransformOriginValue(n)};const a=T();let i=a.top-n.vertical,s=a.left-n.horizontal;const c=i+t.height,u=s+t.width,d=$s(resolveAnchorEl(o)),p=d.innerHeight-h,m=d.innerWidth-h;if(null!=h&&i<h){const e=i-h;i-=e,n.vertical+=e}else if(null!=h&&c>p){const e=c-p;i-=e,n.vertical+=e}if(null!=h&&s<h){const e=s-h;s-=e,n.horizontal+=e}else if(u>m){const e=u-m;s-=e,n.horizontal+=e}return{top:`${Math.round(i)}px`,left:`${Math.round(s)}px`,transformOrigin:getTransformOriginValue(n)}},[o,l,T,R,h]),[D,O]=c.useState(b),$=c.useCallback(()=>{const e=k.current;if(!e)return;const t=M(e);null!=t.top&&e.style.setProperty("top",t.top),null!=t.left&&(e.style.left=t.left),e.style.transformOrigin=t.transformOrigin,O(!0)},[M]);c.useEffect(()=>(w&&window.addEventListener("scroll",$),()=>window.removeEventListener("scroll",$)),[o,w,$]);const handleEntering=()=>{$()},handleExited=()=>{O(!1)};c.useEffect(()=>{b&&$()}),c.useImperativeHandle(a,()=>b?{updatePosition:()=>{$()}}:null,[b,$]),c.useEffect(()=>{if(!b)return;const e=Rs(()=>{$()}),t=$s(resolveAnchorEl(o));return t.addEventListener("resize",e),()=>{e.clear(),t.removeEventListener("resize",e)}},[o,b,$]);let I=x;const N={slots:y,slotProps:v},[L,j]=useSlot("transition",{elementType:Gu,externalForwardedProps:N,ownerState:E,getSlotProps:e=>({...e,onEntering:(t,n)=>{e.onEntering?.(t,n),handleEntering()},onExited:t=>{e.onExited?.(t),handleExited()}}),additionalProps:{appear:!0,in:b}});"auto"!==x||L.muiSupportAuto||(I=void 0);const B=p||(o?Os(resolveAnchorEl(o)).body:void 0),[F,{slots:q,slotProps:U,...V}]=useSlot("root",{ref:t,elementType:md,externalForwardedProps:{...N,...C},shouldForwardComponentProp:!0,additionalProps:{slots:{backdrop:y.backdrop},slotProps:{backdrop:mergeSlotProps$1("function"==typeof v.backdrop?v.backdrop(E):v.backdrop,{invisible:!0})},container:B,open:b},ownerState:E,className:clsx(P.root,d)}),[H,W]=useSlot("paper",{ref:k,className:P.paper,elementType:fd,externalForwardedProps:N,shouldForwardComponentProp:!0,additionalProps:{elevation:g,style:D?void 0:{opacity:0}},ownerState:E});return(0,Oa.jsx)(F,{...V,...!isHostComponent(F)&&{slots:q,slotProps:U,disableAutoFocus:m,disableScrollLock:w},children:(0,Oa.jsx)(L,{...j,timeout:I,children:(0,Oa.jsx)(H,{...W,children:u})})})});function getMenuUtilityClass(e){return generateUtilityClass("MuiMenu",e)}generateUtilityClasses("MuiMenu",["root","paper","list"]);var hd={vertical:"top",horizontal:"right"},bd={vertical:"top",horizontal:"left"},useUtilityClasses$20=e=>{const{classes:t}=e;return composeClasses({root:["root"],paper:["paper"],list:["list"]},getMenuUtilityClass,t)},yd=Ss(gd,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiMenu",slot:"Root"})({}),vd=Ss(fd,{name:"MuiMenu",slot:"Paper"})({maxHeight:"calc(100% - 96px)",WebkitOverflowScrolling:"touch"}),Sd=Ss(pd,{name:"MuiMenu",slot:"List"})({outline:0}),xd=c.forwardRef(function Menu(e,t){const n=useDefaultProps({props:e,name:"MuiMenu"}),{autoFocus:a=!0,children:o,className:i,disableAutoFocusItem:s=!1,onClose:l,open:u,PopoverClasses:d,transitionDuration:p="auto",variant:m="selectedMenu",slots:g={},slotProps:h={},...b}=n,y=useRtl(),v={...n,autoFocus:a,disableAutoFocusItem:s,transitionDuration:p,variant:m},S=useUtilityClasses$20(v),x=a&&u,w=x&&!s,C=c.useRef(null),handleEntering=(e,t)=>{C.current&&(C.current.adjustStyleForScrollbar(e,{direction:y?"rtl":"ltr"}),x&&C.current.focusInitialTarget?.())},handleListKeyDown=e=>{"Tab"===e.key&&(e.preventDefault(),l&&l(e,"tabKeyDown"))},k={slots:g,slotProps:h},E=useSlotProps({elementType:g.root,externalSlotProps:h.root,ownerState:v,className:[S.root,i]}),[P,T]=useSlot("paper",{className:S.paper,elementType:vd,externalForwardedProps:k,shouldForwardComponentProp:!0,ownerState:v}),[R,M]=useSlot("list",{className:S.list,elementType:Sd,shouldForwardComponentProp:!0,externalForwardedProps:k,getSlotProps:e=>({...e,onKeyDown:t=>{handleListKeyDown(t),e.onKeyDown?.(t)}}),ownerState:v}),D="function"==typeof h.transition?h.transition(v):h.transition;return(0,Oa.jsx)(yd,{disableAutoFocus:a,onClose:l,anchorOrigin:{vertical:"bottom",horizontal:y?"right":"left"},transformOrigin:y?hd:bd,slots:{root:g.root,paper:P,backdrop:g.backdrop,transition:g.transition},slotProps:{root:E,paper:T,backdrop:"function"==typeof h.backdrop?h.backdrop(v):h.backdrop,transition:{...D,onEntering:(...e)=>{handleEntering(...e),D?.onEntering?.(...e)}}},open:u,ref:t,transitionDuration:p,ownerState:v,...b,classes:d,children:(0,Oa.jsx)(R,{actions:C,autoFocus:x,autoFocusItem:w,variant:m,...M,children:o})})});function getMenuItemUtilityClass(e){return generateUtilityClass("MuiMenuItem",e)}var wd=generateUtilityClasses("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]),overridesResolver=(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]},useUtilityClasses$19=e=>{const{disabled:t,dense:n,divider:a,disableGutters:o,selected:i,classes:s}=e,l=composeClasses({root:["root",n&&"dense",t&&"disabled",!o&&"gutters",a&&"divider",i&&"selected"]},getMenuItemUtilityClass,s);return{...s,...l}},Cd=Ss(gl,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiMenuItem",slot:"Root",overridesResolver})(Ps(({theme:e})=>({...e.typography.body1,display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap","&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${wd.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),[`&.${wd.focusVisible}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.focusOpacity}`)}},[`&.${wd.selected}:hover`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity)}},[`&.${wd.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${wd.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${ku.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${ku.inset}`]:{marginLeft:52},[`& .${ad.root}`]:{marginTop:0,marginBottom:0},[`& .${ad.inset}`]:{paddingLeft:36},[`& .${nd.root}`]:{minWidth:36},variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:e})=>e.divider,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"}},{props:({ownerState:e})=>!e.dense,style:{[e.breakpoints.up("sm")]:{minHeight:"auto"}}},{props:({ownerState:e})=>e.dense,style:{minHeight:32,paddingTop:4,paddingBottom:4,...e.typography.body2,[`& .${nd.root} svg`]:{fontSize:"1.25rem"}}}]}))),kd=c.forwardRef(function MenuItem(e,t){const n=useDefaultProps({props:e,name:"MuiMenuItem"}),{autoFocus:a=!1,component:o="li",dense:i=!1,divider:s=!1,disableGutters:l=!1,focusVisibleClassName:u,role:d="menuitem",tabIndex:p,className:m,...g}=n,h=useSelectFocusSource(),b=c.useContext(ed),y=c.useMemo(()=>({dense:i||b.dense||!1,disableGutters:l}),[b.dense,i,l]),v=useMenuListContext(),S=Ns(),x=v.suppressInitialFocusVisible,w=v.itemsFocusableWhenDisabled,C=c.useRef(null);Is(()=>{a&&C.current&&focusWithVisible(C.current,h)},[a]);const k={...n,dense:y.dense,divider:s,disableGutters:l},E=useUtilityClasses$19(n),{root:P,...T}=E,R=useRovingTabIndexItem({id:S,ref:t,disabled:n.disabled,focusableWhenDisabled:w,selected:n.selected}),M=js(C,R.ref);let D;return void 0!==p?D=p:"selectedMenu"===v.variant?D=R.tabIndex:n.disabled&&!w||(D=-1),(0,Oa.jsx)(ed.Provider,{value:y,children:(0,Oa.jsx)(Cd,{ref:M,role:d,tabIndex:D,component:o,internalNativeButton:!1,focusableWhenDisabled:w,suppressFocusVisible:x,focusVisibleClassName:clsx(E.focusVisible,u),className:clsx(E.root,m),...g,ownerState:k,classes:T})})});function getNativeSelectUtilityClasses(e){return generateUtilityClass("MuiNativeSelect",e)}var Ed,_d=generateUtilityClasses("MuiNativeSelect",["root","select","multiple","filled","outlined","standard","disabled","icon","iconOpen","iconFilled","iconOutlined","iconStandard","nativeInput","error"]),useUtilityClasses$18=e=>{const{classes:t,variant:n,disabled:a,multiple:o,open:i,error:s}=e;return composeClasses({select:["select",n,a&&"disabled",o&&"multiple",s&&"error"],icon:["icon",`icon${_s(n)}`,i&&"iconOpen",a&&"disabled"]},getNativeSelectUtilityClasses,t)},Pd=Ss("select",{name:"MuiNativeSelect"})(({theme:e})=>({MozAppearance:"none",WebkitAppearance:"none",userSelect:"none",borderRadius:0,cursor:"pointer","&:focus":{borderRadius:0},[`&.${_d.disabled}`]:{cursor:"default"},"&[multiple]":{height:"auto"},"&:not([multiple]) option, &:not([multiple]) optgroup":{backgroundColor:(e.vars||e).palette.background.paper},variants:[{props:({ownerState:e})=>"filled"!==e.variant&&"outlined"!==e.variant,style:{"&&&":{paddingRight:24,minWidth:16}}},{props:{variant:"filled"},style:{"&&&":{paddingRight:32}}},{props:{variant:"outlined"},style:{borderRadius:(e.vars||e).shape.borderRadius,"&:focus":{borderRadius:(e.vars||e).shape.borderRadius},"&&&":{paddingRight:32}}}]})),Td=Ss(Pd,{name:"MuiNativeSelect",slot:"Select",shouldForwardProp:rootShouldForwardProp,overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.select,t[n.variant],n.error&&t.error,{[`&.${_d.multiple}`]:t.multiple}]}})({}),Ad=Ss("svg",{name:"MuiNativeSelect"})(({theme:e})=>({position:"absolute",right:0,top:"calc(50% - .5em)",pointerEvents:"none",color:(e.vars||e).palette.action.active,[`&.${_d.disabled}`]:{color:(e.vars||e).palette.action.disabled},variants:[{props:({ownerState:e})=>e.open,style:{transform:"rotate(180deg)"}},{props:{variant:"filled"},style:{right:7}},{props:{variant:"outlined"},style:{right:7}}]})),Rd=Ss(Ad,{name:"MuiNativeSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.variant&&t[`icon${_s(n.variant)}`],n.open&&t.iconOpen]}})({}),Md=c.forwardRef(function NativeSelectInput(e,t){const{className:n,disabled:a,error:o,IconComponent:i,inputRef:s,variant:l="standard",...u}=e,d={...e,disabled:a,variant:l,error:o},p=useUtilityClasses$18(d);return(0,Oa.jsxs)(c.Fragment,{children:[(0,Oa.jsx)(Td,{ownerState:d,className:clsx(p.select,n),disabled:a,ref:s||t,...u}),e.multiple?null:(0,Oa.jsx)(Rd,{as:i,ownerState:d,className:p.icon})]})}),Dd=Ss("fieldset",{name:"MuiNotchedOutlined",shouldForwardProp:rootShouldForwardProp})({textAlign:"left",position:"absolute",bottom:0,right:0,top:-5,left:0,margin:0,padding:"0 8px",pointerEvents:"none",borderRadius:"inherit",borderStyle:"solid",borderWidth:1,overflow:"hidden",minWidth:"0%"}),Od=Ss("legend",{name:"MuiNotchedOutlined",shouldForwardProp:rootShouldForwardProp})(Ps(({theme:e})=>({float:"unset",width:"auto",overflow:"hidden",variants:[{props:({ownerState:e})=>!e.withLabel,style:{padding:0,lineHeight:"11px",transition:e.transitions.create("width",{duration:150,easing:e.transitions.easing.easeOut})}},{props:({ownerState:e})=>e.withLabel,style:{display:"block",padding:0,height:11,fontSize:"0.75em",visibility:"hidden",maxWidth:.01,transition:e.transitions.create("max-width",{duration:50,easing:e.transitions.easing.easeOut}),whiteSpace:"nowrap","& > span":{paddingLeft:5,paddingRight:5,display:"inline-block",opacity:0,visibility:"visible"}}},{props:({ownerState:e})=>e.withLabel&&e.notched,style:{maxWidth:"100%",transition:e.transitions.create("max-width",{duration:100,easing:e.transitions.easing.easeOut,delay:50})}}]})));function NotchedOutline(e){const{children:t,classes:n,className:a,label:o,notched:i,...s}=e,l=null!=o&&""!==o,c={...e,notched:i,withLabel:l};return(0,Oa.jsx)(Dd,{"aria-hidden":!0,className:a,ownerState:c,...s,children:(0,Oa.jsx)(Od,{ownerState:c,children:l?(0,Oa.jsx)("span",{children:o}):Ed||(Ed=(0,Oa.jsx)("span",{className:"notranslate","aria-hidden":!0,children:""}))})})}var useUtilityClasses$17=e=>{const{classes:t}=e,n=composeClasses({root:["root"],notchedOutline:["notchedOutline"],input:["input"]},getOutlinedInputUtilityClass,t);return{...t,...n}},$d=Ss(bc,{shouldForwardProp:e=>rootShouldForwardProp(e)||"classes"===e,name:"MuiOutlinedInput",slot:"Root",overridesResolver:rootOverridesResolver})(Ps(({theme:e})=>{const t="light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{position:"relative",borderRadius:(e.vars||e).shape.borderRadius,[`&:hover .${wc.notchedOutline}`]:{borderColor:(e.vars||e).palette.text.primary},"@media (hover: none)":{[`&:hover .${wc.notchedOutline}`]:{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}},[`&.${wc.focused} .${wc.notchedOutline}`]:{borderWidth:2},variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${wc.focused} .${wc.notchedOutline}`]:{borderColor:(e.vars||e).palette[t].main}}})),{props:{},style:{[`&.${wc.error} .${wc.notchedOutline}`]:{borderColor:(e.vars||e).palette.error.main},[`&.${wc.disabled} .${wc.notchedOutline}`]:{borderColor:(e.vars||e).palette.action.disabled}}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:14}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:14}},{props:({ownerState:e})=>e.multiline,style:{padding:"16.5px 14px"}},{props:({ownerState:e,size:t})=>e.multiline&&"small"===t,style:{padding:"8.5px 14px"}}]}})),Id=Ss(NotchedOutline,{name:"MuiOutlinedInput",slot:"NotchedOutline"})(Ps(({theme:e})=>{const t="light"===e.palette.mode?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)";return{borderColor:e.vars?e.alpha(e.vars.palette.common.onBackground,.23):t}})),Nd=Ss(yc,{name:"MuiOutlinedInput",slot:"Input",overridesResolver:inputOverridesResolver})(Ps(({theme:e})=>({padding:"16.5px 14px","&:-webkit-autofill":{...!e.vars&&{WebkitBoxShadow:"light"===e.palette.mode?null:"0 0 0 100px #266798 inset",WebkitTextFillColor:"light"===e.palette.mode?null:"#fff",caretColor:"light"===e.palette.mode?null:"#fff"},borderRadius:"inherit",...e.vars&&e.applyStyles("dark",{WebkitBoxShadow:"0 0 0 100px #266798 inset",WebkitTextFillColor:"#fff",caretColor:"#fff"})},variants:[{props:{size:"small"},style:{padding:"8.5px 14px"}},{props:({ownerState:e})=>e.multiline,style:{padding:0}},{props:({ownerState:e})=>e.startAdornment,style:{paddingLeft:0}},{props:({ownerState:e})=>e.endAdornment,style:{paddingRight:0}}]}))),zd=c.forwardRef(function OutlinedInput(e,t){const n=useDefaultProps({props:e,name:"MuiOutlinedInput"}),{fullWidth:a=!1,inputComponent:o="input",label:i,multiline:s=!1,notched:l,slots:u={},slotProps:d={},type:p="text",...m}=n,g=useUtilityClasses$17(n),[h,b]=useFormControlState({props:n,states:["color","disabled","error","focused","hiddenLabel","size","required"]}),y={...n,color:h.color||"primary",disabled:h.disabled,error:h.error,focused:h.focused,formControl:b,fullWidth:a,hiddenLabel:h.hiddenLabel,multiline:s,size:h.size,type:p},v=u.root??$d,S=u.input??Nd,[x,w]=useSlot("notchedOutline",{elementType:Id,className:g.notchedOutline,shouldForwardComponentProp:!0,ownerState:y,externalForwardedProps:{slots:u,slotProps:d},additionalProps:{label:null!=i&&""!==i&&h.required?(0,Oa.jsxs)(c.Fragment,{children:[i," ","*"]}):i}});return(0,Oa.jsx)(Sc,{slots:{root:v,input:S},slotProps:d,renderSuffix:e=>(0,Oa.jsx)(x,{...w,notched:void 0!==l?l:Boolean(e.startAdornment||e.filled||e.focused)}),fullWidth:a,inputComponent:o,multiline:s,ref:t,type:p,...m,classes:{...g,notchedOutline:null}})});zd.muiName="Input";var Ld={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"};function getSelectUtilityClasses(e){return generateUtilityClass("MuiSelect",e)}var jd,Bd=generateUtilityClasses("MuiSelect",["root","select","multiple","filled","outlined","standard","disabled","focused","icon","iconOpen","nativeInput","error"]),Fd=2,qd=400,Ud=200;function isMouseEventInsideElement(e,t){if(!t)return!1;if(e.composedPath().includes(t))return!0;if(e.target?.nodeType&&t.contains(e.target))return!0;const n=t.getBoundingClientRect();return(0!==n.width||0!==n.height)&&(e.clientX>=n.left-Fd&&e.clientX<=n.right+Fd&&e.clientY>=n.top-Fd&&e.clientY<=n.bottom+Fd)}var Vd=Ss(Pd,{name:"MuiSelect",slot:"Select",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`&.${Bd.select}`]:t.select},{[`&.${Bd.select}`]:t[n.variant]},{[`&.${Bd.error}`]:t.error},{[`&.${Bd.multiple}`]:t.multiple}]}})({[`&.${Bd.select}`]:{height:"auto",minHeight:"1.4375em",textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden"}}),Hd=Ss(Ad,{name:"MuiSelect",slot:"Icon",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.icon,n.open&&t.iconOpen]}})({}),Wd=Ss("input",{shouldForwardProp:e=>slotShouldForwardProp(e)&&"classes"!==e,name:"MuiSelect",slot:"NativeInput"})({bottom:0,left:0,position:"absolute",opacity:0,pointerEvents:"none",width:"100%",boxSizing:"border-box"}),useUtilityClasses$16=e=>{const{classes:t,variant:n,disabled:a,multiple:o,open:i,error:s}=e;return composeClasses({select:["select",n,a&&"disabled",o&&"multiple",s&&"error"],icon:["icon",i&&"iconOpen",a&&"disabled"],nativeInput:["nativeInput"]},getSelectUtilityClasses,t)},Gd=c.forwardRef(function SelectInput(e,t){const{"aria-describedby":n,"aria-label":a,autoFocus:o,autoWidth:i,children:s,className:l,defaultOpen:u,defaultValue:d,disabled:p,displayEmpty:m,error:g=!1,IconComponent:h,inputRef:b,labelId:y,MenuProps:v={},multiple:S,name:x,onBlur:w,onChange:C,onClose:k,onFocus:E,onKeyDown:P,onMouseDown:T,onOpen:R,open:M,readOnly:D,renderValue:O,required:$,SelectDisplayProps:I={},tabIndex:N,type:L,value:j,variant:B="standard",...F}=e,[q,U]=zs({controlled:j,default:d,name:"Select"}),[V,H]=zs({controlled:M,default:u,name:"Select"}),W=c.useRef(null),G=c.useRef(null),Y=c.useRef(null),K=c.useRef(!1),Q=c.useRef(!1),Z=c.useRef(null),X=c.useRef(!1),J=c.useRef({allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}),ee=useTimeout(),te=useTimeout(),[re,ne]=c.useState(null),{current:ae}=c.useRef(null!=M),[oe,ie]=c.useState(),[se,le]=c.useState(null),ce=js(t,b),ue=c.useCallback(e=>{G.current=e,e&&ne(e)},[]),de=re?.parentNode;c.useImperativeHandle(ce,()=>({focus:()=>{G.current.focus()},node:W.current,value:q}),[q]);const pe=null!==re&&V;Is(()=>{K.current=pe},[pe]);const me=c.useCallback(()=>{ee.clear(),te.clear()},[ee,te]),fe=c.useCallback(()=>{me(),X.current=!1,J.current={allowSelectedMouseUp:!1,allowUnselectedMouseUp:!1}},[me]),ge=c.useCallback(()=>{Z.current&&(Z.current(),Z.current=null)},[]);c.useEffect(()=>{pe||(fe(),ge())},[pe,fe,ge]),c.useEffect(()=>()=>{fe(),ge()},[fe,ge]),c.useEffect(()=>{if(!pe||!de||i)return;if("undefined"==typeof ResizeObserver)return;const e=new ResizeObserver(()=>{ie(de.clientWidth)});return e.observe(de),()=>{e.disconnect()}},[pe,de,i]),c.useEffect(()=>{u&&V&&re&&!ae&&(ie(i?null:de.clientWidth),G.current.focus())},[re,i]),c.useEffect(()=>{o&&G.current.focus()},[o]),c.useEffect(()=>{if(!y)return;const e=Os(G.current).getElementById(y);if(e){const handler=()=>{getSelection().isCollapsed&&G.current.focus()};return e.addEventListener("click",handler),()=>{e.removeEventListener("click",handler)}}},[y]);const he=Ls((e,t)=>{e||(fe(),ge()),e?(le(getOpenInteractionType(t)),R&&R(t)):(le(null),k&&k(t)),ae||(K.current=e,ie(i?null:de.clientWidth),H(e))}),scheduleMouseUpSelection=()=>{fe(),Q.current?te.start(Ud,()=>{J.current.allowUnselectedMouseUp=!0,ee.start(Ud,()=>{J.current.allowSelectedMouseUp=!0})}):ee.start(qd,()=>{J.current.allowSelectedMouseUp=!0,J.current.allowUnselectedMouseUp=!0})},handleMouseDown=e=>{if(T?.(e),0!==e.button)return;e.preventDefault(),G.current.focus();const t=Os(e.currentTarget);scheduleMouseUpSelection(),ge();const handleMouseUp=e=>{Z.current=null,G.current&&(isMouseEventInsideElement(e,G.current)||isMouseEventInsideElement(e,Y.current)||!K.current&&ae||he(!1,e))};t.addEventListener("mouseup",handleMouseUp,{capture:!0,once:!0}),Z.current=()=>{t.removeEventListener("mouseup",handleMouseUp,!0)},he(!0,e)},handleClose=e=>{he(!1,e)},be=c.Children.toArray(s),handleChange=e=>{const t=be.find(t=>t.props.value===e.target.value);void 0!==t&&(U(t.props.value),C&&C(e,t))},handleItemClick=e=>t=>{let n;if(X.current=!1,t.currentTarget.hasAttribute("tabindex")){if(S){n=Array.isArray(q)?q.slice():[];const t=q.indexOf(e.props.value);-1===t?n.push(e.props.value):n.splice(t,1)}else n=e.props.value;if(e.props.onClick&&e.props.onClick(t),q!==n&&(U(n),C)){const a=t.nativeEvent||t,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:n,name:x}}),C(o,e)}S||he(!1,t)}},handleItemMouseUp=(e,t)=>n=>{if(e.props.onMouseUp?.(n),X.current)return void(X.current=!1);const a=!J.current.allowSelectedMouseUp&&t,o=!J.current.allowUnselectedMouseUp&&!t;a||o||n.currentTarget.click()},handleKeyDown=e=>{D||([" ","ArrowUp","ArrowDown","Enter"].includes(e.key)&&(e.preventDefault(),he(!0,e)),P?.(e))},handleBlur=e=>{!pe&&w&&(Object.defineProperty(e,"target",{writable:!0,value:{value:q,name:x}}),w(e))};let ye,ve;delete F["aria-invalid"];const Se=[];let xe=!1,we=!1;(isFilled({value:q})||m)&&(O?ye=O(q):xe=!0);const Ce=be.map(e=>{if(!c.isValidElement(e))return null;let t;if(S){if(!Array.isArray(q))throw new Error(formatMuiErrorMessage(2));t=q.some(t=>areEqualValues(t,e.props.value)),t&&xe&&Se.push(e.props.children)}else t=areEqualValues(q,e.props.value),t&&xe&&(ve=e.props.children);return t&&(we=!0),c.cloneElement(e,{"aria-selected":t?"true":"false",onMouseDown:t=>{X.current=!0,e.props.onMouseDown?.(t)},onPointerDown:t=>{X.current=!0,e.props.onPointerDown?.(t)},onClick:handleItemClick(e),onMouseUp:handleItemMouseUp(e,t),onKeyUp:t=>{" "===t.key&&t.preventDefault(),e.props.onKeyUp&&e.props.onKeyUp(t)},role:"option",selected:t,value:void 0,"data-value":e.props.value})});Is(()=>{Q.current=we},[we]),xe&&(ye=S?0===Se.length?null:Se.reduce((e,t,n)=>(e.push(t),n<Se.length-1&&e.push(", "),e),[]):ve);let ke,Ee=oe;!i&&ae&&re&&(Ee=de.clientWidth),ke=void 0!==N?N:p?null:0;const _e=I.id||(x?`mui-component-select-${x}`:void 0),Pe={...e,variant:B,value:q,open:pe,error:g},Te=useUtilityClasses$16(Pe),Ae="function"==typeof v.slotProps?.paper?v.slotProps.paper(Pe):v.slotProps?.paper,Re=js(Ae?.ref,Y),Me="function"==typeof v.slotProps?.list?v.slotProps.list(Pe):v.slotProps?.list,De=useId(),Oe=useId();return(0,Oa.jsxs)(c.Fragment,{children:[(0,Oa.jsx)(Vd,{as:"div",ref:ue,tabIndex:ke,role:"combobox","aria-controls":pe?De:void 0,"aria-disabled":p?"true":void 0,"aria-expanded":pe?"true":"false","aria-haspopup":"listbox","aria-label":a,"aria-labelledby":y,"aria-describedby":n,"aria-required":$?"true":void 0,"aria-invalid":g?"true":void 0,onKeyDown:handleKeyDown,onMouseDown:p||D?null:handleMouseDown,onBlur:handleBlur,onFocus:E,...I,ownerState:Pe,className:clsx(I.className,Te.select,l),id:_e,children:isEmpty(ye)?jd||(jd=(0,Oa.jsx)("span",{className:"notranslate","aria-hidden":!0,children:""})):ye}),(0,Oa.jsx)(Wd,{"aria-invalid":g,value:Array.isArray(q)?q.join(","):q,name:x,ref:W,"aria-hidden":!0,onChange:handleChange,tabIndex:-1,disabled:p,className:Te.nativeInput,autoFocus:o,required:$,...F,id:F.id??Oe,ownerState:Pe}),(0,Oa.jsx)(Hd,{as:h,className:Te.icon,ownerState:Pe}),(0,Oa.jsx)(ud,{value:se,children:(0,Oa.jsx)(xd,{id:`menu-${x||""}`,anchorEl:de,open:pe,onClose:handleClose,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},...v,slotProps:{...v.slotProps,list:{"aria-labelledby":y,role:"listbox","aria-multiselectable":S?"true":void 0,disableListWrap:!0,id:De,...Me},paper:{...Ae,ref:Re,style:{minWidth:Ee,...Ae?.style}}},children:Ce})})]})}),useUtilityClasses$15=e=>{const{classes:t}=e,n=composeClasses({root:["root"]},getSelectUtilityClasses,t);return{...t,...n}},Yd={name:"MuiSelect",slot:"Root",shouldForwardProp:e=>rootShouldForwardProp(e)&&"variant"!==e},Kd=Ss(Zu,Yd)(""),Qd=Ss(zd,Yd)(""),Zd=Ss(Ru,Yd)(""),Xd=c.forwardRef(function Select(e,t){const n=useDefaultProps({name:"MuiSelect",props:e}),{autoWidth:a=!1,children:o,classes:i={},className:s,defaultOpen:l=!1,displayEmpty:u=!1,IconComponent:d=kc,id:p,input:m,inputProps:g,label:h,labelId:b,MenuProps:y,multiple:v=!1,native:S=!1,onClose:x,onOpen:w,open:C,renderValue:k,SelectDisplayProps:E,variant:P="outlined",...T}=n,R=S?Md:Gd,[M]=useFormControlState({props:n,states:["variant","error"]}),D=M.variant||P,O={...n,variant:D,classes:i},$=useUtilityClasses$15(O),{root:I,...N}=$,L=m||{standard:(0,Oa.jsx)(Kd,{ownerState:O}),outlined:(0,Oa.jsx)(Qd,{label:h,ownerState:O}),filled:(0,Oa.jsx)(Zd,{ownerState:O})}[D],j=js(t,getReactElementRef(L));return(0,Oa.jsx)(c.Fragment,{children:c.cloneElement(L,{inputComponent:R,inputProps:{children:o,error:M.error,IconComponent:d,variant:D,type:void 0,multiple:v,...S?{id:p}:{autoWidth:a,defaultOpen:l,displayEmpty:u,labelId:b,MenuProps:y,onClose:x,onOpen:w,open:C,renderValue:k,SelectDisplayProps:{id:p,...E}},...g,classes:g?deepmerge(N,g.classes):N,...m?m.props.inputProps:{}},...(v&&S||u)&&"outlined"===D?{notched:!0}:{},ref:j,className:clsx(L.props.className,s,$.root),...!m&&{variant:D},...T})})});function areArraysEqual(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,a)=>n(e,t[a]))}Xd.muiName="Select";var Jd=2,ep=[],tp={};function getNewValue(e,t,n,a,o){return 1===n?Math.min(e+t,o):Math.max(e-t,a)}function asc(e,t){return e-t}function findClosest(e,t,n=-1){const{index:a}=e.reduce((e,n,a)=>{const o=Math.abs(t-n);return null==e||o<=e.distance?{distance:o,index:a}:e},null)??tp;return null==a?a:n>=0&&e[n]===e[a]?n:a}function trackFinger(e,t){if(null!=t.current&&e.changedTouches){const n=e;for(let e=0;e<n.changedTouches.length;e+=1){const a=n.changedTouches[e];if(a.identifier===t.current)return{x:a.clientX,y:a.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function valueToPercent(e,t,n){return 100*(e-t)/(n-t)}function percentToValue(e,t,n){return(n-t)*e+t}function getDecimalPrecision(e){if(Math.abs(e)<1){const t=e.toExponential().split("e-"),n=t[0].split(".")[1];return(n?n.length:0)+parseInt(t[1],10)}const t=e.toString().split(".")[1];return t?t.length:0}function roundValueToStep(e,t,n){const a=Math.round((e-n)/t)*t+n;return Number(a.toFixed(getDecimalPrecision(t)))}function setValueIndex(e,t,n){const a=e.slice();return a[n]=t,a.sort(asc)}function focusThumb(e,t,n,a){const o=Ds(ownerDocument(e.current));if(!au(e.current,o)||Number(o?.getAttribute("data-index"))!==t){const n=e.current?.querySelector(`[type="range"][data-index="${t}"]`);null!=n&&(null==a?n.focus({preventScroll:!0}):n.focus({preventScroll:!0,focusVisible:a}))}n&&n(t)}function areValuesEqual(e,t){return"number"==typeof e&&"number"==typeof t?e===t:"object"==typeof e&&"object"==typeof t&&areArraysEqual(e,t)}var rp={horizontal:{offset:e=>({left:`${e}%`}),leap:e=>({width:`${e}%`})},"horizontal-reverse":{offset:e=>({right:`${e}%`}),leap:e=>({width:`${e}%`})},vertical:{offset:e=>({bottom:`${e}%`}),leap:e=>({height:`${e}%`})}},Identity$1=e=>e;function useSlider(e){const{"aria-labelledby":t,defaultValue:n,disabled:a=!1,disableSwap:o=!1,isRtl:i=!1,marks:s=!1,max:l=100,min:u=0,name:d,onChange:p,onChangeCommitted:m,orientation:g="horizontal",rootRef:h,scale:b=Identity$1,step:y=1,shiftStep:v=10,tabIndex:S,value:x}=e,w=c.useRef(void 0),C=c.useRef(null),[k,E]=c.useState(-1),[P,T]=c.useState(-1),[R,M]=c.useState(!1),D=c.useRef(0),O=c.useRef(-1),$=c.useRef(!1),I=c.useRef(-1),N=useEventCallback(()=>{null!=C.current&&(cancelAnimationFrame(C.current),C.current=null)}),L=c.useRef(null),[j,B]=useControlled({controlled:x,default:n??u,name:"Slider"}),F=useEventCallback((e,t,n)=>{const a="nativeEvent"in e?e.nativeEvent:e,o=new a.constructor(a.type,a);Object.defineProperty(o,"target",{writable:!0,value:{value:t,name:d}}),L.current=t,p?.(o,t,n)}),q=Array.isArray(j),U=c.useMemo(()=>{if("number"==typeof j)return[clamp(j,u,l)];if(null==j)return[u];const e=j.slice().sort(asc);for(let t=0;t<e.length;t+=1){const n=e[t];e[t]=null==n?u:clamp(n,u,l)}return e},[j,u,l]),V=c.useMemo(()=>{if(!0===s&&null!=y){const e=new Array(Math.floor((l-u)/y)+1);for(let t=0;t<e.length;t+=1)e[t]={value:u+y*t};return e}return Array.isArray(s)?s:ep},[s,y,u,l]),H=c.useMemo(()=>{const e=new Array(V.length);for(let t=0;t<V.length;t+=1)e[t]=V[t].value;return e},[V]),[W,G]=c.useState(-1),Y=c.useRef(null),K=useForkRef(h,Y),createHandleHiddenInputFocus=e=>t=>{const n=Number(t.currentTarget.getAttribute("data-index"));isFocusVisible(t.target)&&G(n),T(n),e?.onFocus?.(t)},createHandleHiddenInputBlur=e=>t=>{isFocusVisible(t.target)||G(-1),T(-1),e?.onBlur?.(t)},changeValue=(e,t)=>{const n=Number(e.currentTarget.getAttribute("data-index")),a=U[n],i=H.indexOf(a);let s=t;if(V&&null==y){const e=H[H.length-1];s=s>=e?e:s<=H[0]?H[0]:s<a?H[i-1]:H[i+1]}if(s=clamp(s,u,l),q){o&&(s=clamp(s,U[n-1]||-1/0,U[n+1]||1/0));const e=s;s=setValueIndex(U,s,n);let t=n;o||(t=s.indexOf(e)),focusThumb(Y,t)}B(s),G(n),p&&!areValuesEqual(s,j)&&F(e,s,n),m&&m(e,L.current??s)},createHandleHiddenInputKeyDown=e=>t=>{if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","PageUp","PageDown","Home","End"].includes(t.key)){t.preventDefault();const e=U[Number(t.currentTarget.getAttribute("data-index"))];let n=null;if(null!=y){const a=t.shiftKey?v:y;switch(t.key){case"ArrowUp":n=getNewValue(e,a,1,u,l);break;case"ArrowRight":n=getNewValue(e,a,i?-1:1,u,l);break;case"ArrowDown":n=getNewValue(e,a,-1,u,l);break;case"ArrowLeft":n=getNewValue(e,a,i?1:-1,u,l);break;case"PageUp":n=getNewValue(e,v,1,u,l);break;case"PageDown":n=getNewValue(e,v,-1,u,l);break;case"Home":n=u;break;case"End":n=l}}else if(V){const a=H[H.length-1],o=H.indexOf(e),s=[i?"ArrowLeft":"ArrowRight","ArrowUp","PageUp","End"];[i?"ArrowRight":"ArrowLeft","ArrowDown","PageDown","Home"].includes(t.key)?n=0===o?H[0]:H[o-1]:s.includes(t.key)&&(n=o===H.length-1?a:H[o+1])}null!=n&&changeValue(t,n)}e?.onKeyDown?.(t)};Gi(()=>{const e=Ds(ownerDocument(Y.current));a&&au(Y.current,e)&&null!=e&&"blur"in e&&e.blur()},[a]),a&&-1!==k&&E(-1),a&&-1!==W&&G(-1);const createHandleHiddenInputChange=e=>t=>{e.onChange?.(t),changeValue(t,t.currentTarget.valueAsNumber)},Q=c.useRef(void 0);let Z=g;i&&"horizontal"===g&&(Z+="-reverse");const getValueAtFinger=e=>{const{current:t}=Y;if(!t)return null;const{width:n,height:a,bottom:i,left:s}=t.getBoundingClientRect();let c,d;c=Z.startsWith("vertical")?(i-e.y)/a:(e.x-s)/n,Z.includes("-reverse")&&(c=1-c),d=percentToValue(c,u,l),d=y?roundValueToStep(d,y,u):H[findClosest(H,d)],d=clamp(d,u,l);let p=0;if(q){const e=-1!==Q.current;p=e?Q.current:findClosest(U,d,O.current),o&&(d=clamp(d,U[p-1]||-1/0,U[p+1]||1/0));const t=d;d=setValueIndex(U,d,p),o&&e||(p=d.indexOf(t),Q.current=p)}return{newValue:d,activeIndex:p}},X=useEventCallback(e=>{if("pointerId"in e&&e.pointerId!==I.current)return;const t=trackFinger(e,w);if(!t)return;if(D.current+=1,"pointermove"===e.type&&0===e.buttons)return void J(e);const n=getValueAtFinger(t);n&&(focusThumb(Y,n.activeIndex,E,!1),O.current=n.activeIndex,B(n.newValue),!R&&D.current>Jd&&M(!0),p&&!areValuesEqual(n.newValue,j)&&F(e,n.newValue,n.activeIndex))}),J=useEventCallback(e=>{if("pointerId"in e&&e.pointerId!==I.current)return;const t=trackFinger(e,w);if(M(!1),!t)return;const n=getValueAtFinger(t);E(-1),"touchend"===e.type&&T(-1),n&&m&&m(e,L.current??n.newValue),"pointerType"in e&&Y.current?.hasPointerCapture(e.pointerId)&&Y.current.releasePointerCapture(e.pointerId),w.current=void 0,I.current=-1,te()}),ee=useEventCallback(e=>{if(a)return;if($.current){$.current=!1;const t=e.changedTouches[0];return void(null!=t&&(w.current=t.identifier))}const t=e.changedTouches[0];null!=t&&(w.current=t.identifier);const n=trackFinger(e,w);if(!1!==n){Q.current=-1;const t=getValueAtFinger(n);t&&(focusThumb(Y,t.activeIndex,E,!1),O.current=t.activeIndex,B(t.newValue),p&&!areValuesEqual(t.newValue,j)&&F(e,t.newValue,t.activeIndex))}D.current=0;const o=ownerDocument(Y.current);o.addEventListener("touchmove",X,{passive:!0}),o.addEventListener("touchend",J,{passive:!0})}),te=c.useCallback(()=>{const e=ownerDocument(Y.current);e.removeEventListener("pointermove",X),e.removeEventListener("pointerup",J),e.removeEventListener("touchmove",X),e.removeEventListener("touchend",J)},[J,X]);c.useEffect(()=>{const e=Y.current;if(e)return e.addEventListener("touchstart",ee,{passive:!0}),()=>{e.removeEventListener("touchstart",ee),N(),te()}},[te,ee,N]),c.useEffect(()=>{a&&(te(),N())},[a,te,N]);const createHandlePointerDown=e=>t=>{if(e.onPointerDown?.(t),"touch"===t.pointerType&&($.current=!0),a||t.defaultPrevented||0!==t.button)return;const n=trackFinger(t,w);if(!1!==n){Q.current=-1;const e=getValueAtFinger(n);if(e){const n=Y.current?.querySelector(`input[type="range"][data-index="${e.activeIndex}"]`),a=ownerDocument(Y.current),o=null!=n&&n===Ds(a);E(e.activeIndex),O.current=e.activeIndex,o?t.preventDefault():(N(),C.current=requestAnimationFrame(()=>{C.current=null,focusThumb(Y,e.activeIndex,void 0,!1)})),B(e.newValue),p&&!areValuesEqual(e.newValue,j)&&F(t,e.newValue,e.activeIndex)}}D.current=0,I.current=t.pointerId;const o=ownerDocument(Y.current);try{t.currentTarget.setPointerCapture(t.pointerId)}catch{}o.addEventListener("pointermove",X,{passive:!0}),o.addEventListener("pointerup",J)},re=valueToPercent(q?U[0]:u,u,l),ne=valueToPercent(U[U.length-1],u,l)-re,createHandleMouseOver=e=>t=>{e.onMouseOver?.(t),T(Number(t.currentTarget.getAttribute("data-index")))},createHandleMouseLeave=e=>t=>{e.onMouseLeave?.(t),T(-1)},getThumbStyle=e=>{let t;return q?k===e?t=2:O.current===e&&(t=1):k===e&&(t=1),{pointerEvents:-1!==k&&k!==e?"none":void 0,zIndex:t}};let ae;"vertical"===g&&(ae=i?"vertical-rl":"vertical-lr");return{active:k,axis:Z,axisProps:rp,dragging:R,focusedThumbIndex:W,getHiddenInputProps:(n=tp)=>{const o=extractEventHandlers(n),s={onChange:createHandleHiddenInputChange(o),onFocus:createHandleHiddenInputFocus(o),onBlur:createHandleHiddenInputBlur(o),onKeyDown:createHandleHiddenInputKeyDown(o)},c={...o,...s};return{tabIndex:S,"aria-labelledby":t,"aria-orientation":g,"aria-valuemax":b(l),"aria-valuemin":b(u),name:d,type:"range",min:e.min,max:e.max,step:null===e.step&&e.marks?"any":e.step??void 0,disabled:a,...n,...c,style:{...Ld,direction:i?"rtl":"ltr",width:"100%",height:"100%",writingMode:ae}}},getRootProps:(e=tp)=>{const t=extractEventHandlers(e),n={onPointerDown:createHandlePointerDown(t)},a={...t,...n};return{...e,ref:K,...a}},getThumbProps:(e=tp)=>{const t=extractEventHandlers(e),n={onMouseOver:createHandleMouseOver(t),onMouseLeave:createHandleMouseLeave(t)};return{...e,...t,...n}},marks:V,open:P,range:q,rootRef:K,trackLeap:ne,trackOffset:re,values:U,getThumbStyle}}function getSliderUtilityClass(e){return generateUtilityClass("MuiSlider",e)}var np=generateUtilityClasses("MuiSlider",["root","active","colorPrimary","colorSecondary","colorError","colorInfo","colorSuccess","colorWarning","disabled","dragging","focusVisible","mark","markActive","marked","markLabel","markLabelActive","rail","sizeSmall","thumb","track","trackInverted","trackFalse","valueLabel","valueLabelOpen","valueLabelCircle","valueLabelLabel","vertical"]),useValueLabelClasses=e=>{const{open:t}=e;return{offset:clsx(t&&np.valueLabelOpen),circle:np.valueLabelCircle,label:np.valueLabelLabel}};function SliderValueLabel$1(e){const{children:t,className:n,value:a}=e,o=useValueLabelClasses(e);return t?c.cloneElement(t,{className:t.props.className},(0,Oa.jsxs)(c.Fragment,{children:[t.props.children,(0,Oa.jsx)("span",{className:clsx(o.offset,n),"aria-hidden":!0,children:(0,Oa.jsx)("span",{className:o.circle,children:(0,Oa.jsx)("span",{className:o.label,children:a})})})]})):null}function Identity(e){return e}var ap=Ss("span",{name:"MuiSlider",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`color${_s(n.color)}`],"medium"!==n.size&&t[`size${_s(n.size)}`],n.marked&&t.marked,"vertical"===n.orientation&&t.vertical,"inverted"===n.track&&t.trackInverted,!1===n.track&&t.trackFalse]}})(Ps(({theme:e})=>({borderRadius:12,boxSizing:"content-box",display:"inline-block",position:"relative",cursor:"pointer",touchAction:"none",WebkitTapHighlightColor:"transparent","@media print":{colorAdjust:"exact"},[`&.${np.disabled}`]:{pointerEvents:"none",cursor:"default",color:(e.vars||e).palette.grey[400]},[`&.${np.dragging}`]:{[`& .${np.thumb}, & .${np.track}`]:{transition:"none"}},variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),{props:{orientation:"horizontal"},style:{height:4,width:"100%",padding:"13px 0","@media (pointer: coarse)":{padding:"20px 0"}}},{props:{orientation:"horizontal",size:"small"},style:{height:2}},{props:{orientation:"horizontal",marked:!0},style:{marginBottom:20}},{props:{orientation:"vertical"},style:{height:"100%",width:4,padding:"0 13px","@media (pointer: coarse)":{padding:"0 20px"}}},{props:{orientation:"vertical",size:"small"},style:{width:2}},{props:{orientation:"vertical",marked:!0},style:{marginRight:44}}]}))),op=Ss("span",{name:"MuiSlider",slot:"Rail"})({display:"block",position:"absolute",borderRadius:"inherit",backgroundColor:"currentColor",opacity:.38,"@media (forced-colors: active)":{border:"1px solid transparent",boxSizing:"border-box"},variants:[{props:{orientation:"horizontal"},style:{width:"100%",height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{height:"100%",width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:"inverted"},style:{opacity:1}}]}),ip=Ss("span",{name:"MuiSlider",slot:"Track"})(Ps(({theme:e})=>({display:"block",position:"absolute",borderRadius:"inherit",border:"1px solid currentColor",backgroundColor:"currentColor",transition:e.transitions.create(["left","width","bottom","height"],{duration:e.transitions.duration.shortest}),variants:[{props:{size:"small"},style:{"@media (forced-colors: none)":{border:"none"}}},{props:{orientation:"horizontal"},style:{height:"inherit",top:"50%",transform:"translateY(-50%)"}},{props:{orientation:"vertical"},style:{width:"inherit",left:"50%",transform:"translateX(-50%)"}},{props:{track:!1},style:{display:"none"}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t,track:"inverted"},style:{...e.vars?{backgroundColor:e.vars.palette.Slider[`${t}Track`],borderColor:e.vars.palette.Slider[`${t}Track`]}:{backgroundColor:e.lighten(e.palette[t].main,.62),borderColor:e.lighten(e.palette[t].main,.62),...e.applyStyles("dark",{backgroundColor:e.darken(e.palette[t].main,.5)}),...e.applyStyles("dark",{borderColor:e.darken(e.palette[t].main,.5)})}}}))]}))),sp=Ss("span",{name:"MuiSlider",slot:"Thumb"})(Ps(({theme:e})=>({position:"absolute",width:20,height:20,boxSizing:"border-box",borderRadius:"50%",outline:0,backgroundColor:"currentColor",display:"flex",alignItems:"center",justifyContent:"center",transition:e.transitions.create(["box-shadow","left","bottom"],{duration:e.transitions.duration.shortest}),"@media (forced-colors: active)":{border:"1px solid ButtonBorder"},"&::before":{position:"absolute",content:'""',borderRadius:"inherit",width:"100%",height:"100%",boxShadow:(e.vars||e).shadows[2]},"&::after":{position:"absolute",content:'""',borderRadius:"50%",width:42,height:42,top:"50%",left:"50%",transform:"translate(-50%, -50%)"},[`&.${np.disabled}`]:{"&:hover":{boxShadow:"none"}},variants:[{props:{size:"small"},style:{width:12,height:12,"&::before":{boxShadow:"none"}}},{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-50%, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 50%)"}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&:hover, &.${np.focusVisible}`]:{boxShadow:`0px 0px 0px 8px ${e.alpha((e.vars||e).palette[t].main,.16)}`,"@media (hover: none)":{boxShadow:"none"}},[`&.${np.active}`]:{boxShadow:`0px 0px 0px 14px ${e.alpha((e.vars||e).palette[t].main,.16)}`}}}))]}))),lp=Ss(SliderValueLabel$1,{name:"MuiSlider",slot:"ValueLabel"})(Ps(({theme:e})=>({zIndex:1,whiteSpace:"nowrap",...e.typography.body2,fontWeight:500,transition:e.transitions.create(["transform"],{duration:e.transitions.duration.shortest}),position:"absolute",backgroundColor:(e.vars||e).palette.grey[600],borderRadius:2,color:(e.vars||e).palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",padding:"0.25rem 0.75rem",variants:[{props:{orientation:"horizontal"},style:{transform:"translateY(-100%) scale(0)",top:"-10px",transformOrigin:"bottom center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, 50%) rotate(45deg)",backgroundColor:"inherit",bottom:0,left:"50%"},[`&.${np.valueLabelOpen}`]:{transform:"translateY(-100%) scale(1)"}}},{props:{orientation:"vertical"},style:{transform:"translateY(-50%) scale(0)",right:"30px",top:"50%",transformOrigin:"right center","&::before":{position:"absolute",content:'""',width:8,height:8,transform:"translate(-50%, -50%) rotate(45deg)",backgroundColor:"inherit",right:-8,top:"50%"},[`&.${np.valueLabelOpen}`]:{transform:"translateY(-50%) scale(1)"}}},{props:{size:"small"},style:{fontSize:e.typography.pxToRem(12),padding:"0.25rem 0.5rem"}},{props:{orientation:"vertical",size:"small"},style:{right:"20px"}}]}))),cp=Ss("span",{name:"MuiSlider",slot:"Mark",shouldForwardProp:e=>slotShouldForwardProp(e)&&"markActive"!==e,overridesResolver:(e,t)=>{const{markActive:n}=e;return[t.mark,n&&t.markActive]}})(Ps(({theme:e})=>({position:"absolute",width:2,height:2,borderRadius:1,backgroundColor:"currentColor",variants:[{props:{orientation:"horizontal"},style:{top:"50%",transform:"translate(-1px, -50%)"}},{props:{orientation:"vertical"},style:{left:"50%",transform:"translate(-50%, 1px)"}},{props:{markActive:!0},style:{backgroundColor:(e.vars||e).palette.background.paper,opacity:.8}}]}))),dp=Ss("span",{name:"MuiSlider",slot:"MarkLabel",shouldForwardProp:e=>slotShouldForwardProp(e)&&"markLabelActive"!==e})(Ps(({theme:e})=>({...e.typography.body2,color:(e.vars||e).palette.text.secondary,position:"absolute",whiteSpace:"nowrap",variants:[{props:{orientation:"horizontal"},style:{top:30,transform:"translateX(-50%)","@media (pointer: coarse)":{top:40}}},{props:{orientation:"vertical"},style:{left:36,transform:"translateY(50%)","@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(e.vars||e).palette.text.primary}}]}))),useUtilityClasses$14=e=>{const{disabled:t,dragging:n,marked:a,orientation:o,track:i,classes:s,color:l,size:c}=e;return composeClasses({root:["root",t&&"disabled",n&&"dragging",a&&"marked","vertical"===o&&"vertical","inverted"===i&&"trackInverted",!1===i&&"trackFalse",l&&`color${_s(l)}`,c&&`size${_s(c)}`],rail:["rail"],track:["track"],mark:["mark"],markActive:["markActive"],markLabel:["markLabel"],markLabelActive:["markLabelActive"],valueLabel:["valueLabel"],thumb:["thumb",t&&"disabled"],active:["active"],disabled:["disabled"],focusVisible:["focusVisible"]},getSliderUtilityClass,s)},Forward=({children:e})=>e,pp=c.forwardRef(function Slider(e,t){const n=useDefaultProps({props:e,name:"MuiSlider"}),a=useRtl(),{"aria-label":o,"aria-valuetext":i,"aria-labelledby":s,color:l="primary",classes:u,className:d,disableSwap:p=!1,disabled:m=!1,getAriaLabel:g,getAriaValueText:h,marks:b=!1,max:y=100,min:v=0,name:S,onChange:x,onChangeCommitted:w,orientation:C="horizontal",shiftStep:k=10,size:E="medium",step:P=1,scale:T=Identity,slotProps:R={},slots:M={},tabIndex:D,track:O="normal",value:$,valueLabelDisplay:I="off",valueLabelFormat:N=Identity,...L}=n,j={...n,isRtl:a,max:y,min:v,classes:u,disabled:m,disableSwap:p,orientation:C,marks:b,color:l,size:E,step:P,shiftStep:k,scale:T,track:O,valueLabelDisplay:I,valueLabelFormat:N},{axisProps:B,getRootProps:F,getHiddenInputProps:q,getThumbProps:U,open:V,active:H,axis:W,focusedThumbIndex:G,range:Y,dragging:K,marks:Q,values:Z,trackOffset:X,trackLeap:J,getThumbStyle:ee}=useSlider({...j,rootRef:t});j.marked=Q.length>0&&Q.some(e=>e.label),j.dragging=K,j.focusedThumbIndex=G;const te=useUtilityClasses$14(j),re={slots:M,slotProps:R},[ne,ae]=useSlot("root",{elementType:ap,getSlotProps:F,externalForwardedProps:{...re,...L},ownerState:j,className:[te.root,d]}),[oe,ie]=useSlot("rail",{elementType:op,externalForwardedProps:re,ownerState:j,className:te.rail}),[se,le]=useSlot("track",{elementType:ip,externalForwardedProps:re,additionalProps:{style:{...B[W].offset(X),...B[W].leap(J)}},ownerState:j,className:te.track}),[ce,ue]=useSlot("thumb",{elementType:sp,getSlotProps:U,externalForwardedProps:re,ownerState:j,className:te.thumb}),[de,pe]=useSlot("valueLabel",{elementType:lp,externalForwardedProps:re,ownerState:j,className:te.valueLabel}),[me,fe]=useSlot("mark",{elementType:cp,externalForwardedProps:re,ownerState:j,className:te.mark}),[ge,he]=useSlot("markLabel",{elementType:dp,externalForwardedProps:re,ownerState:j,className:te.markLabel}),[be,ye]=useSlot("input",{elementType:"input",getSlotProps:q,externalForwardedProps:re,ownerState:j});return(0,Oa.jsxs)(ne,{...ae,children:[(0,Oa.jsx)(oe,{...ie}),(0,Oa.jsx)(se,{...le}),Q.filter(e=>e.value>=v&&e.value<=y).map((e,t)=>{const n=valueToPercent(e.value,v,y),a=B[W].offset(n);let o;return o=!1===O?Z.includes(e.value):"normal"===O&&(Y?e.value>=Z[0]&&e.value<=Z[Z.length-1]:e.value<=Z[0])||"inverted"===O&&(Y?e.value<=Z[0]||e.value>=Z[Z.length-1]:e.value>=Z[0]),(0,Oa.jsxs)(c.Fragment,{children:[(0,Oa.jsx)(me,{"data-index":t,...fe,...!isHostComponent(me)&&{markActive:o},style:{...a,...fe.style},className:clsx(fe.className,o&&te.markActive)}),null!=e.label?(0,Oa.jsx)(ge,{"aria-hidden":!0,"data-index":t,...he,...!isHostComponent(ge)&&{markLabelActive:o},style:{...a,...he.style},className:clsx(te.markLabel,he.className,o&&te.markLabelActive),children:e.label}):null]},t)}),Z.map((e,t)=>{const n=valueToPercent(e,v,y),a=B[W].offset(n),l="off"===I?Forward:de;return(0,Oa.jsx)(l,{...!isHostComponent(l)&&{valueLabelFormat:N,valueLabelDisplay:I,value:"function"==typeof N?N(T(e),t):N,index:t,open:V===t||H===t||"on"===I,disabled:m},...pe,children:(0,Oa.jsx)(ce,{"data-index":t,...ue,className:clsx(te.thumb,ue.className,H===t&&te.active,G===t&&te.focusVisible),style:{...a,...ee(t),...ue.style},children:(0,Oa.jsx)(be,{"data-index":t,"aria-label":g?g(t):o,"aria-valuenow":T(e),"aria-labelledby":s,"aria-valuetext":h?h(T(e),t):i,value:Z[t],...ye})})},t)})]})});function getTooltipUtilityClass(e){return generateUtilityClass("MuiTooltip",e)}var mp=generateUtilityClasses("MuiTooltip",["popper","popperInteractive","popperArrow","popperClose","tooltip","tooltipArrow","touch","tooltipPlacementLeft","tooltipPlacementRight","tooltipPlacementTop","tooltipPlacementBottom","arrow"]);function round(e){return Math.round(1e5*e)/1e5}var useUtilityClasses$13=e=>{const{classes:t,disableInteractive:n,arrow:a,touch:o,placement:i}=e;return composeClasses({popper:["popper",!n&&"popperInteractive",a&&"popperArrow"],tooltip:["tooltip",a&&"tooltipArrow",o&&"touch",`tooltipPlacement${_s(i.split("-")[0])}`],arrow:["arrow"]},getTooltipUtilityClass,t)},fp=Ss(ac,{name:"MuiTooltip",slot:"Popper",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.popper,!n.disableInteractive&&t.popperInteractive,n.arrow&&t.popperArrow,!n.open&&t.popperClose]}})(Ps(({theme:e})=>({zIndex:(e.vars||e).zIndex.tooltip,pointerEvents:"none",variants:[{props:({ownerState:e,open:t})=>t&&!e.disableInteractive,style:{pointerEvents:"auto"}},{props:({ownerState:e})=>e.arrow,style:{[`&[data-popper-placement*="bottom"] .${mp.arrow}`]:{top:0,marginTop:"-0.71em","&::before":{transformOrigin:"0 100%"}},[`&[data-popper-placement*="top"] .${mp.arrow}`]:{bottom:0,marginBottom:"-0.71em","&::before":{transformOrigin:"100% 0"}},[`&[data-popper-placement*="right"] .${mp.arrow}`]:{height:"1em",width:"0.71em",insetInlineStart:0,marginInlineStart:"-0.71em","&::before":{transformOrigin:"100% 100%"}},[`&[data-popper-placement*="left"] .${mp.arrow}`]:{height:"1em",width:"0.71em",insetInlineEnd:0,marginInlineEnd:"-0.71em","&::before":{transformOrigin:"0 0"}}}}]}))),gp=Ss("div",{name:"MuiTooltip",slot:"Tooltip",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.tooltip,n.touch&&t.touch,n.arrow&&t.tooltipArrow,t[`tooltipPlacement${_s(n.placement.split("-")[0])}`]]}})(Ps(({theme:e})=>({backgroundColor:e.vars?e.vars.palette.Tooltip.bg:e.alpha(e.palette.grey[700],.92),borderRadius:(e.vars||e).shape.borderRadius,color:(e.vars||e).palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(11),maxWidth:300,margin:2,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium,[`.${mp.popper}[data-popper-placement*="left"] &`]:{transformOrigin:"right center",marginInlineEnd:"14px"},[`.${mp.popper}[data-popper-placement*="right"] &`]:{transformOrigin:"left center",marginInlineStart:"14px"},[`.${mp.popper}[data-popper-placement*="top"] &`]:{transformOrigin:"center bottom",marginBottom:"14px"},[`.${mp.popper}[data-popper-placement*="bottom"] &`]:{transformOrigin:"center top",marginTop:"14px"},variants:[{props:({ownerState:e})=>e.arrow,style:{position:"relative",marginBlock:0}},{props:({ownerState:e})=>e.touch,style:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:`${round(16/14)}em`,fontWeight:e.typography.fontWeightRegular}},{props:({ownerState:e})=>e.touch,style:{[`.${mp.popper}[data-popper-placement*="left"] &`]:{marginInlineEnd:"24px"},[`.${mp.popper}[data-popper-placement*="right"] &`]:{marginInlineStart:"24px"},[`.${mp.popper}[data-popper-placement*="top"] &`]:{marginBottom:"24px"},[`.${mp.popper}[data-popper-placement*="bottom"] &`]:{marginTop:"24px"}}}]}))),hp=Ss("span",{name:"MuiTooltip",slot:"Arrow"})(Ps(({theme:e})=>({overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:e.vars?e.vars.palette.Tooltip.bg:e.alpha(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}}))),bp=!1,yp=new el,vp={x:0,y:0};function composeEventHandler(e,t){return(n,...a)=>{t&&t(n,...a),e(n,...a)}}var Sp=c.forwardRef(function Tooltip(e,t){const n=useDefaultProps({props:e,name:"MuiTooltip"}),{arrow:a=!1,children:o,classes:i,describeChild:s=!1,disableFocusListener:l=!1,disableHoverListener:u=!1,disableInteractive:d=!1,disableTouchListener:p=!1,enterDelay:m=100,enterNextDelay:g=0,enterTouchDelay:h=700,followCursor:b=!1,id:y,leaveDelay:v=0,leaveTouchDelay:S=1500,onClose:x,onOpen:w,open:C,placement:k="bottom",slotProps:E={},slots:P={},title:T,...R}=n,M=c.isValidElement(o)?o:(0,Oa.jsx)("span",{children:o}),D=useTheme(),[O,$]=c.useState(),[I,N]=c.useState(null),L=c.useRef(!1),j=d||b,B=useTimeout(),F=useTimeout(),q=useTimeout(),U=useTimeout(),[V,H]=zs({controlled:C,default:!1,name:"Tooltip",state:"open"});let W=V;const G=Ns(y),Y=c.useRef(),K=Ls(()=>{void 0!==Y.current&&(document.body.style.WebkitUserSelect=Y.current,Y.current=void 0),U.clear()});c.useEffect(()=>K,[K]);const handleOpen=e=>{yp.clear(),bp=!0,H(!0),w&&!W&&w(e)},Q=Ls(e=>{yp.start(800+v,()=>{bp=!1}),H(!1),x&&W&&x(e),B.start(D.transitions.duration.shortest,()=>{L.current=!1})}),handleMouseOver=e=>{L.current&&"touchstart"!==e.type||(O&&O.removeAttribute("title"),F.clear(),q.clear(),m||bp&&g?F.start(bp?g:m,()=>{handleOpen(e)}):handleOpen(e))},handleMouseLeave=e=>{F.clear(),q.start(v,()=>{Q(e)})},[,Z]=c.useState(!1),handleBlur=e=>{const t=e?.target??O;if(!t||t.disabled||!isFocusVisible(t)){Z(!1);const n=e??new Event("blur");!e&&t&&(Object.defineProperty(n,"target",{value:t}),Object.defineProperty(n,"currentTarget",{value:t})),handleMouseLeave(n)}},handleFocus=e=>{if(O||$(e.currentTarget),isFocusVisible(e.target)){const handleNativeBlur=e=>{e.target.disabled&&handleBlur(e),e.target.removeEventListener("blur",handleNativeBlur)};e.target.addEventListener("blur",handleNativeBlur),Z(!0),handleMouseOver(e)}},detectTouchStart=e=>{L.current=!0;const t=M.props;t.onTouchStart&&t.onTouchStart(e)},handleTouchStart=e=>{detectTouchStart(e),q.clear(),B.clear(),K(),Y.current=document.body.style.WebkitUserSelect,document.body.style.WebkitUserSelect="none",U.start(h,()=>{document.body.style.WebkitUserSelect=Y.current,handleMouseOver(e)})},handleTouchEnd=e=>{M.props.onTouchEnd&&M.props.onTouchEnd(e),K(),q.start(S,()=>{Q(e)})};c.useEffect(()=>{if(W)return document.addEventListener("keydown",handleKeyDown),()=>{document.removeEventListener("keydown",handleKeyDown)};function handleKeyDown(e){"Escape"===e.key&&Q(e)}},[Q,W]);const X=js(getReactElementRef(M),$,t);T||0===T||(W=!1);const J=c.useRef(),handleMouseMove=e=>{const t=M.props;t.onMouseMove&&t.onMouseMove(e),vp={x:e.clientX,y:e.clientY},J.current&&J.current.update()},ee={},te="string"==typeof T;s?(ee.title=W||!te||u?null:T,ee["aria-describedby"]=W?G:null):(ee["aria-label"]=te?T:null,ee["aria-labelledby"]=W&&!te?G:null);const re={...ee,...R,...M.props,className:clsx(R.className,M.props.className),onTouchStart:detectTouchStart,ref:X,...b?{onMouseMove:handleMouseMove}:{}},ne={};p||(re.onTouchStart=handleTouchStart,re.onTouchEnd=handleTouchEnd),u||(re.onMouseOver=composeEventHandler(handleMouseOver,re.onMouseOver),re.onMouseLeave=composeEventHandler(handleMouseLeave,re.onMouseLeave),j||(ne.onMouseOver=handleMouseOver,ne.onMouseLeave=handleMouseLeave)),l||(re.onFocus=composeEventHandler(handleFocus,re.onFocus),re.onBlur=composeEventHandler(handleBlur,re.onBlur),j||(ne.onFocus=handleFocus,ne.onBlur=handleBlur));const ae={...n,arrow:a,disableInteractive:j,placement:k,touch:L.current},oe="function"==typeof E.popper?E.popper(ae):E.popper,ie=c.useMemo(()=>{let e=[{name:"arrow",enabled:Boolean(I),options:{element:I,padding:4}}];return oe?.popperOptions?.modifiers&&(e=e.concat(oe.popperOptions.modifiers)),{...oe?.popperOptions,modifiers:e}},[I,oe?.popperOptions]),se=useUtilityClasses$13(ae),le={slots:P,slotProps:{arrow:E.arrow,popper:oe,tooltip:E.tooltip,transition:E.transition}},[ce,ue]=useSlot("popper",{elementType:fp,externalForwardedProps:le,ownerState:ae,className:se.popper}),[de,pe]=useSlot("transition",{elementType:Gu,externalForwardedProps:le,ownerState:ae}),[me,fe]=useSlot("tooltip",{elementType:gp,className:se.tooltip,externalForwardedProps:le,ownerState:ae}),[ge,he]=useSlot("arrow",{elementType:hp,className:se.arrow,externalForwardedProps:le,ownerState:ae,ref:N});return(0,Oa.jsxs)(c.Fragment,{children:[c.cloneElement(M,re),(0,Oa.jsx)(ce,{as:ac,placement:k,anchorEl:b?{getBoundingClientRect:()=>({top:vp.y,left:vp.x,right:vp.x,bottom:vp.y,width:0,height:0})}:O,popperRef:J,open:!!O&&W,id:G,transition:!0,...ne,...ue,popperOptions:ie,children:({TransitionProps:e})=>(0,Oa.jsx)(de,{timeout:D.transitions.duration.shorter,...e,...pe,children:(0,Oa.jsxs)(me,{...fe,children:[T,a?(0,Oa.jsx)(ge,{...he}):null]})})})]})});function getSwitchUtilityClass(e){return generateUtilityClass("MuiSwitch",e)}var xp=generateUtilityClasses("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),useUtilityClasses$12=e=>{const{classes:t,edge:n,size:a,color:o,checked:i,disabled:s}=e,l=composeClasses({root:["root",n&&`edge${_s(n)}`,`size${_s(a)}`],switchBase:["switchBase",`color${_s(o)}`,i&&"checked",s&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},getSwitchUtilityClass,t);return{...t,...l}},wp=Ss("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.edge&&t[`edge${_s(n.edge)}`],t[`size${_s(n.size)}`]]}})({display:"inline-flex",width:58,height:38,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${xp.thumb}`]:{width:16,height:16},[`& .${xp.switchBase}`]:{padding:4,[`&.${xp.checked}`]:{transform:"translateX(16px)"}}}}]}),Cp=Ss(Gc,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.switchBase,{[`& .${xp.input}`]:t.input},"default"!==n.color&&t[`color${_s(n.color)}`]]}})(Ps(({theme:e})=>({position:"absolute",top:0,left:0,zIndex:1,color:e.vars?e.vars.palette.Switch.defaultColor:`${"light"===e.palette.mode?e.palette.common.white:e.palette.grey[300]}`,transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),[`&.${xp.checked}`]:{transform:"translateX(20px)"},[`&.${xp.disabled}`]:{color:e.vars?e.vars.palette.Switch.defaultDisabledColor:`${"light"===e.palette.mode?e.palette.grey[100]:e.palette.grey[600]}`},[`&.${xp.checked} + .${xp.track}`]:{opacity:.5},[`&.${xp.disabled} + .${xp.track}`]:{opacity:e.vars?e.vars.opacity.switchTrackDisabled:""+("light"===e.palette.mode?.12:.2)},[`& .${xp.input}`]:{left:"-100%",width:"300%"}})),Ps(({theme:e})=>({"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.action.active,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(e.palette).filter(createSimplePaletteValueFilter(["light"])).map(([t])=>({props:{color:t},style:{[`&.${xp.checked}`]:{color:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${xp.disabled}`]:{color:e.vars?e.vars.palette.Switch[`${t}DisabledColor`]:`${"light"===e.palette.mode?e.lighten(e.palette[t].main,.62):e.darken(e.palette[t].main,.55)}`}},[`&.${xp.checked} + .${xp.track}`]:{backgroundColor:(e.vars||e).palette[t].main}}}))]}))),kp=Ss("span",{name:"MuiSwitch",slot:"Track"})(Ps(({theme:e})=>({height:"100%",width:"100%",borderRadius:7,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),"@media (forced-colors: active)":{boxSizing:"border-box",border:"1px solid ButtonBorder"},backgroundColor:e.vars?e.vars.palette.common.onBackground:`${"light"===e.palette.mode?e.palette.common.black:e.palette.common.white}`,opacity:e.vars?e.vars.opacity.switchTrack:""+("light"===e.palette.mode?.38:.3)}))),Ep=Ss("span",{name:"MuiSwitch",slot:"Thumb"})(Ps(({theme:e})=>({boxShadow:(e.vars||e).shadows[1],backgroundColor:"currentColor",boxSizing:"border-box",border:"1px solid transparent",width:20,height:20,borderRadius:"50%"}))),_p=c.forwardRef(function Switch(e,t){const n=useDefaultProps({props:e,name:"MuiSwitch"}),{className:a,color:o="primary",edge:i=!1,size:s="medium",sx:l,slots:c={},slotProps:u={},...d}=n,p={...n,color:o,edge:i,size:s},m=useUtilityClasses$12(p),g=u.input,h={slots:c,slotProps:u},[b,y]=useSlot("root",{className:clsx(m.root,a),elementType:wp,externalForwardedProps:h,ownerState:p,additionalProps:{sx:l}}),[v,S]=useSlot("thumb",{className:m.thumb,elementType:Ep,externalForwardedProps:h,ownerState:p}),x=(0,Oa.jsx)(v,{...S}),[w,C]=useSlot("track",{className:m.track,elementType:kp,externalForwardedProps:h,ownerState:p});return(0,Oa.jsxs)(b,{...y,children:[(0,Oa.jsx)(Cp,{type:"checkbox",icon:x,checkedIcon:x,ref:t,ownerState:p,...d,classes:{...m,root:m.switchBase},slots:{...c.switchBase&&{root:c.switchBase},...c.input&&{input:c.input}},slotProps:{...u.switchBase&&{root:"function"==typeof u.switchBase?u.switchBase(p):u.switchBase},input:mergeSlotProps$1("function"==typeof g?g(p):g,{role:"switch"})}}),(0,Oa.jsx)(w,{...C})]})});function getTabUtilityClass(e){return generateUtilityClass("MuiTab",e)}var Pp=generateUtilityClasses("MuiTab",["root","labelIcon","textColorInherit","textColorPrimary","textColorSecondary","selected","disabled","fullWidth","wrapped","icon"]),useUtilityClasses$11=e=>{const{classes:t,textColor:n,fullWidth:a,wrapped:o,icon:i,label:s,selected:l,disabled:c}=e;return composeClasses({root:["root",i&&s&&"labelIcon",`textColor${_s(n)}`,a&&"fullWidth",o&&"wrapped",l&&"selected",c&&"disabled"],icon:["icon"]},getTabUtilityClass,t)},Tp=Ss(gl,{name:"MuiTab",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.label&&n.icon&&t.labelIcon,t[`textColor${_s(n.textColor)}`],n.fullWidth&&t.fullWidth,n.wrapped&&t.wrapped,{[`& .${Pp.icon}`]:t.icon}]}})(Ps(({theme:e})=>({...e.typography.button,maxWidth:360,minWidth:90,position:"relative",minHeight:48,flexShrink:0,padding:"12px 16px",overflow:"hidden",whiteSpace:"normal",textAlign:"center",lineHeight:1.25,variants:[{props:({ownerState:e})=>e.label&&("top"===e.iconPosition||"bottom"===e.iconPosition),style:{flexDirection:"column"}},{props:({ownerState:e})=>e.label&&"top"!==e.iconPosition&&"bottom"!==e.iconPosition,style:{flexDirection:"row"}},{props:({ownerState:e})=>e.icon&&e.label,style:{minHeight:72,paddingTop:9,paddingBottom:9}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"top"===t,style:{[`& > .${Pp.icon}`]:{marginBottom:6}}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"bottom"===t,style:{[`& > .${Pp.icon}`]:{marginTop:6}}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"start"===t,style:{[`& > .${Pp.icon}`]:{marginRight:e.spacing(1)}}},{props:({ownerState:e,iconPosition:t})=>e.icon&&e.label&&"end"===t,style:{[`& > .${Pp.icon}`]:{marginLeft:e.spacing(1)}}},{props:{textColor:"inherit"},style:{color:"inherit",opacity:.6,[`&.${Pp.selected}`]:{opacity:1},[`&.${Pp.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity}}},{props:{textColor:"primary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${Pp.selected}`]:{color:(e.vars||e).palette.primary.main},[`&.${Pp.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:{textColor:"secondary"},style:{color:(e.vars||e).palette.text.secondary,[`&.${Pp.selected}`]:{color:(e.vars||e).palette.secondary.main},[`&.${Pp.disabled}`]:{color:(e.vars||e).palette.text.disabled}}},{props:({ownerState:e})=>e.fullWidth,style:{flexShrink:1,flexGrow:1,flexBasis:0,maxWidth:"none"}},{props:({ownerState:e})=>e.wrapped,style:{fontSize:e.typography.pxToRem(12)}}]}))),Ap=c.forwardRef(function Tab(e,t){const n=useDefaultProps({props:e,name:"MuiTab"}),{className:a,disabled:o=!1,disableFocusRipple:i=!1,fullWidth:s,icon:l,iconPosition:u="top",indicator:d,label:p,onChange:m,onClick:g,onFocus:h,selected:b,selectionFollowsFocus:y,textColor:v="inherit",value:S,wrapped:x=!1,...w}=n,C=useRovingTabIndexContext(),k=useRovingTabIndexItem({id:S,ref:t,disabled:o,selected:b}),E=0===C.getItemMap().size&&b?0:k.tabIndex,P={...n,disabled:o,disableFocusRipple:i,selected:b,icon:!!l,iconPosition:u,label:!!p,fullWidth:s,textColor:v,wrapped:x},T=useUtilityClasses$11(P),R=l&&p&&c.isValidElement(l)?c.cloneElement(l,{className:clsx(T.icon,l.props.className)}):l,handleClick=e=>{!b&&m&&m(e,S),g&&g(e)},handleFocus=e=>{y&&!b&&m&&m(e,S),h&&h(e)};return(0,Oa.jsxs)(Tp,{internalNativeButton:!0,focusRipple:!i,className:clsx(T.root,a),ref:k.ref,role:"tab","aria-selected":b,disabled:o,onClick:handleClick,onFocus:handleFocus,tabIndex:E,ownerState:P,...w,children:["top"===u||"start"===u?(0,Oa.jsxs)(c.Fragment,{children:[R,p]}):(0,Oa.jsxs)(c.Fragment,{children:[p,R]}),d]})}),Rp=c.createContext();function getTableUtilityClass(e){return generateUtilityClass("MuiTable",e)}generateUtilityClasses("MuiTable",["root","stickyHeader"]);var useUtilityClasses$10=e=>{const{classes:t,stickyHeader:n}=e;return composeClasses({root:["root",n&&"stickyHeader"]},getTableUtilityClass,t)},Mp=Ss("table",{name:"MuiTable",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.stickyHeader&&t.stickyHeader]}})(Ps(({theme:e})=>({display:"table",width:"100%",borderCollapse:"collapse",borderSpacing:0,"& caption":{...e.typography.body2,padding:e.spacing(2),color:(e.vars||e).palette.text.secondary,textAlign:"left",captionSide:"bottom"},variants:[{props:({ownerState:e})=>e.stickyHeader,style:{borderCollapse:"separate"}}]}))),Dp="table",Op=c.forwardRef(function Table(e,t){const n=useDefaultProps({props:e,name:"MuiTable"}),{className:a,component:o=Dp,padding:i="normal",size:s="medium",stickyHeader:l=!1,...u}=n,d={...n,component:o,padding:i,size:s,stickyHeader:l},p=useUtilityClasses$10(d),m=c.useMemo(()=>({padding:i,size:s,stickyHeader:l}),[i,s,l]);return(0,Oa.jsx)(Rp.Provider,{value:m,children:(0,Oa.jsx)(Mp,{as:o,role:o===Dp?null:"table",ref:t,className:clsx(p.root,a),ownerState:d,...u})})}),$p=c.createContext();function getTableBodyUtilityClass(e){return generateUtilityClass("MuiTableBody",e)}generateUtilityClasses("MuiTableBody",["root"]);var useUtilityClasses$9=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTableBodyUtilityClass,t)},Ip=Ss("tbody",{name:"MuiTableBody",slot:"Root"})({display:"table-row-group"}),Np={variant:"body"},zp="tbody",Lp=c.forwardRef(function TableBody(e,t){const n=useDefaultProps({props:e,name:"MuiTableBody"}),{className:a,component:o=zp,...i}=n,s={...n,component:o},l=useUtilityClasses$9(s);return(0,Oa.jsx)($p.Provider,{value:Np,children:(0,Oa.jsx)(Ip,{className:clsx(l.root,a),as:o,ref:t,role:o===zp?null:"rowgroup",ownerState:s,...i})})});function getTableCellUtilityClass(e){return generateUtilityClass("MuiTableCell",e)}var jp=generateUtilityClasses("MuiTableCell",["root","head","body","footer","sizeSmall","sizeMedium","paddingCheckbox","paddingNone","alignLeft","alignCenter","alignRight","alignJustify","stickyHeader"]),useUtilityClasses$8=e=>{const{classes:t,variant:n,align:a,padding:o,size:i,stickyHeader:s}=e;return composeClasses({root:["root",n,s&&"stickyHeader","inherit"!==a&&`align${_s(a)}`,"normal"!==o&&`padding${_s(o)}`,`size${_s(i)}`]},getTableCellUtilityClass,t)},Bp=Ss("td",{name:"MuiTableCell",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[n.variant],t[`size${_s(n.size)}`],"normal"!==n.padding&&t[`padding${_s(n.padding)}`],"inherit"!==n.align&&t[`align${_s(n.align)}`],n.stickyHeader&&t.stickyHeader]}})(Ps(({theme:e})=>({...e.typography.body2,display:"table-cell",verticalAlign:"inherit",borderBottom:e.vars?`1px solid ${e.vars.palette.TableCell.border}`:`1px solid\n ${"light"===e.palette.mode?e.lighten(e.alpha(e.palette.divider,1),.88):e.darken(e.alpha(e.palette.divider,1),.68)}`,textAlign:"left",padding:16,variants:[{props:{variant:"head"},style:{color:(e.vars||e).palette.text.primary,lineHeight:e.typography.pxToRem(24),fontWeight:e.typography.fontWeightMedium}},{props:{variant:"body"},style:{color:(e.vars||e).palette.text.primary}},{props:{variant:"footer"},style:{color:(e.vars||e).palette.text.secondary,lineHeight:e.typography.pxToRem(21),fontSize:e.typography.pxToRem(12)}},{props:{size:"small"},style:{padding:"6px 16px",[`&.${jp.paddingCheckbox}`]:{width:24,padding:"0 12px 0 16px","& > *":{padding:0}}}},{props:{padding:"checkbox"},style:{width:48,padding:"0 0 0 4px"}},{props:{padding:"none"},style:{padding:0}},{props:{align:"left"},style:{textAlign:"left"}},{props:{align:"center"},style:{textAlign:"center"}},{props:{align:"right"},style:{textAlign:"right",flexDirection:"row-reverse"}},{props:{align:"justify"},style:{textAlign:"justify"}},{props:({ownerState:e})=>e.stickyHeader,style:{position:"sticky",top:0,zIndex:2,backgroundColor:(e.vars||e).palette.background.default}}]}))),Fp=c.forwardRef(function TableCell(e,t){const n=useDefaultProps({props:e,name:"MuiTableCell"}),{align:a="inherit",className:o,component:i,padding:s,scope:l,size:u,sortDirection:d,variant:p,...m}=n,g=c.useContext(Rp),h=c.useContext($p),b=h&&"head"===h.variant;let y;y=i||(b?"th":"td");let v=l;"td"===y?v=void 0:!v&&b&&(v="col");const S=p||h&&h.variant,x={...n,align:a,component:y,padding:s||(g&&g.padding?g.padding:"normal"),size:u||(g&&g.size?g.size:"medium"),sortDirection:d,stickyHeader:"head"===S&&g&&g.stickyHeader,variant:S},w=useUtilityClasses$8(x);let C=null;return d&&(C="asc"===d?"ascending":"descending"),(0,Oa.jsx)(Bp,{as:y,ref:t,className:clsx(w.root,o),"aria-sort":C,scope:v,ownerState:x,...m})});function getTableContainerUtilityClass(e){return generateUtilityClass("MuiTableContainer",e)}generateUtilityClasses("MuiTableContainer",["root"]);var useUtilityClasses$7=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTableContainerUtilityClass,t)},qp=Ss("div",{name:"MuiTableContainer",slot:"Root"})({width:"100%",overflowX:"auto"}),Up=c.forwardRef(function TableContainer(e,t){const n=useDefaultProps({props:e,name:"MuiTableContainer"}),{className:a,component:o="div",...i}=n,s={...n,component:o};return(0,Oa.jsx)(qp,{ref:t,as:o,className:clsx(useUtilityClasses$7(s).root,a),ownerState:s,...i})});function getTableHeadUtilityClass(e){return generateUtilityClass("MuiTableHead",e)}generateUtilityClasses("MuiTableHead",["root"]);var useUtilityClasses$6=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTableHeadUtilityClass,t)},Vp=Ss("thead",{name:"MuiTableHead",slot:"Root"})({display:"table-header-group"}),Hp={variant:"head"},Wp="thead",Gp=c.forwardRef(function TableHead(e,t){const n=useDefaultProps({props:e,name:"MuiTableHead"}),{className:a,component:o=Wp,...i}=n,s={...n,component:o},l=useUtilityClasses$6(s);return(0,Oa.jsx)($p.Provider,{value:Hp,children:(0,Oa.jsx)(Vp,{as:o,className:clsx(l.root,a),ref:t,role:o===Wp?null:"rowgroup",ownerState:s,...i})})}),Yp=createSvgIcon((0,Oa.jsx)("path",{d:"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"}),"KeyboardArrowLeft"),Kp=createSvgIcon((0,Oa.jsx)("path",{d:"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"}),"KeyboardArrowRight");function getTableRowUtilityClass(e){return generateUtilityClass("MuiTableRow",e)}var Qp=generateUtilityClasses("MuiTableRow",["root","selected","hover","head","footer"]),useUtilityClasses$5=e=>{const{classes:t,selected:n,hover:a,head:o,footer:i}=e;return composeClasses({root:["root",n&&"selected",a&&"hover",o&&"head",i&&"footer"]},getTableRowUtilityClass,t)},Zp=Ss("tr",{name:"MuiTableRow",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.head&&t.head,n.footer&&t.footer]}})(Ps(({theme:e})=>({color:"inherit",display:"table-row",verticalAlign:"middle",outline:0,[`&.${Qp.hover}:hover`]:{backgroundColor:(e.vars||e).palette.action.hover},[`&.${Qp.selected}`]:{backgroundColor:e.alpha((e.vars||e).palette.primary.main,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.primary.main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`)}}}))),Xp="tr",Jp=c.forwardRef(function TableRow(e,t){const n=useDefaultProps({props:e,name:"MuiTableRow"}),{className:a,component:o=Xp,hover:i=!1,selected:s=!1,...l}=n,u=c.useContext($p),d={...n,component:o,hover:i,selected:s,head:u&&"head"===u.variant,footer:u&&"footer"===u.variant};return(0,Oa.jsx)(Zp,{as:o,ref:t,className:clsx(useUtilityClasses$5(d).root,a),role:o===Xp?null:"row",ownerState:d,...l})});function easeInOutSin(e){return(1+Math.sin(Math.PI*e-Math.PI/2))/2}function animate(e,t,n,a={},o=()=>{}){const{ease:i=easeInOutSin,duration:s=300}=a;let l=null;const c=t[e];let u=!1;const cancel=()=>{u=!0},step=a=>{if(u)return void o(new Error("Animation cancelled"));null===l&&(l=a);const d=Math.min(1,(a-l)/s);t[e]=i(d)*(n-c)+c,d>=1?requestAnimationFrame(()=>{o(null)}):requestAnimationFrame(step)};return c===n?(o(new Error("Element already at target position")),cancel):(requestAnimationFrame(step),cancel)}var em={width:99,height:99,position:"absolute",top:-9999,overflow:"scroll",pointerEvents:"none"};function ScrollbarSize(e){const{onChange:t,...n}=e,a=c.useRef(),o=c.useRef(null),setMeasurements=()=>{a.current=o.current.offsetHeight-o.current.clientHeight};return Is(()=>{const e=Rs(()=>{const e=a.current;setMeasurements(),e!==a.current&&t(a.current)}),n=$s(o.current);return n.addEventListener("resize",e),()=>{e.clear(),n.removeEventListener("resize",e)}},[t]),c.useEffect(()=>{setMeasurements(),t(a.current)},[t]),(0,Oa.jsx)("div",{style:em,...n,ref:o})}function getTabScrollButtonUtilityClass(e){return generateUtilityClass("MuiTabScrollButton",e)}var tm=generateUtilityClasses("MuiTabScrollButton",["root","vertical","horizontal","disabled"]),useUtilityClasses$4=e=>{const{classes:t,orientation:n,disabled:a}=e;return composeClasses({root:["root",n,a&&"disabled"]},getTabScrollButtonUtilityClass,t)},rm=Ss(gl,{name:"MuiTabScrollButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.orientation&&t[n.orientation]]}})({width:40,flexShrink:0,opacity:.8,[`&.${tm.disabled}`]:{opacity:0},variants:[{props:{orientation:"vertical"},style:{width:"100%",height:40,"& svg":{transform:"var(--TabScrollButton-svgRotate)"}}}]}),nm=c.forwardRef(function TabScrollButton(e,t){const n=useDefaultProps({props:e,name:"MuiTabScrollButton"}),{className:a,slots:o={},slotProps:i={},direction:s,orientation:l,disabled:c,...u}=n,{nativeButton:d,...p}=u,m=useRtl(),g={isRtl:m,...n},h=useUtilityClasses$4(g),b=o.StartScrollButtonIcon??Yp,y=o.EndScrollButtonIcon??Kp,v=useSlotProps({elementType:b,externalSlotProps:i.startScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:g}),S=useSlotProps({elementType:y,externalSlotProps:i.endScrollButtonIcon,additionalProps:{fontSize:"small"},ownerState:g});return(0,Oa.jsx)(rm,{component:"div",className:clsx(h.root,a),ref:t,role:null,ownerState:g,tabIndex:null,...p,style:{...p.style,..."vertical"===l&&{"--TabScrollButton-svgRotate":`rotate(${m?-90:90}deg)`}},children:"left"===s?(0,Oa.jsx)(b,{...v}):(0,Oa.jsx)(y,{...S})})});function getTabsUtilityClass(e){return generateUtilityClass("MuiTabs",e)}var am=generateUtilityClasses("MuiTabs",["root","vertical","list","centered","scroller","fixed","scrollableX","scrollableY","hideScrollbar","scrollButtons","scrollButtonsHideMobile","indicator"]),useUtilityClasses$3=e=>{const{vertical:t,fixed:n,hideScrollbar:a,scrollableX:o,scrollableY:i,centered:s,scrollButtonsHideMobile:l,classes:c}=e;return composeClasses({root:["root",t&&"vertical"],scroller:["scroller",n&&"fixed",a&&"hideScrollbar",o&&"scrollableX",i&&"scrollableY"],list:["list",t&&"vertical",s&&"centered"],indicator:["indicator"],scrollButtons:["scrollButtons",l&&"scrollButtonsHideMobile"],scrollableX:[o&&"scrollableX"],hideScrollbar:[a&&"hideScrollbar"]},getTabsUtilityClass,c)},om=Ss("div",{name:"MuiTabs",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${am.scrollButtons}`]:t.scrollButtons},{[`& .${am.scrollButtons}`]:n.scrollButtonsHideMobile&&t.scrollButtonsHideMobile},t.root,n.vertical&&t.vertical]}})(Ps(({theme:e})=>({overflow:"hidden",minHeight:48,WebkitOverflowScrolling:"touch",display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.scrollButtonsHideMobile,style:{[`& .${am.scrollButtons}`]:{[e.breakpoints.down("sm")]:{display:"none"}}}}]}))),im=Ss("div",{name:"MuiTabs",slot:"Scroller",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.scroller,n.fixed&&t.fixed,n.hideScrollbar&&t.hideScrollbar,n.scrollableX&&t.scrollableX,n.scrollableY&&t.scrollableY]}})({position:"relative",display:"inline-block",flex:"1 1 auto",whiteSpace:"nowrap",variants:[{props:({ownerState:e})=>e.fixed,style:{overflowX:"hidden",width:"100%"}},{props:({ownerState:e})=>e.hideScrollbar,style:{scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}},{props:({ownerState:e})=>e.scrollableX,style:{overflowX:"auto",overflowY:"hidden"}},{props:({ownerState:e})=>e.scrollableY,style:{overflowY:"auto",overflowX:"hidden"}}]}),sm=Ss("div",{name:"MuiTabs",slot:"List",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.list,n.centered&&t.centered]}})({display:"flex",variants:[{props:({ownerState:e})=>e.vertical,style:{flexDirection:"column"}},{props:({ownerState:e})=>e.centered,style:{justifyContent:"center"}}]}),lm=Ss("span",{name:"MuiTabs",slot:"Indicator"})(Ps(({theme:e})=>({position:"absolute",height:2,bottom:0,width:"100%",transition:e.transitions.create(),variants:[{props:{indicatorColor:"primary"},style:{backgroundColor:(e.vars||e).palette.primary.main}},{props:{indicatorColor:"secondary"},style:{backgroundColor:(e.vars||e).palette.secondary.main}},{props:({ownerState:e})=>e.vertical,style:{height:"100%",width:2,right:0}}]}))),cm=Ss(ScrollbarSize)({overflowX:"auto",overflowY:"hidden",scrollbarWidth:"none","&::-webkit-scrollbar":{display:"none"}}),um={},dm=c.forwardRef(function Tabs(e,t){const n=useDefaultProps({props:e,name:"MuiTabs"}),a=useTheme(),o=useRtl(),{"aria-label":i,"aria-labelledby":s,action:l,centered:u=!1,children:d,className:p,component:m="div",allowScrollButtonsMobile:g=!1,indicatorColor:h="primary",onChange:b,orientation:y="horizontal",scrollButtons:v="auto",selectionFollowsFocus:S,slots:x={},slotProps:w={},textColor:C="primary",value:k,variant:E="standard",visibleScrollbar:P=!1,...T}=n,R="scrollable"===E,M="vertical"===y,D=M?"scrollTop":"scrollLeft",O=M?"top":"left",$=M?"bottom":"right",I=M?"clientHeight":"clientWidth",N=M?"height":"width",L={...n,component:m,allowScrollButtonsMobile:g,indicatorColor:h,orientation:y,vertical:M,scrollButtons:v,textColor:C,variant:E,visibleScrollbar:P,fixed:!R,hideScrollbar:R&&!P,scrollableX:R&&!M,scrollableY:R&&M,centered:u&&!R,scrollButtonsHideMobile:!g},j=useUtilityClasses$3(L),B=useSlotProps({elementType:x.startScrollButtonIcon,externalSlotProps:w.startScrollButtonIcon,ownerState:L}),F=useSlotProps({elementType:x.endScrollButtonIcon,externalSlotProps:w.endScrollButtonIcon,ownerState:L}),[q,U]=c.useState(!1),[V,H]=c.useState(um),[W,G]=c.useState(!1),[Y,K]=c.useState(!1),[Q,Z]=c.useState(!1),X=!1===k?null:k,[J,ee]=c.useState(!1),[te,re]=c.useState({overflow:"hidden",scrollbarWidth:0}),ne=new Map,ae=c.useRef(null),oe=c.useRef(null),ie={slots:x,slotProps:w},getTabsMeta=()=>{const e=ae.current;let t,n;if(e){const n=e.getBoundingClientRect();t={clientWidth:e.clientWidth,scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,scrollWidth:e.scrollWidth,top:n.top,bottom:n.bottom,left:n.left,right:n.right}}if(e&&!1!==k){const e=oe.current.children;if(e.length>0){const t=e[ne.get(k)];n=t?t.getBoundingClientRect():null}}return{tabsMeta:t,tabMeta:n}},se=Ls(()=>{const{tabsMeta:e,tabMeta:t}=getTabsMeta();let n,a=0;M?(n="top",t&&e&&(a=t.top-e.top+e.scrollTop)):(n=o?"right":"left",t&&e&&(a=(o?-1:1)*(t[n]-e[n]+e.scrollLeft)));const i={[n]:a,[N]:t?t[N]:0};if("number"!=typeof V[n]||"number"!=typeof V[N])H(i);else{const e=Math.abs(V[n]-i[n]),t=Math.abs(V[N]-i[N]);(e>=1||t>=1)&&H(i)}}),scroll=(e,{animation:t=!0}={})=>{t?animate(D,ae.current,e,{duration:a.transitions.duration.standard}):ae.current[D]=e},moveTabsScroll=e=>{let t=ae.current[D];t+=M?e:e*(o?-1:1),scroll(t)},getScrollSize=()=>{const e=ae.current[I];let t=0;const n=Array.from(oe.current.children);for(let a=0;a<n.length;a+=1){const o=n[a];if(t+o[I]>e){0===a&&(t=e);break}t+=o[I]}return t},handleStartScrollClick=()=>{moveTabsScroll(-1*getScrollSize())},handleEndScrollClick=()=>{moveTabsScroll(getScrollSize())},[le,{onChange:ce,...ue}]=useSlot("scrollbar",{className:clsx(j.scrollableX,j.hideScrollbar),elementType:cm,shouldForwardComponentProp:!0,externalForwardedProps:ie,ownerState:L}),de=c.useCallback(e=>{ce?.(e),re({overflow:null,scrollbarWidth:e})},[ce]),[pe,me]=useSlot("scrollButtons",{className:j.scrollButtons,elementType:nm,externalForwardedProps:ie,ownerState:L,additionalProps:{orientation:y,slots:{StartScrollButtonIcon:x.startScrollButtonIcon,EndScrollButtonIcon:x.endScrollButtonIcon},slotProps:{startScrollButtonIcon:B,endScrollButtonIcon:F}}}),getConditionalElements=()=>{const e={};e.scrollbarSizeListener=R?(0,Oa.jsx)(le,{...ue,onChange:de}):null;const t=R&&("auto"===v&&(W||Y)||!0===v);return e.scrollButtonStart=t?(0,Oa.jsx)(pe,{direction:o?"right":"left",onClick:handleStartScrollClick,disabled:!W,...me}):null,e.scrollButtonEnd=t?(0,Oa.jsx)(pe,{direction:o?"left":"right",onClick:handleEndScrollClick,disabled:!Y,...me}):null,e},fe=Ls(e=>{const{tabsMeta:t,tabMeta:n}=getTabsMeta();n&&t&&(n[O]<t[O]?scroll(t[D]+(n[O]-t[O]),{animation:e}):n[$]>t[$]&&scroll(t[D]+(n[$]-t[$]),{animation:e}))}),ge=Ls(()=>{R&&!1!==v&&Z(!Q)});c.useEffect(()=>{const e=Rs(()=>{ae.current&&se()});let t;const handleMutation=n=>{n.forEach(e=>{e.removedNodes.forEach(e=>{t?.unobserve(e)}),e.addedNodes.forEach(e=>{t?.observe(e)})}),e(),ge()},n=$s(ae.current);let a;return n.addEventListener("resize",e),"undefined"!=typeof ResizeObserver&&(t=new ResizeObserver(e),Array.from(oe.current.children).forEach(e=>{t.observe(e)})),"undefined"!=typeof MutationObserver&&(a=new MutationObserver(handleMutation),a.observe(oe.current,{childList:!0})),()=>{e.clear(),n.removeEventListener("resize",e),a?.disconnect(),t?.disconnect()}},[se,ge]),c.useEffect(()=>{const e=Array.from(oe.current.children),t=e.length;if("undefined"!=typeof IntersectionObserver&&t>0&&R&&!1!==v){const n=e[0],a=e[t-1],o={root:ae.current,threshold:.99},i=new IntersectionObserver(e=>{G(!e[0].isIntersecting)},o);i.observe(n);const s=new IntersectionObserver(e=>{K(!e[0].isIntersecting)},o);return s.observe(a),()=>{i.disconnect(),s.disconnect()}}},[R,v,Q,d?.length]),c.useEffect(()=>{U(!0)},[]),c.useEffect(()=>{se()}),c.useEffect(()=>{fe(um!==V)},[fe,V]),c.useImperativeHandle(l,()=>({updateIndicator:se,updateScrollButtons:ge}),[se,ge]);const[he,be]=useSlot("indicator",{className:j.indicator,elementType:lm,externalForwardedProps:ie,ownerState:L,additionalProps:{style:V}}),ye=(0,Oa.jsx)(he,{...be}),ve=useRovingTabIndexRoot({activeItemId:J?void 0:X,orientation:y,isRtl:o}),Se=ve.getContainerProps(),xe=c.Children.toArray(d).filter(c.isValidElement).map((e,t)=>{const n=void 0===e.props.value?t:e.props.value;return ne.set(n,t),{child:e,index:t,childValue:n}}).map(({child:e,childValue:t})=>{const n=t===k;return c.cloneElement(e,{fullWidth:"fullWidth"===E,indicator:n&&!q&&ye,selected:n,selectionFollowsFocus:S,onChange:b,textColor:C,value:t})}),we=getConditionalElements(),[Ce,ke]=useSlot("root",{ref:t,className:clsx(j.root,p),elementType:om,externalForwardedProps:{...ie,...T,component:m},ownerState:L}),[Ee,_e]=useSlot("scroller",{ref:ae,className:j.scroller,elementType:im,externalForwardedProps:ie,ownerState:L,additionalProps:{style:{overflow:te.overflow,[M?"margin"+(o?"Left":"Right"):"marginBottom"]:P?void 0:-te.scrollbarWidth}}}),Pe=js(Se.ref,oe),handleKeyDown=e=>{const t=oe.current;"tab"===Ds(Os(t))?.getAttribute("role")&&Se.onKeyDown(e)},[Te,Ae]=useSlot("list",{ref:Pe,className:j.list,elementType:sm,externalForwardedProps:ie,ownerState:L,getSlotProps:e=>({...e,onBlur:t=>{au(t.currentTarget,t.relatedTarget)||ee(!1),e.onBlur?.(t)},onKeyDown:t=>{handleKeyDown(t),e.onKeyDown?.(t)},onFocus:t=>{ee(!0),Se.onFocus(t),e.onFocus?.(t)}})});return(0,Oa.jsxs)(Ce,{...ke,children:[we.scrollButtonStart,we.scrollbarSizeListener,(0,Oa.jsxs)(Ee,{..._e,children:[(0,Oa.jsx)(Te,{"aria-label":i,"aria-labelledby":s,"aria-orientation":"vertical"===y?"vertical":null,role:"tablist",...Ae,children:(0,Oa.jsx)(od.Provider,{value:ve,children:xe})}),q&&ye]}),we.scrollButtonEnd]})});function getTextFieldUtilityClass(e){return generateUtilityClass("MuiTextField",e)}generateUtilityClasses("MuiTextField",["root"]);var pm={standard:Zu,filled:Ru,outlined:zd},useUtilityClasses$2=e=>{const{classes:t}=e;return composeClasses({root:["root"]},getTextFieldUtilityClass,t)},mm=Ss(Du,{name:"MuiTextField",slot:"Root"})({}),fm=c.forwardRef(function TextField(e,t){const n=useDefaultProps({props:e,name:"MuiTextField"}),{autoComplete:a,autoFocus:o=!1,children:i,className:s,color:l="primary",defaultValue:c,disabled:u=!1,error:d=!1,fullWidth:p=!1,helperText:m,id:g,inputRef:h,label:b,maxRows:y,minRows:v,multiline:S=!1,name:x,onBlur:w,onChange:C,onFocus:k,placeholder:E,required:P=!1,rows:T,select:R=!1,slots:M={},slotProps:D={},type:O,value:$,variant:I="outlined",...N}=n,L={...n,autoFocus:o,color:l,disabled:u,error:d,fullWidth:p,multiline:S,required:P,select:R,variant:I},j=useUtilityClasses$2(L),B=useId(g),F=m&&B?`${B}-helper-text`:void 0,q=b&&B?`${B}-label`:void 0,U=pm[I],V={slots:M,slotProps:D},[H,W]=useSlot("select",{elementType:Xd,externalForwardedProps:V,ownerState:L}),G=R&&W.native,Y={},K=V.slotProps.inputLabel;"outlined"===I&&(K&&void 0!==K.shrink&&(Y.notched=K.shrink),Y.label=b),R&&(G||(Y.id=void 0),Y["aria-describedby"]=void 0);const[Q,Z]=useSlot("root",{elementType:mm,shouldForwardComponentProp:!0,externalForwardedProps:{...V,...N},ownerState:L,className:clsx(j.root,s),ref:t,additionalProps:{disabled:u,error:d,fullWidth:p,required:P,color:l,variant:I}}),[X,J]=useSlot("input",{elementType:U,externalForwardedProps:V,additionalProps:Y,ownerState:L}),[ee,te]=useSlot("inputLabel",{elementType:Ju,externalForwardedProps:V,ownerState:L}),[re,ne]=useSlot("htmlInput",{elementType:"input",externalForwardedProps:V,ownerState:L}),[ae,oe]=useSlot("formHelperText",{elementType:Bu,externalForwardedProps:V,ownerState:L}),ie=(0,Oa.jsx)(X,{"aria-describedby":F,autoComplete:a,autoFocus:o,defaultValue:c,fullWidth:p,multiline:S,name:x,rows:T,maxRows:y,minRows:v,type:O,value:$,id:B,inputRef:h,onBlur:w,onChange:C,onFocus:k,placeholder:E,inputProps:ne,slots:{input:M.htmlInput?re:void 0},...J});return(0,Oa.jsxs)(Q,{...Z,children:[null!=b&&""!==b&&(0,Oa.jsx)(ee,{htmlFor:R&&!G?void 0:B,id:q,...R&&!G&&{component:"div"},...te,children:b}),R?(0,Oa.jsx)(H,{"aria-describedby":F,id:B,labelId:q,value:$,input:ie,...W,children:i}):ie,m&&(0,Oa.jsx)(ae,{id:F,...oe,children:m})]})});function getToggleButtonUtilityClass(e){return generateUtilityClass("MuiToggleButton",e)}var gm=generateUtilityClasses("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge","fullWidth"]),hm=c.createContext({}),bm=c.createContext(void 0);function isValueSelected(e,t){return void 0!==t&&void 0!==e&&(Array.isArray(t)?t.includes(e):e===t)}var useUtilityClasses$1=e=>{const{classes:t,fullWidth:n,selected:a,disabled:o,size:i,color:s}=e;return composeClasses({root:["root",a&&"selected",o&&"disabled",n&&"fullWidth",`size${_s(i)}`,s]},getToggleButtonUtilityClass,t)},ym=Ss(gl,{name:"MuiToggleButton",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,t[`size${_s(n.size)}`]]}})(Ps(({theme:e})=>({...e.typography.button,borderRadius:(e.vars||e).shape.borderRadius,padding:11,border:`1px solid ${(e.vars||e).palette.divider}`,color:(e.vars||e).palette.action.active,[`&.${gm.disabled}`]:{color:(e.vars||e).palette.action.disabled,border:`1px solid ${(e.vars||e).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[{props:{color:"standard"},style:{[`&.${gm.selected}`]:{color:(e.vars||e).palette.text.primary,backgroundColor:e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette.text.primary,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette.text.primary,(e.vars||e).palette.action.selectedOpacity)}}}}},...Object.entries(e.palette).filter(createSimplePaletteValueFilter()).map(([t])=>({props:{color:t},style:{[`&.${gm.selected}`]:{color:(e.vars||e).palette[t].main,backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.selectedOpacity),"&:hover":{backgroundColor:e.alpha((e.vars||e).palette[t].main,`${(e.vars||e).palette.action.selectedOpacity} + ${(e.vars||e).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:e.alpha((e.vars||e).palette[t].main,(e.vars||e).palette.action.selectedOpacity)}}}}})),{props:{fullWidth:!0},style:{width:"100%"}},{props:{size:"small"},style:{padding:7,fontSize:e.typography.pxToRem(13)}},{props:{size:"large"},style:{padding:15,fontSize:e.typography.pxToRem(15)}}]}))),vm=c.forwardRef(function ToggleButton(e,t){const{value:n,...a}=c.useContext(hm),o=c.useContext(bm),i=useDefaultProps({props:resolveProps({...a,selected:isValueSelected(e.value,n)},e),name:"MuiToggleButton"}),{children:s,className:l,color:u="standard",disabled:d=!1,disableFocusRipple:p=!1,fullWidth:m=!1,onChange:g,onClick:h,selected:b,size:y="medium",value:v,...S}=i,x={...i,color:u,disabled:d,disableFocusRipple:p,fullWidth:m,size:y},w=useUtilityClasses$1(x),handleChange=e=>{h&&(h(e,v),e.defaultPrevented)||g&&g(e,v)},C=o||"";return(0,Oa.jsx)(ym,{className:clsx(a.className,w.root,l,C),internalNativeButton:!0,disabled:d,focusRipple:!p,ref:t,onClick:handleChange,onChange:g,value:v,ownerState:x,"aria-pressed":b,...S,children:s})});function getToggleButtonGroupUtilityClass(e){return generateUtilityClass("MuiToggleButtonGroup",e)}var Sm=generateUtilityClasses("MuiToggleButtonGroup",["root","selected","horizontal","vertical","disabled","grouped","fullWidth","firstButton","lastButton","middleButton"]),useUtilityClasses=e=>{const{classes:t,orientation:n,fullWidth:a,disabled:o}=e;return composeClasses({root:["root",n,a&&"fullWidth"],grouped:["grouped",o&&"disabled"],firstButton:["firstButton"],lastButton:["lastButton"],middleButton:["middleButton"]},getToggleButtonGroupUtilityClass,t)},xm=Ss("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[{[`& .${Sm.grouped}`]:t.grouped},{[`& .${Sm.firstButton}`]:t.firstButton},{[`& .${Sm.lastButton}`]:t.lastButton},{[`& .${Sm.middleButton}`]:t.middleButton},t.root,"vertical"===n.orientation&&t.vertical,n.fullWidth&&t.fullWidth]}})(Ps(({theme:e})=>({display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius,variants:[{props:{orientation:"vertical"},style:{flexDirection:"column",[`& .${Sm.grouped}`]:{[`&.${Sm.selected} + .${Sm.grouped}.${Sm.selected}`]:{borderTop:0,marginTop:0}},[`& .${Sm.firstButton},& .${Sm.middleButton}`]:{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`& .${Sm.lastButton},& .${Sm.middleButton}`]:{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},[`& .${Sm.lastButton}.${gm.disabled},& .${Sm.middleButton}.${gm.disabled}`]:{borderTop:"1px solid transparent"}}},{props:{fullWidth:!0},style:{width:"100%"}},{props:{orientation:"horizontal"},style:{[`& .${Sm.grouped}`]:{[`&.${Sm.selected} + .${Sm.grouped}.${Sm.selected}`]:{borderLeft:0,marginLeft:0}},[`& .${Sm.firstButton},& .${Sm.middleButton}`]:{borderTopRightRadius:0,borderBottomRightRadius:0},[`& .${Sm.lastButton},& .${Sm.middleButton}`]:{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},[`& .${Sm.lastButton}.${gm.disabled},& .${Sm.middleButton}.${gm.disabled}`]:{borderLeft:"1px solid transparent"}}}]}))),wm=c.forwardRef(function ToggleButtonGroup(e,t){const n=useDefaultProps({props:e,name:"MuiToggleButtonGroup"}),{children:a,className:o,color:i="standard",disabled:s=!1,exclusive:l=!1,fullWidth:u=!1,onChange:d,orientation:p="horizontal",size:m="medium",value:g,...h}=n,b={...n,disabled:s,fullWidth:u,orientation:p,size:m},y=useUtilityClasses(b),v=c.useCallback((e,t)=>{if(!d)return;const n=g&&g.indexOf(t);let a;g&&n>=0?(a=g.slice(),a.splice(n,1)):a=g?g.concat(t):[t],d(e,a)},[d,g]),S=c.useCallback((e,t)=>{d&&d(e,g===t?null:t)},[d,g]),x=c.useMemo(()=>({className:y.grouped,onChange:l?S:v,value:g,size:m,fullWidth:u,color:i,disabled:s}),[y.grouped,l,S,v,g,m,u,i,s]),w=getValidReactChildren(a),C=w.length,getButtonPositionClassName=e=>{const t=0===e,n=e===C-1;return t&&n?"":t?y.firstButton:n?y.lastButton:y.middleButton};return(0,Oa.jsx)(xm,{role:"group",className:clsx(y.root,o),ref:t,ownerState:b,...h,children:(0,Oa.jsx)(hm.Provider,{value:x,children:w.map((e,t)=>(0,Oa.jsx)(bm.Provider,{value:getButtonPositionClassName(t),children:e},t))})})}),Cm=createTheme({palette:{mode:"dark",text:{primary:"#FFF5D6",secondary:"#C0B090",muted:"#706050",accent:"#FFD700"},background:{primary:"#0d0d0d",panel:"#141414",header:"#1a1a1a",modal:"#1e1e1e"},primary:{main:"#FFD700"}},typography:{fontFamily:"Roboto Mono, Consolas, monospace",fontSize:13},components:{MuiSwitch:{defaultProps:{size:"small"}},MuiTextField:{defaultProps:{size:"small"}},MuiSelect:{defaultProps:{size:"small"}},MuiPopover:{styleOverrides:{paper:{background:"#000",border:"1px solid #fff"}}},MuiDialog:{styleOverrides:{paper:({theme:e})=>({backgroundImage:"none",border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadius})}}}}),km=!1;function useDialogOpen(e){const[t,n]=(0,c.useState)(km);return(0,c.useEffect)(()=>e?.events?.on?.(te.UI_CONFIG_CHANGED,({open:e})=>{n(Boolean(e))})??void 0,[e]),[t,n]}var Em=Symbol.for("immer-nothing"),_m=Symbol.for("immer-draftable"),Pm=Symbol.for("immer-state");function die(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Tm=Object,Am=Tm.getPrototypeOf,Rm="constructor",Mm="prototype",Dm="configurable",Om="enumerable",$m="writable",Im="value",isDraft=e=>!!e&&!!e[Pm];function isDraftable(e){return!!e&&(isPlainObject(e)||Lm(e)||!!e[_m]||!!e[Rm]?.[_m]||isMap(e)||isSet(e))}var Nm=Tm[Mm][Rm].toString(),zm=new WeakMap;function isPlainObject(e){if(!e||!isObjectish(e))return!1;const t=Am(e);if(null===t||t===Tm[Mm])return!0;const n=Tm.hasOwnProperty.call(t,Rm)&&t[Rm];if(n===Object)return!0;if(!isFunction(n))return!1;let a=zm.get(n);return void 0===a&&(a=Function.toString.call(n),zm.set(n,a)),a===Nm}function each(e,t,n=!0){0===getArchtype(e)?(n?Reflect.ownKeys(e):Tm.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,a)=>t(a,n,e))}function getArchtype(e){const t=e[Pm];return t?t.type_:Lm(e)?1:isMap(e)?2:isSet(e)?3:0}var has=(e,t,n=getArchtype(e))=>2===n?e.has(t):Tm[Mm].hasOwnProperty.call(e,t),get=(e,t,n=getArchtype(e))=>2===n?e.get(t):e[t],set=(e,t,n,a=getArchtype(e))=>{2===a?e.set(t,n):3===a?e.add(n):e[t]=n};function is(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}var Lm=Array.isArray,isMap=e=>e instanceof Map,isSet=e=>e instanceof Set,isObjectish=e=>"object"==typeof e,isFunction=e=>"function"==typeof e,isBoolean=e=>"boolean"==typeof e;function isArrayIndex(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var latest=e=>e.copy_||e.base_,getFinalValue=e=>e.modified_?e.copy_:e.base_;function shallowCopy(e,t){if(isMap(e))return new Map(e);if(isSet(e))return new Set(e);if(Lm(e))return Array[Mm].slice.call(e);const n=isPlainObject(e);if(!0===t||"class_only"===t&&!n){const t=Tm.getOwnPropertyDescriptors(e);delete t[Pm];let n=Reflect.ownKeys(t);for(let a=0;a<n.length;a++){const o=n[a],i=t[o];!1===i[$m]&&(i[$m]=!0,i[Dm]=!0),(i.get||i.set)&&(t[o]={[Dm]:!0,[$m]:!0,[Om]:i[Om],[Im]:e[o]})}return Tm.create(Am(e),t)}{const t=Am(e);if(null!==t&&n)return{...e};const a=Tm.create(t);return Tm.assign(a,e)}}function freeze(e,t=!1){return isFrozen(e)||isDraft(e)||!isDraftable(e)||(getArchtype(e)>1&&Tm.defineProperties(e,{set:jm,add:jm,clear:jm,delete:jm}),Tm.freeze(e),t&&each(e,(e,t)=>{freeze(t,!0)},!1)),e}function dontMutateFrozenCollections(){die(2)}var jm={[Im]:dontMutateFrozenCollections};function isFrozen(e){return null===e||!isObjectish(e)||Tm.isFrozen(e)}var Bm="MapSet",Fm="Patches",qm="ArrayMethods",Um={};function getPlugin(e){const t=Um[e];return t||die(0,e),t}var Vm,isPluginLoaded=e=>!!Um[e],getCurrentScope=()=>Vm,createScope=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:isPluginLoaded(Bm)?getPlugin(Bm):void 0,arrayMethodsPlugin_:isPluginLoaded(qm)?getPlugin(qm):void 0});function usePatchesInScope(e,t){t&&(e.patchPlugin_=getPlugin(Fm),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function revokeScope(e){leaveScope(e),e.drafts_.forEach(revokeDraft),e.drafts_=null}function leaveScope(e){e===Vm&&(Vm=e.parent_)}var enterScope=e=>Vm=createScope(Vm,e);function revokeDraft(e){const t=e[Pm];0===t.type_||1===t.type_?t.revoke_():t.revoked_=!0}function processResult(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];if(void 0!==e&&e!==n){n[Pm].modified_&&(revokeScope(t),die(4)),isDraftable(e)&&(e=finalize(t,e));const{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(n[Pm].base_,e,t)}else e=finalize(t,n);return maybeFreeze(t,e,!0),revokeScope(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Em?e:void 0}function finalize(e,t){if(isFrozen(t))return t;const n=t[Pm];if(!n)return handleValue(t,e.handledSet_,e);if(!isSameScope(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);generatePatchesAndFinalize(n,e)}return n.copy_}function maybeFreeze(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&freeze(t,n)}function markStateFinalized(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var isSameScope=(e,t)=>e.scope_===t,Hm=[];function updateDraftInParent(e,t,n,a){const o=latest(e),i=e.type_;if(void 0!==a&&get(o,a,i)===t)return void set(o,a,n,i);if(!e.draftLocations_){const t=e.draftLocations_=new Map;each(o,(e,n)=>{if(isDraft(n)){const a=t.get(n)||[];a.push(e),t.set(n,a)}})}const s=e.draftLocations_.get(t)??Hm;for(const l of s)set(o,l,n,i)}function registerChildFinalizationCallback(e,t,n){e.callbacks_.push(function childCleanup(a){const o=t;if(!o||!isSameScope(o,a))return;a.mapSetPlugin_?.fixSetContents(o);const i=getFinalValue(o);updateDraftInParent(e,o.draft_??o,i,n),generatePatchesAndFinalize(o,a)})}function generatePatchesAndFinalize(e,t){if(e.modified_&&!e.finalized_&&(3===e.type_||1===e.type_&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:n}=t;if(n){const a=n.getPath(e);a&&n.generatePatches_(e,a,t)}markStateFinalized(e)}}function handleCrossReference(e,t,n){const{scope_:a}=e;if(isDraft(n)){const o=n[Pm];isSameScope(o,a)&&o.callbacks_.push(function crossReferenceCleanup(){prepareCopy(e),updateDraftInParent(e,n,getFinalValue(o),t)})}else isDraftable(n)&&e.callbacks_.push(function nestedDraftCleanup(){const o=latest(e);3===e.type_?o.has(n)&&handleValue(n,a.handledSet_,a):get(o,t,e.type_)===n&&a.drafts_.length>1&&!0===(e.assigned_.get(t)??!1)&&e.copy_&&handleValue(get(e.copy_,t,e.type_),a.handledSet_,a)})}function handleValue(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||isDraft(e)||t.has(e)||!isDraftable(e)||isFrozen(e)||(t.add(e),each(e,(a,o)=>{if(isDraft(o)){const t=o[Pm];isSameScope(t,n)&&(set(e,a,getFinalValue(t),e.type_),markStateFinalized(t))}else isDraftable(o)&&handleValue(o,t,n)})),e}function createProxyProxy(e,t){const n=Lm(e),a={type_:n?1:0,scope_:t?t.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let o=a,i=Wm;n&&(o=[a],i=Gm);const{revoke:s,proxy:l}=Proxy.revocable(o,i);return a.draft_=l,a.revoke_=s,[l,a]}var Wm={get(e,t){if(t===Pm)return e;let n=e.scope_.arrayMethodsPlugin_;const a=1===e.type_&&"string"==typeof t;if(a&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);const o=latest(e);if(!has(o,t,e.type_))return readPropFromProto(e,o,t);const i=o[t];if(e.finalized_||!isDraftable(i))return i;if(a&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&isArrayIndex(t))return i;if(i===peek(e.base_,t)){prepareCopy(e);const n=1===e.type_?+t:t,a=createProxy(e.scope_,i,e,n);return e.copy_[n]=a}return i},has:(e,t)=>t in latest(e),ownKeys:e=>Reflect.ownKeys(latest(e)),set(e,t,n){const a=getDescriptorFromProto(latest(e),t);if(a?.set)return a.set.call(e.draft_,n),!0;if(!e.modified_){const a=peek(latest(e),t),o=a?.[Pm];if(o&&o.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(is(n,a)&&(void 0!==n||has(e.base_,t,e.type_)))return!0;prepareCopy(e),markChanged(e)}return e.copy_[t]===n&&(void 0!==n||t in e.copy_)||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_.set(t,!0),handleCrossReference(e,t,n)),!0},deleteProperty:(e,t)=>(prepareCopy(e),void 0!==peek(e.base_,t)||t in e.base_?(e.assigned_.set(t,!1),markChanged(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0),getOwnPropertyDescriptor(e,t){const n=latest(e),a=Reflect.getOwnPropertyDescriptor(n,t);return a?{[$m]:!0,[Dm]:1!==e.type_||"length"!==t,[Om]:a[Om],[Im]:n[t]}:a},defineProperty(){die(11)},getPrototypeOf:e=>Am(e.base_),setPrototypeOf(){die(12)}},Gm={};for(let Mg in Wm){let e=Wm[Mg];Gm[Mg]=function(){const t=arguments;return t[0]=t[0][0],e.apply(this,t)}}function peek(e,t){const n=e[Pm];return(n?latest(n):e)[t]}function readPropFromProto(e,t,n){const a=getDescriptorFromProto(t,n);return a?Im in a?a[Im]:a.get?.call(e.draft_):void 0}function getDescriptorFromProto(e,t){if(!(t in e))return;let n=Am(e);for(;n;){const e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=Am(n)}}function markChanged(e){e.modified_||(e.modified_=!0,e.parent_&&markChanged(e.parent_))}function prepareCopy(e){e.copy_||(e.assigned_=new Map,e.copy_=shallowCopy(e.base_,e.scope_.immer_.useStrictShallowCopy_))}Gm.deleteProperty=function(e,t){return Gm.set.call(this,e,t,void 0)},Gm.set=function(e,t,n){return Wm.set.call(this,e[0],t,n,e[0])};var Ym=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(isFunction(e)&&!isFunction(t)){const n=t;t=e;const a=this;return function curriedProduce(e=n,...o){return a.produce(e,e=>t.call(this,e,...o))}}let a;if(isFunction(t)||die(6),void 0===n||isFunction(n)||die(7),isDraftable(e)){const o=enterScope(this),i=createProxy(o,e,void 0);let s=!0;try{a=t(i),s=!1}finally{s?revokeScope(o):leaveScope(o)}return usePatchesInScope(o,n),processResult(a,o)}if(!e||!isObjectish(e)){if(a=t(e),void 0===a&&(a=e),a===Em&&(a=void 0),this.autoFreeze_&&freeze(a,!0),n){const t=[],o=[];getPlugin(Fm).generateReplacementPatches_(e,a,{patches_:t,inversePatches_:o}),n(t,o)}return a}die(1,e)},this.produceWithPatches=(e,t)=>{if(isFunction(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,a;return[this.produce(e,t,(e,t)=>{n=e,a=t}),n,a]},isBoolean(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),isBoolean(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),isBoolean(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){isDraftable(e)||die(8),isDraft(e)&&(e=current(e));const t=enterScope(this),n=createProxy(t,e,void 0);return n[Pm].isManual_=!0,leaveScope(t),n}finishDraft(e,t){const n=e&&e[Pm];n&&n.isManual_||die(9);const{scope_:a}=n;return usePatchesInScope(a,t),processResult(void 0,a)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const a=t[n];if(0===a.path.length&&"replace"===a.op){e=a.value;break}}n>-1&&(t=t.slice(n+1));const a=getPlugin(Fm).applyPatches_;return isDraft(e)?a(e,t):this.produce(e,e=>a(e,t))}};function createProxy(e,t,n,a){const[o,i]=isMap(t)?getPlugin(Bm).proxyMap_(t,n):isSet(t)?getPlugin(Bm).proxySet_(t,n):createProxyProxy(t,n);return(n?.scope_??getCurrentScope()).drafts_.push(o),i.callbacks_=n?.callbacks_??[],i.key_=a,n&&void 0!==a?registerChildFinalizationCallback(n,i,a):i.callbacks_.push(function rootDraftCleanup(e){e.mapSetPlugin_?.fixSetContents(i);const{patchPlugin_:t}=e;i.modified_&&t&&t.generatePatches_(i,[],e)}),o}function current(e){return isDraft(e)||die(10,e),currentImpl(e)}function currentImpl(e){if(!isDraftable(e)||isFrozen(e))return e;const t=e[Pm];let n,a=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=shallowCopy(e,t.scope_.immer_.useStrictShallowCopy_),a=t.scope_.immer_.shouldUseStrictIteration()}else n=shallowCopy(e,!0);return each(n,(e,t)=>{set(n,e,currentImpl(t))},a),t&&(t.finalized_=!1),n}var Km=(new Ym).produce,cloneSettings=(e={})=>Km(e,()=>{}),toFiniteNumber=(e,t=0)=>{const n=Number(e);return Number.isFinite(n)?n:t},toPriority=e=>toFiniteNumber(e,0),toConfigPriority=e=>Math.max(0,Math.min(26,toPriority(e))),toQuantity=e=>Math.max(0,toFiniteNumber(e,0)),isBlankInput=e=>""===e,toDraftConfigPriority=(e,t=0)=>{if(isBlankInput(e))return"";const n=Number(e);return Number.isFinite(n)?Math.max(0,Math.min(26,n)):t},normalizePriorityDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=toConfigPriority(n),e),{}),buildAffPriorityDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=toPriority(n?.defaultPriority),e),{}),buildDefPriorityDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=toConfigPriority(n?.defaultPriority),e),{}),buildDefStaticDraft=(e={})=>Object.entries(e).reduce((e,[t,n])=>(e[t]=Boolean(n?.static),e),{}),buildPrecacheDraft=(e={})=>Object.entries(e?.desiredPrecache??{}).reduce((e,[t,n])=>(e[t]=toQuantity(n),e),{}),buildDraft=(e={})=>({settings:cloneSettings(e.system?.settings??{}),affPriorities:buildAffPriorityDraft(e.affs??{}),defPriorities:buildDefPriorityDraft(e.defs??{}),defStatics:buildDefStaticDraft(e.defs??{}),desiredPrecache:buildPrecacheDraft(e.cache??{})}),keysChangedFrom=(e={},t={})=>[...new Set([...Object.keys(e),...Object.keys(t)])].filter(n=>e[n]!==t[n]);function useSettingsForm(e){const[t]=(0,c.useState)(()=>buildDraft(e?.runtime?.snapshot?.()??{})),[n,a]=(0,c.useState)(()=>t.settings),[o,i]=(0,c.useState)(()=>t.affPriorities),[s,l]=(0,c.useState)(()=>t.defPriorities),[u,d]=(0,c.useState)(()=>t.defStatics),[p,m]=(0,c.useState)(()=>t.desiredPrecache);return{pending:n,set:(0,c.useCallback)((e,t)=>{a(n=>n?Km(n,n=>{const a=e.split(".");let o=n;for(let e=0;e<a.length-1;e+=1)o[a[e]]&&"object"==typeof o[a[e]]||(o[a[e]]={}),o=o[a[e]];o[a[a.length-1]]=t}):n)},[]),affPriorities:o,setAffPriority:(0,c.useCallback)((e,t)=>{i(n=>({...n,[e]:toConfigPriority(t)}))},[]),defPriorities:s,setDefPriority:(0,c.useCallback)((e,t)=>{l(n=>{const a=n?.[e]??0;return{...n,[e]:toDraftConfigPriority(t,a)}})},[]),defStatics:u,setDefStatic:(0,c.useCallback)((e,t)=>{d(n=>({...n,[e]:Boolean(t)}))},[]),desiredPrecache:p,setPrecache:(0,c.useCallback)((e,t)=>{m(n=>({...n,[e]:toQuantity(t)}))},[]),commit:(0,c.useCallback)(()=>{if(!e)return;const a=t;keysChangedFrom(o,a.affPriorities).forEach(t=>{e.api?.affs?.setDefaultPriority?.(t,o[t])});const i=normalizePriorityDraft(s);keysChangedFrom(i,a.defPriorities).forEach(t=>{e.api?.defs?.setDefaultPriority?.(t,i[t])}),keysChangedFrom(u,a.defStatics).forEach(t=>{e.api?.defs?.setStatic?.(t,u[t])});const l=keysChangedFrom(p,a.desiredPrecache).reduce((e,t)=>(e[t]=p[t]??0,e),{});Object.keys(l).length&&e.api?.ss?.precache?.set?.(l),n&&e.api?.control?.applySettings?.(n)},[n,o,s,u,p,t,e])}}function LabelledSwitch({label:e,checked:t,onChange:n}){return(0,Oa.jsx)(Nu,{control:(0,Oa.jsx)(_p,{checked:Boolean(t),onChange:e=>n(e.target.checked),size:"small"}),label:e,sx:{ml:0,mr:0,gap:.5,alignItems:"center",userSelect:"none","& .MuiSwitch-root":{mr:.5},"& .MuiFormControlLabel-label":{fontSize:11,lineHeight:1.25}}})}function ThresholdSlider({label:e,value:t,onChange:n,min:a=0,max:o=100,step:i=5,unit:s="%"}){return(0,Oa.jsxs)(Mc,{sx:{mb:1},children:[(0,Oa.jsxs)(Tl,{variant:"body2",sx:{mb:.5,fontSize:11,lineHeight:1.3},children:[e,": ",t,s]}),(0,Oa.jsx)(pp,{value:t,min:a,max:o,step:i,onChange:(e,t)=>n(t),size:"small",sx:{color:"primary.main"}})]})}var Qm="50px",Zm={minWidth:95,height:25,px:1,fontSize:11,lineHeight:1};function SectionHeader({children:e}){return(0,Oa.jsx)(Tl,{variant:"overline",sx:{display:"block",color:"primary.main",mt:2,mb:.5,fontWeight:700},children:e})}function SystemSettingsTab({pending:e,set:t}){return e?(0,Oa.jsxs)(Mc,{sx:{display:"flex",flexWrap:"wrap",alignItems:"flex-start",columnGap:{xs:2,md:Qm},rowGap:2,pt:1},children:[(0,Oa.jsxs)(Mc,{sx:{flexGrow:0,flexShrink:0,flexBasis:{xs:"100%",md:250},width:{xs:"100%",md:250},minWidth:0},children:[(0,Oa.jsx)(SectionHeader,{children:"nexSys Config"}),(0,Oa.jsxs)(Mc,{sx:{display:"flex",flexDirection:"column"},children:[(0,Oa.jsx)(LabelledSwitch,{label:"Load on login",checked:!!e.loadOnLogin,onChange:e=>t("loadOnLogin",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Queue while paused",checked:e.queueWhilePaused,onChange:e=>t("queueWhilePaused",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Override Tab target",checked:e.overrideTab,onChange:e=>t("overrideTab",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Custom Prompt",checked:e.customPrompt,onChange:e=>t("customPrompt",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Debug output",checked:e.debug,onChange:e=>t("debug",e)})]}),(0,Oa.jsx)(SectionHeader,{children:"Notices (Echo)"}),(0,Oa.jsxs)(Mc,{sx:{display:"flex",flexDirection:"column"},children:[(0,Oa.jsx)(LabelledSwitch,{label:"Affliction gained",checked:e.notices?.affGot,onChange:e=>t("notices.affGot",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Affliction lost",checked:e.notices?.affLost,onChange:e=>t("notices.affLost",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Defence gained",checked:e.notices?.defGot,onChange:e=>t("notices.defGot",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Defence lost",checked:e.notices?.defLost,onChange:e=>t("notices.defLost",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Balance lost",checked:e.notices?.balanceLost,onChange:e=>t("notices.balanceLost",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Balance recovered",checked:e.notices?.balanceRecovered,onChange:e=>t("notices.balanceRecovered",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Trackable gained",checked:e.notices?.trackableGot,onChange:e=>t("notices.trackableGot",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Trackable lost",checked:e.notices?.trackableLost,onChange:e=>t("notices.trackableLost",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Priority changes",checked:e.notices?.priority,onChange:e=>t("notices.priority",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"General output",checked:e.notices?.output,onChange:e=>t("notices.output",e)})]})]}),(0,Oa.jsxs)(Mc,{sx:{flexGrow:0,flexShrink:0,flexBasis:{xs:"100%",md:190},width:{xs:"100%",md:190},minWidth:0},children:[(0,Oa.jsx)(SectionHeader,{children:"Curing Method"}),(0,Oa.jsxs)(Mc,{sx:{mb:1},children:[(0,Oa.jsx)(Tl,{variant:"caption",sx:{display:"block",mb:.5,opacity:.7},children:"Curing type"}),(0,Oa.jsxs)(wm,{exclusive:!0,size:"small",value:e.ss?.transmutation?"transmutation":"concoctions",onChange:(e,n)=>n&&t("ss.transmutation","transmutation"===n),sx:{"& .MuiToggleButton-root":Zm},children:[(0,Oa.jsx)(vm,{value:"transmutation",children:"Transmutation"}),(0,Oa.jsx)(vm,{value:"concoctions",children:"Concoctions"})]})]}),(0,Oa.jsxs)(Mc,{sx:{mb:1},children:[(0,Oa.jsx)(Tl,{variant:"caption",sx:{display:"block",mb:.5,opacity:.7},children:"Sip priority"}),(0,Oa.jsxs)(wm,{exclusive:!0,size:"small",value:e.ss?.sipPriority??"health",onChange:(e,n)=>n&&t("ss.sipPriority",n),sx:{"& .MuiToggleButton-root":Zm},children:[(0,Oa.jsx)(vm,{value:"health",children:"Health"}),(0,Oa.jsx)(vm,{value:"mana",children:"Mana"})]})]}),(0,Oa.jsxs)(Mc,{sx:{display:"flex",flexDirection:"column",mt:1},children:[(0,Oa.jsx)(LabelledSwitch,{label:"Batching",checked:e.ss?.batch,onChange:e=>t("ss.batch",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Tree Tattoo",checked:"on"===e.ss?.tree,onChange:e=>t("ss.tree",e?"on":"off")}),(0,Oa.jsx)(LabelledSwitch,{label:"Focus",checked:e.ss?.focus,onChange:e=>t("ss.focus",e)}),e.ss?.focus&&(0,Oa.jsx)(LabelledSwitch,{label:"Focus over Herbs",checked:e.ss?.focusOverHerbs,onChange:e=>t("ss.focusOverHerbs",e)}),(0,Oa.jsx)(LabelledSwitch,{label:"Blood clotting",checked:e.ss?.clot,onChange:e=>t("ss.clot",e)}),e.ss?.clot&&(0,Oa.jsx)(Mc,{sx:{ml:1,mt:2,mb:.5},children:(0,Oa.jsx)(fm,{label:"Clot above",value:e.ss?.clotAt??"",onChange:e=>t("ss.clotAt",Number(e.target.value)||0),type:"number",size:"small",sx:{width:100,maxWidth:"100%"},slotProps:{htmlInput:{min:0}}})})]})]}),(0,Oa.jsxs)(Mc,{sx:{flexGrow:0,flexShrink:0,flexBasis:{xs:"100%",md:250},width:{xs:"100%",md:250},minWidth:0},children:[(0,Oa.jsx)(SectionHeader,{children:"Thresholds"}),(0,Oa.jsx)(ThresholdSlider,{label:"Sip health at",value:e.ss?.sipHealthAt??0,onChange:e=>t("ss.sipHealthAt",e)}),(0,Oa.jsx)(ThresholdSlider,{label:"Sip mana at",value:e.ss?.sipManaAt??0,onChange:e=>t("ss.sipManaAt",e)}),(0,Oa.jsx)(Pu,{sx:{my:1,opacity:.3}}),(0,Oa.jsx)(ThresholdSlider,{label:"Moss health at",value:e.ss?.mossHealthAt??0,onChange:e=>t("ss.mossHealthAt",e)}),(0,Oa.jsx)(ThresholdSlider,{label:"Moss mana at",value:e.ss?.mossManaAt??0,onChange:e=>t("ss.mossManaAt",e)}),(0,Oa.jsx)(Pu,{sx:{my:1,opacity:.3}}),(0,Oa.jsx)(ThresholdSlider,{label:"Cure fractures above",value:e.ss?.fracturesAbove??0,onChange:e=>t("ss.fracturesAbove",e)}),(0,Oa.jsx)(ThresholdSlider,{label:"Use mana abilities above",value:e.ss?.manaThreshold??0,onChange:e=>t("ss.manaThreshold",e)})]})]}):null}function useCombinedRefs(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return(0,e.useMemo)(()=>e=>{n.forEach(t=>t(e))},n)}var Xm="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function isWindow(e){const t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function isNode(e){return"nodeType"in e}function getWindow(e){var t,n;return e?isWindow(e)?e:isNode(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function isDocument(e){const{Document:t}=getWindow(e);return e instanceof t}function isHTMLElement(e){return!isWindow(e)&&e instanceof getWindow(e).HTMLElement}function isSVGElement(e){return e instanceof getWindow(e).SVGElement}function getOwnerDocument(e){return e?isWindow(e)?e.document:isNode(e)?isDocument(e)?e:isHTMLElement(e)||isSVGElement(e)?e.ownerDocument:document:document:document}var Jm=Xm?e.useLayoutEffect:e.useEffect;function useEvent(t){const n=(0,e.useRef)(t);return Jm(()=>{n.current=t}),(0,e.useCallback)(function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return null==n.current?void 0:n.current(...t)},[])}function useInterval(){const t=(0,e.useRef)(null);return[(0,e.useCallback)((e,n)=>{t.current=setInterval(e,n)},[]),(0,e.useCallback)(()=>{null!==t.current&&(clearInterval(t.current),t.current=null)},[])]}function useLatestValue(t,n){void 0===n&&(n=[t]);const a=(0,e.useRef)(t);return Jm(()=>{a.current!==t&&(a.current=t)},n),a}function useLazyMemo(t,n){const a=(0,e.useRef)();return(0,e.useMemo)(()=>{const e=t(a.current);return a.current=e,e},[...n])}function useNodeRef(t){const n=useEvent(t),a=(0,e.useRef)(null);return[a,(0,e.useCallback)(e=>{e!==a.current&&n?.(e,a.current),a.current=e},[])]}function usePrevious(t){const n=(0,e.useRef)();return(0,e.useEffect)(()=>{n.current=t},[t]),n.current}var ef={};function useUniqueId(t,n){return(0,e.useMemo)(()=>{if(n)return n;const e=null==ef[t]?0:ef[t]+1;return ef[t]=e,t+"-"+e},[t,n])}function createAdjustmentFn(e){return function(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];return a.reduce((t,n)=>{const a=Object.entries(n);for(const[o,i]of a){const n=t[o];null!=n&&(t[o]=n+e*i)}return t},{...t})}}var tf=createAdjustmentFn(1),rf=createAdjustmentFn(-1);function hasViewportRelativeCoordinates(e){return"clientX"in e&&"clientY"in e}function isKeyboardEvent(e){if(!e)return!1;const{KeyboardEvent:t}=getWindow(e.target);return t&&e instanceof t}function isTouchEvent(e){if(!e)return!1;const{TouchEvent:t}=getWindow(e.target);return t&&e instanceof t}function getEventCoordinates(e){if(isTouchEvent(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return hasViewportRelativeCoordinates(e)?{x:e.clientX,y:e.clientY}:null}var nf=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[nf.Translate.toString(e),nf.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:a}=e;return t+" "+n+"ms "+a}}}),af="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function findFirstFocusableNode(e){return e.matches(af)?e:e.querySelector(af)}var of={display:"none"};function HiddenText(t){let{id:n,value:a}=t;return e.default.createElement("div",{id:n,style:of},a)}function LiveRegion(t){let{id:n,announcement:a,ariaLiveType:o="assertive"}=t;return e.default.createElement("div",{id:n,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":o,"aria-atomic":!0},a)}function useAnnouncement(){const[t,n]=(0,e.useState)("");return{announce:(0,e.useCallback)(e=>{null!=e&&n(e)},[]),announcement:t}}var sf=(0,e.createContext)(null);function useDndMonitor(t){const n=(0,e.useContext)(sf);(0,e.useEffect)(()=>{if(!n)throw new Error("useDndMonitor must be used within a children of <DndContext>");return n(t)},[t,n])}function useDndMonitorProvider(){const[t]=(0,e.useState)(()=>new Set),n=(0,e.useCallback)(e=>(t.add(e),()=>t.delete(e)),[t]);return[(0,e.useCallback)(e=>{let{type:n,event:a}=e;t.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,a)})},[t]),n]}var lf,cf={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},uf={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function Accessibility(n){let{announcements:a=uf,container:o,hiddenTextDescribedById:i,screenReaderInstructions:s=cf}=n;const{announce:l,announcement:c}=useAnnouncement(),u=useUniqueId("DndLiveRegion"),[d,p]=(0,e.useState)(!1);if((0,e.useEffect)(()=>{p(!0)},[]),useDndMonitor((0,e.useMemo)(()=>({onDragStart(e){let{active:t}=e;l(a.onDragStart({active:t}))},onDragMove(e){let{active:t,over:n}=e;a.onDragMove&&l(a.onDragMove({active:t,over:n}))},onDragOver(e){let{active:t,over:n}=e;l(a.onDragOver({active:t,over:n}))},onDragEnd(e){let{active:t,over:n}=e;l(a.onDragEnd({active:t,over:n}))},onDragCancel(e){let{active:t,over:n}=e;l(a.onDragCancel({active:t,over:n}))}}),[l,a])),!d)return null;const m=e.default.createElement(e.default.Fragment,null,e.default.createElement(HiddenText,{id:i,value:s.draggable}),e.default.createElement(LiveRegion,{id:u,announcement:c}));return o?(0,t.createPortal)(m,o):m}function noop(){}function useSensor(t,n){return(0,e.useMemo)(()=>({sensor:t,options:null!=n?n:{}}),[t,n])}function useSensors(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return(0,e.useMemo)(()=>[...n].filter(e=>null!=e),[...n])}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(lf||(lf={}));var df=Object.freeze({x:0,y:0});function distanceBetween(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function getRelativeTransformOrigin(e,t){const n=getEventCoordinates(e);if(!n)return"0 0";const a={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return a.x+"% "+a.y+"%"}function sortCollisionsAsc(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return n-a}function sortCollisionsDesc(e,t){let{data:{value:n}}=e,{data:{value:a}}=t;return a-n}function cornersOfRectangle(e){let{left:t,top:n,height:a,width:o}=e;return[{x:t,y:n},{x:t+o,y:n},{x:t,y:n+a},{x:t+o,y:n+a}]}function getFirstCollision(e,t){if(!e||0===e.length)return null;const[n]=e;return t?n[t]:n}var closestCorners=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const o=cornersOfRectangle(t),i=[];for(const s of a){const{id:e}=s,t=n.get(e);if(t){const n=cornersOfRectangle(t),a=o.reduce((e,t,a)=>e+distanceBetween(n[a],t),0),l=Number((a/4).toFixed(4));i.push({id:e,data:{droppableContainer:s,value:l}})}}return i.sort(sortCollisionsAsc)};function getIntersectionRatio(e,t){const n=Math.max(t.top,e.top),a=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),s=o-a,l=i-n;if(a<o&&n<i){const n=t.width*t.height,a=e.width*e.height,o=s*l;return Number((o/(n+a-o)).toFixed(4))}return 0}var rectIntersection=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:a}=e;const o=[];for(const i of a){const{id:e}=i,a=n.get(e);if(a){const n=getIntersectionRatio(a,t);n>0&&o.push({id:e,data:{droppableContainer:i,value:n}})}}return o.sort(sortCollisionsDesc)};function adjustScale(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function getRectDelta(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:df}function createRectAdjustmentFn(e){return function adjustClientRect(t){for(var n=arguments.length,a=new Array(n>1?n-1:0),o=1;o<n;o++)a[o-1]=arguments[o];return a.reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var pf=createRectAdjustmentFn(1);function parseTransform(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function inverseTransform(e,t,n){const a=parseTransform(t);if(!a)return e;const{scaleX:o,scaleY:i,x:s,y:l}=a,c=e.left-s-(1-o)*parseFloat(n),u=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=o?e.width/o:e.width,p=i?e.height/i:e.height;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c}}var mf,ff={ignoreTransform:!1};function getClientRect(e,t){void 0===t&&(t=ff);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:a}=getWindow(e).getComputedStyle(e);t&&(n=inverseTransform(n,t,a))}const{top:a,left:o,width:i,height:s,bottom:l,right:c}=n;return{top:a,left:o,width:i,height:s,bottom:l,right:c}}function getTransformAgnosticClientRect(e){return getClientRect(e,{ignoreTransform:!0})}function getWindowClientRect(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function isFixed(e,t){return void 0===t&&(t=getWindow(e).getComputedStyle(e)),"fixed"===t.position}function isScrollable(e,t){void 0===t&&(t=getWindow(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(e=>{const a=t[e];return"string"==typeof a&&n.test(a)})}function getScrollableAncestors(e,t){const n=[];function findScrollableAncestors(a){if(null!=t&&n.length>=t)return n;if(!a)return n;if(isDocument(a)&&null!=a.scrollingElement&&!n.includes(a.scrollingElement))return n.push(a.scrollingElement),n;if(!isHTMLElement(a)||isSVGElement(a))return n;if(n.includes(a))return n;const o=getWindow(e).getComputedStyle(a);return a!==e&&isScrollable(a,o)&&n.push(a),isFixed(a,o)?n:findScrollableAncestors(a.parentNode)}return e?findScrollableAncestors(e):n}function getFirstScrollableAncestor(e){const[t]=getScrollableAncestors(e,1);return null!=t?t:null}function getScrollableElement(e){return Xm&&e?isWindow(e)?e:isNode(e)?isDocument(e)||e===getOwnerDocument(e).scrollingElement?window:isHTMLElement(e)?e:null:null:null}function getScrollXCoordinate(e){return isWindow(e)?e.scrollX:e.scrollLeft}function getScrollYCoordinate(e){return isWindow(e)?e.scrollY:e.scrollTop}function getScrollCoordinates(e){return{x:getScrollXCoordinate(e),y:getScrollYCoordinate(e)}}function isDocumentScrollingElement(e){return!(!Xm||!e)&&e===document.scrollingElement}function getScrollPosition(e){const t={x:0,y:0},n=isDocumentScrollingElement(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},a={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=a.y,isRight:e.scrollLeft>=a.x,maxScroll:a,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(mf||(mf={}));var gf={x:.2,y:.2};function getScrollDirectionAndSpeed(e,t,n,a,o){let{top:i,left:s,right:l,bottom:c}=n;void 0===a&&(a=10),void 0===o&&(o=gf);const{isTop:u,isBottom:d,isLeft:p,isRight:m}=getScrollPosition(e),g={x:0,y:0},h={x:0,y:0},b={height:t.height*o.y,width:t.width*o.x};return!u&&i<=t.top+b.height?(g.y=mf.Backward,h.y=a*Math.abs((t.top+b.height-i)/b.height)):!d&&c>=t.bottom-b.height&&(g.y=mf.Forward,h.y=a*Math.abs((t.bottom-b.height-c)/b.height)),!m&&l>=t.right-b.width?(g.x=mf.Forward,h.x=a*Math.abs((t.right-b.width-l)/b.width)):!p&&s<=t.left+b.width&&(g.x=mf.Backward,h.x=a*Math.abs((t.left+b.width-s)/b.width)),{direction:g,speed:h}}function getScrollElementRect(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:a,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:a,bottom:o,width:e.clientWidth,height:e.clientHeight}}function getScrollOffsets(e){return e.reduce((e,t)=>tf(e,getScrollCoordinates(t)),df)}function getScrollXOffset(e){return e.reduce((e,t)=>e+getScrollXCoordinate(t),0)}function getScrollYOffset(e){return e.reduce((e,t)=>e+getScrollYCoordinate(t),0)}function scrollIntoViewIfNeeded(e,t){if(void 0===t&&(t=getClientRect),!e)return;const{top:n,left:a,bottom:o,right:i}=t(e);getFirstScrollableAncestor(e)&&(o<=0||i<=0||n>=window.innerHeight||a>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}var hf,bf,yf=[["x",["left","right"],getScrollXOffset],["y",["top","bottom"],getScrollYOffset]],vf=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=getScrollableAncestors(t),a=getScrollOffsets(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[o,i,s]of yf)for(const e of i)Object.defineProperty(this,e,{get:()=>{const t=s(n),i=a[o]-t;return this.rect[e]+i},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},Sf=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var a;null==(a=this.target)||a.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function getEventListenerTarget(e){const{EventTarget:t}=getWindow(e);return e instanceof t?e:getOwnerDocument(e)}function hasExceededDistance(e,t){const n=Math.abs(e.x),a=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+a**2)>t:"x"in t&&"y"in t?n>t.x&&a>t.y:"x"in t?n>t.x:"y"in t&&a>t.y}function preventDefault(e){e.preventDefault()}function stopPropagation(e){e.stopPropagation()}!function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"}(hf||(hf={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"}(bf||(bf={}));var xf={start:[bf.Space,bf.Enter],cancel:[bf.Esc],end:[bf.Space,bf.Enter,bf.Tab]},defaultKeyboardCoordinateGetter=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case bf.Right:return{...n,x:n.x+25};case bf.Left:return{...n,x:n.x-25};case bf.Down:return{...n,y:n.y+25};case bf.Up:return{...n,y:n.y-25}}},wf=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new Sf(getOwnerDocument(t)),this.windowListeners=new Sf(getWindow(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(hf.Resize,this.handleCancel),this.windowListeners.add(hf.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(hf.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&scrollIntoViewIfNeeded(n),t(df)}handleKeyDown(e){if(isKeyboardEvent(e)){const{active:t,context:n,options:a}=this.props,{keyboardCodes:o=xf,coordinateGetter:i=defaultKeyboardCoordinateGetter,scrollBehavior:s="smooth"}=a,{code:l}=e;if(o.end.includes(l))return void this.handleEnd(e);if(o.cancel.includes(l))return void this.handleCancel(e);const{collisionRect:c}=n.current,u=c?{x:c.left,y:c.top}:df;this.referenceCoordinates||(this.referenceCoordinates=u);const d=i(e,{active:t,context:n.current,currentCoordinates:u});if(d){const t=rf(d,u),a={x:0,y:0},{scrollableAncestors:o}=n.current;for(const n of o){const o=e.code,{isTop:i,isRight:l,isLeft:c,isBottom:u,maxScroll:p,minScroll:m}=getScrollPosition(n),g=getScrollElementRect(n),h={x:Math.min(o===bf.Right?g.right-g.width/2:g.right,Math.max(o===bf.Right?g.left:g.left+g.width/2,d.x)),y:Math.min(o===bf.Down?g.bottom-g.height/2:g.bottom,Math.max(o===bf.Down?g.top:g.top+g.height/2,d.y))},b=o===bf.Right&&!l||o===bf.Left&&!c,y=o===bf.Down&&!u||o===bf.Up&&!i;if(b&&h.x!==d.x){const e=n.scrollLeft+t.x,i=o===bf.Right&&e<=p.x||o===bf.Left&&e>=m.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:s});a.x=i?n.scrollLeft-e:o===bf.Right?n.scrollLeft-p.x:n.scrollLeft-m.x,a.x&&n.scrollBy({left:-a.x,behavior:s});break}if(y&&h.y!==d.y){const e=n.scrollTop+t.y,i=o===bf.Down&&e<=p.y||o===bf.Up&&e>=m.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:s});a.y=i?n.scrollTop-e:o===bf.Down?n.scrollTop-p.y:n.scrollTop-m.y,a.y&&n.scrollBy({top:-a.y,behavior:s});break}}this.handleMove(e,tf(rf(d,this.referenceCoordinates),a))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};function isDistanceConstraint(e){return Boolean(e&&"distance"in e)}function isDelayConstraint(e){return Boolean(e&&"delay"in e)}wf.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:a=xf,onActivation:o}=t,{active:i}=n;const{code:s}=e.nativeEvent;if(a.start.includes(s)){const t=i.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),o?.({event:e.nativeEvent}),!0)}return!1}}];var Cf=class{constructor(e,t,n){var a;void 0===n&&(n=getEventListenerTarget(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:o}=e,{target:i}=o;this.props=e,this.events=t,this.document=getOwnerDocument(i),this.documentListeners=new Sf(this.document),this.listeners=new Sf(n),this.windowListeners=new Sf(getWindow(i)),this.initialCoordinates=null!=(a=getEventCoordinates(o))?a:df,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(hf.Resize,this.handleCancel),this.windowListeners.add(hf.DragStart,preventDefault),this.windowListeners.add(hf.VisibilityChange,this.handleCancel),this.windowListeners.add(hf.ContextMenu,preventDefault),this.documentListeners.add(hf.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(isDelayConstraint(t))return this.timeoutId=setTimeout(this.handleStart,t.delay),void this.handlePending(t);if(isDistanceConstraint(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){const{active:n,onPending:a}=this.props;a(n,e,this.initialCoordinates,t)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(hf.Click,stopPropagation,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(hf.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:a,props:o}=this,{onMove:i,options:{activationConstraint:s}}=o;if(!a)return;const l=null!=(t=getEventCoordinates(e))?t:df,c=rf(a,l);if(!n&&s){if(isDistanceConstraint(s)){if(null!=s.tolerance&&hasExceededDistance(c,s.tolerance))return this.handleCancel();if(hasExceededDistance(c,s.distance))return this.handleStart()}return isDelayConstraint(s)&&hasExceededDistance(c,s.tolerance)?this.handleCancel():void this.handlePending(s,c)}e.cancelable&&e.preventDefault(),i(l)}handleEnd(){const{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){const{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===bf.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}},kf={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}},Ef=class extends Cf{constructor(e){const{event:t}=e,n=getOwnerDocument(t.target);super(e,kf,n)}};Ef.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return!(!n.isPrimary||0!==n.button)&&(a?.({event:n}),!0)}}];var _f,Pf={move:{name:"mousemove"},end:{name:"mouseup"}};!function(e){e[e.RightClick=2]="RightClick"}(_f||(_f={})),class extends Cf{constructor(e){super(e,Pf,getOwnerDocument(e.event.target))}}.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;return n.button!==_f.RightClick&&(a?.({event:n}),!0)}}];var Tf,Af,Rf={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}},Mf=class extends Cf{constructor(e){super(e,Rf)}static setup(){return window.addEventListener(Rf.move.name,noop,{capture:!1,passive:!1}),function teardown(){window.removeEventListener(Rf.move.name,noop)};function noop(){}}};function useAutoScroller(t){let{acceleration:n,activator:a=Tf.Pointer,canScroll:o,draggingRect:i,enabled:s,interval:l=5,order:c=Af.TreeOrder,pointerCoordinates:u,scrollableAncestors:d,scrollableAncestorRects:p,delta:m,threshold:g}=t;const h=useScrollIntent({delta:m,disabled:!s}),[b,y]=useInterval(),v=(0,e.useRef)({x:0,y:0}),S=(0,e.useRef)({x:0,y:0}),x=(0,e.useMemo)(()=>{switch(a){case Tf.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case Tf.DraggableRect:return i}},[a,i,u]),w=(0,e.useRef)(null),C=(0,e.useCallback)(()=>{const e=w.current;if(!e)return;const t=v.current.x*S.current.x,n=v.current.y*S.current.y;e.scrollBy(t,n)},[]),k=(0,e.useMemo)(()=>c===Af.TreeOrder?[...d].reverse():d,[c,d]);(0,e.useEffect)(()=>{if(s&&d.length&&x){for(const e of k){if(!1===(null==o?void 0:o(e)))continue;const t=p[d.indexOf(e)];if(!t)continue;const{direction:a,speed:i}=getScrollDirectionAndSpeed(e,t,x,n,g);for(const e of["x","y"])h[e][a[e]]||(i[e]=0,a[e]=0);if(i.x>0||i.y>0)return y(),w.current=e,b(C,l),v.current=i,void(S.current=a)}v.current={x:0,y:0},S.current={x:0,y:0},y()}else y()},[n,C,o,y,s,l,JSON.stringify(x),JSON.stringify(h),b,d,k,p,JSON.stringify(g)])}Mf.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:a}=t;const{touches:o}=n;return!(o.length>1)&&(a?.({event:n}),!0)}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(Tf||(Tf={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}(Af||(Af={}));var Df,Of,$f={x:{[mf.Backward]:!1,[mf.Forward]:!1},y:{[mf.Backward]:!1,[mf.Forward]:!1}};function useScrollIntent(e){let{delta:t,disabled:n}=e;const a=usePrevious(t);return useLazyMemo(e=>{if(n||!a||!e)return $f;const o={x:Math.sign(t.x-a.x),y:Math.sign(t.y-a.y)};return{x:{[mf.Backward]:e.x[mf.Backward]||-1===o.x,[mf.Forward]:e.x[mf.Forward]||1===o.x},y:{[mf.Backward]:e.y[mf.Backward]||-1===o.y,[mf.Forward]:e.y[mf.Forward]||1===o.y}}},[n,t,a])}function useCachedNode(e,t){const n=null!=t?e.get(t):void 0,a=n?n.node.current:null;return useLazyMemo(e=>{var n;return null==t?null:null!=(n=null!=a?a:e)?n:null},[a,t])}function useCombineActivators(t,n){return(0,e.useMemo)(()=>t.reduce((e,t)=>{const{sensor:a}=t;return[...e,...a.activators.map(e=>({eventName:e.eventName,handler:n(e.handler,t)}))]},[]),[t,n])}!function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"}(Df||(Df={})),function(e){e.Optimized="optimized"}(Of||(Of={}));var If=new Map;function useDroppableMeasuring(t,n){let{dragging:a,dependencies:o,config:i}=n;const[s,l]=(0,e.useState)(null),{frequency:c,measure:u,strategy:d}=i,p=(0,e.useRef)(t),m=isDisabled(),g=useLatestValue(m),h=(0,e.useCallback)(function(e){void 0===e&&(e=[]),g.current||l(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[g]),b=(0,e.useRef)(null),y=useLazyMemo(e=>{if(m&&!a)return If;if(!e||e===If||p.current!==t||null!=s){const e=new Map;for(let n of t){if(!n)continue;if(s&&s.length>0&&!s.includes(n.id)&&n.rect.current){e.set(n.id,n.rect.current);continue}const t=n.node.current,a=t?new vf(u(t),t):null;n.rect.current=a,a&&e.set(n.id,a)}return e}return e},[t,s,a,m,u]);return(0,e.useEffect)(()=>{p.current=t},[t]),(0,e.useEffect)(()=>{m||h()},[a,m]),(0,e.useEffect)(()=>{s&&s.length>0&&l(null)},[JSON.stringify(s)]),(0,e.useEffect)(()=>{m||"number"!=typeof c||null!==b.current||(b.current=setTimeout(()=>{h(),b.current=null},c))},[c,m,h,...o]),{droppableRects:y,measureDroppableContainers:h,measuringScheduled:null!=s};function isDisabled(){switch(d){case Df.Always:return!1;case Df.BeforeDragging:return a;default:return!a}}}function useInitialValue(e,t){return useLazyMemo(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function useInitialRect(e,t){return useInitialValue(e,t)}function useMutationObserver(t){let{callback:n,disabled:a}=t;const o=useEvent(n),i=(0,e.useMemo)(()=>{if(a||"undefined"==typeof window||void 0===window.MutationObserver)return;const{MutationObserver:e}=window;return new e(o)},[o,a]);return(0,e.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function useResizeObserver(t){let{callback:n,disabled:a}=t;const o=useEvent(n),i=(0,e.useMemo)(()=>{if(a||"undefined"==typeof window||void 0===window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(o)},[a]);return(0,e.useEffect)(()=>()=>null==i?void 0:i.disconnect(),[i]),i}function defaultMeasure(e){return new vf(getClientRect(e),e)}function useRect(t,n,a){void 0===n&&(n=defaultMeasure);const[o,i]=(0,e.useState)(null);function measureRect(){i(e=>{if(!t)return null;var o;if(!1===t.isConnected)return null!=(o=null!=e?e:a)?o:null;const i=n(t);return JSON.stringify(e)===JSON.stringify(i)?e:i})}const s=useMutationObserver({callback(e){if(t)for(const n of e){const{type:e,target:a}=n;if("childList"===e&&a instanceof HTMLElement&&a.contains(t)){measureRect();break}}}}),l=useResizeObserver({callback:measureRect});return Jm(()=>{measureRect(),t?(l?.observe(t),s?.observe(document.body,{childList:!0,subtree:!0})):(l?.disconnect(),s?.disconnect())},[t]),o}function useRectDelta(e){return getRectDelta(e,useInitialValue(e))}var Nf=[];function useScrollableAncestors(t){const n=(0,e.useRef)(t),a=useLazyMemo(e=>t?e&&e!==Nf&&t&&n.current&&t.parentNode===n.current.parentNode?e:getScrollableAncestors(t):Nf,[t]);return(0,e.useEffect)(()=>{n.current=t},[t]),a}function useScrollOffsets(t){const[n,a]=(0,e.useState)(null),o=(0,e.useRef)(t),i=(0,e.useCallback)(e=>{const t=getScrollableElement(e.target);t&&a(e=>e?(e.set(t,getScrollCoordinates(t)),new Map(e)):null)},[]);return(0,e.useEffect)(()=>{const e=o.current;if(t!==e){cleanup(e);const n=t.map(e=>{const t=getScrollableElement(e);return t?(t.addEventListener("scroll",i,{passive:!0}),[t,getScrollCoordinates(t)]):null}).filter(e=>null!=e);a(n.length?new Map(n):null),o.current=t}return()=>{cleanup(t),cleanup(e)};function cleanup(e){e.forEach(e=>{getScrollableElement(e)?.removeEventListener("scroll",i)})}},[i,t]),(0,e.useMemo)(()=>t.length?n?Array.from(n.values()).reduce((e,t)=>tf(e,t),df):getScrollOffsets(t):df,[t,n])}function useScrollOffsetsDelta(t,n){void 0===n&&(n=[]);const a=(0,e.useRef)(null);return(0,e.useEffect)(()=>{a.current=null},n),(0,e.useEffect)(()=>{const e=t!==df;e&&!a.current&&(a.current=t),!e&&a.current&&(a.current=null)},[t]),a.current?rf(t,a.current):df}function useSensorSetup(t){(0,e.useEffect)(()=>{if(!Xm)return;const e=t.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(const t of e)t?.()}},t.map(e=>{let{sensor:t}=e;return t}))}function useSyntheticListeners(t,n){return(0,e.useMemo)(()=>t.reduce((e,t)=>{let{eventName:a,handler:o}=t;return e[a]=e=>{o(e,n)},e},{}),[t,n])}function useWindowRect(t){return(0,e.useMemo)(()=>t?getWindowClientRect(t):null,[t])}var zf=[];function useRects(t,n){void 0===n&&(n=getClientRect);const[a]=t,o=useWindowRect(a?getWindow(a):null),[i,s]=(0,e.useState)(zf);function measureRects(){s(()=>t.length?t.map(e=>isDocumentScrollingElement(e)?o:new vf(n(e),e)):zf)}const l=useResizeObserver({callback:measureRects});return Jm(()=>{l?.disconnect(),measureRects(),t.forEach(e=>null==l?void 0:l.observe(e))},[t]),i}function getMeasurableNode(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return isHTMLElement(t)?t:e}function useDragOverlayMeasuring(t){let{measure:n}=t;const[a,o]=(0,e.useState)(null),i=useResizeObserver({callback:(0,e.useCallback)(e=>{for(const{target:t}of e)if(isHTMLElement(t)){o(e=>{const a=n(t);return e?{...e,width:a.width,height:a.height}:a});break}},[n])}),[s,l]=useNodeRef((0,e.useCallback)(e=>{const t=getMeasurableNode(e);i?.disconnect(),t&&i?.observe(t),o(t?n(t):null)},[n,i]));return(0,e.useMemo)(()=>({nodeRef:s,rect:a,setRef:l}),[a,s,l])}var Lf=[{sensor:Ef,options:{}},{sensor:wf,options:{}}],jf={current:{}},Bf={draggable:{measure:getTransformAgnosticClientRect},droppable:{measure:getTransformAgnosticClientRect,strategy:Df.WhileDragging,frequency:Of.Optimized},dragOverlay:{measure:getClientRect}},Ff=class extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}},qf={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Ff,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:noop},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Bf,measureDroppableContainers:noop,windowRect:null,measuringScheduled:!1},Uf={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:noop,draggableNodes:new Map,over:null,measureDroppableContainers:noop},Vf=(0,e.createContext)(Uf),Hf=(0,e.createContext)(qf);function getInitialState(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Ff}}}function reducer(e,t){switch(t.type){case lf.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case lf.DragMove:return null==e.draggable.active?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case lf.DragEnd:case lf.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case lf.RegisterDroppable:{const{element:n}=t,{id:a}=n,o=new Ff(e.droppable.containers);return o.set(a,n),{...e,droppable:{...e.droppable,containers:o}}}case lf.SetDroppableDisabled:{const{id:n,key:a,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||a!==i.key)return e;const s=new Ff(e.droppable.containers);return s.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:s}}}case lf.UnregisterDroppable:{const{id:n,key:a}=t,o=e.droppable.containers.get(n);if(!o||a!==o.key)return e;const i=new Ff(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function RestoreFocus(t){let{disabled:n}=t;const{active:a,activatorEvent:o,draggableNodes:i}=(0,e.useContext)(Vf),s=usePrevious(o),l=usePrevious(null==a?void 0:a.id);return(0,e.useEffect)(()=>{if(!n&&!o&&s&&null!=l){if(!isKeyboardEvent(s))return;if(document.activeElement===s.target)return;const e=i.get(l);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=findFirstFocusableNode(e);if(t){t.focus();break}}})}},[o,n,i,l,s]),null}function applyModifiers(e,t){let{transform:n,...a}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...a}),n):n}function useMeasuringConfiguration(t){return(0,e.useMemo)(()=>({draggable:{...Bf.draggable,...null==t?void 0:t.draggable},droppable:{...Bf.droppable,...null==t?void 0:t.droppable},dragOverlay:{...Bf.dragOverlay,...null==t?void 0:t.dragOverlay}}),[null==t?void 0:t.draggable,null==t?void 0:t.droppable,null==t?void 0:t.dragOverlay])}function useLayoutShiftScrollCompensation(t){let{activeNode:n,measure:a,initialRect:o,config:i=!0}=t;const s=(0,e.useRef)(!1),{x:l,y:c}="boolean"==typeof i?{x:i,y:i}:i;Jm(()=>{if(!l&&!c||!n)return void(s.current=!1);if(s.current||!o)return;const e=null==n?void 0:n.node.current;if(!e||!1===e.isConnected)return;const t=getRectDelta(a(e),o);if(l||(t.x=0),c||(t.y=0),s.current=!0,Math.abs(t.x)>0||Math.abs(t.y)>0){const n=getFirstScrollableAncestor(e);n&&n.scrollBy({top:t.y,left:t.x})}},[n,l,c,o,a])}var Wf,Gf=(0,e.createContext)({...df,scaleX:1,scaleY:1});!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(Wf||(Wf={}));var Yf=(0,e.memo)(function DndContext(n){var a,o,i,s;let{id:l,accessibility:c,autoScroll:u=!0,children:d,sensors:p=Lf,collisionDetection:m=rectIntersection,measuring:g,modifiers:h,...b}=n;const[y,v]=(0,e.useReducer)(reducer,void 0,getInitialState),[S,x]=useDndMonitorProvider(),[w,C]=(0,e.useState)(Wf.Uninitialized),k=w===Wf.Initialized,{draggable:{active:E,nodes:P,translate:T},droppable:{containers:R}}=y,M=null!=E?P.get(E):null,D=(0,e.useRef)({initial:null,translated:null}),O=(0,e.useMemo)(()=>{var e;return null!=E?{id:E,data:null!=(e=null==M?void 0:M.data)?e:jf,rect:D}:null},[E,M]),$=(0,e.useRef)(null),[I,N]=(0,e.useState)(null),[L,j]=(0,e.useState)(null),B=useLatestValue(b,Object.values(b)),F=useUniqueId("DndDescribedBy",l),q=(0,e.useMemo)(()=>R.getEnabled(),[R]),U=useMeasuringConfiguration(g),{droppableRects:V,measureDroppableContainers:H,measuringScheduled:W}=useDroppableMeasuring(q,{dragging:k,dependencies:[T.x,T.y],config:U.droppable}),G=useCachedNode(P,E),Y=(0,e.useMemo)(()=>L?getEventCoordinates(L):null,[L]),K=getAutoScrollerOptions(),Q=useInitialRect(G,U.draggable.measure);useLayoutShiftScrollCompensation({activeNode:null!=E?P.get(E):null,config:K.layoutShiftCompensation,initialRect:Q,measure:U.draggable.measure});const Z=useRect(G,U.draggable.measure,Q),X=useRect(G?G.parentElement:null),J=(0,e.useRef)({activatorEvent:null,active:null,activeNode:G,collisionRect:null,collisions:null,droppableRects:V,draggableNodes:P,draggingNode:null,draggingNodeRect:null,droppableContainers:R,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ee=R.getNodeFor(null==(a=J.current.over)?void 0:a.id),te=useDragOverlayMeasuring({measure:U.dragOverlay.measure}),re=null!=(o=te.nodeRef.current)?o:G,ne=k?null!=(i=te.rect)?i:Z:null,ae=Boolean(te.nodeRef.current&&te.rect),oe=useRectDelta(ae?null:Z),ie=useWindowRect(re?getWindow(re):null),se=useScrollableAncestors(k?null!=ee?ee:G:null),le=useRects(se),ce=applyModifiers(h,{transform:{x:T.x-oe.x,y:T.y-oe.y,scaleX:1,scaleY:1},activatorEvent:L,active:O,activeNodeRect:Z,containerNodeRect:X,draggingNodeRect:ne,over:J.current.over,overlayNodeRect:te.rect,scrollableAncestors:se,scrollableAncestorRects:le,windowRect:ie}),ue=Y?tf(Y,T):null,de=useScrollOffsets(se),pe=useScrollOffsetsDelta(de),me=useScrollOffsetsDelta(de,[Z]),fe=tf(ce,pe),ge=ne?pf(ne,ce):null,he=O&&ge?m({active:O,collisionRect:ge,droppableRects:V,droppableContainers:q,pointerCoordinates:ue}):null,be=getFirstCollision(he,"id"),[ye,ve]=(0,e.useState)(null),Se=adjustScale(ae?ce:tf(ce,me),null!=(s=null==ye?void 0:ye.rect)?s:null,Z),xe=(0,e.useRef)(null),we=(0,e.useCallback)((e,n)=>{let{sensor:a,options:o}=n;if(null==$.current)return;const i=P.get($.current);if(!i)return;const s=e.nativeEvent;function createHandler(e){return async function handler(){const{active:n,collisions:a,over:o,scrollAdjustedTranslate:i}=J.current;let l=null;if(n&&i){const{cancelDrop:t}=B.current;l={activatorEvent:s,active:n,collisions:a,delta:i,over:o},e===lf.DragEnd&&"function"==typeof t&&await Promise.resolve(t(l))&&(e=lf.DragCancel)}$.current=null,(0,t.unstable_batchedUpdates)(()=>{v({type:e}),C(Wf.Uninitialized),ve(null),N(null),j(null),xe.current=null;const t=e===lf.DragEnd?"onDragEnd":"onDragCancel";if(l){const e=B.current[t];e?.(l),S({type:t,event:l})}})}}xe.current=new a({active:$.current,activeNode:i,event:s,options:o,context:J,onAbort(e){if(!P.get(e))return;const{onDragAbort:t}=B.current,n={id:e};t?.(n),S({type:"onDragAbort",event:n})},onPending(e,t,n,a){if(!P.get(e))return;const{onDragPending:o}=B.current,i={id:e,constraint:t,initialCoordinates:n,offset:a};o?.(i),S({type:"onDragPending",event:i})},onStart(e){const n=$.current;if(null==n)return;const a=P.get(n);if(!a)return;const{onDragStart:o}=B.current,i={activatorEvent:s,active:{id:n,data:a.data,rect:D}};(0,t.unstable_batchedUpdates)(()=>{o?.(i),C(Wf.Initializing),v({type:lf.DragStart,initialCoordinates:e,active:n}),S({type:"onDragStart",event:i}),N(xe.current),j(s)})},onMove(e){v({type:lf.DragMove,coordinates:e})},onEnd:createHandler(lf.DragEnd),onCancel:createHandler(lf.DragCancel)})},[P]),Ce=useCombineActivators(p,(0,e.useCallback)((e,t)=>(n,a)=>{const o=n.nativeEvent,i=P.get(a);if(null!==$.current||!i||o.dndKit||o.defaultPrevented)return;const s={active:i};!0===e(n,t.options,s)&&(o.dndKit={capturedBy:t.sensor},$.current=a,we(n,t))},[P,we]));useSensorSetup(p),Jm(()=>{Z&&w===Wf.Initializing&&C(Wf.Initialized)},[Z,w]),(0,e.useEffect)(()=>{const{onDragMove:e}=B.current,{active:n,activatorEvent:a,collisions:o,over:i}=J.current;if(!n||!a)return;const s={active:n,activatorEvent:a,collisions:o,delta:{x:fe.x,y:fe.y},over:i};(0,t.unstable_batchedUpdates)(()=>{e?.(s),S({type:"onDragMove",event:s})})},[fe.x,fe.y]),(0,e.useEffect)(()=>{const{active:e,activatorEvent:n,collisions:a,droppableContainers:o,scrollAdjustedTranslate:i}=J.current;if(!e||null==$.current||!n||!i)return;const{onDragOver:s}=B.current,l=o.get(be),c=l&&l.rect.current?{id:l.id,rect:l.rect.current,data:l.data,disabled:l.disabled}:null,u={active:e,activatorEvent:n,collisions:a,delta:{x:i.x,y:i.y},over:c};(0,t.unstable_batchedUpdates)(()=>{ve(c),s?.(u),S({type:"onDragOver",event:u})})},[be]),Jm(()=>{J.current={activatorEvent:L,active:O,activeNode:G,collisionRect:ge,collisions:he,droppableRects:V,draggableNodes:P,draggingNode:re,draggingNodeRect:ne,droppableContainers:R,over:ye,scrollableAncestors:se,scrollAdjustedTranslate:fe},D.current={initial:ne,translated:ge}},[O,G,he,ge,P,re,ne,V,R,ye,se,fe]),useAutoScroller({...K,delta:T,draggingRect:ge,pointerCoordinates:ue,scrollableAncestors:se,scrollableAncestorRects:le});const ke=(0,e.useMemo)(()=>({active:O,activeNode:G,activeNodeRect:Z,activatorEvent:L,collisions:he,containerNodeRect:X,dragOverlay:te,draggableNodes:P,droppableContainers:R,droppableRects:V,over:ye,measureDroppableContainers:H,scrollableAncestors:se,scrollableAncestorRects:le,measuringConfiguration:U,measuringScheduled:W,windowRect:ie}),[O,G,Z,L,he,X,te,P,R,V,ye,H,se,le,U,W,ie]),Ee=(0,e.useMemo)(()=>({activatorEvent:L,activators:Ce,active:O,activeNodeRect:Z,ariaDescribedById:{draggable:F},dispatch:v,draggableNodes:P,over:ye,measureDroppableContainers:H}),[L,Ce,O,Z,v,F,P,ye,H]);return e.default.createElement(sf.Provider,{value:x},e.default.createElement(Vf.Provider,{value:Ee},e.default.createElement(Hf.Provider,{value:ke},e.default.createElement(Gf.Provider,{value:Se},d)),e.default.createElement(RestoreFocus,{disabled:!1===(null==c?void 0:c.restoreFocus)})),e.default.createElement(Accessibility,{...c,hiddenTextDescribedById:F}));function getAutoScrollerOptions(){const e=!1===(null==I?void 0:I.autoScrollEnabled),t="object"==typeof u?!1===u.enabled:!1===u,n=k&&!e&&!t;return"object"==typeof u?{...u,enabled:n}:{enabled:n}}}),Kf=(0,e.createContext)(null),Qf="button",Zf="Draggable";function useDraggable(t){let{id:n,data:a,disabled:o=!1,attributes:i}=t;const s=useUniqueId(Zf),{activators:l,activatorEvent:c,active:u,activeNodeRect:d,ariaDescribedById:p,draggableNodes:m,over:g}=(0,e.useContext)(Vf),{role:h=Qf,roleDescription:b="draggable",tabIndex:y=0}=null!=i?i:{},v=(null==u?void 0:u.id)===n,S=(0,e.useContext)(v?Gf:Kf),[x,w]=useNodeRef(),[C,k]=useNodeRef(),E=useSyntheticListeners(l,n),P=useLatestValue(a);return Jm(()=>(m.set(n,{id:n,key:s,node:x,activatorNode:C,data:P}),()=>{const e=m.get(n);e&&e.key===s&&m.delete(n)}),[m,n]),{active:u,activatorEvent:c,activeNodeRect:d,attributes:(0,e.useMemo)(()=>({role:h,tabIndex:y,"aria-disabled":o,"aria-pressed":!(!v||h!==Qf)||void 0,"aria-roledescription":b,"aria-describedby":p.draggable}),[o,h,y,v,b,p.draggable]),isDragging:v,listeners:o?void 0:E,node:x,over:g,setNodeRef:w,setActivatorNodeRef:k,transform:S}}function useDndContext(){return(0,e.useContext)(Hf)}var Xf="Droppable",Jf={timeout:25};function useDroppable(t){let{data:n,disabled:a=!1,id:o,resizeObserverConfig:i}=t;const s=useUniqueId(Xf),{active:l,dispatch:c,over:u,measureDroppableContainers:d}=(0,e.useContext)(Vf),p=(0,e.useRef)({disabled:a}),m=(0,e.useRef)(!1),g=(0,e.useRef)(null),h=(0,e.useRef)(null),{disabled:b,updateMeasurementsFor:y,timeout:v}={...Jf,...i},S=useLatestValue(null!=y?y:o),x=useResizeObserver({callback:(0,e.useCallback)(()=>{m.current?(null!=h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{d(Array.isArray(S.current)?S.current:[S.current]),h.current=null},v)):m.current=!0},[v]),disabled:b||!l}),[w,C]=useNodeRef((0,e.useCallback)((e,t)=>{x&&(t&&(x.unobserve(t),m.current=!1),e&&x.observe(e))},[x])),k=useLatestValue(n);return(0,e.useEffect)(()=>{x&&w.current&&(x.disconnect(),m.current=!1,x.observe(w.current))},[w,x]),(0,e.useEffect)(()=>(c({type:lf.RegisterDroppable,element:{id:o,key:s,disabled:a,node:w,rect:g,data:k}}),()=>c({type:lf.UnregisterDroppable,key:s,id:o})),[o]),(0,e.useEffect)(()=>{a!==p.current.disabled&&(c({type:lf.SetDroppableDisabled,id:o,key:s,disabled:a}),p.current.disabled=a)},[o,s,a,c]),{active:l,rect:g,isOver:(null==u?void 0:u.id)===o,node:w,over:u,setNodeRef:C}}function AnimationManager(t){let{animation:n,children:a}=t;const[o,i]=(0,e.useState)(null),[s,l]=(0,e.useState)(null),c=usePrevious(a);return a||o||!c||i(c),Jm(()=>{if(!s)return;const e=null==o?void 0:o.key,t=null==o?void 0:o.props.id;null!=e&&null!=t?Promise.resolve(n(t,s)).then(()=>{i(null)}):i(null)},[n,o,s]),e.default.createElement(e.default.Fragment,null,a,o?(0,e.cloneElement)(o,{ref:l}):null)}var eg={x:0,y:0,scaleX:1,scaleY:1};function NullifiedContextProvider(t){let{children:n}=t;return e.default.createElement(Vf.Provider,{value:Uf},e.default.createElement(Gf.Provider,{value:eg},n))}var tg={position:"fixed",touchAction:"none"},defaultTransition$1=e=>isKeyboardEvent(e)?"transform 250ms ease":void 0,rg=(0,e.forwardRef)((t,n)=>{let{as:a,activatorEvent:o,adjustScale:i,children:s,className:l,rect:c,style:u,transform:d,transition:p=defaultTransition$1}=t;if(!c)return null;const m=i?d:{...d,scaleX:1,scaleY:1},g={...tg,width:c.width,height:c.height,top:c.top,left:c.left,transform:nf.Transform.toString(m),transformOrigin:i&&o?getRelativeTransformOrigin(o,c):void 0,transition:"function"==typeof p?p(o):p,...u};return e.default.createElement(a,{className:l,style:g,ref:n},s)}),defaultDropAnimationSideEffects=e=>t=>{let{active:n,dragOverlay:a}=t;const o={},{styles:i,className:s}=e;if(null!=i&&i.active)for(const[e,l]of Object.entries(i.active))void 0!==l&&(o[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,l));if(null!=i&&i.dragOverlay)for(const[e,l]of Object.entries(i.dragOverlay))void 0!==l&&a.node.style.setProperty(e,l);return null!=s&&s.active&&n.node.classList.add(s.active),null!=s&&s.dragOverlay&&a.node.classList.add(s.dragOverlay),function cleanup(){for(const[e,t]of Object.entries(o))n.node.style.setProperty(e,t);null!=s&&s.active&&n.node.classList.remove(s.active)}},ng={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:nf.Transform.toString(t)},{transform:nf.Transform.toString(n)}]},sideEffects:defaultDropAnimationSideEffects({styles:{active:{opacity:"0"}}})};function useDropAnimation(e){let{config:t,draggableNodes:n,droppableContainers:a,measuringConfiguration:o}=e;return useEvent((e,i)=>{if(null===t)return;const s=n.get(e);if(!s)return;const l=s.node.current;if(!l)return;const c=getMeasurableNode(i);if(!c)return;const{transform:u}=getWindow(i).getComputedStyle(i),d=parseTransform(u);if(!d)return;const p="function"==typeof t?t:createDefaultDropAnimation(t);return scrollIntoViewIfNeeded(l,o.draggable.measure),p({active:{id:e,data:s.data,node:l,rect:o.draggable.measure(l)},draggableNodes:n,dragOverlay:{node:i,rect:o.dragOverlay.measure(c)},droppableContainers:a,measuringConfiguration:o,transform:d})})}function createDefaultDropAnimation(e){const{duration:t,easing:n,sideEffects:a,keyframes:o}={...ng,...e};return e=>{let{active:i,dragOverlay:s,transform:l,...c}=e;if(!t)return;const u={x:s.rect.left-i.rect.left,y:s.rect.top-i.rect.top},d={scaleX:1!==l.scaleX?i.rect.width*l.scaleX/s.rect.width:1,scaleY:1!==l.scaleY?i.rect.height*l.scaleY/s.rect.height:1},p={x:l.x-u.x,y:l.y-u.y,...d},m=o({...c,active:i,dragOverlay:s,transform:{initial:l,final:p}}),[g]=m,h=m[m.length-1];if(JSON.stringify(g)===JSON.stringify(h))return;const b=null==a?void 0:a({active:i,dragOverlay:s,...c}),y=s.node.animate(m,{duration:t,easing:n,fill:"forwards"});return new Promise(e=>{y.onfinish=()=>{b?.(),e()}})}}var ag=0;function useKey(t){return(0,e.useMemo)(()=>{if(null!=t)return++ag},[t])}var og=e.default.memo(t=>{let{adjustScale:n=!1,children:a,dropAnimation:o,style:i,transition:s,modifiers:l,wrapperElement:c="div",className:u,zIndex:d=999}=t;const{activatorEvent:p,active:m,activeNodeRect:g,containerNodeRect:h,draggableNodes:b,droppableContainers:y,dragOverlay:v,over:S,measuringConfiguration:x,scrollableAncestors:w,scrollableAncestorRects:C,windowRect:k}=useDndContext(),E=(0,e.useContext)(Gf),P=useKey(null==m?void 0:m.id),T=applyModifiers(l,{activatorEvent:p,active:m,activeNodeRect:g,containerNodeRect:h,draggingNodeRect:v.rect,over:S,overlayNodeRect:v.rect,scrollableAncestors:w,scrollableAncestorRects:C,transform:E,windowRect:k}),R=useInitialValue(g),M=useDropAnimation({config:o,draggableNodes:b,droppableContainers:y,measuringConfiguration:x}),D=R?v.setRef:void 0;return e.default.createElement(NullifiedContextProvider,null,e.default.createElement(AnimationManager,{animation:M},m&&P?e.default.createElement(rg,{key:P,id:m.id,ref:D,as:c,activatorEvent:p,adjustScale:n,className:u,transition:s,rect:R,style:{zIndex:d,...i},transform:T},a):null))});function arrayMove(e,t,n){const a=e.slice();return a.splice(n<0?a.length+n:n,0,a.splice(t,1)[0]),a}function getSortedRects(e,t){return e.reduce((e,n,a)=>{const o=t.get(n);return o&&(e[a]=o),e},Array(e.length))}function isValidIndex(e){return null!==e&&e>=0}function itemsEqual(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function normalizeDisabled(e){return"boolean"==typeof e?{draggable:e,droppable:e}:e}var rectSortingStrategy=e=>{let{rects:t,activeIndex:n,overIndex:a,index:o}=e;const i=arrayMove(t,a,n),s=t[o],l=i[o];return l&&s?{x:l.left-s.left,y:l.top-s.top,scaleX:l.width/s.width,scaleY:l.height/s.height}:null},ig={scaleX:1,scaleY:1},verticalListSortingStrategy=e=>{var t;let{activeIndex:n,activeNodeRect:a,index:o,rects:i,overIndex:s}=e;const l=null!=(t=i[n])?t:a;if(!l)return null;if(o===n){const e=i[s];return e?{x:0,y:n<s?e.top+e.height-(l.top+l.height):e.top-l.top,...ig}:null}const c=getItemGap$1(i,o,n);return o>n&&o<=s?{x:0,y:-l.height-c,...ig}:o<n&&o>=s?{x:0,y:l.height+c,...ig}:{x:0,y:0,...ig}};function getItemGap$1(e,t,n){const a=e[t],o=e[t-1],i=e[t+1];return a?n<t?o?a.top-(o.top+o.height):i?i.top-(a.top+a.height):0:i?i.top-(a.top+a.height):o?a.top-(o.top+o.height):0:0}var sg="Sortable",lg=e.default.createContext({activeIndex:-1,containerId:sg,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:rectSortingStrategy,disabled:{draggable:!1,droppable:!1}});function SortableContext(t){let{children:n,id:a,items:o,strategy:i=rectSortingStrategy,disabled:s=!1}=t;const{active:l,dragOverlay:c,droppableRects:u,over:d,measureDroppableContainers:p}=useDndContext(),m=useUniqueId(sg,a),g=Boolean(null!==c.rect),h=(0,e.useMemo)(()=>o.map(e=>"object"==typeof e&&"id"in e?e.id:e),[o]),b=null!=l,y=l?h.indexOf(l.id):-1,v=d?h.indexOf(d.id):-1,S=(0,e.useRef)(h),x=!itemsEqual(h,S.current),w=-1!==v&&-1===y||x,C=normalizeDisabled(s);Jm(()=>{x&&b&&p(h)},[x,h,b,p]),(0,e.useEffect)(()=>{S.current=h},[h]);const k=(0,e.useMemo)(()=>({activeIndex:y,containerId:m,disabled:C,disableTransforms:w,items:h,overIndex:v,useDragOverlay:g,sortedRects:getSortedRects(h,u),strategy:i}),[y,m,C.draggable,C.droppable,w,h,v,u,g,i]);return e.default.createElement(lg.Provider,{value:k},n)}var defaultNewIndexGetter=e=>{let{id:t,items:n,activeIndex:a,overIndex:o}=e;return arrayMove(n,a,o).indexOf(t)},defaultAnimateLayoutChanges=e=>{let{containerId:t,isSorting:n,wasDragging:a,index:o,items:i,newIndex:s,previousItems:l,previousContainerId:c,transition:u}=e;return!(!u||!a)&&((l===i||o!==s)&&(!!n||s!==o&&t===c))},cg={duration:200,easing:"ease"},ug="transform",dg=nf.Transition.toString({property:ug,duration:0,easing:"linear"}),pg={roleDescription:"sortable"};function useDerivedTransform(t){let{disabled:n,index:a,node:o,rect:i}=t;const[s,l]=(0,e.useState)(null),c=(0,e.useRef)(a);return Jm(()=>{if(!n&&a!==c.current&&o.current){const e=i.current;if(e){const t=getClientRect(o.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&l(n)}}a!==c.current&&(c.current=a)},[n,a,o,i]),(0,e.useEffect)(()=>{s&&l(null)},[s]),s}function useSortable(t){let{animateLayoutChanges:n=defaultAnimateLayoutChanges,attributes:a,disabled:o,data:i,getNewIndex:s=defaultNewIndexGetter,id:l,strategy:c,resizeObserverConfig:u,transition:d=cg}=t;const{items:p,containerId:m,activeIndex:g,disabled:h,disableTransforms:b,sortedRects:y,overIndex:v,useDragOverlay:S,strategy:x}=(0,e.useContext)(lg),w=normalizeLocalDisabled(o,h),C=p.indexOf(l),k=(0,e.useMemo)(()=>({sortable:{containerId:m,index:C,items:p},...i}),[m,i,C,p]),E=(0,e.useMemo)(()=>p.slice(p.indexOf(l)),[p,l]),{rect:P,node:T,isOver:R,setNodeRef:M}=useDroppable({id:l,data:k,disabled:w.droppable,resizeObserverConfig:{updateMeasurementsFor:E,...u}}),{active:D,activatorEvent:O,activeNodeRect:$,attributes:I,setNodeRef:N,listeners:L,isDragging:j,over:B,setActivatorNodeRef:F,transform:q}=useDraggable({id:l,data:k,attributes:{...pg,...a},disabled:w.draggable}),U=useCombinedRefs(M,N),V=Boolean(D),H=V&&!b&&isValidIndex(g)&&isValidIndex(v),W=!S&&j,G=W&&H?q:null,Y=H?null!=G?G:(null!=c?c:x)({rects:y,activeNodeRect:$,activeIndex:g,overIndex:v,index:C}):null,K=isValidIndex(g)&&isValidIndex(v)?s({id:l,items:p,activeIndex:g,overIndex:v}):C,Q=null==D?void 0:D.id,Z=(0,e.useRef)({activeId:Q,items:p,newIndex:K,containerId:m}),X=p!==Z.current.items,J=n({active:D,containerId:m,isDragging:j,isSorting:V,id:l,index:C,items:p,newIndex:Z.current.newIndex,previousItems:Z.current.items,previousContainerId:Z.current.containerId,transition:d,wasDragging:null!=Z.current.activeId}),ee=useDerivedTransform({disabled:!J,index:C,node:T,rect:P});return(0,e.useEffect)(()=>{V&&Z.current.newIndex!==K&&(Z.current.newIndex=K),m!==Z.current.containerId&&(Z.current.containerId=m),p!==Z.current.items&&(Z.current.items=p)},[V,K,m,p]),(0,e.useEffect)(()=>{if(Q===Z.current.activeId)return;if(null!=Q&&null==Z.current.activeId)return void(Z.current.activeId=Q);const e=setTimeout(()=>{Z.current.activeId=Q},50);return()=>clearTimeout(e)},[Q]),{active:D,activeIndex:g,attributes:I,data:k,rect:P,index:C,newIndex:K,items:p,isOver:R,isSorting:V,isDragging:j,listeners:L,node:T,overIndex:v,over:B,setNodeRef:U,setActivatorNodeRef:F,setDroppableNodeRef:M,setDraggableNodeRef:N,transform:null!=ee?ee:Y,transition:getTransition()};function getTransition(){return ee||X&&Z.current.newIndex===C?dg:W&&!isKeyboardEvent(O)||!d?void 0:V||J?nf.Transition.toString({...d,property:ug}):void 0}}function normalizeLocalDisabled(e,t){var n,a;return"boolean"==typeof e?{draggable:e,droppable:!1}:{draggable:null!=(n=null==e?void 0:e.draggable)?n:t.draggable,droppable:null!=(a=null==e?void 0:e.droppable)?a:t.droppable}}function hasSortableData(e){if(!e)return!1;const t=e.data.current;return!!(t&&"sortable"in t&&"object"==typeof t.sortable&&"containerId"in t.sortable&&"items"in t.sortable&&"index"in t.sortable)}var mg=[bf.Down,bf.Right,bf.Up,bf.Left],sortableKeyboardCoordinates=(e,t)=>{let{context:{active:n,collisionRect:a,droppableRects:o,droppableContainers:i,over:s,scrollableAncestors:l}}=t;if(mg.includes(e.code)){if(e.preventDefault(),!n||!a)return;const t=[];i.getEnabled().forEach(n=>{if(!n||null!=n&&n.disabled)return;const i=o.get(n.id);if(i)switch(e.code){case bf.Down:a.top<i.top&&t.push(n);break;case bf.Up:a.top>i.top&&t.push(n);break;case bf.Left:a.left>i.left&&t.push(n);break;case bf.Right:a.left<i.left&&t.push(n)}});const c=closestCorners({active:n,collisionRect:a,droppableRects:o,droppableContainers:t,pointerCoordinates:null});let u=getFirstCollision(c,"id");if(u===(null==s?void 0:s.id)&&c.length>1&&(u=c[1].id),null!=u){const e=i.get(n.id),t=i.get(u),s=t?o.get(t.id):null,c=null==t?void 0:t.node.current;if(c&&s&&e&&t){const n=getScrollableAncestors(c).some((e,t)=>l[t]!==e),o=isSameContainer(e,t),i=isAfter(e,t),u=n||!o?{x:0,y:0}:{x:i?a.width-s.width:0,y:i?a.height-s.height:0},d={x:s.left,y:s.top};return u.x&&u.y?d:rf(d,u)}}}};function isSameContainer(e,t){return!(!hasSortableData(e)||!hasSortableData(t))&&e.data.current.sortable.containerId===t.data.current.sortable.containerId}function isAfter(e,t){return!(!hasSortableData(e)||!hasSortableData(t))&&(!!isSameContainer(e,t)&&e.data.current.sortable.index<t.data.current.sortable.index)}function useNexSysSnapshot(e){return(0,c.useSyncExternalStore)((0,c.useCallback)(t=>{const n=e.events.topics,a=[n.SYSTEM_SETTINGS_CHANGED,n.SYSTEM_STATUS_CHANGED,n.SYSTEM_CLASS_CHANGED,n.AFF_PRIORITY_CHANGED,n.DEF_PRIORITY_CHANGED,n.CACHE_PRECACHE_CHANGED,n.SYSTEM_RUNTIME_CHANGED];return a.forEach(n=>e.events.on(n,t)),()=>a.forEach(n=>e.events.off(n,t))},[e]),e.runtime.snapshot,e.runtime.snapshot)}var fg=Object.freeze({}),gg=new Set(Object.keys(U?.types?.nonServerside??{}));function buildColumns(e,t={}){return Km({},n=>{for(let e=0;e<=26;e++)n[`col-${e}`]={id:`col-${e}`,label:0===e?"Disabled":`Prio ${e}`,priority:e,affs:[]};for(const[a,o]of Object.entries(e)){if(gg.has(a))continue;const e=Number(t[a]??o.defaultPriority??0);!Number.isFinite(e)||e>26||n[`col-${Math.max(0,Math.min(26,e))}`].affs.push(a)}})}function findContainer(e,t){return t[e]?e:Object.keys(t).find(n=>t[n].affs.includes(e))??null}function useAffPriorities(e,t={}){const[n,a]=(0,c.useState)(null),[o,i]=(0,c.useState)(null),s=(0,c.useRef)(null),l=useNexSysSnapshot(e)?.affs??fg,{affPriorities:u=fg,setAffPriority:d}=t,p=(0,c.useMemo)(()=>buildColumns(l,u),[l,u]);return{columns:o??p,activeId:n,sensors:useSensors(useSensor(Ef,{activationConstraint:{distance:4}}),useSensor(wf,{coordinateGetter:sortableKeyboardCoordinates})),onDragStart:(0,c.useCallback)(({active:e})=>{a(String(e.id));const t=Km(p,()=>{});s.current=t,i(t)},[p]),onDragOver:(0,c.useCallback)(({active:e,over:t})=>{if(!t)return;const n=String(e.id),a=String(t.id),o=s.current;if(!o)return;const l=findContainer(n,o),c=findContainer(a,o);if(!l||!c)return;let u;if(l===c){const e=o[l].affs,t=e.indexOf(n),i=e.indexOf(a);if(-1===t||-1===i||t===i)return;u=Km(o,n=>{n[l].affs=arrayMove(e,t,i)})}else u=Km(o,e=>{const t=e[l].affs,o=e[c].affs;if(-1===t.indexOf(n))return;const i=o.indexOf(a),s=-1===i?o.length:i;e[l].affs=t.filter(e=>e!==n),e[c].affs=[...o.slice(0,s),n,...o.slice(s)]});s.current=u,i(u)},[]),onDragEnd:(0,c.useCallback)(({active:e,over:t})=>{a(null);const n=s.current;if(s.current=null,i(null),!t||!n)return;const o=String(e.id),l=findContainer(o,n);if(!l)return;const c=n[l]?.priority??0;c!==(p[findContainer(o,p)]?.priority??0)&&d?.(o,c)},[p,d]),onDragCancel:(0,c.useCallback)(()=>{a(null),s.current=null,i(null)},[])}}var hg={antimony:"olive",argentum:"royalblue",aurum:"ForestGreen",calcite:"slategray",cinnabar:"greenyellow",cuprum:"DeepSkyBlue",ferrum:"DarkOrange",magnesium:"Red",plumbum:"Gold",realgar:"firebrick",stannum:"Tan",caloric:"darkseagreen",mending:"orchid",epidermal:"sienna",restoration:"darkviolet",health:"lightpink",writhe:"PaleGoldenRod"},bg={ginseng:"ferrum",bloodroot:"magnesium",kelp:"aurum",hawthorn:"calamine",lobelia:"argentum",bellwort:"cuprum",ginger:"antimony",bayberry:"arsenic",ash:"stannum",goldenseal:"plumbum",pear:"calcite",elm:"cinnabar",valerian:"realgar",skullcap:"azurite",moss:"potash",kola:"quartz",sileris:"quicksilver",cohosh:"gypsum"};function resolveCureColor(e){if(e in hg)return hg[e]??null;const t=bg[e];if(t)return hg[t]??null;const n=e.match(/^(caloric|mending|epidermal|restoration|health)\b/);return n?hg[n[1]]??null:null}var yg=["bound","daeggerimpale","entangled","impaled","transfixation","webbed","icebound"],vg={};for(const[Mg,Dg]of Object.entries(Y))for(const e of Dg){const t=resolveCureColor(e);if(t){vg[Mg]=t;break}}for(const Mg of yg)vg[Mg]||(vg[Mg]=hg.writhe);function getAffColor(e){return vg[e]??null}function AffChip({name:e,isDragging:t=!1}){const n=getAffColor(e);return(0,Oa.jsx)(cc,{label:e,size:"small",sx:{fontSize:13,height:22,mb:.25,padding:.5,opacity:t?.4:1,cursor:"grab",bgcolor:"rgba(0,0,0,0.5)",color:n??"text.secondary",border:"1px solid "+(n?n+"55":"rgba(255,255,255,0.2)"),"& .MuiChip-label":{px:.75},"&:active":{cursor:"grabbing"}}})}function SortableAffChip({name:e}){const{attributes:t,listeners:n,setNodeRef:a,transform:o,transition:i,isDragging:s}=useSortable({id:e});return(0,Oa.jsx)(Mc,{ref:a,...t,...n,sx:{transform:nf.Transform.toString(o),transition:i,touchAction:"none"},children:(0,Oa.jsx)(AffChip,{name:e,isDragging:s})})}function PriorityColumn({column:e}){const t=0===e.priority,{setNodeRef:n}=useDroppable({id:e.id});return(0,Oa.jsxs)(Mc,{sx:{minWidth:125,maxWidth:125,border:"1px solid",borderColor:t?"rgba(255,255,255,0.1)":"rgba(79,195,247,0.2)",borderRadius:1,p:.5,bgcolor:t?"rgba(0,0,0,0.2)":"rgba(79,195,247,0.04)",flexShrink:0},children:[(0,Oa.jsx)(Tl,{variant:"caption",sx:{display:"block",textAlign:"center",fontWeight:700,color:t?"text.secondary":"primary.main",mb:.5,fontSize:13},children:e.label}),(0,Oa.jsx)(SortableContext,{items:e.affs,strategy:verticalListSortingStrategy,children:(0,Oa.jsx)(Mc,{ref:n,sx:{minHeight:28,display:"flex",flexDirection:"column"},children:e.affs.map(e=>(0,Oa.jsx)(SortableAffChip,{name:e},e))})})]})}function AffPrioritiesTab({settingsForm:e}){const{columns:t,activeId:n,sensors:a,onDragStart:o,onDragOver:i,onDragEnd:s,onDragCancel:l}=useAffPriorities(useNexSys(),e);return(0,Oa.jsx)(Mc,{sx:{py:1},children:(0,Oa.jsx)(Mc,{sx:{display:"inline-flex",gap:.75,alignItems:"flex-start"},children:(0,Oa.jsxs)(Yf,{sensors:a,collisionDetection:closestCorners,onDragStart:o,onDragOver:i,onDragEnd:s,onDragCancel:l,children:[Object.keys(t).map(e=>(0,Oa.jsx)(PriorityColumn,{column:t[e]},e)),(0,Oa.jsx)(og,{children:n?(0,Oa.jsx)(AffChip,{name:n}):null})]})})})}var Sg=createSvgIcon((0,Oa.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 17h-2v-2h2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25"}),"HelpOutlined"),xg=Object.freeze({}),wg=Object.freeze({}),getDefaultClassFilter=(e="")=>{const t=normalizeClassName(e);return we.includes(t)?t:"all"};function useDefPriorities(e,t={}){const n=useNexSysSnapshot(e)??xg,a=n.defs??wg,o=n.system?.char?.class??"",{defPriorities:i=wg,defStatics:s=wg,setDefPriority:l,setDefStatic:u}=t,d=(0,c.useMemo)(()=>getDefaultClassFilter(o),[o]),[p,m]=(0,c.useState)(null),g=p??d,h=(0,c.useMemo)(()=>["all",...we],[]),b=(0,c.useMemo)(()=>Object.entries(a).reduce((e,[t,n])=>(e[t]={...n,defaultPriority:i[t]??n.defaultPriority,static:s[t]??n.static},e),{}),[a,i,s]),y=(0,c.useMemo)(()=>Object.entries(b).filter(([,e])=>!0===e.serverside),[b]),v=(0,c.useMemo)(()=>"all"===g?y.map(([e])=>e):y.filter(([,e])=>classListIncludes(e.skills,g)).map(([e])=>e),[y,g]),S=(0,c.useCallback)((e,t)=>{u?.(e,t)},[u]),x=(0,c.useCallback)((e,t)=>{l?.(e,t)},[l]);return{defList:v,defsState:b,classFilter:g,setClassFilter:(0,c.useCallback)(e=>{m(e)},[]),classOptions:h,updateStatic:S,updatePriority:x}}function defNameColor(e){const t=e?.bals_used??[],n=e?.bals_req??[],a=["balance","equilibrium"];return t.some(e=>a.includes(e))?"tomato":n.some(e=>a.includes(e))?"yellow":"dodgerblue"}var Cg=(0,Oa.jsxs)(Mc,{sx:{fontSize:13,lineHeight:1.6},children:[(0,Oa.jsxs)(Mc,{children:[(0,Oa.jsx)(Mc,{component:"span",sx:{color:"tomato",fontWeight:700},children:"Red"}),": These skills will USE eq or bal to activate and should have the lowest priority."]}),(0,Oa.jsxs)(Mc,{children:[(0,Oa.jsx)(Mc,{component:"span",sx:{color:"yellow",fontWeight:700},children:"Yellow"}),": These skills are free to use but REQUIRE eq or bal to activate and should have the middle priority."]}),(0,Oa.jsxs)(Mc,{children:[(0,Oa.jsx)(Mc,{component:"span",sx:{color:"dodgerblue",fontWeight:700},children:"Blue"}),": Skills that are free to use and should likely have the highest priority."]})]}),kg=(0,Oa.jsx)(Mc,{sx:{fontSize:13,lineHeight:1.6},children:"Checked defences are player-controlled and only raised by the manual defence-up action. Unchecked defences are kept up by server-side curing."}),Eg={py:.25,px:.75,border:"none"},_g={py:.5,px:.75,border:"none",borderBottom:"1px solid rgba(255,255,255,0.1)",fontWeight:700,fontSize:13,whiteSpace:"nowrap"};function HelpIcon(){return(0,Oa.jsx)(Sg,{sx:{fontSize:14,verticalAlign:"middle",ml:.25,opacity:.7}})}function DefRow({name:e,def:t,updateStatic:n,updatePriority:a}){const o=defNameColor(t);return(0,Oa.jsxs)(Jp,{sx:{"& td":Eg},children:[(0,Oa.jsx)(Fp,{padding:"checkbox",sx:{...Eg,width:36},children:(0,Oa.jsx)(ru,{size:"small",checked:Boolean(t?.static),onChange:t=>n(e,t.target.checked),sx:{p:.25}})}),(0,Oa.jsx)(Fp,{sx:{width:100},children:(0,Oa.jsx)(Tl,{variant:"body2",sx:{color:o,fontSize:13},children:e})}),(0,Oa.jsx)(Fp,{sx:{width:50},children:(0,Oa.jsx)(fm,{value:t?.defaultPriority??0,onChange:t=>a(e,t.target.value),type:"number",size:"small",sx:{width:56},slotProps:{htmlInput:{min:0,max:26,style:{padding:"2px 6px",fontSize:13}}}})})]})}function DefHalfTable({defNames:e,defsState:t,updateStatic:n,updatePriority:a}){return(0,Oa.jsx)(Up,{sx:{flex:1},children:(0,Oa.jsxs)(Op,{size:"small",stickyHeader:!0,sx:{tableLayout:"fixed"},children:[(0,Oa.jsx)(Gp,{children:(0,Oa.jsxs)(Jp,{children:[(0,Oa.jsx)(Fp,{padding:"checkbox",sx:{..._g,width:36},children:(0,Oa.jsx)(Sp,{arrow:!0,placement:"bottom-start",title:kg,children:(0,Oa.jsxs)("span",{children:["Defup",(0,Oa.jsx)(HelpIcon,{})]})})}),(0,Oa.jsx)(Fp,{sx:{..._g,width:100},children:(0,Oa.jsx)(Sp,{arrow:!0,placement:"bottom-start",title:Cg,children:(0,Oa.jsxs)("span",{children:["Name ",(0,Oa.jsx)(HelpIcon,{})]})})}),(0,Oa.jsx)(Fp,{sx:{..._g,width:70},children:"Priority"})]})}),(0,Oa.jsx)(Lp,{children:e.map(e=>(0,Oa.jsx)(DefRow,{name:e,def:t[e],updateStatic:n,updatePriority:a},e))})]})})}function DefPrioritiesTab({settingsForm:e}){const{defList:t,defsState:n,classFilter:a,setClassFilter:o,classOptions:i,updateStatic:s,updatePriority:l}=useDefPriorities(useNexSys(),e),[u,d]=(0,c.useMemo)(()=>{const e=Math.ceil(t.length/2);return[t.slice(0,e),t.slice(e)]},[t]);return(0,Oa.jsxs)(Mc,{sx:{pt:1},children:[(0,Oa.jsxs)(Du,{size:"small",sx:{mb:1.5,minWidth:180},children:[(0,Oa.jsx)(Ju,{children:"Class"}),(0,Oa.jsx)(Xd,{value:a,label:"Class",onChange:e=>o(e.target.value),children:i.map(e=>(0,Oa.jsx)(kd,{value:e,children:"all"===e?"All Classes":e},e))})]}),(0,Oa.jsxs)(Mc,{sx:{display:"flex",gap:1,alignItems:"flex-start"},children:[(0,Oa.jsx)(DefHalfTable,{defNames:u,defsState:n,updateStatic:s,updatePriority:l}),d.length>0&&(0,Oa.jsx)(DefHalfTable,{defNames:d,defsState:n,updateStatic:s,updatePriority:l})]})]})}var Pg=Object.freeze({}),Tg=x.map(e=>C[e]).filter(Boolean).map(e=>({herb:e,mineral:E[e]??null}));function capitalize(e){return e.charAt(0).toUpperCase()+e.slice(1)}function usePrecache(e,t={}){const n=useNexSysSnapshot(e),{desiredPrecache:a,setPrecache:o}=t,i=a??n?.cache?.desiredPrecache??Pg;return{pairs:(0,c.useMemo)(()=>Tg.map(({herb:e,mineral:t})=>({herb:e,herbLabel:capitalize(e),herbQty:i[e]??0,mineral:t,mineralLabel:t?capitalize(t):null,mineralQty:t?i[t]??0:0})),[i]),update:(0,c.useCallback)((e,t)=>{o?.(e,Math.max(0,t))},[o])}}function QuantityControl({label:e,value:t,onIncrement:n,onDecrement:a,compact:o=!1}){return(0,Oa.jsxs)(Mc,{sx:{display:"flex",alignItems:"center",gap:1,mb:o?0:.5},children:[(0,Oa.jsxs)(Vc,{size:"small",variant:"outlined",children:[(0,Oa.jsx)(Fc,{onClick:a,disabled:t<=0,sx:{minWidth:28,px:.5,fontSize:12},children:"−"}),(0,Oa.jsx)(Fc,{disableRipple:!0,disableFocusRipple:!0,sx:{minWidth:36,px:.5,cursor:"default",pointerEvents:"none",fontSize:12,color:"text.primary",borderColor:"divider"},children:t}),(0,Oa.jsx)(Fc,{onClick:n,sx:{minWidth:28,px:.5,fontSize:12},children:"+"})]}),(0,Oa.jsx)(Tl,{variant:"body2",children:e})]})}function PairRow({pair:e,update:t}){return(0,Oa.jsxs)(Mc,{sx:{display:"flex",gap:.5},children:[(0,Oa.jsx)(Mc,{sx:{flex:1},children:(0,Oa.jsx)(QuantityControl,{compact:!0,label:e.herbLabel,value:e.herbQty,onIncrement:()=>t(e.herb,e.herbQty+1),onDecrement:()=>t(e.herb,e.herbQty-1)})}),(0,Oa.jsx)(Mc,{sx:{flex:1},children:e.mineral?(0,Oa.jsx)(QuantityControl,{compact:!0,label:e.mineralLabel,value:e.mineralQty,onIncrement:()=>t(e.mineral,e.mineralQty+1),onDecrement:()=>t(e.mineral,e.mineralQty-1)}):(0,Oa.jsx)(Mc,{sx:{height:28}})})]})}function PrecacheTab({settingsForm:e}){const{pairs:t,update:n}=usePrecache(useNexSys(),e);return(0,Oa.jsxs)(Mc,{sx:{pt:1},children:[(0,Oa.jsxs)(Mc,{sx:{display:"flex",gap:.5,mb:.25},children:[(0,Oa.jsx)(Tl,{variant:"overline",sx:{flex:1,color:"primary.main",fontWeight:700,fontSize:10},children:"Herb"}),(0,Oa.jsx)(Tl,{variant:"overline",sx:{flex:1,color:"primary.main",fontWeight:700,fontSize:10},children:"Mineral"})]}),t.map(e=>(0,Oa.jsx)(PairRow,{pair:e,update:n},e.herb))]})}function ColorSettingsTab(){return(0,Oa.jsx)(Mc,{sx:{pt:2},children:(0,Oa.jsx)(Tl,{variant:"body2",color:"text.secondary",children:"Color settings are not yet implemented."})})}var Ag=["System","Aff Priorities","Defences","Precache","Colors"];function ConfigTabs({settingsForm:e}){const[t,n]=(0,c.useState)(0),{pending:a,set:o}=e;return(0,Oa.jsxs)(Mc,{sx:{width:"100%"},children:[(0,Oa.jsx)(dm,{value:t,onChange:(e,t)=>n(t),variant:"scrollable",scrollButtons:"auto",sx:{borderBottom:"1px solid rgba(255,255,255,0.1)",mb:1,"& .MuiTab-root":{fontSize:11,minHeight:36,py:.5}},children:Ag.map(e=>(0,Oa.jsx)(Ap,{label:e},e))}),(0,Oa.jsxs)(Mc,{sx:{overflowY:"auto",overflowX:"auto",maxHeight:800},children:[0===t&&(0,Oa.jsx)(SystemSettingsTab,{pending:a,set:o}),1===t&&(0,Oa.jsx)(AffPrioritiesTab,{settingsForm:e}),2===t&&(0,Oa.jsx)(DefPrioritiesTab,{settingsForm:e}),3===t&&(0,Oa.jsx)(PrecacheTab,{settingsForm:e}),4===t&&(0,Oa.jsx)(ColorSettingsTab,{})]})]})}function ConfigDialogContent({nexSys:e,onClose:t}){const n=useSettingsForm(e),handleSave=()=>{n.commit(),e?.api?.ui?.closeConfig("ui.save"),t()},handleCancel=()=>{e?.api?.ui?.closeConfig("ui.cancel"),t()};return(0,Oa.jsxs)(hu,{open:!0,onClose:handleCancel,maxWidth:"md",slotProps:{paper:{sx:{width:{xs:"calc(100% - 24px)",md:900},maxWidth:"calc(100% - 24px)",bgcolor:"background.paper !important",color:"text.primary !important",backgroundImage:"none",border:"1px solid rgba(79,195,247,0.2)"}}},children:[(0,Oa.jsxs)(Cu,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",bgcolor:"background.paper !important",color:"text.primary !important",pb:.5,borderBottom:"1px solid rgba(255,255,255,0.08)"},children:[(0,Oa.jsx)(Tl,{component:"span",variant:"h6",sx:{fontSize:14,color:"primary.main !important",fontWeight:700},children:"nexSys4 Configuration"}),(0,Oa.jsx)(Tl,{component:"span",variant:"caption",sx:{opacity:.65,color:"text.secondary !important"},children:"v1.0.1"})]}),(0,Oa.jsx)(xu,{style:{padding:"16px 16px 0px"},sx:{"&.MuiDialogContent-root":{p:0}},children:(0,Oa.jsx)(Mc,{sx:{px:2,pt:2,pb:0},children:(0,Oa.jsx)(ConfigTabs,{settingsForm:n})})}),(0,Oa.jsxs)(yu,{sx:{borderTop:"1px solid rgba(255,255,255,0.08)",px:2,py:1},children:[(0,Oa.jsx)(Fc,{onClick:handleCancel,size:"small",sx:{fontSize:11},children:"Cancel"}),(0,Oa.jsx)(Fc,{onClick:handleSave,variant:"contained",size:"small",sx:{fontSize:11},children:"Save"})]})]})}function ConfigDialog(){const e=useNexSys(),[t,n]=useDialogOpen(e);return(0,Oa.jsx)(ThemeProvider,{theme:Cm,children:t?(0,Oa.jsx)(ConfigDialogContent,{nexSys:e,onClose:()=>n(!1)}):null})}function NexSysGuiApp({nexSys:e}){return(0,Oa.jsx)(NexSysProvider,{nexSys:e,children:(0,Oa.jsx)(ConfigDialog,{})})}var Rg=bootstrapNexus();Rg.component=NexSysGuiApp,startupNexus(),Rg.api.control.updateNxs()}(React,ReactDOM);
|