
                if (registrationNameDependencies.hasOwnProperty(propKey))
                  "function" !== typeof value && warnForInvalidEventListener(propKey, value);
                else if (true !== props.suppressHydrationWarning)
                  switch (propKey) {
                    case "children":
                      "string" !== typeof value && "number" !== typeof value || warnForPropDifference(
                        "children",
                        domElement.textContent,
                        value,
                        serverDifferences
                      );
                      continue;
                    case "suppressContentEditableWarning":
                    case "suppressHydrationWarning":
                    case "defaultValue":
                    case "defaultChecked":
                    case "innerHTML":
                    case "ref":
                      continue;
                    case "dangerouslySetInnerHTML":
                      attributes = domElement.innerHTML;
                      value = value ? value.__html : void 0;
                      null != value && (value = normalizeHTML(domElement, value), warnForPropDifference(
                        propKey,
                        attributes,
                        value,
                        serverDifferences
                      ));
                      continue;
                    case "style":
                      extraAttributes.delete(propKey);
                      diffHydratedStyles(domElement, value, serverDifferences);
                      continue;
                    case "offsetParent":
                    case "offsetTop":
                    case "offsetLeft":
                    case "offsetWidth":
                    case "offsetHeight":
                    case "isContentEditable":
                    case "outerText":
                    case "outerHTML":
                      extraAttributes.delete(propKey.toLowerCase());
                      console.error(
                        "Assignment to read-only property will result in a no-op: `%s`",
                        propKey
                      );
                      continue;
                    case "className":
                      extraAttributes.delete("class");
                      attributes = getValueForAttributeOnCustomComponent(
                        domElement,
                        "class",
                        value
                      );
                      warnForPropDifference(
                        "className",
                        attributes,
                        value,
                        serverDifferences
                      );
                      continue;
                    default:
                      hostContext.context === HostContextNamespaceNone && "svg" !== tag && "math" !== tag ? extraAttributes.delete(propKey.toLowerCase()) : extraAttributes.delete(propKey), attributes = getValueForAttributeOnCustomComponent(
                        domElement,
                        propKey,
                        value
                      ), warnForPropDifference(
                        propKey,
                        attributes,
                        value,
                        serverDifferences
                      );
                  }
              }
            }
          }
        else
          for (value in props)
            if (props.hasOwnProperty(value) && (propKey = props[value], null != propKey)) {
              if (registrationNameDependencies.hasOwnProperty(value))
                "function" !== typeof propKey && warnForInvalidEventListener(value, propKey);
              else if (true !== props.suppressHydrationWarning)
                switch (value) {
                  case "children":
                    "string" !== typeof propKey && "number" !== typeof propKey || warnForPropDifference(
                      "children",
                      domElement.textContent,
                      propKey,
                      serverDifferences
                    );
                    continue;
                  case "suppressContentEditableWarning":
                  case "suppressHydrationWarning":
                  case "value":
                  case "checked":
                  case "selected":
                  case "defaultValue":
                  case "defaultChecked":
                  case "innerHTML":
                  case "ref":
                    continue;
                  case "dangerouslySetInnerHTML":
                    attributes = domElement.innerHTML;
                    propKey = propKey ? propKey.__html : void 0;
                    null != propKey && (propKey = normalizeHTML(domElement, propKey), attributes !== propKey && (serverDifferences[value] = { __html: attributes }));
                    continue;
                  case "className":
                    hydrateAttribute(
                      domElement,
                      value,
                      "class",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "tabIndex":
                    hydrateAttribute(
                      domElement,
                      value,
                      "tabindex",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "style":
                    extraAttributes.delete(value);
                    diffHydratedStyles(domElement, propKey, serverDifferences);
                    continue;
                  case "multiple":
                    extraAttributes.delete(value);
                    warnForPropDifference(
                      value,
                      domElement.multiple,
                      propKey,
                      serverDifferences
                    );
                    continue;
                  case "muted":
                    extraAttributes.delete(value);
                    warnForPropDifference(
                      value,
                      domElement.muted,
                      propKey,
                      serverDifferences
                    );
                    continue;
                  case "autoFocus":
                    extraAttributes.delete("autofocus");
                    warnForPropDifference(
                      value,
                      domElement.autofocus,
                      propKey,
                      serverDifferences
                    );
                    continue;
                  case "data":
                    if ("object" !== tag) {
                      extraAttributes.delete(value);
                      attributes = domElement.getAttribute("data");
                      warnForPropDifference(
                        value,
                        attributes,
                        propKey,
                        serverDifferences
                      );
                      continue;
                    }
                  case "src":
                  case "href":
                    if (!("" !== propKey || "a" === tag && "href" === value || "object" === tag && "data" === value)) {
                      "src" === value ? console.error(
                        'An empty string ("") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
                        value,
                        value
                      ) : console.error(
                        'An empty string ("") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',
                        value,
                        value
                      );
                      hydrateSanitizedAttribute(
                        domElement,
                        value,
                        value,
                        null,
                        extraAttributes,
                        serverDifferences
                      );
                      continue;
                    }
                    hydrateSanitizedAttribute(
                      domElement,
                      value,
                      value,
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "action":
                  case "formAction":
                    attributes = domElement.getAttribute(value);
                    if ("function" === typeof propKey) {
                      extraAttributes.delete(value.toLowerCase());
                      "formAction" === value ? (extraAttributes.delete("name"), extraAttributes.delete("formenctype"), extraAttributes.delete("formmethod"), extraAttributes.delete("formtarget")) : (extraAttributes.delete("enctype"), extraAttributes.delete("method"), extraAttributes.delete("target"));
                      continue;
                    } else if (attributes === EXPECTED_FORM_ACTION_URL) {
                      extraAttributes.delete(value.toLowerCase());
                      warnForPropDifference(
                        value,
                        "function",
                        propKey,
                        serverDifferences
                      );
                      continue;
                    }
                    hydrateSanitizedAttribute(
                      domElement,
                      value,
                      value.toLowerCase(),
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkHref":
                    hydrateSanitizedAttribute(
                      domElement,
                      value,
                      "xlink:href",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "contentEditable":
                    hydrateBooleanishAttribute(
                      domElement,
                      value,
                      "contenteditable",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "spellCheck":
                    hydrateBooleanishAttribute(
                      domElement,
                      value,
                      "spellcheck",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "draggable":
                  case "autoReverse":
                  case "externalResourcesRequired":
                  case "focusable":
                  case "preserveAlpha":
                    hydrateBooleanishAttribute(
                      domElement,
                      value,
                      value,
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "allowFullScreen":
                  case "async":
                  case "autoPlay":
                  case "controls":
                  case "default":
                  case "defer":
                  case "disabled":
                  case "disablePictureInPicture":
                  case "disableRemotePlayback":
                  case "formNoValidate":
                  case "hidden":
                  case "loop":
                  case "noModule":
                  case "noValidate":
                  case "open":
                  case "playsInline":
                  case "readOnly":
                  case "required":
                  case "reversed":
                  case "scoped":
                  case "seamless":
                  case "itemScope":
                    hydrateBooleanAttribute(
                      domElement,
                      value,
                      value.toLowerCase(),
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "capture":
                  case "download":
                    a: {
                      i = domElement;
                      var attributeName = attributes = value, serverDifferences$jscomp$0 = serverDifferences;
                      extraAttributes.delete(attributeName);
                      i = i.getAttribute(attributeName);
                      if (null === i)
                        switch (typeof propKey) {
                          case "undefined":
                          case "function":
                          case "symbol":
                            break a;
                          default:
                            if (false === propKey) break a;
                        }
                      else if (null != propKey)
                        switch (typeof propKey) {
                          case "function":
                          case "symbol":
                            break;
                          case "boolean":
                            if (true === propKey && "" === i) break a;
                            break;
                          default:
                            if (checkAttributeStringCoercion(propKey, attributes), i === "" + propKey)
                              break a;
                        }
                      warnForPropDifference(
                        attributes,
                        i,
                        propKey,
                        serverDifferences$jscomp$0
                      );
                    }
                    continue;
                  case "cols":
                  case "rows":
                  case "size":
                  case "span":
                    a: {
                      i = domElement;
                      attributeName = attributes = value;
                      serverDifferences$jscomp$0 = serverDifferences;
                      extraAttributes.delete(attributeName);
                      i = i.getAttribute(attributeName);
                      if (null === i)
                        switch (typeof propKey) {
                          case "undefined":
                          case "function":
                          case "symbol":
                          case "boolean":
                            break a;
                          default:
                            if (isNaN(propKey) || 1 > propKey) break a;
                        }
                      else if (null != propKey)
                        switch (typeof propKey) {
                          case "function":
                          case "symbol":
                          case "boolean":
                            break;
                          default:
                            if (!(isNaN(propKey) || 1 > propKey) && (checkAttributeStringCoercion(propKey, attributes), i === "" + propKey))
                              break a;
                        }
                      warnForPropDifference(
                        attributes,
                        i,
                        propKey,
                        serverDifferences$jscomp$0
                      );
                    }
                    continue;
                  case "rowSpan":
                    hydrateNumericAttribute(
                      domElement,
                      value,
                      "rowspan",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "start":
                    hydrateNumericAttribute(
                      domElement,
                      value,
                      value,
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xHeight":
                    hydrateAttribute(
                      domElement,
                      value,
                      "x-height",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkActuate":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xlink:actuate",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkArcrole":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xlink:arcrole",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkRole":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xlink:role",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkShow":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xlink:show",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkTitle":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xlink:title",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xlinkType":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xlink:type",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xmlBase":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xml:base",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xmlLang":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xml:lang",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "xmlSpace":
                    hydrateAttribute(
                      domElement,
                      value,
                      "xml:space",
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  case "inert":
                    "" !== propKey || didWarnForNewBooleanPropsWithEmptyValue[value] || (didWarnForNewBooleanPropsWithEmptyValue[value] = true, console.error(
                      "Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.",
                      value
                    ));
                    hydrateBooleanAttribute(
                      domElement,
                      value,
                      value,
                      propKey,
                      extraAttributes,
                      serverDifferences
                    );
                    continue;
                  default:
                    if (!(2 < value.length) || "o" !== value[0] && "O" !== value[0] || "n" !== value[1] && "N" !== value[1]) {
                      i = getAttributeAlias(value);
                      attributes = false;
                      hostContext.context === HostContextNamespaceNone && "svg" !== tag && "math" !== tag ? extraAttributes.delete(i.toLowerCase()) : (attributeName = value.toLowerCase(), attributeName = possibleStandardNames.hasOwnProperty(
                        attributeName
                      ) ? possibleStandardNames[attributeName] || null : null, null !== attributeName && attributeName !== value && (attributes = true, extraAttributes.delete(attributeName)), extraAttributes.delete(i));
                      a: if (attributeName = domElement, serverDifferences$jscomp$0 = i, i = propKey, isAttributeNameSafe(serverDifferences$jscomp$0))
                        if (attributeName.hasAttribute(serverDifferences$jscomp$0))
                          attributeName = attributeName.getAttribute(
                            serverDifferences$jscomp$0
                          ), checkAttributeStringCoercion(
                            i,
                            serverDifferences$jscomp$0
                          ), i = attributeName === "" + i ? i : attributeName;
                        else {
                          switch (typeof i) {
                            case "function":
                            case "symbol":
                              break a;
                            case "boolean":
                              if (attributeName = serverDifferences$jscomp$0.toLowerCase().slice(0, 5), "data-" !== attributeName && "aria-" !== attributeName)
                                break a;
                          }
                          i = void 0 === i ? void 0 : null;
                        }
                      else i = void 0;
                      attributes || warnForPropDifference(
                        value,
                        i,
                        propKey,
                        serverDifferences
                      );
                    }
                }
            }
        0 < extraAttributes.size && true !== props.suppressHydrationWarning && warnForExtraAttributes(domElement, extraAttributes, serverDifferences);
        return 0 === Object.keys(serverDifferences).length ? null : serverDifferences;
      }
      function propNamesListJoin(list, combinator) {
        switch (list.length) {
          case 0:
            return "";
          case 1:
            return list[0];
          case 2:
            return list[0] + " " + combinator + " " + list[1];
          default:
            return list.slice(0, -1).join(", ") + ", " + combinator + " " + list[list.length - 1];
        }
      }
      function getOwnerDocumentFromRootContainer(rootContainerElement) {
        return 9 === rootContainerElement.nodeType ? rootContainerElement : rootContainerElement.ownerDocument;
      }
      function getOwnHostContext(namespaceURI) {
        switch (namespaceURI) {
          case SVG_NAMESPACE:
            return HostContextNamespaceSvg;
          case MATH_NAMESPACE:
            return HostContextNamespaceMath;
          default:
            return HostContextNamespaceNone;
        }
      }
      function getChildHostContextProd(parentNamespace, type) {
        if (parentNamespace === HostContextNamespaceNone)
          switch (type) {
            case "svg":
              return HostContextNamespaceSvg;
            case "math":
              return HostContextNamespaceMath;
            default:
              return HostContextNamespaceNone;
          }
        return parentNamespace === HostContextNamespaceSvg && "foreignObject" === type ? HostContextNamespaceNone : parentNamespace;
      }
      function shouldSetTextContent(type, props) {
        return "textarea" === type || "noscript" === type || "string" === typeof props.children || "number" === typeof props.children || "bigint" === typeof props.children || "object" === typeof props.dangerouslySetInnerHTML && null !== props.dangerouslySetInnerHTML && null != props.dangerouslySetInnerHTML.__html;
      }
      function shouldAttemptEagerTransition() {
        var event = window.event;
        if (event && "popstate" === event.type) {
          if (event === currentPopstateTransitionEvent) return false;
          currentPopstateTransitionEvent = event;
          return true;
        }
        currentPopstateTransitionEvent = null;
        return false;
      }
      function handleErrorInNextTick(error) {
        setTimeout(function() {
          throw error;
        });
      }
      function commitMount(domElement, type, newProps) {
        switch (type) {
          case "button":
          case "input":
          case "select":
          case "textarea":
            newProps.autoFocus && domElement.focus();
            break;
          case "img":
            newProps.src ? domElement.src = newProps.src : newProps.srcSet && (domElement.srcset = newProps.srcSet);
        }
      }
      function commitUpdate(domElement, type, oldProps, newProps) {
        updateProperties(domElement, type, oldProps, newProps);
        domElement[internalPropsKey] = newProps;
      }
      function resetTextContent(domElement) {
        setTextContent(domElement, "");
      }
      function commitTextUpdate(textInstance, oldText, newText) {
        textInstance.nodeValue = newText;
      }
      function removeChild(parentInstance, child) {
        parentInstance.removeChild(child);
      }
      function removeChildFromContainer(container, child) {
        8 === container.nodeType ? container.parentNode.removeChild(child) : container.removeChild(child);
      }
      function clearSuspenseBoundary(parentInstance, suspenseInstance) {
        var node = suspenseInstance, depth = 0;
        do {
          var nextNode = node.nextSibling;
          parentInstance.removeChild(node);
          if (nextNode && 8 === nextNode.nodeType)
            if (node = nextNode.data, node === SUSPENSE_END_DATA) {
              if (0 === depth) {
                parentInstance.removeChild(nextNode);
                retryIfBlockedOn(suspenseInstance);
                return;
              }
              depth--;
            } else
              node !== SUSPENSE_START_DATA && node !== SUSPENSE_PENDING_START_DATA && node !== SUSPENSE_FALLBACK_START_DATA || depth++;
          node = nextNode;
        } while (node);
        retryIfBlockedOn(suspenseInstance);
      }
      function hideInstance(instance) {
        instance = instance.style;
        "function" === typeof instance.setProperty ? instance.setProperty("display", "none", "important") : instance.display = "none";
      }
      function hideTextInstance(textInstance) {
        textInstance.nodeValue = "";
      }
      function unhideInstance(instance, props) {
        props = props[STYLE];
        props = void 0 !== props && null !== props && props.hasOwnProperty("display") ? props.display : null;
        instance.style.display = null == props || "boolean" === typeof props ? "" : ("" + props).trim();
      }
      function unhideTextInstance(textInstance, text) {
        textInstance.nodeValue = text;
      }
      function clearContainerSparingly(container) {
        var nextNode = container.firstChild;
        nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);
        for (; nextNode; ) {
          var node = nextNode;
          nextNode = nextNode.nextSibling;
          switch (node.nodeName) {
            case "HTML":
            case "HEAD":
            case "BODY":
              clearContainerSparingly(node);
              detachDeletedInstance(node);
              continue;
            case "SCRIPT":
            case "STYLE":
              continue;
            case "LINK":
              if ("stylesheet" === node.rel.toLowerCase()) continue;
          }
          container.removeChild(node);
        }
      }
      function canHydrateInstance(instance, type, props, inRootOrSingleton) {
        for (; 1 === instance.nodeType; ) {
          var anyProps = props;
          if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {
            if (!inRootOrSingleton && ("INPUT" !== instance.nodeName || "hidden" !== instance.type))
              break;
          } else if (!inRootOrSingleton)
            if ("input" === type && "hidden" === instance.type) {
              checkAttributeStringCoercion(anyProps.name, "name");
              var name = null == anyProps.name ? null : "" + anyProps.name;
              if ("hidden" === anyProps.type && instance.getAttribute("name") === name)
                return instance;
            } else return instance;
          else if (!instance[internalHoistableMarker])
            switch (type) {
              case "meta":
                if (!instance.hasAttribute("itemprop")) break;
                return instance;
              case "link":
                name = instance.getAttribute("rel");
                if ("stylesheet" === name && instance.hasAttribute("data-precedence"))
                  break;
                else if (name !== anyProps.rel || instance.getAttribute("href") !== (null == anyProps.href ? null : anyProps.href) || instance.getAttribute("crossorigin") !== (null == anyProps.crossOrigin ? null : anyProps.crossOrigin) || instance.getAttribute("title") !== (null == anyProps.title ? null : anyProps.title))
                  break;
                return instance;
              case "style":
                if (instance.hasAttribute("data-precedence")) break;
                return instance;
              case "script":
                name = instance.getAttribute("src");
                if ((name !== (null == anyProps.src ? null : anyProps.src) || instance.getAttribute("type") !== (null == anyProps.type ? null : anyProps.type) || instance.getAttribute("crossorigin") !== (null == anyProps.crossOrigin ? null : anyProps.crossOrigin)) && name && instance.hasAttribute("async") && !instance.hasAttribute("itemprop"))
                  break;
                return instance;
              default:
                return instance;
            }
          instance = getNextHydratable(instance.nextSibling);
          if (null === instance) break;
        }
        return null;
      }
      function canHydrateTextInstance(instance, text, inRootOrSingleton) {
        if ("" === text) return null;
        for (; 3 !== instance.nodeType; ) {
          if ((1 !== instance.nodeType || "INPUT" !== instance.nodeName || "hidden" !== instance.type) && !inRootOrSingleton)
            return null;
          instance = getNextHydratable(instance.nextSibling);
          if (null === instance) return null;
        }
        return instance;
      }
      function getNextHydratable(node) {
        for (; null != node; node = node.nextSibling) {
          var nodeType = node.nodeType;
          if (1 === nodeType || 3 === nodeType) break;
          if (8 === nodeType) {
            nodeType = node.data;
            if (nodeType === SUSPENSE_START_DATA || nodeType === SUSPENSE_FALLBACK_START_DATA || nodeType === SUSPENSE_PENDING_START_DATA || nodeType === FORM_STATE_IS_MATCHING || nodeType === FORM_STATE_IS_NOT_MATCHING)
              break;
            if (nodeType === SUSPENSE_END_DATA) return null;
          }
        }
        return node;
      }
      function describeHydratableInstanceForDevWarnings(instance) {
        if (1 === instance.nodeType) {
          for (var JSCompiler_temp_const = instance.nodeName.toLowerCase(), serverDifferences = {}, attributes = instance.attributes, i = 0; i < attributes.length; i++) {
            var attr = attributes[i];
            serverDifferences[getPropNameFromAttributeName(attr.name)] = "style" === attr.name.toLowerCase() ? getStylesObjectFromElement(instance) : attr.value;
          }
          return { type: JSCompiler_temp_const, props: serverDifferences };
        }
        return 8 === instance.nodeType ? { type: "Suspense", props: {} } : instance.nodeValue;
      }
      function diffHydratedTextForDevWarnings(textInstance, text, parentProps) {
        return null === parentProps || true !== parentProps[SUPPRESS_HYDRATION_WARNING] ? (textInstance.nodeValue === text ? textInstance = null : (text = normalizeMarkupForTextOrAttribute(text), textInstance = normalizeMarkupForTextOrAttribute(textInstance.nodeValue) === text ? null : textInstance.nodeValue), textInstance) : null;
      }
      function getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {
        suspenseInstance = suspenseInstance.nextSibling;
        for (var depth = 0; suspenseInstance; ) {
          if (8 === suspenseInstance.nodeType) {
            var data = suspenseInstance.data;
            if (data === SUSPENSE_END_DATA) {
              if (0 === depth)
                return getNextHydratable(suspenseInstance.nextSibling);
              depth--;
            } else
              data !== SUSPENSE_START_DATA && data !== SUSPENSE_FALLBACK_START_DATA && data !== SUSPENSE_PENDING_START_DATA || depth++;
          }
          suspenseInstance = suspenseInstance.nextSibling;
        }
        return null;
      }
      function getParentSuspenseInstance(targetInstance) {
        targetInstance = targetInstance.previousSibling;
        for (var depth = 0; targetInstance; ) {
          if (8 === targetInstance.nodeType) {
            var data = targetInstance.data;
            if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {
              if (0 === depth) return targetInstance;
              depth--;
            } else data === SUSPENSE_END_DATA && depth++;
          }
          targetInstance = targetInstance.previousSibling;
        }
        return null;
      }
      function commitHydratedContainer(container) {
        retryIfBlockedOn(container);
      }
      function commitHydratedSuspenseInstance(suspenseInstance) {
        retryIfBlockedOn(suspenseInstance);
      }
      function resolveSingletonInstance(type, props, rootContainerInstance, hostContext, validateDOMNestingDev) {
        validateDOMNestingDev && validateDOMNesting(type, hostContext.ancestorInfo);
        props = getOwnerDocumentFromRootContainer(rootContainerInstance);
        switch (type) {
          case "html":
            type = props.documentElement;
            if (!type)
              throw Error(
                "React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page."
              );
            return type;
          case "head":
            type = props.head;
            if (!type)
              throw Error(
                "React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page."
              );
            return type;
          case "body":
            type = props.body;
            if (!type)
              throw Error(
                "React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page."
              );
            return type;
          default:
            throw Error(
              "resolveSingletonInstance was called with an element type that is not supported. This is a bug in React."
            );
        }
      }
      function acquireSingletonInstance(type, props, instance, internalInstanceHandle) {
        if (getInstanceFromNode(instance)) {
          var tagName = instance.tagName.toLowerCase();
          console.error(
            "You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.",
            tagName,
            tagName,
            tagName
          );
        }
        switch (type) {
          case "html":
          case "head":
          case "body":
            break;
          default:
            console.error(
              "acquireSingletonInstance was called with an element type that is not supported. This is a bug in React."
            );
        }
        for (tagName = instance.attributes; tagName.length; )
          instance.removeAttributeNode(tagName[0]);
        setInitialProperties(instance, type, props);
        instance[internalInstanceKey] = internalInstanceHandle;
        instance[internalPropsKey] = props;
      }
      function getHoistableRoot(container) {
        return "function" === typeof container.getRootNode ? container.getRootNode() : container.ownerDocument;
      }
      function preconnectAs(rel, href, crossOrigin) {
        var ownerDocument = globalDocument;
        if (ownerDocument && "string" === typeof href && href) {
          var limitedEscapedHref = escapeSelectorAttributeValueInsideDoubleQuotes(href);
          limitedEscapedHref = 'link[rel="' + rel + '"][href="' + limitedEscapedHref + '"]';
          "string" === typeof crossOrigin && (limitedEscapedHref += '[crossorigin="' + crossOrigin + '"]');
          preconnectsSet.has(limitedEscapedHref) || (preconnectsSet.add(limitedEscapedHref), rel = { rel, crossOrigin, href }, null === ownerDocument.querySelector(limitedEscapedHref) && (href = ownerDocument.createElement("link"), setInitialProperties(href, "link", rel), markNodeAsHoistable(href), ownerDocument.head.appendChild(href)));
        }
      }
      function getResource(type, currentProps, pendingProps, currentResource) {
        var resourceRoot = (resourceRoot = rootInstanceStackCursor.current) ? getHoistableRoot(resourceRoot) : null;
        if (!resourceRoot)
          throw Error(
            '"resourceRoot" was expected to exist. This is a bug in React.'
          );
        switch (type) {
          case "meta":
          case "title":
            return null;
          case "style":
            return "string" === typeof pendingProps.precedence && "string" === typeof pendingProps.href ? (pendingProps = getStyleKey(pendingProps.href), currentProps = getResourcesFromRoot(resourceRoot).hoistableStyles, currentResource = currentProps.get(pendingProps), currentResource || (currentResource = {
              type: "style",
              instance: null,
              count: 0,
              state: null
            }, currentProps.set(pendingProps, currentResource)), currentResource) : { type: "void", instance: null, count: 0, state: null };
          case "link":
            if ("stylesheet" === pendingProps.rel && "string" === typeof pendingProps.href && "string" === typeof pendingProps.precedence) {
              type = getStyleKey(pendingProps.href);
              var _styles = getResourcesFromRoot(resourceRoot).hoistableStyles, _resource = _styles.get(type);
              if (!_resource && (resourceRoot = resourceRoot.ownerDocument || resourceRoot, _resource = {
                type: "stylesheet",
                instance: null,
                count: 0,
                state: { loading: NotLoaded, preload: null }
              }, _styles.set(type, _resource), (_styles = resourceRoot.querySelector(
                getStylesheetSelectorFromKey(type)
              )) && !_styles._p && (_resource.instance = _styles, _resource.state.loading = Loaded | Inserted), !preloadPropsMap.has(type))) {
                var preloadProps = {
                  rel: "preload",
                  as: "style",
                  href: pendingProps.href,
                  crossOrigin: pendingProps.crossOrigin,
                  integrity: pendingProps.integrity,
                  media: pendingProps.media,
                  hrefLang: pendingProps.hrefLang,
                  referrerPolicy: pendingProps.referrerPolicy
                };
                preloadPropsMap.set(type, preloadProps);
                _styles || preloadStylesheet(
                  resourceRoot,
                  type,
                  preloadProps,
                  _resource.state
                );
              }
              if (currentProps && null === currentResource)
                throw pendingProps = "\n\n  - " + describeLinkForResourceErrorDEV(currentProps) + "\n  + " + describeLinkForResourceErrorDEV(pendingProps), Error(
                  "Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key." + pendingProps
                );
              return _resource;
            }
            if (currentProps && null !== currentResource)
              throw pendingProps = "\n\n  - " + describeLinkForResourceErrorDEV(currentProps) + "\n  + " + describeLinkForResourceErrorDEV(pendingProps), Error(
                "Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key." + pendingProps
              );
            return null;
          case "script":
            return currentProps = pendingProps.async, pendingProps = pendingProps.src, "string" === typeof pendingProps && currentProps && "function" !== typeof currentProps && "symbol" !== typeof currentProps ? (pendingProps = getScriptKey(pendingProps), currentProps = getResourcesFromRoot(resourceRoot).hoistableScripts, currentResource = currentProps.get(pendingProps), currentResource || (currentResource = {
              type: "script",
              instance: null,
              count: 0,
              state: null
            }, currentProps.set(pendingProps, currentResource)), currentResource) : { type: "void", instance: null, count: 0, state: null };
          default:
            throw Error(
              'getResource encountered a type it did not expect: "' + type + '". this is a bug in React.'
            );
        }
      }
      function describeLinkForResourceErrorDEV(props) {
        var describedProps = 0, description = "<link";
        "string" === typeof props.rel ? (describedProps++, description += ' rel="' + props.rel + '"') : hasOwnProperty.call(props, "rel") && (describedProps++, description += ' rel="' + (null === props.rel ? "null" : "invalid type " + typeof props.rel) + '"');
        "string" === typeof props.href ? (describedProps++, description += ' href="' + props.href + '"') : hasOwnProperty.call(props, "href") && (describedProps++, description += ' href="' + (null === props.href ? "null" : "invalid type " + typeof props.href) + '"');
        "string" === typeof props.precedence ? (describedProps++, description += ' precedence="' + props.precedence + '"') : hasOwnProperty.call(props, "precedence") && (describedProps++, description += " precedence={" + (null === props.precedence ? "null" : "invalid type " + typeof props.precedence) + "}");
        Object.getOwnPropertyNames(props).length > describedProps && (description += " ...");
        return description + " />";
      }
      function getStyleKey(href) {
        return 'href="' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '"';
      }
      function getStylesheetSelectorFromKey(key) {
        return 'link[rel="stylesheet"][' + key + "]";
      }
      function stylesheetPropsFromRawProps(rawProps) {
        return assign({}, rawProps, {
          "data-precedence": rawProps.precedence,
          precedence: null
        });
      }
      function preloadStylesheet(ownerDocument, key, preloadProps, state) {
        ownerDocument.querySelector(
          'link[rel="preload"][as="style"][' + key + "]"
        ) ? state.loading = Loaded : (key = ownerDocument.createElement("link"), state.preload = key, key.addEventListener("load", function() {
          return state.loading |= Loaded;
        }), key.addEventListener("error", function() {
          return state.loading |= Errored;
        }), setInitialProperties(key, "link", preloadProps), markNodeAsHoistable(key), ownerDocument.head.appendChild(key));
      }
      function getScriptKey(src) {
        return '[src="' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '"]';
      }
      function getScriptSelectorFromKey(key) {
        return "script[async]" + key;
      }
      function acquireResource(hoistableRoot, resource, props) {
        resource.count++;
        if (null === resource.instance)
          switch (resource.type) {
            case "style":
              var instance = hoistableRoot.querySelector(
                'style[data-href~="' + escapeSelectorAttributeValueInsideDoubleQuotes(props.href) + '"]'
              );
              if (instance)
                return resource.instance = instance, markNodeAsHoistable(instance), instance;
              var styleProps = assign({}, props, {
                "data-href": props.href,
                "data-precedence": props.precedence,
                href: null,
                precedence: null
              });
              instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement("style");
              markNodeAsHoistable(instance);
              setInitialProperties(instance, "style", styleProps);
              insertStylesheet(instance, props.precedence, hoistableRoot);
              return resource.instance = instance;
            case "stylesheet":
              styleProps = getStyleKey(props.href);
              var _instance = hoistableRoot.querySelector(
                getStylesheetSelectorFromKey(styleProps)
              );
              if (_instance)
                return resource.state.loading |= Inserted, resource.instance = _instance, markNodeAsHoistable(_instance), _instance;
              instance = stylesheetPropsFromRawProps(props);
              (styleProps = preloadPropsMap.get(styleProps)) && adoptPreloadPropsForStylesheet(instance, styleProps);
              _instance = (hoistableRoot.ownerDocument || hoistableRoot).createElement("link");
              markNodeAsHoistable(_instance);
              var linkInstance = _instance;
              linkInstance._p = new Promise(function(resolve, reject) {
                linkInstance.onload = resolve;
                linkInstance.onerror = reject;
              });
              setInitialProperties(_instance, "link", instance);
              resource.state.loading |= Inserted;
              insertStylesheet(_instance, props.precedence, hoistableRoot);
              return resource.instance = _instance;
            case "script":
              _instance = getScriptKey(props.src);
              if (styleProps = hoistableRoot.querySelector(
                getScriptSelectorFromKey(_instance)
              ))
                return resource.instance = styleProps, markNodeAsHoistable(styleProps), styleProps;
              instance = props;
              if (styleProps = preloadPropsMap.get(_instance))
                instance = assign({}, props), adoptPreloadPropsForScript(instance, styleProps);
              hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
              styleProps = hoistableRoot.createElement("script");
              markNodeAsHoistable(styleProps);
              setInitialProperties(styleProps, "link", instance);
              hoistableRoot.head.appendChild(styleProps);
              return resource.instance = styleProps;
            case "void":
              return null;
            default:
              throw Error(
                'acquireResource encountered a resource type it did not expect: "' + resource.type + '". this is a bug in React.'
              );
          }
        else
          "stylesheet" === resource.type && (resource.state.loading & Inserted) === NotLoaded && (instance = resource.instance, resource.state.loading |= Inserted, insertStylesheet(instance, props.precedence, hoistableRoot));
        return resource.instance;
      }
      function insertStylesheet(instance, precedence, root2) {
        for (var nodes = root2.querySelectorAll(
          'link[rel="stylesheet"][data-precedence],style[data-precedence]'
        ), last = nodes.length ? nodes[nodes.length - 1] : null, prior = last, i = 0; i < nodes.length; i++) {
          var node = nodes[i];
          if (node.dataset.precedence === precedence) prior = node;
          else if (prior !== last) break;
        }
        prior ? prior.parentNode.insertBefore(instance, prior.nextSibling) : (precedence = 9 === root2.nodeType ? root2.head : root2, precedence.insertBefore(instance, precedence.firstChild));
      }
      function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {
        null == stylesheetProps.crossOrigin && (stylesheetProps.crossOrigin = preloadProps.crossOrigin);
        null == stylesheetProps.referrerPolicy && (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);
        null == stylesheetProps.title && (stylesheetProps.title = preloadProps.title);
      }
      function adoptPreloadPropsForScript(scriptProps, preloadProps) {
        null == scriptProps.crossOrigin && (scriptProps.crossOrigin = preloadProps.crossOrigin);
        null == scriptProps.referrerPolicy && (scriptProps.referrerPolicy = preloadProps.referrerPolicy);
        null == scriptProps.integrity && (scriptProps.integrity = preloadProps.integrity);
      }
      function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {
        if (null === tagCaches) {
          var cache = /* @__PURE__ */ new Map();
          var caches = tagCaches = /* @__PURE__ */ new Map();
          caches.set(ownerDocument, cache);
        } else
          caches = tagCaches, cache = caches.get(ownerDocument), cache || (cache = /* @__PURE__ */ new Map(), caches.set(ownerDocument, cache));
        if (cache.has(type)) return cache;
        cache.set(type, null);
        ownerDocument = ownerDocument.getElementsByTagName(type);
        for (caches = 0; caches < ownerDocument.length; caches++) {
          var node = ownerDocument[caches];
          if (!(node[internalHoistableMarker] || node[internalInstanceKey] || "link" === type && "stylesheet" === node.getAttribute("rel")) && node.namespaceURI !== SVG_NAMESPACE) {
            var nodeKey = node.getAttribute(keyAttribute) || "";
            nodeKey = type + nodeKey;
            var existing = cache.get(nodeKey);
            existing ? existing.push(node) : cache.set(nodeKey, [node]);
          }
        }
        return cache;
      }
      function mountHoistable(hoistableRoot, type, instance) {
        hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;
        hoistableRoot.head.insertBefore(
          instance,
          "title" === type ? hoistableRoot.querySelector("head > title") : null
        );
      }
      function isHostHoistableType(type, props, hostContext) {
        var outsideHostContainerContext = !hostContext.ancestorInfo.containerTagInScope;
        if (hostContext.context === HostContextNamespaceSvg || null != props.itemProp)
          return !outsideHostContainerContext || null == props.itemProp || "meta" !== type && "title" !== type && "style" !== type && "link" !== type && "script" !== type || console.error(
            "Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.",
            type,
            type
          ), false;
        switch (type) {
          case "meta":
          case "title":
            return true;
          case "style":
            if ("string" !== typeof props.precedence || "string" !== typeof props.href || "" === props.href) {
              outsideHostContainerContext && console.error(
                'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflic with the `href` values used in any other hoisted <style> or <link rel="stylesheet" ...> tags.  Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence="default"` and `href="some unique resource identifier"`, or move the <style> to the <style> tag.'
              );
              break;
            }
            return true;
          case "link":
            if ("string" !== typeof props.rel || "string" !== typeof props.href || "" === props.href || props.onLoad || props.onError) {
              if ("stylesheet" === props.rel && "string" === typeof props.precedence) {
                type = props.href;
                var onError = props.onError, disabled = props.disabled;
                hostContext = [];
                props.onLoad && hostContext.push("`onLoad`");
                onError && hostContext.push("`onError`");
                null != disabled && hostContext.push("`disabled`");
                onError = propNamesListJoin(hostContext, "and");
                onError += 1 === hostContext.length ? " prop" : " props";
                disabled = 1 === hostContext.length ? "an " + onError : "the " + onError;
                hostContext.length && console.error(
                  'React encountered a <link rel="stylesheet" href="%s" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',
                  type,
                  disabled,
                  onError
                );
              }
              outsideHostContainerContext && ("string" !== typeof props.rel || "string" !== typeof props.href || "" === props.href ? console.error(
                "Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag"
              ) : (props.onError || props.onLoad) && console.error(
                "Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>."
              ));
              break;
            }
            switch (props.rel) {
              case "stylesheet":
                return type = props.precedence, props = props.disabled, "string" !== typeof type && outsideHostContainerContext && console.error(
                  'Cannot render a <link rel="stylesheet" /> outside the main document without knowing its precedence. Consider adding precedence="default" or moving it into the root <head> tag.'
                ), "string" === typeof type && null == props;
              default:
                return true;
            }
          case "script":
            type = props.async && "function" !== typeof props.async && "symbol" !== typeof props.async;
            if (!type || props.onLoad || props.onError || !props.src || "string" !== typeof props.src) {
              outsideHostContainerContext && (type ? props.onLoad || props.onError ? console.error(
                "Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>."
              ) : console.error(
                "Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>."
              ) : console.error(
                'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async="" or moving it into the root <head> tag.'
              ));
              break;
            }
            return true;
          case "noscript":
          case "template":
            outsideHostContainerContext && console.error(
              "Cannot render <%s> outside the main document. Try moving it into the root <head> tag.",
              type
            );
        }
        return false;
      }
      function preloadResource(resource) {
        return "stylesheet" === resource.type && (resource.state.loading & Settled) === NotLoaded ? false : true;
      }
      function noop() {
      }
      function suspendResource(hoistableRoot, resource, props) {
        if (null === suspendedState)
          throw Error(
            "Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug."
          );
        var state = suspendedState;
        if ("stylesheet" === resource.type && ("string" !== typeof props.media || false !== matchMedia(props.media).matches) && (resource.state.loading & Inserted) === NotLoaded) {
          if (null === resource.instance) {
            var key = getStyleKey(props.href), instance = hoistableRoot.querySelector(
              getStylesheetSelectorFromKey(key)
            );
            if (instance) {
              hoistableRoot = instance._p;
              null !== hoistableRoot && "object" === typeof hoistableRoot && "function" === typeof hoistableRoot.then && (state.count++, state = onUnsuspend.bind(state), hoistableRoot.then(state, state));
              resource.state.loading |= Inserted;
              resource.instance = instance;
              markNodeAsHoistable(instance);
              return;
            }
            instance = hoistableRoot.ownerDocument || hoistableRoot;
            props = stylesheetPropsFromRawProps(props);
            (key = preloadPropsMap.get(key)) && adoptPreloadPropsForStylesheet(props, key);
            instance = instance.createElement("link");
            markNodeAsHoistable(instance);
            var linkInstance = instance;
            linkInstance._p = new Promise(function(resolve, reject) {
              linkInstance.onload = resolve;
              linkInstance.onerror = reject;
            });
            setInitialProperties(instance, "link", props);
            resource.instance = instance;
          }
          null === state.stylesheets && (state.stylesheets = /* @__PURE__ */ new Map());
          state.stylesheets.set(resource, hoistableRoot);
          (hoistableRoot = resource.state.preload) && (resource.state.loading & Settled) === NotLoaded && (state.count++, resource = onUnsuspend.bind(state), hoistableRoot.addEventListener("load", resource), hoistableRoot.addEventListener("error", resource));
        }
      }
      function waitForCommitToBeReady() {
        if (null === suspendedState)
          throw Error(
            "Internal React Error: suspendedState null when it was expected to exists. Please report this as a React bug."
          );
        var state = suspendedState;
        state.stylesheets && 0 === state.count && insertSuspendedStylesheets(state, state.stylesheets);
        return 0 < state.count ? function(commit) {
          var stylesheetTimer = setTimeout(function() {
            state.stylesheets && insertSuspendedStylesheets(state, state.stylesheets);
            if (state.unsuspend) {
              var unsuspend = state.unsuspend;
              state.unsuspend = null;
              unsuspend();
            }
          }, 6e4);
          state.unsuspend = commit;
          return function() {
            state.unsuspend = null;
            clearTimeout(stylesheetTimer);
          };
        } : null;
      }
      function onUnsuspend() {
        this.count--;
        if (0 === this.count) {
          if (this.stylesheets)
            insertSuspendedStylesheets(this, this.stylesheets);
          else if (this.unsuspend) {
            var unsuspend = this.unsuspend;
            this.unsuspend = null;
            unsuspend();
          }
        }
      }
      function insertSuspendedStylesheets(state, resources) {
        state.stylesheets = null;
        null !== state.unsuspend && (state.