diff --git a/docs/decisions/0039-python-refusal-content.md b/docs/decisions/0039-python-refusal-content.md new file mode 100644 index 00000000000..5f8dd9a6f99 --- /dev/null +++ b/docs/decisions/0039-python-refusal-content.md @@ -0,0 +1,82 @@ +--- +status: proposed +contact: "@eavanvalkenburg" +date: 2026-09-01 +deciders: ["@eavanvalkenburg"] +--- + +# Preserve model refusals with marked Python text content + +## Context and Problem Statement + +Refusals are provider/model-created output rather than framework execution errors. Python currently +converts native refusal payloads into ordinary text, which keeps the explanation visible but loses +the semantic across history, provider replay, Responses-compatible hosting, and DevUI. The framework +needs a reversible representation without committing prematurely to a new stable content kind. + +Microsoft.Extensions.AI represents refusals as `ErrorContent(ErrorCode="Refusal")`. Python does not +currently treat refusal output as an error: changing to that model would alter visible-text, +structured-output, and failure-handling behavior beyond preservation of the provider signal. + +## Decision Drivers + +- Preserve native refusal semantics through streaming and non-streaming paths. +- Keep refusal explanations visible through existing message and response text APIs. +- Round-trip native refusal fields where a transport supports them. +- Preserve history through existing `Content.to_dict()` and `Content.from_dict()` behavior. +- Gather usage of the semantic before adding a stable public discriminator. +- Avoid a parallel content hierarchy or provider-wide parsing abstraction. + +## Considered Options + +- Keep `type="text"` and record `model_output_kind="refusal"` in `additional_properties`. +- Add a refusal-only boolean marker to text content. +- Add a nested model-output metadata mapping to text content. +- Represent refusals as `ErrorContent`, following Microsoft.Extensions.AI. +- Add a stable `refusal` discriminator to the unified `Content` model. + +## Decision Outcome + +Keep refusal explanations as ordinary `Content(type="text", text=...)` and add the experimental, +serializable marker: + +```python +{"model_output_kind": "refusal"} +``` + +The flat string value is more general than a refusal-only boolean and cheaper to inspect than a +nested mapping. It is metadata, not a new public API contract: no `ContentType`, constructor, +exported constant, or feature-stage entry is added. + +`Message.text`, response/update text, string conversion, and text coalescing remain unchanged. +Structured-output extraction skips marked refusal text so a refusal is not parsed as the requested +response model. + +OpenAI Responses, OpenAI Chat Completions, Foundry hosting, Hosting Responses, and DevUI inspect the +marker to reconstruct native refusal fields, content parts, and streaming events. Other providers +and protocols require no refusal-specific behavior because the framework content remains text. + +This metadata convention is experimental while usage is gathered. The stable core/OpenAI package +lifecycle is unchanged because no new public API is introduced; beta and alpha hosting/UI packages +retain their package-level lifecycle. + +### Consequences + +- Serialized refusal content keeps the existing text shape and adds + `additional_properties.model_output_kind="refusal"`. +- Existing stored refusals remain ordinary text because they carry no reliable migration signal. +- Older runtimes preserve and render the text and serialize the additional property, but do not + reconstruct native refusal fields until upgraded. +- Native providers can reconstruct their refusal wire representation from durable history without + relying on non-serializable SDK objects. +- Refusals continue to look like text to middleware and non-native providers. +- A future decision may promote observed usage to `ErrorContent` semantics or a stable discriminator. + +### Rejected alternatives + +A boolean marker is slightly shorter but creates a refusal-only key that cannot represent another +model-output semantic. A nested mapping reserves more structure than the current requirement needs. +`ErrorContent(ErrorCode="Refusal")` aligns with Microsoft.Extensions.AI but would change Python's +current visible-text and failure semantics. A stable `refusal` discriminator is clearer and may be +appropriate later, but commits the public content model before usage and cross-provider behavior are +understood. diff --git a/python/packages/core/agent_framework/_types.py b/python/packages/core/agent_framework/_types.py index 7481d13e134..7f2ebc54360 100644 --- a/python/packages/core/agent_framework/_types.py +++ b/python/packages/core/agent_framework/_types.py @@ -399,6 +399,8 @@ class Annotation(TypedDict, total=False): ContentT = TypeVar("ContentT", bound="Content") +_MODEL_OUTPUT_KIND_KEY = "model_output_kind" +_MODEL_OUTPUT_REFUSAL = "refusal" # endregion @@ -2035,6 +2037,11 @@ def _coalesce_text_content(contents: list[Content], type_str: Literal["text", "t if content.type == type_str: if first_new_content is None: first_new_content = deepcopy(content) + elif type_str == "text" and first_new_content.additional_properties.get( + _MODEL_OUTPUT_KIND_KEY + ) != content.additional_properties.get(_MODEL_OUTPUT_KIND_KEY): + coalesced_contents.append(first_new_content) + first_new_content = deepcopy(content) else: try: first_new_content += content @@ -2210,7 +2217,18 @@ def _last_non_empty_assistant_message_text(messages: Sequence[Message]) -> str: for message in reversed(messages): if message.role != "assistant": continue - text = "".join((content.text or "") for content in message.contents if content.type == "text") + if any( + content.type == "text" + and content.additional_properties.get(_MODEL_OUTPUT_KIND_KEY) == _MODEL_OUTPUT_REFUSAL + for content in message.contents + ): + return "" + text = "".join( + (content.text or "") + for content in message.contents + if content.type == "text" + and content.additional_properties.get(_MODEL_OUTPUT_KIND_KEY) != _MODEL_OUTPUT_REFUSAL + ) if text.strip(): return text return "" diff --git a/python/packages/core/tests/core/test_sessions.py b/python/packages/core/tests/core/test_sessions.py index 1f418507ace..138e8a0fc18 100644 --- a/python/packages/core/tests/core/test_sessions.py +++ b/python/packages/core/tests/core/test_sessions.py @@ -8,7 +8,7 @@ from collections.abc import Awaitable, Callable, Mapping, Sequence from dataclasses import dataclass from pathlib import Path -from typing import TYPE_CHECKING, Any, cast +from typing import TYPE_CHECKING, Any, Literal, cast from unittest.mock import patch import msgspec @@ -1542,6 +1542,33 @@ async def test_stores_and_loads_length_prefixed_msgpack(self, tmp_path: Path) -> assert first_record_length > 0 assert raw[4 : 4 + first_record_length] == msgspec.msgpack.encode(messages[0].to_dict()) + @pytest.mark.parametrize("serialization_format", ["json", "msgpack"]) + async def test_round_trips_marked_refusal_text( + self, tmp_path: Path, serialization_format: Literal["json", "msgpack"] + ) -> None: + provider = FileHistoryProvider(tmp_path, serialization_format=serialization_format) + message = Message( + role="assistant", + contents=[ + Content.from_text( + "I cannot help with that.", + additional_properties={"model_output_kind": "refusal"}, + ) + ], + ) + + await provider.save_messages("refusal-session", [message]) + restored = await provider.get_messages("refusal-session") + + assert len(restored) == 1 + assert restored[0].contents == [ + Content.from_text( + "I cannot help with that.", + additional_properties={"model_output_kind": "refusal"}, + ) + ] + assert restored[0].text == "I cannot help with that." + def test_msgpack_rejects_custom_json_codecs(self, tmp_path: Path) -> None: with pytest.raises(ValueError, match="Custom dumps and loads"): FileHistoryProvider(tmp_path, serialization_format="msgpack", dumps=json.dumps) diff --git a/python/packages/core/tests/core/test_types.py b/python/packages/core/tests/core/test_types.py index 23902d17b90..36b9b90f2fc 100644 --- a/python/packages/core/tests/core/test_types.py +++ b/python/packages/core/tests/core/test_types.py @@ -113,6 +113,93 @@ def test_text_content_keyword(): content.type = "text" # This should work fine now +def test_marked_refusal_text_is_visible_and_serializable() -> None: + content = Content.from_text( + "I cannot help with that.", + additional_properties={"model_output_kind": "refusal"}, + raw_representation={"type": "refusal"}, + ) + message = Message("assistant", [content]) + chat_update = ChatResponseUpdate(contents=[content]) + agent_update = AgentResponseUpdate(contents=[content]) + + assert content.type == "text" + assert str(content) == "I cannot help with that." + assert message.text == "I cannot help with that." + assert chat_update.text == "I cannot help with that." + assert agent_update.text == "I cannot help with that." + assert content.to_dict() == { + "type": "text", + "text": "I cannot help with that.", + "additional_properties": {"model_output_kind": "refusal"}, + } + assert Content.from_dict(content.to_dict()) == Content.from_text( + "I cannot help with that.", + additional_properties={"model_output_kind": "refusal"}, + ) + + +def test_marked_refusal_text_is_excluded_from_structured_output() -> None: + response = ChatResponse( + messages=[ + Message( + "assistant", + [ + Content.from_text( + '{"should_not": "parse"}', + additional_properties={"model_output_kind": "refusal"}, + ) + ], + ) + ], + response_format={"type": "object"}, + ) + + assert response.text == '{"should_not": "parse"}' + assert response.value is None + + +@pytest.mark.parametrize("response_type", [ChatResponse, AgentResponse]) +def test_final_marked_refusal_does_not_fall_back_to_earlier_structured_output(response_type: type) -> None: + response = response_type( + messages=[ + Message("assistant", [Content.from_text('{"result": "stale"}')]), + Message( + "assistant", + [ + Content.from_text( + "I cannot provide a result.", + additional_properties={"model_output_kind": "refusal"}, + ) + ], + ), + ], + response_format={"type": "object"}, + ) + + assert response.value is None + + +def test_mixed_final_message_with_refusal_has_no_structured_output() -> None: + response = ChatResponse( + messages=[ + Message( + "assistant", + [ + Content.from_text('{"result": "partial"}'), + Content.from_text( + "I cannot continue.", + additional_properties={"model_output_kind": "refusal"}, + ), + ], + ) + ], + response_format={"type": "object"}, + ) + + assert response.value is None + + # region DataContent @@ -2013,6 +2100,68 @@ def test_coalesce_text_reasoning_with_different_ids(): assert contents[1].text == "Thinking B1 B2" +def test_agent_response_from_updates_preserves_refusal_marker() -> None: + marker = {"model_output_kind": "refusal"} + response = AgentResponse.from_updates([ + AgentResponseUpdate( + contents=[Content.from_text("I cannot ", additional_properties=marker)], + role="assistant", + ), + AgentResponseUpdate( + contents=[Content.from_text("help.", additional_properties=marker)], + role="assistant", + ), + ]) + + assert len(response.messages[0].contents) == 1 + assert response.messages[0].contents[0].type == "text" + assert response.messages[0].contents[0].text == "I cannot help." + assert response.messages[0].contents[0].additional_properties == marker + assert response.text == "I cannot help." + + +@pytest.mark.parametrize( + ("updates", "expected"), + [ + ( + [ + Content.from_text("Partial answer."), + Content.from_text( + "I cannot continue.", + additional_properties={"model_output_kind": "refusal"}, + ), + ], + [ + ("Partial answer.", {}), + ("I cannot continue.", {"model_output_kind": "refusal"}), + ], + ), + ( + [ + Content.from_text( + "I cannot continue.", + additional_properties={"model_output_kind": "refusal"}, + ), + Content.from_text("Additional context."), + ], + [ + ("I cannot continue.", {"model_output_kind": "refusal"}), + ("Additional context.", {}), + ], + ), + ], +) +def test_response_coalescing_preserves_model_output_kind_boundaries( + updates: list[Content], + expected: list[tuple[str, dict[str, str]]], +) -> None: + response = AgentResponse.from_updates([ + AgentResponseUpdate(contents=[content], role="assistant") for content in updates + ]) + + assert [(content.text, content.additional_properties) for content in response.messages[0].contents] == expected + + def test_comprehensive_to_dict_exclude_options(): """Test to_dict methods with various exclude options for better coverage.""" diff --git a/python/packages/devui/AGENTS.md b/python/packages/devui/AGENTS.md index a3febee0473..18c121ceb46 100644 --- a/python/packages/devui/AGENTS.md +++ b/python/packages/devui/AGENTS.md @@ -15,6 +15,10 @@ Interactive developer UI for testing and debugging agents and workflows. - **`OpenAIResponse`** / **`OpenAIError`** - OpenAI-compatible response models - **`DiscoveryResponse`** / **`EntityInfo`** - Entity discovery models +Text content carrying `additional_properties["model_output_kind"] == "refusal"` is mapped to native +Responses refusal parts and events. Mapper aggregation, live rendering, and recovery state retain +text/refusal boundaries by item and content index. + ## Usage ```python diff --git a/python/packages/devui/agent_framework_devui/_conversations.py b/python/packages/devui/agent_framework_devui/_conversations.py index 2f3fe8feb46..8a2d955726f 100644 --- a/python/packages/devui/agent_framework_devui/_conversations.py +++ b/python/packages/devui/agent_framework_devui/_conversations.py @@ -26,10 +26,14 @@ ResponseFunctionToolCallOutputItem, ResponseInputFile, ResponseInputImage, + ResponseOutputRefusal, ) from ._utils import infer_media_type +_MODEL_OUTPUT_KIND_KEY = "model_output_kind" +_MODEL_OUTPUT_REFUSAL = "refusal" + # Type alias for OpenAI Message role literals MessageRole = Literal["unknown", "user", "assistant", "system", "critic", "discriminator", "developer", "tool"] @@ -392,7 +396,7 @@ async def list_items( # Process each content item in the message # A single Message may produce multiple ConversationItems # (e.g., a message with both text and a function call) - message_contents: list[TextContent | ResponseInputImage | ResponseInputFile] = [] + message_contents: list[TextContent | ResponseOutputRefusal | ResponseInputImage | ResponseInputFile] = [] function_calls: list[ResponseFunctionToolCallItem] = [] function_results: list[ResponseFunctionToolCallOutputItem] = [] @@ -529,6 +533,15 @@ def _to_agent_content(content: dict[str, Any]) -> Content | None: text = content.get("text") return Content.from_text(text=text) if isinstance(text, str) else None + if content_type == "refusal": + refusal = content.get("refusal") + if not isinstance(refusal, str): + return None + return Content.from_text( + text=refusal, + additional_properties={_MODEL_OUTPUT_KIND_KEY: _MODEL_OUTPUT_REFUSAL}, + ) + if content_type == "input_image": detail = content.get("detail", "auto") image_properties = { @@ -598,10 +611,14 @@ def _to_agent_content(content: dict[str, Any]) -> Content | None: return None @staticmethod - def _to_openai_content(content: Content) -> TextContent | ResponseInputImage | ResponseInputFile | None: + def _to_openai_content( + content: Content, + ) -> TextContent | ResponseOutputRefusal | ResponseInputImage | ResponseInputFile | None: """Convert one supported Agent Framework message part.""" content_type = content.type if content_type == "text": + if content.additional_properties.get(_MODEL_OUTPUT_KIND_KEY) == _MODEL_OUTPUT_REFUSAL: + return ResponseOutputRefusal(type="refusal", refusal=content.text or "") return TextContent(type="text", text=content.text or "") additional_properties = content.additional_properties or {} diff --git a/python/packages/devui/agent_framework_devui/_mapper.py b/python/packages/devui/agent_framework_devui/_mapper.py index 21cad790cfc..f03fc54d3f2 100644 --- a/python/packages/devui/agent_framework_devui/_mapper.py +++ b/python/packages/devui/agent_framework_devui/_mapper.py @@ -42,8 +42,10 @@ ResponseOutputImage, ResponseOutputItemAddedEvent, ResponseOutputMessage, + ResponseOutputRefusal, ResponseOutputText, ResponseReasoningTextDeltaEvent, + ResponseRefusalDeltaEvent, ResponseStreamEvent, ResponseTextDeltaEvent, ResponseTraceEventComplete, @@ -52,6 +54,8 @@ ) logger = logging.getLogger(__name__) +_MODEL_OUTPUT_KIND_KEY = "model_output_kind" +_MODEL_OUTPUT_REFUSAL = "refusal" # Type alias for all possible event types EventType = Union[ @@ -84,6 +88,16 @@ def _workflow_output_metadata(event_type: Any, executor_id: Any) -> dict[str, An } +def _is_refusal_text_content(content: Content) -> bool: + return content.type == "text" and content.additional_properties.get(_MODEL_OUTPUT_KIND_KEY) == _MODEL_OUTPUT_REFUSAL + + +def _message_content_part(content: Content) -> ResponseOutputText | ResponseOutputRefusal: + if _is_refusal_text_content(content): + return ResponseOutputRefusal(type="refusal", refusal="") + return ResponseOutputText(type="output_text", text="", annotations=[]) + + def _response_usage(usage_details: UsageDetails) -> ResponseUsage: input_tokens = int(usage_details.get("input_token_count") or 0) output_tokens = int(usage_details.get("output_token_count") or 0) @@ -295,8 +309,8 @@ async def aggregate_to_response(self, events: Sequence[Any], request: AgentFrame # Collect output items in order output_items: list[Any] = [] - # Track text content parts per message (keyed by item_id) - text_parts_by_message: dict[str, list[str]] = {} + # Track text-bearing content parts per message and content index. + content_parts_by_message: dict[str, dict[int, dict[str, Any]]] = {} message_order: list[str] = [] # Track function calls (keyed by call_id) to accumulate arguments @@ -311,14 +325,21 @@ async def aggregate_to_response(self, events: Sequence[Any], request: AgentFrame for event in events: event_type = getattr(event, "type", None) - # Handle text deltas - accumulate text per message - if event_type == "response.output_text.delta": + # Handle text/refusal deltas - accumulate each content part independently. + if event_type in {"response.output_text.delta", "response.refusal.delta"}: item_id = getattr(event, "item_id", "default") - if item_id not in text_parts_by_message: - text_parts_by_message[item_id] = [] + content_index = getattr(event, "content_index", 0) + parts = content_parts_by_message.setdefault(item_id, {}) + part = parts.setdefault( + content_index, + { + "type": "refusal" if event_type == "response.refusal.delta" else "output_text", + "deltas": [], + }, + ) if item_id not in message_order: message_order.append(item_id) - text_parts_by_message[item_id].append(event.delta) + part["deltas"].append(event.delta) # Handle output_item.added events (function_call, message, etc.) elif event_type == "response.output_item.added": @@ -403,14 +424,26 @@ async def aggregate_to_response(self, events: Sequence[Any], request: AgentFrame if complete_message := complete_messages.get(item_id): output_items.append(complete_message) continue - full_content = "".join(text_parts_by_message.get(item_id, [])) - if not full_content: + response_contents: list[ResponseOutputText | ResponseOutputRefusal] = [] + for part in ( + content_parts_by_message.get(item_id, {}).get(index, {}) + for index in sorted(content_parts_by_message.get(item_id, {})) + ): + full_content = "".join(part.get("deltas", [])) + if not full_content: + continue + if part.get("type") == "refusal": + response_contents.append(ResponseOutputRefusal(type="refusal", refusal=full_content)) + else: + response_contents.append( + ResponseOutputText(type="output_text", text=full_content, annotations=[]) + ) + if not response_contents: continue - response_output_text = ResponseOutputText(type="output_text", text=full_content, annotations=[]) response_output_message = ResponseOutputMessage( type="message", role="assistant", - content=[response_output_text], + content=response_contents, id=item_id if item_id != "default" else f"msg_{uuid.uuid4().hex[:8]}", status="completed", ) @@ -698,8 +731,8 @@ async def _convert_agent_update(self, update: Any, context: dict[str, Any]) -> S if not hasattr(update, "contents") or not update.contents: return events - # Check if we're streaming text content - has_text_content = any(content.type == "text" for content in update.contents) + first_text_content = next((content for content in update.contents if content.type == "text"), None) + has_text_content = first_text_content is not None # Check if we're in an executor context with an existing item executor_id = context.get("current_executor_id") @@ -710,6 +743,7 @@ async def _convert_agent_update(self, update: Any, context: dict[str, Any]) -> S current_metadata = context.get("current_message_workflow_metadata") if current_metadata != workflow_metadata: context.pop("current_message_id", None) + context.pop("current_message_content_type", None) context["current_message_workflow_metadata"] = workflow_metadata # If we have an executor item, use it for deltas instead of creating a message @@ -744,6 +778,9 @@ async def _convert_agent_update(self, update: Any, context: dict[str, Any]) -> S # Add content part for text context["content_index"] = 0 + context["current_message_content_type"] = ( + "refusal" if _is_refusal_text_content(first_text_content) else "output_text" + ) events.append( ResponseContentPartAddedEvent( type="response.content_part.added", @@ -751,7 +788,7 @@ async def _convert_agent_update(self, update: Any, context: dict[str, Any]) -> S content_index=context["content_index"], item_id=message_id, sequence_number=self._next_sequence(context), - part=ResponseOutputText(type="output_text", text="", annotations=[]), + part=_message_content_part(first_text_content), ) ) @@ -759,16 +796,39 @@ async def _convert_agent_update(self, update: Any, context: dict[str, Any]) -> S for content in update.contents: # Special handling for TextContent to use proper delta events if content.type == "text" and "current_message_id" in context: - # Stream text content via proper delta events - delta_event = ResponseTextDeltaEvent( - type="response.output_text.delta", - output_index=context["output_index"], - content_index=context.get("content_index", 0), - item_id=context["current_message_id"], - delta=content.text, - logprobs=[], # We don't have logprobs from Agent Framework - sequence_number=self._next_sequence(context), - ) + requested_content_type = "refusal" if _is_refusal_text_content(content) else "output_text" + if context.get("current_message_content_type") != requested_content_type: + context["content_index"] = context.get("content_index", 0) + 1 + context["current_message_content_type"] = requested_content_type + events.append( + ResponseContentPartAddedEvent( + type="response.content_part.added", + output_index=context["output_index"], + content_index=context["content_index"], + item_id=context["current_message_id"], + sequence_number=self._next_sequence(context), + part=_message_content_part(content), + ) + ) + if _is_refusal_text_content(content): + delta_event = ResponseRefusalDeltaEvent( + type="response.refusal.delta", + output_index=context["output_index"], + content_index=context.get("content_index", 0), + item_id=context["current_message_id"], + delta=content.text, + sequence_number=self._next_sequence(context), + ) + else: + delta_event = ResponseTextDeltaEvent( + type="response.output_text.delta", + output_index=context["output_index"], + content_index=context.get("content_index", 0), + item_id=context["current_message_id"], + delta=content.text, + logprobs=[], # We don't have logprobs from Agent Framework + sequence_number=self._next_sequence(context), + ) if workflow_metadata is not None: cast(Any, delta_event).metadata = workflow_metadata events.append(delta_event) @@ -1344,8 +1404,19 @@ async def _convert_workflow_event(self, event: Any, context: dict[str, Any]) -> # Content type mappers - implementing our comprehensive mapping plan - async def _map_text_content(self, content: Any, context: dict[str, Any]) -> ResponseTextDeltaEvent: + async def _map_text_content( + self, content: Any, context: dict[str, Any] + ) -> ResponseTextDeltaEvent | ResponseRefusalDeltaEvent: """Map TextContent to ResponseTextDeltaEvent.""" + if _is_refusal_text_content(content): + return ResponseRefusalDeltaEvent( + type="response.refusal.delta", + delta=content.text, + item_id=context["item_id"], + output_index=context["output_index"], + content_index=context["content_index"], + sequence_number=self._next_sequence(context), + ) return self._create_text_delta_event(content.text, context) async def _map_reasoning_content(self, content: Any, context: dict[str, Any]) -> ResponseReasoningTextDeltaEvent: diff --git a/python/packages/devui/agent_framework_devui/models/__init__.py b/python/packages/devui/agent_framework_devui/models/__init__.py index 5dc3ba59b9a..41f2b890c46 100644 --- a/python/packages/devui/agent_framework_devui/models/__init__.py +++ b/python/packages/devui/agent_framework_devui/models/__init__.py @@ -17,8 +17,10 @@ ResponseOutputItemAddedEvent, ResponseOutputItemDoneEvent, ResponseOutputMessage, + ResponseOutputRefusal, ResponseOutputText, ResponseReasoningTextDeltaEvent, + ResponseRefusalDeltaEvent, ResponseStreamEvent, ResponseTextDeltaEvent, ResponseUsage, @@ -81,8 +83,10 @@ "ResponseOutputItemAddedEvent", "ResponseOutputItemDoneEvent", "ResponseOutputMessage", + "ResponseOutputRefusal", "ResponseOutputText", "ResponseReasoningTextDeltaEvent", + "ResponseRefusalDeltaEvent", "ResponseStreamEvent", "ResponseTextDeltaEvent", "ResponseTraceEvent", diff --git a/python/packages/devui/agent_framework_devui/ui/assets/index.js b/python/packages/devui/agent_framework_devui/ui/assets/index.js index 72d19c5d634..e40e8760262 100644 --- a/python/packages/devui/agent_framework_devui/ui/assets/index.js +++ b/python/packages/devui/agent_framework_devui/ui/assets/index.js @@ -1,62 +1,61 @@ -function JE(e,n){for(var r=0;ra[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))a(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&a(d)}).observe(document,{childList:!0,subtree:!0});function r(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function a(l){if(l.ep)return;l.ep=!0;const c=r(l);fetch(l.href,c)}})();function kp(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var nh={exports:{}},qi={};var hv;function eC(){if(hv)return qi;hv=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function r(a,l,c){var d=null;if(c!==void 0&&(d=""+c),l.key!==void 0&&(d=""+l.key),"key"in l){c={};for(var f in l)f!=="key"&&(c[f]=l[f])}else c=l;return l=c.ref,{$$typeof:e,type:a,key:d,ref:l!==void 0?l:null,props:c}}return qi.Fragment=n,qi.jsx=r,qi.jsxs=r,qi}var pv;function tC(){return pv||(pv=1,nh.exports=eC()),nh.exports}var o=tC(),sh={exports:{}},We={};var gv;function nC(){if(gv)return We;gv=1;var e=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),d=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),m=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),y=Symbol.iterator;function x(C){return C===null||typeof C!="object"?null:(C=y&&C[y]||C["@@iterator"],typeof C=="function"?C:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,N={};function j(C,L,Y){this.props=C,this.context=L,this.refs=N,this.updater=Y||b}j.prototype.isReactComponent={},j.prototype.setState=function(C,L){if(typeof C!="object"&&typeof C!="function"&&C!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,C,L,"setState")},j.prototype.forceUpdate=function(C){this.updater.enqueueForceUpdate(this,C,"forceUpdate")};function S(){}S.prototype=j.prototype;function T(C,L,Y){this.props=C,this.context=L,this.refs=N,this.updater=Y||b}var E=T.prototype=new S;E.constructor=T,_(E,j.prototype),E.isPureReactComponent=!0;var A=Array.isArray,M={H:null,A:null,T:null,S:null,V:null},D=Object.prototype.hasOwnProperty;function z(C,L,Y,V,ee,ie){return Y=ie.ref,{$$typeof:e,type:C,key:L,ref:Y!==void 0?Y:null,props:ie}}function H(C,L){return z(C.type,L,void 0,void 0,void 0,C.props)}function q(C){return typeof C=="object"&&C!==null&&C.$$typeof===e}function G(C){var L={"=":"=0",":":"=2"};return"$"+C.replace(/[=:]/g,function(Y){return L[Y]})}var K=/\/+/g;function X(C,L){return typeof C=="object"&&C!==null&&C.key!=null?G(""+C.key):L.toString(36)}function ne(){}function B(C){switch(C.status){case"fulfilled":return C.value;case"rejected":throw C.reason;default:switch(typeof C.status=="string"?C.then(ne,ne):(C.status="pending",C.then(function(L){C.status==="pending"&&(C.status="fulfilled",C.value=L)},function(L){C.status==="pending"&&(C.status="rejected",C.reason=L)})),C.status){case"fulfilled":return C.value;case"rejected":throw C.reason}}throw C}function U(C,L,Y,V,ee){var ie=typeof C;(ie==="undefined"||ie==="boolean")&&(C=null);var ue=!1;if(C===null)ue=!0;else switch(ie){case"bigint":case"string":case"number":ue=!0;break;case"object":switch(C.$$typeof){case e:case n:ue=!0;break;case g:return ue=C._init,U(ue(C._payload),L,Y,V,ee)}}if(ue)return ee=ee(C),ue=V===""?"."+X(C,0):V,A(ee)?(Y="",ue!=null&&(Y=ue.replace(K,"$&/")+"/"),U(ee,L,Y,"",function(ge){return ge})):ee!=null&&(q(ee)&&(ee=H(ee,Y+(ee.key==null||C&&C.key===ee.key?"":(""+ee.key).replace(K,"$&/")+"/")+ue)),L.push(ee)),1;ue=0;var Q=V===""?".":V+":";if(A(C))for(var ae=0;ae>>1,C=R[$];if(0>>1;$l(V,I))eel(ie,V)?(R[$]=ie,R[ee]=I,$=ee):(R[$]=V,R[Y]=I,$=Y);else if(eel(ie,I))R[$]=ie,R[ee]=I,$=ee;else break e}}return P}function l(R,P){var I=R.sortIndex-P.sortIndex;return I!==0?I:R.id-P.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var d=Date,f=d.now();e.unstable_now=function(){return d.now()-f}}var m=[],h=[],g=1,y=null,x=3,b=!1,_=!1,N=!1,j=!1,S=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function A(R){for(var P=r(h);P!==null;){if(P.callback===null)a(h);else if(P.startTime<=R)a(h),P.sortIndex=P.expirationTime,n(m,P);else break;P=r(h)}}function M(R){if(N=!1,A(R),!_)if(r(m)!==null)_=!0,D||(D=!0,X());else{var P=r(h);P!==null&&U(M,P.startTime-R)}}var D=!1,z=-1,H=5,q=-1;function G(){return j?!0:!(e.unstable_now()-qR&&G());){var $=y.callback;if(typeof $=="function"){y.callback=null,x=y.priorityLevel;var C=$(y.expirationTime<=R);if(R=e.unstable_now(),typeof C=="function"){y.callback=C,A(R),P=!0;break t}y===r(m)&&a(m),A(R)}else a(m);y=r(m)}if(y!==null)P=!0;else{var L=r(h);L!==null&&U(M,L.startTime-R),P=!1}}break e}finally{y=null,x=I,b=!1}P=void 0}}finally{P?X():D=!1}}}var X;if(typeof E=="function")X=function(){E(K)};else if(typeof MessageChannel<"u"){var ne=new MessageChannel,B=ne.port2;ne.port1.onmessage=K,X=function(){B.postMessage(null)}}else X=function(){S(K,0)};function U(R,P){z=S(function(){R(e.unstable_now())},P)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_forceFrameRate=function(R){0>R||125$?(R.sortIndex=I,n(h,R),r(m)===null&&R===r(h)&&(N?(T(z),z=-1):N=!0,U(M,I-$))):(R.sortIndex=C,n(m,R),_||b||(_=!0,D||(D=!0,X()))),R},e.unstable_shouldYield=G,e.unstable_wrapCallback=function(R){var P=x;return function(){var I=x;x=P;try{return R.apply(this,arguments)}finally{x=I}}}})(ah)),ah}var vv;function rC(){return vv||(vv=1,oh.exports=sC()),oh.exports}var ih={exports:{}},nn={};var bv;function oC(){if(bv)return nn;bv=1;var e=Nl();function n(m){var h="https://react.dev/errors/"+m;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(n){console.error(n)}}return e(),ih.exports=oC(),ih.exports}var Nv;function aC(){if(Nv)return Fi;Nv=1;var e=rC(),n=Nl(),r=Nw();function a(t){var s="https://react.dev/errors/"+t;if(1C||(t.current=$[C],$[C]=null,C--)}function V(t,s){C++,$[C]=t.current,t.current=s}var ee=L(null),ie=L(null),ue=L(null),Q=L(null);function ae(t,s){switch(V(ue,s),V(ie,t),V(ee,null),s.nodeType){case 9:case 11:t=(t=s.documentElement)&&(t=t.namespaceURI)?By(t):0;break;default:if(t=s.tagName,s=s.namespaceURI)s=By(s),t=Vy(s,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}Y(ee),V(ee,t)}function ge(){Y(ee),Y(ie),Y(ue)}function _e(t){t.memoizedState!==null&&V(Q,t);var s=ee.current,i=Vy(s,t.type);s!==i&&(V(ie,t),V(ee,i))}function we(t){ie.current===t&&(Y(ee),Y(ie)),Q.current===t&&(Y(Q),$i._currentValue=I)}var ve=Object.prototype.hasOwnProperty,Re=e.unstable_scheduleCallback,Le=e.unstable_cancelCallback,nt=e.unstable_shouldYield,le=e.unstable_requestPaint,Ee=e.unstable_now,W=e.unstable_getCurrentPriorityLevel,xe=e.unstable_ImmediatePriority,be=e.unstable_UserBlockingPriority,pe=e.unstable_NormalPriority,ke=e.unstable_LowPriority,Ce=e.unstable_IdlePriority,De=e.log,Ze=e.unstable_setDisableYieldValue,$e=null,Se=null;function Ne(t){if(typeof De=="function"&&Ze(t),Se&&typeof Se.setStrictMode=="function")try{Se.setStrictMode($e,t)}catch{}}var je=Math.clz32?Math.clz32:rn,Ge=Math.log,dt=Math.LN2;function rn(t){return t>>>=0,t===0?32:31-(Ge(t)/dt|0)|0}var Vt=256,bs=4194304;function he(t){var s=t&42;if(s!==0)return s;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194048;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Me(t,s,i){var u=t.pendingLanes;if(u===0)return 0;var p=0,v=t.suspendedLanes,k=t.pingedLanes;t=t.warmLanes;var O=u&134217727;return O!==0?(u=O&~v,u!==0?p=he(u):(k&=O,k!==0?p=he(k):i||(i=O&~t,i!==0&&(p=he(i))))):(O=u&~v,O!==0?p=he(O):k!==0?p=he(k):i||(i=u&~t,i!==0&&(p=he(i)))),p===0?0:s!==0&&s!==p&&(s&v)===0&&(v=p&-p,i=s&-s,v>=i||v===32&&(i&4194048)!==0)?s:p}function Pe(t,s){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&s)===0}function Lt(t,s){switch(t){case 1:case 2:case 4:case 8:case 64:return s+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return s+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Xt(){var t=Vt;return Vt<<=1,(Vt&4194048)===0&&(Vt=256),t}function Ue(){var t=bs;return bs<<=1,(bs&62914560)===0&&(bs=4194304),t}function ye(t){for(var s=[],i=0;31>i;i++)s.push(t);return s}function pt(t,s){t.pendingLanes|=s,s!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function kt(t,s,i,u,p,v){var k=t.pendingLanes;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=i,t.entangledLanes&=i,t.errorRecoveryDisabledLanes&=i,t.shellSuspendCounter=0;var O=t.entanglements,F=t.expirationTimes,se=t.hiddenUpdates;for(i=k&~i;0)":-1p||F[u]!==se[p]){var de=` -`+F[u].replace(" at new "," at ");return t.displayName&&de.includes("")&&(de=de.replace("",t.displayName)),de}while(1<=u&&0<=p);break}}}finally{Xa=!1,Error.prepareStackTrace=i}return(i=t?t.displayName||t.name:"")?_s(i):""}function Kd(t){switch(t.tag){case 26:case 27:case 5:return _s(t.type);case 16:return _s("Lazy");case 13:return _s("Suspense");case 19:return _s("SuspenseList");case 0:case 15:return Za(t.type,!1);case 11:return Za(t.type.render,!1);case 1:return Za(t.type,!0);case 31:return _s("Activity");default:return""}}function ql(t){try{var s="";do s+=Kd(t),t=t.return;while(t);return s}catch(i){return` -Error generating stack: `+i.message+` -`+i.stack}}function cn(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Fl(t){var s=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(s==="checkbox"||s==="radio")}function Qd(t){var s=Fl(t)?"checked":"value",i=Object.getOwnPropertyDescriptor(t.constructor.prototype,s),u=""+t[s];if(!t.hasOwnProperty(s)&&typeof i<"u"&&typeof i.get=="function"&&typeof i.set=="function"){var p=i.get,v=i.set;return Object.defineProperty(t,s,{configurable:!0,get:function(){return p.call(this)},set:function(k){u=""+k,v.call(this,k)}}),Object.defineProperty(t,s,{enumerable:i.enumerable}),{getValue:function(){return u},setValue:function(k){u=""+k},stopTracking:function(){t._valueTracker=null,delete t[s]}}}}function To(t){t._valueTracker||(t._valueTracker=Qd(t))}function Wa(t){if(!t)return!1;var s=t._valueTracker;if(!s)return!0;var i=s.getValue(),u="";return t&&(u=Fl(t)?t.checked?"true":"false":t.value),t=u,t!==i?(s.setValue(t),!0):!1}function Ao(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Jd=/[\n"\\]/g;function un(t){return t.replace(Jd,function(s){return"\\"+s.charCodeAt(0).toString(16)+" "})}function qr(t,s,i,u,p,v,k,O){t.name="",k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"?t.type=k:t.removeAttribute("type"),s!=null?k==="number"?(s===0&&t.value===""||t.value!=s)&&(t.value=""+cn(s)):t.value!==""+cn(s)&&(t.value=""+cn(s)):k!=="submit"&&k!=="reset"||t.removeAttribute("value"),s!=null?Ka(t,k,cn(s)):i!=null?Ka(t,k,cn(i)):u!=null&&t.removeAttribute("value"),p==null&&v!=null&&(t.defaultChecked=!!v),p!=null&&(t.checked=p&&typeof p!="function"&&typeof p!="symbol"),O!=null&&typeof O!="function"&&typeof O!="symbol"&&typeof O!="boolean"?t.name=""+cn(O):t.removeAttribute("name")}function Yl(t,s,i,u,p,v,k,O){if(v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(t.type=v),s!=null||i!=null){if(!(v!=="submit"&&v!=="reset"||s!=null))return;i=i!=null?""+cn(i):"",s=s!=null?""+cn(s):i,O||s===t.value||(t.value=s),t.defaultValue=s}u=u??p,u=typeof u!="function"&&typeof u!="symbol"&&!!u,t.checked=O?t.checked:!!u,t.defaultChecked=!!u,k!=null&&typeof k!="function"&&typeof k!="symbol"&&typeof k!="boolean"&&(t.name=k)}function Ka(t,s,i){s==="number"&&Ao(t.ownerDocument)===t||t.defaultValue===""+i||(t.defaultValue=""+i)}function Ss(t,s,i,u){if(t=t.options,s){s={};for(var p=0;p"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),rf=!1;if(Es)try{var Ja={};Object.defineProperty(Ja,"passive",{get:function(){rf=!0}}),window.addEventListener("test",Ja,Ja),window.removeEventListener("test",Ja,Ja)}catch{rf=!1}var nr=null,of=null,Xl=null;function Yg(){if(Xl)return Xl;var t,s=of,i=s.length,u,p="value"in nr?nr.value:nr.textContent,v=p.length;for(t=0;t=ni),Qg=" ",Jg=!1;function ex(t,s){switch(t){case"keyup":return jS.indexOf(s.keyCode)!==-1;case"keydown":return s.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function tx(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Oo=!1;function SS(t,s){switch(t){case"compositionend":return tx(s);case"keypress":return s.which!==32?null:(Jg=!0,Qg);case"textInput":return t=s.data,t===Qg&&Jg?null:t;default:return null}}function ES(t,s){if(Oo)return t==="compositionend"||!df&&ex(t,s)?(t=Yg(),Xl=of=nr=null,Oo=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(s.ctrlKey||s.altKey||s.metaKey)||s.ctrlKey&&s.altKey){if(s.char&&1=s)return{node:i,offset:s-t};t=u}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=cx(i)}}function dx(t,s){return t&&s?t===s?!0:t&&t.nodeType===3?!1:s&&s.nodeType===3?dx(t,s.parentNode):"contains"in t?t.contains(s):t.compareDocumentPosition?!!(t.compareDocumentPosition(s)&16):!1:!1}function fx(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var s=Ao(t.document);s instanceof t.HTMLIFrameElement;){try{var i=typeof s.contentWindow.location.href=="string"}catch{i=!1}if(i)t=s.contentWindow;else break;s=Ao(t.document)}return s}function hf(t){var s=t&&t.nodeName&&t.nodeName.toLowerCase();return s&&(s==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||s==="textarea"||t.contentEditable==="true")}var OS=Es&&"documentMode"in document&&11>=document.documentMode,zo=null,pf=null,ai=null,gf=!1;function mx(t,s,i){var u=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;gf||zo==null||zo!==Ao(u)||(u=zo,"selectionStart"in u&&hf(u)?u={start:u.selectionStart,end:u.selectionEnd}:(u=(u.ownerDocument&&u.ownerDocument.defaultView||window).getSelection(),u={anchorNode:u.anchorNode,anchorOffset:u.anchorOffset,focusNode:u.focusNode,focusOffset:u.focusOffset}),ai&&oi(ai,u)||(ai=u,u=Pc(pf,"onSelect"),0>=k,p-=k,ks=1<<32-je(s)+p|i<v?v:8;var k=R.T,O={};R.T=O,tm(t,!1,s,i);try{var F=p(),se=R.S;if(se!==null&&se(O,F),F!==null&&typeof F=="object"&&typeof F.then=="function"){var de=VS(F,u);wi(t,s,de,Nn(t))}else wi(t,s,u,Nn(t))}catch(me){wi(t,s,{then:function(){},status:"rejected",reason:me},Nn())}finally{P.p=v,R.T=k}}function XS(){}function Jf(t,s,i,u){if(t.tag!==5)throw Error(a(476));var p=h0(t).queue;m0(t,p,s,I,i===null?XS:function(){return p0(t),i(u)})}function h0(t){var s=t.memoizedState;if(s!==null)return s;s={memoizedState:I,baseState:I,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rs,lastRenderedState:I},next:null};var i={};return s.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Rs,lastRenderedState:i},next:null},t.memoizedState=s,t=t.alternate,t!==null&&(t.memoizedState=s),s}function p0(t){var s=h0(t).next.queue;wi(t,s,{},Nn())}function em(){return tn($i)}function g0(){return Ot().memoizedState}function x0(){return Ot().memoizedState}function ZS(t){for(var s=t.return;s!==null;){switch(s.tag){case 24:case 3:var i=Nn();t=or(i);var u=ar(s,t,i);u!==null&&(jn(u,s,i),pi(u,s,i)),s={cache:Af()},t.payload=s;return}s=s.return}}function WS(t,s,i){var u=Nn();i={lane:u,revertLane:0,action:i,hasEagerState:!1,eagerState:null,next:null},yc(t)?v0(s,i):(i=bf(t,s,i,u),i!==null&&(jn(i,t,u),b0(i,s,u)))}function y0(t,s,i){var u=Nn();wi(t,s,i,u)}function wi(t,s,i,u){var p={lane:u,revertLane:0,action:i,hasEagerState:!1,eagerState:null,next:null};if(yc(t))v0(s,p);else{var v=t.alternate;if(t.lanes===0&&(v===null||v.lanes===0)&&(v=s.lastRenderedReducer,v!==null))try{var k=s.lastRenderedState,O=v(k,i);if(p.hasEagerState=!0,p.eagerState=O,xn(O,k))return tc(t,s,p,0),bt===null&&ec(),!1}catch{}if(i=bf(t,s,p,u),i!==null)return jn(i,t,u),b0(i,s,u),!0}return!1}function tm(t,s,i,u){if(u={lane:2,revertLane:Dm(),action:u,hasEagerState:!1,eagerState:null,next:null},yc(t)){if(s)throw Error(a(479))}else s=bf(t,i,u,2),s!==null&&jn(s,t,2)}function yc(t){var s=t.alternate;return t===Je||s!==null&&s===Je}function v0(t,s){Fo=fc=!0;var i=t.pending;i===null?s.next=s:(s.next=i.next,i.next=s),t.pending=s}function b0(t,s,i){if((i&4194048)!==0){var u=s.lanes;u&=t.pendingLanes,i|=u,s.lanes=i,wt(t,i)}}var vc={readContext:tn,use:hc,useCallback:Tt,useContext:Tt,useEffect:Tt,useImperativeHandle:Tt,useLayoutEffect:Tt,useInsertionEffect:Tt,useMemo:Tt,useReducer:Tt,useRef:Tt,useState:Tt,useDebugValue:Tt,useDeferredValue:Tt,useTransition:Tt,useSyncExternalStore:Tt,useId:Tt,useHostTransitionStatus:Tt,useFormState:Tt,useActionState:Tt,useOptimistic:Tt,useMemoCache:Tt,useCacheRefresh:Tt},w0={readContext:tn,use:hc,useCallback:function(t,s){return fn().memoizedState=[t,s===void 0?null:s],t},useContext:tn,useEffect:r0,useImperativeHandle:function(t,s,i){i=i!=null?i.concat([t]):null,xc(4194308,4,l0.bind(null,s,t),i)},useLayoutEffect:function(t,s){return xc(4194308,4,t,s)},useInsertionEffect:function(t,s){xc(4,2,t,s)},useMemo:function(t,s){var i=fn();s=s===void 0?null:s;var u=t();if(no){Ne(!0);try{t()}finally{Ne(!1)}}return i.memoizedState=[u,s],u},useReducer:function(t,s,i){var u=fn();if(i!==void 0){var p=i(s);if(no){Ne(!0);try{i(s)}finally{Ne(!1)}}}else p=s;return u.memoizedState=u.baseState=p,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:p},u.queue=t,t=t.dispatch=WS.bind(null,Je,t),[u.memoizedState,t]},useRef:function(t){var s=fn();return t={current:t},s.memoizedState=t},useState:function(t){t=Zf(t);var s=t.queue,i=y0.bind(null,Je,s);return s.dispatch=i,[t.memoizedState,i]},useDebugValue:Kf,useDeferredValue:function(t,s){var i=fn();return Qf(i,t,s)},useTransition:function(){var t=Zf(!1);return t=m0.bind(null,Je,t.queue,!0,!1),fn().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,s,i){var u=Je,p=fn();if(ut){if(i===void 0)throw Error(a(407));i=i()}else{if(i=s(),bt===null)throw Error(a(349));(it&124)!==0||Bx(u,s,i)}p.memoizedState=i;var v={value:i,getSnapshot:s};return p.queue=v,r0(qx.bind(null,u,v,t),[t]),u.flags|=2048,Go(9,gc(),Vx.bind(null,u,v,i,s),null),i},useId:function(){var t=fn(),s=bt.identifierPrefix;if(ut){var i=Ts,u=ks;i=(u&~(1<<32-je(u)-1)).toString(32)+i,s="«"+s+"R"+i,i=mc++,0Fe?(Gt=Be,Be=null):Gt=Be.sibling;var ct=re(J,Be,te[Fe],fe);if(ct===null){Be===null&&(Be=Gt);break}t&&Be&&ct.alternate===null&&s(J,Be),Z=v(ct,Z,Fe),tt===null?Oe=ct:tt.sibling=ct,tt=ct,Be=Gt}if(Fe===te.length)return i(J,Be),ut&&Wr(J,Fe),Oe;if(Be===null){for(;FeFe?(Gt=Be,Be=null):Gt=Be.sibling;var jr=re(J,Be,ct.value,fe);if(jr===null){Be===null&&(Be=Gt);break}t&&Be&&jr.alternate===null&&s(J,Be),Z=v(jr,Z,Fe),tt===null?Oe=jr:tt.sibling=jr,tt=jr,Be=Gt}if(ct.done)return i(J,Be),ut&&Wr(J,Fe),Oe;if(Be===null){for(;!ct.done;Fe++,ct=te.next())ct=me(J,ct.value,fe),ct!==null&&(Z=v(ct,Z,Fe),tt===null?Oe=ct:tt.sibling=ct,tt=ct);return ut&&Wr(J,Fe),Oe}for(Be=u(Be);!ct.done;Fe++,ct=te.next())ct=oe(Be,J,Fe,ct.value,fe),ct!==null&&(t&&ct.alternate!==null&&Be.delete(ct.key===null?Fe:ct.key),Z=v(ct,Z,Fe),tt===null?Oe=ct:tt.sibling=ct,tt=ct);return t&&Be.forEach(function(QE){return s(J,QE)}),ut&&Wr(J,Fe),Oe}function yt(J,Z,te,fe){if(typeof te=="object"&&te!==null&&te.type===_&&te.key===null&&(te=te.props.children),typeof te=="object"&&te!==null){switch(te.$$typeof){case x:e:{for(var Oe=te.key;Z!==null;){if(Z.key===Oe){if(Oe=te.type,Oe===_){if(Z.tag===7){i(J,Z.sibling),fe=p(Z,te.props.children),fe.return=J,J=fe;break e}}else if(Z.elementType===Oe||typeof Oe=="object"&&Oe!==null&&Oe.$$typeof===H&&j0(Oe)===Z.type){i(J,Z.sibling),fe=p(Z,te.props),ji(fe,te),fe.return=J,J=fe;break e}i(J,Z);break}else s(J,Z);Z=Z.sibling}te.type===_?(fe=Xr(te.props.children,J.mode,fe,te.key),fe.return=J,J=fe):(fe=sc(te.type,te.key,te.props,null,J.mode,fe),ji(fe,te),fe.return=J,J=fe)}return k(J);case b:e:{for(Oe=te.key;Z!==null;){if(Z.key===Oe)if(Z.tag===4&&Z.stateNode.containerInfo===te.containerInfo&&Z.stateNode.implementation===te.implementation){i(J,Z.sibling),fe=p(Z,te.children||[]),fe.return=J,J=fe;break e}else{i(J,Z);break}else s(J,Z);Z=Z.sibling}fe=jf(te,J.mode,fe),fe.return=J,J=fe}return k(J);case H:return Oe=te._init,te=Oe(te._payload),yt(J,Z,te,fe)}if(U(te))return Ye(J,Z,te,fe);if(X(te)){if(Oe=X(te),typeof Oe!="function")throw Error(a(150));return te=Oe.call(te),qe(J,Z,te,fe)}if(typeof te.then=="function")return yt(J,Z,bc(te),fe);if(te.$$typeof===E)return yt(J,Z,ic(J,te),fe);wc(J,te)}return typeof te=="string"&&te!==""||typeof te=="number"||typeof te=="bigint"?(te=""+te,Z!==null&&Z.tag===6?(i(J,Z.sibling),fe=p(Z,te),fe.return=J,J=fe):(i(J,Z),fe=Nf(te,J.mode,fe),fe.return=J,J=fe),k(J)):i(J,Z)}return function(J,Z,te,fe){try{Ni=0;var Oe=yt(J,Z,te,fe);return Xo=null,Oe}catch(Be){if(Be===mi||Be===cc)throw Be;var tt=yn(29,Be,null,J.mode);return tt.lanes=fe,tt.return=J,tt}}}var Zo=_0(!0),S0=_0(!1),zn=L(null),ss=null;function lr(t){var s=t.alternate;V($t,$t.current&1),V(zn,t),ss===null&&(s===null||qo.current!==null||s.memoizedState!==null)&&(ss=t)}function E0(t){if(t.tag===22){if(V($t,$t.current),V(zn,t),ss===null){var s=t.alternate;s!==null&&s.memoizedState!==null&&(ss=t)}}else cr()}function cr(){V($t,$t.current),V(zn,zn.current)}function Ds(t){Y(zn),ss===t&&(ss=null),Y($t)}var $t=L(0);function Nc(t){for(var s=t;s!==null;){if(s.tag===13){var i=s.memoizedState;if(i!==null&&(i=i.dehydrated,i===null||i.data==="$?"||Fm(i)))return s}else if(s.tag===19&&s.memoizedProps.revealOrder!==void 0){if((s.flags&128)!==0)return s}else if(s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break;for(;s.sibling===null;){if(s.return===null||s.return===t)return null;s=s.return}s.sibling.return=s.return,s=s.sibling}return null}function nm(t,s,i,u){s=t.memoizedState,i=i(u,s),i=i==null?s:g({},s,i),t.memoizedState=i,t.lanes===0&&(t.updateQueue.baseState=i)}var sm={enqueueSetState:function(t,s,i){t=t._reactInternals;var u=Nn(),p=or(u);p.payload=s,i!=null&&(p.callback=i),s=ar(t,p,u),s!==null&&(jn(s,t,u),pi(s,t,u))},enqueueReplaceState:function(t,s,i){t=t._reactInternals;var u=Nn(),p=or(u);p.tag=1,p.payload=s,i!=null&&(p.callback=i),s=ar(t,p,u),s!==null&&(jn(s,t,u),pi(s,t,u))},enqueueForceUpdate:function(t,s){t=t._reactInternals;var i=Nn(),u=or(i);u.tag=2,s!=null&&(u.callback=s),s=ar(t,u,i),s!==null&&(jn(s,t,i),pi(s,t,i))}};function C0(t,s,i,u,p,v,k){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(u,v,k):s.prototype&&s.prototype.isPureReactComponent?!oi(i,u)||!oi(p,v):!0}function k0(t,s,i,u){t=s.state,typeof s.componentWillReceiveProps=="function"&&s.componentWillReceiveProps(i,u),typeof s.UNSAFE_componentWillReceiveProps=="function"&&s.UNSAFE_componentWillReceiveProps(i,u),s.state!==t&&sm.enqueueReplaceState(s,s.state,null)}function so(t,s){var i=s;if("ref"in s){i={};for(var u in s)u!=="ref"&&(i[u]=s[u])}if(t=t.defaultProps){i===s&&(i=g({},i));for(var p in t)i[p]===void 0&&(i[p]=t[p])}return i}var jc=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var s=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(s))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)};function T0(t){jc(t)}function A0(t){console.error(t)}function M0(t){jc(t)}function _c(t,s){try{var i=t.onUncaughtError;i(s.value,{componentStack:s.stack})}catch(u){setTimeout(function(){throw u})}}function R0(t,s,i){try{var u=t.onCaughtError;u(i.value,{componentStack:i.stack,errorBoundary:s.tag===1?s.stateNode:null})}catch(p){setTimeout(function(){throw p})}}function rm(t,s,i){return i=or(i),i.tag=3,i.payload={element:null},i.callback=function(){_c(t,s)},i}function D0(t){return t=or(t),t.tag=3,t}function O0(t,s,i,u){var p=i.type.getDerivedStateFromError;if(typeof p=="function"){var v=u.value;t.payload=function(){return p(v)},t.callback=function(){R0(s,i,u)}}var k=i.stateNode;k!==null&&typeof k.componentDidCatch=="function"&&(t.callback=function(){R0(s,i,u),typeof p!="function"&&(pr===null?pr=new Set([this]):pr.add(this));var O=u.stack;this.componentDidCatch(u.value,{componentStack:O!==null?O:""})})}function QS(t,s,i,u,p){if(i.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){if(s=i.alternate,s!==null&&ui(s,i,p,!0),i=zn.current,i!==null){switch(i.tag){case 13:return ss===null?km():i.alternate===null&&Ct===0&&(Ct=3),i.flags&=-257,i.flags|=65536,i.lanes=p,u===Df?i.flags|=16384:(s=i.updateQueue,s===null?i.updateQueue=new Set([u]):s.add(u),Am(t,u,p)),!1;case 22:return i.flags|=65536,u===Df?i.flags|=16384:(s=i.updateQueue,s===null?(s={transitions:null,markerInstances:null,retryQueue:new Set([u])},i.updateQueue=s):(i=s.retryQueue,i===null?s.retryQueue=new Set([u]):i.add(u)),Am(t,u,p)),!1}throw Error(a(435,i.tag))}return Am(t,u,p),km(),!1}if(ut)return s=zn.current,s!==null?((s.flags&65536)===0&&(s.flags|=256),s.flags|=65536,s.lanes=p,u!==Ef&&(t=Error(a(422),{cause:u}),ci(Mn(t,i)))):(u!==Ef&&(s=Error(a(423),{cause:u}),ci(Mn(s,i))),t=t.current.alternate,t.flags|=65536,p&=-p,t.lanes|=p,u=Mn(u,i),p=rm(t.stateNode,u,p),If(t,p),Ct!==4&&(Ct=2)),!1;var v=Error(a(520),{cause:u});if(v=Mn(v,i),Ai===null?Ai=[v]:Ai.push(v),Ct!==4&&(Ct=2),s===null)return!0;u=Mn(u,i),i=s;do{switch(i.tag){case 3:return i.flags|=65536,t=p&-p,i.lanes|=t,t=rm(i.stateNode,u,t),If(i,t),!1;case 1:if(s=i.type,v=i.stateNode,(i.flags&128)===0&&(typeof s.getDerivedStateFromError=="function"||v!==null&&typeof v.componentDidCatch=="function"&&(pr===null||!pr.has(v))))return i.flags|=65536,p&=-p,i.lanes|=p,p=D0(p),O0(p,t,i,u),If(i,p),!1}i=i.return}while(i!==null);return!1}var z0=Error(a(461)),Ft=!1;function Zt(t,s,i,u){s.child=t===null?S0(s,null,i,u):Zo(s,t.child,i,u)}function I0(t,s,i,u,p){i=i.render;var v=s.ref;if("ref"in u){var k={};for(var O in u)O!=="ref"&&(k[O]=u[O])}else k=u;return eo(s),u=Uf(t,s,i,k,v,p),O=Bf(),t!==null&&!Ft?(Vf(t,s,p),Os(t,s,p)):(ut&&O&&_f(s),s.flags|=1,Zt(t,s,u,p),s.child)}function L0(t,s,i,u,p){if(t===null){var v=i.type;return typeof v=="function"&&!wf(v)&&v.defaultProps===void 0&&i.compare===null?(s.tag=15,s.type=v,P0(t,s,v,u,p)):(t=sc(i.type,null,u,s,s.mode,p),t.ref=s.ref,t.return=s,s.child=t)}if(v=t.child,!fm(t,p)){var k=v.memoizedProps;if(i=i.compare,i=i!==null?i:oi,i(k,u)&&t.ref===s.ref)return Os(t,s,p)}return s.flags|=1,t=Cs(v,u),t.ref=s.ref,t.return=s,s.child=t}function P0(t,s,i,u,p){if(t!==null){var v=t.memoizedProps;if(oi(v,u)&&t.ref===s.ref)if(Ft=!1,s.pendingProps=u=v,fm(t,p))(t.flags&131072)!==0&&(Ft=!0);else return s.lanes=t.lanes,Os(t,s,p)}return om(t,s,i,u,p)}function $0(t,s,i){var u=s.pendingProps,p=u.children,v=t!==null?t.memoizedState:null;if(u.mode==="hidden"){if((s.flags&128)!==0){if(u=v!==null?v.baseLanes|i:i,t!==null){for(p=s.child=t.child,v=0;p!==null;)v=v|p.lanes|p.childLanes,p=p.sibling;s.childLanes=v&~u}else s.childLanes=0,s.child=null;return H0(t,s,u,i)}if((i&536870912)!==0)s.memoizedState={baseLanes:0,cachePool:null},t!==null&&lc(s,v!==null?v.cachePool:null),v!==null?Px(s,v):Pf(),E0(s);else return s.lanes=s.childLanes=536870912,H0(t,s,v!==null?v.baseLanes|i:i,i)}else v!==null?(lc(s,v.cachePool),Px(s,v),cr(),s.memoizedState=null):(t!==null&&lc(s,null),Pf(),cr());return Zt(t,s,p,i),s.child}function H0(t,s,i,u){var p=Rf();return p=p===null?null:{parent:Pt._currentValue,pool:p},s.memoizedState={baseLanes:i,cachePool:p},t!==null&&lc(s,null),Pf(),E0(s),t!==null&&ui(t,s,u,!0),null}function Sc(t,s){var i=s.ref;if(i===null)t!==null&&t.ref!==null&&(s.flags|=4194816);else{if(typeof i!="function"&&typeof i!="object")throw Error(a(284));(t===null||t.ref!==i)&&(s.flags|=4194816)}}function om(t,s,i,u,p){return eo(s),i=Uf(t,s,i,u,void 0,p),u=Bf(),t!==null&&!Ft?(Vf(t,s,p),Os(t,s,p)):(ut&&u&&_f(s),s.flags|=1,Zt(t,s,i,p),s.child)}function U0(t,s,i,u,p,v){return eo(s),s.updateQueue=null,i=Hx(s,u,i,p),$x(t),u=Bf(),t!==null&&!Ft?(Vf(t,s,v),Os(t,s,v)):(ut&&u&&_f(s),s.flags|=1,Zt(t,s,i,v),s.child)}function B0(t,s,i,u,p){if(eo(s),s.stateNode===null){var v=$o,k=i.contextType;typeof k=="object"&&k!==null&&(v=tn(k)),v=new i(u,v),s.memoizedState=v.state!==null&&v.state!==void 0?v.state:null,v.updater=sm,s.stateNode=v,v._reactInternals=s,v=s.stateNode,v.props=u,v.state=s.memoizedState,v.refs={},Of(s),k=i.contextType,v.context=typeof k=="object"&&k!==null?tn(k):$o,v.state=s.memoizedState,k=i.getDerivedStateFromProps,typeof k=="function"&&(nm(s,i,k,u),v.state=s.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof v.getSnapshotBeforeUpdate=="function"||typeof v.UNSAFE_componentWillMount!="function"&&typeof v.componentWillMount!="function"||(k=v.state,typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount(),k!==v.state&&sm.enqueueReplaceState(v,v.state,null),xi(s,u,v,p),gi(),v.state=s.memoizedState),typeof v.componentDidMount=="function"&&(s.flags|=4194308),u=!0}else if(t===null){v=s.stateNode;var O=s.memoizedProps,F=so(i,O);v.props=F;var se=v.context,de=i.contextType;k=$o,typeof de=="object"&&de!==null&&(k=tn(de));var me=i.getDerivedStateFromProps;de=typeof me=="function"||typeof v.getSnapshotBeforeUpdate=="function",O=s.pendingProps!==O,de||typeof v.UNSAFE_componentWillReceiveProps!="function"&&typeof v.componentWillReceiveProps!="function"||(O||se!==k)&&k0(s,v,u,k),rr=!1;var re=s.memoizedState;v.state=re,xi(s,u,v,p),gi(),se=s.memoizedState,O||re!==se||rr?(typeof me=="function"&&(nm(s,i,me,u),se=s.memoizedState),(F=rr||C0(s,i,F,u,re,se,k))?(de||typeof v.UNSAFE_componentWillMount!="function"&&typeof v.componentWillMount!="function"||(typeof v.componentWillMount=="function"&&v.componentWillMount(),typeof v.UNSAFE_componentWillMount=="function"&&v.UNSAFE_componentWillMount()),typeof v.componentDidMount=="function"&&(s.flags|=4194308)):(typeof v.componentDidMount=="function"&&(s.flags|=4194308),s.memoizedProps=u,s.memoizedState=se),v.props=u,v.state=se,v.context=k,u=F):(typeof v.componentDidMount=="function"&&(s.flags|=4194308),u=!1)}else{v=s.stateNode,zf(t,s),k=s.memoizedProps,de=so(i,k),v.props=de,me=s.pendingProps,re=v.context,se=i.contextType,F=$o,typeof se=="object"&&se!==null&&(F=tn(se)),O=i.getDerivedStateFromProps,(se=typeof O=="function"||typeof v.getSnapshotBeforeUpdate=="function")||typeof v.UNSAFE_componentWillReceiveProps!="function"&&typeof v.componentWillReceiveProps!="function"||(k!==me||re!==F)&&k0(s,v,u,F),rr=!1,re=s.memoizedState,v.state=re,xi(s,u,v,p),gi();var oe=s.memoizedState;k!==me||re!==oe||rr||t!==null&&t.dependencies!==null&&ac(t.dependencies)?(typeof O=="function"&&(nm(s,i,O,u),oe=s.memoizedState),(de=rr||C0(s,i,de,u,re,oe,F)||t!==null&&t.dependencies!==null&&ac(t.dependencies))?(se||typeof v.UNSAFE_componentWillUpdate!="function"&&typeof v.componentWillUpdate!="function"||(typeof v.componentWillUpdate=="function"&&v.componentWillUpdate(u,oe,F),typeof v.UNSAFE_componentWillUpdate=="function"&&v.UNSAFE_componentWillUpdate(u,oe,F)),typeof v.componentDidUpdate=="function"&&(s.flags|=4),typeof v.getSnapshotBeforeUpdate=="function"&&(s.flags|=1024)):(typeof v.componentDidUpdate!="function"||k===t.memoizedProps&&re===t.memoizedState||(s.flags|=4),typeof v.getSnapshotBeforeUpdate!="function"||k===t.memoizedProps&&re===t.memoizedState||(s.flags|=1024),s.memoizedProps=u,s.memoizedState=oe),v.props=u,v.state=oe,v.context=F,u=de):(typeof v.componentDidUpdate!="function"||k===t.memoizedProps&&re===t.memoizedState||(s.flags|=4),typeof v.getSnapshotBeforeUpdate!="function"||k===t.memoizedProps&&re===t.memoizedState||(s.flags|=1024),u=!1)}return v=u,Sc(t,s),u=(s.flags&128)!==0,v||u?(v=s.stateNode,i=u&&typeof i.getDerivedStateFromError!="function"?null:v.render(),s.flags|=1,t!==null&&u?(s.child=Zo(s,t.child,null,p),s.child=Zo(s,null,i,p)):Zt(t,s,i,p),s.memoizedState=v.state,t=s.child):t=Os(t,s,p),t}function V0(t,s,i,u){return li(),s.flags|=256,Zt(t,s,i,u),s.child}var am={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function im(t){return{baseLanes:t,cachePool:Ax()}}function lm(t,s,i){return t=t!==null?t.childLanes&~i:0,s&&(t|=In),t}function q0(t,s,i){var u=s.pendingProps,p=!1,v=(s.flags&128)!==0,k;if((k=v)||(k=t!==null&&t.memoizedState===null?!1:($t.current&2)!==0),k&&(p=!0,s.flags&=-129),k=(s.flags&32)!==0,s.flags&=-33,t===null){if(ut){if(p?lr(s):cr(),ut){var O=Et,F;if(F=O){e:{for(F=O,O=ns;F.nodeType!==8;){if(!O){O=null;break e}if(F=Fn(F.nextSibling),F===null){O=null;break e}}O=F}O!==null?(s.memoizedState={dehydrated:O,treeContext:Zr!==null?{id:ks,overflow:Ts}:null,retryLane:536870912,hydrationErrors:null},F=yn(18,null,null,0),F.stateNode=O,F.return=s,s.child=F,on=s,Et=null,F=!0):F=!1}F||Qr(s)}if(O=s.memoizedState,O!==null&&(O=O.dehydrated,O!==null))return Fm(O)?s.lanes=32:s.lanes=536870912,null;Ds(s)}return O=u.children,u=u.fallback,p?(cr(),p=s.mode,O=Ec({mode:"hidden",children:O},p),u=Xr(u,p,i,null),O.return=s,u.return=s,O.sibling=u,s.child=O,p=s.child,p.memoizedState=im(i),p.childLanes=lm(t,k,i),s.memoizedState=am,u):(lr(s),cm(s,O))}if(F=t.memoizedState,F!==null&&(O=F.dehydrated,O!==null)){if(v)s.flags&256?(lr(s),s.flags&=-257,s=um(t,s,i)):s.memoizedState!==null?(cr(),s.child=t.child,s.flags|=128,s=null):(cr(),p=u.fallback,O=s.mode,u=Ec({mode:"visible",children:u.children},O),p=Xr(p,O,i,null),p.flags|=2,u.return=s,p.return=s,u.sibling=p,s.child=u,Zo(s,t.child,null,i),u=s.child,u.memoizedState=im(i),u.childLanes=lm(t,k,i),s.memoizedState=am,s=p);else if(lr(s),Fm(O)){if(k=O.nextSibling&&O.nextSibling.dataset,k)var se=k.dgst;k=se,u=Error(a(419)),u.stack="",u.digest=k,ci({value:u,source:null,stack:null}),s=um(t,s,i)}else if(Ft||ui(t,s,i,!1),k=(i&t.childLanes)!==0,Ft||k){if(k=bt,k!==null&&(u=i&-i,u=(u&42)!==0?1:gn(u),u=(u&(k.suspendedLanes|i))!==0?0:u,u!==0&&u!==F.retryLane))throw F.retryLane=u,Po(t,u),jn(k,t,u),z0;O.data==="$?"||km(),s=um(t,s,i)}else O.data==="$?"?(s.flags|=192,s.child=t.child,s=null):(t=F.treeContext,Et=Fn(O.nextSibling),on=s,ut=!0,Kr=null,ns=!1,t!==null&&(Dn[On++]=ks,Dn[On++]=Ts,Dn[On++]=Zr,ks=t.id,Ts=t.overflow,Zr=s),s=cm(s,u.children),s.flags|=4096);return s}return p?(cr(),p=u.fallback,O=s.mode,F=t.child,se=F.sibling,u=Cs(F,{mode:"hidden",children:u.children}),u.subtreeFlags=F.subtreeFlags&65011712,se!==null?p=Cs(se,p):(p=Xr(p,O,i,null),p.flags|=2),p.return=s,u.return=s,u.sibling=p,s.child=u,u=p,p=s.child,O=t.child.memoizedState,O===null?O=im(i):(F=O.cachePool,F!==null?(se=Pt._currentValue,F=F.parent!==se?{parent:se,pool:se}:F):F=Ax(),O={baseLanes:O.baseLanes|i,cachePool:F}),p.memoizedState=O,p.childLanes=lm(t,k,i),s.memoizedState=am,u):(lr(s),i=t.child,t=i.sibling,i=Cs(i,{mode:"visible",children:u.children}),i.return=s,i.sibling=null,t!==null&&(k=s.deletions,k===null?(s.deletions=[t],s.flags|=16):k.push(t)),s.child=i,s.memoizedState=null,i)}function cm(t,s){return s=Ec({mode:"visible",children:s},t.mode),s.return=t,t.child=s}function Ec(t,s){return t=yn(22,t,null,s),t.lanes=0,t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},t}function um(t,s,i){return Zo(s,t.child,null,i),t=cm(s,s.pendingProps.children),t.flags|=2,s.memoizedState=null,t}function F0(t,s,i){t.lanes|=s;var u=t.alternate;u!==null&&(u.lanes|=s),kf(t.return,s,i)}function dm(t,s,i,u,p){var v=t.memoizedState;v===null?t.memoizedState={isBackwards:s,rendering:null,renderingStartTime:0,last:u,tail:i,tailMode:p}:(v.isBackwards=s,v.rendering=null,v.renderingStartTime=0,v.last=u,v.tail=i,v.tailMode=p)}function Y0(t,s,i){var u=s.pendingProps,p=u.revealOrder,v=u.tail;if(Zt(t,s,u.children,i),u=$t.current,(u&2)!==0)u=u&1|2,s.flags|=128;else{if(t!==null&&(t.flags&128)!==0)e:for(t=s.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&F0(t,i,s);else if(t.tag===19)F0(t,i,s);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===s)break e;for(;t.sibling===null;){if(t.return===null||t.return===s)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}u&=1}switch(V($t,u),p){case"forwards":for(i=s.child,p=null;i!==null;)t=i.alternate,t!==null&&Nc(t)===null&&(p=i),i=i.sibling;i=p,i===null?(p=s.child,s.child=null):(p=i.sibling,i.sibling=null),dm(s,!1,p,i,v);break;case"backwards":for(i=null,p=s.child,s.child=null;p!==null;){if(t=p.alternate,t!==null&&Nc(t)===null){s.child=p;break}t=p.sibling,p.sibling=i,i=p,p=t}dm(s,!0,i,null,v);break;case"together":dm(s,!1,null,null,void 0);break;default:s.memoizedState=null}return s.child}function Os(t,s,i){if(t!==null&&(s.dependencies=t.dependencies),hr|=s.lanes,(i&s.childLanes)===0)if(t!==null){if(ui(t,s,i,!1),(i&s.childLanes)===0)return null}else return null;if(t!==null&&s.child!==t.child)throw Error(a(153));if(s.child!==null){for(t=s.child,i=Cs(t,t.pendingProps),s.child=i,i.return=s;t.sibling!==null;)t=t.sibling,i=i.sibling=Cs(t,t.pendingProps),i.return=s;i.sibling=null}return s.child}function fm(t,s){return(t.lanes&s)!==0?!0:(t=t.dependencies,!!(t!==null&&ac(t)))}function JS(t,s,i){switch(s.tag){case 3:ae(s,s.stateNode.containerInfo),sr(s,Pt,t.memoizedState.cache),li();break;case 27:case 5:_e(s);break;case 4:ae(s,s.stateNode.containerInfo);break;case 10:sr(s,s.type,s.memoizedProps.value);break;case 13:var u=s.memoizedState;if(u!==null)return u.dehydrated!==null?(lr(s),s.flags|=128,null):(i&s.child.childLanes)!==0?q0(t,s,i):(lr(s),t=Os(t,s,i),t!==null?t.sibling:null);lr(s);break;case 19:var p=(t.flags&128)!==0;if(u=(i&s.childLanes)!==0,u||(ui(t,s,i,!1),u=(i&s.childLanes)!==0),p){if(u)return Y0(t,s,i);s.flags|=128}if(p=s.memoizedState,p!==null&&(p.rendering=null,p.tail=null,p.lastEffect=null),V($t,$t.current),u)break;return null;case 22:case 23:return s.lanes=0,$0(t,s,i);case 24:sr(s,Pt,t.memoizedState.cache)}return Os(t,s,i)}function G0(t,s,i){if(t!==null)if(t.memoizedProps!==s.pendingProps)Ft=!0;else{if(!fm(t,i)&&(s.flags&128)===0)return Ft=!1,JS(t,s,i);Ft=(t.flags&131072)!==0}else Ft=!1,ut&&(s.flags&1048576)!==0&&jx(s,oc,s.index);switch(s.lanes=0,s.tag){case 16:e:{t=s.pendingProps;var u=s.elementType,p=u._init;if(u=p(u._payload),s.type=u,typeof u=="function")wf(u)?(t=so(u,t),s.tag=1,s=B0(null,s,u,t,i)):(s.tag=0,s=om(null,s,u,t,i));else{if(u!=null){if(p=u.$$typeof,p===A){s.tag=11,s=I0(null,s,u,t,i);break e}else if(p===z){s.tag=14,s=L0(null,s,u,t,i);break e}}throw s=B(u)||u,Error(a(306,s,""))}}return s;case 0:return om(t,s,s.type,s.pendingProps,i);case 1:return u=s.type,p=so(u,s.pendingProps),B0(t,s,u,p,i);case 3:e:{if(ae(s,s.stateNode.containerInfo),t===null)throw Error(a(387));u=s.pendingProps;var v=s.memoizedState;p=v.element,zf(t,s),xi(s,u,null,i);var k=s.memoizedState;if(u=k.cache,sr(s,Pt,u),u!==v.cache&&Tf(s,[Pt],i,!0),gi(),u=k.element,v.isDehydrated)if(v={element:u,isDehydrated:!1,cache:k.cache},s.updateQueue.baseState=v,s.memoizedState=v,s.flags&256){s=V0(t,s,u,i);break e}else if(u!==p){p=Mn(Error(a(424)),s),ci(p),s=V0(t,s,u,i);break e}else for(t=s.stateNode.containerInfo,t.nodeType===9?t=t.body:t=t.nodeName==="HTML"?t.ownerDocument.body:t,Et=Fn(t.firstChild),on=s,ut=!0,Kr=null,ns=!0,i=S0(s,null,u,i),s.child=i;i;)i.flags=i.flags&-3|4096,i=i.sibling;else{if(li(),u===p){s=Os(t,s,i);break e}Zt(t,s,u,i)}s=s.child}return s;case 26:return Sc(t,s),t===null?(i=Ky(s.type,null,s.pendingProps,null))?s.memoizedState=i:ut||(i=s.type,t=s.pendingProps,u=Hc(ue.current).createElement(i),u[qt]=s,u[en]=t,Kt(u,i,t),Rt(u),s.stateNode=u):s.memoizedState=Ky(s.type,t.memoizedProps,s.pendingProps,t.memoizedState),null;case 27:return _e(s),t===null&&ut&&(u=s.stateNode=Xy(s.type,s.pendingProps,ue.current),on=s,ns=!0,p=Et,yr(s.type)?(Ym=p,Et=Fn(u.firstChild)):Et=p),Zt(t,s,s.pendingProps.children,i),Sc(t,s),t===null&&(s.flags|=4194304),s.child;case 5:return t===null&&ut&&((p=u=Et)&&(u=CE(u,s.type,s.pendingProps,ns),u!==null?(s.stateNode=u,on=s,Et=Fn(u.firstChild),ns=!1,p=!0):p=!1),p||Qr(s)),_e(s),p=s.type,v=s.pendingProps,k=t!==null?t.memoizedProps:null,u=v.children,Bm(p,v)?u=null:k!==null&&Bm(p,k)&&(s.flags|=32),s.memoizedState!==null&&(p=Uf(t,s,FS,null,null,i),$i._currentValue=p),Sc(t,s),Zt(t,s,u,i),s.child;case 6:return t===null&&ut&&((t=i=Et)&&(i=kE(i,s.pendingProps,ns),i!==null?(s.stateNode=i,on=s,Et=null,t=!0):t=!1),t||Qr(s)),null;case 13:return q0(t,s,i);case 4:return ae(s,s.stateNode.containerInfo),u=s.pendingProps,t===null?s.child=Zo(s,null,u,i):Zt(t,s,u,i),s.child;case 11:return I0(t,s,s.type,s.pendingProps,i);case 7:return Zt(t,s,s.pendingProps,i),s.child;case 8:return Zt(t,s,s.pendingProps.children,i),s.child;case 12:return Zt(t,s,s.pendingProps.children,i),s.child;case 10:return u=s.pendingProps,sr(s,s.type,u.value),Zt(t,s,u.children,i),s.child;case 9:return p=s.type._context,u=s.pendingProps.children,eo(s),p=tn(p),u=u(p),s.flags|=1,Zt(t,s,u,i),s.child;case 14:return L0(t,s,s.type,s.pendingProps,i);case 15:return P0(t,s,s.type,s.pendingProps,i);case 19:return Y0(t,s,i);case 31:return u=s.pendingProps,i=s.mode,u={mode:u.mode,children:u.children},t===null?(i=Ec(u,i),i.ref=s.ref,s.child=i,i.return=s,s=i):(i=Cs(t.child,u),i.ref=s.ref,s.child=i,i.return=s,s=i),s;case 22:return $0(t,s,i);case 24:return eo(s),u=tn(Pt),t===null?(p=Rf(),p===null&&(p=bt,v=Af(),p.pooledCache=v,v.refCount++,v!==null&&(p.pooledCacheLanes|=i),p=v),s.memoizedState={parent:u,cache:p},Of(s),sr(s,Pt,p)):((t.lanes&i)!==0&&(zf(t,s),xi(s,null,null,i),gi()),p=t.memoizedState,v=s.memoizedState,p.parent!==u?(p={parent:u,cache:u},s.memoizedState=p,s.lanes===0&&(s.memoizedState=s.updateQueue.baseState=p),sr(s,Pt,u)):(u=v.cache,sr(s,Pt,u),u!==p.cache&&Tf(s,[Pt],i,!0))),Zt(t,s,s.pendingProps.children,i),s.child;case 29:throw s.pendingProps}throw Error(a(156,s.tag))}function zs(t){t.flags|=4}function X0(t,s){if(s.type!=="stylesheet"||(s.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!nv(s)){if(s=zn.current,s!==null&&((it&4194048)===it?ss!==null:(it&62914560)!==it&&(it&536870912)===0||s!==ss))throw hi=Df,Mx;t.flags|=8192}}function Cc(t,s){s!==null&&(t.flags|=4),t.flags&16384&&(s=t.tag!==22?Ue():536870912,t.lanes|=s,Jo|=s)}function _i(t,s){if(!ut)switch(t.tailMode){case"hidden":s=t.tail;for(var i=null;s!==null;)s.alternate!==null&&(i=s),s=s.sibling;i===null?t.tail=null:i.sibling=null;break;case"collapsed":i=t.tail;for(var u=null;i!==null;)i.alternate!==null&&(u=i),i=i.sibling;u===null?s||t.tail===null?t.tail=null:t.tail.sibling=null:u.sibling=null}}function St(t){var s=t.alternate!==null&&t.alternate.child===t.child,i=0,u=0;if(s)for(var p=t.child;p!==null;)i|=p.lanes|p.childLanes,u|=p.subtreeFlags&65011712,u|=p.flags&65011712,p.return=t,p=p.sibling;else for(p=t.child;p!==null;)i|=p.lanes|p.childLanes,u|=p.subtreeFlags,u|=p.flags,p.return=t,p=p.sibling;return t.subtreeFlags|=u,t.childLanes=i,s}function eE(t,s,i){var u=s.pendingProps;switch(Sf(s),s.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return St(s),null;case 1:return St(s),null;case 3:return i=s.stateNode,u=null,t!==null&&(u=t.memoizedState.cache),s.memoizedState.cache!==u&&(s.flags|=2048),Ms(Pt),ge(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(t===null||t.child===null)&&(ii(s)?zs(s):t===null||t.memoizedState.isDehydrated&&(s.flags&256)===0||(s.flags|=1024,Ex())),St(s),null;case 26:return i=s.memoizedState,t===null?(zs(s),i!==null?(St(s),X0(s,i)):(St(s),s.flags&=-16777217)):i?i!==t.memoizedState?(zs(s),St(s),X0(s,i)):(St(s),s.flags&=-16777217):(t.memoizedProps!==u&&zs(s),St(s),s.flags&=-16777217),null;case 27:we(s),i=ue.current;var p=s.type;if(t!==null&&s.stateNode!=null)t.memoizedProps!==u&&zs(s);else{if(!u){if(s.stateNode===null)throw Error(a(166));return St(s),null}t=ee.current,ii(s)?_x(s):(t=Xy(p,u,i),s.stateNode=t,zs(s))}return St(s),null;case 5:if(we(s),i=s.type,t!==null&&s.stateNode!=null)t.memoizedProps!==u&&zs(s);else{if(!u){if(s.stateNode===null)throw Error(a(166));return St(s),null}if(t=ee.current,ii(s))_x(s);else{switch(p=Hc(ue.current),t){case 1:t=p.createElementNS("http://www.w3.org/2000/svg",i);break;case 2:t=p.createElementNS("http://www.w3.org/1998/Math/MathML",i);break;default:switch(i){case"svg":t=p.createElementNS("http://www.w3.org/2000/svg",i);break;case"math":t=p.createElementNS("http://www.w3.org/1998/Math/MathML",i);break;case"script":t=p.createElement("div"),t.innerHTML="