{"version":3,"sources":["webpack:/ReactDevToolsBackend/webpack/universalModuleDefinition","webpack:/ReactDevToolsBackend/build/oss-experimental/react-debug-tools/cjs/react-debug-tools.production.js","webpack:/ReactDevToolsBackend/build/oss-experimental/react-debug-tools/index.js","webpack:/ReactDevToolsBackend/build/oss-experimental/react-is/cjs/react-is.production.js","webpack:/ReactDevToolsBackend/build/oss-experimental/react/cjs/react.production.js","webpack:/ReactDevToolsBackend/build/oss-experimental/react/index.js","webpack:/ReactDevToolsBackend/node_modules/error-stack-parser/error-stack-parser.js","webpack:/ReactDevToolsBackend/node_modules/lodash.throttle/index.js","webpack:/ReactDevToolsBackend/node_modules/lru-cache/index.js","webpack:/ReactDevToolsBackend/node_modules/process/browser.js","webpack:/ReactDevToolsBackend/node_modules/pseudomap/map.js","webpack:/ReactDevToolsBackend/node_modules/pseudomap/pseudomap.js","webpack:/ReactDevToolsBackend/node_modules/stackframe/stackframe.js","webpack:/ReactDevToolsBackend/node_modules/util/node_modules/inherits/inherits_browser.js","webpack:/ReactDevToolsBackend/node_modules/util/support/isBufferBrowser.js","webpack:/ReactDevToolsBackend/node_modules/util/util.js","webpack:/ReactDevToolsBackend/node_modules/yallist/yallist.js","webpack:/ReactDevToolsBackend/webpack/bootstrap","webpack:/ReactDevToolsBackend/webpack/runtime/compat%20get%20default%20export","webpack:/ReactDevToolsBackend/webpack/runtime/define%20property%20getters","webpack:/ReactDevToolsBackend/webpack/runtime/hasOwnProperty%20shorthand","webpack:/ReactDevToolsBackend/webpack/runtime/make%20namespace%20object","webpack:/ReactDevToolsBackend/react-devtools-shared/src/events.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/constants.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/storage.js","webpack:/ReactDevToolsBackend/node_modules/memoize-one/esm/index.js","webpack:/ReactDevToolsBackend/src/index.ts","webpack:/ReactDevToolsBackend/shared/ReactSymbols.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/frontend/types.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/isArray.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/utils.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/hydration.js","webpack:/ReactDevToolsBackend/shared/isArray.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/utils.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/views/utils.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/views/Highlighter/Overlay.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/views/Highlighter/Highlighter.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/views/Highlighter/index.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/views/TraceUpdates/canvas.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/views/TraceUpdates/index.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/ReactSymbols.js","webpack:/ReactDevToolsBackend/shared/objectIs.js","webpack:/ReactDevToolsBackend/shared/hasOwnProperty.js","webpack:/ReactDevToolsBackend/react-devtools-timeline/src/constants.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/DevToolsConsolePatching.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/DevToolsComponentStackFrame.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/DevToolsFiberComponentStack.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/profilingHooks.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/renderer.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/console.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/bridge.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/agent.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/hook.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/legacy/utils.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/legacy/renderer.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/index.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/NativeStyleEditor/resolveBoxStyle.js","webpack:/ReactDevToolsBackend/react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor.js","webpack:/ReactDevToolsBackend/src/cachedSettings.js","webpack:/ReactDevToolsBackend/src/backend.js"],"names":["__commonJS","ErrorStackParser","require","React","assign","Object","ReactSharedInternals","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","REACT_CONTEXT_TYPE","Symbol","for","REACT_MEMO_CACHE_SENTINEL","hasOwnProperty","prototype","hookLog","primitiveStackCache","getPrimitiveStackCache","cache","Map","Dispatcher","useContext","_currentValue","useState","useReducer","s","useRef","useCacheRefresh","useLayoutEffect","useInsertionEffect","useEffect","useImperativeHandle","useDebugValue","useCallback","useTransition","useSyncExternalStore","useDeferredValue","useMemo","useMemoCache","useOptimistic","useFormState","useActionState","use","$$typeof","then","status","value","x","useId","useHostTransitionStatus","readHookLog","i","length","hook","set","primitive","parse","stackError","currentFiber","currentHook","currentContextDependency","nextHook","next","readContext","context","Error","call","memoizedValue","SuspenseException","usable","fulfilledValue","push","displayName","debugInfo","_debugInfo","dispatcherHookName","reason","String","memoizedState","callback","create","ref","instance","current","formatterFn","nextCreate","size","fiber","$jscomp$optchain$tmp1808946329$0","updateQueue","memoCache","data","index","Array","passthrough","reducer","initialArg","init","initialValue","initialState","stateHook","subscribe","getSnapshot","action","error","DispatcherProxyHandler","get","target","prop","name","DispatcherProxy","Proxy","mostLikelyAncestorIndex","findSharedIndex","hookStack","rootStack","rootIndex","source","a","b","isReactWrapper","functionName","wrapperName","parseHookName","startIndex","lastIndexOf","slice","buildTree","rootStack$jscomp$0","rootChildren","prevStack","levelChildren","nativeHookID","stackOfChildren","JSCompiler_inline_result","i$jscomp$0","pop","id","isStateEditable","subHooks","hookSource","lineNumber","columnNumber","fileName","processDebugValues","hooksTree","parentHooksNode","debugValueHooksNodes","hooksNode","splice","map","_ref","handleRenderFunctionError","wrapperError","cause","inspectHooks","renderFunction","props","currentDispatcher","previousDispatcher","H","ancestorStackError","restoreContexts","contextMap","forEach","exports","tag","dependencies","firstContext","dependencies_old","dependencies_new","contextDependencies","first","type","memoizedProps","elementType","defaultProps","propName","_context","has","return","render","module","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","typeOf","object","REACT_DEBUG_TRACING_MODE_TYPE","REACT_POSTPONE_TYPE","MAYBE_ITERATOR_SYMBOL","iterator","getIteratorFn","maybeIterable","ReactNoopUpdateQueue","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","emptyObject","Component","updater","refs","isReactComponent","setState","partialState","forceUpdate","ComponentDummy","PureComponent","pureComponentPrototype","constructor","isPureReactComponent","isArrayImpl","isArray","A","T","S","ReactElement","key","self","owner","cloneAndReplaceKey","oldElement","newKey","isValidElement","escape","escaperLookup","replace","match","userProvidedKeyEscapeRegex","getElementKey","element","toString","noop$1","resolveThenable","thenable","mapIntoArray","children","array","escapedPrefix","nameSoFar","invokeCallback","_init","_payload","c","nextNamePrefix","done","keys","join","mapChildren","func","result","count","child","lazyInitializer","payload","_status","ctor","_result","moduleObject","default","reportGlobalError","reportError","window","ErrorEvent","event","bubbles","cancelable","message","dispatchEvent","process","emit","console","noop","forEachFunc","forEachContext","apply","arguments","n","toArray","only","fn","config","childArray","defaultValue","_currentValue2","_threadCount","Provider","Consumer","childrenLength","useEffectEvent","compare","scope","prevTransition","transition","returnValue","onStartTransitionFinish","resourceType","dispatcher","getCacheForType","permalink","deps","Context","getServerSnapshot","root","factory","define","__webpack_require__","StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","ErrorStackParser$$parse","stacktrace","parseOpera","stack","parseV8OrIE","parseFFOrSafari","extractLocation","ErrorStackParser$$extractLocation","urlLike","indexOf","regExp","parts","exec","undefined","ErrorStackParser$$parseV8OrIE","filtered","split","filter","line","sanitizedLine","location","tokens","locationParts","ErrorStackParser$$parseFFOrSafari","functionNameRegex","matches","ErrorStackParser$$parseOpera","e","parseOpera9","parseOpera10","parseOpera11","ErrorStackParser$$parseOpera9","lineRE","lines","len","ErrorStackParser$$parseOpera10","ErrorStackParser$$parseOpera11","functionCall","shift","argsRaw","args","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","Function","objectProto","objectToString","nativeMax","Math","max","nativeMin","min","now","Date","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","toNumber","isObject","invokeFunc","time","thisArg","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","throttle","isObjectLike","isSymbol","other","valueOf","isBinary","test","LRUCache","util","Yallist","hasSymbol","env","_nodeLRUCacheForceNoSymbol","makeSymbol","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","naiveLength","Infinity","lc","stale","maxAge","dispose","noDisposeOnSet","reset","defineProperty","mL","trim","enumerable","allowStale","mA","lC","hit","rforEach","thisp","walker","tail","prev","forEachStep","node","isStale","del","head","k","values","dump","v","h","dumpLru","inspect","opts","str","extras","as","didFirst","item","val","Entry","unshift","peek","load","arr","l","expiresAt","prune","doUse","unshiftNode","diff","delete","removeNode","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","run","nextTick","Item","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","npm_package_name","npm_lifecycle_script","TEST_PSEUDOMAP","PseudoMap","clear","kv","_data","find","res","_index","configurable","writable","entries","same","_isNumber","isNaN","parseFloat","isFinite","_capitalize","charAt","toUpperCase","substring","_getter","p","booleanProps","numericProps","stringProps","arrayProps","obj","getArgs","setArgs","getEvalOrigin","evalOrigin","setEvalOrigin","getFileName","getLineNumber","getColumnNumber","getFunctionName","getIsEval","fromString","StackFrame$$fromString","argsStartIndex","argsEndIndex","locationString","Boolean","j","Number","inherits","superCtor","super_","TempCtor","isBuffer","arg","copy","fill","readUInt8","formatRegExp","f","isString","objects","JSON","stringify","_","isNull","msg","isUndefined","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","trace","debugs","debugEnviron","NODE_DEBUG","RegExp","pid","format","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styles","styleType","style","arrayToHash","hash","idx","recurseTimes","isFunction","ret","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","formatError","isRegExp","isDate","base","braces","toUTCString","output","formatArray","formatProperty","reduceToSingleString","simple","isNumber","desc","getOwnPropertyDescriptor","substr","reduce","cur","numLinesEst","ar","isNullOrUndefined","re","d","isPrimitive","o","pad","months","timestamp","getHours","getMinutes","getSeconds","getDate","getMonth","log","origin","add","Node","list","pushNode","forEachReverse","getReverse","mapReverse","initial","acc","reduceReverse","toArrayReverse","from","to","sliceReverse","reverse","EventEmitter","listener","listenersMap","didThrow","caughtError","clonedListeners","__DEBUG__","TREE_OPERATION_ADD","TREE_OPERATION_REMOVE","TREE_OPERATION_REORDER_CHILDREN","TREE_OPERATION_UPDATE_TREE_BASE_DURATION","TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS","TREE_OPERATION_REMOVE_ROOT","TREE_OPERATION_SET_SUBTREE_MODE","PROFILING_FLAG_BASIC_SUPPORT","PROFILING_FLAG_TIMELINE_SUPPORT","SESSION_STORAGE_LAST_SELECTION_KEY","SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY","SESSION_STORAGE_RELOAD_AND_PROFILE_KEY","ANSI_STYLE_DIMMING_TEMPLATE","ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK","sessionStorageGetItem","sessionStorage","getItem","sessionStorageRemoveItem","removeItem","sessionStorageSetItem","setItem","simpleIsEqual","resultFn","isEqual","lastResult","calledOnce","isNewArgEqualToLast","newArg","_len","newArgs","_key","every","compareVersions","validateAndParse","isWildcard","tryParse","forceType","compareStrings","compareSegments","REACT_LEGACY_ELEMENT_TYPE","REACT_PROVIDER_TYPE","REACT_TRACING_MARKER_TYPE","ElementTypeClass","ElementTypeContext","ElementTypeFunction","ElementTypeForwardRef","ElementTypeHostComponent","ElementTypeMemo","ElementTypeOtherOrUnknown","ElementTypeProfiler","ElementTypeRoot","ElementTypeSuspense","ElementTypeSuspenseList","ElementTypeTracingMarker","ComponentFilterElementType","ComponentFilterDisplayName","ComponentFilterLocation","ComponentFilterHOC","StrictMode","cachedDisplayNames","WeakMap","encodedStringCache","LRU","alphaSortKeys","getAllEnumerableKeys","Set","_loop","currentKeys","getOwnPropertySymbols","descriptors","getOwnPropertyDescriptors","getPrototypeOf","getWrappedDisplayName","outerType","innerType","fallbackName","getDisplayName","nameFromCache","uidCounter","getUID","surrogatePairToCodePoint","charCode1","charCode2","utfEncodeString","string","cached","encoded","charCode","charCodeAt","getDefaultComponentFilters","isEnabled","filterOutLocationComponentFilters","componentFilters","castBool","castBrowserTheme","getInObject","path","reduced","attr","deletePathInObject","last","parent","renamePathInObject","oldPath","newPath","lastOld","lastNew","setInObject","getDataType","isElement","HTMLElement","ArrayBuffer","isView","toStringValue","isPlainObject","typeOfWithLegacyElementSymbol","$$typeofType","getDisplayNameForReactElement","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","Suspense","SuspenseList","TracingMarker","MAX_PREVIEW_STRING_LENGTH","truncateForDisplay","formatDataForPreview","showFormattedValue","meta","tagName","toLowerCase","byteLength","buffer","formatted","shortName","entryOrEntries","toStringTag","sort","objectPrototype","objectParentPrototype","inspectable","preview_long","preview_short","readonly","LEVEL_THRESHOLD","createDehydrated","cleaned","dehydrated","dehydrate","unserializable","isPathAllowed","level","isPathAllowedCheck","unserializableValue","keyAsString","FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER","hasAssignedBackend","gte","cleanForBridge","cleanedPaths","unserializablePaths","cleanedData","copyWithDelete","updated","copyWithRename","oldKey","copyWithSet","getEffectDurations","effectDuration","passiveEffectDuration","hostRoot","stateNode","serializeToString","formatConsoleArguments","maybeMessage","inputArgs","template","argumentsPointer","currentChar","nextChar","formatConsoleArgumentsToSingleString","REGEXP","escaped","ptn","flag","isSynchronousXHRSupported","document","featurePolicy","allowsFeature","gt","isReactNativeEnvironment","url","withoutParentheses","sourceURL","column","CHROME_STACK_REGEXP","parseSourceFromChromeStack","frames","frame","sanitizedFrame","locationInParenthesesMatch","possibleLocation","parseSourceFromFirefoxStack","frameWithoutFunctionName","parseSourceFromComponentStack","componentStack","getOwnerWindow","ownerDocument","defaultView","getOwnerIframe","nodeWindow","frameElement","getBoundingClientRectWithBorderOffset","dimensions","getElementDimensions","mergeRectOffsets","getBoundingClientRect","top","borderTop","left","borderLeft","bottom","borderBottom","right","borderRight","width","height","rects","previousRect","rect","getNestedBoundingClientRect","boundaryWindow","ownerIframe","currentIframe","onlyOneMore","domElement","calculatedStyle","getComputedStyle","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","marginLeft","marginRight","marginTop","marginBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","OverlayRect","doc","container","createElement","border","padding","content","borderColor","overlayStyles","backgroundColor","background","margin","pointerEvents","position","zIndex","appendChild","parentNode","removeChild","box","dims","boxWrap","OverlayTip","tip","display","flexFlow","borderRadius","fontFamily","fontWeight","fontSize","whiteSpace","nameSpan","color","dimSpan","textContent","round","bounds","tipRect","tipPos","findTipPos","Overlay","agent","currentWindow","__REACT_DEVTOOLS_TARGET_WINDOW__","tipBoundsWindow","body","remove","nodes","elements","nodeType","ELEMENT_NODE","outerBox","POSITIVE_INFINITY","NEGATIVE_INFINITY","update","nodeName","rendererInterface","getBestMatchingRendererInterface","getFiberIDForNative","ownerName","getDisplayNameForFiberID","updateText","tipBounds","documentElement","updatePosition","scrollY","scrollX","innerHeight","innerWidth","tipSize","tipHeight","tipWidth","what","borderStyle","SHOW_DURATION","timeoutID","overlay","hideOverlayNative","hideOverlayWeb","hideOverlay","showOverlayNative","showOverlayWeb","componentName","hideAfterTimeout","showOverlay","iframesListeningTo","setupHighlighter","bridge","clearNativeElementHighlight","highlightNativeElement","stopInspectingNative","startInspectingNative","registerListenersOnWindow","addEventListener","onClick","onMouseEvent","onPointerDown","onPointerMove","onPointerUp","removeListenersOnWindow","contentWindow","removeEventListener","openNativeElementsPanel","rendererID","scrollIntoView","renderer","rendererInterfaces","warn","hasFiberWithId","findNativeNodesForFiberID","block","inline","__REACT_DEVTOOLS_GLOBAL_HOOK__","$0","send","preventDefault","stopPropagation","selectFiberForNode","getEventTarget","lastHoveredNode","iframe","memoize","getIDForNode","composed","composedPath","OUTLINE_COLOR","COLORS","canvas","drawNative","nodeToData","nodesToDraw","iterateNodes","drawWeb","initialize","canvasFlow","getContext","clearRect","drawBorder","draw","execute","colorIndex","lineWidth","strokeStyle","strokeRect","setLineDash","destroyNative","destroyWeb","destroy","cssText","insertBefore","firstChild","DISPLAY_DURATION","MAX_DISPLAY_DURATION","REMEASUREMENT_AFTER_DURATION","getCurrentTime","performance","drawAnimationFrameID","redrawTimeoutID","injectedAgent","traceUpdates","toggleEnabled","cancelAnimationFrame","destroyCanvas","lastMeasuredAt","measureNode","expirationTime","requestAnimationFrame","prepareToDraw","earliestExpiration","MAX_VALUE","CONCURRENT_MODE_NUMBER","CONCURRENT_MODE_SYMBOL_STRING","CONTEXT_NUMBER","CONTEXT_SYMBOL_STRING","SERVER_CONTEXT_SYMBOL_STRING","DEPRECATED_ASYNC_MODE_SYMBOL_STRING","FORWARD_REF_NUMBER","FORWARD_REF_SYMBOL_STRING","MEMO_NUMBER","MEMO_SYMBOL_STRING","PROFILER_NUMBER","PROFILER_SYMBOL_STRING","PROVIDER_NUMBER","PROVIDER_SYMBOL_STRING","CONSUMER_SYMBOL_STRING","SCOPE_NUMBER","SCOPE_SYMBOL_STRING","STRICT_MODE_NUMBER","STRICT_MODE_SYMBOL_STRING","is","y","objectIs","REACT_TOTAL_NUM_LANES","SCHEDULING_PROFILER_VERSION","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","__reactDisabledLog","disableLogs","info","group","groupCollapsed","groupEnd","defineProperties","reenableLogs","prefix","describeBuiltInComponentFrame","suffix","describeDebugInfoFrame","reentry","describeNativeComponentFrame","construct","currentDispatcherRef","previousPrepareStackTrace","prepareStackTrace","RunInRootFrame","DetermineComponentFrameRoot","control","Fake","Reflect","maybePromise","catch","sample","namePropDescriptor","sampleStack","controlStack","sampleLines","controlLines","includes","__DEV__","syntheticFrame","describeClassComponentFrame","describeFunctionComponentFrame","describeFiber","workTagMap","workInProgress","HostHoistable","HostSingleton","HostComponent","LazyComponent","SuspenseComponent","SuspenseListComponent","FunctionComponent","IndeterminateComponent","SimpleMemoComponent","ClassComponent","getStackByFiberInDevAndProd","entry","supportsNativeConsoleTasks","_debugTask","TIME_OFFSET","performanceTarget","supportsUserTiming","mark","clearMarks","supportsUserTimingV3","CHECK_V3_MARK","markOptions","createProfilingHooks","getDisplayNameForFiber","getLaneLabelMap","reactVersion","currentBatchUID","currentReactComponentMeasure","currentReactMeasuresStack","currentTimelineData","currentFiberStacks","isProfiling","nextRenderShouldStartNewBatch","getRelativeTime","currentTime","startTime","getInternalModuleRanges","ranges","getTimelineData","laneToLanesArray","lanes","lanesArray","lane","laneToLabelMap","markMetadata","markAndClear","range","startStackFrame","stopStackFrame","labels","markName","recordReactMeasureStarted","reactMeasure","batchUID","duration","batchUIDToMeasuresMap","laneToReactMeasureMap","reactMeasures","recordReactMeasureCompleted","markCommitStarted","markCommitStopped","markComponentRenderStarted","warning","markComponentRenderStopped","componentMeasures","markComponentLayoutEffectMountStarted","markComponentLayoutEffectMountStopped","markComponentLayoutEffectUnmountStarted","markComponentLayoutEffectUnmountStopped","markComponentPassiveEffectMountStarted","markComponentPassiveEffectMountStopped","markComponentPassiveEffectUnmountStarted","markComponentPassiveEffectUnmountStopped","markComponentErrored","thrownValue","phase","alternate","thrownErrors","PossiblyWeakMap","wakeableIDs","wakeableID","getWakeableID","wakeable","markComponentSuspended","eventType","suspenseEvent","promiseName","resolution","suspenseEvents","markLayoutEffectsStarted","markLayoutEffectsStopped","markPassiveEffectsStarted","markPassiveEffectsStopped","markRenderStarted","markRenderYielded","markRenderStopped","markRenderScheduled","schedulingEvents","markForceUpdateScheduled","getParentFibers","parents","markStateUpdateScheduled","toggleProfilingStatus","internalModuleSourceToRanges","flamechart","nativeEvents","networkMeasures","otherUserTimingMarks","snapshots","snapshotHeight","fiberStack","profilingHooks","getDispatcherRef","injectedRef","getFiberFlags","flags","effectTag","getInternalReactConstants","ReactPriorityLevels","ImmediatePriority","UserBlockingPriority","NormalPriority","LowPriority","IdlePriority","NoPriority","StrictModeBits","ReactTypeOfWork","CacheComponent","CoroutineComponent","CoroutineHandlerPhase","DehydratedSuspenseComponent","HostPortal","HostRoot","HostText","IncompleteClassComponent","IncompleteFunctionComponent","LegacyHiddenComponent","MemoComponent","Mode","OffscreenComponent","ScopeComponent","TracingMarkerComponent","YieldComponent","Throw","getTypeSymbol","symbolOrNumber","resolveFiberType","typeSymbol","shouldSkipForgetCheck","resolvedType","resolvedContext","displayNameWithoutForgetWrapper","fiberRoot","_debugRootType","fiberToIDMap","idToArbitraryFiberMap","fiberToComponentStackMap","attach","reconcilerVersion","injectProfilingHooks","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","scheduleRefresh","setErrorHandler","setSuspenseHandler","scheduleUpdate","supportsTogglingError","supportsTogglingSuspense","response","getIsProfiling","fibersWithChangedErrorOrWarningCounts","pendingFiberToErrorsMap","pendingFiberToWarningsMap","fiberIDToErrorsMap","fiberIDToWarningsMap","clearErrorsAndWarnings","updateMostRecentlyInspectedElementIfNecessary","flushPendingEvents","clearMessageCountHelper","fiberID","pendingFiberToMessageCountMap","fiberIDToMessageCountMap","clearErrorsForFiberID","clearWarningsForFiberID","mostRecentlyInspectedElement","hasElementUpdatedSinceLastInspected","onErrorOrWarning","maybeID","getFiberIDUnsafe","forceErrorForFiberIDs","fiberMap","messageMap","flushPendingErrorsAndWarningsAfterDelay","registerRendererWithConsole","patchConsoleUsingWindowValues","hideElementsWithDisplayNames","hideElementsWithPaths","hideElementsWithTypes","traceUpdatesEnabled","traceUpdatesForNodes","applyComponentFilters","componentFilter","isValid","__REACT_DEVTOOLS_COMPONENT_FILTERS__","componentFiltersWithoutLocationBasedOnes","updateComponentFilters","getFiberRoots","currentRootID","getOrGenerateFiberID","pushOperation","rootDisplayNameCounter","setRootPseudoKey","mountFiberRecursively","reevaluateErrorsAndWarnings","shouldFilterFiber","getElementTypeForFiber","displayNameRegExp","idToTreeBaseDurationMap","idToRootMap","refinedID","getFiberIDThrows","untrackFiberID","untrackFibersSet","untrackFibersTimeoutID","untrackFibers","shouldErrorFiberAlwaysNull","getChangeDescription","prevFiber","nextFiber","didHooksChange","isFirstMount","state","getContextChangedKeys","getChangedKeys","indices","getChangedHooksIndices","hooks","updateContextsForFiber","idToContextsMap","contexts","getContextsForFiber","NO_CONTEXT","legacyContext","modernContext","contextType","crawlToInitializeContextsMap","sibling","prevContexts","nextContexts","prevLegacyContext","prevModernContext","nextLegacyContext","nextModernContext","prevContext","nextContext","isHookThatCanScheduleUpdate","hookObject","boundHasOwnProperty","didStatefulHookChange","prevMemoizedState","nextMemoizedState","changedKeys","didFiberRender","PerformedWork","pendingOperations","pendingRealUnmountedIDs","pendingSimulatedUnmountedIDs","pendingOperationsQueue","pendingStringTable","pendingStringTableLength","pendingUnmountedRootID","op","shouldBailoutWithPendingOperations","currentCommitProfilingMetadata","durations","flushOrQueueOperations","operations","flushPendingErrorsAndWarningsAfterDelayTimeoutID","clearPendingErrorsAndWarningsAfterDelay","recordPendingErrorsAndWarnings","countMap","mergeMapsAndGetCountHelper","newCount","messageCountMap","pendingMessageCountMap","refinedMessageCountMap","pendingCount","previousCount","errorCount","warningCount","numUnmountIDs","stringKey","encodedString","getStringID","existingEntry","recordMount","parentFiber","isRoot","hasOwnerMetadata","isProfilingSupported","profilingFlags","isProductionBuildOfRenderer","bundleType","mode","displayNamesByRootID","getDisplayNameForRoot","debugOwner","_debugOwner","ownerID","parentID","displayNameStringID","keyString","keyStringID","recordProfilingDurations","recordUnmount","isSimulated","trackedPathMatchFiber","setTrackedPath","unsafeID","_debugNeedsRemount","traverseSiblings","traceNearestHostComponentUpdate","mightSiblingsBeOnTrackedPath","updateTrackedPathStateBeforeMount","shouldIncludeInTree","isSuspense","isTimedOut","primaryChildFragment","fallbackChildFragment","fallbackChild","primaryChild","areSuspenseChildrenConditionallyWrapped","updateTrackedPathStateAfterMount","unmountFiberChildrenRecursively","isTimedOutSuspense","actualDuration","treeBaseDuration","convertedTreeBaseDuration","floor","selfDuration","metadata","maxActualDuration","recordChangeDescriptions","changeDescription","changeDescriptions","recordResetChildren","childSet","nextChildren","findReorderedChildrenRecursively","numChildren","updateFiberRecursively","shouldResetChildren","prevDidTimeout","nextDidTimeOut","nextFiberChild","nextFallbackChildSet","prevFiberChild","prevFallbackChildSet","nextPrimaryChildSet","nextChild","prevChildAtSameIndex","prevChild","hostFibers","findAllCurrentHostFibers","hostFiber","nextChildSet","cleanup","rootSupportsProfiling","memoizedInteractions","flushInitialOperations","localPendingOperationsQueue","trackedPath","mightBeOnTrackedPath","commitTime","profilingStartTime","priorityLevel","updaters","getUpdatersList","memoizedUpdaters","fiberToSerializedElement","handleCommitFiberUnmount","handlePostCommitFiberRoot","handleCommitFiberRoot","formatPriorityLevel","wasMounted","isDehydrated","removeRootPseudoKey","commitProfilingMetadata","rootToCommitProfilingMetadataMap","fibers","findCurrentFiberUsingSlowPathById","err","getFiberForNative","hostInstance","findFiberByHostInstance","findNearestUnfilteredAncestor","assertIsMounted","getNearestMountedFiber","nearestMounted","nextNode","Placement","Hydrating","parentA","parentB","nextParent","didFindChild","prepareViewAttributeSource","isMostRecentlyInspectedElement","$attribute","prepareViewElementSource","$type","getOwnersList","owners","ownerFiber","getInstanceAndStyle","isErrorBoundary","getDerivedStateFromError","componentDidCatch","getNearestErrorBoundaryID","inspectElementRaw","usesHooks","showState","canViewSource","shouldHideContext","contextTypes","consumerResolvedContext","currentType","currentTypeSymbol","providerResolvedContext","hasLegacyContext","originalConsoleMethods","method","inspectHooksOfFiber","rootType","errors","warnings","isErrored","targetErrorBoundaryID","DidCapture","plugins","stylex","getSourceForFiber","canEditHooks","canEditFunctionProps","canEditHooksAndDeletePaths","canEditHooksAndRenamePaths","canEditFunctionPropsDeletePaths","canEditFunctionPropsRenamePaths","canToggleError","canToggleSuspense","forceFallbackForSuspenseIDs","rendererPackageName","rendererVersion","currentlyInspectedPaths","isMostRecentlyInspectedElementCurrent","mergeInspectedPaths","createIsPathAllowed","secondaryCategory","updateSelectedElement","inspectedElement","$r","storeAsGlobal","getSerializedElementValueByPath","valueToCopy","inspectElement","requestID","forceFullData","responseID","errorType","cleanedInspectedElement","logElementToConsole","supportsGroup","nativeNodes","chrome","navigator","userAgent","deletePath","hookID","pendingProps","renamePath","overrideValueAtPath","initialTreeBaseDurationsMap","initialIDToRootMap","getProfilingData","dataForRoots","rootID","commitData","initialTreeBaseDurations","commitProfilingData","commitIndex","fiberActualDurations","fiberSelfDurations","timelineData","rest","batchUIDToMeasuresKeyValueArray","laneToLabelKeyValueArray","laneToReactMeasureKeyValueArray","startProfiling","shouldRecordChangeDescriptions","stopProfiling","shouldErrorFiberAccordingToMap","overrideError","forceError","shouldSuspendFiberAlwaysFalse","shouldSuspendFiberAccordingToSet","overrideSuspense","forceFallback","trackedPathMatchDepth","returnFiber","returnAlternate","actualFrame","getPathFrame","expectedFrame","rootPseudoKeys","counter","pseudoKey","preferredDisplayName","fallbackDisplayName","getPathForElement","keyPath","getBestMatchForTrackedPath","isFullMatch","setTraceUpdatesEnabled","getComponentStackForFiber","dispatcherRef","patchConsoleForStrictMode","unpatchConsoleForStrictMode","OVERRIDE_CONSOLE_METHODS","PREFIX_REGEX","ROW_COLUMN_NUMBER_REGEX","isStringComponentStack","text","isStrictModeOverride","frameDiffs","areStackTracesEqual","restorePotentiallyModifiedArgs","injectedRenderers","targetConsole","unpatchFn","registerRenderer","getCurrentFiber","consoleSettingsRef","appendComponentStack","breakOnConsoleErrors","showInlineWarningsAndErrors","hideConsoleLogsInStrictMode","browserTheme","patch","originalMethod","__REACT_DEVTOOLS_ORIGINAL_METHOD__","overrideMethod","alreadyHasComponentStack","lastArg","shouldShowInlineWarningsAndErrors","fakeError","__IS_CHROME__","firstArg","endsWith","__IS_FIREFOX__","__REACT_DEVTOOLS_OVERRIDE_METHOD__","unpatch","unpatchForStrictModeFn","patchForStrictMode","overrideConsoleMethods","__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__","__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__","unpatchForStrictMode","__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__","__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__","__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__","__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__","__REACT_DEVTOOLS_BROWSER_THEME__","writeConsolePatchSettingsToWindow","settings","installConsoleFunctionsToWindow","__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__","BATCH_DURATION","BRIDGE_PROTOCOL","minNpmVersion","maxNpmVersion","currentBridgeProtocol","Bridge","wall","_timeoutID","_messageQueue","_wall","_flush","wasForwarded","_wallUnlisten","listen","_isShutdown","wallUnlisten","Agent","_rendererInterfaces","_bridge","_isProfiling","_persistedSelectionMatch","_persistedSelection","_throttledPersistSelection","_traceUpdatesEnabled","selectNode","_recordChangeDescriptions","selected","patchConsole","prevMatch","nextMatch","prevMatchID","nextMatchID","persistedSelectionString","copyElementPath","getBackendVersion","getBridgeProtocol","getProfilingStatus","reloadAndProfile","syncSelectionFromNativeElementsPanel","shutdown","updateConsolePatchSettings","viewAttributeSource","viewElementSource","overrideContext","overrideState","isBackendStorageAPISupported","localStorage","setupTraceUpdates","bestMatch","selection","installHook","detectReactBuildType","Mount","_renderNewRootComponent","renderRootCode","checkDCE","code","hasDetectedBadDCE","patchConsoleForInitialCommitInStrictMode","unpatchConsoleForInitialCommitInStrictMode","inject","renderers","reactBuildType","__REACT_DEVTOOLS_ATTACH__","sub","roots","fiberRoots","onCommitFiberUnmount","onCommitFiberRoot","mountedRoots","isKnownRoot","isUnmounting","onPostCommitFiberRoot","setStrictMode","isStrictMode","openModuleRangesStack","moduleRanges","getTopStackFrameString","registerInternalModuleStart","registerInternalModuleStop","backends","supportsFiber","decorate","old","decorateMany","fns","olds","restoreMany","getData","internalInstance","_currentElement","getElementType","publicInstance","getPublicInstance","getChildren","_renderedComponent","_renderedChildren","renderedChildren","idToInternalInstanceMap","internalInstanceToIDMap","internalInstanceToRootIDMap","getInternalIDForNative","findNativeNodeForInternalID","ComponentTree","getClosestInstanceFromNode","getNodeFromInstance","getID","getNode","areEqualArrays","parentIDStack","oldReconcilerMethods","Reconciler","mountComponent","hostContainerInfo","_topLevelWrapper","performUpdateIfNecessary","prevChildren","recordReorder","receiveComponent","unmountComponent","Mixin","_owner","nextChildIDs","pendingUnmountedIDs","crawlAndRecordInitialMounts","_instancesByReactRootID","_instancesByContainerID","encodedKey","existingID","stringID","currentlyInspectedElementID","_instance","nativeNode","enabled","isMatchingRender","initBackend","subs","setRendererInterface","onUnsupportedRenderer","onFastRefreshScheduled","onHookOperations","onTraceUpdates","attachRenderer","attachLegacy","reactDevtoolsAgent","onAgentShutdown","resolveBoxStyle","hasParts","styleForAll","styleForHorizontal","styleForLeft","styleForRight","styleForEnd","styleForStart","styleForVertical","styleForBottom","styleForTop","setupNativeStyleEditor","resolveNativeStyle","validAttributes","measureStyle","oldName","newName","renameStyle","setStyle","isSupported","EMPTY_BOX_STYLE","componentIDToStyleOverrides","layout","resolvedStyle","styleOverrides","measure","shallowClone","cloned","newStyle","customStyle","setNativeProps","lastIndex","lastLength","initializeUsingCachedSettings","devToolsSettingsManager","initializeConsolePatchSettings","getConsolePatchSettings","consolePatchSettingsString","parsedConsolePatchSettings","parseConsolePatchSettings","parsedValue","cacheConsolePatchSettings","setConsolePatchSettings","savedComponentFilters","debug","methodName","connectToDevTools","host","nativeStyleEditorValidAttributes","useHttps","port","websocket","resolveRNStyle","retryConnectionDelay","isAppActive","protocol","retryTimeoutID","scheduleRetry","messageListeners","uri","ws","WebSocket","onclose","handleClose","onerror","handleFailed","onmessage","handleMessage","onopen","transferable","readyState","OPEN","consolePatchSettings","lazyResolveRNStyle","lazyNativeStyleEditorValidAttributes","initAfterTick","connectWithCustomMessagingProtocol","onSubscribe","onUnsubscribe","onMessage","settingsManager","unsubscribeBackend","nativeStyleResolver"],"mappings":"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","file":"backend-REYUTGJU.cjs","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactDevToolsBackend\"] = factory();\n\telse\n\t\troot[\"ReactDevToolsBackend\"] = factory();\n})(self, () => {\nreturn ","/**\n * @license React\n * react-debug-tools.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar ErrorStackParser = require(\"error-stack-parser\"),\n  React = require(\"react\"),\n  assign = Object.assign,\n  ReactSharedInternals =\n    React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n  REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n  REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\"),\n  hasOwnProperty = Object.prototype.hasOwnProperty,\n  hookLog = [],\n  primitiveStackCache = null;\nfunction getPrimitiveStackCache() {\n  if (null === primitiveStackCache) {\n    var cache = new Map();\n    try {\n      Dispatcher.useContext({ _currentValue: null });\n      Dispatcher.useState(null);\n      Dispatcher.useReducer(function (s) {\n        return s;\n      }, null);\n      Dispatcher.useRef(null);\n      \"function\" === typeof Dispatcher.useCacheRefresh &&\n        Dispatcher.useCacheRefresh();\n      Dispatcher.useLayoutEffect(function () {});\n      Dispatcher.useInsertionEffect(function () {});\n      Dispatcher.useEffect(function () {});\n      Dispatcher.useImperativeHandle(void 0, function () {\n        return null;\n      });\n      Dispatcher.useDebugValue(null);\n      Dispatcher.useCallback(function () {});\n      Dispatcher.useTransition();\n      Dispatcher.useSyncExternalStore(\n        function () {\n          return function () {};\n        },\n        function () {\n          return null;\n        },\n        function () {\n          return null;\n        }\n      );\n      Dispatcher.useDeferredValue(null);\n      Dispatcher.useMemo(function () {\n        return null;\n      });\n      \"function\" === typeof Dispatcher.useMemoCache &&\n        Dispatcher.useMemoCache(0);\n      \"function\" === typeof Dispatcher.useOptimistic &&\n        Dispatcher.useOptimistic(null, function (s) {\n          return s;\n        });\n      \"function\" === typeof Dispatcher.useFormState &&\n        Dispatcher.useFormState(function (s) {\n          return s;\n        }, null);\n      \"function\" === typeof Dispatcher.useActionState &&\n        Dispatcher.useActionState(function (s) {\n          return s;\n        }, null);\n      if (\"function\" === typeof Dispatcher.use) {\n        Dispatcher.use({ $$typeof: REACT_CONTEXT_TYPE, _currentValue: null });\n        Dispatcher.use({\n          then: function () {},\n          status: \"fulfilled\",\n          value: null\n        });\n        try {\n          Dispatcher.use({ then: function () {} });\n        } catch (x) {}\n      }\n      Dispatcher.useId();\n      \"function\" === typeof Dispatcher.useHostTransitionStatus &&\n        Dispatcher.useHostTransitionStatus();\n    } finally {\n      var readHookLog = hookLog;\n      hookLog = [];\n    }\n    for (var i = 0; i < readHookLog.length; i++) {\n      var hook = readHookLog[i];\n      cache.set(hook.primitive, ErrorStackParser.parse(hook.stackError));\n    }\n    primitiveStackCache = cache;\n  }\n  return primitiveStackCache;\n}\nvar currentFiber = null,\n  currentHook = null,\n  currentContextDependency = null;\nfunction nextHook() {\n  var hook = currentHook;\n  null !== hook && (currentHook = hook.next);\n  return hook;\n}\nfunction readContext(context) {\n  if (null === currentFiber) return context._currentValue;\n  if (null === currentContextDependency)\n    throw Error(\n      \"Context reads do not line up with context dependencies. This is a bug in React Debug Tools.\"\n    );\n  hasOwnProperty.call(currentContextDependency, \"memoizedValue\")\n    ? ((context = currentContextDependency.memoizedValue),\n      (currentContextDependency = currentContextDependency.next))\n    : (context = context._currentValue);\n  return context;\n}\nvar SuspenseException = Error(\n    \"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\n\\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`\"\n  ),\n  Dispatcher = {\n    use: function (usable) {\n      if (null !== usable && \"object\" === typeof usable) {\n        if (\"function\" === typeof usable.then) {\n          switch (usable.status) {\n            case \"fulfilled\":\n              var fulfilledValue = usable.value;\n              hookLog.push({\n                displayName: null,\n                primitive: \"Promise\",\n                stackError: Error(),\n                value: fulfilledValue,\n                debugInfo:\n                  void 0 === usable._debugInfo ? null : usable._debugInfo,\n                dispatcherHookName: \"Use\"\n              });\n              return fulfilledValue;\n            case \"rejected\":\n              throw usable.reason;\n          }\n          hookLog.push({\n            displayName: null,\n            primitive: \"Unresolved\",\n            stackError: Error(),\n            value: usable,\n            debugInfo: void 0 === usable._debugInfo ? null : usable._debugInfo,\n            dispatcherHookName: \"Use\"\n          });\n          throw SuspenseException;\n        }\n        if (usable.$$typeof === REACT_CONTEXT_TYPE)\n          return (\n            (fulfilledValue = readContext(usable)),\n            hookLog.push({\n              displayName: usable.displayName || \"Context\",\n              primitive: \"Context (use)\",\n              stackError: Error(),\n              value: fulfilledValue,\n              debugInfo: null,\n              dispatcherHookName: \"Use\"\n            }),\n            fulfilledValue\n          );\n      }\n      throw Error(\"An unsupported type was passed to use(): \" + String(usable));\n    },\n    readContext: readContext,\n    useCacheRefresh: function () {\n      var hook = nextHook();\n      hookLog.push({\n        displayName: null,\n        primitive: \"CacheRefresh\",\n        stackError: Error(),\n        value: null !== hook ? hook.memoizedState : function () {},\n        debugInfo: null,\n        dispatcherHookName: \"CacheRefresh\"\n      });\n      return function () {};\n    },\n    useCallback: function (callback) {\n      var hook = nextHook();\n      hookLog.push({\n        displayName: null,\n        primitive: \"Callback\",\n        stackError: Error(),\n        value: null !== hook ? hook.memoizedState[0] : callback,\n        debugInfo: null,\n        dispatcherHookName: \"Callback\"\n      });\n      return callback;\n    },\n    useContext: function (context) {\n      var value = readContext(context);\n      hookLog.push({\n        displayName: context.displayName || null,\n        primitive: \"Context\",\n        stackError: Error(),\n        value: value,\n        debugInfo: null,\n        dispatcherHookName: \"Context\"\n      });\n      return value;\n    },\n    useEffect: function (create) {\n      nextHook();\n      hookLog.push({\n        displayName: null,\n        primitive: \"Effect\",\n        stackError: Error(),\n        value: create,\n        debugInfo: null,\n        dispatcherHookName: \"Effect\"\n      });\n    },\n    useImperativeHandle: function (ref) {\n      nextHook();\n      var instance = void 0;\n      null !== ref && \"object\" === typeof ref && (instance = ref.current);\n      hookLog.push({\n        displayName: null,\n        primitive: \"ImperativeHandle\",\n        stackError: Error(),\n        value: instance,\n        debugInfo: null,\n        dispatcherHookName: \"ImperativeHandle\"\n      });\n    },\n    useDebugValue: function (value, formatterFn) {\n      hookLog.push({\n        displayName: null,\n        primitive: \"DebugValue\",\n        stackError: Error(),\n        value: \"function\" === typeof formatterFn ? formatterFn(value) : value,\n        debugInfo: null,\n        dispatcherHookName: \"DebugValue\"\n      });\n    },\n    useLayoutEffect: function (create) {\n      nextHook();\n      hookLog.push({\n        displayName: null,\n        primitive: \"LayoutEffect\",\n        stackError: Error(),\n        value: create,\n        debugInfo: null,\n        dispatcherHookName: \"LayoutEffect\"\n      });\n    },\n    useInsertionEffect: function (create) {\n      nextHook();\n      hookLog.push({\n        displayName: null,\n        primitive: \"InsertionEffect\",\n        stackError: Error(),\n        value: create,\n        debugInfo: null,\n        dispatcherHookName: \"InsertionEffect\"\n      });\n    },\n    useMemo: function (nextCreate) {\n      var hook = nextHook();\n      nextCreate = null !== hook ? hook.memoizedState[0] : nextCreate();\n      hookLog.push({\n        displayName: null,\n        primitive: \"Memo\",\n        stackError: Error(),\n        value: nextCreate,\n        debugInfo: null,\n        dispatcherHookName: \"Memo\"\n      });\n      return nextCreate;\n    },\n    useMemoCache: function (size) {\n      var fiber = currentFiber;\n      if (null == fiber) return [];\n      var $jscomp$optchain$tmp1808946329$0;\n      fiber =\n        null == ($jscomp$optchain$tmp1808946329$0 = fiber.updateQueue)\n          ? void 0\n          : $jscomp$optchain$tmp1808946329$0.memoCache;\n      if (null == fiber) return [];\n      $jscomp$optchain$tmp1808946329$0 = fiber.data[fiber.index];\n      if (void 0 === $jscomp$optchain$tmp1808946329$0) {\n        $jscomp$optchain$tmp1808946329$0 = fiber.data[fiber.index] =\n          Array(size);\n        for (var i = 0; i < size; i++)\n          $jscomp$optchain$tmp1808946329$0[i] = REACT_MEMO_CACHE_SENTINEL;\n      }\n      fiber.index++;\n      return $jscomp$optchain$tmp1808946329$0;\n    },\n    useOptimistic: function (passthrough) {\n      var hook = nextHook();\n      passthrough = null !== hook ? hook.memoizedState : passthrough;\n      hookLog.push({\n        displayName: null,\n        primitive: \"Optimistic\",\n        stackError: Error(),\n        value: passthrough,\n        debugInfo: null,\n        dispatcherHookName: \"Optimistic\"\n      });\n      return [passthrough, function () {}];\n    },\n    useReducer: function (reducer, initialArg, init) {\n      reducer = nextHook();\n      initialArg =\n        null !== reducer\n          ? reducer.memoizedState\n          : void 0 !== init\n          ? init(initialArg)\n          : initialArg;\n      hookLog.push({\n        displayName: null,\n        primitive: \"Reducer\",\n        stackError: Error(),\n        value: initialArg,\n        debugInfo: null,\n        dispatcherHookName: \"Reducer\"\n      });\n      return [initialArg, function () {}];\n    },\n    useRef: function (initialValue) {\n      var hook = nextHook();\n      initialValue =\n        null !== hook ? hook.memoizedState : { current: initialValue };\n      hookLog.push({\n        displayName: null,\n        primitive: \"Ref\",\n        stackError: Error(),\n        value: initialValue.current,\n        debugInfo: null,\n        dispatcherHookName: \"Ref\"\n      });\n      return initialValue;\n    },\n    useState: function (initialState) {\n      var hook = nextHook();\n      initialState =\n        null !== hook\n          ? hook.memoizedState\n          : \"function\" === typeof initialState\n          ? initialState()\n          : initialState;\n      hookLog.push({\n        displayName: null,\n        primitive: \"State\",\n        stackError: Error(),\n        value: initialState,\n        debugInfo: null,\n        dispatcherHookName: \"State\"\n      });\n      return [initialState, function () {}];\n    },\n    useTransition: function () {\n      var stateHook = nextHook();\n      nextHook();\n      stateHook = null !== stateHook ? stateHook.memoizedState : !1;\n      hookLog.push({\n        displayName: null,\n        primitive: \"Transition\",\n        stackError: Error(),\n        value: stateHook,\n        debugInfo: null,\n        dispatcherHookName: \"Transition\"\n      });\n      return [stateHook, function () {}];\n    },\n    useSyncExternalStore: function (subscribe, getSnapshot) {\n      nextHook();\n      nextHook();\n      subscribe = getSnapshot();\n      hookLog.push({\n        displayName: null,\n        primitive: \"SyncExternalStore\",\n        stackError: Error(),\n        value: subscribe,\n        debugInfo: null,\n        dispatcherHookName: \"SyncExternalStore\"\n      });\n      return subscribe;\n    },\n    useDeferredValue: function (value) {\n      var hook = nextHook();\n      value = null !== hook ? hook.memoizedState : value;\n      hookLog.push({\n        displayName: null,\n        primitive: \"DeferredValue\",\n        stackError: Error(),\n        value: value,\n        debugInfo: null,\n        dispatcherHookName: \"DeferredValue\"\n      });\n      return value;\n    },\n    useId: function () {\n      var hook = nextHook();\n      hook = null !== hook ? hook.memoizedState : \"\";\n      hookLog.push({\n        displayName: null,\n        primitive: \"Id\",\n        stackError: Error(),\n        value: hook,\n        debugInfo: null,\n        dispatcherHookName: \"Id\"\n      });\n      return hook;\n    },\n    useFormState: function (action, initialState) {\n      var hook = nextHook();\n      nextHook();\n      nextHook();\n      action = Error();\n      var debugInfo = null,\n        error = null;\n      if (null !== hook)\n        if (\n          ((initialState = hook.memoizedState),\n          \"object\" === typeof initialState &&\n            null !== initialState &&\n            \"function\" === typeof initialState.then)\n        )\n          switch (initialState.status) {\n            case \"fulfilled\":\n              var value = initialState.value;\n              debugInfo =\n                void 0 === initialState._debugInfo\n                  ? null\n                  : initialState._debugInfo;\n              break;\n            case \"rejected\":\n              error = initialState.reason;\n              break;\n            default:\n              (error = SuspenseException),\n                (debugInfo =\n                  void 0 === initialState._debugInfo\n                    ? null\n                    : initialState._debugInfo),\n                (value = initialState);\n          }\n        else value = initialState;\n      else value = initialState;\n      hookLog.push({\n        displayName: null,\n        primitive: \"FormState\",\n        stackError: action,\n        value: value,\n        debugInfo: debugInfo,\n        dispatcherHookName: \"FormState\"\n      });\n      if (null !== error) throw error;\n      return [value, function () {}, !1];\n    },\n    useActionState: function (action, initialState) {\n      var hook = nextHook();\n      nextHook();\n      nextHook();\n      action = Error();\n      var debugInfo = null,\n        error = null;\n      if (null !== hook)\n        if (\n          ((initialState = hook.memoizedState),\n          \"object\" === typeof initialState &&\n            null !== initialState &&\n            \"function\" === typeof initialState.then)\n        )\n          switch (initialState.status) {\n            case \"fulfilled\":\n              var value = initialState.value;\n              debugInfo =\n                void 0 === initialState._debugInfo\n                  ? null\n                  : initialState._debugInfo;\n              break;\n            case \"rejected\":\n              error = initialState.reason;\n              break;\n            default:\n              (error = SuspenseException),\n                (debugInfo =\n                  void 0 === initialState._debugInfo\n                    ? null\n                    : initialState._debugInfo),\n                (value = initialState);\n          }\n        else value = initialState;\n      else value = initialState;\n      hookLog.push({\n        displayName: null,\n        primitive: \"ActionState\",\n        stackError: action,\n        value: value,\n        debugInfo: debugInfo,\n        dispatcherHookName: \"ActionState\"\n      });\n      if (null !== error) throw error;\n      return [value, function () {}, !1];\n    },\n    useHostTransitionStatus: function () {\n      var status = readContext({ _currentValue: null });\n      hookLog.push({\n        displayName: null,\n        primitive: \"HostTransitionStatus\",\n        stackError: Error(),\n        value: status,\n        debugInfo: null,\n        dispatcherHookName: \"HostTransitionStatus\"\n      });\n      return status;\n    }\n  },\n  DispatcherProxyHandler = {\n    get: function (target, prop) {\n      if (target.hasOwnProperty(prop)) return target[prop];\n      target = Error(\"Missing method in Dispatcher: \" + prop);\n      target.name = \"ReactDebugToolsUnsupportedHookError\";\n      throw target;\n    }\n  },\n  DispatcherProxy =\n    \"undefined\" === typeof Proxy\n      ? Dispatcher\n      : new Proxy(Dispatcher, DispatcherProxyHandler),\n  mostLikelyAncestorIndex = 0;\nfunction findSharedIndex(hookStack, rootStack, rootIndex) {\n  var source = rootStack[rootIndex].source,\n    i = 0;\n  a: for (; i < hookStack.length; i++)\n    if (hookStack[i].source === source) {\n      for (\n        var a = rootIndex + 1, b = i + 1;\n        a < rootStack.length && b < hookStack.length;\n        a++, b++\n      )\n        if (hookStack[b].source !== rootStack[a].source) continue a;\n      return i;\n    }\n  return -1;\n}\nfunction isReactWrapper(functionName, wrapperName) {\n  functionName = parseHookName(functionName);\n  return \"HostTransitionStatus\" === wrapperName\n    ? functionName === wrapperName || \"FormStatus\" === functionName\n    : functionName === wrapperName;\n}\nfunction parseHookName(functionName) {\n  if (!functionName) return \"\";\n  var startIndex = functionName.lastIndexOf(\"[as \");\n  if (-1 !== startIndex)\n    return parseHookName(functionName.slice(startIndex + 4, -1));\n  startIndex = functionName.lastIndexOf(\".\");\n  startIndex = -1 === startIndex ? 0 : startIndex + 1;\n  if (\"use\" === functionName.slice(startIndex, startIndex + 3)) {\n    if (3 === functionName.length - startIndex) return \"Use\";\n    startIndex += 3;\n  }\n  return functionName.slice(startIndex);\n}\nfunction buildTree(rootStack$jscomp$0, readHookLog) {\n  for (\n    var rootChildren = [],\n      prevStack = null,\n      levelChildren = rootChildren,\n      nativeHookID = 0,\n      stackOfChildren = [],\n      i = 0;\n    i < readHookLog.length;\n    i++\n  ) {\n    var hook = readHookLog[i];\n    var rootStack = rootStack$jscomp$0;\n    var JSCompiler_inline_result = ErrorStackParser.parse(hook.stackError);\n    b: {\n      var hookStack = JSCompiler_inline_result,\n        rootIndex = findSharedIndex(\n          hookStack,\n          rootStack,\n          mostLikelyAncestorIndex\n        );\n      if (-1 !== rootIndex) rootStack = rootIndex;\n      else {\n        for (\n          var i$jscomp$0 = 0;\n          i$jscomp$0 < rootStack.length && 5 > i$jscomp$0;\n          i$jscomp$0++\n        )\n          if (\n            ((rootIndex = findSharedIndex(hookStack, rootStack, i$jscomp$0)),\n            -1 !== rootIndex)\n          ) {\n            mostLikelyAncestorIndex = i$jscomp$0;\n            rootStack = rootIndex;\n            break b;\n          }\n        rootStack = -1;\n      }\n    }\n    b: {\n      hookStack = JSCompiler_inline_result;\n      rootIndex = getPrimitiveStackCache().get(hook.primitive);\n      if (void 0 !== rootIndex)\n        for (\n          i$jscomp$0 = 0;\n          i$jscomp$0 < rootIndex.length && i$jscomp$0 < hookStack.length;\n          i$jscomp$0++\n        )\n          if (rootIndex[i$jscomp$0].source !== hookStack[i$jscomp$0].source) {\n            i$jscomp$0 < hookStack.length - 1 &&\n              isReactWrapper(\n                hookStack[i$jscomp$0].functionName,\n                hook.dispatcherHookName\n              ) &&\n              i$jscomp$0++;\n            i$jscomp$0 < hookStack.length - 1 &&\n              isReactWrapper(\n                hookStack[i$jscomp$0].functionName,\n                hook.dispatcherHookName\n              ) &&\n              i$jscomp$0++;\n            hookStack = i$jscomp$0;\n            break b;\n          }\n      hookStack = -1;\n    }\n    JSCompiler_inline_result =\n      -1 === rootStack || -1 === hookStack || 2 > rootStack - hookStack\n        ? -1 === hookStack\n          ? [null, null]\n          : [JSCompiler_inline_result[hookStack - 1], null]\n        : [\n            JSCompiler_inline_result[hookStack - 1],\n            JSCompiler_inline_result.slice(hookStack, rootStack - 1)\n          ];\n    hookStack = JSCompiler_inline_result[0];\n    JSCompiler_inline_result = JSCompiler_inline_result[1];\n    rootStack = hook.displayName;\n    null === rootStack &&\n      null !== hookStack &&\n      (rootStack =\n        parseHookName(hookStack.functionName) ||\n        parseHookName(hook.dispatcherHookName));\n    if (null !== JSCompiler_inline_result) {\n      hookStack = 0;\n      if (null !== prevStack) {\n        for (\n          ;\n          hookStack < JSCompiler_inline_result.length &&\n          hookStack < prevStack.length &&\n          JSCompiler_inline_result[\n            JSCompiler_inline_result.length - hookStack - 1\n          ].source === prevStack[prevStack.length - hookStack - 1].source;\n\n        )\n          hookStack++;\n        for (\n          prevStack = prevStack.length - 1;\n          prevStack > hookStack;\n          prevStack--\n        )\n          levelChildren = stackOfChildren.pop();\n      }\n      for (\n        prevStack = JSCompiler_inline_result.length - hookStack - 1;\n        1 <= prevStack;\n        prevStack--\n      )\n        (hookStack = []),\n          (rootIndex = JSCompiler_inline_result[prevStack]),\n          (rootIndex = {\n            id: null,\n            isStateEditable: !1,\n            name: parseHookName(\n              JSCompiler_inline_result[prevStack - 1].functionName\n            ),\n            value: void 0,\n            subHooks: hookStack,\n            debugInfo: null,\n            hookSource: {\n              lineNumber: rootIndex.lineNumber,\n              columnNumber: rootIndex.columnNumber,\n              functionName: rootIndex.functionName,\n              fileName: rootIndex.fileName\n            }\n          }),\n          levelChildren.push(rootIndex),\n          stackOfChildren.push(levelChildren),\n          (levelChildren = hookStack);\n      prevStack = JSCompiler_inline_result;\n    }\n    hookStack = hook.primitive;\n    rootIndex = hook.debugInfo;\n    hook = {\n      id:\n        \"Context\" === hookStack ||\n        \"Context (use)\" === hookStack ||\n        \"DebugValue\" === hookStack ||\n        \"Promise\" === hookStack ||\n        \"Unresolved\" === hookStack ||\n        \"HostTransitionStatus\" === hookStack\n          ? null\n          : nativeHookID++,\n      isStateEditable: \"Reducer\" === hookStack || \"State\" === hookStack,\n      name: rootStack || hookStack,\n      value: hook.value,\n      subHooks: [],\n      debugInfo: rootIndex,\n      hookSource: null\n    };\n    rootStack = {\n      lineNumber: null,\n      functionName: null,\n      fileName: null,\n      columnNumber: null\n    };\n    JSCompiler_inline_result &&\n      1 <= JSCompiler_inline_result.length &&\n      ((JSCompiler_inline_result = JSCompiler_inline_result[0]),\n      (rootStack.lineNumber = JSCompiler_inline_result.lineNumber),\n      (rootStack.functionName = JSCompiler_inline_result.functionName),\n      (rootStack.fileName = JSCompiler_inline_result.fileName),\n      (rootStack.columnNumber = JSCompiler_inline_result.columnNumber));\n    hook.hookSource = rootStack;\n    levelChildren.push(hook);\n  }\n  processDebugValues(rootChildren, null);\n  return rootChildren;\n}\nfunction processDebugValues(hooksTree, parentHooksNode) {\n  for (var debugValueHooksNodes = [], i = 0; i < hooksTree.length; i++) {\n    var hooksNode = hooksTree[i];\n    \"DebugValue\" === hooksNode.name && 0 === hooksNode.subHooks.length\n      ? (hooksTree.splice(i, 1), i--, debugValueHooksNodes.push(hooksNode))\n      : processDebugValues(hooksNode.subHooks, hooksNode);\n  }\n  null !== parentHooksNode &&\n    (1 === debugValueHooksNodes.length\n      ? (parentHooksNode.value = debugValueHooksNodes[0].value)\n      : 1 < debugValueHooksNodes.length &&\n        (parentHooksNode.value = debugValueHooksNodes.map(function (_ref) {\n          return _ref.value;\n        })));\n}\nfunction handleRenderFunctionError(error) {\n  if (error !== SuspenseException) {\n    if (\n      error instanceof Error &&\n      \"ReactDebugToolsUnsupportedHookError\" === error.name\n    )\n      throw error;\n    var wrapperError = Error(\"Error rendering inspected component\", {\n      cause: error\n    });\n    wrapperError.name = \"ReactDebugToolsRenderError\";\n    wrapperError.cause = error;\n    throw wrapperError;\n  }\n}\nfunction inspectHooks(renderFunction, props, currentDispatcher) {\n  null == currentDispatcher && (currentDispatcher = ReactSharedInternals);\n  var previousDispatcher = currentDispatcher.H;\n  currentDispatcher.H = DispatcherProxy;\n  try {\n    var ancestorStackError = Error();\n    renderFunction(props);\n  } catch (error) {\n    handleRenderFunctionError(error);\n  } finally {\n    (renderFunction = hookLog),\n      (hookLog = []),\n      (currentDispatcher.H = previousDispatcher);\n  }\n  currentDispatcher = ErrorStackParser.parse(ancestorStackError);\n  return buildTree(currentDispatcher, renderFunction);\n}\nfunction restoreContexts(contextMap) {\n  contextMap.forEach(function (value, context) {\n    return (context._currentValue = value);\n  });\n}\nexports.inspectHooks = inspectHooks;\nexports.inspectHooksOfFiber = function (fiber, currentDispatcher) {\n  null == currentDispatcher && (currentDispatcher = ReactSharedInternals);\n  if (0 !== fiber.tag && 15 !== fiber.tag && 11 !== fiber.tag)\n    throw Error(\n      \"Unknown Fiber. Needs to be a function component to inspect hooks.\"\n    );\n  getPrimitiveStackCache();\n  currentHook = fiber.memoizedState;\n  currentFiber = fiber;\n  if (hasOwnProperty.call(currentFiber, \"dependencies\")) {\n    var dependencies = currentFiber.dependencies;\n    currentContextDependency =\n      null !== dependencies ? dependencies.firstContext : null;\n  } else if (hasOwnProperty.call(currentFiber, \"dependencies_old\"))\n    (dependencies = currentFiber.dependencies_old),\n      (currentContextDependency =\n        null !== dependencies ? dependencies.firstContext : null);\n  else if (hasOwnProperty.call(currentFiber, \"dependencies_new\"))\n    (dependencies = currentFiber.dependencies_new),\n      (currentContextDependency =\n        null !== dependencies ? dependencies.firstContext : null);\n  else if (hasOwnProperty.call(currentFiber, \"contextDependencies\"))\n    (dependencies = currentFiber.contextDependencies),\n      (currentContextDependency =\n        null !== dependencies ? dependencies.first : null);\n  else\n    throw Error(\n      \"Unsupported React version. This is a bug in React Debug Tools.\"\n    );\n  dependencies = fiber.type;\n  var props = fiber.memoizedProps;\n  if (\n    dependencies !== fiber.elementType &&\n    dependencies &&\n    dependencies.defaultProps\n  ) {\n    props = assign({}, props);\n    var defaultProps = dependencies.defaultProps;\n    for (propName in defaultProps)\n      void 0 === props[propName] && (props[propName] = defaultProps[propName]);\n  }\n  var propName = new Map();\n  try {\n    if (\n      null !== currentContextDependency &&\n      !hasOwnProperty.call(currentContextDependency, \"memoizedValue\")\n    )\n      for (defaultProps = fiber; defaultProps; ) {\n        if (10 === defaultProps.tag) {\n          var context = defaultProps.type;\n          void 0 !== context._context && (context = context._context);\n          propName.has(context) ||\n            (propName.set(context, context._currentValue),\n            (context._currentValue = defaultProps.memoizedProps.value));\n        }\n        defaultProps = defaultProps.return;\n      }\n    if (11 === fiber.tag) {\n      var renderFunction = dependencies.render;\n      context = props;\n      var ref = fiber.ref;\n      fiber = currentDispatcher;\n      var previousDispatcher = fiber.H;\n      fiber.H = DispatcherProxy;\n      try {\n        var ancestorStackError = Error();\n        renderFunction(context, ref);\n      } catch (error) {\n        handleRenderFunctionError(error);\n      } finally {\n        var readHookLog = hookLog;\n        hookLog = [];\n        fiber.H = previousDispatcher;\n      }\n      var rootStack = ErrorStackParser.parse(ancestorStackError);\n      return buildTree(rootStack, readHookLog);\n    }\n    return inspectHooks(dependencies, props, currentDispatcher);\n  } finally {\n    (currentContextDependency = currentHook = currentFiber = null),\n      restoreContexts(propName);\n  }\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-debug-tools.production.js');\n} else {\n  module.exports = require('./cjs/react-debug-tools.development.js');\n}\n","/**\n * @license React\n * react-is.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n  REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n  REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\nSymbol.for(\"react.provider\");\nvar REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n  REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n  REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n  REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n  REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n  REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n  REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n  REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n  REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\nfunction typeOf(object) {\n  if (\"object\" === typeof object && null !== object) {\n    var $$typeof = object.$$typeof;\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        switch (((object = object.type), object)) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return object;\n          default:\n            switch (((object = object && object.$$typeof), object)) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return object;\n              case REACT_CONSUMER_TYPE:\n                return object;\n              default:\n                return $$typeof;\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n}\nexports.ContextConsumer = REACT_CONSUMER_TYPE;\nexports.ContextProvider = REACT_CONTEXT_TYPE;\nexports.Element = REACT_ELEMENT_TYPE;\nexports.ForwardRef = REACT_FORWARD_REF_TYPE;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Lazy = REACT_LAZY_TYPE;\nexports.Memo = REACT_MEMO_TYPE;\nexports.Portal = REACT_PORTAL_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.isContextConsumer = function (object) {\n  return typeOf(object) === REACT_CONSUMER_TYPE;\n};\nexports.isContextProvider = function (object) {\n  return typeOf(object) === REACT_CONTEXT_TYPE;\n};\nexports.isElement = function (object) {\n  return (\n    \"object\" === typeof object &&\n    null !== object &&\n    object.$$typeof === REACT_ELEMENT_TYPE\n  );\n};\nexports.isForwardRef = function (object) {\n  return typeOf(object) === REACT_FORWARD_REF_TYPE;\n};\nexports.isFragment = function (object) {\n  return typeOf(object) === REACT_FRAGMENT_TYPE;\n};\nexports.isLazy = function (object) {\n  return typeOf(object) === REACT_LAZY_TYPE;\n};\nexports.isMemo = function (object) {\n  return typeOf(object) === REACT_MEMO_TYPE;\n};\nexports.isPortal = function (object) {\n  return typeOf(object) === REACT_PORTAL_TYPE;\n};\nexports.isProfiler = function (object) {\n  return typeOf(object) === REACT_PROFILER_TYPE;\n};\nexports.isStrictMode = function (object) {\n  return typeOf(object) === REACT_STRICT_MODE_TYPE;\n};\nexports.isSuspense = function (object) {\n  return typeOf(object) === REACT_SUSPENSE_TYPE;\n};\nexports.isSuspenseList = function (object) {\n  return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n};\nexports.isValidElementType = function (type) {\n  return \"string\" === typeof type ||\n    \"function\" === typeof type ||\n    type === REACT_FRAGMENT_TYPE ||\n    type === REACT_PROFILER_TYPE ||\n    type === REACT_STRICT_MODE_TYPE ||\n    type === REACT_SUSPENSE_TYPE ||\n    type === REACT_SUSPENSE_LIST_TYPE ||\n    type === REACT_OFFSCREEN_TYPE ||\n    (\"object\" === typeof type &&\n      null !== type &&\n      (type.$$typeof === REACT_LAZY_TYPE ||\n        type.$$typeof === REACT_MEMO_TYPE ||\n        type.$$typeof === REACT_CONTEXT_TYPE ||\n        type.$$typeof === REACT_CONSUMER_TYPE ||\n        type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        type.$$typeof === REACT_CLIENT_REFERENCE ||\n        void 0 !== type.getModuleId))\n    ? !0\n    : !1;\n};\nexports.typeOf = typeOf;\n","/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n  REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n  REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n  REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n  REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n  REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n  REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n  REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n  REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n  REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n  REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n  REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n  REACT_DEBUG_TRACING_MODE_TYPE = Symbol.for(\"react.debug_trace_mode\"),\n  REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n  REACT_POSTPONE_TYPE = Symbol.for(\"react.postpone\"),\n  MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nfunction getIteratorFn(maybeIterable) {\n  if (null === maybeIterable || \"object\" !== typeof maybeIterable) return null;\n  maybeIterable =\n    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n    maybeIterable[\"@@iterator\"];\n  return \"function\" === typeof maybeIterable ? maybeIterable : null;\n}\nvar ReactNoopUpdateQueue = {\n    isMounted: function () {\n      return !1;\n    },\n    enqueueForceUpdate: function () {},\n    enqueueReplaceState: function () {},\n    enqueueSetState: function () {}\n  },\n  assign = Object.assign,\n  emptyObject = {};\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\nComponent.prototype.isReactComponent = {};\nComponent.prototype.setState = function (partialState, callback) {\n  if (\n    \"object\" !== typeof partialState &&\n    \"function\" !== typeof partialState &&\n    null != partialState\n  )\n    throw Error(\n      \"takes an object of state variables to update or a function which returns an object of state variables.\"\n    );\n  this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n};\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n};\nfunction ComponentDummy() {}\nComponentDummy.prototype = Component.prototype;\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context;\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\nvar pureComponentPrototype = (PureComponent.prototype = new ComponentDummy());\npureComponentPrototype.constructor = PureComponent;\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = !0;\nvar isArrayImpl = Array.isArray,\n  ReactSharedInternals = { H: null, A: null, T: null, S: null },\n  hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction ReactElement(type, key, _ref, self, source, owner, props) {\n  _ref = props.ref;\n  return {\n    $$typeof: REACT_ELEMENT_TYPE,\n    type: type,\n    key: key,\n    ref: void 0 !== _ref ? _ref : null,\n    props: props\n  };\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  return ReactElement(\n    oldElement.type,\n    newKey,\n    null,\n    void 0,\n    void 0,\n    void 0,\n    oldElement.props\n  );\n}\nfunction isValidElement(object) {\n  return (\n    \"object\" === typeof object &&\n    null !== object &&\n    object.$$typeof === REACT_ELEMENT_TYPE\n  );\n}\nfunction escape(key) {\n  var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n  return (\n    \"$\" +\n    key.replace(/[=:]/g, function (match) {\n      return escaperLookup[match];\n    })\n  );\n}\nvar userProvidedKeyEscapeRegex = /\\/+/g;\nfunction getElementKey(element, index) {\n  return \"object\" === typeof element && null !== element && null != element.key\n    ? escape(\"\" + element.key)\n    : index.toString(36);\n}\nfunction noop$1() {}\nfunction resolveThenable(thenable) {\n  switch (thenable.status) {\n    case \"fulfilled\":\n      return thenable.value;\n    case \"rejected\":\n      throw thenable.reason;\n    default:\n      switch (\n        (\"string\" === typeof thenable.status\n          ? thenable.then(noop$1, noop$1)\n          : ((thenable.status = \"pending\"),\n            thenable.then(\n              function (fulfilledValue) {\n                \"pending\" === thenable.status &&\n                  ((thenable.status = \"fulfilled\"),\n                  (thenable.value = fulfilledValue));\n              },\n              function (error) {\n                \"pending\" === thenable.status &&\n                  ((thenable.status = \"rejected\"), (thenable.reason = error));\n              }\n            )),\n        thenable.status)\n      ) {\n        case \"fulfilled\":\n          return thenable.value;\n        case \"rejected\":\n          throw thenable.reason;\n      }\n  }\n  throw thenable;\n}\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n  var type = typeof children;\n  if (\"undefined\" === type || \"boolean\" === type) children = null;\n  var invokeCallback = !1;\n  if (null === children) invokeCallback = !0;\n  else\n    switch (type) {\n      case \"bigint\":\n      case \"string\":\n      case \"number\":\n        invokeCallback = !0;\n        break;\n      case \"object\":\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = !0;\n            break;\n          case REACT_LAZY_TYPE:\n            return (\n              (invokeCallback = children._init),\n              mapIntoArray(\n                invokeCallback(children._payload),\n                array,\n                escapedPrefix,\n                nameSoFar,\n                callback\n              )\n            );\n        }\n    }\n  if (invokeCallback)\n    return (\n      (callback = callback(children)),\n      (invokeCallback =\n        \"\" === nameSoFar ? \".\" + getElementKey(children, 0) : nameSoFar),\n      isArrayImpl(callback)\n        ? ((escapedPrefix = \"\"),\n          null != invokeCallback &&\n            (escapedPrefix =\n              invokeCallback.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n          mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n            return c;\n          }))\n        : null != callback &&\n          (isValidElement(callback) &&\n            (callback = cloneAndReplaceKey(\n              callback,\n              escapedPrefix +\n                (null == callback.key ||\n                (children && children.key === callback.key)\n                  ? \"\"\n                  : (\"\" + callback.key).replace(\n                      userProvidedKeyEscapeRegex,\n                      \"$&/\"\n                    ) + \"/\") +\n                invokeCallback\n            )),\n          array.push(callback)),\n      1\n    );\n  invokeCallback = 0;\n  var nextNamePrefix = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n  if (isArrayImpl(children))\n    for (var i = 0; i < children.length; i++)\n      (nameSoFar = children[i]),\n        (type = nextNamePrefix + getElementKey(nameSoFar, i)),\n        (invokeCallback += mapIntoArray(\n          nameSoFar,\n          array,\n          escapedPrefix,\n          type,\n          callback\n        ));\n  else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n    for (\n      children = i.call(children), i = 0;\n      !(nameSoFar = children.next()).done;\n\n    )\n      (nameSoFar = nameSoFar.value),\n        (type = nextNamePrefix + getElementKey(nameSoFar, i++)),\n        (invokeCallback += mapIntoArray(\n          nameSoFar,\n          array,\n          escapedPrefix,\n          type,\n          callback\n        ));\n  else if (\"object\" === type) {\n    if (\"function\" === typeof children.then)\n      return mapIntoArray(\n        resolveThenable(children),\n        array,\n        escapedPrefix,\n        nameSoFar,\n        callback\n      );\n    array = String(children);\n    throw Error(\n      \"Objects are not valid as a React child (found: \" +\n        (\"[object Object]\" === array\n          ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n          : array) +\n        \"). If you meant to render a collection of children, use an array instead.\"\n    );\n  }\n  return invokeCallback;\n}\nfunction mapChildren(children, func, context) {\n  if (null == children) return children;\n  var result = [],\n    count = 0;\n  mapIntoArray(children, result, \"\", \"\", function (child) {\n    return func.call(context, child, count++);\n  });\n  return result;\n}\nfunction lazyInitializer(payload) {\n  if (-1 === payload._status) {\n    var ctor = payload._result;\n    ctor = ctor();\n    ctor.then(\n      function (moduleObject) {\n        if (0 === payload._status || -1 === payload._status)\n          (payload._status = 1), (payload._result = moduleObject);\n      },\n      function (error) {\n        if (0 === payload._status || -1 === payload._status)\n          (payload._status = 2), (payload._result = error);\n      }\n    );\n    -1 === payload._status && ((payload._status = 0), (payload._result = ctor));\n  }\n  if (1 === payload._status) return payload._result.default;\n  throw payload._result;\n}\nfunction useOptimistic(passthrough, reducer) {\n  return ReactSharedInternals.H.useOptimistic(passthrough, reducer);\n}\nvar reportGlobalError =\n  \"function\" === typeof reportError\n    ? reportError\n    : function (error) {\n        if (\n          \"object\" === typeof window &&\n          \"function\" === typeof window.ErrorEvent\n        ) {\n          var event = new window.ErrorEvent(\"error\", {\n            bubbles: !0,\n            cancelable: !0,\n            message:\n              \"object\" === typeof error &&\n              null !== error &&\n              \"string\" === typeof error.message\n                ? String(error.message)\n                : String(error),\n            error: error\n          });\n          if (!window.dispatchEvent(event)) return;\n        } else if (\n          \"object\" === typeof process &&\n          \"function\" === typeof process.emit\n        ) {\n          process.emit(\"uncaughtException\", error);\n          return;\n        }\n        console.error(error);\n      };\nfunction noop() {}\nexports.Children = {\n  map: mapChildren,\n  forEach: function (children, forEachFunc, forEachContext) {\n    mapChildren(\n      children,\n      function () {\n        forEachFunc.apply(this, arguments);\n      },\n      forEachContext\n    );\n  },\n  count: function (children) {\n    var n = 0;\n    mapChildren(children, function () {\n      n++;\n    });\n    return n;\n  },\n  toArray: function (children) {\n    return (\n      mapChildren(children, function (child) {\n        return child;\n      }) || []\n    );\n  },\n  only: function (children) {\n    if (!isValidElement(children))\n      throw Error(\n        \"React.Children.only expected to receive a single React element child.\"\n      );\n    return children;\n  }\n};\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n  ReactSharedInternals;\nexports.act = function () {\n  throw Error(\"act(...) is not supported in production builds of React.\");\n};\nexports.cache = function (fn) {\n  return function () {\n    return fn.apply(null, arguments);\n  };\n};\nexports.captureOwnerStack = function () {\n  return null;\n};\nexports.cloneElement = function (element, config, children) {\n  if (null === element || void 0 === element)\n    throw Error(\n      \"The argument must be a React element, but you passed \" + element + \".\"\n    );\n  var props = assign({}, element.props),\n    key = element.key,\n    owner = void 0;\n  if (null != config)\n    for (propName in (void 0 !== config.ref && (owner = void 0),\n    void 0 !== config.key && (key = \"\" + config.key),\n    config))\n      !hasOwnProperty.call(config, propName) ||\n        \"key\" === propName ||\n        \"__self\" === propName ||\n        \"__source\" === propName ||\n        (\"ref\" === propName && void 0 === config.ref) ||\n        (props[propName] = config[propName]);\n  var propName = arguments.length - 2;\n  if (1 === propName) props.children = children;\n  else if (1 < propName) {\n    for (var childArray = Array(propName), i = 0; i < propName; i++)\n      childArray[i] = arguments[i + 2];\n    props.children = childArray;\n  }\n  return ReactElement(element.type, key, null, void 0, void 0, owner, props);\n};\nexports.createContext = function (defaultValue) {\n  defaultValue = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    _threadCount: 0,\n    Provider: null,\n    Consumer: null\n  };\n  defaultValue.Provider = defaultValue;\n  defaultValue.Consumer = {\n    $$typeof: REACT_CONSUMER_TYPE,\n    _context: defaultValue\n  };\n  return defaultValue;\n};\nexports.createElement = function (type, config, children) {\n  var propName,\n    props = {},\n    key = null;\n  if (null != config)\n    for (propName in (void 0 !== config.key && (key = \"\" + config.key), config))\n      hasOwnProperty.call(config, propName) &&\n        \"key\" !== propName &&\n        \"__self\" !== propName &&\n        \"__source\" !== propName &&\n        (props[propName] = config[propName]);\n  var childrenLength = arguments.length - 2;\n  if (1 === childrenLength) props.children = children;\n  else if (1 < childrenLength) {\n    for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++)\n      childArray[i] = arguments[i + 2];\n    props.children = childArray;\n  }\n  if (type && type.defaultProps)\n    for (propName in ((childrenLength = type.defaultProps), childrenLength))\n      void 0 === props[propName] &&\n        (props[propName] = childrenLength[propName]);\n  return ReactElement(type, key, null, void 0, void 0, null, props);\n};\nexports.createRef = function () {\n  return { current: null };\n};\nexports.experimental_useEffectEvent = function (callback) {\n  return ReactSharedInternals.H.useEffectEvent(callback);\n};\nexports.experimental_useOptimistic = function (passthrough, reducer) {\n  return useOptimistic(passthrough, reducer);\n};\nexports.forwardRef = function (render) {\n  return { $$typeof: REACT_FORWARD_REF_TYPE, render: render };\n};\nexports.isValidElement = isValidElement;\nexports.lazy = function (ctor) {\n  return {\n    $$typeof: REACT_LAZY_TYPE,\n    _payload: { _status: -1, _result: ctor },\n    _init: lazyInitializer\n  };\n};\nexports.memo = function (type, compare) {\n  return {\n    $$typeof: REACT_MEMO_TYPE,\n    type: type,\n    compare: void 0 === compare ? null : compare\n  };\n};\nexports.startTransition = function (scope) {\n  var prevTransition = ReactSharedInternals.T,\n    transition = {};\n  ReactSharedInternals.T = transition;\n  try {\n    var returnValue = scope(),\n      onStartTransitionFinish = ReactSharedInternals.S;\n    null !== onStartTransitionFinish &&\n      onStartTransitionFinish(transition, returnValue);\n    \"object\" === typeof returnValue &&\n      null !== returnValue &&\n      \"function\" === typeof returnValue.then &&\n      returnValue.then(noop, reportGlobalError);\n  } catch (error) {\n    reportGlobalError(error);\n  } finally {\n    ReactSharedInternals.T = prevTransition;\n  }\n};\nexports.unstable_Activity = REACT_OFFSCREEN_TYPE;\nexports.unstable_DebugTracingMode = REACT_DEBUG_TRACING_MODE_TYPE;\nexports.unstable_SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nexports.unstable_getCacheForType = function (resourceType) {\n  var dispatcher = ReactSharedInternals.A;\n  return dispatcher ? dispatcher.getCacheForType(resourceType) : resourceType();\n};\nexports.unstable_postpone = function (reason) {\n  reason = Error(reason);\n  reason.$$typeof = REACT_POSTPONE_TYPE;\n  throw reason;\n};\nexports.unstable_useCacheRefresh = function () {\n  return ReactSharedInternals.H.useCacheRefresh();\n};\nexports.use = function (usable) {\n  return ReactSharedInternals.H.use(usable);\n};\nexports.useActionState = function (action, initialState, permalink) {\n  return ReactSharedInternals.H.useActionState(action, initialState, permalink);\n};\nexports.useCallback = function (callback, deps) {\n  return ReactSharedInternals.H.useCallback(callback, deps);\n};\nexports.useContext = function (Context) {\n  return ReactSharedInternals.H.useContext(Context);\n};\nexports.useDebugValue = function () {};\nexports.useDeferredValue = function (value, initialValue) {\n  return ReactSharedInternals.H.useDeferredValue(value, initialValue);\n};\nexports.useEffect = function (create, deps) {\n  return ReactSharedInternals.H.useEffect(create, deps);\n};\nexports.useId = function () {\n  return ReactSharedInternals.H.useId();\n};\nexports.useImperativeHandle = function (ref, create, deps) {\n  return ReactSharedInternals.H.useImperativeHandle(ref, create, deps);\n};\nexports.useInsertionEffect = function (create, deps) {\n  return ReactSharedInternals.H.useInsertionEffect(create, deps);\n};\nexports.useLayoutEffect = function (create, deps) {\n  return ReactSharedInternals.H.useLayoutEffect(create, deps);\n};\nexports.useMemo = function (create, deps) {\n  return ReactSharedInternals.H.useMemo(create, deps);\n};\nexports.useOptimistic = useOptimistic;\nexports.useReducer = function (reducer, initialArg, init) {\n  return ReactSharedInternals.H.useReducer(reducer, initialArg, init);\n};\nexports.useRef = function (initialValue) {\n  return ReactSharedInternals.H.useRef(initialValue);\n};\nexports.useState = function (initialState) {\n  return ReactSharedInternals.H.useState(initialState);\n};\nexports.useSyncExternalStore = function (\n  subscribe,\n  getSnapshot,\n  getServerSnapshot\n) {\n  return ReactSharedInternals.H.useSyncExternalStore(\n    subscribe,\n    getSnapshot,\n    getServerSnapshot\n  );\n};\nexports.useTransition = function () {\n  return ReactSharedInternals.H.useTransition();\n};\nexports.version = \"19.0.0-experimental-c82bcbeb2b-20241009\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (typeof define === 'function' && define.amd) {\n        define('error-stack-parser', ['stackframe'], factory);\n    } else if (typeof exports === 'object') {\n        module.exports = factory(require('stackframe'));\n    } else {\n        root.ErrorStackParser = factory(root.StackFrame);\n    }\n}(this, function ErrorStackParser(StackFrame) {\n    'use strict';\n\n    var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n    var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n    var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n    return {\n        /**\n         * Given an Error object, extract the most information from it.\n         *\n         * @param {Error} error object\n         * @return {Array} of StackFrames\n         */\n        parse: function ErrorStackParser$$parse(error) {\n            if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n                return this.parseOpera(error);\n            } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n                return this.parseV8OrIE(error);\n            } else if (error.stack) {\n                return this.parseFFOrSafari(error);\n            } else {\n                throw new Error('Cannot parse given Error object');\n            }\n        },\n\n        // Separate line and column numbers from a string of the form: (URI:Line:Column)\n        extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n            // Fail-fast but return locations like \"(native)\"\n            if (urlLike.indexOf(':') === -1) {\n                return [urlLike];\n            }\n\n            var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n            var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n            return [parts[1], parts[2] || undefined, parts[3] || undefined];\n        },\n\n        parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(CHROME_IE_STACK_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                if (line.indexOf('(eval ') > -1) {\n                    // Throw away eval information until we implement stacktrace.js/stackframe#8\n                    line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(\\),.*$)/g, '');\n                }\n                var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(');\n\n                // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n                // case it has spaces in it, as the string is split on \\s+ later on\n                var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/);\n\n                // remove the parenthesized location from the line, if it was matched\n                sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n                var tokens = sanitizedLine.split(/\\s+/).slice(1);\n                // if a location was matched, pass it to extractLocation() otherwise pop the last token\n                var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n                var functionName = tokens.join(' ') || undefined;\n                var fileName = ['eval', '<anonymous>'].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n                return new StackFrame({\n                    functionName: functionName,\n                    fileName: fileName,\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        },\n\n        parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n            }, this);\n\n            return filtered.map(function(line) {\n                // Throw away eval information until we implement stacktrace.js/stackframe#8\n                if (line.indexOf(' > eval') > -1) {\n                    line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n                }\n\n                if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n                    // Safari eval frames only have function names and nothing else\n                    return new StackFrame({\n                        functionName: line\n                    });\n                } else {\n                    var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n                    var matches = line.match(functionNameRegex);\n                    var functionName = matches && matches[1] ? matches[1] : undefined;\n                    var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n                    return new StackFrame({\n                        functionName: functionName,\n                        fileName: locationParts[0],\n                        lineNumber: locationParts[1],\n                        columnNumber: locationParts[2],\n                        source: line\n                    });\n                }\n            }, this);\n        },\n\n        parseOpera: function ErrorStackParser$$parseOpera(e) {\n            if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n                e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n                return this.parseOpera9(e);\n            } else if (!e.stack) {\n                return this.parseOpera10(e);\n            } else {\n                return this.parseOpera11(e);\n            }\n        },\n\n        parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n            var lines = e.message.split('\\n');\n            var result = [];\n\n            for (var i = 2, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(new StackFrame({\n                        fileName: match[2],\n                        lineNumber: match[1],\n                        source: lines[i]\n                    }));\n                }\n            }\n\n            return result;\n        },\n\n        parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n            var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n            var lines = e.stacktrace.split('\\n');\n            var result = [];\n\n            for (var i = 0, len = lines.length; i < len; i += 2) {\n                var match = lineRE.exec(lines[i]);\n                if (match) {\n                    result.push(\n                        new StackFrame({\n                            functionName: match[3] || undefined,\n                            fileName: match[2],\n                            lineNumber: match[1],\n                            source: lines[i]\n                        })\n                    );\n                }\n            }\n\n            return result;\n        },\n\n        // Opera 10.65+ Error.stack very similar to FF/Safari\n        parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n            var filtered = error.stack.split('\\n').filter(function(line) {\n                return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n            }, this);\n\n            return filtered.map(function(line) {\n                var tokens = line.split('@');\n                var locationParts = this.extractLocation(tokens.pop());\n                var functionCall = (tokens.shift() || '');\n                var functionName = functionCall\n                    .replace(/<anonymous function(: (\\w+))?>/, '$2')\n                    .replace(/\\([^)]*\\)/g, '') || undefined;\n                var argsRaw;\n                if (functionCall.match(/\\(([^)]*)\\)/)) {\n                    argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n                }\n                var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n                    undefined : argsRaw.split(',');\n\n                return new StackFrame({\n                    functionName: functionName,\n                    args: args,\n                    fileName: locationParts[0],\n                    lineNumber: locationParts[1],\n                    columnNumber: locationParts[2],\n                    source: line\n                });\n            }, this);\n        }\n    };\n}));\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        result = wait - timeSinceLastCall;\n\n    return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = value.replace(reTrim, '');\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","'use strict'\n\nmodule.exports = LRUCache\n\n// This will be a proper iterable 'Map' in engines that support it,\n// or a fakey-fake PseudoMap in older versions.\nvar Map = require('pseudomap')\nvar util = require('util')\n\n// A linked list to keep track of recently-used-ness\nvar Yallist = require('yallist')\n\n// use symbols if possible, otherwise just _props\nvar hasSymbol = typeof Symbol === 'function' && process.env._nodeLRUCacheForceNoSymbol !== '1'\nvar makeSymbol\nif (hasSymbol) {\n  makeSymbol = function (key) {\n    return Symbol(key)\n  }\n} else {\n  makeSymbol = function (key) {\n    return '_' + key\n  }\n}\n\nvar MAX = makeSymbol('max')\nvar LENGTH = makeSymbol('length')\nvar LENGTH_CALCULATOR = makeSymbol('lengthCalculator')\nvar ALLOW_STALE = makeSymbol('allowStale')\nvar MAX_AGE = makeSymbol('maxAge')\nvar DISPOSE = makeSymbol('dispose')\nvar NO_DISPOSE_ON_SET = makeSymbol('noDisposeOnSet')\nvar LRU_LIST = makeSymbol('lruList')\nvar CACHE = makeSymbol('cache')\n\nfunction naiveLength () { return 1 }\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest.  the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node.  This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nfunction LRUCache (options) {\n  if (!(this instanceof LRUCache)) {\n    return new LRUCache(options)\n  }\n\n  if (typeof options === 'number') {\n    options = { max: options }\n  }\n\n  if (!options) {\n    options = {}\n  }\n\n  var max = this[MAX] = options.max\n  // Kind of weird to have a default max of Infinity, but oh well.\n  if (!max ||\n      !(typeof max === 'number') ||\n      max <= 0) {\n    this[MAX] = Infinity\n  }\n\n  var lc = options.length || naiveLength\n  if (typeof lc !== 'function') {\n    lc = naiveLength\n  }\n  this[LENGTH_CALCULATOR] = lc\n\n  this[ALLOW_STALE] = options.stale || false\n  this[MAX_AGE] = options.maxAge || 0\n  this[DISPOSE] = options.dispose\n  this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n  this.reset()\n}\n\n// resize the cache when the max changes.\nObject.defineProperty(LRUCache.prototype, 'max', {\n  set: function (mL) {\n    if (!mL || !(typeof mL === 'number') || mL <= 0) {\n      mL = Infinity\n    }\n    this[MAX] = mL\n    trim(this)\n  },\n  get: function () {\n    return this[MAX]\n  },\n  enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'allowStale', {\n  set: function (allowStale) {\n    this[ALLOW_STALE] = !!allowStale\n  },\n  get: function () {\n    return this[ALLOW_STALE]\n  },\n  enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'maxAge', {\n  set: function (mA) {\n    if (!mA || !(typeof mA === 'number') || mA < 0) {\n      mA = 0\n    }\n    this[MAX_AGE] = mA\n    trim(this)\n  },\n  get: function () {\n    return this[MAX_AGE]\n  },\n  enumerable: true\n})\n\n// resize the cache when the lengthCalculator changes.\nObject.defineProperty(LRUCache.prototype, 'lengthCalculator', {\n  set: function (lC) {\n    if (typeof lC !== 'function') {\n      lC = naiveLength\n    }\n    if (lC !== this[LENGTH_CALCULATOR]) {\n      this[LENGTH_CALCULATOR] = lC\n      this[LENGTH] = 0\n      this[LRU_LIST].forEach(function (hit) {\n        hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n        this[LENGTH] += hit.length\n      }, this)\n    }\n    trim(this)\n  },\n  get: function () { return this[LENGTH_CALCULATOR] },\n  enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'length', {\n  get: function () { return this[LENGTH] },\n  enumerable: true\n})\n\nObject.defineProperty(LRUCache.prototype, 'itemCount', {\n  get: function () { return this[LRU_LIST].length },\n  enumerable: true\n})\n\nLRUCache.prototype.rforEach = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this[LRU_LIST].tail; walker !== null;) {\n    var prev = walker.prev\n    forEachStep(this, fn, walker, thisp)\n    walker = prev\n  }\n}\n\nfunction forEachStep (self, fn, node, thisp) {\n  var hit = node.value\n  if (isStale(self, hit)) {\n    del(self, node)\n    if (!self[ALLOW_STALE]) {\n      hit = undefined\n    }\n  }\n  if (hit) {\n    fn.call(thisp, hit.value, hit.key, self)\n  }\n}\n\nLRUCache.prototype.forEach = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this[LRU_LIST].head; walker !== null;) {\n    var next = walker.next\n    forEachStep(this, fn, walker, thisp)\n    walker = next\n  }\n}\n\nLRUCache.prototype.keys = function () {\n  return this[LRU_LIST].toArray().map(function (k) {\n    return k.key\n  }, this)\n}\n\nLRUCache.prototype.values = function () {\n  return this[LRU_LIST].toArray().map(function (k) {\n    return k.value\n  }, this)\n}\n\nLRUCache.prototype.reset = function () {\n  if (this[DISPOSE] &&\n      this[LRU_LIST] &&\n      this[LRU_LIST].length) {\n    this[LRU_LIST].forEach(function (hit) {\n      this[DISPOSE](hit.key, hit.value)\n    }, this)\n  }\n\n  this[CACHE] = new Map() // hash of items by key\n  this[LRU_LIST] = new Yallist() // list of items in order of use recency\n  this[LENGTH] = 0 // length of items in the list\n}\n\nLRUCache.prototype.dump = function () {\n  return this[LRU_LIST].map(function (hit) {\n    if (!isStale(this, hit)) {\n      return {\n        k: hit.key,\n        v: hit.value,\n        e: hit.now + (hit.maxAge || 0)\n      }\n    }\n  }, this).toArray().filter(function (h) {\n    return h\n  })\n}\n\nLRUCache.prototype.dumpLru = function () {\n  return this[LRU_LIST]\n}\n\n/* istanbul ignore next */\nLRUCache.prototype.inspect = function (n, opts) {\n  var str = 'LRUCache {'\n  var extras = false\n\n  var as = this[ALLOW_STALE]\n  if (as) {\n    str += '\\n  allowStale: true'\n    extras = true\n  }\n\n  var max = this[MAX]\n  if (max && max !== Infinity) {\n    if (extras) {\n      str += ','\n    }\n    str += '\\n  max: ' + util.inspect(max, opts)\n    extras = true\n  }\n\n  var maxAge = this[MAX_AGE]\n  if (maxAge) {\n    if (extras) {\n      str += ','\n    }\n    str += '\\n  maxAge: ' + util.inspect(maxAge, opts)\n    extras = true\n  }\n\n  var lc = this[LENGTH_CALCULATOR]\n  if (lc && lc !== naiveLength) {\n    if (extras) {\n      str += ','\n    }\n    str += '\\n  length: ' + util.inspect(this[LENGTH], opts)\n    extras = true\n  }\n\n  var didFirst = false\n  this[LRU_LIST].forEach(function (item) {\n    if (didFirst) {\n      str += ',\\n  '\n    } else {\n      if (extras) {\n        str += ',\\n'\n      }\n      didFirst = true\n      str += '\\n  '\n    }\n    var key = util.inspect(item.key).split('\\n').join('\\n  ')\n    var val = { value: item.value }\n    if (item.maxAge !== maxAge) {\n      val.maxAge = item.maxAge\n    }\n    if (lc !== naiveLength) {\n      val.length = item.length\n    }\n    if (isStale(this, item)) {\n      val.stale = true\n    }\n\n    val = util.inspect(val, opts).split('\\n').join('\\n  ')\n    str += key + ' => ' + val\n  })\n\n  if (didFirst || extras) {\n    str += '\\n'\n  }\n  str += '}'\n\n  return str\n}\n\nLRUCache.prototype.set = function (key, value, maxAge) {\n  maxAge = maxAge || this[MAX_AGE]\n\n  var now = maxAge ? Date.now() : 0\n  var len = this[LENGTH_CALCULATOR](value, key)\n\n  if (this[CACHE].has(key)) {\n    if (len > this[MAX]) {\n      del(this, this[CACHE].get(key))\n      return false\n    }\n\n    var node = this[CACHE].get(key)\n    var item = node.value\n\n    // dispose of the old one before overwriting\n    // split out into 2 ifs for better coverage tracking\n    if (this[DISPOSE]) {\n      if (!this[NO_DISPOSE_ON_SET]) {\n        this[DISPOSE](key, item.value)\n      }\n    }\n\n    item.now = now\n    item.maxAge = maxAge\n    item.value = value\n    this[LENGTH] += len - item.length\n    item.length = len\n    this.get(key)\n    trim(this)\n    return true\n  }\n\n  var hit = new Entry(key, value, len, now, maxAge)\n\n  // oversized objects fall out of cache automatically.\n  if (hit.length > this[MAX]) {\n    if (this[DISPOSE]) {\n      this[DISPOSE](key, value)\n    }\n    return false\n  }\n\n  this[LENGTH] += hit.length\n  this[LRU_LIST].unshift(hit)\n  this[CACHE].set(key, this[LRU_LIST].head)\n  trim(this)\n  return true\n}\n\nLRUCache.prototype.has = function (key) {\n  if (!this[CACHE].has(key)) return false\n  var hit = this[CACHE].get(key).value\n  if (isStale(this, hit)) {\n    return false\n  }\n  return true\n}\n\nLRUCache.prototype.get = function (key) {\n  return get(this, key, true)\n}\n\nLRUCache.prototype.peek = function (key) {\n  return get(this, key, false)\n}\n\nLRUCache.prototype.pop = function () {\n  var node = this[LRU_LIST].tail\n  if (!node) return null\n  del(this, node)\n  return node.value\n}\n\nLRUCache.prototype.del = function (key) {\n  del(this, this[CACHE].get(key))\n}\n\nLRUCache.prototype.load = function (arr) {\n  // reset the cache\n  this.reset()\n\n  var now = Date.now()\n  // A previous serialized cache has the most recent items first\n  for (var l = arr.length - 1; l >= 0; l--) {\n    var hit = arr[l]\n    var expiresAt = hit.e || 0\n    if (expiresAt === 0) {\n      // the item was created without expiration in a non aged cache\n      this.set(hit.k, hit.v)\n    } else {\n      var maxAge = expiresAt - now\n      // dont add already expired items\n      if (maxAge > 0) {\n        this.set(hit.k, hit.v, maxAge)\n      }\n    }\n  }\n}\n\nLRUCache.prototype.prune = function () {\n  var self = this\n  this[CACHE].forEach(function (value, key) {\n    get(self, key, false)\n  })\n}\n\nfunction get (self, key, doUse) {\n  var node = self[CACHE].get(key)\n  if (node) {\n    var hit = node.value\n    if (isStale(self, hit)) {\n      del(self, node)\n      if (!self[ALLOW_STALE]) hit = undefined\n    } else {\n      if (doUse) {\n        self[LRU_LIST].unshiftNode(node)\n      }\n    }\n    if (hit) hit = hit.value\n  }\n  return hit\n}\n\nfunction isStale (self, hit) {\n  if (!hit || (!hit.maxAge && !self[MAX_AGE])) {\n    return false\n  }\n  var stale = false\n  var diff = Date.now() - hit.now\n  if (hit.maxAge) {\n    stale = diff > hit.maxAge\n  } else {\n    stale = self[MAX_AGE] && (diff > self[MAX_AGE])\n  }\n  return stale\n}\n\nfunction trim (self) {\n  if (self[LENGTH] > self[MAX]) {\n    for (var walker = self[LRU_LIST].tail;\n      self[LENGTH] > self[MAX] && walker !== null;) {\n      // We know that we're about to delete this one, and also\n      // what the next least recently used key will be, so just\n      // go ahead and set it now.\n      var prev = walker.prev\n      del(self, walker)\n      walker = prev\n    }\n  }\n}\n\nfunction del (self, node) {\n  if (node) {\n    var hit = node.value\n    if (self[DISPOSE]) {\n      self[DISPOSE](hit.key, hit.value)\n    }\n    self[LENGTH] -= hit.length\n    self[CACHE].delete(hit.key)\n    self[LRU_LIST].removeNode(node)\n  }\n}\n\n// classy, since V8 prefers predictable objects.\nfunction Entry (key, value, length, now, maxAge) {\n  this.key = key\n  this.value = value\n  this.length = length\n  this.now = now\n  this.maxAge = maxAge || 0\n}\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","if (process.env.npm_package_name === 'pseudomap' &&\n    process.env.npm_lifecycle_script === 'test')\n  process.env.TEST_PSEUDOMAP = 'true'\n\nif (typeof Map === 'function' && !process.env.TEST_PSEUDOMAP) {\n  module.exports = Map\n} else {\n  module.exports = require('./pseudomap')\n}\n","var hasOwnProperty = Object.prototype.hasOwnProperty\n\nmodule.exports = PseudoMap\n\nfunction PseudoMap (set) {\n  if (!(this instanceof PseudoMap)) // whyyyyyyy\n    throw new TypeError(\"Constructor PseudoMap requires 'new'\")\n\n  this.clear()\n\n  if (set) {\n    if ((set instanceof PseudoMap) ||\n        (typeof Map === 'function' && set instanceof Map))\n      set.forEach(function (value, key) {\n        this.set(key, value)\n      }, this)\n    else if (Array.isArray(set))\n      set.forEach(function (kv) {\n        this.set(kv[0], kv[1])\n      }, this)\n    else\n      throw new TypeError('invalid argument')\n  }\n}\n\nPseudoMap.prototype.forEach = function (fn, thisp) {\n  thisp = thisp || this\n  Object.keys(this._data).forEach(function (k) {\n    if (k !== 'size')\n      fn.call(thisp, this._data[k].value, this._data[k].key)\n  }, this)\n}\n\nPseudoMap.prototype.has = function (k) {\n  return !!find(this._data, k)\n}\n\nPseudoMap.prototype.get = function (k) {\n  var res = find(this._data, k)\n  return res && res.value\n}\n\nPseudoMap.prototype.set = function (k, v) {\n  set(this._data, k, v)\n}\n\nPseudoMap.prototype.delete = function (k) {\n  var res = find(this._data, k)\n  if (res) {\n    delete this._data[res._index]\n    this._data.size--\n  }\n}\n\nPseudoMap.prototype.clear = function () {\n  var data = Object.create(null)\n  data.size = 0\n\n  Object.defineProperty(this, '_data', {\n    value: data,\n    enumerable: false,\n    configurable: true,\n    writable: false\n  })\n}\n\nObject.defineProperty(PseudoMap.prototype, 'size', {\n  get: function () {\n    return this._data.size\n  },\n  set: function (n) {},\n  enumerable: true,\n  configurable: true\n})\n\nPseudoMap.prototype.values =\nPseudoMap.prototype.keys =\nPseudoMap.prototype.entries = function () {\n  throw new Error('iterators are not implemented in this version')\n}\n\n// Either identical, or both NaN\nfunction same (a, b) {\n  return a === b || a !== a && b !== b\n}\n\nfunction Entry (k, v, i) {\n  this.key = k\n  this.value = v\n  this._index = i\n}\n\nfunction find (data, k) {\n  for (var i = 0, s = '_' + k, key = s;\n       hasOwnProperty.call(data, key);\n       key = s + i++) {\n    if (same(data[key].key, k))\n      return data[key]\n  }\n}\n\nfunction set (data, k, v) {\n  for (var i = 0, s = '_' + k, key = s;\n       hasOwnProperty.call(data, key);\n       key = s + i++) {\n    if (same(data[key].key, k)) {\n      data[key].value = v\n      return\n    }\n  }\n  data.size++\n  data[key] = new Entry(k, v, key)\n}\n","(function(root, factory) {\n    'use strict';\n    // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n    /* istanbul ignore next */\n    if (typeof define === 'function' && define.amd) {\n        define('stackframe', [], factory);\n    } else if (typeof exports === 'object') {\n        module.exports = factory();\n    } else {\n        root.StackFrame = factory();\n    }\n}(this, function() {\n    'use strict';\n    function _isNumber(n) {\n        return !isNaN(parseFloat(n)) && isFinite(n);\n    }\n\n    function _capitalize(str) {\n        return str.charAt(0).toUpperCase() + str.substring(1);\n    }\n\n    function _getter(p) {\n        return function() {\n            return this[p];\n        };\n    }\n\n    var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n    var numericProps = ['columnNumber', 'lineNumber'];\n    var stringProps = ['fileName', 'functionName', 'source'];\n    var arrayProps = ['args'];\n\n    var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n    function StackFrame(obj) {\n        if (!obj) return;\n        for (var i = 0; i < props.length; i++) {\n            if (obj[props[i]] !== undefined) {\n                this['set' + _capitalize(props[i])](obj[props[i]]);\n            }\n        }\n    }\n\n    StackFrame.prototype = {\n        getArgs: function() {\n            return this.args;\n        },\n        setArgs: function(v) {\n            if (Object.prototype.toString.call(v) !== '[object Array]') {\n                throw new TypeError('Args must be an Array');\n            }\n            this.args = v;\n        },\n\n        getEvalOrigin: function() {\n            return this.evalOrigin;\n        },\n        setEvalOrigin: function(v) {\n            if (v instanceof StackFrame) {\n                this.evalOrigin = v;\n            } else if (v instanceof Object) {\n                this.evalOrigin = new StackFrame(v);\n            } else {\n                throw new TypeError('Eval Origin must be an Object or StackFrame');\n            }\n        },\n\n        toString: function() {\n            var fileName = this.getFileName() || '';\n            var lineNumber = this.getLineNumber() || '';\n            var columnNumber = this.getColumnNumber() || '';\n            var functionName = this.getFunctionName() || '';\n            if (this.getIsEval()) {\n                if (fileName) {\n                    return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n                }\n                return '[eval]:' + lineNumber + ':' + columnNumber;\n            }\n            if (functionName) {\n                return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';\n            }\n            return fileName + ':' + lineNumber + ':' + columnNumber;\n        }\n    };\n\n    StackFrame.fromString = function StackFrame$$fromString(str) {\n        var argsStartIndex = str.indexOf('(');\n        var argsEndIndex = str.lastIndexOf(')');\n\n        var functionName = str.substring(0, argsStartIndex);\n        var args = str.substring(argsStartIndex + 1, argsEndIndex).split(',');\n        var locationString = str.substring(argsEndIndex + 1);\n\n        if (locationString.indexOf('@') === 0) {\n            var parts = /@(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(locationString, '');\n            var fileName = parts[1];\n            var lineNumber = parts[2];\n            var columnNumber = parts[3];\n        }\n\n        return new StackFrame({\n            functionName: functionName,\n            args: args || undefined,\n            fileName: fileName,\n            lineNumber: lineNumber || undefined,\n            columnNumber: columnNumber || undefined\n        });\n    };\n\n    for (var i = 0; i < booleanProps.length; i++) {\n        StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n        StackFrame.prototype['set' + _capitalize(booleanProps[i])] = (function(p) {\n            return function(v) {\n                this[p] = Boolean(v);\n            };\n        })(booleanProps[i]);\n    }\n\n    for (var j = 0; j < numericProps.length; j++) {\n        StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n        StackFrame.prototype['set' + _capitalize(numericProps[j])] = (function(p) {\n            return function(v) {\n                if (!_isNumber(v)) {\n                    throw new TypeError(p + ' must be a Number');\n                }\n                this[p] = Number(v);\n            };\n        })(numericProps[j]);\n    }\n\n    for (var k = 0; k < stringProps.length; k++) {\n        StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n        StackFrame.prototype['set' + _capitalize(stringProps[k])] = (function(p) {\n            return function(v) {\n                this[p] = String(v);\n            };\n        })(stringProps[k]);\n    }\n\n    return StackFrame;\n}));\n","if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    ctor.prototype = Object.create(superCtor.prototype, {\n      constructor: {\n        value: ctor,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    ctor.super_ = superCtor\n    var TempCtor = function () {}\n    TempCtor.prototype = superCtor.prototype\n    ctor.prototype = new TempCtor()\n    ctor.prototype.constructor = ctor\n  }\n}\n","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  // Allow for deprecating things in the process of starting up.\n  if (isUndefined(global.process)) {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  if (process.noDeprecation === true) {\n    return fn;\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n  if (isUndefined(debugEnviron))\n    debugEnviron = process.env.NODE_DEBUG || '';\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').substr(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.substr(1, name.length - 2);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n","module.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n  var self = this\n  if (!(self instanceof Yallist)) {\n    self = new Yallist()\n  }\n\n  self.tail = null\n  self.head = null\n  self.length = 0\n\n  if (list && typeof list.forEach === 'function') {\n    list.forEach(function (item) {\n      self.push(item)\n    })\n  } else if (arguments.length > 0) {\n    for (var i = 0, l = arguments.length; i < l; i++) {\n      self.push(arguments[i])\n    }\n  }\n\n  return self\n}\n\nYallist.prototype.removeNode = function (node) {\n  if (node.list !== this) {\n    throw new Error('removing node which does not belong to this list')\n  }\n\n  var next = node.next\n  var prev = node.prev\n\n  if (next) {\n    next.prev = prev\n  }\n\n  if (prev) {\n    prev.next = next\n  }\n\n  if (node === this.head) {\n    this.head = next\n  }\n  if (node === this.tail) {\n    this.tail = prev\n  }\n\n  node.list.length--\n  node.next = null\n  node.prev = null\n  node.list = null\n}\n\nYallist.prototype.unshiftNode = function (node) {\n  if (node === this.head) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var head = this.head\n  node.list = this\n  node.next = head\n  if (head) {\n    head.prev = node\n  }\n\n  this.head = node\n  if (!this.tail) {\n    this.tail = node\n  }\n  this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n  if (node === this.tail) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var tail = this.tail\n  node.list = this\n  node.prev = tail\n  if (tail) {\n    tail.next = node\n  }\n\n  this.tail = node\n  if (!this.head) {\n    this.head = node\n  }\n  this.length++\n}\n\nYallist.prototype.push = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    push(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.unshift = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    unshift(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.pop = function () {\n  if (!this.tail) {\n    return undefined\n  }\n\n  var res = this.tail.value\n  this.tail = this.tail.prev\n  if (this.tail) {\n    this.tail.next = null\n  } else {\n    this.head = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.shift = function () {\n  if (!this.head) {\n    return undefined\n  }\n\n  var res = this.head.value\n  this.head = this.head.next\n  if (this.head) {\n    this.head.prev = null\n  } else {\n    this.tail = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.head, i = 0; walker !== null; i++) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.next\n  }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.prev\n  }\n}\n\nYallist.prototype.get = function (n) {\n  for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.next\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.getReverse = function (n) {\n  for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.prev\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.head; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.next\n  }\n  return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.tail; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.prev\n  }\n  return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n  var acc\n  var walker = this.head\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.head) {\n    walker = this.head.next\n    acc = this.head.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = 0; walker !== null; i++) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.next\n  }\n\n  return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n  var acc\n  var walker = this.tail\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.tail) {\n    walker = this.tail.prev\n    acc = this.tail.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = this.length - 1; walker !== null; i--) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.prev\n  }\n\n  return acc\n}\n\nYallist.prototype.toArray = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.head; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.next\n  }\n  return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.tail; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.prev\n  }\n  return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n    walker = walker.next\n  }\n  for (; walker !== null && i < to; i++, walker = walker.next) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n    walker = walker.prev\n  }\n  for (; walker !== null && i > from; i--, walker = walker.prev) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.reverse = function () {\n  var head = this.head\n  var tail = this.tail\n  for (var walker = head; walker !== null; walker = walker.prev) {\n    var p = walker.prev\n    walker.prev = walker.next\n    walker.next = p\n  }\n  this.head = tail\n  this.tail = head\n  return this\n}\n\nfunction push (self, item) {\n  self.tail = new Node(item, self.tail, null, self)\n  if (!self.head) {\n    self.head = self.tail\n  }\n  self.length++\n}\n\nfunction unshift (self, item) {\n  self.head = new Node(item, null, self.head, self)\n  if (!self.tail) {\n    self.tail = self.head\n  }\n  self.length++\n}\n\nfunction Node (value, prev, next, list) {\n  if (!(this instanceof Node)) {\n    return new Node(value, prev, next, list)\n  }\n\n  this.list = list\n  this.value = value\n\n  if (prev) {\n    prev.next = this\n    this.prev = prev\n  } else {\n    this.prev = null\n  }\n\n  if (next) {\n    next.prev = this\n    this.next = next\n  } else {\n    this.next = null\n  }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport default class EventEmitter<Events: Object> {\n  listenersMap: Map<string, Array<Function>> = new Map();\n\n  addListener<Event: $Keys<Events>>(\n    event: Event,\n    listener: (...$ElementType<Events, Event>) => any,\n  ): void {\n    const listeners = this.listenersMap.get(event);\n    if (listeners === undefined) {\n      this.listenersMap.set(event, [listener]);\n    } else {\n      const index = listeners.indexOf(listener);\n      if (index < 0) {\n        listeners.push(listener);\n      }\n    }\n  }\n\n  emit<Event: $Keys<Events>>(\n    event: Event,\n    ...args: $ElementType<Events, Event>\n  ): void {\n    const listeners = this.listenersMap.get(event);\n    if (listeners !== undefined) {\n      if (listeners.length === 1) {\n        // No need to clone or try/catch\n        const listener = listeners[0];\n        listener.apply(null, args);\n      } else {\n        let didThrow = false;\n        let caughtError = null;\n\n        const clonedListeners = Array.from(listeners);\n        for (let i = 0; i < clonedListeners.length; i++) {\n          const listener = clonedListeners[i];\n          try {\n            listener.apply(null, args);\n          } catch (error) {\n            if (caughtError === null) {\n              didThrow = true;\n              caughtError = error;\n            }\n          }\n        }\n\n        if (didThrow) {\n          throw caughtError;\n        }\n      }\n    }\n  }\n\n  removeAllListeners(): void {\n    this.listenersMap.clear();\n  }\n\n  removeListener(event: $Keys<Events>, listener: Function): void {\n    const listeners = this.listenersMap.get(event);\n    if (listeners !== undefined) {\n      const index = listeners.indexOf(listener);\n      if (index >= 0) {\n        listeners.splice(index, 1);\n      }\n    }\n  }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport const CHROME_WEBSTORE_EXTENSION_ID = 'fmkadmapgofadopljbjfkapdkoienihi';\nexport const INTERNAL_EXTENSION_ID = 'dnjnjgbfilfphmojnmhliehogmojhclc';\nexport const LOCAL_EXTENSION_ID = 'ikiahnapldjmdmpkmfhjdjilojjhgcbf';\n\n// Flip this flag to true to enable verbose console debug logging.\nexport const __DEBUG__ = false;\n\n// Flip this flag to true to enable performance.mark() and performance.measure() timings.\nexport const __PERFORMANCE_PROFILE__ = false;\n\nexport const TREE_OPERATION_ADD = 1;\nexport const TREE_OPERATION_REMOVE = 2;\nexport const TREE_OPERATION_REORDER_CHILDREN = 3;\nexport const TREE_OPERATION_UPDATE_TREE_BASE_DURATION = 4;\nexport const TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS = 5;\nexport const TREE_OPERATION_REMOVE_ROOT = 6;\nexport const TREE_OPERATION_SET_SUBTREE_MODE = 7;\n\nexport const PROFILING_FLAG_BASIC_SUPPORT = 0b01;\nexport const PROFILING_FLAG_TIMELINE_SUPPORT = 0b10;\n\nexport const LOCAL_STORAGE_DEFAULT_TAB_KEY = 'React::DevTools::defaultTab';\nexport const LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY =\n  'React::DevTools::componentFilters';\nexport const SESSION_STORAGE_LAST_SELECTION_KEY =\n  'React::DevTools::lastSelection';\nexport const LOCAL_STORAGE_OPEN_IN_EDITOR_URL =\n  'React::DevTools::openInEditorUrl';\nexport const LOCAL_STORAGE_OPEN_IN_EDITOR_URL_PRESET =\n  'React::DevTools::openInEditorUrlPreset';\nexport const LOCAL_STORAGE_PARSE_HOOK_NAMES_KEY =\n  'React::DevTools::parseHookNames';\nexport const SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY =\n  'React::DevTools::recordChangeDescriptions';\nexport const SESSION_STORAGE_RELOAD_AND_PROFILE_KEY =\n  'React::DevTools::reloadAndProfile';\nexport const LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS =\n  'React::DevTools::breakOnConsoleErrors';\nexport const LOCAL_STORAGE_BROWSER_THEME = 'React::DevTools::theme';\nexport const LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY =\n  'React::DevTools::appendComponentStack';\nexport const LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY =\n  'React::DevTools::showInlineWarningsAndErrors';\nexport const LOCAL_STORAGE_TRACE_UPDATES_ENABLED_KEY =\n  'React::DevTools::traceUpdatesEnabled';\nexport const LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE =\n  'React::DevTools::hideConsoleLogsInStrictMode';\nexport const LOCAL_STORAGE_SUPPORTS_PROFILING_KEY =\n  'React::DevTools::supportsProfiling';\n\nexport const PROFILER_EXPORT_VERSION = 5;\n\nexport const FIREFOX_CONSOLE_DIMMING_COLOR = 'color: rgba(124, 124, 124, 0.75)';\nexport const ANSI_STYLE_DIMMING_TEMPLATE = '\\x1b[2;38;2;124;124;124m%s\\x1b[0m';\nexport const ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK =\n  '\\x1b[2;38;2;124;124;124m%s %o\\x1b[0m';\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport function localStorageGetItem(key: string): any {\n  try {\n    return localStorage.getItem(key);\n  } catch (error) {\n    return null;\n  }\n}\n\nexport function localStorageRemoveItem(key: string): void {\n  try {\n    localStorage.removeItem(key);\n  } catch (error) {}\n}\n\nexport function localStorageSetItem(key: string, value: any): void {\n  try {\n    return localStorage.setItem(key, value);\n  } catch (error) {}\n}\n\nexport function sessionStorageGetItem(key: string): any {\n  try {\n    return sessionStorage.getItem(key);\n  } catch (error) {\n    return null;\n  }\n}\n\nexport function sessionStorageRemoveItem(key: string): void {\n  try {\n    sessionStorage.removeItem(key);\n  } catch (error) {}\n}\n\nexport function sessionStorageSetItem(key: string, value: any): void {\n  try {\n    return sessionStorage.setItem(key, value);\n  } catch (error) {}\n}\n","\n\nvar simpleIsEqual = function simpleIsEqual(a, b) {\n  return a === b;\n};\n\nexport default function (resultFn) {\n  var isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : simpleIsEqual;\n\n  var lastThis = void 0;\n  var lastArgs = [];\n  var lastResult = void 0;\n  var calledOnce = false;\n\n  var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n    return isEqual(newArg, lastArgs[index]);\n  };\n\n  var result = function result() {\n    for (var _len = arguments.length, newArgs = Array(_len), _key = 0; _key < _len; _key++) {\n      newArgs[_key] = arguments[_key];\n    }\n\n    if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n      return lastResult;\n    }\n\n    calledOnce = true;\n    lastThis = this;\n    lastArgs = newArgs;\n    lastResult = resultFn.apply(this, newArgs);\n    return lastResult;\n  };\n\n  return result;\n}","/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n    // validate input and split into segments\n    const n1 = validateAndParse(v1);\n    const n2 = validateAndParse(v2);\n    // pop off the patch\n    const p1 = n1.pop();\n    const p2 = n2.pop();\n    // validate numbers\n    const r = compareSegments(n1, n2);\n    if (r !== 0)\n        return r;\n    // validate pre-release\n    if (p1 && p2) {\n        return compareSegments(p1.split('.'), p2.split('.'));\n    }\n    else if (p1 || p2) {\n        return p1 ? -1 : 1;\n    }\n    return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n    // validate input operator\n    assertValidOperator(operator);\n    // since result of compareVersions can only be -1 or 0 or 1\n    // a simple map can be used to replace switch\n    const res = compareVersions(v1, v2);\n    return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n    // if no range operator then \"=\"\n    const m = range.match(/^([<>=~^]+)/);\n    const op = m ? m[1] : '=';\n    // if gt/lt/eq then operator compare\n    if (op !== '^' && op !== '~')\n        return compare(version, range, op);\n    // else range of either \"~\" or \"^\" is assumed\n    const [v1, v2, v3, , vp] = validateAndParse(version);\n    const [r1, r2, r3, , rp] = validateAndParse(range);\n    const v = [v1, v2, v3];\n    const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n    // validate pre-release\n    if (rp) {\n        if (!vp)\n            return false;\n        if (compareSegments(v, r) !== 0)\n            return false;\n        if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n            return false;\n    }\n    // first non-zero number\n    const nonZero = r.findIndex((v) => v !== '0') + 1;\n    // pointer to where segments can be >=\n    const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n    // before pointer must be equal\n    if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n        return false;\n    // after pointer must be >=\n    if (compareSegments(v.slice(i), r.slice(i)) === -1)\n        return false;\n    return true;\n};\nconst semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nconst validateAndParse = (version) => {\n    if (typeof version !== 'string') {\n        throw new TypeError('Invalid argument expected string');\n    }\n    const match = version.match(semver);\n    if (!match) {\n        throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n    }\n    match.shift();\n    return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n    const n = parseInt(v, 10);\n    return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n    if (isWildcard(a) || isWildcard(b))\n        return 0;\n    const [ap, bp] = forceType(tryParse(a), tryParse(b));\n    if (ap > bp)\n        return 1;\n    if (ap < bp)\n        return -1;\n    return 0;\n};\nconst compareSegments = (a, b) => {\n    for (let i = 0; i < Math.max(a.length, b.length); i++) {\n        const r = compareStrings(a[i] || '0', b[i] || '0');\n        if (r !== 0)\n            return r;\n    }\n    return 0;\n};\nconst operatorResMap = {\n    '>': [1],\n    '>=': [0, 1],\n    '=': [0],\n    '<=': [-1, 0],\n    '<': [-1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n    if (typeof op !== 'string') {\n        throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n    }\n    if (allowedOperators.indexOf(op) === -1) {\n        throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n    }\n};\n//# sourceMappingURL=index.js.map","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {renameElementSymbol} from 'shared/ReactFeatureFlags';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n\n// The Symbol used to tag the ReactElement-like types.\nexport const REACT_LEGACY_ELEMENT_TYPE: symbol = Symbol.for('react.element');\nexport const REACT_ELEMENT_TYPE: symbol = renameElementSymbol\n  ? Symbol.for('react.transitional.element')\n  : REACT_LEGACY_ELEMENT_TYPE;\nexport const REACT_PORTAL_TYPE: symbol = Symbol.for('react.portal');\nexport const REACT_FRAGMENT_TYPE: symbol = Symbol.for('react.fragment');\nexport const REACT_STRICT_MODE_TYPE: symbol = Symbol.for('react.strict_mode');\nexport const REACT_PROFILER_TYPE: symbol = Symbol.for('react.profiler');\nexport const REACT_PROVIDER_TYPE: symbol = Symbol.for('react.provider'); // TODO: Delete with enableRenderableContext\nexport const REACT_CONSUMER_TYPE: symbol = Symbol.for('react.consumer');\nexport const REACT_CONTEXT_TYPE: symbol = Symbol.for('react.context');\nexport const REACT_FORWARD_REF_TYPE: symbol = Symbol.for('react.forward_ref');\nexport const REACT_SUSPENSE_TYPE: symbol = Symbol.for('react.suspense');\nexport const REACT_SUSPENSE_LIST_TYPE: symbol = Symbol.for(\n  'react.suspense_list',\n);\nexport const REACT_MEMO_TYPE: symbol = Symbol.for('react.memo');\nexport const REACT_LAZY_TYPE: symbol = Symbol.for('react.lazy');\nexport const REACT_SCOPE_TYPE: symbol = Symbol.for('react.scope');\nexport const REACT_DEBUG_TRACING_MODE_TYPE: symbol = Symbol.for(\n  'react.debug_trace_mode',\n);\nexport const REACT_OFFSCREEN_TYPE: symbol = Symbol.for('react.offscreen');\nexport const REACT_LEGACY_HIDDEN_TYPE: symbol = Symbol.for(\n  'react.legacy_hidden',\n);\nexport const REACT_TRACING_MARKER_TYPE: symbol = Symbol.for(\n  'react.tracing_marker',\n);\n\nexport const REACT_MEMO_CACHE_SENTINEL: symbol = Symbol.for(\n  'react.memo_cache_sentinel',\n);\n\nexport const REACT_POSTPONE_TYPE: symbol = Symbol.for('react.postpone');\n\nconst MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nconst FAUX_ITERATOR_SYMBOL = '@@iterator';\n\nexport function getIteratorFn(maybeIterable: ?any): ?() => ?Iterator<any> {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n  const maybeIterator =\n    (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n    maybeIterable[FAUX_ITERATOR_SYMBOL];\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n  return null;\n}\n\nexport const ASYNC_ITERATOR = Symbol.asyncIterator;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/**\n * WARNING:\n * This file contains types that are designed for React DevTools UI and how it interacts with the backend.\n * They might be used in different versions of DevTools backends.\n * Be mindful of backwards compatibility when making changes.\n */\n\nimport type {\n  Dehydrated,\n  Unserializable,\n} from 'react-devtools-shared/src/hydration';\nimport type {Source} from 'react-devtools-shared/src/shared/types';\n\nexport type BrowserTheme = 'dark' | 'light';\n\nexport type Wall = {\n  // `listen` returns the \"unlisten\" function.\n  listen: (fn: Function) => Function,\n  send: (event: string, payload: any, transferable?: Array<any>) => void,\n};\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new element types are added, use new numbers rather than re-ordering existing ones.\n//\n// Changing these types is also a backwards breaking change for the standalone shell,\n// since the frontend and backend must share the same values-\n// and the backend is embedded in certain environments (like React Native).\nexport const ElementTypeClass = 1;\nexport const ElementTypeContext = 2;\nexport const ElementTypeFunction = 5;\nexport const ElementTypeForwardRef = 6;\nexport const ElementTypeHostComponent = 7;\nexport const ElementTypeMemo = 8;\nexport const ElementTypeOtherOrUnknown = 9;\nexport const ElementTypeProfiler = 10;\nexport const ElementTypeRoot = 11;\nexport const ElementTypeSuspense = 12;\nexport const ElementTypeSuspenseList = 13;\nexport const ElementTypeTracingMarker = 14;\n\n// Different types of elements displayed in the Elements tree.\n// These types may be used to visually distinguish types,\n// or to enable/disable certain functionality.\nexport type ElementType = 1 | 2 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;\n\n// WARNING\n// The values below are referenced by ComponentFilters (which are saved via localStorage).\n// Do not change them or it will break previously saved user customizations.\n// If new filter types are added, use new numbers rather than re-ordering existing ones.\nexport const ComponentFilterElementType = 1;\nexport const ComponentFilterDisplayName = 2;\nexport const ComponentFilterLocation = 3;\nexport const ComponentFilterHOC = 4;\n\nexport type ComponentFilterType = 1 | 2 | 3 | 4;\n\n// Hide all elements of types in this Set.\n// We hide host components only by default.\nexport type ElementTypeComponentFilter = {\n  isEnabled: boolean,\n  type: 1,\n  value: ElementType,\n};\n\n// Hide all elements with displayNames or paths matching one or more of the RegExps in this Set.\n// Path filters are only used when elements include debug source location.\nexport type RegExpComponentFilter = {\n  isEnabled: boolean,\n  isValid: boolean,\n  type: 2 | 3,\n  value: string,\n};\n\nexport type BooleanComponentFilter = {\n  isEnabled: boolean,\n  isValid: boolean,\n  type: 4,\n};\n\nexport type ComponentFilter =\n  | BooleanComponentFilter\n  | ElementTypeComponentFilter\n  | RegExpComponentFilter;\n\nexport type HookName = string | null;\n// Map of hook source (\"<filename>:<line-number>:<column-number>\") to name.\n// Hook source is used instead of the hook itself because the latter is not stable between element inspections.\n// We use a Map rather than an Array because of nested hooks and traversal ordering.\nexport type HookSourceLocationKey = string;\nexport type HookNames = Map<HookSourceLocationKey, HookName>;\n\nexport type LRUCache<K, V> = {\n  del: (key: K) => void,\n  get: (key: K) => V,\n  has: (key: K) => boolean,\n  reset: () => void,\n  set: (key: K, value: V) => void,\n};\n\nexport type StyleXPlugin = {\n  sources: Array<string>,\n  resolvedStyles: Object,\n};\n\nexport type Plugins = {\n  stylex: StyleXPlugin | null,\n};\n\nexport const StrictMode = 1;\n\n// Each element on the frontend corresponds to a Fiber on the backend.\n// Some of its information (e.g. id, type, displayName) come from the backend.\n// Other bits (e.g. weight and depth) are computed on the frontend for windowing and display purposes.\n// Elements are updated on a push basis– meaning the backend pushes updates to the frontend when needed.\nexport type Element = {\n  id: number,\n  parentID: number,\n  children: Array<number>,\n  type: ElementType,\n  displayName: string | null,\n  key: number | string | null,\n\n  hocDisplayNames: null | Array<string>,\n\n  // Should the elements children be visible in the tree?\n  isCollapsed: boolean,\n\n  // Owner (if available)\n  ownerID: number,\n\n  // How many levels deep within the tree is this element?\n  // This determines how much indentation (left padding) should be used in the Elements tree.\n  depth: number,\n\n  // How many nodes (including itself) are below this Element within the tree.\n  // This property is used to quickly determine the total number of Elements,\n  // and the Element at any given index (for windowing purposes).\n  weight: number,\n\n  // This element is not in a StrictMode compliant subtree.\n  // Only true for React versions supporting StrictMode.\n  isStrictModeNonCompliant: boolean,\n\n  // If component is compiled with Forget, the backend will send its name as Forget(...)\n  // Later, on the frontend side, we will strip HOC names and Forget prefix.\n  compiledWithForget: boolean,\n};\n\nexport type SerializedElement = {\n  displayName: string | null,\n  id: number,\n  key: number | string | null,\n  hocDisplayNames: Array<string> | null,\n  compiledWithForget: boolean,\n  type: ElementType,\n};\n\nexport type OwnersList = {\n  id: number,\n  owners: Array<SerializedElement> | null,\n};\n\nexport type InspectedElementResponseType =\n  | 'error'\n  | 'full-data'\n  | 'hydrated-path'\n  | 'no-change'\n  | 'not-found';\n\nexport type InspectedElementPath = Array<string | number>;\n\nexport type InspectedElement = {\n  id: number,\n\n  // Does the current renderer support editable hooks and function props?\n  canEditHooks: boolean,\n  canEditFunctionProps: boolean,\n\n  // Does the current renderer support advanced editing interface?\n  canEditHooksAndDeletePaths: boolean,\n  canEditHooksAndRenamePaths: boolean,\n  canEditFunctionPropsDeletePaths: boolean,\n  canEditFunctionPropsRenamePaths: boolean,\n\n  // Is this Error, and can its value be overridden now?\n  isErrored: boolean,\n  canToggleError: boolean,\n  targetErrorBoundaryID: ?number,\n\n  // Is this Suspense, and can its value be overridden now?\n  canToggleSuspense: boolean,\n\n  // Can view component source location.\n  canViewSource: boolean,\n\n  // Does the component have legacy context attached to it.\n  hasLegacyContext: boolean,\n\n  // Inspectable properties.\n  context: Object | null,\n  hooks: Object | null,\n  props: Object | null,\n  state: Object | null,\n  key: number | string | null,\n  errors: Array<[string, number]>,\n  warnings: Array<[string, number]>,\n\n  // List of owners\n  owners: Array<SerializedElement> | null,\n\n  // Location of component in source code.\n  source: Source | null,\n\n  type: ElementType,\n\n  // Meta information about the root this element belongs to.\n  rootType: string | null,\n\n  // Meta information about the renderer that created this element.\n  rendererPackageName: string | null,\n  rendererVersion: string | null,\n\n  // UI plugins/visualizations for the inspected element.\n  plugins: Plugins,\n};\n\n// TODO: Add profiling type\n\ntype Data =\n  | string\n  | Dehydrated\n  | Unserializable\n  | Array<Dehydrated>\n  | Array<Unserializable>\n  | {[string]: Data};\n\nexport type DehydratedData = {\n  cleaned: Array<Array<string | number>>,\n  data: Data,\n  unserializable: Array<Array<string | number>>,\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nconst isArray = Array.isArray;\n\nexport default isArray;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport LRU from 'lru-cache';\nimport {\n  isElement,\n  typeOf,\n  ContextConsumer,\n  ContextProvider,\n  ForwardRef,\n  Fragment,\n  Lazy,\n  Memo,\n  Portal,\n  Profiler,\n  StrictMode,\n  Suspense,\n} from 'react-is';\nimport {\n  REACT_CONSUMER_TYPE,\n  REACT_CONTEXT_TYPE,\n  REACT_FORWARD_REF_TYPE,\n  REACT_FRAGMENT_TYPE,\n  REACT_LAZY_TYPE,\n  REACT_LEGACY_ELEMENT_TYPE,\n  REACT_MEMO_TYPE,\n  REACT_PORTAL_TYPE,\n  REACT_PROFILER_TYPE,\n  REACT_PROVIDER_TYPE,\n  REACT_STRICT_MODE_TYPE,\n  REACT_SUSPENSE_LIST_TYPE,\n  REACT_SUSPENSE_LIST_TYPE as SuspenseList,\n  REACT_SUSPENSE_TYPE,\n  REACT_TRACING_MARKER_TYPE as TracingMarker,\n} from 'shared/ReactSymbols';\nimport {enableRenderableContext} from 'shared/ReactFeatureFlags';\nimport {\n  TREE_OPERATION_ADD,\n  TREE_OPERATION_REMOVE,\n  TREE_OPERATION_REMOVE_ROOT,\n  TREE_OPERATION_REORDER_CHILDREN,\n  TREE_OPERATION_SET_SUBTREE_MODE,\n  TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS,\n  TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n  LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n  LOCAL_STORAGE_OPEN_IN_EDITOR_URL,\n  LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS,\n  LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY,\n  LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n  LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE,\n} from './constants';\nimport {\n  ComponentFilterElementType,\n  ComponentFilterLocation,\n  ElementTypeHostComponent,\n} from './frontend/types';\nimport {\n  ElementTypeRoot,\n  ElementTypeClass,\n  ElementTypeForwardRef,\n  ElementTypeFunction,\n  ElementTypeMemo,\n} from 'react-devtools-shared/src/frontend/types';\nimport {localStorageGetItem, localStorageSetItem} from './storage';\nimport {meta} from './hydration';\nimport isArray from './isArray';\n\nimport type {\n  ComponentFilter,\n  ElementType,\n  BrowserTheme,\n  SerializedElement as SerializedElementFrontend,\n  LRUCache,\n} from 'react-devtools-shared/src/frontend/types';\nimport type {SerializedElement as SerializedElementBackend} from 'react-devtools-shared/src/backend/types';\n\n// $FlowFixMe[method-unbinding]\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nconst cachedDisplayNames: WeakMap<Function, string> = new WeakMap();\n\n// On large trees, encoding takes significant time.\n// Try to reuse the already encoded strings.\nconst encodedStringCache: LRUCache<string, Array<number>> = new LRU({\n  max: 1000,\n});\n\nexport function alphaSortKeys(\n  a: string | number | symbol,\n  b: string | number | symbol,\n): number {\n  if (a.toString() > b.toString()) {\n    return 1;\n  } else if (b.toString() > a.toString()) {\n    return -1;\n  } else {\n    return 0;\n  }\n}\n\nexport function getAllEnumerableKeys(\n  obj: Object,\n): Set<string | number | symbol> {\n  const keys = new Set<string | number | symbol>();\n  let current = obj;\n  while (current != null) {\n    const currentKeys = [\n      ...Object.keys(current),\n      ...Object.getOwnPropertySymbols(current),\n    ];\n    const descriptors = Object.getOwnPropertyDescriptors(current);\n    currentKeys.forEach(key => {\n      // $FlowFixMe[incompatible-type]: key can be a Symbol https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor\n      if (descriptors[key].enumerable) {\n        keys.add(key);\n      }\n    });\n    current = Object.getPrototypeOf(current);\n  }\n  return keys;\n}\n\n// Mirror https://github.com/facebook/react/blob/7c21bf72ace77094fd1910cc350a548287ef8350/packages/shared/getComponentName.js#L27-L37\nexport function getWrappedDisplayName(\n  outerType: mixed,\n  innerType: any,\n  wrapperName: string,\n  fallbackName?: string,\n): string {\n  const displayName = (outerType: any)?.displayName;\n  return (\n    displayName || `${wrapperName}(${getDisplayName(innerType, fallbackName)})`\n  );\n}\n\nexport function getDisplayName(\n  type: Function,\n  fallbackName: string = 'Anonymous',\n): string {\n  const nameFromCache = cachedDisplayNames.get(type);\n  if (nameFromCache != null) {\n    return nameFromCache;\n  }\n\n  let displayName = fallbackName;\n\n  // The displayName property is not guaranteed to be a string.\n  // It's only safe to use for our purposes if it's a string.\n  // github.com/facebook/react-devtools/issues/803\n  if (typeof type.displayName === 'string') {\n    displayName = type.displayName;\n  } else if (typeof type.name === 'string' && type.name !== '') {\n    displayName = type.name;\n  }\n\n  cachedDisplayNames.set(type, displayName);\n  return displayName;\n}\n\nlet uidCounter: number = 0;\n\nexport function getUID(): number {\n  return ++uidCounter;\n}\n\nexport function utfDecodeStringWithRanges(\n  array: Array<number>,\n  left: number,\n  right: number,\n): string {\n  let string = '';\n  for (let i = left; i <= right; i++) {\n    string += String.fromCodePoint(array[i]);\n  }\n  return string;\n}\n\nfunction surrogatePairToCodePoint(\n  charCode1: number,\n  charCode2: number,\n): number {\n  return ((charCode1 & 0x3ff) << 10) + (charCode2 & 0x3ff) + 0x10000;\n}\n\n// Credit for this encoding approach goes to Tim Down:\n// https://stackoverflow.com/questions/4877326/how-can-i-tell-if-a-string-contains-multibyte-characters-in-javascript\nexport function utfEncodeString(string: string): Array<number> {\n  const cached = encodedStringCache.get(string);\n  if (cached !== undefined) {\n    return cached;\n  }\n\n  const encoded = [];\n  let i = 0;\n  let charCode;\n  while (i < string.length) {\n    charCode = string.charCodeAt(i);\n    // Handle multibyte unicode characters (like emoji).\n    if ((charCode & 0xf800) === 0xd800) {\n      encoded.push(surrogatePairToCodePoint(charCode, string.charCodeAt(++i)));\n    } else {\n      encoded.push(charCode);\n    }\n    ++i;\n  }\n\n  encodedStringCache.set(string, encoded);\n\n  return encoded;\n}\n\nexport function printOperationsArray(operations: Array<number>) {\n  // The first two values are always rendererID and rootID\n  const rendererID = operations[0];\n  const rootID = operations[1];\n\n  const logs = [`operations for renderer:${rendererID} and root:${rootID}`];\n\n  let i = 2;\n\n  // Reassemble the string table.\n  const stringTable: Array<null | string> = [\n    null, // ID = 0 corresponds to the null string.\n  ];\n  const stringTableSize = operations[i++];\n  const stringTableEnd = i + stringTableSize;\n  while (i < stringTableEnd) {\n    const nextLength = operations[i++];\n    const nextString = utfDecodeStringWithRanges(\n      operations,\n      i,\n      i + nextLength - 1,\n    );\n    stringTable.push(nextString);\n    i += nextLength;\n  }\n\n  while (i < operations.length) {\n    const operation = operations[i];\n\n    switch (operation) {\n      case TREE_OPERATION_ADD: {\n        const id = ((operations[i + 1]: any): number);\n        const type = ((operations[i + 2]: any): ElementType);\n\n        i += 3;\n\n        if (type === ElementTypeRoot) {\n          logs.push(`Add new root node ${id}`);\n\n          i++; // isStrictModeCompliant\n          i++; // supportsProfiling\n          i++; // supportsStrictMode\n          i++; // hasOwnerMetadata\n        } else {\n          const parentID = ((operations[i]: any): number);\n          i++;\n\n          i++; // ownerID\n\n          const displayNameStringID = operations[i];\n          const displayName = stringTable[displayNameStringID];\n          i++;\n\n          i++; // key\n\n          logs.push(\n            `Add node ${id} (${displayName || 'null'}) as child of ${parentID}`,\n          );\n        }\n        break;\n      }\n      case TREE_OPERATION_REMOVE: {\n        const removeLength = ((operations[i + 1]: any): number);\n        i += 2;\n\n        for (let removeIndex = 0; removeIndex < removeLength; removeIndex++) {\n          const id = ((operations[i]: any): number);\n          i += 1;\n\n          logs.push(`Remove node ${id}`);\n        }\n        break;\n      }\n      case TREE_OPERATION_REMOVE_ROOT: {\n        i += 1;\n\n        logs.push(`Remove root ${rootID}`);\n        break;\n      }\n      case TREE_OPERATION_SET_SUBTREE_MODE: {\n        const id = operations[i + 1];\n        const mode = operations[i + 1];\n\n        i += 3;\n\n        logs.push(`Mode ${mode} set for subtree with root ${id}`);\n        break;\n      }\n      case TREE_OPERATION_REORDER_CHILDREN: {\n        const id = ((operations[i + 1]: any): number);\n        const numChildren = ((operations[i + 2]: any): number);\n        i += 3;\n        const children = operations.slice(i, i + numChildren);\n        i += numChildren;\n\n        logs.push(`Re-order node ${id} children ${children.join(',')}`);\n        break;\n      }\n      case TREE_OPERATION_UPDATE_TREE_BASE_DURATION:\n        // Base duration updates are only sent while profiling is in progress.\n        // We can ignore them at this point.\n        // The profiler UI uses them lazily in order to generate the tree.\n        i += 3;\n        break;\n      case TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS:\n        const id = operations[i + 1];\n        const numErrors = operations[i + 2];\n        const numWarnings = operations[i + 3];\n\n        i += 4;\n\n        logs.push(\n          `Node ${id} has ${numErrors} errors and ${numWarnings} warnings`,\n        );\n        break;\n      default:\n        throw Error(`Unsupported Bridge operation \"${operation}\"`);\n    }\n  }\n\n  console.log(logs.join('\\n  '));\n}\n\nexport function getDefaultComponentFilters(): Array<ComponentFilter> {\n  return [\n    {\n      type: ComponentFilterElementType,\n      value: ElementTypeHostComponent,\n      isEnabled: true,\n    },\n  ];\n}\n\nexport function getSavedComponentFilters(): Array<ComponentFilter> {\n  try {\n    const raw = localStorageGetItem(\n      LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n    );\n    if (raw != null) {\n      const parsedFilters: Array<ComponentFilter> = JSON.parse(raw);\n      return filterOutLocationComponentFilters(parsedFilters);\n    }\n  } catch (error) {}\n  return getDefaultComponentFilters();\n}\n\nexport function setSavedComponentFilters(\n  componentFilters: Array<ComponentFilter>,\n): void {\n  localStorageSetItem(\n    LOCAL_STORAGE_COMPONENT_FILTER_PREFERENCES_KEY,\n    JSON.stringify(filterOutLocationComponentFilters(componentFilters)),\n  );\n}\n\n// Following __debugSource removal from Fiber, the new approach for finding the source location\n// of a component, represented by the Fiber, is based on lazily generating and parsing component stack frames\n// To find the original location, React DevTools will perform symbolication, source maps are required for that.\n// In order to start filtering Fibers, we need to find location for all of them, which can't be done lazily.\n// Eager symbolication can become quite expensive for large applications.\nexport function filterOutLocationComponentFilters(\n  componentFilters: Array<ComponentFilter>,\n): Array<ComponentFilter> {\n  // This is just an additional check to preserve the previous state\n  // Filters can be stored on the backend side or in user land (in a window object)\n  if (!Array.isArray(componentFilters)) {\n    return componentFilters;\n  }\n\n  return componentFilters.filter(f => f.type !== ComponentFilterLocation);\n}\n\nfunction parseBool(s: ?string): ?boolean {\n  if (s === 'true') {\n    return true;\n  }\n  if (s === 'false') {\n    return false;\n  }\n}\n\nexport function castBool(v: any): ?boolean {\n  if (v === true || v === false) {\n    return v;\n  }\n}\n\nexport function castBrowserTheme(v: any): ?BrowserTheme {\n  if (v === 'light' || v === 'dark' || v === 'auto') {\n    return v;\n  }\n}\n\nexport function getAppendComponentStack(): boolean {\n  const raw = localStorageGetItem(\n    LOCAL_STORAGE_SHOULD_APPEND_COMPONENT_STACK_KEY,\n  );\n  return parseBool(raw) ?? true;\n}\n\nexport function getBreakOnConsoleErrors(): boolean {\n  const raw = localStorageGetItem(LOCAL_STORAGE_SHOULD_BREAK_ON_CONSOLE_ERRORS);\n  return parseBool(raw) ?? false;\n}\n\nexport function getHideConsoleLogsInStrictMode(): boolean {\n  const raw = localStorageGetItem(\n    LOCAL_STORAGE_HIDE_CONSOLE_LOGS_IN_STRICT_MODE,\n  );\n  return parseBool(raw) ?? false;\n}\n\nexport function getShowInlineWarningsAndErrors(): boolean {\n  const raw = localStorageGetItem(\n    LOCAL_STORAGE_SHOW_INLINE_WARNINGS_AND_ERRORS_KEY,\n  );\n  return parseBool(raw) ?? true;\n}\n\nexport function getDefaultOpenInEditorURL(): string {\n  return typeof process.env.EDITOR_URL === 'string'\n    ? process.env.EDITOR_URL\n    : '';\n}\n\nexport function getOpenInEditorURL(): string {\n  try {\n    const raw = localStorageGetItem(LOCAL_STORAGE_OPEN_IN_EDITOR_URL);\n    if (raw != null) {\n      return JSON.parse(raw);\n    }\n  } catch (error) {}\n  return getDefaultOpenInEditorURL();\n}\n\ntype ParseElementDisplayNameFromBackendReturn = {\n  formattedDisplayName: string | null,\n  hocDisplayNames: Array<string> | null,\n  compiledWithForget: boolean,\n};\nexport function parseElementDisplayNameFromBackend(\n  displayName: string | null,\n  type: ElementType,\n): ParseElementDisplayNameFromBackendReturn {\n  if (displayName === null) {\n    return {\n      formattedDisplayName: null,\n      hocDisplayNames: null,\n      compiledWithForget: false,\n    };\n  }\n\n  if (displayName.startsWith('Forget(')) {\n    const displayNameWithoutForgetWrapper = displayName.slice(\n      7,\n      displayName.length - 1,\n    );\n\n    const {formattedDisplayName, hocDisplayNames} =\n      parseElementDisplayNameFromBackend(displayNameWithoutForgetWrapper, type);\n    return {formattedDisplayName, hocDisplayNames, compiledWithForget: true};\n  }\n\n  let hocDisplayNames = null;\n  switch (type) {\n    case ElementTypeClass:\n    case ElementTypeForwardRef:\n    case ElementTypeFunction:\n    case ElementTypeMemo:\n      if (displayName.indexOf('(') >= 0) {\n        const matches = displayName.match(/[^()]+/g);\n        if (matches != null) {\n          displayName = matches.pop();\n          hocDisplayNames = matches;\n        }\n      }\n      break;\n    default:\n      break;\n  }\n\n  return {\n    formattedDisplayName: displayName,\n    hocDisplayNames,\n    compiledWithForget: false,\n  };\n}\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nexport function shallowDiffers(prev: Object, next: Object): boolean {\n  for (const attribute in prev) {\n    if (!(attribute in next)) {\n      return true;\n    }\n  }\n  for (const attribute in next) {\n    if (prev[attribute] !== next[attribute]) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport function getInObject(object: Object, path: Array<string | number>): any {\n  return path.reduce((reduced: Object, attr: any): any => {\n    if (reduced) {\n      if (hasOwnProperty.call(reduced, attr)) {\n        return reduced[attr];\n      }\n      if (typeof reduced[Symbol.iterator] === 'function') {\n        // Convert iterable to array and return array[index]\n        //\n        // TRICKY\n        // Don't use [...spread] syntax for this purpose.\n        // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n        // Other types (e.g. typed arrays, Sets) will not spread correctly.\n        return Array.from(reduced)[attr];\n      }\n    }\n\n    return null;\n  }, object);\n}\n\nexport function deletePathInObject(\n  object: Object,\n  path: Array<string | number>,\n) {\n  const length = path.length;\n  const last = path[length - 1];\n  if (object != null) {\n    const parent = getInObject(object, path.slice(0, length - 1));\n    if (parent) {\n      if (isArray(parent)) {\n        parent.splice(((last: any): number), 1);\n      } else {\n        delete parent[last];\n      }\n    }\n  }\n}\n\nexport function renamePathInObject(\n  object: Object,\n  oldPath: Array<string | number>,\n  newPath: Array<string | number>,\n) {\n  const length = oldPath.length;\n  if (object != null) {\n    const parent = getInObject(object, oldPath.slice(0, length - 1));\n    if (parent) {\n      const lastOld = oldPath[length - 1];\n      const lastNew = newPath[length - 1];\n      parent[lastNew] = parent[lastOld];\n      if (isArray(parent)) {\n        parent.splice(((lastOld: any): number), 1);\n      } else {\n        delete parent[lastOld];\n      }\n    }\n  }\n}\n\nexport function setInObject(\n  object: Object,\n  path: Array<string | number>,\n  value: any,\n) {\n  const length = path.length;\n  const last = path[length - 1];\n  if (object != null) {\n    const parent = getInObject(object, path.slice(0, length - 1));\n    if (parent) {\n      parent[last] = value;\n    }\n  }\n}\n\nexport type DataType =\n  | 'array'\n  | 'array_buffer'\n  | 'bigint'\n  | 'boolean'\n  | 'class_instance'\n  | 'data_view'\n  | 'date'\n  | 'function'\n  | 'html_all_collection'\n  | 'html_element'\n  | 'infinity'\n  | 'iterator'\n  | 'opaque_iterator'\n  | 'nan'\n  | 'null'\n  | 'number'\n  | 'object'\n  | 'react_element'\n  | 'regexp'\n  | 'string'\n  | 'symbol'\n  | 'typed_array'\n  | 'undefined'\n  | 'unknown';\n\n/**\n * Get a enhanced/artificial type string based on the object instance\n */\nexport function getDataType(data: Object): DataType {\n  if (data === null) {\n    return 'null';\n  } else if (data === undefined) {\n    return 'undefined';\n  }\n\n  if (isElement(data)) {\n    return 'react_element';\n  }\n\n  if (typeof HTMLElement !== 'undefined' && data instanceof HTMLElement) {\n    return 'html_element';\n  }\n\n  const type = typeof data;\n  switch (type) {\n    case 'bigint':\n      return 'bigint';\n    case 'boolean':\n      return 'boolean';\n    case 'function':\n      return 'function';\n    case 'number':\n      if (Number.isNaN(data)) {\n        return 'nan';\n      } else if (!Number.isFinite(data)) {\n        return 'infinity';\n      } else {\n        return 'number';\n      }\n    case 'object':\n      if (isArray(data)) {\n        return 'array';\n      } else if (ArrayBuffer.isView(data)) {\n        return hasOwnProperty.call(data.constructor, 'BYTES_PER_ELEMENT')\n          ? 'typed_array'\n          : 'data_view';\n      } else if (data.constructor && data.constructor.name === 'ArrayBuffer') {\n        // HACK This ArrayBuffer check is gross; is there a better way?\n        // We could try to create a new DataView with the value.\n        // If it doesn't error, we know it's an ArrayBuffer,\n        // but this seems kind of awkward and expensive.\n        return 'array_buffer';\n      } else if (typeof data[Symbol.iterator] === 'function') {\n        const iterator = data[Symbol.iterator]();\n        if (!iterator) {\n          // Proxies might break assumptoins about iterators.\n          // See github.com/facebook/react/issues/21654\n        } else {\n          return iterator === data ? 'opaque_iterator' : 'iterator';\n        }\n      } else if (data.constructor && data.constructor.name === 'RegExp') {\n        return 'regexp';\n      } else {\n        // $FlowFixMe[method-unbinding]\n        const toStringValue = Object.prototype.toString.call(data);\n        if (toStringValue === '[object Date]') {\n          return 'date';\n        } else if (toStringValue === '[object HTMLAllCollection]') {\n          return 'html_all_collection';\n        }\n      }\n\n      if (!isPlainObject(data)) {\n        return 'class_instance';\n      }\n\n      return 'object';\n    case 'string':\n      return 'string';\n    case 'symbol':\n      return 'symbol';\n    case 'undefined':\n      if (\n        // $FlowFixMe[method-unbinding]\n        Object.prototype.toString.call(data) === '[object HTMLAllCollection]'\n      ) {\n        return 'html_all_collection';\n      }\n      return 'undefined';\n    default:\n      return 'unknown';\n  }\n}\n\n// Fork of packages/react-is/src/ReactIs.js:30, but with legacy element type\n// Which has been changed in https://github.com/facebook/react/pull/28813\nfunction typeOfWithLegacyElementSymbol(object: any): mixed {\n  if (typeof object === 'object' && object !== null) {\n    const $$typeof = object.$$typeof;\n    switch ($$typeof) {\n      case REACT_LEGACY_ELEMENT_TYPE:\n        const type = object.type;\n\n        switch (type) {\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n          case REACT_SUSPENSE_LIST_TYPE:\n            return type;\n          default:\n            const $$typeofType = type && type.$$typeof;\n\n            switch ($$typeofType) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n                return $$typeofType;\n              case REACT_CONSUMER_TYPE:\n                if (enableRenderableContext) {\n                  return $$typeofType;\n                }\n              // Fall through\n              case REACT_PROVIDER_TYPE:\n                if (!enableRenderableContext) {\n                  return $$typeofType;\n                }\n              // Fall through\n              default:\n                return $$typeof;\n            }\n        }\n      case REACT_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n\n  return undefined;\n}\n\nexport function getDisplayNameForReactElement(\n  element: React$Element<any>,\n): string | null {\n  const elementType = typeOf(element) || typeOfWithLegacyElementSymbol(element);\n  switch (elementType) {\n    case ContextConsumer:\n      return 'ContextConsumer';\n    case ContextProvider:\n      return 'ContextProvider';\n    case ForwardRef:\n      return 'ForwardRef';\n    case Fragment:\n      return 'Fragment';\n    case Lazy:\n      return 'Lazy';\n    case Memo:\n      return 'Memo';\n    case Portal:\n      return 'Portal';\n    case Profiler:\n      return 'Profiler';\n    case StrictMode:\n      return 'StrictMode';\n    case Suspense:\n      return 'Suspense';\n    case SuspenseList:\n      return 'SuspenseList';\n    case TracingMarker:\n      return 'TracingMarker';\n    default:\n      const {type} = element;\n      if (typeof type === 'string') {\n        return type;\n      } else if (typeof type === 'function') {\n        return getDisplayName(type, 'Anonymous');\n      } else if (type != null) {\n        return 'NotImplementedInDevtools';\n      } else {\n        return 'Element';\n      }\n  }\n}\n\nconst MAX_PREVIEW_STRING_LENGTH = 50;\n\nfunction truncateForDisplay(\n  string: string,\n  length: number = MAX_PREVIEW_STRING_LENGTH,\n) {\n  if (string.length > length) {\n    return string.slice(0, length) + '…';\n  } else {\n    return string;\n  }\n}\n\n// Attempts to mimic Chrome's inline preview for values.\n// For example, the following value...\n//   {\n//      foo: 123,\n//      bar: \"abc\",\n//      baz: [true, false],\n//      qux: { ab: 1, cd: 2 }\n//   };\n//\n// Would show a preview of...\n//   {foo: 123, bar: \"abc\", baz: Array(2), qux: {…}}\n//\n// And the following value...\n//   [\n//     123,\n//     \"abc\",\n//     [true, false],\n//     { foo: 123, bar: \"abc\" }\n//   ];\n//\n// Would show a preview of...\n//   [123, \"abc\", Array(2), {…}]\nexport function formatDataForPreview(\n  data: any,\n  showFormattedValue: boolean,\n): string {\n  if (data != null && hasOwnProperty.call(data, meta.type)) {\n    return showFormattedValue\n      ? data[meta.preview_long]\n      : data[meta.preview_short];\n  }\n\n  const type = getDataType(data);\n\n  switch (type) {\n    case 'html_element':\n      return `<${truncateForDisplay(data.tagName.toLowerCase())} />`;\n    case 'function':\n      return truncateForDisplay(\n        `ƒ ${typeof data.name === 'function' ? '' : data.name}() {}`,\n      );\n    case 'string':\n      return `\"${data}\"`;\n    case 'bigint':\n      return truncateForDisplay(data.toString() + 'n');\n    case 'regexp':\n      return truncateForDisplay(data.toString());\n    case 'symbol':\n      return truncateForDisplay(data.toString());\n    case 'react_element':\n      return `<${truncateForDisplay(\n        getDisplayNameForReactElement(data) || 'Unknown',\n      )} />`;\n    case 'array_buffer':\n      return `ArrayBuffer(${data.byteLength})`;\n    case 'data_view':\n      return `DataView(${data.buffer.byteLength})`;\n    case 'array':\n      if (showFormattedValue) {\n        let formatted = '';\n        for (let i = 0; i < data.length; i++) {\n          if (i > 0) {\n            formatted += ', ';\n          }\n          formatted += formatDataForPreview(data[i], false);\n          if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n            // Prevent doing a lot of unnecessary iteration...\n            break;\n          }\n        }\n        return `[${truncateForDisplay(formatted)}]`;\n      } else {\n        const length = hasOwnProperty.call(data, meta.size)\n          ? data[meta.size]\n          : data.length;\n        return `Array(${length})`;\n      }\n    case 'typed_array':\n      const shortName = `${data.constructor.name}(${data.length})`;\n      if (showFormattedValue) {\n        let formatted = '';\n        for (let i = 0; i < data.length; i++) {\n          if (i > 0) {\n            formatted += ', ';\n          }\n          formatted += data[i];\n          if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n            // Prevent doing a lot of unnecessary iteration...\n            break;\n          }\n        }\n        return `${shortName} [${truncateForDisplay(formatted)}]`;\n      } else {\n        return shortName;\n      }\n    case 'iterator':\n      const name = data.constructor.name;\n\n      if (showFormattedValue) {\n        // TRICKY\n        // Don't use [...spread] syntax for this purpose.\n        // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n        // Other types (e.g. typed arrays, Sets) will not spread correctly.\n        const array = Array.from(data);\n\n        let formatted = '';\n        for (let i = 0; i < array.length; i++) {\n          const entryOrEntries = array[i];\n\n          if (i > 0) {\n            formatted += ', ';\n          }\n\n          // TRICKY\n          // Browsers display Maps and Sets differently.\n          // To mimic their behavior, detect if we've been given an entries tuple.\n          //   Map(2) {\"abc\" => 123, \"def\" => 123}\n          //   Set(2) {\"abc\", 123}\n          if (isArray(entryOrEntries)) {\n            const key = formatDataForPreview(entryOrEntries[0], true);\n            const value = formatDataForPreview(entryOrEntries[1], false);\n            formatted += `${key} => ${value}`;\n          } else {\n            formatted += formatDataForPreview(entryOrEntries, false);\n          }\n\n          if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n            // Prevent doing a lot of unnecessary iteration...\n            break;\n          }\n        }\n\n        return `${name}(${data.size}) {${truncateForDisplay(formatted)}}`;\n      } else {\n        return `${name}(${data.size})`;\n      }\n    case 'opaque_iterator': {\n      return data[Symbol.toStringTag];\n    }\n    case 'date':\n      return data.toString();\n    case 'class_instance':\n      return data.constructor.name;\n    case 'object':\n      if (showFormattedValue) {\n        const keys = Array.from(getAllEnumerableKeys(data)).sort(alphaSortKeys);\n\n        let formatted = '';\n        for (let i = 0; i < keys.length; i++) {\n          const key = keys[i];\n          if (i > 0) {\n            formatted += ', ';\n          }\n          formatted += `${key.toString()}: ${formatDataForPreview(\n            data[key],\n            false,\n          )}`;\n          if (formatted.length > MAX_PREVIEW_STRING_LENGTH) {\n            // Prevent doing a lot of unnecessary iteration...\n            break;\n          }\n        }\n        return `{${truncateForDisplay(formatted)}}`;\n      } else {\n        return '{…}';\n      }\n    case 'boolean':\n    case 'number':\n    case 'infinity':\n    case 'nan':\n    case 'null':\n    case 'undefined':\n      return data;\n    default:\n      try {\n        return truncateForDisplay(String(data));\n      } catch (error) {\n        return 'unserializable';\n      }\n  }\n}\n\n// Basically checking that the object only has Object in its prototype chain\nexport const isPlainObject = (object: Object): boolean => {\n  const objectPrototype = Object.getPrototypeOf(object);\n  if (!objectPrototype) return true;\n\n  const objectParentPrototype = Object.getPrototypeOf(objectPrototype);\n  return !objectParentPrototype;\n};\n\nexport function backendToFrontendSerializedElementMapper(\n  element: SerializedElementBackend,\n): SerializedElementFrontend {\n  const {formattedDisplayName, hocDisplayNames, compiledWithForget} =\n    parseElementDisplayNameFromBackend(element.displayName, element.type);\n\n  return {\n    ...element,\n    displayName: formattedDisplayName,\n    hocDisplayNames,\n    compiledWithForget,\n  };\n}\n\n// This is a hacky one to just support this exact case.\nexport function normalizeUrl(url: string): string {\n  return url.replace('/./', '/');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n  getDataType,\n  getDisplayNameForReactElement,\n  getAllEnumerableKeys,\n  getInObject,\n  formatDataForPreview,\n  setInObject,\n} from 'react-devtools-shared/src/utils';\n\nimport type {\n  DehydratedData,\n  InspectedElementPath,\n} from 'react-devtools-shared/src/frontend/types';\n\nexport const meta = {\n  inspectable: (Symbol('inspectable'): symbol),\n  inspected: (Symbol('inspected'): symbol),\n  name: (Symbol('name'): symbol),\n  preview_long: (Symbol('preview_long'): symbol),\n  preview_short: (Symbol('preview_short'): symbol),\n  readonly: (Symbol('readonly'): symbol),\n  size: (Symbol('size'): symbol),\n  type: (Symbol('type'): symbol),\n  unserializable: (Symbol('unserializable'): symbol),\n};\n\nexport type Dehydrated = {\n  inspectable: boolean,\n  name: string | null,\n  preview_long: string | null,\n  preview_short: string | null,\n  readonly?: boolean,\n  size?: number,\n  type: string,\n};\n\n// Typed arrays and other complex iteratable objects (e.g. Map, Set, ImmutableJS) need special handling.\n// These objects can't be serialized without losing type information,\n// so a \"Unserializable\" type wrapper is used (with meta-data keys) to send nested values-\n// while preserving the original type and name.\nexport type Unserializable = {\n  name: string | null,\n  preview_long: string | null,\n  preview_short: string | null,\n  readonly?: boolean,\n  size?: number,\n  type: string,\n  unserializable: boolean,\n  [string | number]: any,\n};\n\n// This threshold determines the depth at which the bridge \"dehydrates\" nested data.\n// Dehydration means that we don't serialize the data for e.g. postMessage or stringify,\n// unless the frontend explicitly requests it (e.g. a user clicks to expand a props object).\n//\n// Reducing this threshold will improve the speed of initial component inspection,\n// but may decrease the responsiveness of expanding objects/arrays to inspect further.\nconst LEVEL_THRESHOLD = 2;\n\n/**\n * Generate the dehydrated metadata for complex object instances\n */\nfunction createDehydrated(\n  type: string,\n  inspectable: boolean,\n  data: Object,\n  cleaned: Array<Array<string | number>>,\n  path: Array<string | number>,\n): Dehydrated {\n  cleaned.push(path);\n\n  const dehydrated: Dehydrated = {\n    inspectable,\n    type,\n    preview_long: formatDataForPreview(data, true),\n    preview_short: formatDataForPreview(data, false),\n    name:\n      typeof data.constructor !== 'function' ||\n      typeof data.constructor.name !== 'string' ||\n      data.constructor.name === 'Object'\n        ? ''\n        : data.constructor.name,\n  };\n\n  if (type === 'array' || type === 'typed_array') {\n    dehydrated.size = data.length;\n  } else if (type === 'object') {\n    dehydrated.size = Object.keys(data).length;\n  }\n\n  if (type === 'iterator' || type === 'typed_array') {\n    dehydrated.readonly = true;\n  }\n\n  return dehydrated;\n}\n\n/**\n * Strip out complex data (instances, functions, and data nested > LEVEL_THRESHOLD levels deep).\n * The paths of the stripped out objects are appended to the `cleaned` list.\n * On the other side of the barrier, the cleaned list is used to \"re-hydrate\" the cleaned representation into\n * an object with symbols as attributes, so that a sanitized object can be distinguished from a normal object.\n *\n * Input: {\"some\": {\"attr\": fn()}, \"other\": AnInstance}\n * Output: {\n *   \"some\": {\n *     \"attr\": {\"name\": the fn.name, type: \"function\"}\n *   },\n *   \"other\": {\n *     \"name\": \"AnInstance\",\n *     \"type\": \"object\",\n *   },\n * }\n * and cleaned = [[\"some\", \"attr\"], [\"other\"]]\n */\nexport function dehydrate(\n  data: Object,\n  cleaned: Array<Array<string | number>>,\n  unserializable: Array<Array<string | number>>,\n  path: Array<string | number>,\n  isPathAllowed: (path: Array<string | number>) => boolean,\n  level: number = 0,\n): $PropertyType<DehydratedData, 'data'> {\n  const type = getDataType(data);\n\n  let isPathAllowedCheck;\n\n  switch (type) {\n    case 'html_element':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: data.tagName,\n        type,\n      };\n\n    case 'function':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name:\n          typeof data.name === 'function' || !data.name\n            ? 'function'\n            : data.name,\n        type,\n      };\n\n    case 'string':\n      isPathAllowedCheck = isPathAllowed(path);\n      if (isPathAllowedCheck) {\n        return data;\n      } else {\n        return data.length <= 500 ? data : data.slice(0, 500) + '...';\n      }\n\n    case 'bigint':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: data.toString(),\n        type,\n      };\n\n    case 'symbol':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: data.toString(),\n        type,\n      };\n\n    // React Elements aren't very inspector-friendly,\n    // and often contain private fields or circular references.\n    case 'react_element':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: getDisplayNameForReactElement(data) || 'Unknown',\n        type,\n      };\n\n    // ArrayBuffers error if you try to inspect them.\n    case 'array_buffer':\n    case 'data_view':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: type === 'data_view' ? 'DataView' : 'ArrayBuffer',\n        size: data.byteLength,\n        type,\n      };\n\n    case 'array':\n      isPathAllowedCheck = isPathAllowed(path);\n      if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n        return createDehydrated(type, true, data, cleaned, path);\n      }\n      return data.map((item, i) =>\n        dehydrate(\n          item,\n          cleaned,\n          unserializable,\n          path.concat([i]),\n          isPathAllowed,\n          isPathAllowedCheck ? 1 : level + 1,\n        ),\n      );\n\n    case 'html_all_collection':\n    case 'typed_array':\n    case 'iterator':\n      isPathAllowedCheck = isPathAllowed(path);\n      if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n        return createDehydrated(type, true, data, cleaned, path);\n      } else {\n        const unserializableValue: Unserializable = {\n          unserializable: true,\n          type: type,\n          readonly: true,\n          size: type === 'typed_array' ? data.length : undefined,\n          preview_short: formatDataForPreview(data, false),\n          preview_long: formatDataForPreview(data, true),\n          name:\n            typeof data.constructor !== 'function' ||\n            typeof data.constructor.name !== 'string' ||\n            data.constructor.name === 'Object'\n              ? ''\n              : data.constructor.name,\n        };\n\n        // TRICKY\n        // Don't use [...spread] syntax for this purpose.\n        // This project uses @babel/plugin-transform-spread in \"loose\" mode which only works with Array values.\n        // Other types (e.g. typed arrays, Sets) will not spread correctly.\n        Array.from(data).forEach(\n          (item, i) =>\n            (unserializableValue[i] = dehydrate(\n              item,\n              cleaned,\n              unserializable,\n              path.concat([i]),\n              isPathAllowed,\n              isPathAllowedCheck ? 1 : level + 1,\n            )),\n        );\n\n        unserializable.push(path);\n\n        return unserializableValue;\n      }\n\n    case 'opaque_iterator':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: data[Symbol.toStringTag],\n        type,\n      };\n\n    case 'date':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: data.toString(),\n        type,\n      };\n\n    case 'regexp':\n      cleaned.push(path);\n      return {\n        inspectable: false,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name: data.toString(),\n        type,\n      };\n\n    case 'object':\n      isPathAllowedCheck = isPathAllowed(path);\n\n      if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n        return createDehydrated(type, true, data, cleaned, path);\n      } else {\n        const object: {\n          [string]: $PropertyType<DehydratedData, 'data'>,\n        } = {};\n        getAllEnumerableKeys(data).forEach(key => {\n          const name = key.toString();\n          object[name] = dehydrate(\n            data[key],\n            cleaned,\n            unserializable,\n            path.concat([name]),\n            isPathAllowed,\n            isPathAllowedCheck ? 1 : level + 1,\n          );\n        });\n        return object;\n      }\n\n    case 'class_instance':\n      isPathAllowedCheck = isPathAllowed(path);\n\n      if (level >= LEVEL_THRESHOLD && !isPathAllowedCheck) {\n        return createDehydrated(type, true, data, cleaned, path);\n      }\n\n      const value: Unserializable = {\n        unserializable: true,\n        type,\n        readonly: true,\n        preview_short: formatDataForPreview(data, false),\n        preview_long: formatDataForPreview(data, true),\n        name:\n          typeof data.constructor !== 'function' ||\n          typeof data.constructor.name !== 'string'\n            ? ''\n            : data.constructor.name,\n      };\n\n      getAllEnumerableKeys(data).forEach(key => {\n        const keyAsString = key.toString();\n\n        value[keyAsString] = dehydrate(\n          data[key],\n          cleaned,\n          unserializable,\n          path.concat([keyAsString]),\n          isPathAllowed,\n          isPathAllowedCheck ? 1 : level + 1,\n        );\n      });\n\n      unserializable.push(path);\n\n      return value;\n\n    case 'infinity':\n    case 'nan':\n    case 'undefined':\n      // Some values are lossy when sent through a WebSocket.\n      // We dehydrate+rehydrate them to preserve their type.\n      cleaned.push(path);\n      return {type};\n\n    default:\n      return data;\n  }\n}\n\nexport function fillInPath(\n  object: Object,\n  data: DehydratedData,\n  path: InspectedElementPath,\n  value: any,\n) {\n  const target = getInObject(object, path);\n  if (target != null) {\n    if (!target[meta.unserializable]) {\n      delete target[meta.inspectable];\n      delete target[meta.inspected];\n      delete target[meta.name];\n      delete target[meta.preview_long];\n      delete target[meta.preview_short];\n      delete target[meta.readonly];\n      delete target[meta.size];\n      delete target[meta.type];\n    }\n  }\n\n  if (value !== null && data.unserializable.length > 0) {\n    const unserializablePath = data.unserializable[0];\n    let isMatch = unserializablePath.length === path.length;\n    for (let i = 0; i < path.length; i++) {\n      if (path[i] !== unserializablePath[i]) {\n        isMatch = false;\n        break;\n      }\n    }\n    if (isMatch) {\n      upgradeUnserializable(value, value);\n    }\n  }\n\n  setInObject(object, path, value);\n}\n\nexport function hydrate(\n  object: any,\n  cleaned: Array<Array<string | number>>,\n  unserializable: Array<Array<string | number>>,\n): Object {\n  cleaned.forEach((path: Array<string | number>) => {\n    const length = path.length;\n    const last = path[length - 1];\n    const parent = getInObject(object, path.slice(0, length - 1));\n    if (!parent || !parent.hasOwnProperty(last)) {\n      return;\n    }\n\n    const value = parent[last];\n\n    if (!value) {\n      return;\n    } else if (value.type === 'infinity') {\n      parent[last] = Infinity;\n    } else if (value.type === 'nan') {\n      parent[last] = NaN;\n    } else if (value.type === 'undefined') {\n      parent[last] = undefined;\n    } else {\n      // Replace the string keys with Symbols so they're non-enumerable.\n      const replaced: {[key: symbol]: boolean | string} = {};\n      replaced[meta.inspectable] = !!value.inspectable;\n      replaced[meta.inspected] = false;\n      replaced[meta.name] = value.name;\n      replaced[meta.preview_long] = value.preview_long;\n      replaced[meta.preview_short] = value.preview_short;\n      replaced[meta.size] = value.size;\n      replaced[meta.readonly] = !!value.readonly;\n      replaced[meta.type] = value.type;\n\n      parent[last] = replaced;\n    }\n  });\n  unserializable.forEach((path: Array<string | number>) => {\n    const length = path.length;\n    const last = path[length - 1];\n    const parent = getInObject(object, path.slice(0, length - 1));\n    if (!parent || !parent.hasOwnProperty(last)) {\n      return;\n    }\n\n    const node = parent[last];\n\n    const replacement = {\n      ...node,\n    };\n\n    upgradeUnserializable(replacement, node);\n\n    parent[last] = replacement;\n  });\n  return object;\n}\n\nfunction upgradeUnserializable(destination: Object, source: Object) {\n  Object.defineProperties(destination, {\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.inspected]: {\n      configurable: true,\n      enumerable: false,\n      value: !!source.inspected,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.name]: {\n      configurable: true,\n      enumerable: false,\n      value: source.name,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.preview_long]: {\n      configurable: true,\n      enumerable: false,\n      value: source.preview_long,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.preview_short]: {\n      configurable: true,\n      enumerable: false,\n      value: source.preview_short,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.size]: {\n      configurable: true,\n      enumerable: false,\n      value: source.size,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.readonly]: {\n      configurable: true,\n      enumerable: false,\n      value: !!source.readonly,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.type]: {\n      configurable: true,\n      enumerable: false,\n      value: source.type,\n    },\n    // $FlowFixMe[invalid-computed-prop]\n    [meta.unserializable]: {\n      configurable: true,\n      enumerable: false,\n      value: !!source.unserializable,\n    },\n  });\n\n  delete destination.inspected;\n  delete destination.name;\n  delete destination.preview_long;\n  delete destination.preview_short;\n  delete destination.size;\n  delete destination.readonly;\n  delete destination.type;\n  delete destination.unserializable;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\ndeclare function isArray(a: mixed): boolean %checks(Array.isArray(a));\n\nconst isArrayImpl = Array.isArray;\n\nfunction isArray(a: mixed): boolean {\n  return isArrayImpl(a);\n}\n\nexport default isArray;\n","/**\n/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {compareVersions} from 'compare-versions';\nimport {dehydrate} from '../hydration';\nimport isArray from 'shared/isArray';\n\nimport type {Source} from 'react-devtools-shared/src/shared/types';\nimport type {DehydratedData} from 'react-devtools-shared/src/frontend/types';\n\n// TODO: update this to the first React version that has a corresponding DevTools backend\nconst FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER = '999.9.9';\nexport function hasAssignedBackend(version?: string): boolean {\n  if (version == null || version === '') {\n    return false;\n  }\n  return gte(version, FIRST_DEVTOOLS_BACKEND_LOCKSTEP_VER);\n}\n\nexport function cleanForBridge(\n  data: Object | null,\n  isPathAllowed: (path: Array<string | number>) => boolean,\n  path: Array<string | number> = [],\n): DehydratedData | null {\n  if (data !== null) {\n    const cleanedPaths: Array<Array<string | number>> = [];\n    const unserializablePaths: Array<Array<string | number>> = [];\n    const cleanedData = dehydrate(\n      data,\n      cleanedPaths,\n      unserializablePaths,\n      path,\n      isPathAllowed,\n    );\n\n    return {\n      data: cleanedData,\n      cleaned: cleanedPaths,\n      unserializable: unserializablePaths,\n    };\n  } else {\n    return null;\n  }\n}\n\nexport function copyWithDelete(\n  obj: Object | Array<any>,\n  path: Array<string | number>,\n  index: number = 0,\n): Object | Array<any> {\n  const key = path[index];\n  const updated = isArray(obj) ? obj.slice() : {...obj};\n  if (index + 1 === path.length) {\n    if (isArray(updated)) {\n      updated.splice(((key: any): number), 1);\n    } else {\n      delete updated[key];\n    }\n  } else {\n    // $FlowFixMe[incompatible-use] number or string is fine here\n    updated[key] = copyWithDelete(obj[key], path, index + 1);\n  }\n  return updated;\n}\n\n// This function expects paths to be the same except for the final value.\n// e.g. ['path', 'to', 'foo'] and ['path', 'to', 'bar']\nexport function copyWithRename(\n  obj: Object | Array<any>,\n  oldPath: Array<string | number>,\n  newPath: Array<string | number>,\n  index: number = 0,\n): Object | Array<any> {\n  const oldKey = oldPath[index];\n  const updated = isArray(obj) ? obj.slice() : {...obj};\n  if (index + 1 === oldPath.length) {\n    const newKey = newPath[index];\n    // $FlowFixMe[incompatible-use] number or string is fine here\n    updated[newKey] = updated[oldKey];\n    if (isArray(updated)) {\n      updated.splice(((oldKey: any): number), 1);\n    } else {\n      delete updated[oldKey];\n    }\n  } else {\n    // $FlowFixMe[incompatible-use] number or string is fine here\n    updated[oldKey] = copyWithRename(obj[oldKey], oldPath, newPath, index + 1);\n  }\n  return updated;\n}\n\nexport function copyWithSet(\n  obj: Object | Array<any>,\n  path: Array<string | number>,\n  value: any,\n  index: number = 0,\n): Object | Array<any> {\n  if (index >= path.length) {\n    return value;\n  }\n  const key = path[index];\n  const updated = isArray(obj) ? obj.slice() : {...obj};\n  // $FlowFixMe[incompatible-use] number or string is fine here\n  updated[key] = copyWithSet(obj[key], path, value, index + 1);\n  return updated;\n}\n\nexport function getEffectDurations(root: Object): {\n  effectDuration: any | null,\n  passiveEffectDuration: any | null,\n} {\n  // Profiling durations are only available for certain builds.\n  // If available, they'll be stored on the HostRoot.\n  let effectDuration = null;\n  let passiveEffectDuration = null;\n  const hostRoot = root.current;\n  if (hostRoot != null) {\n    const stateNode = hostRoot.stateNode;\n    if (stateNode != null) {\n      effectDuration =\n        stateNode.effectDuration != null ? stateNode.effectDuration : null;\n      passiveEffectDuration =\n        stateNode.passiveEffectDuration != null\n          ? stateNode.passiveEffectDuration\n          : null;\n    }\n  }\n  return {effectDuration, passiveEffectDuration};\n}\n\nexport function serializeToString(data: any): string {\n  if (data === undefined) {\n    return 'undefined';\n  }\n\n  if (typeof data === 'function') {\n    return data.toString();\n  }\n\n  const cache = new Set<mixed>();\n  // Use a custom replacer function to protect against circular references.\n  return JSON.stringify(\n    data,\n    (key: string, value: any) => {\n      if (typeof value === 'object' && value !== null) {\n        if (cache.has(value)) {\n          return;\n        }\n        cache.add(value);\n      }\n      if (typeof value === 'bigint') {\n        return value.toString() + 'n';\n      }\n      return value;\n    },\n    2,\n  );\n}\n\n// NOTE: KEEP IN SYNC with src/hook.js\n// Formats an array of args with a style for console methods, using\n// the following algorithm:\n//     1. The first param is a string that contains %c\n//          - Bail out and return the args without modifying the styles.\n//            We don't want to affect styles that the developer deliberately set.\n//     2. The first param is a string that doesn't contain %c but contains\n//        string formatting\n//          - [`%c${args[0]}`, style, ...args.slice(1)]\n//          - Note: we assume that the string formatting that the developer uses\n//            is correct.\n//     3. The first param is a string that doesn't contain string formatting\n//        OR is not a string\n//          - Create a formatting string where:\n//                 boolean, string, symbol -> %s\n//                 number -> %f OR %i depending on if it's an int or float\n//                 default -> %o\nexport function formatWithStyles(\n  inputArgs: $ReadOnlyArray<any>,\n  style?: string,\n): $ReadOnlyArray<any> {\n  if (\n    inputArgs === undefined ||\n    inputArgs === null ||\n    inputArgs.length === 0 ||\n    // Matches any of %c but not %%c\n    (typeof inputArgs[0] === 'string' && inputArgs[0].match(/([^%]|^)(%c)/g)) ||\n    style === undefined\n  ) {\n    return inputArgs;\n  }\n\n  // Matches any of %(o|O|d|i|s|f), but not %%(o|O|d|i|s|f)\n  const REGEXP = /([^%]|^)((%%)*)(%([oOdisf]))/g;\n  if (typeof inputArgs[0] === 'string' && inputArgs[0].match(REGEXP)) {\n    return [`%c${inputArgs[0]}`, style, ...inputArgs.slice(1)];\n  } else {\n    const firstArg = inputArgs.reduce((formatStr, elem, i) => {\n      if (i > 0) {\n        formatStr += ' ';\n      }\n      switch (typeof elem) {\n        case 'string':\n        case 'boolean':\n        case 'symbol':\n          return (formatStr += '%s');\n        case 'number':\n          const formatting = Number.isInteger(elem) ? '%i' : '%f';\n          return (formatStr += formatting);\n        default:\n          return (formatStr += '%o');\n      }\n    }, '%c');\n    return [firstArg, style, ...inputArgs];\n  }\n}\n\n// NOTE: KEEP IN SYNC with src/hook.js\n// Skips CSS and object arguments, inlines other in the first argument as a template string\nexport function formatConsoleArguments(\n  maybeMessage: any,\n  ...inputArgs: $ReadOnlyArray<any>\n): $ReadOnlyArray<any> {\n  if (inputArgs.length === 0 || typeof maybeMessage !== 'string') {\n    return [maybeMessage, ...inputArgs];\n  }\n\n  const args = inputArgs.slice();\n\n  let template = '';\n  let argumentsPointer = 0;\n  for (let i = 0; i < maybeMessage.length; ++i) {\n    const currentChar = maybeMessage[i];\n    if (currentChar !== '%') {\n      template += currentChar;\n      continue;\n    }\n\n    const nextChar = maybeMessage[i + 1];\n    ++i;\n\n    // Only keep CSS and objects, inline other arguments\n    switch (nextChar) {\n      case 'c':\n      case 'O':\n      case 'o': {\n        ++argumentsPointer;\n        template += `%${nextChar}`;\n\n        break;\n      }\n      case 'd':\n      case 'i': {\n        const [arg] = args.splice(argumentsPointer, 1);\n        template += parseInt(arg, 10).toString();\n\n        break;\n      }\n      case 'f': {\n        const [arg] = args.splice(argumentsPointer, 1);\n        template += parseFloat(arg).toString();\n\n        break;\n      }\n      case 's': {\n        const [arg] = args.splice(argumentsPointer, 1);\n        template += arg.toString();\n\n        break;\n      }\n\n      default:\n        template += `%${nextChar}`;\n    }\n  }\n\n  return [template, ...args];\n}\n\n// based on https://github.com/tmpfs/format-util/blob/0e62d430efb0a1c51448709abd3e2406c14d8401/format.js#L1\n// based on https://developer.mozilla.org/en-US/docs/Web/API/console#Using_string_substitutions\n// Implements s, d, i and f placeholders\nexport function formatConsoleArgumentsToSingleString(\n  maybeMessage: any,\n  ...inputArgs: $ReadOnlyArray<any>\n): string {\n  const args = inputArgs.slice();\n\n  let formatted: string = String(maybeMessage);\n\n  // If the first argument is a string, check for substitutions.\n  if (typeof maybeMessage === 'string') {\n    if (args.length) {\n      const REGEXP = /(%?)(%([jds]))/g;\n\n      formatted = formatted.replace(REGEXP, (match, escaped, ptn, flag) => {\n        let arg = args.shift();\n        switch (flag) {\n          case 's':\n            arg += '';\n            break;\n          case 'd':\n          case 'i':\n            arg = parseInt(arg, 10).toString();\n            break;\n          case 'f':\n            arg = parseFloat(arg).toString();\n            break;\n        }\n        if (!escaped) {\n          return arg;\n        }\n        args.unshift(arg);\n        return match;\n      });\n    }\n  }\n\n  // Arguments that remain after formatting.\n  if (args.length) {\n    for (let i = 0; i < args.length; i++) {\n      formatted += ' ' + String(args[i]);\n    }\n  }\n\n  // Update escaped %% values.\n  formatted = formatted.replace(/%{2,2}/g, '%');\n\n  return String(formatted);\n}\n\nexport function isSynchronousXHRSupported(): boolean {\n  return !!(\n    window.document &&\n    window.document.featurePolicy &&\n    window.document.featurePolicy.allowsFeature('sync-xhr')\n  );\n}\n\nexport function gt(a: string = '', b: string = ''): boolean {\n  return compareVersions(a, b) === 1;\n}\n\nexport function gte(a: string = '', b: string = ''): boolean {\n  return compareVersions(a, b) > -1;\n}\n\nexport const isReactNativeEnvironment = (): boolean => {\n  // We've been relying on this for such a long time\n  // We should probably define the client for DevTools on the backend side and share it with the frontend\n  return window.document == null;\n};\n\nfunction extractLocation(\n  url: string,\n): null | {sourceURL: string, line?: string, column?: string} {\n  if (url.indexOf(':') === -1) {\n    return null;\n  }\n\n  // remove any parentheses from start and end\n  const withoutParentheses = url.replace(/^\\(+/, '').replace(/\\)+$/, '');\n  const locationParts = /(at )?(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(\n    withoutParentheses,\n  );\n\n  if (locationParts == null) {\n    return null;\n  }\n\n  const [, , sourceURL, line, column] = locationParts;\n  return {sourceURL, line, column};\n}\n\nconst CHROME_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\nfunction parseSourceFromChromeStack(stack: string): Source | null {\n  const frames = stack.split('\\n');\n  // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n  for (const frame of frames) {\n    const sanitizedFrame = frame.trim();\n\n    const locationInParenthesesMatch = sanitizedFrame.match(/ (\\(.+\\)$)/);\n    const possibleLocation = locationInParenthesesMatch\n      ? locationInParenthesesMatch[1]\n      : sanitizedFrame;\n\n    const location = extractLocation(possibleLocation);\n    // Continue the search until at least sourceURL is found\n    if (location == null) {\n      continue;\n    }\n\n    const {sourceURL, line = '1', column = '1'} = location;\n\n    return {\n      sourceURL,\n      line: parseInt(line, 10),\n      column: parseInt(column, 10),\n    };\n  }\n\n  return null;\n}\n\nfunction parseSourceFromFirefoxStack(stack: string): Source | null {\n  const frames = stack.split('\\n');\n  // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n  for (const frame of frames) {\n    const sanitizedFrame = frame.trim();\n    const frameWithoutFunctionName = sanitizedFrame.replace(\n      /((.*\".+\"[^@]*)?[^@]*)(?:@)/,\n      '',\n    );\n\n    const location = extractLocation(frameWithoutFunctionName);\n    // Continue the search until at least sourceURL is found\n    if (location == null) {\n      continue;\n    }\n\n    const {sourceURL, line = '1', column = '1'} = location;\n\n    return {\n      sourceURL,\n      line: parseInt(line, 10),\n      column: parseInt(column, 10),\n    };\n  }\n\n  return null;\n}\n\nexport function parseSourceFromComponentStack(\n  componentStack: string,\n): Source | null {\n  if (componentStack.match(CHROME_STACK_REGEXP)) {\n    return parseSourceFromChromeStack(componentStack);\n  }\n\n  return parseSourceFromFirefoxStack(componentStack);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport interface Rect {\n  bottom: number;\n  height: number;\n  left: number;\n  right: number;\n  top: number;\n  width: number;\n}\n\n// Get the window object for the document that a node belongs to,\n// or return null if it cannot be found (node not attached to DOM,\n// etc).\nexport function getOwnerWindow(node: HTMLElement): typeof window | null {\n  if (!node.ownerDocument) {\n    return null;\n  }\n  return node.ownerDocument.defaultView;\n}\n\n// Get the iframe containing a node, or return null if it cannot\n// be found (node not within iframe, etc).\nexport function getOwnerIframe(node: HTMLElement): HTMLElement | null {\n  const nodeWindow = getOwnerWindow(node);\n  if (nodeWindow) {\n    return nodeWindow.frameElement;\n  }\n  return null;\n}\n\n// Get a bounding client rect for a node, with an\n// offset added to compensate for its border.\nexport function getBoundingClientRectWithBorderOffset(node: HTMLElement): Rect {\n  const dimensions = getElementDimensions(node);\n  return mergeRectOffsets([\n    node.getBoundingClientRect(),\n    {\n      top: dimensions.borderTop,\n      left: dimensions.borderLeft,\n      bottom: dimensions.borderBottom,\n      right: dimensions.borderRight,\n      // This width and height won't get used by mergeRectOffsets (since this\n      // is not the first rect in the array), but we set them so that this\n      // object type checks as a ClientRect.\n      width: 0,\n      height: 0,\n    },\n  ]);\n}\n\n// Add together the top, left, bottom, and right properties of\n// each ClientRect, but keep the width and height of the first one.\nexport function mergeRectOffsets(rects: Array<Rect>): Rect {\n  return rects.reduce((previousRect, rect) => {\n    if (previousRect == null) {\n      return rect;\n    }\n\n    return {\n      top: previousRect.top + rect.top,\n      left: previousRect.left + rect.left,\n      width: previousRect.width,\n      height: previousRect.height,\n      bottom: previousRect.bottom + rect.bottom,\n      right: previousRect.right + rect.right,\n    };\n  });\n}\n\n// Calculate a boundingClientRect for a node relative to boundaryWindow,\n// taking into account any offsets caused by intermediate iframes.\nexport function getNestedBoundingClientRect(\n  node: HTMLElement,\n  boundaryWindow: typeof window,\n): Rect {\n  const ownerIframe = getOwnerIframe(node);\n  if (ownerIframe && ownerIframe !== boundaryWindow) {\n    const rects: Array<Rect | ClientRect> = [node.getBoundingClientRect()];\n    let currentIframe: null | HTMLElement = ownerIframe;\n    let onlyOneMore = false;\n    while (currentIframe) {\n      const rect = getBoundingClientRectWithBorderOffset(currentIframe);\n      rects.push(rect);\n      currentIframe = getOwnerIframe(currentIframe);\n\n      if (onlyOneMore) {\n        break;\n      }\n      // We don't want to calculate iframe offsets upwards beyond\n      // the iframe containing the boundaryWindow, but we\n      // need to calculate the offset relative to the boundaryWindow.\n      if (currentIframe && getOwnerWindow(currentIframe) === boundaryWindow) {\n        onlyOneMore = true;\n      }\n    }\n\n    return mergeRectOffsets(rects);\n  } else {\n    return node.getBoundingClientRect();\n  }\n}\n\nexport function getElementDimensions(domElement: Element): {\n  borderBottom: number,\n  borderLeft: number,\n  borderRight: number,\n  borderTop: number,\n  marginBottom: number,\n  marginLeft: number,\n  marginRight: number,\n  marginTop: number,\n  paddingBottom: number,\n  paddingLeft: number,\n  paddingRight: number,\n  paddingTop: number,\n} {\n  const calculatedStyle = window.getComputedStyle(domElement);\n  return {\n    borderLeft: parseInt(calculatedStyle.borderLeftWidth, 10),\n    borderRight: parseInt(calculatedStyle.borderRightWidth, 10),\n    borderTop: parseInt(calculatedStyle.borderTopWidth, 10),\n    borderBottom: parseInt(calculatedStyle.borderBottomWidth, 10),\n    marginLeft: parseInt(calculatedStyle.marginLeft, 10),\n    marginRight: parseInt(calculatedStyle.marginRight, 10),\n    marginTop: parseInt(calculatedStyle.marginTop, 10),\n    marginBottom: parseInt(calculatedStyle.marginBottom, 10),\n    paddingLeft: parseInt(calculatedStyle.paddingLeft, 10),\n    paddingRight: parseInt(calculatedStyle.paddingRight, 10),\n    paddingTop: parseInt(calculatedStyle.paddingTop, 10),\n    paddingBottom: parseInt(calculatedStyle.paddingBottom, 10),\n  };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {getElementDimensions, getNestedBoundingClientRect} from '../utils';\n\nimport type {Rect} from '../utils';\nimport type Agent from 'react-devtools-shared/src/backend/agent';\n\ntype Box = {top: number, left: number, width: number, height: number};\n\nconst assign = Object.assign;\n\n// Note that the Overlay components are not affected by the active Theme,\n// because they highlight elements in the main Chrome window (outside of devtools).\n// The colors below were chosen to roughly match those used by Chrome devtools.\n\nclass OverlayRect {\n  node: HTMLElement;\n  border: HTMLElement;\n  padding: HTMLElement;\n  content: HTMLElement;\n\n  constructor(doc: Document, container: HTMLElement) {\n    this.node = doc.createElement('div');\n    this.border = doc.createElement('div');\n    this.padding = doc.createElement('div');\n    this.content = doc.createElement('div');\n\n    this.border.style.borderColor = overlayStyles.border;\n    this.padding.style.borderColor = overlayStyles.padding;\n    this.content.style.backgroundColor = overlayStyles.background;\n\n    assign(this.node.style, {\n      borderColor: overlayStyles.margin,\n      pointerEvents: 'none',\n      position: 'fixed',\n    });\n\n    this.node.style.zIndex = '10000000';\n\n    this.node.appendChild(this.border);\n    this.border.appendChild(this.padding);\n    this.padding.appendChild(this.content);\n    container.appendChild(this.node);\n  }\n\n  remove() {\n    if (this.node.parentNode) {\n      this.node.parentNode.removeChild(this.node);\n    }\n  }\n\n  update(box: Rect, dims: any) {\n    boxWrap(dims, 'margin', this.node);\n    boxWrap(dims, 'border', this.border);\n    boxWrap(dims, 'padding', this.padding);\n\n    assign(this.content.style, {\n      height:\n        box.height -\n        dims.borderTop -\n        dims.borderBottom -\n        dims.paddingTop -\n        dims.paddingBottom +\n        'px',\n      width:\n        box.width -\n        dims.borderLeft -\n        dims.borderRight -\n        dims.paddingLeft -\n        dims.paddingRight +\n        'px',\n    });\n\n    assign(this.node.style, {\n      top: box.top - dims.marginTop + 'px',\n      left: box.left - dims.marginLeft + 'px',\n    });\n  }\n}\n\nclass OverlayTip {\n  tip: HTMLElement;\n  nameSpan: HTMLElement;\n  dimSpan: HTMLElement;\n\n  constructor(doc: Document, container: HTMLElement) {\n    this.tip = doc.createElement('div');\n    assign(this.tip.style, {\n      display: 'flex',\n      flexFlow: 'row nowrap',\n      backgroundColor: '#333740',\n      borderRadius: '2px',\n      fontFamily:\n        '\"SFMono-Regular\", Consolas, \"Liberation Mono\", Menlo, Courier, monospace',\n      fontWeight: 'bold',\n      padding: '3px 5px',\n      pointerEvents: 'none',\n      position: 'fixed',\n      fontSize: '12px',\n      whiteSpace: 'nowrap',\n    });\n\n    this.nameSpan = doc.createElement('span');\n    this.tip.appendChild(this.nameSpan);\n    assign(this.nameSpan.style, {\n      color: '#ee78e6',\n      borderRight: '1px solid #aaaaaa',\n      paddingRight: '0.5rem',\n      marginRight: '0.5rem',\n    });\n    this.dimSpan = doc.createElement('span');\n    this.tip.appendChild(this.dimSpan);\n    assign(this.dimSpan.style, {\n      color: '#d7d7d7',\n    });\n\n    this.tip.style.zIndex = '10000000';\n    container.appendChild(this.tip);\n  }\n\n  remove() {\n    if (this.tip.parentNode) {\n      this.tip.parentNode.removeChild(this.tip);\n    }\n  }\n\n  updateText(name: string, width: number, height: number) {\n    this.nameSpan.textContent = name;\n    this.dimSpan.textContent =\n      Math.round(width) + 'px × ' + Math.round(height) + 'px';\n  }\n\n  updatePosition(dims: Box, bounds: Box) {\n    const tipRect = this.tip.getBoundingClientRect();\n    const tipPos = findTipPos(dims, bounds, {\n      width: tipRect.width,\n      height: tipRect.height,\n    });\n    assign(this.tip.style, tipPos.style);\n  }\n}\n\nexport default class Overlay {\n  window: any;\n  tipBoundsWindow: any;\n  container: HTMLElement;\n  tip: OverlayTip;\n  rects: Array<OverlayRect>;\n  agent: Agent;\n\n  constructor(agent: Agent) {\n    // Find the root window, because overlays are positioned relative to it.\n    const currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n    this.window = currentWindow;\n\n    // When opened in shells/dev, the tooltip should be bound by the app iframe, not by the topmost window.\n    const tipBoundsWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n    this.tipBoundsWindow = tipBoundsWindow;\n\n    const doc = currentWindow.document;\n    this.container = doc.createElement('div');\n    this.container.style.zIndex = '10000000';\n\n    this.tip = new OverlayTip(doc, this.container);\n    this.rects = [];\n\n    this.agent = agent;\n\n    doc.body.appendChild(this.container);\n  }\n\n  remove() {\n    this.tip.remove();\n    this.rects.forEach(rect => {\n      rect.remove();\n    });\n    this.rects.length = 0;\n    if (this.container.parentNode) {\n      this.container.parentNode.removeChild(this.container);\n    }\n  }\n\n  inspect(nodes: Array<HTMLElement>, name?: ?string) {\n    // We can't get the size of text nodes or comment nodes. React as of v15\n    // heavily uses comment nodes to delimit text.\n    const elements = nodes.filter(node => node.nodeType === Node.ELEMENT_NODE);\n\n    while (this.rects.length > elements.length) {\n      const rect = this.rects.pop();\n      rect.remove();\n    }\n    if (elements.length === 0) {\n      return;\n    }\n\n    while (this.rects.length < elements.length) {\n      this.rects.push(new OverlayRect(this.window.document, this.container));\n    }\n\n    const outerBox = {\n      top: Number.POSITIVE_INFINITY,\n      right: Number.NEGATIVE_INFINITY,\n      bottom: Number.NEGATIVE_INFINITY,\n      left: Number.POSITIVE_INFINITY,\n    };\n    elements.forEach((element, index) => {\n      const box = getNestedBoundingClientRect(element, this.window);\n      const dims = getElementDimensions(element);\n\n      outerBox.top = Math.min(outerBox.top, box.top - dims.marginTop);\n      outerBox.right = Math.max(\n        outerBox.right,\n        box.left + box.width + dims.marginRight,\n      );\n      outerBox.bottom = Math.max(\n        outerBox.bottom,\n        box.top + box.height + dims.marginBottom,\n      );\n      outerBox.left = Math.min(outerBox.left, box.left - dims.marginLeft);\n\n      const rect = this.rects[index];\n      rect.update(box, dims);\n    });\n\n    if (!name) {\n      name = elements[0].nodeName.toLowerCase();\n\n      const node = elements[0];\n      const rendererInterface =\n        this.agent.getBestMatchingRendererInterface(node);\n      if (rendererInterface) {\n        const id = rendererInterface.getFiberIDForNative(node, true);\n        if (id) {\n          const ownerName = rendererInterface.getDisplayNameForFiberID(\n            id,\n            true,\n          );\n          if (ownerName) {\n            name += ' (in ' + ownerName + ')';\n          }\n        }\n      }\n    }\n\n    this.tip.updateText(\n      name,\n      outerBox.right - outerBox.left,\n      outerBox.bottom - outerBox.top,\n    );\n    const tipBounds = getNestedBoundingClientRect(\n      this.tipBoundsWindow.document.documentElement,\n      this.window,\n    );\n\n    this.tip.updatePosition(\n      {\n        top: outerBox.top,\n        left: outerBox.left,\n        height: outerBox.bottom - outerBox.top,\n        width: outerBox.right - outerBox.left,\n      },\n      {\n        top: tipBounds.top + this.tipBoundsWindow.scrollY,\n        left: tipBounds.left + this.tipBoundsWindow.scrollX,\n        height: this.tipBoundsWindow.innerHeight,\n        width: this.tipBoundsWindow.innerWidth,\n      },\n    );\n  }\n}\n\nfunction findTipPos(\n  dims: Box,\n  bounds: Box,\n  tipSize: {height: number, width: number},\n) {\n  const tipHeight = Math.max(tipSize.height, 20);\n  const tipWidth = Math.max(tipSize.width, 60);\n  const margin = 5;\n\n  let top: number | string;\n  if (dims.top + dims.height + tipHeight <= bounds.top + bounds.height) {\n    if (dims.top + dims.height < bounds.top + 0) {\n      top = bounds.top + margin;\n    } else {\n      top = dims.top + dims.height + margin;\n    }\n  } else if (dims.top - tipHeight <= bounds.top + bounds.height) {\n    if (dims.top - tipHeight - margin < bounds.top + margin) {\n      top = bounds.top + margin;\n    } else {\n      top = dims.top - tipHeight - margin;\n    }\n  } else {\n    top = bounds.top + bounds.height - tipHeight - margin;\n  }\n\n  let left: number | string = dims.left + margin;\n  if (dims.left < bounds.left) {\n    left = bounds.left + margin;\n  }\n  if (dims.left + tipWidth > bounds.left + bounds.width) {\n    left = bounds.left + bounds.width - tipWidth - margin;\n  }\n\n  top += 'px';\n  left += 'px';\n  return {\n    style: {top, left},\n  };\n}\n\nfunction boxWrap(dims: any, what: string, node: HTMLElement) {\n  assign(node.style, {\n    borderTopWidth: dims[what + 'Top'] + 'px',\n    borderLeftWidth: dims[what + 'Left'] + 'px',\n    borderRightWidth: dims[what + 'Right'] + 'px',\n    borderBottomWidth: dims[what + 'Bottom'] + 'px',\n    borderStyle: 'solid',\n  });\n}\n\nconst overlayStyles = {\n  background: 'rgba(120, 170, 210, 0.7)',\n  padding: 'rgba(77, 200, 0, 0.3)',\n  margin: 'rgba(255, 155, 0, 0.3)',\n  border: 'rgba(255, 200, 50, 0.3)',\n};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type Agent from 'react-devtools-shared/src/backend/agent';\n\nimport {isReactNativeEnvironment} from 'react-devtools-shared/src/backend/utils';\n\nimport Overlay from './Overlay';\n\nconst SHOW_DURATION = 2000;\n\nlet timeoutID: TimeoutID | null = null;\nlet overlay: Overlay | null = null;\n\nfunction hideOverlayNative(agent: Agent): void {\n  agent.emit('hideNativeHighlight');\n}\n\nfunction hideOverlayWeb(): void {\n  timeoutID = null;\n\n  if (overlay !== null) {\n    overlay.remove();\n    overlay = null;\n  }\n}\n\nexport function hideOverlay(agent: Agent): void {\n  return isReactNativeEnvironment()\n    ? hideOverlayNative(agent)\n    : hideOverlayWeb();\n}\n\nfunction showOverlayNative(elements: Array<HTMLElement>, agent: Agent): void {\n  agent.emit('showNativeHighlight', elements);\n}\n\nfunction showOverlayWeb(\n  elements: Array<HTMLElement>,\n  componentName: string | null,\n  agent: Agent,\n  hideAfterTimeout: boolean,\n): void {\n  if (timeoutID !== null) {\n    clearTimeout(timeoutID);\n  }\n\n  if (overlay === null) {\n    overlay = new Overlay(agent);\n  }\n\n  overlay.inspect(elements, componentName);\n\n  if (hideAfterTimeout) {\n    timeoutID = setTimeout(() => hideOverlay(agent), SHOW_DURATION);\n  }\n}\n\nexport function showOverlay(\n  elements: Array<HTMLElement>,\n  componentName: string | null,\n  agent: Agent,\n  hideAfterTimeout: boolean,\n): void {\n  return isReactNativeEnvironment()\n    ? showOverlayNative(elements, agent)\n    : showOverlayWeb(elements, componentName, agent, hideAfterTimeout);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport memoize from 'memoize-one';\nimport throttle from 'lodash.throttle';\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport {hideOverlay, showOverlay} from './Highlighter';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\n\n// This plug-in provides in-page highlighting of the selected element.\n// It is used by the browser extension and the standalone DevTools shell (when connected to a browser).\n// It is not currently the mechanism used to highlight React Native views.\n// That is done by the React Native Inspector component.\n\nlet iframesListeningTo: Set<HTMLIFrameElement> = new Set();\n\nexport default function setupHighlighter(\n  bridge: BackendBridge,\n  agent: Agent,\n): void {\n  bridge.addListener(\n    'clearNativeElementHighlight',\n    clearNativeElementHighlight,\n  );\n  bridge.addListener('highlightNativeElement', highlightNativeElement);\n  bridge.addListener('shutdown', stopInspectingNative);\n  bridge.addListener('startInspectingNative', startInspectingNative);\n  bridge.addListener('stopInspectingNative', stopInspectingNative);\n\n  function startInspectingNative() {\n    registerListenersOnWindow(window);\n  }\n\n  function registerListenersOnWindow(window: any) {\n    // This plug-in may run in non-DOM environments (e.g. React Native).\n    if (window && typeof window.addEventListener === 'function') {\n      window.addEventListener('click', onClick, true);\n      window.addEventListener('mousedown', onMouseEvent, true);\n      window.addEventListener('mouseover', onMouseEvent, true);\n      window.addEventListener('mouseup', onMouseEvent, true);\n      window.addEventListener('pointerdown', onPointerDown, true);\n      window.addEventListener('pointermove', onPointerMove, true);\n      window.addEventListener('pointerup', onPointerUp, true);\n    } else {\n      agent.emit('startInspectingNative');\n    }\n  }\n\n  function stopInspectingNative() {\n    hideOverlay(agent);\n    removeListenersOnWindow(window);\n    iframesListeningTo.forEach(function (frame) {\n      try {\n        removeListenersOnWindow(frame.contentWindow);\n      } catch (error) {\n        // This can error when the iframe is on a cross-origin.\n      }\n    });\n    iframesListeningTo = new Set();\n  }\n\n  function removeListenersOnWindow(window: any) {\n    // This plug-in may run in non-DOM environments (e.g. React Native).\n    if (window && typeof window.removeEventListener === 'function') {\n      window.removeEventListener('click', onClick, true);\n      window.removeEventListener('mousedown', onMouseEvent, true);\n      window.removeEventListener('mouseover', onMouseEvent, true);\n      window.removeEventListener('mouseup', onMouseEvent, true);\n      window.removeEventListener('pointerdown', onPointerDown, true);\n      window.removeEventListener('pointermove', onPointerMove, true);\n      window.removeEventListener('pointerup', onPointerUp, true);\n    } else {\n      agent.emit('stopInspectingNative');\n    }\n  }\n\n  function clearNativeElementHighlight() {\n    hideOverlay(agent);\n  }\n\n  function highlightNativeElement({\n    displayName,\n    hideAfterTimeout,\n    id,\n    openNativeElementsPanel,\n    rendererID,\n    scrollIntoView,\n  }: {\n    displayName: string | null,\n    hideAfterTimeout: boolean,\n    id: number,\n    openNativeElementsPanel: boolean,\n    rendererID: number,\n    scrollIntoView: boolean,\n    ...\n  }) {\n    const renderer = agent.rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n\n      hideOverlay(agent);\n      return;\n    }\n\n    // In some cases fiber may already be unmounted\n    if (!renderer.hasFiberWithId(id)) {\n      hideOverlay(agent);\n      return;\n    }\n\n    const nodes: ?Array<HTMLElement> = (renderer.findNativeNodesForFiberID(\n      id,\n    ): any);\n\n    if (nodes != null && nodes[0] != null) {\n      const node = nodes[0];\n      // $FlowFixMe[method-unbinding]\n      if (scrollIntoView && typeof node.scrollIntoView === 'function') {\n        // If the node isn't visible show it before highlighting it.\n        // We may want to reconsider this; it might be a little disruptive.\n        node.scrollIntoView({block: 'nearest', inline: 'nearest'});\n      }\n\n      showOverlay(nodes, displayName, agent, hideAfterTimeout);\n\n      if (openNativeElementsPanel) {\n        window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0 = node;\n        bridge.send('syncSelectionToNativeElementsPanel');\n      }\n    } else {\n      hideOverlay(agent);\n    }\n  }\n\n  function onClick(event: MouseEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    stopInspectingNative();\n\n    bridge.send('stopInspectingNative', true);\n  }\n\n  function onMouseEvent(event: MouseEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  function onPointerDown(event: MouseEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    selectFiberForNode(getEventTarget(event));\n  }\n\n  let lastHoveredNode: HTMLElement | null = null;\n  function onPointerMove(event: MouseEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n\n    const target: HTMLElement = getEventTarget(event);\n    if (lastHoveredNode === target) return;\n    lastHoveredNode = target;\n\n    if (target.tagName === 'IFRAME') {\n      const iframe: HTMLIFrameElement = (target: any);\n      try {\n        if (!iframesListeningTo.has(iframe)) {\n          const window = iframe.contentWindow;\n          registerListenersOnWindow(window);\n          iframesListeningTo.add(iframe);\n        }\n      } catch (error) {\n        // This can error when the iframe is on a cross-origin.\n      }\n    }\n\n    // Don't pass the name explicitly.\n    // It will be inferred from DOM tag and Fiber owner.\n    showOverlay([target], null, agent, false);\n\n    selectFiberForNode(target);\n  }\n\n  function onPointerUp(event: MouseEvent) {\n    event.preventDefault();\n    event.stopPropagation();\n  }\n\n  const selectFiberForNode = throttle(\n    memoize((node: HTMLElement) => {\n      const id = agent.getIDForNode(node);\n      if (id !== null) {\n        bridge.send('selectFiber', id);\n      }\n    }),\n    200,\n    // Don't change the selection in the very first 200ms\n    // because those are usually unintentional as you lift the cursor.\n    {leading: false},\n  );\n\n  function getEventTarget(event: MouseEvent): HTMLElement {\n    if (event.composed) {\n      return (event.composedPath()[0]: any);\n    }\n\n    return (event.target: any);\n  }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {Data} from './index';\nimport type {Rect} from '../utils';\nimport type {NativeType} from '../../types';\nimport type Agent from '../../agent';\n\nimport {isReactNativeEnvironment} from 'react-devtools-shared/src/backend/utils';\n\nconst OUTLINE_COLOR = '#f0f0f0';\n\n// Note these colors are in sync with DevTools Profiler chart colors.\nconst COLORS = [\n  '#37afa9',\n  '#63b19e',\n  '#80b393',\n  '#97b488',\n  '#abb67d',\n  '#beb771',\n  '#cfb965',\n  '#dfba57',\n  '#efbb49',\n  '#febc38',\n];\n\nlet canvas: HTMLCanvasElement | null = null;\n\nfunction drawNative(nodeToData: Map<NativeType, Data>, agent: Agent) {\n  const nodesToDraw = [];\n  iterateNodes(nodeToData, (_, color, node) => {\n    nodesToDraw.push({node, color});\n  });\n\n  agent.emit('drawTraceUpdates', nodesToDraw);\n}\n\nfunction drawWeb(nodeToData: Map<NativeType, Data>) {\n  if (canvas === null) {\n    initialize();\n  }\n\n  const canvasFlow: HTMLCanvasElement = ((canvas: any): HTMLCanvasElement);\n  canvasFlow.width = window.innerWidth;\n  canvasFlow.height = window.innerHeight;\n\n  const context = canvasFlow.getContext('2d');\n  context.clearRect(0, 0, canvasFlow.width, canvasFlow.height);\n  iterateNodes(nodeToData, (rect, color) => {\n    if (rect !== null) {\n      drawBorder(context, rect, color);\n    }\n  });\n}\n\nexport function draw(nodeToData: Map<NativeType, Data>, agent: Agent): void {\n  return isReactNativeEnvironment()\n    ? drawNative(nodeToData, agent)\n    : drawWeb(nodeToData);\n}\n\nfunction iterateNodes(\n  nodeToData: Map<NativeType, Data>,\n  execute: (rect: Rect | null, color: string, node: NativeType) => void,\n) {\n  nodeToData.forEach(({count, rect}, node) => {\n    const colorIndex = Math.min(COLORS.length - 1, count - 1);\n    const color = COLORS[colorIndex];\n    execute(rect, color, node);\n  });\n}\n\nfunction drawBorder(\n  context: CanvasRenderingContext2D,\n  rect: Rect,\n  color: string,\n): void {\n  const {height, left, top, width} = rect;\n\n  // outline\n  context.lineWidth = 1;\n  context.strokeStyle = OUTLINE_COLOR;\n\n  context.strokeRect(left - 1, top - 1, width + 2, height + 2);\n\n  // inset\n  context.lineWidth = 1;\n  context.strokeStyle = OUTLINE_COLOR;\n  context.strokeRect(left + 1, top + 1, width - 1, height - 1);\n  context.strokeStyle = color;\n\n  context.setLineDash([0]);\n\n  // border\n  context.lineWidth = 1;\n  context.strokeRect(left, top, width - 1, height - 1);\n\n  context.setLineDash([0]);\n}\n\nfunction destroyNative(agent: Agent) {\n  agent.emit('disableTraceUpdates');\n}\n\nfunction destroyWeb() {\n  if (canvas !== null) {\n    if (canvas.parentNode != null) {\n      canvas.parentNode.removeChild(canvas);\n    }\n    canvas = null;\n  }\n}\n\nexport function destroy(agent: Agent): void {\n  return isReactNativeEnvironment() ? destroyNative(agent) : destroyWeb();\n}\n\nfunction initialize(): void {\n  canvas = window.document.createElement('canvas');\n  canvas.style.cssText = `\n    xx-background-color: red;\n    xx-opacity: 0.5;\n    bottom: 0;\n    left: 0;\n    pointer-events: none;\n    position: fixed;\n    right: 0;\n    top: 0;\n    z-index: 1000000000;\n  `;\n\n  const root = window.document.documentElement;\n  root.insertBefore(canvas, root.firstChild);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport {destroy as destroyCanvas, draw} from './canvas';\nimport {getNestedBoundingClientRect} from '../utils';\n\nimport type {NativeType} from '../../types';\nimport type {Rect} from '../utils';\n\n// How long the rect should be shown for?\nconst DISPLAY_DURATION = 250;\n\n// What's the longest we are willing to show the overlay for?\n// This can be important if we're getting a flurry of events (e.g. scroll update).\nconst MAX_DISPLAY_DURATION = 3000;\n\n// How long should a rect be considered valid for?\nconst REMEASUREMENT_AFTER_DURATION = 250;\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n  // $FlowFixMe[method-unbinding]\n  typeof performance === 'object' && typeof performance.now === 'function'\n    ? () => performance.now()\n    : () => Date.now();\n\nexport type Data = {\n  count: number,\n  expirationTime: number,\n  lastMeasuredAt: number,\n  rect: Rect | null,\n};\n\nconst nodeToData: Map<NativeType, Data> = new Map();\n\nlet agent: Agent = ((null: any): Agent);\nlet drawAnimationFrameID: AnimationFrameID | null = null;\nlet isEnabled: boolean = false;\nlet redrawTimeoutID: TimeoutID | null = null;\n\nexport function initialize(injectedAgent: Agent): void {\n  agent = injectedAgent;\n  agent.addListener('traceUpdates', traceUpdates);\n}\n\nexport function toggleEnabled(value: boolean): void {\n  isEnabled = value;\n\n  if (!isEnabled) {\n    nodeToData.clear();\n\n    if (drawAnimationFrameID !== null) {\n      cancelAnimationFrame(drawAnimationFrameID);\n      drawAnimationFrameID = null;\n    }\n\n    if (redrawTimeoutID !== null) {\n      clearTimeout(redrawTimeoutID);\n      redrawTimeoutID = null;\n    }\n\n    destroyCanvas(agent);\n  }\n}\n\nfunction traceUpdates(nodes: Set<NativeType>): void {\n  if (!isEnabled) {\n    return;\n  }\n\n  nodes.forEach(node => {\n    const data = nodeToData.get(node);\n    const now = getCurrentTime();\n\n    let lastMeasuredAt = data != null ? data.lastMeasuredAt : 0;\n    let rect = data != null ? data.rect : null;\n    if (rect === null || lastMeasuredAt + REMEASUREMENT_AFTER_DURATION < now) {\n      lastMeasuredAt = now;\n      rect = measureNode(node);\n    }\n\n    nodeToData.set(node, {\n      count: data != null ? data.count + 1 : 1,\n      expirationTime:\n        data != null\n          ? Math.min(\n              now + MAX_DISPLAY_DURATION,\n              data.expirationTime + DISPLAY_DURATION,\n            )\n          : now + DISPLAY_DURATION,\n      lastMeasuredAt,\n      rect,\n    });\n  });\n\n  if (redrawTimeoutID !== null) {\n    clearTimeout(redrawTimeoutID);\n    redrawTimeoutID = null;\n  }\n\n  if (drawAnimationFrameID === null) {\n    drawAnimationFrameID = requestAnimationFrame(prepareToDraw);\n  }\n}\n\nfunction prepareToDraw(): void {\n  drawAnimationFrameID = null;\n  redrawTimeoutID = null;\n\n  const now = getCurrentTime();\n  let earliestExpiration = Number.MAX_VALUE;\n\n  // Remove any items that have already expired.\n  nodeToData.forEach((data, node) => {\n    if (data.expirationTime < now) {\n      nodeToData.delete(node);\n    } else {\n      earliestExpiration = Math.min(earliestExpiration, data.expirationTime);\n    }\n  });\n\n  draw(nodeToData, agent);\n\n  if (earliestExpiration !== Number.MAX_VALUE) {\n    redrawTimeoutID = setTimeout(prepareToDraw, earliestExpiration - now);\n  }\n}\n\nfunction measureNode(node: Object): Rect | null {\n  if (!node || typeof node.getBoundingClientRect !== 'function') {\n    return null;\n  }\n\n  const currentWindow = window.__REACT_DEVTOOLS_TARGET_WINDOW__ || window;\n\n  return getNestedBoundingClientRect(node, currentWindow);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This list should be kept updated to reflect additions to 'shared/ReactSymbols'.\n// DevTools can't import symbols from 'shared/ReactSymbols' directly for two reasons:\n// 1. DevTools requires symbols which may have been deleted in more recent versions (e.g. concurrent mode)\n// 2. DevTools must support both Symbol and numeric forms of each symbol;\n//    Since e.g. standalone DevTools runs in a separate process, it can't rely on its own ES capabilities.\n\nexport const CONCURRENT_MODE_NUMBER = 0xeacf;\nexport const CONCURRENT_MODE_SYMBOL_STRING = 'Symbol(react.concurrent_mode)';\n\nexport const CONTEXT_NUMBER = 0xeace;\nexport const CONTEXT_SYMBOL_STRING = 'Symbol(react.context)';\n\nexport const SERVER_CONTEXT_SYMBOL_STRING = 'Symbol(react.server_context)';\n\nexport const DEPRECATED_ASYNC_MODE_SYMBOL_STRING = 'Symbol(react.async_mode)';\n\nexport const ELEMENT_SYMBOL_STRING = 'Symbol(react.transitional.element)';\nexport const LEGACY_ELEMENT_NUMBER = 0xeac7;\nexport const LEGACY_ELEMENT_SYMBOL_STRING = 'Symbol(react.element)';\n\nexport const DEBUG_TRACING_MODE_NUMBER = 0xeae1;\nexport const DEBUG_TRACING_MODE_SYMBOL_STRING =\n  'Symbol(react.debug_trace_mode)';\n\nexport const FORWARD_REF_NUMBER = 0xead0;\nexport const FORWARD_REF_SYMBOL_STRING = 'Symbol(react.forward_ref)';\n\nexport const FRAGMENT_NUMBER = 0xeacb;\nexport const FRAGMENT_SYMBOL_STRING = 'Symbol(react.fragment)';\n\nexport const LAZY_NUMBER = 0xead4;\nexport const LAZY_SYMBOL_STRING = 'Symbol(react.lazy)';\n\nexport const MEMO_NUMBER = 0xead3;\nexport const MEMO_SYMBOL_STRING = 'Symbol(react.memo)';\n\nexport const PORTAL_NUMBER = 0xeaca;\nexport const PORTAL_SYMBOL_STRING = 'Symbol(react.portal)';\n\nexport const PROFILER_NUMBER = 0xead2;\nexport const PROFILER_SYMBOL_STRING = 'Symbol(react.profiler)';\n\nexport const PROVIDER_NUMBER = 0xeacd;\nexport const PROVIDER_SYMBOL_STRING = 'Symbol(react.provider)';\n\nexport const CONSUMER_SYMBOL_STRING = 'Symbol(react.consumer)';\n\nexport const SCOPE_NUMBER = 0xead7;\nexport const SCOPE_SYMBOL_STRING = 'Symbol(react.scope)';\n\nexport const STRICT_MODE_NUMBER = 0xeacc;\nexport const STRICT_MODE_SYMBOL_STRING = 'Symbol(react.strict_mode)';\n\nexport const SUSPENSE_NUMBER = 0xead1;\nexport const SUSPENSE_SYMBOL_STRING = 'Symbol(react.suspense)';\n\nexport const SUSPENSE_LIST_NUMBER = 0xead8;\nexport const SUSPENSE_LIST_SYMBOL_STRING = 'Symbol(react.suspense_list)';\n\nexport const SERVER_CONTEXT_DEFAULT_VALUE_NOT_LOADED_SYMBOL_STRING =\n  'Symbol(react.server_context.defaultValue)';\n\nexport const REACT_MEMO_CACHE_SENTINEL: symbol = Symbol.for(\n  'react.memo_cache_sentinel',\n);\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x: any, y: any) {\n  return (\n    (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare\n  );\n}\n\nconst objectIs: (x: any, y: any) => boolean =\n  // $FlowFixMe[method-unbinding]\n  typeof Object.is === 'function' ? Object.is : is;\n\nexport default objectIs;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// $FlowFixMe[method-unbinding]\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nexport default hasOwnProperty;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nexport {\n  COMFORTABLE_LINE_HEIGHT,\n  COMPACT_LINE_HEIGHT,\n} from 'react-devtools-shared/src/devtools/constants.js';\n\nexport const REACT_TOTAL_NUM_LANES = 31;\n\n// Increment this number any time a backwards breaking change is made to the profiler metadata.\nexport const SCHEDULING_PROFILER_VERSION = 1;\n\nexport const SNAPSHOT_MAX_HEIGHT = 60;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of shared/ConsolePatchingDev.\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\n\nlet disabledDepth = 0;\nlet prevLog;\nlet prevInfo;\nlet prevWarn;\nlet prevError;\nlet prevGroup;\nlet prevGroupCollapsed;\nlet prevGroupEnd;\n\nfunction disabledLog() {}\ndisabledLog.__reactDisabledLog = true;\n\nexport function disableLogs(): void {\n  if (disabledDepth === 0) {\n    prevLog = console.log;\n    prevInfo = console.info;\n    prevWarn = console.warn;\n    prevError = console.error;\n    prevGroup = console.group;\n    prevGroupCollapsed = console.groupCollapsed;\n    prevGroupEnd = console.groupEnd;\n    // https://github.com/facebook/react/issues/19099\n    const props = {\n      configurable: true,\n      enumerable: true,\n      value: disabledLog,\n      writable: true,\n    };\n    // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n    Object.defineProperties(console, {\n      info: props,\n      log: props,\n      warn: props,\n      error: props,\n      group: props,\n      groupCollapsed: props,\n      groupEnd: props,\n    });\n    /* eslint-enable react-internal/no-production-logging */\n  }\n  disabledDepth++;\n}\n\nexport function reenableLogs(): void {\n  disabledDepth--;\n  if (disabledDepth === 0) {\n    const props = {\n      configurable: true,\n      enumerable: true,\n      writable: true,\n    };\n    // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n    Object.defineProperties(console, {\n      log: {...props, value: prevLog},\n      info: {...props, value: prevInfo},\n      warn: {...props, value: prevWarn},\n      error: {...props, value: prevError},\n      group: {...props, value: prevGroup},\n      groupCollapsed: {...props, value: prevGroupCollapsed},\n      groupEnd: {...props, value: prevGroupEnd},\n    });\n    /* eslint-enable react-internal/no-production-logging */\n  }\n  if (disabledDepth < 0) {\n    console.error(\n      'disabledDepth fell below zero. ' +\n        'This is a bug in React. Please file an issue.',\n    );\n  }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of ReactComponentStackFrame.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\nimport type {CurrentDispatcherRef} from './types';\n\n// The shared console patching code is DEV-only.\n// We can't use it since DevTools only ships production builds.\nimport {disableLogs, reenableLogs} from './DevToolsConsolePatching';\n\nlet prefix;\nexport function describeBuiltInComponentFrame(name: string): string {\n  if (prefix === undefined) {\n    // Extract the VM specific prefix used by each line.\n    try {\n      throw Error();\n    } catch (x) {\n      const match = x.stack.trim().match(/\\n( *(at )?)/);\n      prefix = (match && match[1]) || '';\n    }\n  }\n  let suffix = '';\n  if (__IS_CHROME__ || __IS_EDGE__ || __IS_NATIVE__) {\n    suffix = ' (<anonymous>)';\n  } else if (__IS_FIREFOX__) {\n    suffix = '@unknown:0:0';\n  }\n  // We use the prefix to ensure our stacks line up with native stack frames.\n  // We use a suffix to ensure it gets parsed natively.\n  return '\\n' + prefix + name + suffix;\n}\n\nexport function describeDebugInfoFrame(name: string, env: ?string): string {\n  return describeBuiltInComponentFrame(name + (env ? ' [' + env + ']' : ''));\n}\n\nlet reentry = false;\nlet componentFrameCache;\nif (__DEV__) {\n  const PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap<$FlowFixMe, string>();\n}\n\nexport function describeNativeComponentFrame(\n  fn: Function,\n  construct: boolean,\n  currentDispatcherRef: CurrentDispatcherRef,\n): string {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if (!fn || reentry) {\n    return '';\n  }\n\n  if (__DEV__) {\n    const frame = componentFrameCache.get(fn);\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  const previousPrepareStackTrace = Error.prepareStackTrace;\n  // $FlowFixMe[incompatible-type] It does accept undefined.\n  Error.prepareStackTrace = undefined;\n\n  reentry = true;\n\n  // Override the dispatcher so effects scheduled by this shallow render are thrown away.\n  //\n  // Note that unlike the code this was forked from (in ReactComponentStackFrame)\n  // DevTools should override the dispatcher even when DevTools is compiled in production mode,\n  // because the app itself may be in development mode and log errors/warnings.\n  const previousDispatcher = currentDispatcherRef.H;\n  currentDispatcherRef.H = null;\n  disableLogs();\n\n  // NOTE: keep in sync with the implementation in ReactComponentStackFrame\n\n  /**\n   * Finding a common stack frame between sample and control errors can be\n   * tricky given the different types and levels of stack trace truncation from\n   * different JS VMs. So instead we'll attempt to control what that common\n   * frame should be through this object method:\n   * Having both the sample and control errors be in the function under the\n   * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n   * `displayName` properties of the function ensures that a stack\n   * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n   * it for both control and sample stacks.\n   */\n  const RunInRootFrame = {\n    DetermineComponentFrameRoot(): [?string, ?string] {\n      let control;\n      try {\n        // This should throw.\n        if (construct) {\n          // Something should be setting the props in the constructor.\n          const Fake = function () {\n            throw Error();\n          };\n          // $FlowFixMe[prop-missing]\n          Object.defineProperty(Fake.prototype, 'props', {\n            set: function () {\n              // We use a throwing setter instead of frozen or non-writable props\n              // because that won't throw in a non-strict mode function.\n              throw Error();\n            },\n          });\n          if (typeof Reflect === 'object' && Reflect.construct) {\n            // We construct a different control for this case to include any extra\n            // frames added by the construct call.\n            try {\n              Reflect.construct(Fake, []);\n            } catch (x) {\n              control = x;\n            }\n            Reflect.construct(fn, [], Fake);\n          } else {\n            try {\n              Fake.call();\n            } catch (x) {\n              control = x;\n            }\n            // $FlowFixMe[prop-missing] found when upgrading Flow\n            fn.call(Fake.prototype);\n          }\n        } else {\n          try {\n            throw Error();\n          } catch (x) {\n            control = x;\n          }\n          // TODO(luna): This will currently only throw if the function component\n          // tries to access React/ReactDOM/props. We should probably make this throw\n          // in simple components too\n          const maybePromise = fn();\n\n          // If the function component returns a promise, it's likely an async\n          // component, which we don't yet support. Attach a noop catch handler to\n          // silence the error.\n          // TODO: Implement component stacks for async client components?\n          if (maybePromise && typeof maybePromise.catch === 'function') {\n            maybePromise.catch(() => {});\n          }\n        }\n      } catch (sample) {\n        // This is inlined manually because closure doesn't do it for us.\n        if (sample && control && typeof sample.stack === 'string') {\n          return [sample.stack, control.stack];\n        }\n      }\n      return [null, null];\n    },\n  };\n  // $FlowFixMe[prop-missing]\n  RunInRootFrame.DetermineComponentFrameRoot.displayName =\n    'DetermineComponentFrameRoot';\n  const namePropDescriptor = Object.getOwnPropertyDescriptor(\n    RunInRootFrame.DetermineComponentFrameRoot,\n    'name',\n  );\n  // Before ES6, the `name` property was not configurable.\n  if (namePropDescriptor && namePropDescriptor.configurable) {\n    // V8 utilizes a function's `name` property when generating a stack trace.\n    Object.defineProperty(\n      RunInRootFrame.DetermineComponentFrameRoot,\n      // Configurable properties can be updated even if its writable descriptor\n      // is set to `false`.\n      // $FlowFixMe[cannot-write]\n      'name',\n      {value: 'DetermineComponentFrameRoot'},\n    );\n  }\n\n  try {\n    const [sampleStack, controlStack] =\n      RunInRootFrame.DetermineComponentFrameRoot();\n    if (sampleStack && controlStack) {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      const sampleLines = sampleStack.split('\\n');\n      const controlLines = controlStack.split('\\n');\n      let s = 0;\n      let c = 0;\n      while (\n        s < sampleLines.length &&\n        !sampleLines[s].includes('DetermineComponentFrameRoot')\n      ) {\n        s++;\n      }\n      while (\n        c < controlLines.length &&\n        !controlLines[c].includes('DetermineComponentFrameRoot')\n      ) {\n        c++;\n      }\n      // We couldn't find our intentionally injected common root frame, attempt\n      // to find another common root frame by search from the bottom of the\n      // control stack...\n      if (s === sampleLines.length || c === controlLines.length) {\n        s = sampleLines.length - 1;\n        c = controlLines.length - 1;\n        while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n          // We expect at least one stack frame to be shared.\n          // Typically this will be the root most one. However, stack frames may be\n          // cut off due to maximum stack limits. In this case, one maybe cut off\n          // earlier than the other. We assume that the sample is longer or the same\n          // and there for cut off earlier. So we should find the root most frame in\n          // the sample somewhere in the control.\n          c--;\n        }\n      }\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--;\n              // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                let frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n                // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n                if (fn.displayName && frame.includes('<anonymous>')) {\n                  frame = frame.replace('<anonymous>', fn.displayName);\n                }\n\n                if (__DEV__) {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, frame);\n                  }\n                }\n                // Return the line we found.\n                return frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n\n    currentDispatcherRef.H = previousDispatcher;\n    reenableLogs();\n  }\n  // Fallback to just using the name if we couldn't make it throw.\n  const name = fn ? fn.displayName || fn.name : '';\n  const syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n  if (__DEV__) {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n  return syntheticFrame;\n}\n\nexport function describeClassComponentFrame(\n  ctor: Function,\n  currentDispatcherRef: CurrentDispatcherRef,\n): string {\n  return describeNativeComponentFrame(ctor, true, currentDispatcherRef);\n}\n\nexport function describeFunctionComponentFrame(\n  fn: Function,\n  currentDispatcherRef: CurrentDispatcherRef,\n): string {\n  return describeNativeComponentFrame(fn, false, currentDispatcherRef);\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\n// This is a DevTools fork of ReactFiberComponentStack.\n// This fork enables DevTools to use the same \"native\" component stack format,\n// while still maintaining support for multiple renderer versions\n// (which use different values for ReactTypeOfWork).\n\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {CurrentDispatcherRef, WorkTagMap} from './types';\n\nimport {\n  describeBuiltInComponentFrame,\n  describeFunctionComponentFrame,\n  describeClassComponentFrame,\n  describeDebugInfoFrame,\n} from './DevToolsComponentStackFrame';\n\nexport function describeFiber(\n  workTagMap: WorkTagMap,\n  workInProgress: Fiber,\n  currentDispatcherRef: CurrentDispatcherRef,\n): string {\n  const {\n    HostHoistable,\n    HostSingleton,\n    HostComponent,\n    LazyComponent,\n    SuspenseComponent,\n    SuspenseListComponent,\n    FunctionComponent,\n    IndeterminateComponent,\n    SimpleMemoComponent,\n    ForwardRef,\n    ClassComponent,\n  } = workTagMap;\n\n  switch (workInProgress.tag) {\n    case HostHoistable:\n    case HostSingleton:\n    case HostComponent:\n      return describeBuiltInComponentFrame(workInProgress.type);\n    case LazyComponent:\n      return describeBuiltInComponentFrame('Lazy');\n    case SuspenseComponent:\n      return describeBuiltInComponentFrame('Suspense');\n    case SuspenseListComponent:\n      return describeBuiltInComponentFrame('SuspenseList');\n    case FunctionComponent:\n    case IndeterminateComponent:\n    case SimpleMemoComponent:\n      return describeFunctionComponentFrame(\n        workInProgress.type,\n        currentDispatcherRef,\n      );\n    case ForwardRef:\n      return describeFunctionComponentFrame(\n        workInProgress.type.render,\n        currentDispatcherRef,\n      );\n    case ClassComponent:\n      return describeClassComponentFrame(\n        workInProgress.type,\n        currentDispatcherRef,\n      );\n    default:\n      return '';\n  }\n}\n\nexport function getStackByFiberInDevAndProd(\n  workTagMap: WorkTagMap,\n  workInProgress: Fiber,\n  currentDispatcherRef: CurrentDispatcherRef,\n): string {\n  try {\n    let info = '';\n    let node: Fiber = workInProgress;\n    do {\n      info += describeFiber(workTagMap, node, currentDispatcherRef);\n      // Add any Server Component stack frames in reverse order.\n      const debugInfo = node._debugInfo;\n      if (debugInfo) {\n        for (let i = debugInfo.length - 1; i >= 0; i--) {\n          const entry = debugInfo[i];\n          if (typeof entry.name === 'string') {\n            info += describeDebugInfoFrame(entry.name, entry.env);\n          }\n        }\n      }\n      // $FlowFixMe[incompatible-type] we bail out when we get a null\n      node = node.return;\n    } while (node);\n    return info;\n  } catch (x) {\n    return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n  }\n}\n\nexport function supportsNativeConsoleTasks(fiber: Fiber): boolean {\n  // If this Fiber supports native console.createTask then we are already running\n  // inside a native async stack trace if it's active - meaning the DevTools is open.\n  // Ideally we'd detect if this task was created while the DevTools was open or not.\n  return !!fiber._debugTask;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {\n  Lane,\n  Lanes,\n  DevToolsProfilingHooks,\n  WorkTagMap,\n  CurrentDispatcherRef,\n} from 'react-devtools-shared/src/backend/types';\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {Wakeable} from 'shared/ReactTypes';\nimport type {\n  BatchUID,\n  InternalModuleSourceToRanges,\n  LaneToLabelMap,\n  ReactComponentMeasure,\n  ReactLane,\n  ReactMeasure,\n  ReactMeasureType,\n  ReactScheduleStateUpdateEvent,\n  SchedulingEvent,\n  SuspenseEvent,\n  TimelineData,\n} from 'react-devtools-timeline/src/types';\n\nimport isArray from 'shared/isArray';\nimport {\n  REACT_TOTAL_NUM_LANES,\n  SCHEDULING_PROFILER_VERSION,\n} from 'react-devtools-timeline/src/constants';\nimport {describeFiber} from './DevToolsFiberComponentStack';\n\n// Add padding to the start/stop time of the profile.\n// This makes the UI nicer to use.\nconst TIME_OFFSET = 10;\n\nlet performanceTarget: Performance | null = null;\n\n// If performance exists and supports the subset of the User Timing API that we require.\nlet supportsUserTiming =\n  typeof performance !== 'undefined' &&\n  // $FlowFixMe[method-unbinding]\n  typeof performance.mark === 'function' &&\n  // $FlowFixMe[method-unbinding]\n  typeof performance.clearMarks === 'function';\n\nlet supportsUserTimingV3 = false;\nif (supportsUserTiming) {\n  const CHECK_V3_MARK = '__v3';\n  const markOptions: {\n    detail?: mixed,\n    startTime?: number,\n  } = {};\n  Object.defineProperty(markOptions, 'startTime', {\n    get: function () {\n      supportsUserTimingV3 = true;\n      return 0;\n    },\n    set: function () {},\n  });\n\n  try {\n    performance.mark(CHECK_V3_MARK, markOptions);\n  } catch (error) {\n    // Ignore\n  } finally {\n    performance.clearMarks(CHECK_V3_MARK);\n  }\n}\n\nif (supportsUserTimingV3) {\n  performanceTarget = performance;\n}\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n  // $FlowFixMe[method-unbinding]\n  typeof performance === 'object' && typeof performance.now === 'function'\n    ? () => performance.now()\n    : () => Date.now();\n\n// Mocking the Performance Object (and User Timing APIs) for testing is fragile.\n// This API allows tests to directly override the User Timing APIs.\nexport function setPerformanceMock_ONLY_FOR_TESTING(\n  performanceMock: Performance | null,\n) {\n  performanceTarget = performanceMock;\n  supportsUserTiming = performanceMock !== null;\n  supportsUserTimingV3 = performanceMock !== null;\n}\n\nexport type GetTimelineData = () => TimelineData | null;\nexport type ToggleProfilingStatus = (value: boolean) => void;\n\ntype Response = {\n  getTimelineData: GetTimelineData,\n  profilingHooks: DevToolsProfilingHooks,\n  toggleProfilingStatus: ToggleProfilingStatus,\n};\n\nexport function createProfilingHooks({\n  getDisplayNameForFiber,\n  getIsProfiling,\n  getLaneLabelMap,\n  workTagMap,\n  currentDispatcherRef,\n  reactVersion,\n}: {\n  getDisplayNameForFiber: (fiber: Fiber) => string | null,\n  getIsProfiling: () => boolean,\n  getLaneLabelMap?: () => Map<Lane, string> | null,\n  currentDispatcherRef?: CurrentDispatcherRef,\n  workTagMap: WorkTagMap,\n  reactVersion: string,\n}): Response {\n  let currentBatchUID: BatchUID = 0;\n  let currentReactComponentMeasure: ReactComponentMeasure | null = null;\n  let currentReactMeasuresStack: Array<ReactMeasure> = [];\n  let currentTimelineData: TimelineData | null = null;\n  let currentFiberStacks: Map<SchedulingEvent, Array<Fiber>> = new Map();\n  let isProfiling: boolean = false;\n  let nextRenderShouldStartNewBatch: boolean = false;\n\n  function getRelativeTime() {\n    const currentTime = getCurrentTime();\n\n    if (currentTimelineData) {\n      if (currentTimelineData.startTime === 0) {\n        currentTimelineData.startTime = currentTime - TIME_OFFSET;\n      }\n\n      return currentTime - currentTimelineData.startTime;\n    }\n\n    return 0;\n  }\n\n  function getInternalModuleRanges() {\n    /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n    if (\n      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n      typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges ===\n        'function'\n    ) {\n      // Ask the DevTools hook for module ranges that may have been reported by the current renderer(s).\n      // Don't do this eagerly like the laneToLabelMap,\n      // because some modules might not yet have registered their boundaries when the renderer is injected.\n      const ranges = __REACT_DEVTOOLS_GLOBAL_HOOK__.getInternalModuleRanges();\n\n      // This check would not be required,\n      // except that it's possible for things to override __REACT_DEVTOOLS_GLOBAL_HOOK__.\n      if (isArray(ranges)) {\n        return ranges;\n      }\n    }\n\n    return null;\n  }\n\n  function getTimelineData(): TimelineData | null {\n    return currentTimelineData;\n  }\n\n  function laneToLanesArray(lanes: Lane) {\n    const lanesArray = [];\n\n    let lane = 1;\n    for (let index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n      if (lane & lanes) {\n        lanesArray.push(lane);\n      }\n      lane *= 2;\n    }\n\n    return lanesArray;\n  }\n\n  const laneToLabelMap: LaneToLabelMap | null =\n    typeof getLaneLabelMap === 'function' ? getLaneLabelMap() : null;\n\n  function markMetadata() {\n    markAndClear(`--react-version-${reactVersion}`);\n    markAndClear(`--profiler-version-${SCHEDULING_PROFILER_VERSION}`);\n\n    const ranges = getInternalModuleRanges();\n    if (ranges) {\n      for (let i = 0; i < ranges.length; i++) {\n        const range = ranges[i];\n        if (isArray(range) && range.length === 2) {\n          const [startStackFrame, stopStackFrame] = ranges[i];\n\n          markAndClear(`--react-internal-module-start-${startStackFrame}`);\n          markAndClear(`--react-internal-module-stop-${stopStackFrame}`);\n        }\n      }\n    }\n\n    if (laneToLabelMap != null) {\n      const labels = Array.from(laneToLabelMap.values()).join(',');\n      markAndClear(`--react-lane-labels-${labels}`);\n    }\n  }\n\n  function markAndClear(markName: string) {\n    // This method won't be called unless these functions are defined, so we can skip the extra typeof check.\n    ((performanceTarget: any): Performance).mark(markName);\n    ((performanceTarget: any): Performance).clearMarks(markName);\n  }\n\n  function recordReactMeasureStarted(\n    type: ReactMeasureType,\n    lanes: Lanes,\n  ): void {\n    // Decide what depth thi work should be rendered at, based on what's on the top of the stack.\n    // It's okay to render over top of \"idle\" work but everything else should be on its own row.\n    let depth = 0;\n    if (currentReactMeasuresStack.length > 0) {\n      const top =\n        currentReactMeasuresStack[currentReactMeasuresStack.length - 1];\n      depth = top.type === 'render-idle' ? top.depth : top.depth + 1;\n    }\n\n    const lanesArray = laneToLanesArray(lanes);\n\n    const reactMeasure: ReactMeasure = {\n      type,\n      batchUID: currentBatchUID,\n      depth,\n      lanes: lanesArray,\n      timestamp: getRelativeTime(),\n      duration: 0,\n    };\n\n    currentReactMeasuresStack.push(reactMeasure);\n\n    if (currentTimelineData) {\n      const {batchUIDToMeasuresMap, laneToReactMeasureMap} =\n        currentTimelineData;\n\n      let reactMeasures = batchUIDToMeasuresMap.get(currentBatchUID);\n      if (reactMeasures != null) {\n        reactMeasures.push(reactMeasure);\n      } else {\n        batchUIDToMeasuresMap.set(currentBatchUID, [reactMeasure]);\n      }\n\n      lanesArray.forEach(lane => {\n        reactMeasures = laneToReactMeasureMap.get(lane);\n        if (reactMeasures) {\n          reactMeasures.push(reactMeasure);\n        }\n      });\n    }\n  }\n\n  function recordReactMeasureCompleted(type: ReactMeasureType): void {\n    const currentTime = getRelativeTime();\n\n    if (currentReactMeasuresStack.length === 0) {\n      console.error(\n        'Unexpected type \"%s\" completed at %sms while currentReactMeasuresStack is empty.',\n        type,\n        currentTime,\n      );\n      // Ignore work \"completion\" user timing mark that doesn't complete anything\n      return;\n    }\n\n    const top = currentReactMeasuresStack.pop();\n    if (top.type !== type) {\n      console.error(\n        'Unexpected type \"%s\" completed at %sms before \"%s\" completed.',\n        type,\n        currentTime,\n        top.type,\n      );\n    }\n\n    // $FlowFixMe[cannot-write] This property should not be writable outside of this function.\n    top.duration = currentTime - top.timestamp;\n\n    if (currentTimelineData) {\n      currentTimelineData.duration = getRelativeTime() + TIME_OFFSET;\n    }\n  }\n\n  function markCommitStarted(lanes: Lanes): void {\n    if (isProfiling) {\n      recordReactMeasureStarted('commit', lanes);\n\n      // TODO (timeline) Re-think this approach to \"batching\"; I don't think it works for Suspense or pre-rendering.\n      // This issue applies to the User Timing data also.\n      nextRenderShouldStartNewBatch = true;\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear(`--commit-start-${lanes}`);\n\n      // Some metadata only needs to be logged once per session,\n      // but if profiling information is being recorded via the Performance tab,\n      // DevTools has no way of knowing when the recording starts.\n      // Because of that, we log thie type of data periodically (once per commit).\n      markMetadata();\n    }\n  }\n\n  function markCommitStopped(): void {\n    if (isProfiling) {\n      recordReactMeasureCompleted('commit');\n      recordReactMeasureCompleted('render-idle');\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--commit-stop');\n    }\n  }\n\n  function markComponentRenderStarted(fiber: Fiber): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (isProfiling) {\n          currentReactComponentMeasure = {\n            componentName,\n            duration: 0,\n            timestamp: getRelativeTime(),\n            type: 'render',\n            warning: null,\n          };\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(`--component-render-start-${componentName}`);\n      }\n    }\n  }\n\n  function markComponentRenderStopped(): void {\n    if (isProfiling) {\n      if (currentReactComponentMeasure) {\n        if (currentTimelineData) {\n          currentTimelineData.componentMeasures.push(\n            currentReactComponentMeasure,\n          );\n        }\n\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentReactComponentMeasure.duration =\n          // $FlowFixMe[incompatible-use] found when upgrading Flow\n          getRelativeTime() - currentReactComponentMeasure.timestamp;\n        currentReactComponentMeasure = null;\n      }\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--component-render-stop');\n    }\n  }\n\n  function markComponentLayoutEffectMountStarted(fiber: Fiber): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (isProfiling) {\n          currentReactComponentMeasure = {\n            componentName,\n            duration: 0,\n            timestamp: getRelativeTime(),\n            type: 'layout-effect-mount',\n            warning: null,\n          };\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(`--component-layout-effect-mount-start-${componentName}`);\n      }\n    }\n  }\n\n  function markComponentLayoutEffectMountStopped(): void {\n    if (isProfiling) {\n      if (currentReactComponentMeasure) {\n        if (currentTimelineData) {\n          currentTimelineData.componentMeasures.push(\n            currentReactComponentMeasure,\n          );\n        }\n\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentReactComponentMeasure.duration =\n          // $FlowFixMe[incompatible-use] found when upgrading Flow\n          getRelativeTime() - currentReactComponentMeasure.timestamp;\n        currentReactComponentMeasure = null;\n      }\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--component-layout-effect-mount-stop');\n    }\n  }\n\n  function markComponentLayoutEffectUnmountStarted(fiber: Fiber): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (isProfiling) {\n          currentReactComponentMeasure = {\n            componentName,\n            duration: 0,\n            timestamp: getRelativeTime(),\n            type: 'layout-effect-unmount',\n            warning: null,\n          };\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(\n          `--component-layout-effect-unmount-start-${componentName}`,\n        );\n      }\n    }\n  }\n\n  function markComponentLayoutEffectUnmountStopped(): void {\n    if (isProfiling) {\n      if (currentReactComponentMeasure) {\n        if (currentTimelineData) {\n          currentTimelineData.componentMeasures.push(\n            currentReactComponentMeasure,\n          );\n        }\n\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentReactComponentMeasure.duration =\n          // $FlowFixMe[incompatible-use] found when upgrading Flow\n          getRelativeTime() - currentReactComponentMeasure.timestamp;\n        currentReactComponentMeasure = null;\n      }\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--component-layout-effect-unmount-stop');\n    }\n  }\n\n  function markComponentPassiveEffectMountStarted(fiber: Fiber): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (isProfiling) {\n          currentReactComponentMeasure = {\n            componentName,\n            duration: 0,\n            timestamp: getRelativeTime(),\n            type: 'passive-effect-mount',\n            warning: null,\n          };\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(`--component-passive-effect-mount-start-${componentName}`);\n      }\n    }\n  }\n\n  function markComponentPassiveEffectMountStopped(): void {\n    if (isProfiling) {\n      if (currentReactComponentMeasure) {\n        if (currentTimelineData) {\n          currentTimelineData.componentMeasures.push(\n            currentReactComponentMeasure,\n          );\n        }\n\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentReactComponentMeasure.duration =\n          // $FlowFixMe[incompatible-use] found when upgrading Flow\n          getRelativeTime() - currentReactComponentMeasure.timestamp;\n        currentReactComponentMeasure = null;\n      }\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--component-passive-effect-mount-stop');\n    }\n  }\n\n  function markComponentPassiveEffectUnmountStarted(fiber: Fiber): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (isProfiling) {\n          currentReactComponentMeasure = {\n            componentName,\n            duration: 0,\n            timestamp: getRelativeTime(),\n            type: 'passive-effect-unmount',\n            warning: null,\n          };\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(\n          `--component-passive-effect-unmount-start-${componentName}`,\n        );\n      }\n    }\n  }\n\n  function markComponentPassiveEffectUnmountStopped(): void {\n    if (isProfiling) {\n      if (currentReactComponentMeasure) {\n        if (currentTimelineData) {\n          currentTimelineData.componentMeasures.push(\n            currentReactComponentMeasure,\n          );\n        }\n\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentReactComponentMeasure.duration =\n          // $FlowFixMe[incompatible-use] found when upgrading Flow\n          getRelativeTime() - currentReactComponentMeasure.timestamp;\n        currentReactComponentMeasure = null;\n      }\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--component-passive-effect-unmount-stop');\n    }\n  }\n\n  function markComponentErrored(\n    fiber: Fiber,\n    thrownValue: mixed,\n    lanes: Lanes,\n  ): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n      const phase = fiber.alternate === null ? 'mount' : 'update';\n\n      let message = '';\n      if (\n        thrownValue !== null &&\n        typeof thrownValue === 'object' &&\n        typeof thrownValue.message === 'string'\n      ) {\n        message = thrownValue.message;\n      } else if (typeof thrownValue === 'string') {\n        message = thrownValue;\n      }\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (currentTimelineData) {\n          currentTimelineData.thrownErrors.push({\n            componentName,\n            message,\n            phase,\n            timestamp: getRelativeTime(),\n            type: 'thrown-error',\n          });\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(`--error-${componentName}-${phase}-${message}`);\n      }\n    }\n  }\n\n  const PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n\n  // $FlowFixMe[incompatible-type]: Flow cannot handle polymorphic WeakMaps\n  const wakeableIDs: WeakMap<Wakeable, number> = new PossiblyWeakMap();\n  let wakeableID: number = 0;\n  function getWakeableID(wakeable: Wakeable): number {\n    if (!wakeableIDs.has(wakeable)) {\n      wakeableIDs.set(wakeable, wakeableID++);\n    }\n    return ((wakeableIDs.get(wakeable): any): number);\n  }\n\n  function markComponentSuspended(\n    fiber: Fiber,\n    wakeable: Wakeable,\n    lanes: Lanes,\n  ): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const eventType = wakeableIDs.has(wakeable) ? 'resuspend' : 'suspend';\n      const id = getWakeableID(wakeable);\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n      const phase = fiber.alternate === null ? 'mount' : 'update';\n\n      // Following the non-standard fn.displayName convention,\n      // frameworks like Relay may also annotate Promises with a displayName,\n      // describing what operation/data the thrown Promise is related to.\n      // When this is available we should pass it along to the Timeline.\n      const displayName = (wakeable: any).displayName || '';\n\n      let suspenseEvent: SuspenseEvent | null = null;\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        suspenseEvent = {\n          componentName,\n          depth: 0,\n          duration: 0,\n          id: `${id}`,\n          phase,\n          promiseName: displayName,\n          resolution: 'unresolved',\n          timestamp: getRelativeTime(),\n          type: 'suspense',\n          warning: null,\n        };\n\n        if (currentTimelineData) {\n          currentTimelineData.suspenseEvents.push(suspenseEvent);\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(\n          `--suspense-${eventType}-${id}-${componentName}-${phase}-${lanes}-${displayName}`,\n        );\n      }\n\n      wakeable.then(\n        () => {\n          if (suspenseEvent) {\n            suspenseEvent.duration =\n              getRelativeTime() - suspenseEvent.timestamp;\n            suspenseEvent.resolution = 'resolved';\n          }\n\n          if (supportsUserTimingV3) {\n            markAndClear(`--suspense-resolved-${id}-${componentName}`);\n          }\n        },\n        () => {\n          if (suspenseEvent) {\n            suspenseEvent.duration =\n              getRelativeTime() - suspenseEvent.timestamp;\n            suspenseEvent.resolution = 'rejected';\n          }\n\n          if (supportsUserTimingV3) {\n            markAndClear(`--suspense-rejected-${id}-${componentName}`);\n          }\n        },\n      );\n    }\n  }\n\n  function markLayoutEffectsStarted(lanes: Lanes): void {\n    if (isProfiling) {\n      recordReactMeasureStarted('layout-effects', lanes);\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear(`--layout-effects-start-${lanes}`);\n    }\n  }\n\n  function markLayoutEffectsStopped(): void {\n    if (isProfiling) {\n      recordReactMeasureCompleted('layout-effects');\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--layout-effects-stop');\n    }\n  }\n\n  function markPassiveEffectsStarted(lanes: Lanes): void {\n    if (isProfiling) {\n      recordReactMeasureStarted('passive-effects', lanes);\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear(`--passive-effects-start-${lanes}`);\n    }\n  }\n\n  function markPassiveEffectsStopped(): void {\n    if (isProfiling) {\n      recordReactMeasureCompleted('passive-effects');\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--passive-effects-stop');\n    }\n  }\n\n  function markRenderStarted(lanes: Lanes): void {\n    if (isProfiling) {\n      if (nextRenderShouldStartNewBatch) {\n        nextRenderShouldStartNewBatch = false;\n        currentBatchUID++;\n      }\n\n      // If this is a new batch of work, wrap an \"idle\" measure around it.\n      // Log it before the \"render\" measure to preserve the stack ordering.\n      if (\n        currentReactMeasuresStack.length === 0 ||\n        currentReactMeasuresStack[currentReactMeasuresStack.length - 1].type !==\n          'render-idle'\n      ) {\n        recordReactMeasureStarted('render-idle', lanes);\n      }\n\n      recordReactMeasureStarted('render', lanes);\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear(`--render-start-${lanes}`);\n    }\n  }\n\n  function markRenderYielded(): void {\n    if (isProfiling) {\n      recordReactMeasureCompleted('render');\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--render-yield');\n    }\n  }\n\n  function markRenderStopped(): void {\n    if (isProfiling) {\n      recordReactMeasureCompleted('render');\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear('--render-stop');\n    }\n  }\n\n  function markRenderScheduled(lane: Lane): void {\n    if (isProfiling) {\n      if (currentTimelineData) {\n        currentTimelineData.schedulingEvents.push({\n          lanes: laneToLanesArray(lane),\n          timestamp: getRelativeTime(),\n          type: 'schedule-render',\n          warning: null,\n        });\n      }\n    }\n\n    if (supportsUserTimingV3) {\n      markAndClear(`--schedule-render-${lane}`);\n    }\n  }\n\n  function markForceUpdateScheduled(fiber: Fiber, lane: Lane): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (currentTimelineData) {\n          currentTimelineData.schedulingEvents.push({\n            componentName,\n            lanes: laneToLanesArray(lane),\n            timestamp: getRelativeTime(),\n            type: 'schedule-force-update',\n            warning: null,\n          });\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(`--schedule-forced-update-${lane}-${componentName}`);\n      }\n    }\n  }\n\n  function getParentFibers(fiber: Fiber): Array<Fiber> {\n    const parents = [];\n    let parent: null | Fiber = fiber;\n    while (parent !== null) {\n      parents.push(parent);\n      parent = parent.return;\n    }\n    return parents;\n  }\n\n  function markStateUpdateScheduled(fiber: Fiber, lane: Lane): void {\n    if (isProfiling || supportsUserTimingV3) {\n      const componentName = getDisplayNameForFiber(fiber) || 'Unknown';\n\n      if (isProfiling) {\n        // TODO (timeline) Record and cache component stack\n        if (currentTimelineData) {\n          const event: ReactScheduleStateUpdateEvent = {\n            componentName,\n            // Store the parent fibers so we can post process\n            // them after we finish profiling\n            lanes: laneToLanesArray(lane),\n            timestamp: getRelativeTime(),\n            type: 'schedule-state-update',\n            warning: null,\n          };\n          currentFiberStacks.set(event, getParentFibers(fiber));\n          // $FlowFixMe[incompatible-use] found when upgrading Flow\n          currentTimelineData.schedulingEvents.push(event);\n        }\n      }\n\n      if (supportsUserTimingV3) {\n        markAndClear(`--schedule-state-update-${lane}-${componentName}`);\n      }\n    }\n  }\n\n  function toggleProfilingStatus(value: boolean) {\n    if (isProfiling !== value) {\n      isProfiling = value;\n\n      if (isProfiling) {\n        const internalModuleSourceToRanges: InternalModuleSourceToRanges =\n          new Map();\n\n        if (supportsUserTimingV3) {\n          const ranges = getInternalModuleRanges();\n          if (ranges) {\n            for (let i = 0; i < ranges.length; i++) {\n              const range = ranges[i];\n              if (isArray(range) && range.length === 2) {\n                const [startStackFrame, stopStackFrame] = ranges[i];\n\n                markAndClear(\n                  `--react-internal-module-start-${startStackFrame}`,\n                );\n                markAndClear(`--react-internal-module-stop-${stopStackFrame}`);\n              }\n            }\n          }\n        }\n\n        const laneToReactMeasureMap = new Map<ReactLane, ReactMeasure[]>();\n        let lane = 1;\n        for (let index = 0; index < REACT_TOTAL_NUM_LANES; index++) {\n          laneToReactMeasureMap.set(lane, []);\n          lane *= 2;\n        }\n\n        currentBatchUID = 0;\n        currentReactComponentMeasure = null;\n        currentReactMeasuresStack = [];\n        currentFiberStacks = new Map();\n        currentTimelineData = {\n          // Session wide metadata; only collected once.\n          internalModuleSourceToRanges,\n          laneToLabelMap: laneToLabelMap || new Map(),\n          reactVersion,\n\n          // Data logged by React during profiling session.\n          componentMeasures: [],\n          schedulingEvents: [],\n          suspenseEvents: [],\n          thrownErrors: [],\n\n          // Data inferred based on what React logs.\n          batchUIDToMeasuresMap: new Map(),\n          duration: 0,\n          laneToReactMeasureMap,\n          startTime: 0,\n\n          // Data only available in Chrome profiles.\n          flamechart: [],\n          nativeEvents: [],\n          networkMeasures: [],\n          otherUserTimingMarks: [],\n          snapshots: [],\n          snapshotHeight: 0,\n        };\n        nextRenderShouldStartNewBatch = true;\n      } else {\n        // Postprocess Profile data\n        if (currentTimelineData !== null) {\n          currentTimelineData.schedulingEvents.forEach(event => {\n            if (event.type === 'schedule-state-update') {\n              // TODO(luna): We can optimize this by creating a map of\n              // fiber to component stack instead of generating the stack\n              // for every fiber every time\n              const fiberStack = currentFiberStacks.get(event);\n              if (fiberStack && currentDispatcherRef != null) {\n                event.componentStack = fiberStack.reduce((trace, fiber) => {\n                  return (\n                    trace +\n                    describeFiber(workTagMap, fiber, currentDispatcherRef)\n                  );\n                }, '');\n              }\n            }\n          });\n        }\n\n        // Clear the current fiber stacks so we don't hold onto the fibers\n        // in memory after profiling finishes\n        currentFiberStacks.clear();\n      }\n    }\n  }\n\n  return {\n    getTimelineData,\n    profilingHooks: {\n      markCommitStarted,\n      markCommitStopped,\n      markComponentRenderStarted,\n      markComponentRenderStopped,\n      markComponentPassiveEffectMountStarted,\n      markComponentPassiveEffectMountStopped,\n      markComponentPassiveEffectUnmountStarted,\n      markComponentPassiveEffectUnmountStopped,\n      markComponentLayoutEffectMountStarted,\n      markComponentLayoutEffectMountStopped,\n      markComponentLayoutEffectUnmountStarted,\n      markComponentLayoutEffectUnmountStopped,\n      markComponentErrored,\n      markComponentSuspended,\n      markLayoutEffectsStarted,\n      markLayoutEffectsStopped,\n      markPassiveEffectsStarted,\n      markPassiveEffectsStopped,\n      markRenderStarted,\n      markRenderYielded,\n      markRenderStopped,\n      markRenderScheduled,\n      markForceUpdateScheduled,\n      markStateUpdateScheduled,\n    },\n    toggleProfilingStatus,\n  };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n  ComponentFilterDisplayName,\n  ComponentFilterElementType,\n  ComponentFilterHOC,\n  ComponentFilterLocation,\n  ElementTypeClass,\n  ElementTypeContext,\n  ElementTypeFunction,\n  ElementTypeForwardRef,\n  ElementTypeHostComponent,\n  ElementTypeMemo,\n  ElementTypeOtherOrUnknown,\n  ElementTypeProfiler,\n  ElementTypeRoot,\n  ElementTypeSuspense,\n  ElementTypeSuspenseList,\n  ElementTypeTracingMarker,\n  StrictMode,\n} from 'react-devtools-shared/src/frontend/types';\nimport {\n  deletePathInObject,\n  getDisplayName,\n  getWrappedDisplayName,\n  getDefaultComponentFilters,\n  getInObject,\n  getUID,\n  renamePathInObject,\n  setInObject,\n  utfEncodeString,\n  filterOutLocationComponentFilters,\n} from 'react-devtools-shared/src/utils';\nimport {sessionStorageGetItem} from 'react-devtools-shared/src/storage';\nimport {\n  formatConsoleArgumentsToSingleString,\n  gt,\n  gte,\n  parseSourceFromComponentStack,\n  serializeToString,\n} from 'react-devtools-shared/src/backend/utils';\nimport {\n  cleanForBridge,\n  copyWithDelete,\n  copyWithRename,\n  copyWithSet,\n  getEffectDurations,\n} from './utils';\nimport {\n  __DEBUG__,\n  PROFILING_FLAG_BASIC_SUPPORT,\n  PROFILING_FLAG_TIMELINE_SUPPORT,\n  SESSION_STORAGE_RELOAD_AND_PROFILE_KEY,\n  SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n  TREE_OPERATION_ADD,\n  TREE_OPERATION_REMOVE,\n  TREE_OPERATION_REMOVE_ROOT,\n  TREE_OPERATION_REORDER_CHILDREN,\n  TREE_OPERATION_SET_SUBTREE_MODE,\n  TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS,\n  TREE_OPERATION_UPDATE_TREE_BASE_DURATION,\n} from '../constants';\nimport {inspectHooksOfFiber} from 'react-debug-tools';\nimport {\n  patchConsoleUsingWindowValues,\n  registerRenderer as registerRendererWithConsole,\n  patchForStrictMode as patchConsoleForStrictMode,\n  unpatchForStrictMode as unpatchConsoleForStrictMode,\n} from './console';\nimport {\n  CONCURRENT_MODE_NUMBER,\n  CONCURRENT_MODE_SYMBOL_STRING,\n  DEPRECATED_ASYNC_MODE_SYMBOL_STRING,\n  PROVIDER_NUMBER,\n  PROVIDER_SYMBOL_STRING,\n  CONTEXT_NUMBER,\n  CONTEXT_SYMBOL_STRING,\n  CONSUMER_SYMBOL_STRING,\n  STRICT_MODE_NUMBER,\n  STRICT_MODE_SYMBOL_STRING,\n  PROFILER_NUMBER,\n  PROFILER_SYMBOL_STRING,\n  REACT_MEMO_CACHE_SENTINEL,\n  SCOPE_NUMBER,\n  SCOPE_SYMBOL_STRING,\n  FORWARD_REF_NUMBER,\n  FORWARD_REF_SYMBOL_STRING,\n  MEMO_NUMBER,\n  MEMO_SYMBOL_STRING,\n  SERVER_CONTEXT_SYMBOL_STRING,\n} from './ReactSymbols';\nimport {enableStyleXFeatures} from 'react-devtools-feature-flags';\nimport is from 'shared/objectIs';\nimport hasOwnProperty from 'shared/hasOwnProperty';\nimport {getStyleXData} from './StyleX/utils';\nimport {createProfilingHooks} from './profilingHooks';\n\nimport type {GetTimelineData, ToggleProfilingStatus} from './profilingHooks';\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {\n  ChangeDescription,\n  CommitDataBackend,\n  DevToolsHook,\n  InspectedElement,\n  InspectedElementPayload,\n  InstanceAndStyle,\n  NativeType,\n  PathFrame,\n  PathMatch,\n  ProfilingDataBackend,\n  ProfilingDataForRootBackend,\n  ReactRenderer,\n  RendererInterface,\n  SerializedElement,\n  WorkTagMap,\n  CurrentDispatcherRef,\n  LegacyDispatcherRef,\n} from './types';\nimport type {\n  ComponentFilter,\n  ElementType,\n  Plugins,\n} from 'react-devtools-shared/src/frontend/types';\nimport type {Source} from 'react-devtools-shared/src/shared/types';\nimport {getStackByFiberInDevAndProd} from './DevToolsFiberComponentStack';\n\ntype getDisplayNameForFiberType = (fiber: Fiber) => string | null;\ntype getTypeSymbolType = (type: any) => symbol | number;\n\ntype ReactPriorityLevelsType = {\n  ImmediatePriority: number,\n  UserBlockingPriority: number,\n  NormalPriority: number,\n  LowPriority: number,\n  IdlePriority: number,\n  NoPriority: number,\n};\n\nexport function getDispatcherRef(renderer: {\n  +currentDispatcherRef?: LegacyDispatcherRef | CurrentDispatcherRef,\n  ...\n}): void | CurrentDispatcherRef {\n  if (renderer.currentDispatcherRef === undefined) {\n    return undefined;\n  }\n  const injectedRef = renderer.currentDispatcherRef;\n  if (\n    typeof injectedRef.H === 'undefined' &&\n    typeof injectedRef.current !== 'undefined'\n  ) {\n    // We got a legacy dispatcher injected, let's create a wrapper proxy to translate.\n    return {\n      get H() {\n        return (injectedRef: any).current;\n      },\n      set H(value) {\n        (injectedRef: any).current = value;\n      },\n    };\n  }\n  return (injectedRef: any);\n}\n\nfunction getFiberFlags(fiber: Fiber): number {\n  // The name of this field changed from \"effectTag\" to \"flags\"\n  return fiber.flags !== undefined ? fiber.flags : (fiber: any).effectTag;\n}\n\n// Some environments (e.g. React Native / Hermes) don't support the performance API yet.\nconst getCurrentTime =\n  // $FlowFixMe[method-unbinding]\n  typeof performance === 'object' && typeof performance.now === 'function'\n    ? () => performance.now()\n    : () => Date.now();\n\nexport function getInternalReactConstants(version: string): {\n  getDisplayNameForFiber: getDisplayNameForFiberType,\n  getTypeSymbol: getTypeSymbolType,\n  ReactPriorityLevels: ReactPriorityLevelsType,\n  ReactTypeOfWork: WorkTagMap,\n  StrictModeBits: number,\n} {\n  // **********************************************************\n  // The section below is copied from files in React repo.\n  // Keep it in sync, and add version guards if it changes.\n  //\n  // Technically these priority levels are invalid for versions before 16.9,\n  // but 16.9 is the first version to report priority level to DevTools,\n  // so we can avoid checking for earlier versions and support pre-16.9 canary releases in the process.\n  let ReactPriorityLevels: ReactPriorityLevelsType = {\n    ImmediatePriority: 99,\n    UserBlockingPriority: 98,\n    NormalPriority: 97,\n    LowPriority: 96,\n    IdlePriority: 95,\n    NoPriority: 90,\n  };\n\n  if (gt(version, '17.0.2')) {\n    ReactPriorityLevels = {\n      ImmediatePriority: 1,\n      UserBlockingPriority: 2,\n      NormalPriority: 3,\n      LowPriority: 4,\n      IdlePriority: 5,\n      NoPriority: 0,\n    };\n  }\n\n  let StrictModeBits = 0;\n  if (gte(version, '18.0.0-alpha')) {\n    // 18+\n    StrictModeBits = 0b011000;\n  } else if (gte(version, '16.9.0')) {\n    // 16.9 - 17\n    StrictModeBits = 0b1;\n  } else if (gte(version, '16.3.0')) {\n    // 16.3 - 16.8\n    StrictModeBits = 0b10;\n  }\n\n  let ReactTypeOfWork: WorkTagMap = ((null: any): WorkTagMap);\n\n  // **********************************************************\n  // The section below is copied from files in React repo.\n  // Keep it in sync, and add version guards if it changes.\n  //\n  // TODO Update the gt() check below to be gte() whichever the next version number is.\n  // Currently the version in Git is 17.0.2 (but that version has not been/may not end up being released).\n  if (gt(version, '17.0.1')) {\n    ReactTypeOfWork = {\n      CacheComponent: 24, // Experimental\n      ClassComponent: 1,\n      ContextConsumer: 9,\n      ContextProvider: 10,\n      CoroutineComponent: -1, // Removed\n      CoroutineHandlerPhase: -1, // Removed\n      DehydratedSuspenseComponent: 18, // Behind a flag\n      ForwardRef: 11,\n      Fragment: 7,\n      FunctionComponent: 0,\n      HostComponent: 5,\n      HostPortal: 4,\n      HostRoot: 3,\n      HostHoistable: 26, // In reality, 18.2+. But doesn't hurt to include it here\n      HostSingleton: 27, // Same as above\n      HostText: 6,\n      IncompleteClassComponent: 17,\n      IncompleteFunctionComponent: 28,\n      IndeterminateComponent: 2, // removed in 19.0.0\n      LazyComponent: 16,\n      LegacyHiddenComponent: 23,\n      MemoComponent: 14,\n      Mode: 8,\n      OffscreenComponent: 22, // Experimental\n      Profiler: 12,\n      ScopeComponent: 21, // Experimental\n      SimpleMemoComponent: 15,\n      SuspenseComponent: 13,\n      SuspenseListComponent: 19, // Experimental\n      TracingMarkerComponent: 25, // Experimental - This is technically in 18 but we don't\n      // want to fork again so we're adding it here instead\n      YieldComponent: -1, // Removed\n      Throw: 29,\n    };\n  } else if (gte(version, '17.0.0-alpha')) {\n    ReactTypeOfWork = {\n      CacheComponent: -1, // Doesn't exist yet\n      ClassComponent: 1,\n      ContextConsumer: 9,\n      ContextProvider: 10,\n      CoroutineComponent: -1, // Removed\n      CoroutineHandlerPhase: -1, // Removed\n      DehydratedSuspenseComponent: 18, // Behind a flag\n      ForwardRef: 11,\n      Fragment: 7,\n      FunctionComponent: 0,\n      HostComponent: 5,\n      HostPortal: 4,\n      HostRoot: 3,\n      HostHoistable: -1, // Doesn't exist yet\n      HostSingleton: -1, // Doesn't exist yet\n      HostText: 6,\n      IncompleteClassComponent: 17,\n      IncompleteFunctionComponent: -1, // Doesn't exist yet\n      IndeterminateComponent: 2,\n      LazyComponent: 16,\n      LegacyHiddenComponent: 24,\n      MemoComponent: 14,\n      Mode: 8,\n      OffscreenComponent: 23, // Experimental\n      Profiler: 12,\n      ScopeComponent: 21, // Experimental\n      SimpleMemoComponent: 15,\n      SuspenseComponent: 13,\n      SuspenseListComponent: 19, // Experimental\n      TracingMarkerComponent: -1, // Doesn't exist yet\n      YieldComponent: -1, // Removed\n      Throw: -1, // Doesn't exist yet\n    };\n  } else if (gte(version, '16.6.0-beta.0')) {\n    ReactTypeOfWork = {\n      CacheComponent: -1, // Doesn't exist yet\n      ClassComponent: 1,\n      ContextConsumer: 9,\n      ContextProvider: 10,\n      CoroutineComponent: -1, // Removed\n      CoroutineHandlerPhase: -1, // Removed\n      DehydratedSuspenseComponent: 18, // Behind a flag\n      ForwardRef: 11,\n      Fragment: 7,\n      FunctionComponent: 0,\n      HostComponent: 5,\n      HostPortal: 4,\n      HostRoot: 3,\n      HostHoistable: -1, // Doesn't exist yet\n      HostSingleton: -1, // Doesn't exist yet\n      HostText: 6,\n      IncompleteClassComponent: 17,\n      IncompleteFunctionComponent: -1, // Doesn't exist yet\n      IndeterminateComponent: 2,\n      LazyComponent: 16,\n      LegacyHiddenComponent: -1,\n      MemoComponent: 14,\n      Mode: 8,\n      OffscreenComponent: -1, // Experimental\n      Profiler: 12,\n      ScopeComponent: -1, // Experimental\n      SimpleMemoComponent: 15,\n      SuspenseComponent: 13,\n      SuspenseListComponent: 19, // Experimental\n      TracingMarkerComponent: -1, // Doesn't exist yet\n      YieldComponent: -1, // Removed\n      Throw: -1, // Doesn't exist yet\n    };\n  } else if (gte(version, '16.4.3-alpha')) {\n    ReactTypeOfWork = {\n      CacheComponent: -1, // Doesn't exist yet\n      ClassComponent: 2,\n      ContextConsumer: 11,\n      ContextProvider: 12,\n      CoroutineComponent: -1, // Removed\n      CoroutineHandlerPhase: -1, // Removed\n      DehydratedSuspenseComponent: -1, // Doesn't exist yet\n      ForwardRef: 13,\n      Fragment: 9,\n      FunctionComponent: 0,\n      HostComponent: 7,\n      HostPortal: 6,\n      HostRoot: 5,\n      HostHoistable: -1, // Doesn't exist yet\n      HostSingleton: -1, // Doesn't exist yet\n      HostText: 8,\n      IncompleteClassComponent: -1, // Doesn't exist yet\n      IncompleteFunctionComponent: -1, // Doesn't exist yet\n      IndeterminateComponent: 4,\n      LazyComponent: -1, // Doesn't exist yet\n      LegacyHiddenComponent: -1,\n      MemoComponent: -1, // Doesn't exist yet\n      Mode: 10,\n      OffscreenComponent: -1, // Experimental\n      Profiler: 15,\n      ScopeComponent: -1, // Experimental\n      SimpleMemoComponent: -1, // Doesn't exist yet\n      SuspenseComponent: 16,\n      SuspenseListComponent: -1, // Doesn't exist yet\n      TracingMarkerComponent: -1, // Doesn't exist yet\n      YieldComponent: -1, // Removed\n      Throw: -1, // Doesn't exist yet\n    };\n  } else {\n    ReactTypeOfWork = {\n      CacheComponent: -1, // Doesn't exist yet\n      ClassComponent: 2,\n      ContextConsumer: 12,\n      ContextProvider: 13,\n      CoroutineComponent: 7,\n      CoroutineHandlerPhase: 8,\n      DehydratedSuspenseComponent: -1, // Doesn't exist yet\n      ForwardRef: 14,\n      Fragment: 10,\n      FunctionComponent: 1,\n      HostComponent: 5,\n      HostPortal: 4,\n      HostRoot: 3,\n      HostHoistable: -1, // Doesn't exist yet\n      HostSingleton: -1, // Doesn't exist yet\n      HostText: 6,\n      IncompleteClassComponent: -1, // Doesn't exist yet\n      IncompleteFunctionComponent: -1, // Doesn't exist yet\n      IndeterminateComponent: 0,\n      LazyComponent: -1, // Doesn't exist yet\n      LegacyHiddenComponent: -1,\n      MemoComponent: -1, // Doesn't exist yet\n      Mode: 11,\n      OffscreenComponent: -1, // Experimental\n      Profiler: 15,\n      ScopeComponent: -1, // Experimental\n      SimpleMemoComponent: -1, // Doesn't exist yet\n      SuspenseComponent: 16,\n      SuspenseListComponent: -1, // Doesn't exist yet\n      TracingMarkerComponent: -1, // Doesn't exist yet\n      YieldComponent: 9,\n      Throw: -1, // Doesn't exist yet\n    };\n  }\n  // **********************************************************\n  // End of copied code.\n  // **********************************************************\n\n  function getTypeSymbol(type: any): symbol | number {\n    const symbolOrNumber =\n      typeof type === 'object' && type !== null ? type.$$typeof : type;\n\n    return typeof symbolOrNumber === 'symbol'\n      ? // $FlowFixMe[incompatible-return] `toString()` doesn't match the type signature?\n        symbolOrNumber.toString()\n      : symbolOrNumber;\n  }\n\n  const {\n    CacheComponent,\n    ClassComponent,\n    IncompleteClassComponent,\n    IncompleteFunctionComponent,\n    FunctionComponent,\n    IndeterminateComponent,\n    ForwardRef,\n    HostRoot,\n    HostHoistable,\n    HostSingleton,\n    HostComponent,\n    HostPortal,\n    HostText,\n    Fragment,\n    LazyComponent,\n    LegacyHiddenComponent,\n    MemoComponent,\n    OffscreenComponent,\n    Profiler,\n    ScopeComponent,\n    SimpleMemoComponent,\n    SuspenseComponent,\n    SuspenseListComponent,\n    TracingMarkerComponent,\n    Throw,\n  } = ReactTypeOfWork;\n\n  function resolveFiberType(type: any): $FlowFixMe {\n    const typeSymbol = getTypeSymbol(type);\n    switch (typeSymbol) {\n      case MEMO_NUMBER:\n      case MEMO_SYMBOL_STRING:\n        // recursively resolving memo type in case of memo(forwardRef(Component))\n        return resolveFiberType(type.type);\n      case FORWARD_REF_NUMBER:\n      case FORWARD_REF_SYMBOL_STRING:\n        return type.render;\n      default:\n        return type;\n    }\n  }\n\n  // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n  function getDisplayNameForFiber(\n    fiber: Fiber,\n    shouldSkipForgetCheck: boolean = false,\n  ): string | null {\n    const {elementType, type, tag} = fiber;\n\n    let resolvedType = type;\n    if (typeof type === 'object' && type !== null) {\n      resolvedType = resolveFiberType(type);\n    }\n\n    let resolvedContext: any = null;\n    if (\n      !shouldSkipForgetCheck &&\n      // $FlowFixMe[incompatible-type] fiber.updateQueue is mixed\n      (fiber.updateQueue?.memoCache != null ||\n        fiber.memoizedState?.memoizedState?.[REACT_MEMO_CACHE_SENTINEL])\n    ) {\n      const displayNameWithoutForgetWrapper = getDisplayNameForFiber(\n        fiber,\n        true,\n      );\n      if (displayNameWithoutForgetWrapper == null) {\n        return null;\n      }\n\n      return `Forget(${displayNameWithoutForgetWrapper})`;\n    }\n\n    switch (tag) {\n      case CacheComponent:\n        return 'Cache';\n      case ClassComponent:\n      case IncompleteClassComponent:\n      case IncompleteFunctionComponent:\n      case FunctionComponent:\n      case IndeterminateComponent:\n        return getDisplayName(resolvedType);\n      case ForwardRef:\n        return getWrappedDisplayName(\n          elementType,\n          resolvedType,\n          'ForwardRef',\n          'Anonymous',\n        );\n      case HostRoot:\n        const fiberRoot = fiber.stateNode;\n        if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n          return fiberRoot._debugRootType;\n        }\n        return null;\n      case HostComponent:\n      case HostSingleton:\n      case HostHoistable:\n        return type;\n      case HostPortal:\n      case HostText:\n        return null;\n      case Fragment:\n        return 'Fragment';\n      case LazyComponent:\n        // This display name will not be user visible.\n        // Once a Lazy component loads its inner component, React replaces the tag and type.\n        // This display name will only show up in console logs when DevTools DEBUG mode is on.\n        return 'Lazy';\n      case MemoComponent:\n      case SimpleMemoComponent:\n        // Display name in React does not use `Memo` as a wrapper but fallback name.\n        return getWrappedDisplayName(\n          elementType,\n          resolvedType,\n          'Memo',\n          'Anonymous',\n        );\n      case SuspenseComponent:\n        return 'Suspense';\n      case LegacyHiddenComponent:\n        return 'LegacyHidden';\n      case OffscreenComponent:\n        return 'Offscreen';\n      case ScopeComponent:\n        return 'Scope';\n      case SuspenseListComponent:\n        return 'SuspenseList';\n      case Profiler:\n        return 'Profiler';\n      case TracingMarkerComponent:\n        return 'TracingMarker';\n      case Throw:\n        // This should really never be visible.\n        return 'Error';\n      default:\n        const typeSymbol = getTypeSymbol(type);\n\n        switch (typeSymbol) {\n          case CONCURRENT_MODE_NUMBER:\n          case CONCURRENT_MODE_SYMBOL_STRING:\n          case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n            return null;\n          case PROVIDER_NUMBER:\n          case PROVIDER_SYMBOL_STRING:\n            // 16.3.0 exposed the context object as \"context\"\n            // PR #12501 changed it to \"_context\" for 16.3.1+\n            // NOTE Keep in sync with inspectElementRaw()\n            resolvedContext = fiber.type._context || fiber.type.context;\n            return `${resolvedContext.displayName || 'Context'}.Provider`;\n          case CONTEXT_NUMBER:\n          case CONTEXT_SYMBOL_STRING:\n          case SERVER_CONTEXT_SYMBOL_STRING:\n            if (\n              fiber.type._context === undefined &&\n              fiber.type.Provider === fiber.type\n            ) {\n              // In 19+, Context.Provider === Context, so this is a provider.\n              resolvedContext = fiber.type;\n              return `${resolvedContext.displayName || 'Context'}.Provider`;\n            }\n\n            // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n            // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n            // NOTE Keep in sync with inspectElementRaw()\n            resolvedContext = fiber.type._context || fiber.type;\n\n            // NOTE: TraceUpdatesBackendManager depends on the name ending in '.Consumer'\n            // If you change the name, figure out a more resilient way to detect it.\n            return `${resolvedContext.displayName || 'Context'}.Consumer`;\n          case CONSUMER_SYMBOL_STRING:\n            // 19+\n            resolvedContext = fiber.type._context;\n            return `${resolvedContext.displayName || 'Context'}.Consumer`;\n          case STRICT_MODE_NUMBER:\n          case STRICT_MODE_SYMBOL_STRING:\n            return null;\n          case PROFILER_NUMBER:\n          case PROFILER_SYMBOL_STRING:\n            return `Profiler(${fiber.memoizedProps.id})`;\n          case SCOPE_NUMBER:\n          case SCOPE_SYMBOL_STRING:\n            return 'Scope';\n          default:\n            // Unknown element type.\n            // This may mean a new element type that has not yet been added to DevTools.\n            return null;\n        }\n    }\n  }\n\n  return {\n    getDisplayNameForFiber,\n    getTypeSymbol,\n    ReactPriorityLevels,\n    ReactTypeOfWork,\n    StrictModeBits,\n  };\n}\n\n// Map of one or more Fibers in a pair to their unique id number.\n// We track both Fibers to support Fast Refresh,\n// which may forcefully replace one of the pair as part of hot reloading.\n// In that case it's still important to be able to locate the previous ID during subsequent renders.\nconst fiberToIDMap: Map<Fiber, number> = new Map();\n\n// Map of id to one (arbitrary) Fiber in a pair.\n// This Map is used to e.g. get the display name for a Fiber or schedule an update,\n// operations that should be the same whether the current and work-in-progress Fiber is used.\nconst idToArbitraryFiberMap: Map<number, Fiber> = new Map();\n\nconst fiberToComponentStackMap: WeakMap<Fiber, string> = new WeakMap();\n\nexport function attach(\n  hook: DevToolsHook,\n  rendererID: number,\n  renderer: ReactRenderer,\n  global: Object,\n): RendererInterface {\n  // Newer versions of the reconciler package also specific reconciler version.\n  // If that version number is present, use it.\n  // Third party renderer versions may not match the reconciler version,\n  // and the latter is what's important in terms of tags and symbols.\n  const version = renderer.reconcilerVersion || renderer.version;\n\n  const {\n    getDisplayNameForFiber,\n    getTypeSymbol,\n    ReactPriorityLevels,\n    ReactTypeOfWork,\n    StrictModeBits,\n  } = getInternalReactConstants(version);\n  const {\n    CacheComponent,\n    ClassComponent,\n    ContextConsumer,\n    DehydratedSuspenseComponent,\n    ForwardRef,\n    Fragment,\n    FunctionComponent,\n    HostRoot,\n    HostHoistable,\n    HostSingleton,\n    HostPortal,\n    HostComponent,\n    HostText,\n    IncompleteClassComponent,\n    IncompleteFunctionComponent,\n    IndeterminateComponent,\n    LegacyHiddenComponent,\n    MemoComponent,\n    OffscreenComponent,\n    SimpleMemoComponent,\n    SuspenseComponent,\n    SuspenseListComponent,\n    TracingMarkerComponent,\n    Throw,\n  } = ReactTypeOfWork;\n  const {\n    ImmediatePriority,\n    UserBlockingPriority,\n    NormalPriority,\n    LowPriority,\n    IdlePriority,\n    NoPriority,\n  } = ReactPriorityLevels;\n\n  const {\n    getLaneLabelMap,\n    injectProfilingHooks,\n    overrideHookState,\n    overrideHookStateDeletePath,\n    overrideHookStateRenamePath,\n    overrideProps,\n    overridePropsDeletePath,\n    overridePropsRenamePath,\n    scheduleRefresh,\n    setErrorHandler,\n    setSuspenseHandler,\n    scheduleUpdate,\n  } = renderer;\n  const supportsTogglingError =\n    typeof setErrorHandler === 'function' &&\n    typeof scheduleUpdate === 'function';\n  const supportsTogglingSuspense =\n    typeof setSuspenseHandler === 'function' &&\n    typeof scheduleUpdate === 'function';\n\n  if (typeof scheduleRefresh === 'function') {\n    // When Fast Refresh updates a component, the frontend may need to purge cached information.\n    // For example, ASTs cached for the component (for named hooks) may no longer be valid.\n    // Send a signal to the frontend to purge this cached information.\n    // The \"fastRefreshScheduled\" dispatched is global (not Fiber or even Renderer specific).\n    // This is less effecient since it means the front-end will need to purge the entire cache,\n    // but this is probably an okay trade off in order to reduce coupling between the DevTools and Fast Refresh.\n    renderer.scheduleRefresh = (...args) => {\n      try {\n        hook.emit('fastRefreshScheduled');\n      } finally {\n        return scheduleRefresh(...args);\n      }\n    };\n  }\n\n  let getTimelineData: null | GetTimelineData = null;\n  let toggleProfilingStatus: null | ToggleProfilingStatus = null;\n  if (typeof injectProfilingHooks === 'function') {\n    const response = createProfilingHooks({\n      getDisplayNameForFiber,\n      getIsProfiling: () => isProfiling,\n      getLaneLabelMap,\n      currentDispatcherRef: getDispatcherRef(renderer),\n      workTagMap: ReactTypeOfWork,\n      reactVersion: version,\n    });\n\n    // Pass the Profiling hooks to the reconciler for it to call during render.\n    injectProfilingHooks(response.profilingHooks);\n\n    // Hang onto this toggle so we can notify the external methods of profiling status changes.\n    getTimelineData = response.getTimelineData;\n    toggleProfilingStatus = response.toggleProfilingStatus;\n  }\n\n  // Tracks Fibers with recently changed number of error/warning messages.\n  // These collections store the Fiber rather than the ID,\n  // in order to avoid generating an ID for Fibers that never get mounted\n  // (due to e.g. Suspense or error boundaries).\n  // onErrorOrWarning() adds Fibers and recordPendingErrorsAndWarnings() later clears them.\n  const fibersWithChangedErrorOrWarningCounts: Set<Fiber> = new Set();\n  const pendingFiberToErrorsMap: Map<Fiber, Map<string, number>> = new Map();\n  const pendingFiberToWarningsMap: Map<Fiber, Map<string, number>> = new Map();\n\n  // Mapping of fiber IDs to error/warning messages and counts.\n  const fiberIDToErrorsMap: Map<number, Map<string, number>> = new Map();\n  const fiberIDToWarningsMap: Map<number, Map<string, number>> = new Map();\n\n  function clearErrorsAndWarnings() {\n    // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n    for (const id of fiberIDToErrorsMap.keys()) {\n      const fiber = idToArbitraryFiberMap.get(id);\n      if (fiber != null) {\n        fibersWithChangedErrorOrWarningCounts.add(fiber);\n        updateMostRecentlyInspectedElementIfNecessary(id);\n      }\n    }\n\n    // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n    for (const id of fiberIDToWarningsMap.keys()) {\n      const fiber = idToArbitraryFiberMap.get(id);\n      if (fiber != null) {\n        fibersWithChangedErrorOrWarningCounts.add(fiber);\n        updateMostRecentlyInspectedElementIfNecessary(id);\n      }\n    }\n\n    fiberIDToErrorsMap.clear();\n    fiberIDToWarningsMap.clear();\n\n    flushPendingEvents();\n  }\n\n  function clearMessageCountHelper(\n    fiberID: number,\n    pendingFiberToMessageCountMap: Map<Fiber, Map<string, number>>,\n    fiberIDToMessageCountMap: Map<number, Map<string, number>>,\n  ) {\n    const fiber = idToArbitraryFiberMap.get(fiberID);\n    if (fiber != null) {\n      // Throw out any pending changes.\n      pendingFiberToErrorsMap.delete(fiber);\n\n      if (fiberIDToMessageCountMap.has(fiberID)) {\n        fiberIDToMessageCountMap.delete(fiberID);\n\n        // If previous flushed counts have changed, schedule an update too.\n        fibersWithChangedErrorOrWarningCounts.add(fiber);\n        flushPendingEvents();\n\n        updateMostRecentlyInspectedElementIfNecessary(fiberID);\n      } else {\n        fibersWithChangedErrorOrWarningCounts.delete(fiber);\n      }\n    }\n  }\n\n  function clearErrorsForFiberID(fiberID: number) {\n    clearMessageCountHelper(\n      fiberID,\n      pendingFiberToErrorsMap,\n      fiberIDToErrorsMap,\n    );\n  }\n\n  function clearWarningsForFiberID(fiberID: number) {\n    clearMessageCountHelper(\n      fiberID,\n      pendingFiberToWarningsMap,\n      fiberIDToWarningsMap,\n    );\n  }\n\n  function updateMostRecentlyInspectedElementIfNecessary(\n    fiberID: number,\n  ): void {\n    if (\n      mostRecentlyInspectedElement !== null &&\n      mostRecentlyInspectedElement.id === fiberID\n    ) {\n      hasElementUpdatedSinceLastInspected = true;\n    }\n  }\n\n  // Called when an error or warning is logged during render, commit, or passive (including unmount functions).\n  function onErrorOrWarning(\n    fiber: Fiber,\n    type: 'error' | 'warn',\n    args: $ReadOnlyArray<any>,\n  ): void {\n    if (type === 'error') {\n      const maybeID = getFiberIDUnsafe(fiber);\n      // if this is an error simulated by us to trigger error boundary, ignore\n      if (maybeID != null && forceErrorForFiberIDs.get(maybeID) === true) {\n        return;\n      }\n    }\n\n    // We can't really use this message as a unique key, since we can't distinguish\n    // different objects in this implementation. We have to delegate displaying of the objects\n    // to the environment, the browser console, for example, so this is why this should be kept\n    // as an array of arguments, instead of the plain string.\n    // [Warning: %o, {...}] and [Warning: %o, {...}] will be considered as the same message,\n    // even if objects are different\n    const message = formatConsoleArgumentsToSingleString(...args);\n    if (__DEBUG__) {\n      debug('onErrorOrWarning', fiber, null, `${type}: \"${message}\"`);\n    }\n\n    // Mark this Fiber as needed its warning/error count updated during the next flush.\n    fibersWithChangedErrorOrWarningCounts.add(fiber);\n\n    // Track the warning/error for later.\n    const fiberMap =\n      type === 'error' ? pendingFiberToErrorsMap : pendingFiberToWarningsMap;\n    const messageMap = fiberMap.get(fiber);\n    if (messageMap != null) {\n      const count = messageMap.get(message) || 0;\n      messageMap.set(message, count + 1);\n    } else {\n      fiberMap.set(fiber, new Map([[message, 1]]));\n    }\n\n    // Passive effects may trigger errors or warnings too;\n    // In this case, we should wait until the rest of the passive effects have run,\n    // but we shouldn't wait until the next commit because that might be a long time.\n    // This would also cause \"tearing\" between an inspected Component and the tree view.\n    // Then again we don't want to flush too soon because this could be an error during async rendering.\n    // Use a debounce technique to ensure that we'll eventually flush.\n    flushPendingErrorsAndWarningsAfterDelay();\n  }\n\n  // Patching the console enables DevTools to do a few useful things:\n  // * Append component stacks to warnings and error messages\n  // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n  registerRendererWithConsole(renderer, onErrorOrWarning);\n\n  // The renderer interface can't read these preferences directly,\n  // because it is stored in localStorage within the context of the extension.\n  // It relies on the extension to pass the preference through via the global.\n  patchConsoleUsingWindowValues();\n\n  const debug = (\n    name: string,\n    fiber: Fiber,\n    parentFiber: ?Fiber,\n    extraString: string = '',\n  ): void => {\n    if (__DEBUG__) {\n      const displayName =\n        fiber.tag + ':' + (getDisplayNameForFiber(fiber) || 'null');\n\n      const maybeID = getFiberIDUnsafe(fiber) || '<no id>';\n      const parentDisplayName = parentFiber\n        ? parentFiber.tag +\n          ':' +\n          (getDisplayNameForFiber(parentFiber) || 'null')\n        : '';\n      const maybeParentID = parentFiber\n        ? getFiberIDUnsafe(parentFiber) || '<no-id>'\n        : '';\n\n      console.groupCollapsed(\n        `[renderer] %c${name} %c${displayName} (${maybeID}) %c${\n          parentFiber ? `${parentDisplayName} (${maybeParentID})` : ''\n        } %c${extraString}`,\n        'color: red; font-weight: bold;',\n        'color: blue;',\n        'color: purple;',\n        'color: black;',\n      );\n      console.log(new Error().stack.split('\\n').slice(1).join('\\n'));\n      console.groupEnd();\n    }\n  };\n\n  // Configurable Components tree filters.\n  const hideElementsWithDisplayNames: Set<RegExp> = new Set();\n  const hideElementsWithPaths: Set<RegExp> = new Set();\n  const hideElementsWithTypes: Set<ElementType> = new Set();\n\n  // Highlight updates\n  let traceUpdatesEnabled: boolean = false;\n  const traceUpdatesForNodes: Set<NativeType> = new Set();\n\n  function applyComponentFilters(componentFilters: Array<ComponentFilter>) {\n    hideElementsWithTypes.clear();\n    hideElementsWithDisplayNames.clear();\n    hideElementsWithPaths.clear();\n\n    componentFilters.forEach(componentFilter => {\n      if (!componentFilter.isEnabled) {\n        return;\n      }\n\n      switch (componentFilter.type) {\n        case ComponentFilterDisplayName:\n          if (componentFilter.isValid && componentFilter.value !== '') {\n            hideElementsWithDisplayNames.add(\n              new RegExp(componentFilter.value, 'i'),\n            );\n          }\n          break;\n        case ComponentFilterElementType:\n          hideElementsWithTypes.add(componentFilter.value);\n          break;\n        case ComponentFilterLocation:\n          if (componentFilter.isValid && componentFilter.value !== '') {\n            hideElementsWithPaths.add(new RegExp(componentFilter.value, 'i'));\n          }\n          break;\n        case ComponentFilterHOC:\n          hideElementsWithDisplayNames.add(new RegExp('\\\\('));\n          break;\n        default:\n          console.warn(\n            `Invalid component filter type \"${componentFilter.type}\"`,\n          );\n          break;\n      }\n    });\n  }\n\n  // The renderer interface can't read saved component filters directly,\n  // because they are stored in localStorage within the context of the extension.\n  // Instead it relies on the extension to pass filters through.\n  if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ != null) {\n    const componentFiltersWithoutLocationBasedOnes =\n      filterOutLocationComponentFilters(\n        window.__REACT_DEVTOOLS_COMPONENT_FILTERS__,\n      );\n    applyComponentFilters(componentFiltersWithoutLocationBasedOnes);\n  } else {\n    // Unfortunately this feature is not expected to work for React Native for now.\n    // It would be annoying for us to spam YellowBox warnings with unactionable stuff,\n    // so for now just skip this message...\n    //console.warn('⚛️ DevTools: Could not locate saved component filters');\n\n    // Fallback to assuming the default filters in this case.\n    applyComponentFilters(getDefaultComponentFilters());\n  }\n\n  // If necessary, we can revisit optimizing this operation.\n  // For example, we could add a new recursive unmount tree operation.\n  // The unmount operations are already significantly smaller than mount operations though.\n  // This is something to keep in mind for later.\n  function updateComponentFilters(componentFilters: Array<ComponentFilter>) {\n    if (isProfiling) {\n      // Re-mounting a tree while profiling is in progress might break a lot of assumptions.\n      // If necessary, we could support this- but it doesn't seem like a necessary use case.\n      throw Error('Cannot modify filter preferences while profiling');\n    }\n\n    // Recursively unmount all roots.\n    hook.getFiberRoots(rendererID).forEach(root => {\n      currentRootID = getOrGenerateFiberID(root.current);\n      // The TREE_OPERATION_REMOVE_ROOT operation serves two purposes:\n      // 1. It avoids sending unnecessary bridge traffic to clear a root.\n      // 2. It preserves Fiber IDs when remounting (below) which in turn ID to error/warning mapping.\n      pushOperation(TREE_OPERATION_REMOVE_ROOT);\n      flushPendingEvents(root);\n      currentRootID = -1;\n    });\n\n    applyComponentFilters(componentFilters);\n\n    // Reset pseudo counters so that new path selections will be persisted.\n    rootDisplayNameCounter.clear();\n\n    // Recursively re-mount all roots with new filter criteria applied.\n    hook.getFiberRoots(rendererID).forEach(root => {\n      currentRootID = getOrGenerateFiberID(root.current);\n      setRootPseudoKey(currentRootID, root.current);\n      mountFiberRecursively(root.current, null, false, false);\n      flushPendingEvents(root);\n      currentRootID = -1;\n    });\n\n    // Also re-evaluate all error and warning counts given the new filters.\n    reevaluateErrorsAndWarnings();\n    flushPendingEvents();\n  }\n\n  // NOTICE Keep in sync with get*ForFiber methods\n  function shouldFilterFiber(fiber: Fiber): boolean {\n    const {tag, type, key} = fiber;\n\n    switch (tag) {\n      case DehydratedSuspenseComponent:\n        // TODO: ideally we would show dehydrated Suspense immediately.\n        // However, it has some special behavior (like disconnecting\n        // an alternate and turning into real Suspense) which breaks DevTools.\n        // For now, ignore it, and only show it once it gets hydrated.\n        // https://github.com/bvaughn/react-devtools-experimental/issues/197\n        return true;\n      case HostPortal:\n      case HostText:\n      case LegacyHiddenComponent:\n      case OffscreenComponent:\n      case Throw:\n        return true;\n      case HostRoot:\n        // It is never valid to filter the root element.\n        return false;\n      case Fragment:\n        return key === null;\n      default:\n        const typeSymbol = getTypeSymbol(type);\n\n        switch (typeSymbol) {\n          case CONCURRENT_MODE_NUMBER:\n          case CONCURRENT_MODE_SYMBOL_STRING:\n          case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n          case STRICT_MODE_NUMBER:\n          case STRICT_MODE_SYMBOL_STRING:\n            return true;\n          default:\n            break;\n        }\n    }\n\n    const elementType = getElementTypeForFiber(fiber);\n    if (hideElementsWithTypes.has(elementType)) {\n      return true;\n    }\n\n    if (hideElementsWithDisplayNames.size > 0) {\n      const displayName = getDisplayNameForFiber(fiber);\n      if (displayName != null) {\n        // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n        for (const displayNameRegExp of hideElementsWithDisplayNames) {\n          if (displayNameRegExp.test(displayName)) {\n            return true;\n          }\n        }\n      }\n    }\n\n    /* DISABLED: https://github.com/facebook/react/pull/28417\n    if (hideElementsWithPaths.size > 0) {\n      const source = getSourceForFiber(fiber);\n\n      if (source != null) {\n        const {fileName} = source;\n        // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n        for (const pathRegExp of hideElementsWithPaths) {\n          if (pathRegExp.test(fileName)) {\n            return true;\n          }\n        }\n      }\n    }\n    */\n\n    return false;\n  }\n\n  // NOTICE Keep in sync with shouldFilterFiber() and other get*ForFiber methods\n  function getElementTypeForFiber(fiber: Fiber): ElementType {\n    const {type, tag} = fiber;\n\n    switch (tag) {\n      case ClassComponent:\n      case IncompleteClassComponent:\n        return ElementTypeClass;\n      case IncompleteFunctionComponent:\n      case FunctionComponent:\n      case IndeterminateComponent:\n        return ElementTypeFunction;\n      case ForwardRef:\n        return ElementTypeForwardRef;\n      case HostRoot:\n        return ElementTypeRoot;\n      case HostComponent:\n      case HostHoistable:\n      case HostSingleton:\n        return ElementTypeHostComponent;\n      case HostPortal:\n      case HostText:\n      case Fragment:\n        return ElementTypeOtherOrUnknown;\n      case MemoComponent:\n      case SimpleMemoComponent:\n        return ElementTypeMemo;\n      case SuspenseComponent:\n        return ElementTypeSuspense;\n      case SuspenseListComponent:\n        return ElementTypeSuspenseList;\n      case TracingMarkerComponent:\n        return ElementTypeTracingMarker;\n      default:\n        const typeSymbol = getTypeSymbol(type);\n\n        switch (typeSymbol) {\n          case CONCURRENT_MODE_NUMBER:\n          case CONCURRENT_MODE_SYMBOL_STRING:\n          case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:\n            return ElementTypeOtherOrUnknown;\n          case PROVIDER_NUMBER:\n          case PROVIDER_SYMBOL_STRING:\n            return ElementTypeContext;\n          case CONTEXT_NUMBER:\n          case CONTEXT_SYMBOL_STRING:\n            return ElementTypeContext;\n          case STRICT_MODE_NUMBER:\n          case STRICT_MODE_SYMBOL_STRING:\n            return ElementTypeOtherOrUnknown;\n          case PROFILER_NUMBER:\n          case PROFILER_SYMBOL_STRING:\n            return ElementTypeProfiler;\n          default:\n            return ElementTypeOtherOrUnknown;\n        }\n    }\n  }\n\n  // When profiling is supported, we store the latest tree base durations for each Fiber.\n  // This is so that we can quickly capture a snapshot of those values if profiling starts.\n  // If we didn't store these values, we'd have to crawl the tree when profiling started,\n  // and use a slow path to find each of the current Fibers.\n  const idToTreeBaseDurationMap: Map<number, number> = new Map();\n\n  // When profiling is supported, we store the latest tree base durations for each Fiber.\n  // This map enables us to filter these times by root when sending them to the frontend.\n  const idToRootMap: Map<number, number> = new Map();\n\n  // When a mount or update is in progress, this value tracks the root that is being operated on.\n  let currentRootID: number = -1;\n\n  // Returns the unique ID for a Fiber or generates and caches a new one if the Fiber hasn't been seen before.\n  // Once this method has been called for a Fiber, untrackFiberID() should always be called later to avoid leaking.\n  function getOrGenerateFiberID(fiber: Fiber): number {\n    let id = null;\n    if (fiberToIDMap.has(fiber)) {\n      id = fiberToIDMap.get(fiber);\n    } else {\n      const {alternate} = fiber;\n      if (alternate !== null && fiberToIDMap.has(alternate)) {\n        id = fiberToIDMap.get(alternate);\n      }\n    }\n\n    let didGenerateID = false;\n    if (id === null) {\n      didGenerateID = true;\n      id = getUID();\n    }\n\n    // This refinement is for Flow purposes only.\n    const refinedID = ((id: any): number);\n\n    // Make sure we're tracking this Fiber\n    // e.g. if it just mounted or an error was logged during initial render.\n    if (!fiberToIDMap.has(fiber)) {\n      fiberToIDMap.set(fiber, refinedID);\n      idToArbitraryFiberMap.set(refinedID, fiber);\n    }\n\n    // Also make sure we're tracking its alternate,\n    // e.g. in case this is the first update after mount.\n    const {alternate} = fiber;\n    if (alternate !== null) {\n      if (!fiberToIDMap.has(alternate)) {\n        fiberToIDMap.set(alternate, refinedID);\n      }\n    }\n\n    if (__DEBUG__) {\n      if (didGenerateID) {\n        debug(\n          'getOrGenerateFiberID()',\n          fiber,\n          fiber.return,\n          'Generated a new UID',\n        );\n      }\n    }\n\n    return refinedID;\n  }\n\n  // Returns an ID if one has already been generated for the Fiber or throws.\n  function getFiberIDThrows(fiber: Fiber): number {\n    const maybeID = getFiberIDUnsafe(fiber);\n    if (maybeID !== null) {\n      return maybeID;\n    }\n    throw Error(\n      `Could not find ID for Fiber \"${getDisplayNameForFiber(fiber) || ''}\"`,\n    );\n  }\n\n  // Returns an ID if one has already been generated for the Fiber or null if one has not been generated.\n  // Use this method while e.g. logging to avoid over-retaining Fibers.\n  function getFiberIDUnsafe(fiber: Fiber): number | null {\n    if (fiberToIDMap.has(fiber)) {\n      return ((fiberToIDMap.get(fiber): any): number);\n    } else {\n      const {alternate} = fiber;\n      if (alternate !== null && fiberToIDMap.has(alternate)) {\n        return ((fiberToIDMap.get(alternate): any): number);\n      }\n    }\n    return null;\n  }\n\n  // Removes a Fiber (and its alternate) from the Maps used to track their id.\n  // This method should always be called when a Fiber is unmounting.\n  function untrackFiberID(fiber: Fiber) {\n    if (__DEBUG__) {\n      debug('untrackFiberID()', fiber, fiber.return, 'schedule after delay');\n    }\n\n    // Untrack Fibers after a slight delay in order to support a Fast Refresh edge case:\n    // 1. Component type is updated and Fast Refresh schedules an update+remount.\n    // 2. flushPendingErrorsAndWarningsAfterDelay() runs, sees the old Fiber is no longer mounted\n    //    (it's been disconnected by Fast Refresh), and calls untrackFiberID() to clear it from the Map.\n    // 3. React flushes pending passive effects before it runs the next render,\n    //    which logs an error or warning, which causes a new ID to be generated for this Fiber.\n    // 4. DevTools now tries to unmount the old Component with the new ID.\n    //\n    // The underlying problem here is the premature clearing of the Fiber ID,\n    // but DevTools has no way to detect that a given Fiber has been scheduled for Fast Refresh.\n    // (The \"_debugNeedsRemount\" flag won't necessarily be set.)\n    //\n    // The best we can do is to delay untracking by a small amount,\n    // and give React time to process the Fast Refresh delay.\n\n    untrackFibersSet.add(fiber);\n\n    // React may detach alternate pointers during unmount;\n    // Since our untracking code is async, we should explicily track the pending alternate here as well.\n    const alternate = fiber.alternate;\n    if (alternate !== null) {\n      untrackFibersSet.add(alternate);\n    }\n\n    if (untrackFibersTimeoutID === null) {\n      untrackFibersTimeoutID = setTimeout(untrackFibers, 1000);\n    }\n  }\n\n  const untrackFibersSet: Set<Fiber> = new Set();\n  let untrackFibersTimeoutID: TimeoutID | null = null;\n\n  function untrackFibers() {\n    if (untrackFibersTimeoutID !== null) {\n      clearTimeout(untrackFibersTimeoutID);\n      untrackFibersTimeoutID = null;\n    }\n\n    untrackFibersSet.forEach(fiber => {\n      const fiberID = getFiberIDUnsafe(fiber);\n      if (fiberID !== null) {\n        idToArbitraryFiberMap.delete(fiberID);\n\n        // Also clear any errors/warnings associated with this fiber.\n        clearErrorsForFiberID(fiberID);\n        clearWarningsForFiberID(fiberID);\n      }\n\n      fiberToIDMap.delete(fiber);\n      fiberToComponentStackMap.delete(fiber);\n\n      const {alternate} = fiber;\n      if (alternate !== null) {\n        fiberToIDMap.delete(alternate);\n        fiberToComponentStackMap.delete(alternate);\n      }\n\n      if (forceErrorForFiberIDs.has(fiberID)) {\n        forceErrorForFiberIDs.delete(fiberID);\n        if (forceErrorForFiberIDs.size === 0 && setErrorHandler != null) {\n          setErrorHandler(shouldErrorFiberAlwaysNull);\n        }\n      }\n    });\n    untrackFibersSet.clear();\n  }\n\n  function getChangeDescription(\n    prevFiber: Fiber | null,\n    nextFiber: Fiber,\n  ): ChangeDescription | null {\n    switch (getElementTypeForFiber(nextFiber)) {\n      case ElementTypeClass:\n      case ElementTypeFunction:\n      case ElementTypeMemo:\n      case ElementTypeForwardRef:\n        if (prevFiber === null) {\n          return {\n            context: null,\n            didHooksChange: false,\n            isFirstMount: true,\n            props: null,\n            state: null,\n          };\n        } else {\n          const data: ChangeDescription = {\n            context: getContextChangedKeys(nextFiber),\n            didHooksChange: false,\n            isFirstMount: false,\n            props: getChangedKeys(\n              prevFiber.memoizedProps,\n              nextFiber.memoizedProps,\n            ),\n            state: getChangedKeys(\n              prevFiber.memoizedState,\n              nextFiber.memoizedState,\n            ),\n          };\n\n          // Only traverse the hooks list once, depending on what info we're returning.\n          const indices = getChangedHooksIndices(\n            prevFiber.memoizedState,\n            nextFiber.memoizedState,\n          );\n          data.hooks = indices;\n          data.didHooksChange = indices !== null && indices.length > 0;\n\n          return data;\n        }\n      default:\n        return null;\n    }\n  }\n\n  function updateContextsForFiber(fiber: Fiber) {\n    switch (getElementTypeForFiber(fiber)) {\n      case ElementTypeClass:\n      case ElementTypeForwardRef:\n      case ElementTypeFunction:\n      case ElementTypeMemo:\n        if (idToContextsMap !== null) {\n          const id = getFiberIDThrows(fiber);\n          const contexts = getContextsForFiber(fiber);\n          if (contexts !== null) {\n            // $FlowFixMe[incompatible-use] found when upgrading Flow\n            idToContextsMap.set(id, contexts);\n          }\n        }\n        break;\n      default:\n        break;\n    }\n  }\n\n  // Differentiates between a null context value and no context.\n  const NO_CONTEXT = {};\n\n  function getContextsForFiber(fiber: Fiber): [Object, any] | null {\n    let legacyContext = NO_CONTEXT;\n    let modernContext = NO_CONTEXT;\n\n    switch (getElementTypeForFiber(fiber)) {\n      case ElementTypeClass:\n        const instance = fiber.stateNode;\n        if (instance != null) {\n          if (\n            instance.constructor &&\n            instance.constructor.contextType != null\n          ) {\n            modernContext = instance.context;\n          } else {\n            legacyContext = instance.context;\n            if (legacyContext && Object.keys(legacyContext).length === 0) {\n              legacyContext = NO_CONTEXT;\n            }\n          }\n        }\n        return [legacyContext, modernContext];\n      case ElementTypeForwardRef:\n      case ElementTypeFunction:\n      case ElementTypeMemo:\n        const dependencies = fiber.dependencies;\n        if (dependencies && dependencies.firstContext) {\n          modernContext = dependencies.firstContext;\n        }\n\n        return [legacyContext, modernContext];\n      default:\n        return null;\n    }\n  }\n\n  // Record all contexts at the time profiling is started.\n  // Fibers only store the current context value,\n  // so we need to track them separately in order to determine changed keys.\n  function crawlToInitializeContextsMap(fiber: Fiber) {\n    const id = getFiberIDUnsafe(fiber);\n\n    // Not all Fibers in the subtree have mounted yet.\n    // For example, Offscreen (hidden) or Suspense (suspended) subtrees won't yet be tracked.\n    // We can safely skip these subtrees.\n    if (id !== null) {\n      updateContextsForFiber(fiber);\n\n      let current = fiber.child;\n      while (current !== null) {\n        crawlToInitializeContextsMap(current);\n        current = current.sibling;\n      }\n    }\n  }\n\n  function getContextChangedKeys(fiber: Fiber): null | boolean | Array<string> {\n    if (idToContextsMap !== null) {\n      const id = getFiberIDThrows(fiber);\n      // $FlowFixMe[incompatible-use] found when upgrading Flow\n      const prevContexts = idToContextsMap.has(id)\n        ? // $FlowFixMe[incompatible-use] found when upgrading Flow\n          idToContextsMap.get(id)\n        : null;\n      const nextContexts = getContextsForFiber(fiber);\n\n      if (prevContexts == null || nextContexts == null) {\n        return null;\n      }\n\n      const [prevLegacyContext, prevModernContext] = prevContexts;\n      const [nextLegacyContext, nextModernContext] = nextContexts;\n\n      switch (getElementTypeForFiber(fiber)) {\n        case ElementTypeClass:\n          if (prevContexts && nextContexts) {\n            if (nextLegacyContext !== NO_CONTEXT) {\n              return getChangedKeys(prevLegacyContext, nextLegacyContext);\n            } else if (nextModernContext !== NO_CONTEXT) {\n              return prevModernContext !== nextModernContext;\n            }\n          }\n          break;\n        case ElementTypeForwardRef:\n        case ElementTypeFunction:\n        case ElementTypeMemo:\n          if (nextModernContext !== NO_CONTEXT) {\n            let prevContext = prevModernContext;\n            let nextContext = nextModernContext;\n\n            while (prevContext && nextContext) {\n              // Note this only works for versions of React that support this key (e.v. 18+)\n              // For older versions, there's no good way to read the current context value after render has completed.\n              // This is because React maintains a stack of context values during render,\n              // but by the time DevTools is called, render has finished and the stack is empty.\n              if (!is(prevContext.memoizedValue, nextContext.memoizedValue)) {\n                return true;\n              }\n\n              prevContext = prevContext.next;\n              nextContext = nextContext.next;\n            }\n\n            return false;\n          }\n          break;\n        default:\n          break;\n      }\n    }\n    return null;\n  }\n\n  function isHookThatCanScheduleUpdate(hookObject: any) {\n    const queue = hookObject.queue;\n    if (!queue) {\n      return false;\n    }\n\n    const boundHasOwnProperty = hasOwnProperty.bind(queue);\n\n    // Detect the shape of useState() / useReducer() / useTransition()\n    // using the attributes that are unique to these hooks\n    // but also stable (e.g. not tied to current Lanes implementation)\n    // We don't check for dispatch property, because useTransition doesn't have it\n    if (boundHasOwnProperty('pending')) {\n      return true;\n    }\n\n    // Detect useSyncExternalStore()\n    return (\n      boundHasOwnProperty('value') &&\n      boundHasOwnProperty('getSnapshot') &&\n      typeof queue.getSnapshot === 'function'\n    );\n  }\n\n  function didStatefulHookChange(prev: any, next: any): boolean {\n    const prevMemoizedState = prev.memoizedState;\n    const nextMemoizedState = next.memoizedState;\n\n    if (isHookThatCanScheduleUpdate(prev)) {\n      return prevMemoizedState !== nextMemoizedState;\n    }\n\n    return false;\n  }\n\n  function getChangedHooksIndices(prev: any, next: any): null | Array<number> {\n    if (prev == null || next == null) {\n      return null;\n    }\n\n    const indices = [];\n    let index = 0;\n    if (\n      next.hasOwnProperty('baseState') &&\n      next.hasOwnProperty('memoizedState') &&\n      next.hasOwnProperty('next') &&\n      next.hasOwnProperty('queue')\n    ) {\n      while (next !== null) {\n        if (didStatefulHookChange(prev, next)) {\n          indices.push(index);\n        }\n        next = next.next;\n        prev = prev.next;\n        index++;\n      }\n    }\n\n    return indices;\n  }\n\n  function getChangedKeys(prev: any, next: any): null | Array<string> {\n    if (prev == null || next == null) {\n      return null;\n    }\n\n    // We can't report anything meaningful for hooks changes.\n    if (\n      next.hasOwnProperty('baseState') &&\n      next.hasOwnProperty('memoizedState') &&\n      next.hasOwnProperty('next') &&\n      next.hasOwnProperty('queue')\n    ) {\n      return null;\n    }\n\n    const keys = new Set([...Object.keys(prev), ...Object.keys(next)]);\n    const changedKeys = [];\n    // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n    for (const key of keys) {\n      if (prev[key] !== next[key]) {\n        changedKeys.push(key);\n      }\n    }\n\n    return changedKeys;\n  }\n\n  function didFiberRender(prevFiber: Fiber, nextFiber: Fiber): boolean {\n    switch (nextFiber.tag) {\n      case ClassComponent:\n      case FunctionComponent:\n      case ContextConsumer:\n      case MemoComponent:\n      case SimpleMemoComponent:\n      case ForwardRef:\n        // For types that execute user code, we check PerformedWork effect.\n        // We don't reflect bailouts (either referential or sCU) in DevTools.\n        // TODO: This flag is a leaked implementation detail. Once we start\n        // releasing DevTools in lockstep with React, we should import a\n        // function from the reconciler instead.\n        const PerformedWork = 0b000000000000000000000000001;\n        return (getFiberFlags(nextFiber) & PerformedWork) === PerformedWork;\n      // Note: ContextConsumer only gets PerformedWork effect in 16.3.3+\n      // so it won't get highlighted with React 16.3.0 to 16.3.2.\n      default:\n        // For host components and other types, we compare inputs\n        // to determine whether something is an update.\n        return (\n          prevFiber.memoizedProps !== nextFiber.memoizedProps ||\n          prevFiber.memoizedState !== nextFiber.memoizedState ||\n          prevFiber.ref !== nextFiber.ref\n        );\n    }\n  }\n\n  type OperationsArray = Array<number>;\n\n  type StringTableEntry = {\n    encodedString: Array<number>,\n    id: number,\n  };\n\n  const pendingOperations: OperationsArray = [];\n  const pendingRealUnmountedIDs: Array<number> = [];\n  const pendingSimulatedUnmountedIDs: Array<number> = [];\n  let pendingOperationsQueue: Array<OperationsArray> | null = [];\n  const pendingStringTable: Map<string, StringTableEntry> = new Map();\n  let pendingStringTableLength: number = 0;\n  let pendingUnmountedRootID: number | null = null;\n\n  function pushOperation(op: number): void {\n    if (__DEV__) {\n      if (!Number.isInteger(op)) {\n        console.error(\n          'pushOperation() was called but the value is not an integer.',\n          op,\n        );\n      }\n    }\n    pendingOperations.push(op);\n  }\n\n  function shouldBailoutWithPendingOperations() {\n    if (isProfiling) {\n      if (\n        currentCommitProfilingMetadata != null &&\n        currentCommitProfilingMetadata.durations.length > 0\n      ) {\n        return false;\n      }\n    }\n\n    return (\n      pendingOperations.length === 0 &&\n      pendingRealUnmountedIDs.length === 0 &&\n      pendingSimulatedUnmountedIDs.length === 0 &&\n      pendingUnmountedRootID === null\n    );\n  }\n\n  function flushOrQueueOperations(operations: OperationsArray): void {\n    if (shouldBailoutWithPendingOperations()) {\n      return;\n    }\n\n    if (pendingOperationsQueue !== null) {\n      pendingOperationsQueue.push(operations);\n    } else {\n      hook.emit('operations', operations);\n    }\n  }\n\n  let flushPendingErrorsAndWarningsAfterDelayTimeoutID: null | TimeoutID = null;\n\n  function clearPendingErrorsAndWarningsAfterDelay() {\n    if (flushPendingErrorsAndWarningsAfterDelayTimeoutID !== null) {\n      clearTimeout(flushPendingErrorsAndWarningsAfterDelayTimeoutID);\n      flushPendingErrorsAndWarningsAfterDelayTimeoutID = null;\n    }\n  }\n\n  function flushPendingErrorsAndWarningsAfterDelay() {\n    clearPendingErrorsAndWarningsAfterDelay();\n\n    flushPendingErrorsAndWarningsAfterDelayTimeoutID = setTimeout(() => {\n      flushPendingErrorsAndWarningsAfterDelayTimeoutID = null;\n\n      if (pendingOperations.length > 0) {\n        // On the off chance that something else has pushed pending operations,\n        // we should bail on warnings; it's probably not safe to push midway.\n        return;\n      }\n\n      recordPendingErrorsAndWarnings();\n\n      if (shouldBailoutWithPendingOperations()) {\n        // No warnings or errors to flush; we can bail out early here too.\n        return;\n      }\n\n      // We can create a smaller operations array than flushPendingEvents()\n      // because we only need to flush warning and error counts.\n      // Only a few pieces of fixed information are required up front.\n      const operations: OperationsArray = new Array(\n        3 + pendingOperations.length,\n      );\n      operations[0] = rendererID;\n      operations[1] = currentRootID;\n      operations[2] = 0; // String table size\n      for (let j = 0; j < pendingOperations.length; j++) {\n        operations[3 + j] = pendingOperations[j];\n      }\n\n      flushOrQueueOperations(operations);\n\n      pendingOperations.length = 0;\n    }, 1000);\n  }\n\n  function reevaluateErrorsAndWarnings() {\n    fibersWithChangedErrorOrWarningCounts.clear();\n    fiberIDToErrorsMap.forEach((countMap, fiberID) => {\n      const fiber = idToArbitraryFiberMap.get(fiberID);\n      if (fiber != null) {\n        fibersWithChangedErrorOrWarningCounts.add(fiber);\n      }\n    });\n    fiberIDToWarningsMap.forEach((countMap, fiberID) => {\n      const fiber = idToArbitraryFiberMap.get(fiberID);\n      if (fiber != null) {\n        fibersWithChangedErrorOrWarningCounts.add(fiber);\n      }\n    });\n    recordPendingErrorsAndWarnings();\n  }\n\n  function mergeMapsAndGetCountHelper(\n    fiber: Fiber,\n    fiberID: number,\n    pendingFiberToMessageCountMap: Map<Fiber, Map<string, number>>,\n    fiberIDToMessageCountMap: Map<number, Map<string, number>>,\n  ): number {\n    let newCount = 0;\n\n    let messageCountMap = fiberIDToMessageCountMap.get(fiberID);\n\n    const pendingMessageCountMap = pendingFiberToMessageCountMap.get(fiber);\n    if (pendingMessageCountMap != null) {\n      if (messageCountMap == null) {\n        messageCountMap = pendingMessageCountMap;\n\n        fiberIDToMessageCountMap.set(fiberID, pendingMessageCountMap);\n      } else {\n        // This Flow refinement should not be necessary and yet...\n        const refinedMessageCountMap = ((messageCountMap: any): Map<\n          string,\n          number,\n        >);\n\n        pendingMessageCountMap.forEach((pendingCount, message) => {\n          const previousCount = refinedMessageCountMap.get(message) || 0;\n          refinedMessageCountMap.set(message, previousCount + pendingCount);\n        });\n      }\n    }\n\n    if (!shouldFilterFiber(fiber)) {\n      if (messageCountMap != null) {\n        messageCountMap.forEach(count => {\n          newCount += count;\n        });\n      }\n    }\n\n    pendingFiberToMessageCountMap.delete(fiber);\n\n    return newCount;\n  }\n\n  function recordPendingErrorsAndWarnings() {\n    clearPendingErrorsAndWarningsAfterDelay();\n\n    fibersWithChangedErrorOrWarningCounts.forEach(fiber => {\n      const fiberID = getFiberIDUnsafe(fiber);\n      if (fiberID === null) {\n        // Don't send updates for Fibers that didn't mount due to e.g. Suspense or an error boundary.\n      } else {\n        const errorCount = mergeMapsAndGetCountHelper(\n          fiber,\n          fiberID,\n          pendingFiberToErrorsMap,\n          fiberIDToErrorsMap,\n        );\n        const warningCount = mergeMapsAndGetCountHelper(\n          fiber,\n          fiberID,\n          pendingFiberToWarningsMap,\n          fiberIDToWarningsMap,\n        );\n\n        pushOperation(TREE_OPERATION_UPDATE_ERRORS_OR_WARNINGS);\n        pushOperation(fiberID);\n        pushOperation(errorCount);\n        pushOperation(warningCount);\n      }\n\n      // Always clean up so that we don't leak.\n      pendingFiberToErrorsMap.delete(fiber);\n      pendingFiberToWarningsMap.delete(fiber);\n    });\n    fibersWithChangedErrorOrWarningCounts.clear();\n  }\n\n  function flushPendingEvents(root: Object): void {\n    // Add any pending errors and warnings to the operations array.\n    // We do this just before flushing, so we can ignore errors for no-longer-mounted Fibers.\n    recordPendingErrorsAndWarnings();\n\n    if (shouldBailoutWithPendingOperations()) {\n      // If we aren't profiling, we can just bail out here.\n      // No use sending an empty update over the bridge.\n      //\n      // The Profiler stores metadata for each commit and reconstructs the app tree per commit using:\n      // (1) an initial tree snapshot and\n      // (2) the operations array for each commit\n      // Because of this, it's important that the operations and metadata arrays align,\n      // So it's important not to omit even empty operations while profiling is active.\n      return;\n    }\n\n    const numUnmountIDs =\n      pendingRealUnmountedIDs.length +\n      pendingSimulatedUnmountedIDs.length +\n      (pendingUnmountedRootID === null ? 0 : 1);\n\n    const operations = new Array<number>(\n      // Identify which renderer this update is coming from.\n      2 + // [rendererID, rootFiberID]\n        // How big is the string table?\n        1 + // [stringTableLength]\n        // Then goes the actual string table.\n        pendingStringTableLength +\n        // All unmounts are batched in a single message.\n        // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n        (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n        // Regular operations\n        pendingOperations.length,\n    );\n\n    // Identify which renderer this update is coming from.\n    // This enables roots to be mapped to renderers,\n    // Which in turn enables fiber props, states, and hooks to be inspected.\n    let i = 0;\n    operations[i++] = rendererID;\n    operations[i++] = currentRootID;\n\n    // Now fill in the string table.\n    // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n    operations[i++] = pendingStringTableLength;\n    pendingStringTable.forEach((entry, stringKey) => {\n      const encodedString = entry.encodedString;\n\n      // Don't use the string length.\n      // It won't work for multibyte characters (like emoji).\n      const length = encodedString.length;\n\n      operations[i++] = length;\n      for (let j = 0; j < length; j++) {\n        operations[i + j] = encodedString[j];\n      }\n\n      i += length;\n    });\n\n    if (numUnmountIDs > 0) {\n      // All unmounts except roots are batched in a single message.\n      operations[i++] = TREE_OPERATION_REMOVE;\n      // The first number is how many unmounted IDs we're gonna send.\n      operations[i++] = numUnmountIDs;\n      // Fill in the real unmounts in the reverse order.\n      // They were inserted parents-first by React, but we want children-first.\n      // So we traverse our array backwards.\n      for (let j = pendingRealUnmountedIDs.length - 1; j >= 0; j--) {\n        operations[i++] = pendingRealUnmountedIDs[j];\n      }\n      // Fill in the simulated unmounts (hidden Suspense subtrees) in their order.\n      // (We want children to go before parents.)\n      // They go *after* the real unmounts because we know for sure they won't be\n      // children of already pushed \"real\" IDs. If they were, we wouldn't be able\n      // to discover them during the traversal, as they would have been deleted.\n      for (let j = 0; j < pendingSimulatedUnmountedIDs.length; j++) {\n        operations[i + j] = pendingSimulatedUnmountedIDs[j];\n      }\n      i += pendingSimulatedUnmountedIDs.length;\n      // The root ID should always be unmounted last.\n      if (pendingUnmountedRootID !== null) {\n        operations[i] = pendingUnmountedRootID;\n        i++;\n      }\n    }\n    // Fill in the rest of the operations.\n    for (let j = 0; j < pendingOperations.length; j++) {\n      operations[i + j] = pendingOperations[j];\n    }\n    i += pendingOperations.length;\n\n    // Let the frontend know about tree operations.\n    flushOrQueueOperations(operations);\n\n    // Reset all of the pending state now that we've told the frontend about it.\n    pendingOperations.length = 0;\n    pendingRealUnmountedIDs.length = 0;\n    pendingSimulatedUnmountedIDs.length = 0;\n    pendingUnmountedRootID = null;\n    pendingStringTable.clear();\n    pendingStringTableLength = 0;\n  }\n\n  function getStringID(string: string | null): number {\n    if (string === null) {\n      return 0;\n    }\n    const existingEntry = pendingStringTable.get(string);\n    if (existingEntry !== undefined) {\n      return existingEntry.id;\n    }\n\n    const id = pendingStringTable.size + 1;\n    const encodedString = utfEncodeString(string);\n\n    pendingStringTable.set(string, {\n      encodedString,\n      id,\n    });\n\n    // The string table total length needs to account both for the string length,\n    // and for the array item that contains the length itself.\n    //\n    // Don't use string length for this table.\n    // It won't work for multibyte characters (like emoji).\n    pendingStringTableLength += encodedString.length + 1;\n\n    return id;\n  }\n\n  function recordMount(fiber: Fiber, parentFiber: Fiber | null) {\n    const isRoot = fiber.tag === HostRoot;\n    const id = getOrGenerateFiberID(fiber);\n\n    if (__DEBUG__) {\n      debug('recordMount()', fiber, parentFiber);\n    }\n\n    const hasOwnerMetadata = fiber.hasOwnProperty('_debugOwner');\n    const isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n\n    // Adding a new field here would require a bridge protocol version bump (a backwads breaking change).\n    // Instead let's re-purpose a pre-existing field to carry more information.\n    let profilingFlags = 0;\n    if (isProfilingSupported) {\n      profilingFlags = PROFILING_FLAG_BASIC_SUPPORT;\n      if (typeof injectProfilingHooks === 'function') {\n        profilingFlags |= PROFILING_FLAG_TIMELINE_SUPPORT;\n      }\n    }\n\n    if (isRoot) {\n      // Set supportsStrictMode to false for production renderer builds\n      const isProductionBuildOfRenderer = renderer.bundleType === 0;\n\n      pushOperation(TREE_OPERATION_ADD);\n      pushOperation(id);\n      pushOperation(ElementTypeRoot);\n      pushOperation((fiber.mode & StrictModeBits) !== 0 ? 1 : 0);\n      pushOperation(profilingFlags);\n      pushOperation(\n        !isProductionBuildOfRenderer && StrictModeBits !== 0 ? 1 : 0,\n      );\n      pushOperation(hasOwnerMetadata ? 1 : 0);\n\n      if (isProfiling) {\n        if (displayNamesByRootID !== null) {\n          displayNamesByRootID.set(id, getDisplayNameForRoot(fiber));\n        }\n      }\n    } else {\n      const {key} = fiber;\n      const displayName = getDisplayNameForFiber(fiber);\n      const elementType = getElementTypeForFiber(fiber);\n      const debugOwner = fiber._debugOwner;\n\n      // Ideally we should call getFiberIDThrows() for _debugOwner,\n      // since owners are almost always higher in the tree (and so have already been processed),\n      // but in some (rare) instances reported in open source, a descendant mounts before an owner.\n      // Since this is a DEV only field it's probably okay to also just lazily generate and ID here if needed.\n      // See https://github.com/facebook/react/issues/21445\n      let ownerID: number;\n      if (debugOwner != null) {\n        if (typeof debugOwner.tag === 'number') {\n          ownerID = getOrGenerateFiberID((debugOwner: any));\n        } else {\n          // TODO: Track Server Component Owners.\n          ownerID = 0;\n        }\n      } else {\n        ownerID = 0;\n      }\n      const parentID = parentFiber ? getFiberIDThrows(parentFiber) : 0;\n\n      const displayNameStringID = getStringID(displayName);\n\n      // This check is a guard to handle a React element that has been modified\n      // in such a way as to bypass the default stringification of the \"key\" property.\n      const keyString = key === null ? null : String(key);\n      const keyStringID = getStringID(keyString);\n\n      pushOperation(TREE_OPERATION_ADD);\n      pushOperation(id);\n      pushOperation(elementType);\n      pushOperation(parentID);\n      pushOperation(ownerID);\n      pushOperation(displayNameStringID);\n      pushOperation(keyStringID);\n\n      // If this subtree has a new mode, let the frontend know.\n      if (\n        (fiber.mode & StrictModeBits) !== 0 &&\n        (((parentFiber: any): Fiber).mode & StrictModeBits) === 0\n      ) {\n        pushOperation(TREE_OPERATION_SET_SUBTREE_MODE);\n        pushOperation(id);\n        pushOperation(StrictMode);\n      }\n    }\n\n    if (isProfilingSupported) {\n      idToRootMap.set(id, currentRootID);\n\n      recordProfilingDurations(fiber);\n    }\n  }\n\n  function recordUnmount(fiber: Fiber, isSimulated: boolean) {\n    if (__DEBUG__) {\n      debug(\n        'recordUnmount()',\n        fiber,\n        null,\n        isSimulated ? 'unmount is simulated' : '',\n      );\n    }\n\n    if (trackedPathMatchFiber !== null) {\n      // We're in the process of trying to restore previous selection.\n      // If this fiber matched but is being unmounted, there's no use trying.\n      // Reset the state so we don't keep holding onto it.\n      if (\n        fiber === trackedPathMatchFiber ||\n        fiber === trackedPathMatchFiber.alternate\n      ) {\n        setTrackedPath(null);\n      }\n    }\n\n    const unsafeID = getFiberIDUnsafe(fiber);\n    if (unsafeID === null) {\n      // If we've never seen this Fiber, it might be inside of a legacy render Suspense fragment (so the store is not even aware of it).\n      // In that case we can just ignore it or it will cause errors later on.\n      // One example of this is a Lazy component that never resolves before being unmounted.\n      //\n      // This also might indicate a Fast Refresh force-remount scenario.\n      //\n      // TODO: This is fragile and can obscure actual bugs.\n      return;\n    }\n\n    // Flow refinement.\n    const id = ((unsafeID: any): number);\n    const isRoot = fiber.tag === HostRoot;\n    if (isRoot) {\n      // Roots must be removed only after all children (pending and simulated) have been removed.\n      // So we track it separately.\n      pendingUnmountedRootID = id;\n    } else if (!shouldFilterFiber(fiber)) {\n      // To maintain child-first ordering,\n      // we'll push it into one of these queues,\n      // and later arrange them in the correct order.\n      if (isSimulated) {\n        pendingSimulatedUnmountedIDs.push(id);\n      } else {\n        pendingRealUnmountedIDs.push(id);\n      }\n    }\n\n    if (!fiber._debugNeedsRemount) {\n      untrackFiberID(fiber);\n\n      const isProfilingSupported = fiber.hasOwnProperty('treeBaseDuration');\n      if (isProfilingSupported) {\n        idToRootMap.delete(id);\n        idToTreeBaseDurationMap.delete(id);\n      }\n    }\n  }\n\n  function mountFiberRecursively(\n    firstChild: Fiber,\n    parentFiber: Fiber | null,\n    traverseSiblings: boolean,\n    traceNearestHostComponentUpdate: boolean,\n  ) {\n    // Iterate over siblings rather than recursing.\n    // This reduces the chance of stack overflow for wide trees (e.g. lists with many items).\n    let fiber: Fiber | null = firstChild;\n    while (fiber !== null) {\n      // Generate an ID even for filtered Fibers, in case it's needed later (e.g. for Profiling).\n      getOrGenerateFiberID(fiber);\n\n      if (__DEBUG__) {\n        debug('mountFiberRecursively()', fiber, parentFiber);\n      }\n\n      // If we have the tree selection from previous reload, try to match this Fiber.\n      // Also remember whether to do the same for siblings.\n      const mightSiblingsBeOnTrackedPath =\n        updateTrackedPathStateBeforeMount(fiber);\n\n      const shouldIncludeInTree = !shouldFilterFiber(fiber);\n      if (shouldIncludeInTree) {\n        recordMount(fiber, parentFiber);\n      }\n\n      if (traceUpdatesEnabled) {\n        if (traceNearestHostComponentUpdate) {\n          const elementType = getElementTypeForFiber(fiber);\n          // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n          if (elementType === ElementTypeHostComponent) {\n            traceUpdatesForNodes.add(fiber.stateNode);\n            traceNearestHostComponentUpdate = false;\n          }\n        }\n\n        // We intentionally do not re-enable the traceNearestHostComponentUpdate flag in this branch,\n        // because we don't want to highlight every host node inside of a newly mounted subtree.\n      }\n\n      const isSuspense = fiber.tag === ReactTypeOfWork.SuspenseComponent;\n      if (isSuspense) {\n        const isTimedOut = fiber.memoizedState !== null;\n        if (isTimedOut) {\n          // Special case: if Suspense mounts in a timed-out state,\n          // get the fallback child from the inner fragment and mount\n          // it as if it was our own child. Updates handle this too.\n          const primaryChildFragment = fiber.child;\n          const fallbackChildFragment = primaryChildFragment\n            ? primaryChildFragment.sibling\n            : null;\n          const fallbackChild = fallbackChildFragment\n            ? fallbackChildFragment.child\n            : null;\n          if (fallbackChild !== null) {\n            mountFiberRecursively(\n              fallbackChild,\n              shouldIncludeInTree ? fiber : parentFiber,\n              true,\n              traceNearestHostComponentUpdate,\n            );\n          }\n        } else {\n          let primaryChild: Fiber | null = null;\n          const areSuspenseChildrenConditionallyWrapped =\n            OffscreenComponent === -1;\n          if (areSuspenseChildrenConditionallyWrapped) {\n            primaryChild = fiber.child;\n          } else if (fiber.child !== null) {\n            primaryChild = fiber.child.child;\n          }\n          if (primaryChild !== null) {\n            mountFiberRecursively(\n              primaryChild,\n              shouldIncludeInTree ? fiber : parentFiber,\n              true,\n              traceNearestHostComponentUpdate,\n            );\n          }\n        }\n      } else {\n        if (fiber.child !== null) {\n          mountFiberRecursively(\n            fiber.child,\n            shouldIncludeInTree ? fiber : parentFiber,\n            true,\n            traceNearestHostComponentUpdate,\n          );\n        }\n      }\n\n      // We're exiting this Fiber now, and entering its siblings.\n      // If we have selection to restore, we might need to re-activate tracking.\n      updateTrackedPathStateAfterMount(mightSiblingsBeOnTrackedPath);\n\n      fiber = traverseSiblings ? fiber.sibling : null;\n    }\n  }\n\n  // We use this to simulate unmounting for Suspense trees\n  // when we switch from primary to fallback.\n  function unmountFiberChildrenRecursively(fiber: Fiber) {\n    if (__DEBUG__) {\n      debug('unmountFiberChildrenRecursively()', fiber);\n    }\n\n    // We might meet a nested Suspense on our way.\n    const isTimedOutSuspense =\n      fiber.tag === ReactTypeOfWork.SuspenseComponent &&\n      fiber.memoizedState !== null;\n\n    let child = fiber.child;\n    if (isTimedOutSuspense) {\n      // If it's showing fallback tree, let's traverse it instead.\n      const primaryChildFragment = fiber.child;\n      const fallbackChildFragment = primaryChildFragment\n        ? primaryChildFragment.sibling\n        : null;\n      // Skip over to the real Fiber child.\n      child = fallbackChildFragment ? fallbackChildFragment.child : null;\n    }\n\n    while (child !== null) {\n      // Record simulated unmounts children-first.\n      // We skip nodes without return because those are real unmounts.\n      if (child.return !== null) {\n        unmountFiberChildrenRecursively(child);\n        recordUnmount(child, true);\n      }\n      child = child.sibling;\n    }\n  }\n\n  function recordProfilingDurations(fiber: Fiber) {\n    const id = getFiberIDThrows(fiber);\n    const {actualDuration, treeBaseDuration} = fiber;\n\n    idToTreeBaseDurationMap.set(id, treeBaseDuration || 0);\n\n    if (isProfiling) {\n      const {alternate} = fiber;\n\n      // It's important to update treeBaseDuration even if the current Fiber did not render,\n      // because it's possible that one of its descendants did.\n      if (\n        alternate == null ||\n        treeBaseDuration !== alternate.treeBaseDuration\n      ) {\n        // Tree base duration updates are included in the operations typed array.\n        // So we have to convert them from milliseconds to microseconds so we can send them as ints.\n        const convertedTreeBaseDuration = Math.floor(\n          (treeBaseDuration || 0) * 1000,\n        );\n        pushOperation(TREE_OPERATION_UPDATE_TREE_BASE_DURATION);\n        pushOperation(id);\n        pushOperation(convertedTreeBaseDuration);\n      }\n\n      if (alternate == null || didFiberRender(alternate, fiber)) {\n        if (actualDuration != null) {\n          // The actual duration reported by React includes time spent working on children.\n          // This is useful information, but it's also useful to be able to exclude child durations.\n          // The frontend can't compute this, since the immediate children may have been filtered out.\n          // So we need to do this on the backend.\n          // Note that this calculated self duration is not the same thing as the base duration.\n          // The two are calculated differently (tree duration does not accumulate).\n          let selfDuration = actualDuration;\n          let child = fiber.child;\n          while (child !== null) {\n            selfDuration -= child.actualDuration || 0;\n            child = child.sibling;\n          }\n\n          // If profiling is active, store durations for elements that were rendered during the commit.\n          // Note that we should do this for any fiber we performed work on, regardless of its actualDuration value.\n          // In some cases actualDuration might be 0 for fibers we worked on (particularly if we're using Date.now)\n          // In other cases (e.g. Memo) actualDuration might be greater than 0 even if we \"bailed out\".\n          const metadata =\n            ((currentCommitProfilingMetadata: any): CommitProfilingData);\n          metadata.durations.push(id, actualDuration, selfDuration);\n          metadata.maxActualDuration = Math.max(\n            metadata.maxActualDuration,\n            actualDuration,\n          );\n\n          if (recordChangeDescriptions) {\n            const changeDescription = getChangeDescription(alternate, fiber);\n            if (changeDescription !== null) {\n              if (metadata.changeDescriptions !== null) {\n                metadata.changeDescriptions.set(id, changeDescription);\n              }\n            }\n\n            updateContextsForFiber(fiber);\n          }\n        }\n      }\n    }\n  }\n\n  function recordResetChildren(fiber: Fiber, childSet: Fiber) {\n    if (__DEBUG__) {\n      debug('recordResetChildren()', childSet, fiber);\n    }\n    // The frontend only really cares about the displayName, key, and children.\n    // The first two don't really change, so we are only concerned with the order of children here.\n    // This is trickier than a simple comparison though, since certain types of fibers are filtered.\n    const nextChildren: Array<number> = [];\n\n    // This is a naive implementation that shallowly recourses children.\n    // We might want to revisit this if it proves to be too inefficient.\n    let child: null | Fiber = childSet;\n    while (child !== null) {\n      findReorderedChildrenRecursively(child, nextChildren);\n      child = child.sibling;\n    }\n\n    const numChildren = nextChildren.length;\n    if (numChildren < 2) {\n      // No need to reorder.\n      return;\n    }\n    pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n    pushOperation(getFiberIDThrows(fiber));\n    pushOperation(numChildren);\n    for (let i = 0; i < nextChildren.length; i++) {\n      pushOperation(nextChildren[i]);\n    }\n  }\n\n  function findReorderedChildrenRecursively(\n    fiber: Fiber,\n    nextChildren: Array<number>,\n  ) {\n    if (!shouldFilterFiber(fiber)) {\n      nextChildren.push(getFiberIDThrows(fiber));\n    } else {\n      let child = fiber.child;\n      const isTimedOutSuspense =\n        fiber.tag === SuspenseComponent && fiber.memoizedState !== null;\n      if (isTimedOutSuspense) {\n        // Special case: if Suspense mounts in a timed-out state,\n        // get the fallback child from the inner fragment,\n        // and skip over the primary child.\n        const primaryChildFragment = fiber.child;\n        const fallbackChildFragment = primaryChildFragment\n          ? primaryChildFragment.sibling\n          : null;\n        const fallbackChild = fallbackChildFragment\n          ? fallbackChildFragment.child\n          : null;\n        if (fallbackChild !== null) {\n          child = fallbackChild;\n        }\n      }\n      while (child !== null) {\n        findReorderedChildrenRecursively(child, nextChildren);\n        child = child.sibling;\n      }\n    }\n  }\n\n  // Returns whether closest unfiltered fiber parent needs to reset its child list.\n  function updateFiberRecursively(\n    nextFiber: Fiber,\n    prevFiber: Fiber,\n    parentFiber: Fiber | null,\n    traceNearestHostComponentUpdate: boolean,\n  ): boolean {\n    const id = getOrGenerateFiberID(nextFiber);\n\n    if (__DEBUG__) {\n      debug('updateFiberRecursively()', nextFiber, parentFiber);\n    }\n\n    if (traceUpdatesEnabled) {\n      const elementType = getElementTypeForFiber(nextFiber);\n      if (traceNearestHostComponentUpdate) {\n        // If an ancestor updated, we should mark the nearest host nodes for highlighting.\n        if (elementType === ElementTypeHostComponent) {\n          traceUpdatesForNodes.add(nextFiber.stateNode);\n          traceNearestHostComponentUpdate = false;\n        }\n      } else {\n        if (\n          elementType === ElementTypeFunction ||\n          elementType === ElementTypeClass ||\n          elementType === ElementTypeContext ||\n          elementType === ElementTypeMemo ||\n          elementType === ElementTypeForwardRef\n        ) {\n          // Otherwise if this is a traced ancestor, flag for the nearest host descendant(s).\n          traceNearestHostComponentUpdate = didFiberRender(\n            prevFiber,\n            nextFiber,\n          );\n        }\n      }\n    }\n\n    if (\n      mostRecentlyInspectedElement !== null &&\n      mostRecentlyInspectedElement.id === id &&\n      didFiberRender(prevFiber, nextFiber)\n    ) {\n      // If this Fiber has updated, clear cached inspected data.\n      // If it is inspected again, it may need to be re-run to obtain updated hooks values.\n      hasElementUpdatedSinceLastInspected = true;\n    }\n\n    const shouldIncludeInTree = !shouldFilterFiber(nextFiber);\n    const isSuspense = nextFiber.tag === SuspenseComponent;\n    let shouldResetChildren = false;\n    // The behavior of timed-out Suspense trees is unique.\n    // Rather than unmount the timed out content (and possibly lose important state),\n    // React re-parents this content within a hidden Fragment while the fallback is showing.\n    // This behavior doesn't need to be observable in the DevTools though.\n    // It might even result in a bad user experience for e.g. node selection in the Elements panel.\n    // The easiest fix is to strip out the intermediate Fragment fibers,\n    // so the Elements panel and Profiler don't need to special case them.\n    // Suspense components only have a non-null memoizedState if they're timed-out.\n    const prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;\n    const nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null;\n    // The logic below is inspired by the code paths in updateSuspenseComponent()\n    // inside ReactFiberBeginWork in the React source code.\n    if (prevDidTimeout && nextDidTimeOut) {\n      // Fallback -> Fallback:\n      // 1. Reconcile fallback set.\n      const nextFiberChild = nextFiber.child;\n      const nextFallbackChildSet = nextFiberChild\n        ? nextFiberChild.sibling\n        : null;\n      // Note: We can't use nextFiber.child.sibling.alternate\n      // because the set is special and alternate may not exist.\n      const prevFiberChild = prevFiber.child;\n      const prevFallbackChildSet = prevFiberChild\n        ? prevFiberChild.sibling\n        : null;\n\n      if (prevFallbackChildSet == null && nextFallbackChildSet != null) {\n        mountFiberRecursively(\n          nextFallbackChildSet,\n          shouldIncludeInTree ? nextFiber : parentFiber,\n          true,\n          traceNearestHostComponentUpdate,\n        );\n\n        shouldResetChildren = true;\n      }\n\n      if (\n        nextFallbackChildSet != null &&\n        prevFallbackChildSet != null &&\n        updateFiberRecursively(\n          nextFallbackChildSet,\n          prevFallbackChildSet,\n          nextFiber,\n          traceNearestHostComponentUpdate,\n        )\n      ) {\n        shouldResetChildren = true;\n      }\n    } else if (prevDidTimeout && !nextDidTimeOut) {\n      // Fallback -> Primary:\n      // 1. Unmount fallback set\n      // Note: don't emulate fallback unmount because React actually did it.\n      // 2. Mount primary set\n      const nextPrimaryChildSet = nextFiber.child;\n      if (nextPrimaryChildSet !== null) {\n        mountFiberRecursively(\n          nextPrimaryChildSet,\n          shouldIncludeInTree ? nextFiber : parentFiber,\n          true,\n          traceNearestHostComponentUpdate,\n        );\n      }\n      shouldResetChildren = true;\n    } else if (!prevDidTimeout && nextDidTimeOut) {\n      // Primary -> Fallback:\n      // 1. Hide primary set\n      // This is not a real unmount, so it won't get reported by React.\n      // We need to manually walk the previous tree and record unmounts.\n      unmountFiberChildrenRecursively(prevFiber);\n      // 2. Mount fallback set\n      const nextFiberChild = nextFiber.child;\n      const nextFallbackChildSet = nextFiberChild\n        ? nextFiberChild.sibling\n        : null;\n      if (nextFallbackChildSet != null) {\n        mountFiberRecursively(\n          nextFallbackChildSet,\n          shouldIncludeInTree ? nextFiber : parentFiber,\n          true,\n          traceNearestHostComponentUpdate,\n        );\n        shouldResetChildren = true;\n      }\n    } else {\n      // Common case: Primary -> Primary.\n      // This is the same code path as for non-Suspense fibers.\n      if (nextFiber.child !== prevFiber.child) {\n        // If the first child is different, we need to traverse them.\n        // Each next child will be either a new child (mount) or an alternate (update).\n        let nextChild = nextFiber.child;\n        let prevChildAtSameIndex = prevFiber.child;\n        while (nextChild) {\n          // We already know children will be referentially different because\n          // they are either new mounts or alternates of previous children.\n          // Schedule updates and mounts depending on whether alternates exist.\n          // We don't track deletions here because they are reported separately.\n          if (nextChild.alternate) {\n            const prevChild = nextChild.alternate;\n            if (\n              updateFiberRecursively(\n                nextChild,\n                prevChild,\n                shouldIncludeInTree ? nextFiber : parentFiber,\n                traceNearestHostComponentUpdate,\n              )\n            ) {\n              // If a nested tree child order changed but it can't handle its own\n              // child order invalidation (e.g. because it's filtered out like host nodes),\n              // propagate the need to reset child order upwards to this Fiber.\n              shouldResetChildren = true;\n            }\n            // However we also keep track if the order of the children matches\n            // the previous order. They are always different referentially, but\n            // if the instances line up conceptually we'll want to know that.\n            if (prevChild !== prevChildAtSameIndex) {\n              shouldResetChildren = true;\n            }\n          } else {\n            mountFiberRecursively(\n              nextChild,\n              shouldIncludeInTree ? nextFiber : parentFiber,\n              false,\n              traceNearestHostComponentUpdate,\n            );\n            shouldResetChildren = true;\n          }\n          // Try the next child.\n          nextChild = nextChild.sibling;\n          // Advance the pointer in the previous list so that we can\n          // keep comparing if they line up.\n          if (!shouldResetChildren && prevChildAtSameIndex !== null) {\n            prevChildAtSameIndex = prevChildAtSameIndex.sibling;\n          }\n        }\n        // If we have no more children, but used to, they don't line up.\n        if (prevChildAtSameIndex !== null) {\n          shouldResetChildren = true;\n        }\n      } else {\n        if (traceUpdatesEnabled) {\n          // If we're tracing updates and we've bailed out before reaching a host node,\n          // we should fall back to recursively marking the nearest host descendants for highlight.\n          if (traceNearestHostComponentUpdate) {\n            const hostFibers = findAllCurrentHostFibers(\n              getFiberIDThrows(nextFiber),\n            );\n            hostFibers.forEach(hostFiber => {\n              traceUpdatesForNodes.add(hostFiber.stateNode);\n            });\n          }\n        }\n      }\n    }\n\n    if (shouldIncludeInTree) {\n      const isProfilingSupported = nextFiber.hasOwnProperty('treeBaseDuration');\n      if (isProfilingSupported) {\n        recordProfilingDurations(nextFiber);\n      }\n    }\n    if (shouldResetChildren) {\n      // We need to crawl the subtree for closest non-filtered Fibers\n      // so that we can display them in a flat children set.\n      if (shouldIncludeInTree) {\n        // Normally, search for children from the rendered child.\n        let nextChildSet = nextFiber.child;\n        if (nextDidTimeOut) {\n          // Special case: timed-out Suspense renders the fallback set.\n          const nextFiberChild = nextFiber.child;\n          nextChildSet = nextFiberChild ? nextFiberChild.sibling : null;\n        }\n        if (nextChildSet != null) {\n          recordResetChildren(nextFiber, nextChildSet);\n        }\n        // We've handled the child order change for this Fiber.\n        // Since it's included, there's no need to invalidate parent child order.\n        return false;\n      } else {\n        // Let the closest unfiltered parent Fiber reset its child order instead.\n        return true;\n      }\n    } else {\n      return false;\n    }\n  }\n\n  function cleanup() {\n    // We don't patch any methods so there is no cleanup.\n  }\n\n  function rootSupportsProfiling(root: any) {\n    if (root.memoizedInteractions != null) {\n      // v16 builds include this field for the scheduler/tracing API.\n      return true;\n    } else if (\n      root.current != null &&\n      root.current.hasOwnProperty('treeBaseDuration')\n    ) {\n      // The scheduler/tracing API was removed in v17 though\n      // so we need to check a non-root Fiber.\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  function flushInitialOperations() {\n    const localPendingOperationsQueue = pendingOperationsQueue;\n\n    pendingOperationsQueue = null;\n\n    if (\n      localPendingOperationsQueue !== null &&\n      localPendingOperationsQueue.length > 0\n    ) {\n      // We may have already queued up some operations before the frontend connected\n      // If so, let the frontend know about them.\n      localPendingOperationsQueue.forEach(operations => {\n        hook.emit('operations', operations);\n      });\n    } else {\n      // Before the traversals, remember to start tracking\n      // our path in case we have selection to restore.\n      if (trackedPath !== null) {\n        mightBeOnTrackedPath = true;\n      }\n      // If we have not been profiling, then we can just walk the tree and build up its current state as-is.\n      hook.getFiberRoots(rendererID).forEach(root => {\n        currentRootID = getOrGenerateFiberID(root.current);\n        setRootPseudoKey(currentRootID, root.current);\n\n        // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n        if (isProfiling && rootSupportsProfiling(root)) {\n          // If profiling is active, store commit time and duration.\n          // The frontend may request this information after profiling has stopped.\n          currentCommitProfilingMetadata = {\n            changeDescriptions: recordChangeDescriptions ? new Map() : null,\n            durations: [],\n            commitTime: getCurrentTime() - profilingStartTime,\n            maxActualDuration: 0,\n            priorityLevel: null,\n            updaters: getUpdatersList(root),\n            effectDuration: null,\n            passiveEffectDuration: null,\n          };\n        }\n\n        mountFiberRecursively(root.current, null, false, false);\n        flushPendingEvents(root);\n        currentRootID = -1;\n      });\n    }\n  }\n\n  function getUpdatersList(root: any): Array<SerializedElement> | null {\n    return root.memoizedUpdaters != null\n      ? Array.from(root.memoizedUpdaters)\n          .filter(fiber => getFiberIDUnsafe(fiber) !== null)\n          .map(fiberToSerializedElement)\n      : null;\n  }\n\n  function handleCommitFiberUnmount(fiber: any) {\n    // If the untrackFiberSet already has the unmounted Fiber, this means we've already\n    // recordedUnmount, so we don't need to do it again. If we don't do this, we might\n    // end up double-deleting Fibers in some cases (like Legacy Suspense).\n    if (!untrackFibersSet.has(fiber)) {\n      // This is not recursive.\n      // We can't traverse fibers after unmounting so instead\n      // we rely on React telling us about each unmount.\n      recordUnmount(fiber, false);\n    }\n  }\n\n  function handlePostCommitFiberRoot(root: any) {\n    if (isProfiling && rootSupportsProfiling(root)) {\n      if (currentCommitProfilingMetadata !== null) {\n        const {effectDuration, passiveEffectDuration} =\n          getEffectDurations(root);\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentCommitProfilingMetadata.effectDuration = effectDuration;\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        currentCommitProfilingMetadata.passiveEffectDuration =\n          passiveEffectDuration;\n      }\n    }\n  }\n\n  function handleCommitFiberRoot(root: any, priorityLevel: void | number) {\n    const current = root.current;\n    const alternate = current.alternate;\n\n    // Flush any pending Fibers that we are untracking before processing the new commit.\n    // If we don't do this, we might end up double-deleting Fibers in some cases (like Legacy Suspense).\n    untrackFibers();\n\n    currentRootID = getOrGenerateFiberID(current);\n\n    // Before the traversals, remember to start tracking\n    // our path in case we have selection to restore.\n    if (trackedPath !== null) {\n      mightBeOnTrackedPath = true;\n    }\n\n    if (traceUpdatesEnabled) {\n      traceUpdatesForNodes.clear();\n    }\n\n    // Handle multi-renderer edge-case where only some v16 renderers support profiling.\n    const isProfilingSupported = rootSupportsProfiling(root);\n\n    if (isProfiling && isProfilingSupported) {\n      // If profiling is active, store commit time and duration.\n      // The frontend may request this information after profiling has stopped.\n      currentCommitProfilingMetadata = {\n        changeDescriptions: recordChangeDescriptions ? new Map() : null,\n        durations: [],\n        commitTime: getCurrentTime() - profilingStartTime,\n        maxActualDuration: 0,\n        priorityLevel:\n          priorityLevel == null ? null : formatPriorityLevel(priorityLevel),\n\n        updaters: getUpdatersList(root),\n\n        // Initialize to null; if new enough React version is running,\n        // these values will be read during separate handlePostCommitFiberRoot() call.\n        effectDuration: null,\n        passiveEffectDuration: null,\n      };\n    }\n\n    if (alternate) {\n      // TODO: relying on this seems a bit fishy.\n      const wasMounted =\n        alternate.memoizedState != null &&\n        alternate.memoizedState.element != null &&\n        // A dehydrated root is not considered mounted\n        alternate.memoizedState.isDehydrated !== true;\n      const isMounted =\n        current.memoizedState != null &&\n        current.memoizedState.element != null &&\n        // A dehydrated root is not considered mounted\n        current.memoizedState.isDehydrated !== true;\n      if (!wasMounted && isMounted) {\n        // Mount a new root.\n        setRootPseudoKey(currentRootID, current);\n        mountFiberRecursively(current, null, false, false);\n      } else if (wasMounted && isMounted) {\n        // Update an existing root.\n        updateFiberRecursively(current, alternate, null, false);\n      } else if (wasMounted && !isMounted) {\n        // Unmount an existing root.\n        removeRootPseudoKey(currentRootID);\n        recordUnmount(current, false);\n      }\n    } else {\n      // Mount a new root.\n      setRootPseudoKey(currentRootID, current);\n      mountFiberRecursively(current, null, false, false);\n    }\n\n    if (isProfiling && isProfilingSupported) {\n      if (!shouldBailoutWithPendingOperations()) {\n        const commitProfilingMetadata =\n          ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).get(\n            currentRootID,\n          );\n\n        if (commitProfilingMetadata != null) {\n          commitProfilingMetadata.push(\n            ((currentCommitProfilingMetadata: any): CommitProfilingData),\n          );\n        } else {\n          ((rootToCommitProfilingMetadataMap: any): CommitProfilingMetadataMap).set(\n            currentRootID,\n            [((currentCommitProfilingMetadata: any): CommitProfilingData)],\n          );\n        }\n      }\n    }\n\n    // We're done here.\n    flushPendingEvents(root);\n\n    if (traceUpdatesEnabled) {\n      hook.emit('traceUpdates', traceUpdatesForNodes);\n    }\n\n    currentRootID = -1;\n  }\n\n  function findAllCurrentHostFibers(id: number): $ReadOnlyArray<Fiber> {\n    const fibers = [];\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (!fiber) {\n      return fibers;\n    }\n\n    // Next we'll drill down this component to find all HostComponent/Text.\n    let node: Fiber = fiber;\n    while (true) {\n      if (node.tag === HostComponent || node.tag === HostText) {\n        fibers.push(node);\n      } else if (node.child) {\n        node.child.return = node;\n        node = node.child;\n        continue;\n      }\n      if (node === fiber) {\n        return fibers;\n      }\n      while (!node.sibling) {\n        if (!node.return || node.return === fiber) {\n          return fibers;\n        }\n        node = node.return;\n      }\n      node.sibling.return = node.return;\n      node = node.sibling;\n    }\n    // Flow needs the return here, but ESLint complains about it.\n    // eslint-disable-next-line no-unreachable\n    return fibers;\n  }\n\n  function findNativeNodesForFiberID(id: number) {\n    try {\n      const fiber = findCurrentFiberUsingSlowPathById(id);\n      if (fiber === null) {\n        return null;\n      }\n\n      const hostFibers = findAllCurrentHostFibers(id);\n      return hostFibers.map(hostFiber => hostFiber.stateNode).filter(Boolean);\n    } catch (err) {\n      // The fiber might have unmounted by now.\n      return null;\n    }\n  }\n\n  function getDisplayNameForFiberID(id: number): null | string {\n    const fiber = idToArbitraryFiberMap.get(id);\n    return fiber != null ? getDisplayNameForFiber(fiber) : null;\n  }\n\n  function getFiberForNative(hostInstance: NativeType) {\n    return renderer.findFiberByHostInstance(hostInstance);\n  }\n\n  function getFiberIDForNative(\n    hostInstance: NativeType,\n    findNearestUnfilteredAncestor: boolean = false,\n  ) {\n    let fiber = renderer.findFiberByHostInstance(hostInstance);\n    if (fiber != null) {\n      if (findNearestUnfilteredAncestor) {\n        while (fiber !== null && shouldFilterFiber(fiber)) {\n          fiber = fiber.return;\n        }\n      }\n      return getFiberIDThrows(((fiber: any): Fiber));\n    }\n    return null;\n  }\n\n  // This function is copied from React and should be kept in sync:\n  // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n  function assertIsMounted(fiber: Fiber) {\n    if (getNearestMountedFiber(fiber) !== fiber) {\n      throw new Error('Unable to find node on an unmounted component.');\n    }\n  }\n\n  // This function is copied from React and should be kept in sync:\n  // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n  function getNearestMountedFiber(fiber: Fiber): null | Fiber {\n    let node = fiber;\n    let nearestMounted: null | Fiber = fiber;\n    if (!fiber.alternate) {\n      // If there is no alternate, this might be a new tree that isn't inserted\n      // yet. If it is, then it will have a pending insertion effect on it.\n      let nextNode: Fiber = node;\n      do {\n        node = nextNode;\n        // TODO: This function, and these flags, are a leaked implementation\n        // detail. Once we start releasing DevTools in lockstep with React, we\n        // should import a function from the reconciler instead.\n        const Placement = 0b000000000000000000000000010;\n        const Hydrating = 0b000000000000001000000000000;\n        if ((node.flags & (Placement | Hydrating)) !== 0) {\n          // This is an insertion or in-progress hydration. The nearest possible\n          // mounted fiber is the parent but we need to continue to figure out\n          // if that one is still mounted.\n          nearestMounted = node.return;\n        }\n        // $FlowFixMe[incompatible-type] we bail out when we get a null\n        nextNode = node.return;\n      } while (nextNode);\n    } else {\n      while (node.return) {\n        node = node.return;\n      }\n    }\n    if (node.tag === HostRoot) {\n      // TODO: Check if this was a nested HostRoot when used with\n      // renderContainerIntoSubtree.\n      return nearestMounted;\n    }\n    // If we didn't hit the root, that means that we're in an disconnected tree\n    // that has been unmounted.\n    return null;\n  }\n\n  // This function is copied from React and should be kept in sync:\n  // https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberTreeReflection.js\n  // It would be nice if we updated React to inject this function directly (vs just indirectly via findDOMNode).\n  // BEGIN copied code\n  function findCurrentFiberUsingSlowPathById(id: number): Fiber | null {\n    const fiber = idToArbitraryFiberMap.get(id);\n    if (fiber == null) {\n      console.warn(`Could not find Fiber with id \"${id}\"`);\n      return null;\n    }\n\n    const alternate = fiber.alternate;\n    if (!alternate) {\n      // If there is no alternate, then we only need to check if it is mounted.\n      const nearestMounted = getNearestMountedFiber(fiber);\n\n      if (nearestMounted === null) {\n        throw new Error('Unable to find node on an unmounted component.');\n      }\n\n      if (nearestMounted !== fiber) {\n        return null;\n      }\n      return fiber;\n    }\n    // If we have two possible branches, we'll walk backwards up to the root\n    // to see what path the root points to. On the way we may hit one of the\n    // special cases and we'll deal with them.\n    let a: Fiber = fiber;\n    let b: Fiber = alternate;\n    while (true) {\n      const parentA = a.return;\n      if (parentA === null) {\n        // We're at the root.\n        break;\n      }\n      const parentB = parentA.alternate;\n      if (parentB === null) {\n        // There is no alternate. This is an unusual case. Currently, it only\n        // happens when a Suspense component is hidden. An extra fragment fiber\n        // is inserted in between the Suspense fiber and its children. Skip\n        // over this extra fragment fiber and proceed to the next parent.\n        const nextParent = parentA.return;\n        if (nextParent !== null) {\n          a = b = nextParent;\n          continue;\n        }\n        // If there's no parent, we're at the root.\n        break;\n      }\n\n      // If both copies of the parent fiber point to the same child, we can\n      // assume that the child is current. This happens when we bailout on low\n      // priority: the bailed out fiber's child reuses the current child.\n      if (parentA.child === parentB.child) {\n        let child = parentA.child;\n        while (child) {\n          if (child === a) {\n            // We've determined that A is the current branch.\n            assertIsMounted(parentA);\n            return fiber;\n          }\n          if (child === b) {\n            // We've determined that B is the current branch.\n            assertIsMounted(parentA);\n            return alternate;\n          }\n          child = child.sibling;\n        }\n\n        // We should never have an alternate for any mounting node. So the only\n        // way this could possibly happen is if this was unmounted, if at all.\n        throw new Error('Unable to find node on an unmounted component.');\n      }\n\n      if (a.return !== b.return) {\n        // The return pointer of A and the return pointer of B point to different\n        // fibers. We assume that return pointers never criss-cross, so A must\n        // belong to the child set of A.return, and B must belong to the child\n        // set of B.return.\n        a = parentA;\n        b = parentB;\n      } else {\n        // The return pointers point to the same fiber. We'll have to use the\n        // default, slow path: scan the child sets of each parent alternate to see\n        // which child belongs to which set.\n        //\n        // Search parent A's child set\n        let didFindChild = false;\n        let child = parentA.child;\n        while (child) {\n          if (child === a) {\n            didFindChild = true;\n            a = parentA;\n            b = parentB;\n            break;\n          }\n          if (child === b) {\n            didFindChild = true;\n            b = parentA;\n            a = parentB;\n            break;\n          }\n          child = child.sibling;\n        }\n        if (!didFindChild) {\n          // Search parent B's child set\n          child = parentB.child;\n          while (child) {\n            if (child === a) {\n              didFindChild = true;\n              a = parentB;\n              b = parentA;\n              break;\n            }\n            if (child === b) {\n              didFindChild = true;\n              b = parentB;\n              a = parentA;\n              break;\n            }\n            child = child.sibling;\n          }\n\n          if (!didFindChild) {\n            throw new Error(\n              'Child was not found in either parent set. This indicates a bug ' +\n                'in React related to the return pointer. Please file an issue.',\n            );\n          }\n        }\n      }\n\n      if (a.alternate !== b) {\n        throw new Error(\n          \"Return fibers should always be each others' alternates. \" +\n            'This error is likely caused by a bug in React. Please file an issue.',\n        );\n      }\n    }\n\n    // If the root is not a host container, we're in a disconnected tree. I.e.\n    // unmounted.\n    if (a.tag !== HostRoot) {\n      throw new Error('Unable to find node on an unmounted component.');\n    }\n\n    if (a.stateNode.current === a) {\n      // We've determined that A is the current branch.\n      return fiber;\n    }\n    // Otherwise B has to be current branch.\n    return alternate;\n  }\n\n  // END copied code\n\n  function prepareViewAttributeSource(\n    id: number,\n    path: Array<string | number>,\n  ): void {\n    if (isMostRecentlyInspectedElement(id)) {\n      window.$attribute = getInObject(\n        ((mostRecentlyInspectedElement: any): InspectedElement),\n        path,\n      );\n    }\n  }\n\n  function prepareViewElementSource(id: number): void {\n    const fiber = idToArbitraryFiberMap.get(id);\n    if (fiber == null) {\n      console.warn(`Could not find Fiber with id \"${id}\"`);\n      return;\n    }\n\n    const {elementType, tag, type} = fiber;\n\n    switch (tag) {\n      case ClassComponent:\n      case IncompleteClassComponent:\n      case IncompleteFunctionComponent:\n      case IndeterminateComponent:\n      case FunctionComponent:\n        global.$type = type;\n        break;\n      case ForwardRef:\n        global.$type = type.render;\n        break;\n      case MemoComponent:\n      case SimpleMemoComponent:\n        global.$type =\n          elementType != null && elementType.type != null\n            ? elementType.type\n            : type;\n        break;\n      default:\n        global.$type = null;\n        break;\n    }\n  }\n\n  function fiberToSerializedElement(fiber: Fiber): SerializedElement {\n    return {\n      displayName: getDisplayNameForFiber(fiber) || 'Anonymous',\n      id: getFiberIDThrows(fiber),\n      key: fiber.key,\n      type: getElementTypeForFiber(fiber),\n    };\n  }\n\n  function getOwnersList(id: number): Array<SerializedElement> | null {\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (fiber == null) {\n      return null;\n    }\n\n    const owners: Array<SerializedElement> = [fiberToSerializedElement(fiber)];\n\n    let owner = fiber._debugOwner;\n    while (owner != null) {\n      if (typeof owner.tag === 'number') {\n        const ownerFiber: Fiber = (owner: any); // Refined\n        owners.unshift(fiberToSerializedElement(ownerFiber));\n        owner = ownerFiber._debugOwner;\n      } else {\n        // TODO: Track Server Component Owners.\n        break;\n      }\n    }\n\n    return owners;\n  }\n\n  // Fast path props lookup for React Native style editor.\n  // Could use inspectElementRaw() but that would require shallow rendering hooks components,\n  // and could also mess with memoization.\n  function getInstanceAndStyle(id: number): InstanceAndStyle {\n    let instance = null;\n    let style = null;\n\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (fiber !== null) {\n      instance = fiber.stateNode;\n\n      if (fiber.memoizedProps !== null) {\n        style = fiber.memoizedProps.style;\n      }\n    }\n\n    return {instance, style};\n  }\n\n  function isErrorBoundary(fiber: Fiber): boolean {\n    const {tag, type} = fiber;\n\n    switch (tag) {\n      case ClassComponent:\n      case IncompleteClassComponent:\n        const instance = fiber.stateNode;\n        return (\n          typeof type.getDerivedStateFromError === 'function' ||\n          (instance !== null &&\n            typeof instance.componentDidCatch === 'function')\n        );\n      default:\n        return false;\n    }\n  }\n\n  function getNearestErrorBoundaryID(fiber: Fiber): number | null {\n    let parent = fiber.return;\n    while (parent !== null) {\n      if (isErrorBoundary(parent)) {\n        return getFiberIDUnsafe(parent);\n      }\n      parent = parent.return;\n    }\n    return null;\n  }\n\n  function inspectElementRaw(id: number): InspectedElement | null {\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (fiber == null) {\n      return null;\n    }\n\n    const {\n      _debugOwner: debugOwner,\n      stateNode,\n      key,\n      memoizedProps,\n      memoizedState,\n      dependencies,\n      tag,\n      type,\n    } = fiber;\n\n    const elementType = getElementTypeForFiber(fiber);\n\n    const usesHooks =\n      (tag === FunctionComponent ||\n        tag === SimpleMemoComponent ||\n        tag === ForwardRef) &&\n      (!!memoizedState || !!dependencies);\n\n    // TODO Show custom UI for Cache like we do for Suspense\n    // For now, just hide state data entirely since it's not meant to be inspected.\n    const showState = !usesHooks && tag !== CacheComponent;\n\n    const typeSymbol = getTypeSymbol(type);\n\n    let canViewSource = false;\n    let context = null;\n    if (\n      tag === ClassComponent ||\n      tag === FunctionComponent ||\n      tag === IncompleteClassComponent ||\n      tag === IncompleteFunctionComponent ||\n      tag === IndeterminateComponent ||\n      tag === MemoComponent ||\n      tag === ForwardRef ||\n      tag === SimpleMemoComponent\n    ) {\n      canViewSource = true;\n      if (stateNode && stateNode.context != null) {\n        // Don't show an empty context object for class components that don't use the context API.\n        const shouldHideContext =\n          elementType === ElementTypeClass &&\n          !(type.contextTypes || type.contextType);\n\n        if (!shouldHideContext) {\n          context = stateNode.context;\n        }\n      }\n    } else if (\n      // Detect pre-19 Context Consumers\n      (typeSymbol === CONTEXT_NUMBER || typeSymbol === CONTEXT_SYMBOL_STRING) &&\n      !(\n        // In 19+, CONTEXT_SYMBOL_STRING means a Provider instead.\n        // It will be handled in a different branch below.\n        // Eventually, this entire branch can be removed.\n        (type._context === undefined && type.Provider === type)\n      )\n    ) {\n      // 16.3-16.5 read from \"type\" because the Consumer is the actual context object.\n      // 16.6+ should read from \"type._context\" because Consumer can be different (in DEV).\n      // NOTE Keep in sync with getDisplayNameForFiber()\n      const consumerResolvedContext = type._context || type;\n\n      // Global context value.\n      context = consumerResolvedContext._currentValue || null;\n\n      // Look for overridden value.\n      let current = ((fiber: any): Fiber).return;\n      while (current !== null) {\n        const currentType = current.type;\n        const currentTypeSymbol = getTypeSymbol(currentType);\n        if (\n          currentTypeSymbol === PROVIDER_NUMBER ||\n          currentTypeSymbol === PROVIDER_SYMBOL_STRING\n        ) {\n          // 16.3.0 exposed the context object as \"context\"\n          // PR #12501 changed it to \"_context\" for 16.3.1+\n          // NOTE Keep in sync with getDisplayNameForFiber()\n          const providerResolvedContext =\n            currentType._context || currentType.context;\n          if (providerResolvedContext === consumerResolvedContext) {\n            context = current.memoizedProps.value;\n            break;\n          }\n        }\n\n        current = current.return;\n      }\n    } else if (\n      // Detect 19+ Context Consumers\n      typeSymbol === CONSUMER_SYMBOL_STRING\n    ) {\n      // This branch is 19+ only, where Context.Provider === Context.\n      // NOTE Keep in sync with getDisplayNameForFiber()\n      const consumerResolvedContext = type._context;\n\n      // Global context value.\n      context = consumerResolvedContext._currentValue || null;\n\n      // Look for overridden value.\n      let current = ((fiber: any): Fiber).return;\n      while (current !== null) {\n        const currentType = current.type;\n        const currentTypeSymbol = getTypeSymbol(currentType);\n        if (\n          // In 19+, these are Context Providers\n          currentTypeSymbol === CONTEXT_SYMBOL_STRING\n        ) {\n          const providerResolvedContext = currentType;\n          if (providerResolvedContext === consumerResolvedContext) {\n            context = current.memoizedProps.value;\n            break;\n          }\n        }\n\n        current = current.return;\n      }\n    }\n\n    let hasLegacyContext = false;\n    if (context !== null) {\n      hasLegacyContext = !!type.contextTypes;\n\n      // To simplify hydration and display logic for context, wrap in a value object.\n      // Otherwise simple values (e.g. strings, booleans) become harder to handle.\n      context = {value: context};\n    }\n\n    let owners: null | Array<SerializedElement> = null;\n    let owner = debugOwner;\n    while (owner != null) {\n      if (typeof owner.tag === 'number') {\n        const ownerFiber: Fiber = (owner: any); // Refined\n        if (owners === null) {\n          owners = [];\n        }\n        owners.push(fiberToSerializedElement(ownerFiber));\n        owner = ownerFiber._debugOwner;\n      } else {\n        // TODO: Track Server Component Owners.\n        break;\n      }\n    }\n\n    const isTimedOutSuspense =\n      tag === SuspenseComponent && memoizedState !== null;\n\n    let hooks = null;\n    if (usesHooks) {\n      const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n      // Temporarily disable all console logging before re-running the hook.\n      for (const method in console) {\n        try {\n          originalConsoleMethods[method] = console[method];\n          // $FlowFixMe[prop-missing]\n          console[method] = () => {};\n        } catch (error) {}\n      }\n\n      try {\n        hooks = inspectHooksOfFiber(fiber, getDispatcherRef(renderer));\n      } finally {\n        // Restore original console functionality.\n        for (const method in originalConsoleMethods) {\n          try {\n            // $FlowFixMe[prop-missing]\n            console[method] = originalConsoleMethods[method];\n          } catch (error) {}\n        }\n      }\n    }\n\n    let rootType = null;\n    let current = fiber;\n    while (current.return !== null) {\n      current = current.return;\n    }\n    const fiberRoot = current.stateNode;\n    if (fiberRoot != null && fiberRoot._debugRootType !== null) {\n      rootType = fiberRoot._debugRootType;\n    }\n\n    const errors = fiberIDToErrorsMap.get(id) || new Map();\n    const warnings = fiberIDToWarningsMap.get(id) || new Map();\n\n    let isErrored = false;\n    let targetErrorBoundaryID;\n    if (isErrorBoundary(fiber)) {\n      // if the current inspected element is an error boundary,\n      // either that we want to use it to toggle off error state\n      // or that we allow to force error state on it if it's within another\n      // error boundary\n      //\n      // TODO: This flag is a leaked implementation detail. Once we start\n      // releasing DevTools in lockstep with React, we should import a function\n      // from the reconciler instead.\n      const DidCapture = 0b000000000000000000010000000;\n      isErrored =\n        (fiber.flags & DidCapture) !== 0 ||\n        forceErrorForFiberIDs.get(id) === true;\n      targetErrorBoundaryID = isErrored ? id : getNearestErrorBoundaryID(fiber);\n    } else {\n      targetErrorBoundaryID = getNearestErrorBoundaryID(fiber);\n    }\n\n    const plugins: Plugins = {\n      stylex: null,\n    };\n\n    if (enableStyleXFeatures) {\n      if (memoizedProps != null && memoizedProps.hasOwnProperty('xstyle')) {\n        plugins.stylex = getStyleXData(memoizedProps.xstyle);\n      }\n    }\n\n    let source = null;\n    if (canViewSource) {\n      source = getSourceForFiber(fiber);\n    }\n\n    return {\n      id,\n\n      // Does the current renderer support editable hooks and function props?\n      canEditHooks: typeof overrideHookState === 'function',\n      canEditFunctionProps: typeof overrideProps === 'function',\n\n      // Does the current renderer support advanced editing interface?\n      canEditHooksAndDeletePaths:\n        typeof overrideHookStateDeletePath === 'function',\n      canEditHooksAndRenamePaths:\n        typeof overrideHookStateRenamePath === 'function',\n      canEditFunctionPropsDeletePaths:\n        typeof overridePropsDeletePath === 'function',\n      canEditFunctionPropsRenamePaths:\n        typeof overridePropsRenamePath === 'function',\n\n      canToggleError: supportsTogglingError && targetErrorBoundaryID != null,\n      // Is this error boundary in error state.\n      isErrored,\n      targetErrorBoundaryID,\n\n      canToggleSuspense:\n        supportsTogglingSuspense &&\n        // If it's showing the real content, we can always flip fallback.\n        (!isTimedOutSuspense ||\n          // If it's showing fallback because we previously forced it to,\n          // allow toggling it back to remove the fallback override.\n          forceFallbackForSuspenseIDs.has(id)),\n\n      // Can view component source location.\n      canViewSource,\n      source,\n\n      // Does the component have legacy context attached to it.\n      hasLegacyContext,\n\n      key: key != null ? key : null,\n\n      displayName: getDisplayNameForFiber(fiber),\n      type: elementType,\n\n      // Inspectable properties.\n      // TODO Review sanitization approach for the below inspectable values.\n      context,\n      hooks,\n      props: memoizedProps,\n      state: showState ? memoizedState : null,\n      errors: Array.from(errors.entries()),\n      warnings: Array.from(warnings.entries()),\n\n      // List of owners\n      owners,\n\n      rootType,\n      rendererPackageName: renderer.rendererPackageName,\n      rendererVersion: renderer.version,\n\n      plugins,\n    };\n  }\n\n  let mostRecentlyInspectedElement: InspectedElement | null = null;\n  let hasElementUpdatedSinceLastInspected: boolean = false;\n  let currentlyInspectedPaths: Object = {};\n\n  function isMostRecentlyInspectedElement(id: number): boolean {\n    return (\n      mostRecentlyInspectedElement !== null &&\n      mostRecentlyInspectedElement.id === id\n    );\n  }\n\n  function isMostRecentlyInspectedElementCurrent(id: number): boolean {\n    return (\n      isMostRecentlyInspectedElement(id) && !hasElementUpdatedSinceLastInspected\n    );\n  }\n\n  // Track the intersection of currently inspected paths,\n  // so that we can send their data along if the element is re-rendered.\n  function mergeInspectedPaths(path: Array<string | number>) {\n    let current = currentlyInspectedPaths;\n    path.forEach(key => {\n      if (!current[key]) {\n        current[key] = {};\n      }\n      current = current[key];\n    });\n  }\n\n  function createIsPathAllowed(\n    key: string | null,\n    secondaryCategory: 'hooks' | null,\n  ) {\n    // This function helps prevent previously-inspected paths from being dehydrated in updates.\n    // This is important to avoid a bad user experience where expanded toggles collapse on update.\n    return function isPathAllowed(path: Array<string | number>): boolean {\n      switch (secondaryCategory) {\n        case 'hooks':\n          if (path.length === 1) {\n            // Never dehydrate the \"hooks\" object at the top levels.\n            return true;\n          }\n\n          if (\n            path[path.length - 2] === 'hookSource' &&\n            path[path.length - 1] === 'fileName'\n          ) {\n            // It's important to preserve the full file name (URL) for hook sources\n            // in case the user has enabled the named hooks feature.\n            // Otherwise the frontend may end up with a partial URL which it can't load.\n            return true;\n          }\n\n          if (\n            path[path.length - 1] === 'subHooks' ||\n            path[path.length - 2] === 'subHooks'\n          ) {\n            // Dehydrating the 'subHooks' property makes the HooksTree UI a lot more complicated,\n            // so it's easiest for now if we just don't break on this boundary.\n            // We can always dehydrate a level deeper (in the value object).\n            return true;\n          }\n          break;\n        default:\n          break;\n      }\n\n      let current =\n        key === null ? currentlyInspectedPaths : currentlyInspectedPaths[key];\n      if (!current) {\n        return false;\n      }\n      for (let i = 0; i < path.length; i++) {\n        current = current[path[i]];\n        if (!current) {\n          return false;\n        }\n      }\n      return true;\n    };\n  }\n\n  function updateSelectedElement(inspectedElement: InspectedElement): void {\n    const {hooks, id, props} = inspectedElement;\n\n    const fiber = idToArbitraryFiberMap.get(id);\n    if (fiber == null) {\n      console.warn(`Could not find Fiber with id \"${id}\"`);\n      return;\n    }\n\n    const {elementType, stateNode, tag, type} = fiber;\n\n    switch (tag) {\n      case ClassComponent:\n      case IncompleteClassComponent:\n      case IndeterminateComponent:\n        global.$r = stateNode;\n        break;\n      case IncompleteFunctionComponent:\n      case FunctionComponent:\n        global.$r = {\n          hooks,\n          props,\n          type,\n        };\n        break;\n      case ForwardRef:\n        global.$r = {\n          hooks,\n          props,\n          type: type.render,\n        };\n        break;\n      case MemoComponent:\n      case SimpleMemoComponent:\n        global.$r = {\n          hooks,\n          props,\n          type:\n            elementType != null && elementType.type != null\n              ? elementType.type\n              : type,\n        };\n        break;\n      default:\n        global.$r = null;\n        break;\n    }\n  }\n\n  function storeAsGlobal(\n    id: number,\n    path: Array<string | number>,\n    count: number,\n  ): void {\n    if (isMostRecentlyInspectedElement(id)) {\n      const value = getInObject(\n        ((mostRecentlyInspectedElement: any): InspectedElement),\n        path,\n      );\n      const key = `$reactTemp${count}`;\n\n      window[key] = value;\n\n      console.log(key);\n      console.log(value);\n    }\n  }\n\n  function getSerializedElementValueByPath(\n    id: number,\n    path: Array<string | number>,\n  ): ?string {\n    if (isMostRecentlyInspectedElement(id)) {\n      const valueToCopy = getInObject(\n        ((mostRecentlyInspectedElement: any): InspectedElement),\n        path,\n      );\n\n      return serializeToString(valueToCopy);\n    }\n  }\n\n  function inspectElement(\n    requestID: number,\n    id: number,\n    path: Array<string | number> | null,\n    forceFullData: boolean,\n  ): InspectedElementPayload {\n    if (path !== null) {\n      mergeInspectedPaths(path);\n    }\n\n    if (isMostRecentlyInspectedElement(id) && !forceFullData) {\n      if (!hasElementUpdatedSinceLastInspected) {\n        if (path !== null) {\n          let secondaryCategory = null;\n          if (path[0] === 'hooks') {\n            secondaryCategory = 'hooks';\n          }\n\n          // If this element has not been updated since it was last inspected,\n          // we can just return the subset of data in the newly-inspected path.\n          return {\n            id,\n            responseID: requestID,\n            type: 'hydrated-path',\n            path,\n            value: cleanForBridge(\n              getInObject(\n                ((mostRecentlyInspectedElement: any): InspectedElement),\n                path,\n              ),\n              createIsPathAllowed(null, secondaryCategory),\n              path,\n            ),\n          };\n        } else {\n          // If this element has not been updated since it was last inspected, we don't need to return it.\n          // Instead we can just return the ID to indicate that it has not changed.\n          return {\n            id,\n            responseID: requestID,\n            type: 'no-change',\n          };\n        }\n      }\n    } else {\n      currentlyInspectedPaths = {};\n    }\n\n    hasElementUpdatedSinceLastInspected = false;\n\n    try {\n      mostRecentlyInspectedElement = inspectElementRaw(id);\n    } catch (error) {\n      // the error name is synced with ReactDebugHooks\n      if (error.name === 'ReactDebugToolsRenderError') {\n        let message = 'Error rendering inspected element.';\n        let stack;\n        // Log error & cause for user to debug\n        console.error(message + '\\n\\n', error);\n        if (error.cause != null) {\n          const fiber = findCurrentFiberUsingSlowPathById(id);\n          const componentName =\n            fiber != null ? getDisplayNameForFiber(fiber) : null;\n          console.error(\n            'React DevTools encountered an error while trying to inspect hooks. ' +\n              'This is most likely caused by an error in current inspected component' +\n              (componentName != null ? `: \"${componentName}\".` : '.') +\n              '\\nThe error thrown in the component is: \\n\\n',\n            error.cause,\n          );\n          if (error.cause instanceof Error) {\n            message = error.cause.message || message;\n            stack = error.cause.stack;\n          }\n        }\n\n        return {\n          type: 'error',\n          errorType: 'user',\n          id,\n          responseID: requestID,\n          message,\n          stack,\n        };\n      }\n\n      // the error name is synced with ReactDebugHooks\n      if (error.name === 'ReactDebugToolsUnsupportedHookError') {\n        return {\n          type: 'error',\n          errorType: 'unknown-hook',\n          id,\n          responseID: requestID,\n          message:\n            'Unsupported hook in the react-debug-tools package: ' +\n            error.message,\n        };\n      }\n\n      // Log Uncaught Error\n      console.error('Error inspecting element.\\n\\n', error);\n\n      return {\n        type: 'error',\n        errorType: 'uncaught',\n        id,\n        responseID: requestID,\n        message: error.message,\n        stack: error.stack,\n      };\n    }\n\n    if (mostRecentlyInspectedElement === null) {\n      return {\n        id,\n        responseID: requestID,\n        type: 'not-found',\n      };\n    }\n\n    // Any time an inspected element has an update,\n    // we should update the selected $r value as wel.\n    // Do this before dehydration (cleanForBridge).\n    updateSelectedElement(mostRecentlyInspectedElement);\n\n    // Clone before cleaning so that we preserve the full data.\n    // This will enable us to send patches without re-inspecting if hydrated paths are requested.\n    // (Reducing how often we shallow-render is a better DX for function components that use hooks.)\n    const cleanedInspectedElement = {...mostRecentlyInspectedElement};\n    // $FlowFixMe[prop-missing] found when upgrading Flow\n    cleanedInspectedElement.context = cleanForBridge(\n      cleanedInspectedElement.context,\n      createIsPathAllowed('context', null),\n    );\n    // $FlowFixMe[prop-missing] found when upgrading Flow\n    cleanedInspectedElement.hooks = cleanForBridge(\n      cleanedInspectedElement.hooks,\n      createIsPathAllowed('hooks', 'hooks'),\n    );\n    // $FlowFixMe[prop-missing] found when upgrading Flow\n    cleanedInspectedElement.props = cleanForBridge(\n      cleanedInspectedElement.props,\n      createIsPathAllowed('props', null),\n    );\n    // $FlowFixMe[prop-missing] found when upgrading Flow\n    cleanedInspectedElement.state = cleanForBridge(\n      cleanedInspectedElement.state,\n      createIsPathAllowed('state', null),\n    );\n\n    return {\n      id,\n      responseID: requestID,\n      type: 'full-data',\n      // $FlowFixMe[prop-missing] found when upgrading Flow\n      value: cleanedInspectedElement,\n    };\n  }\n\n  function logElementToConsole(id: number) {\n    const result = isMostRecentlyInspectedElementCurrent(id)\n      ? mostRecentlyInspectedElement\n      : inspectElementRaw(id);\n    if (result === null) {\n      console.warn(`Could not find Fiber with id \"${id}\"`);\n      return;\n    }\n\n    const supportsGroup = typeof console.groupCollapsed === 'function';\n    if (supportsGroup) {\n      console.groupCollapsed(\n        `[Click to expand] %c<${result.displayName || 'Component'} />`,\n        // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n        'color: var(--dom-tag-name-color); font-weight: normal;',\n      );\n    }\n    if (result.props !== null) {\n      console.log('Props:', result.props);\n    }\n    if (result.state !== null) {\n      console.log('State:', result.state);\n    }\n    if (result.hooks !== null) {\n      console.log('Hooks:', result.hooks);\n    }\n    const nativeNodes = findNativeNodesForFiberID(id);\n    if (nativeNodes !== null) {\n      console.log('Nodes:', nativeNodes);\n    }\n    if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n      console.log(\n        'Right-click any value to save it as a global variable for further inspection.',\n      );\n    }\n    if (supportsGroup) {\n      console.groupEnd();\n    }\n  }\n\n  function deletePath(\n    type: 'context' | 'hooks' | 'props' | 'state',\n    id: number,\n    hookID: ?number,\n    path: Array<string | number>,\n  ): void {\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (fiber !== null) {\n      const instance = fiber.stateNode;\n\n      switch (type) {\n        case 'context':\n          // To simplify hydration and display of primitive context values (e.g. number, string)\n          // the inspectElement() method wraps context in a {value: ...} object.\n          // We need to remove the first part of the path (the \"value\") before continuing.\n          path = path.slice(1);\n\n          switch (fiber.tag) {\n            case ClassComponent:\n              if (path.length === 0) {\n                // Simple context value (noop)\n              } else {\n                deletePathInObject(instance.context, path);\n              }\n              instance.forceUpdate();\n              break;\n            case FunctionComponent:\n              // Function components using legacy context are not editable\n              // because there's no instance on which to create a cloned, mutated context.\n              break;\n          }\n          break;\n        case 'hooks':\n          if (typeof overrideHookStateDeletePath === 'function') {\n            overrideHookStateDeletePath(fiber, ((hookID: any): number), path);\n          }\n          break;\n        case 'props':\n          if (instance === null) {\n            if (typeof overridePropsDeletePath === 'function') {\n              overridePropsDeletePath(fiber, path);\n            }\n          } else {\n            fiber.pendingProps = copyWithDelete(instance.props, path);\n            instance.forceUpdate();\n          }\n          break;\n        case 'state':\n          deletePathInObject(instance.state, path);\n          instance.forceUpdate();\n          break;\n      }\n    }\n  }\n\n  function renamePath(\n    type: 'context' | 'hooks' | 'props' | 'state',\n    id: number,\n    hookID: ?number,\n    oldPath: Array<string | number>,\n    newPath: Array<string | number>,\n  ): void {\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (fiber !== null) {\n      const instance = fiber.stateNode;\n\n      switch (type) {\n        case 'context':\n          // To simplify hydration and display of primitive context values (e.g. number, string)\n          // the inspectElement() method wraps context in a {value: ...} object.\n          // We need to remove the first part of the path (the \"value\") before continuing.\n          oldPath = oldPath.slice(1);\n          newPath = newPath.slice(1);\n\n          switch (fiber.tag) {\n            case ClassComponent:\n              if (oldPath.length === 0) {\n                // Simple context value (noop)\n              } else {\n                renamePathInObject(instance.context, oldPath, newPath);\n              }\n              instance.forceUpdate();\n              break;\n            case FunctionComponent:\n              // Function components using legacy context are not editable\n              // because there's no instance on which to create a cloned, mutated context.\n              break;\n          }\n          break;\n        case 'hooks':\n          if (typeof overrideHookStateRenamePath === 'function') {\n            overrideHookStateRenamePath(\n              fiber,\n              ((hookID: any): number),\n              oldPath,\n              newPath,\n            );\n          }\n          break;\n        case 'props':\n          if (instance === null) {\n            if (typeof overridePropsRenamePath === 'function') {\n              overridePropsRenamePath(fiber, oldPath, newPath);\n            }\n          } else {\n            fiber.pendingProps = copyWithRename(\n              instance.props,\n              oldPath,\n              newPath,\n            );\n            instance.forceUpdate();\n          }\n          break;\n        case 'state':\n          renamePathInObject(instance.state, oldPath, newPath);\n          instance.forceUpdate();\n          break;\n      }\n    }\n  }\n\n  function overrideValueAtPath(\n    type: 'context' | 'hooks' | 'props' | 'state',\n    id: number,\n    hookID: ?number,\n    path: Array<string | number>,\n    value: any,\n  ): void {\n    const fiber = findCurrentFiberUsingSlowPathById(id);\n    if (fiber !== null) {\n      const instance = fiber.stateNode;\n\n      switch (type) {\n        case 'context':\n          // To simplify hydration and display of primitive context values (e.g. number, string)\n          // the inspectElement() method wraps context in a {value: ...} object.\n          // We need to remove the first part of the path (the \"value\") before continuing.\n          path = path.slice(1);\n\n          switch (fiber.tag) {\n            case ClassComponent:\n              if (path.length === 0) {\n                // Simple context value\n                instance.context = value;\n              } else {\n                setInObject(instance.context, path, value);\n              }\n              instance.forceUpdate();\n              break;\n            case FunctionComponent:\n              // Function components using legacy context are not editable\n              // because there's no instance on which to create a cloned, mutated context.\n              break;\n          }\n          break;\n        case 'hooks':\n          if (typeof overrideHookState === 'function') {\n            overrideHookState(fiber, ((hookID: any): number), path, value);\n          }\n          break;\n        case 'props':\n          switch (fiber.tag) {\n            case ClassComponent:\n              fiber.pendingProps = copyWithSet(instance.props, path, value);\n              instance.forceUpdate();\n              break;\n            default:\n              if (typeof overrideProps === 'function') {\n                overrideProps(fiber, path, value);\n              }\n              break;\n          }\n          break;\n        case 'state':\n          switch (fiber.tag) {\n            case ClassComponent:\n              setInObject(instance.state, path, value);\n              instance.forceUpdate();\n              break;\n          }\n          break;\n      }\n    }\n  }\n\n  type CommitProfilingData = {\n    changeDescriptions: Map<number, ChangeDescription> | null,\n    commitTime: number,\n    durations: Array<number>,\n    effectDuration: number | null,\n    maxActualDuration: number,\n    passiveEffectDuration: number | null,\n    priorityLevel: string | null,\n    updaters: Array<SerializedElement> | null,\n  };\n\n  type CommitProfilingMetadataMap = Map<number, Array<CommitProfilingData>>;\n  type DisplayNamesByRootID = Map<number, string>;\n\n  let currentCommitProfilingMetadata: CommitProfilingData | null = null;\n  let displayNamesByRootID: DisplayNamesByRootID | null = null;\n  let idToContextsMap: Map<number, any> | null = null;\n  let initialTreeBaseDurationsMap: Map<number, number> | null = null;\n  let initialIDToRootMap: Map<number, number> | null = null;\n  let isProfiling: boolean = false;\n  let profilingStartTime: number = 0;\n  let recordChangeDescriptions: boolean = false;\n  let rootToCommitProfilingMetadataMap: CommitProfilingMetadataMap | null =\n    null;\n\n  function getProfilingData(): ProfilingDataBackend {\n    const dataForRoots: Array<ProfilingDataForRootBackend> = [];\n\n    if (rootToCommitProfilingMetadataMap === null) {\n      throw Error(\n        'getProfilingData() called before any profiling data was recorded',\n      );\n    }\n\n    rootToCommitProfilingMetadataMap.forEach(\n      (commitProfilingMetadata, rootID) => {\n        const commitData: Array<CommitDataBackend> = [];\n        const initialTreeBaseDurations: Array<[number, number]> = [];\n\n        const displayName =\n          (displayNamesByRootID !== null && displayNamesByRootID.get(rootID)) ||\n          'Unknown';\n\n        if (initialTreeBaseDurationsMap != null) {\n          initialTreeBaseDurationsMap.forEach((treeBaseDuration, id) => {\n            if (\n              initialIDToRootMap != null &&\n              initialIDToRootMap.get(id) === rootID\n            ) {\n              // We don't need to convert milliseconds to microseconds in this case,\n              // because the profiling summary is JSON serialized.\n              initialTreeBaseDurations.push([id, treeBaseDuration]);\n            }\n          });\n        }\n\n        commitProfilingMetadata.forEach((commitProfilingData, commitIndex) => {\n          const {\n            changeDescriptions,\n            durations,\n            effectDuration,\n            maxActualDuration,\n            passiveEffectDuration,\n            priorityLevel,\n            commitTime,\n            updaters,\n          } = commitProfilingData;\n\n          const fiberActualDurations: Array<[number, number]> = [];\n          const fiberSelfDurations: Array<[number, number]> = [];\n          for (let i = 0; i < durations.length; i += 3) {\n            const fiberID = durations[i];\n            fiberActualDurations.push([fiberID, durations[i + 1]]);\n            fiberSelfDurations.push([fiberID, durations[i + 2]]);\n          }\n\n          commitData.push({\n            changeDescriptions:\n              changeDescriptions !== null\n                ? Array.from(changeDescriptions.entries())\n                : null,\n            duration: maxActualDuration,\n            effectDuration,\n            fiberActualDurations,\n            fiberSelfDurations,\n            passiveEffectDuration,\n            priorityLevel,\n            timestamp: commitTime,\n            updaters,\n          });\n        });\n\n        dataForRoots.push({\n          commitData,\n          displayName,\n          initialTreeBaseDurations,\n          rootID,\n        });\n      },\n    );\n\n    let timelineData = null;\n    if (typeof getTimelineData === 'function') {\n      const currentTimelineData = getTimelineData();\n      if (currentTimelineData) {\n        const {\n          batchUIDToMeasuresMap,\n          internalModuleSourceToRanges,\n          laneToLabelMap,\n          laneToReactMeasureMap,\n          ...rest\n        } = currentTimelineData;\n\n        timelineData = {\n          ...rest,\n\n          // Most of the data is safe to parse as-is,\n          // but we need to convert the nested Arrays back to Maps.\n          // Most of the data is safe to serialize as-is,\n          // but we need to convert the Maps to nested Arrays.\n          batchUIDToMeasuresKeyValueArray: Array.from(\n            batchUIDToMeasuresMap.entries(),\n          ),\n          internalModuleSourceToRanges: Array.from(\n            internalModuleSourceToRanges.entries(),\n          ),\n          laneToLabelKeyValueArray: Array.from(laneToLabelMap.entries()),\n          laneToReactMeasureKeyValueArray: Array.from(\n            laneToReactMeasureMap.entries(),\n          ),\n        };\n      }\n    }\n\n    return {\n      dataForRoots,\n      rendererID,\n      timelineData,\n    };\n  }\n\n  function startProfiling(shouldRecordChangeDescriptions: boolean) {\n    if (isProfiling) {\n      return;\n    }\n\n    recordChangeDescriptions = shouldRecordChangeDescriptions;\n\n    // Capture initial values as of the time profiling starts.\n    // It's important we snapshot both the durations and the id-to-root map,\n    // since either of these may change during the profiling session\n    // (e.g. when a fiber is re-rendered or when a fiber gets removed).\n    displayNamesByRootID = new Map();\n    initialTreeBaseDurationsMap = new Map(idToTreeBaseDurationMap);\n    initialIDToRootMap = new Map(idToRootMap);\n    idToContextsMap = new Map();\n\n    hook.getFiberRoots(rendererID).forEach(root => {\n      const rootID = getFiberIDThrows(root.current);\n      ((displayNamesByRootID: any): DisplayNamesByRootID).set(\n        rootID,\n        getDisplayNameForRoot(root.current),\n      );\n\n      if (shouldRecordChangeDescriptions) {\n        // Record all contexts at the time profiling is started.\n        // Fibers only store the current context value,\n        // so we need to track them separately in order to determine changed keys.\n        crawlToInitializeContextsMap(root.current);\n      }\n    });\n\n    isProfiling = true;\n    profilingStartTime = getCurrentTime();\n    rootToCommitProfilingMetadataMap = new Map();\n\n    if (toggleProfilingStatus !== null) {\n      toggleProfilingStatus(true);\n    }\n  }\n\n  function stopProfiling() {\n    isProfiling = false;\n    recordChangeDescriptions = false;\n\n    if (toggleProfilingStatus !== null) {\n      toggleProfilingStatus(false);\n    }\n  }\n\n  // Automatically start profiling so that we don't miss timing info from initial \"mount\".\n  if (\n    sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n  ) {\n    startProfiling(\n      sessionStorageGetItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY) ===\n        'true',\n    );\n  }\n\n  // React will switch between these implementations depending on whether\n  // we have any manually suspended/errored-out Fibers or not.\n  function shouldErrorFiberAlwaysNull() {\n    return null;\n  }\n\n  // Map of id and its force error status: true (error), false (toggled off),\n  // null (do nothing)\n  const forceErrorForFiberIDs = new Map<number | null, $FlowFixMe>();\n\n  function shouldErrorFiberAccordingToMap(fiber: any) {\n    if (typeof setErrorHandler !== 'function') {\n      throw new Error(\n        'Expected overrideError() to not get called for earlier React versions.',\n      );\n    }\n\n    const id = getFiberIDUnsafe(fiber);\n    if (id === null) {\n      return null;\n    }\n\n    let status = null;\n    if (forceErrorForFiberIDs.has(id)) {\n      status = forceErrorForFiberIDs.get(id);\n      if (status === false) {\n        // TRICKY overrideError adds entries to this Map,\n        // so ideally it would be the method that clears them too,\n        // but that would break the functionality of the feature,\n        // since DevTools needs to tell React to act differently than it normally would\n        // (don't just re-render the failed boundary, but reset its errored state too).\n        // So we can only clear it after telling React to reset the state.\n        // Technically this is premature and we should schedule it for later,\n        // since the render could always fail without committing the updated error boundary,\n        // but since this is a DEV-only feature, the simplicity is worth the trade off.\n        forceErrorForFiberIDs.delete(id);\n\n        if (forceErrorForFiberIDs.size === 0) {\n          // Last override is gone. Switch React back to fast path.\n          setErrorHandler(shouldErrorFiberAlwaysNull);\n        }\n      }\n    }\n    return status;\n  }\n\n  function overrideError(id: number, forceError: boolean) {\n    if (\n      typeof setErrorHandler !== 'function' ||\n      typeof scheduleUpdate !== 'function'\n    ) {\n      throw new Error(\n        'Expected overrideError() to not get called for earlier React versions.',\n      );\n    }\n\n    forceErrorForFiberIDs.set(id, forceError);\n\n    if (forceErrorForFiberIDs.size === 1) {\n      // First override is added. Switch React to slower path.\n      setErrorHandler(shouldErrorFiberAccordingToMap);\n    }\n\n    const fiber = idToArbitraryFiberMap.get(id);\n    if (fiber != null) {\n      scheduleUpdate(fiber);\n    }\n  }\n\n  function shouldSuspendFiberAlwaysFalse() {\n    return false;\n  }\n\n  const forceFallbackForSuspenseIDs = new Set<number>();\n\n  function shouldSuspendFiberAccordingToSet(fiber: any) {\n    const maybeID = getFiberIDUnsafe(((fiber: any): Fiber));\n    return maybeID !== null && forceFallbackForSuspenseIDs.has(maybeID);\n  }\n\n  function overrideSuspense(id: number, forceFallback: boolean) {\n    if (\n      typeof setSuspenseHandler !== 'function' ||\n      typeof scheduleUpdate !== 'function'\n    ) {\n      throw new Error(\n        'Expected overrideSuspense() to not get called for earlier React versions.',\n      );\n    }\n    if (forceFallback) {\n      forceFallbackForSuspenseIDs.add(id);\n      if (forceFallbackForSuspenseIDs.size === 1) {\n        // First override is added. Switch React to slower path.\n        setSuspenseHandler(shouldSuspendFiberAccordingToSet);\n      }\n    } else {\n      forceFallbackForSuspenseIDs.delete(id);\n      if (forceFallbackForSuspenseIDs.size === 0) {\n        // Last override is gone. Switch React back to fast path.\n        setSuspenseHandler(shouldSuspendFiberAlwaysFalse);\n      }\n    }\n    const fiber = idToArbitraryFiberMap.get(id);\n    if (fiber != null) {\n      scheduleUpdate(fiber);\n    }\n  }\n\n  // Remember if we're trying to restore the selection after reload.\n  // In that case, we'll do some extra checks for matching mounts.\n  let trackedPath: Array<PathFrame> | null = null;\n  let trackedPathMatchFiber: Fiber | null = null;\n  let trackedPathMatchDepth = -1;\n  let mightBeOnTrackedPath = false;\n\n  function setTrackedPath(path: Array<PathFrame> | null) {\n    if (path === null) {\n      trackedPathMatchFiber = null;\n      trackedPathMatchDepth = -1;\n      mightBeOnTrackedPath = false;\n    }\n    trackedPath = path;\n  }\n\n  // We call this before traversing a new mount.\n  // It remembers whether this Fiber is the next best match for tracked path.\n  // The return value signals whether we should keep matching siblings or not.\n  function updateTrackedPathStateBeforeMount(fiber: Fiber): boolean {\n    if (trackedPath === null || !mightBeOnTrackedPath) {\n      // Fast path: there's nothing to track so do nothing and ignore siblings.\n      return false;\n    }\n    const returnFiber = fiber.return;\n    const returnAlternate = returnFiber !== null ? returnFiber.alternate : null;\n    // By now we know there's some selection to restore, and this is a new Fiber.\n    // Is this newly mounted Fiber a direct child of the current best match?\n    // (This will also be true for new roots if we haven't matched anything yet.)\n    if (\n      trackedPathMatchFiber === returnFiber ||\n      (trackedPathMatchFiber === returnAlternate && returnAlternate !== null)\n    ) {\n      // Is this the next Fiber we should select? Let's compare the frames.\n      const actualFrame = getPathFrame(fiber);\n      // $FlowFixMe[incompatible-use] found when upgrading Flow\n      const expectedFrame = trackedPath[trackedPathMatchDepth + 1];\n      if (expectedFrame === undefined) {\n        throw new Error('Expected to see a frame at the next depth.');\n      }\n      if (\n        actualFrame.index === expectedFrame.index &&\n        actualFrame.key === expectedFrame.key &&\n        actualFrame.displayName === expectedFrame.displayName\n      ) {\n        // We have our next match.\n        trackedPathMatchFiber = fiber;\n        trackedPathMatchDepth++;\n        // Are we out of frames to match?\n        // $FlowFixMe[incompatible-use] found when upgrading Flow\n        if (trackedPathMatchDepth === trackedPath.length - 1) {\n          // There's nothing that can possibly match afterwards.\n          // Don't check the children.\n          mightBeOnTrackedPath = false;\n        } else {\n          // Check the children, as they might reveal the next match.\n          mightBeOnTrackedPath = true;\n        }\n        // In either case, since we have a match, we don't need\n        // to check the siblings. They'll never match.\n        return false;\n      }\n    }\n    // This Fiber's parent is on the path, but this Fiber itself isn't.\n    // There's no need to check its children--they won't be on the path either.\n    mightBeOnTrackedPath = false;\n    // However, one of its siblings may be on the path so keep searching.\n    return true;\n  }\n\n  function updateTrackedPathStateAfterMount(\n    mightSiblingsBeOnTrackedPath: boolean,\n  ) {\n    // updateTrackedPathStateBeforeMount() told us whether to match siblings.\n    // Now that we're entering siblings, let's use that information.\n    mightBeOnTrackedPath = mightSiblingsBeOnTrackedPath;\n  }\n\n  // Roots don't have a real persistent identity.\n  // A root's \"pseudo key\" is \"childDisplayName:indexWithThatName\".\n  // For example, \"App:0\" or, in case of similar roots, \"Story:0\", \"Story:1\", etc.\n  // We will use this to try to disambiguate roots when restoring selection between reloads.\n  const rootPseudoKeys: Map<number, string> = new Map();\n  const rootDisplayNameCounter: Map<string, number> = new Map();\n\n  function setRootPseudoKey(id: number, fiber: Fiber) {\n    const name = getDisplayNameForRoot(fiber);\n    const counter = rootDisplayNameCounter.get(name) || 0;\n    rootDisplayNameCounter.set(name, counter + 1);\n    const pseudoKey = `${name}:${counter}`;\n    rootPseudoKeys.set(id, pseudoKey);\n  }\n\n  function removeRootPseudoKey(id: number) {\n    const pseudoKey = rootPseudoKeys.get(id);\n    if (pseudoKey === undefined) {\n      throw new Error('Expected root pseudo key to be known.');\n    }\n    const name = pseudoKey.slice(0, pseudoKey.lastIndexOf(':'));\n    const counter = rootDisplayNameCounter.get(name);\n    if (counter === undefined) {\n      throw new Error('Expected counter to be known.');\n    }\n    if (counter > 1) {\n      rootDisplayNameCounter.set(name, counter - 1);\n    } else {\n      rootDisplayNameCounter.delete(name);\n    }\n    rootPseudoKeys.delete(id);\n  }\n\n  function getDisplayNameForRoot(fiber: Fiber): string {\n    let preferredDisplayName = null;\n    let fallbackDisplayName = null;\n    let child = fiber.child;\n    // Go at most three levels deep into direct children\n    // while searching for a child that has a displayName.\n    for (let i = 0; i < 3; i++) {\n      if (child === null) {\n        break;\n      }\n      const displayName = getDisplayNameForFiber(child);\n      if (displayName !== null) {\n        // Prefer display names that we get from user-defined components.\n        // We want to avoid using e.g. 'Suspense' unless we find nothing else.\n        if (typeof child.type === 'function') {\n          // There's a few user-defined tags, but we'll prefer the ones\n          // that are usually explicitly named (function or class components).\n          preferredDisplayName = displayName;\n        } else if (fallbackDisplayName === null) {\n          fallbackDisplayName = displayName;\n        }\n      }\n      if (preferredDisplayName !== null) {\n        break;\n      }\n      child = child.child;\n    }\n    return preferredDisplayName || fallbackDisplayName || 'Anonymous';\n  }\n\n  function getPathFrame(fiber: Fiber): PathFrame {\n    const {key} = fiber;\n    let displayName = getDisplayNameForFiber(fiber);\n    const index = fiber.index;\n    switch (fiber.tag) {\n      case HostRoot:\n        // Roots don't have a real displayName, index, or key.\n        // Instead, we'll use the pseudo key (childDisplayName:indexWithThatName).\n        const id = getFiberIDThrows(fiber);\n        const pseudoKey = rootPseudoKeys.get(id);\n        if (pseudoKey === undefined) {\n          throw new Error('Expected mounted root to have known pseudo key.');\n        }\n        displayName = pseudoKey;\n        break;\n      case HostComponent:\n        displayName = fiber.type;\n        break;\n      default:\n        break;\n    }\n    return {\n      displayName,\n      key,\n      index,\n    };\n  }\n\n  // Produces a serializable representation that does a best effort\n  // of identifying a particular Fiber between page reloads.\n  // The return path will contain Fibers that are \"invisible\" to the store\n  // because their keys and indexes are important to restoring the selection.\n  function getPathForElement(id: number): Array<PathFrame> | null {\n    let fiber: ?Fiber = idToArbitraryFiberMap.get(id);\n    if (fiber == null) {\n      return null;\n    }\n    const keyPath = [];\n    while (fiber !== null) {\n      // $FlowFixMe[incompatible-call] found when upgrading Flow\n      keyPath.push(getPathFrame(fiber));\n      // $FlowFixMe[incompatible-use] found when upgrading Flow\n      fiber = fiber.return;\n    }\n    keyPath.reverse();\n    return keyPath;\n  }\n\n  function getBestMatchForTrackedPath(): PathMatch | null {\n    if (trackedPath === null) {\n      // Nothing to match.\n      return null;\n    }\n    if (trackedPathMatchFiber === null) {\n      // We didn't find anything.\n      return null;\n    }\n    // Find the closest Fiber store is aware of.\n    let fiber: null | Fiber = trackedPathMatchFiber;\n    while (fiber !== null && shouldFilterFiber(fiber)) {\n      fiber = fiber.return;\n    }\n    if (fiber === null) {\n      return null;\n    }\n    return {\n      id: getFiberIDThrows(fiber),\n      // $FlowFixMe[incompatible-use] found when upgrading Flow\n      isFullMatch: trackedPathMatchDepth === trackedPath.length - 1,\n    };\n  }\n\n  const formatPriorityLevel = (priorityLevel: ?number) => {\n    if (priorityLevel == null) {\n      return 'Unknown';\n    }\n\n    switch (priorityLevel) {\n      case ImmediatePriority:\n        return 'Immediate';\n      case UserBlockingPriority:\n        return 'User-Blocking';\n      case NormalPriority:\n        return 'Normal';\n      case LowPriority:\n        return 'Low';\n      case IdlePriority:\n        return 'Idle';\n      case NoPriority:\n      default:\n        return 'Unknown';\n    }\n  };\n\n  function setTraceUpdatesEnabled(isEnabled: boolean): void {\n    traceUpdatesEnabled = isEnabled;\n  }\n\n  function hasFiberWithId(id: number): boolean {\n    return idToArbitraryFiberMap.has(id);\n  }\n\n  function getComponentStackForFiber(fiber: Fiber): string | null {\n    let componentStack = fiberToComponentStackMap.get(fiber);\n    if (componentStack == null) {\n      const dispatcherRef = getDispatcherRef(renderer);\n      if (dispatcherRef == null) {\n        return null;\n      }\n\n      componentStack = getStackByFiberInDevAndProd(\n        ReactTypeOfWork,\n        fiber,\n        dispatcherRef,\n      );\n      fiberToComponentStackMap.set(fiber, componentStack);\n    }\n\n    return componentStack;\n  }\n\n  function getSourceForFiber(fiber: Fiber): Source | null {\n    const componentStack = getComponentStackForFiber(fiber);\n    if (componentStack == null) {\n      return null;\n    }\n\n    return parseSourceFromComponentStack(componentStack);\n  }\n\n  return {\n    cleanup,\n    clearErrorsAndWarnings,\n    clearErrorsForFiberID,\n    clearWarningsForFiberID,\n    getSerializedElementValueByPath,\n    deletePath,\n    findNativeNodesForFiberID,\n    flushInitialOperations,\n    getBestMatchForTrackedPath,\n    getComponentStackForFiber,\n    getSourceForFiber,\n    getDisplayNameForFiberID,\n    getFiberForNative,\n    getFiberIDForNative,\n    getInstanceAndStyle,\n    getOwnersList,\n    getPathForElement,\n    getProfilingData,\n    handleCommitFiberRoot,\n    handleCommitFiberUnmount,\n    handlePostCommitFiberRoot,\n    hasFiberWithId,\n    inspectElement,\n    logElementToConsole,\n    patchConsoleForStrictMode,\n    prepareViewAttributeSource,\n    prepareViewElementSource,\n    overrideError,\n    overrideSuspense,\n    overrideValueAtPath,\n    renamePath,\n    renderer,\n    setTraceUpdatesEnabled,\n    setTrackedPath,\n    startProfiling,\n    stopProfiling,\n    storeAsGlobal,\n    unpatchConsoleForStrictMode,\n    updateComponentFilters,\n  };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {Fiber} from 'react-reconciler/src/ReactInternalTypes';\nimport type {\n  LegacyDispatcherRef,\n  CurrentDispatcherRef,\n  ReactRenderer,\n  WorkTagMap,\n  ConsolePatchSettings,\n} from './types';\n\nimport {\n  formatConsoleArguments,\n  formatWithStyles,\n} from 'react-devtools-shared/src/backend/utils';\nimport {\n  FIREFOX_CONSOLE_DIMMING_COLOR,\n  ANSI_STYLE_DIMMING_TEMPLATE,\n  ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK,\n} from 'react-devtools-shared/src/constants';\nimport {getInternalReactConstants, getDispatcherRef} from './renderer';\nimport {\n  getStackByFiberInDevAndProd,\n  supportsNativeConsoleTasks,\n} from './DevToolsFiberComponentStack';\nimport {castBool, castBrowserTheme} from '../utils';\n\nconst OVERRIDE_CONSOLE_METHODS = ['error', 'trace', 'warn'];\n\n// React's custom built component stack strings match \"\\s{4}in\"\n// Chrome's prefix matches \"\\s{4}at\"\nconst PREFIX_REGEX = /\\s{4}(in|at)\\s{1}/;\n// Firefox and Safari have no prefix (\"\")\n// but we can fallback to looking for location info (e.g. \"foo.js:12:345\")\nconst ROW_COLUMN_NUMBER_REGEX = /:\\d+:\\d+(\\n|$)/;\n\nexport function isStringComponentStack(text: string): boolean {\n  return PREFIX_REGEX.test(text) || ROW_COLUMN_NUMBER_REGEX.test(text);\n}\n\nconst STYLE_DIRECTIVE_REGEX = /^%c/;\n\n// This function tells whether or not the arguments for a console\n// method has been overridden by the patchForStrictMode function.\n// If it has we'll need to do some special formatting of the arguments\n// so the console color stays consistent\nfunction isStrictModeOverride(args: Array<any>): boolean {\n  if (__IS_FIREFOX__) {\n    return (\n      args.length >= 2 &&\n      STYLE_DIRECTIVE_REGEX.test(args[0]) &&\n      args[1] === FIREFOX_CONSOLE_DIMMING_COLOR\n    );\n  } else {\n    return args.length >= 2 && args[0] === ANSI_STYLE_DIMMING_TEMPLATE;\n  }\n}\n\n// We add a suffix to some frames that older versions of React didn't do.\n// To compare if it's equivalent we strip out the suffix to see if they're\n// still equivalent. Similarly, we sometimes use [] and sometimes () so we\n// strip them to for the comparison.\nconst frameDiffs = / \\(\\<anonymous\\>\\)$|\\@unknown\\:0\\:0$|\\(|\\)|\\[|\\]/gm;\nfunction areStackTracesEqual(a: string, b: string): boolean {\n  return a.replace(frameDiffs, '') === b.replace(frameDiffs, '');\n}\n\nfunction restorePotentiallyModifiedArgs(args: Array<any>): Array<any> {\n  // If the arguments don't have any styles applied, then just copy\n  if (!isStrictModeOverride(args)) {\n    return args.slice();\n  }\n\n  if (__IS_FIREFOX__) {\n    // Filter out %c from the start of the first argument and color as a second argument\n    return [args[0].slice(2)].concat(args.slice(2));\n  } else {\n    // Filter out the `\\x1b...%s\\x1b` template\n    return args.slice(1);\n  }\n}\n\ntype OnErrorOrWarning = (\n  fiber: Fiber,\n  type: 'error' | 'warn',\n  args: Array<any>,\n) => void;\n\nconst injectedRenderers: Map<\n  ReactRenderer,\n  {\n    currentDispatcherRef: LegacyDispatcherRef | CurrentDispatcherRef,\n    getCurrentFiber: () => Fiber | null,\n    onErrorOrWarning: ?OnErrorOrWarning,\n    workTagMap: WorkTagMap,\n  },\n> = new Map();\n\nlet targetConsole: Object = console;\nlet targetConsoleMethods: {[string]: $FlowFixMe} = {};\nfor (const method in console) {\n  targetConsoleMethods[method] = console[method];\n}\n\nlet unpatchFn: null | (() => void) = null;\n\n// Enables e.g. Jest tests to inject a mock console object.\nexport function dangerous_setTargetConsoleForTesting(\n  targetConsoleForTesting: Object,\n): void {\n  targetConsole = targetConsoleForTesting;\n\n  targetConsoleMethods = ({}: {[string]: $FlowFixMe});\n  for (const method in targetConsole) {\n    targetConsoleMethods[method] = console[method];\n  }\n}\n\n// v16 renderers should use this method to inject internals necessary to generate a component stack.\n// These internals will be used if the console is patched.\n// Injecting them separately allows the console to easily be patched or un-patched later (at runtime).\nexport function registerRenderer(\n  renderer: ReactRenderer,\n  onErrorOrWarning?: OnErrorOrWarning,\n): void {\n  const {\n    currentDispatcherRef,\n    getCurrentFiber,\n    findFiberByHostInstance,\n    version,\n  } = renderer;\n\n  // Ignore React v15 and older because they don't expose a component stack anyway.\n  if (typeof findFiberByHostInstance !== 'function') {\n    return;\n  }\n\n  // currentDispatcherRef gets injected for v16.8+ to support hooks inspection.\n  // getCurrentFiber gets injected for v16.9+.\n  if (currentDispatcherRef != null && typeof getCurrentFiber === 'function') {\n    const {ReactTypeOfWork} = getInternalReactConstants(version);\n\n    injectedRenderers.set(renderer, {\n      currentDispatcherRef,\n      getCurrentFiber,\n      workTagMap: ReactTypeOfWork,\n      onErrorOrWarning,\n    });\n  }\n}\n\nconst consoleSettingsRef: ConsolePatchSettings = {\n  appendComponentStack: false,\n  breakOnConsoleErrors: false,\n  showInlineWarningsAndErrors: false,\n  hideConsoleLogsInStrictMode: false,\n  browserTheme: 'dark',\n};\n\n// Patches console methods to append component stack for the current fiber.\n// Call unpatch() to remove the injected behavior.\nexport function patch({\n  appendComponentStack,\n  breakOnConsoleErrors,\n  showInlineWarningsAndErrors,\n  hideConsoleLogsInStrictMode,\n  browserTheme,\n}: ConsolePatchSettings): void {\n  // Settings may change after we've patched the console.\n  // Using a shared ref allows the patch function to read the latest values.\n  consoleSettingsRef.appendComponentStack = appendComponentStack;\n  consoleSettingsRef.breakOnConsoleErrors = breakOnConsoleErrors;\n  consoleSettingsRef.showInlineWarningsAndErrors = showInlineWarningsAndErrors;\n  consoleSettingsRef.hideConsoleLogsInStrictMode = hideConsoleLogsInStrictMode;\n  consoleSettingsRef.browserTheme = browserTheme;\n\n  if (\n    appendComponentStack ||\n    breakOnConsoleErrors ||\n    showInlineWarningsAndErrors\n  ) {\n    if (unpatchFn !== null) {\n      // Don't patch twice.\n      return;\n    }\n\n    const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n    unpatchFn = () => {\n      for (const method in originalConsoleMethods) {\n        try {\n          targetConsole[method] = originalConsoleMethods[method];\n        } catch (error) {}\n      }\n    };\n\n    OVERRIDE_CONSOLE_METHODS.forEach(method => {\n      try {\n        const originalMethod = (originalConsoleMethods[method] = targetConsole[\n          method\n        ].__REACT_DEVTOOLS_ORIGINAL_METHOD__\n          ? targetConsole[method].__REACT_DEVTOOLS_ORIGINAL_METHOD__\n          : targetConsole[method]);\n\n        // $FlowFixMe[missing-local-annot]\n        const overrideMethod = (...args) => {\n          let alreadyHasComponentStack = false;\n          if (method !== 'log' && consoleSettingsRef.appendComponentStack) {\n            const lastArg = args.length > 0 ? args[args.length - 1] : null;\n            alreadyHasComponentStack =\n              typeof lastArg === 'string' && isStringComponentStack(lastArg); // The last argument should be a component stack.\n          }\n\n          const shouldShowInlineWarningsAndErrors =\n            consoleSettingsRef.showInlineWarningsAndErrors &&\n            (method === 'error' || method === 'warn');\n\n          // Search for the first renderer that has a current Fiber.\n          // We don't handle the edge case of stacks for more than one (e.g. interleaved renderers?)\n          // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n          for (const renderer of injectedRenderers.values()) {\n            const currentDispatcherRef = getDispatcherRef(renderer);\n            const {getCurrentFiber, onErrorOrWarning, workTagMap} = renderer;\n            const current: ?Fiber = getCurrentFiber();\n            if (current != null) {\n              try {\n                if (shouldShowInlineWarningsAndErrors) {\n                  // patch() is called by two places: (1) the hook and (2) the renderer backend.\n                  // The backend is what implements a message queue, so it's the only one that injects onErrorOrWarning.\n                  if (typeof onErrorOrWarning === 'function') {\n                    onErrorOrWarning(\n                      current,\n                      ((method: any): 'error' | 'warn'),\n                      // Restore and copy args before we mutate them (e.g. adding the component stack)\n                      restorePotentiallyModifiedArgs(args),\n                    );\n                  }\n                }\n\n                if (\n                  consoleSettingsRef.appendComponentStack &&\n                  !supportsNativeConsoleTasks(current)\n                ) {\n                  const componentStack = getStackByFiberInDevAndProd(\n                    workTagMap,\n                    current,\n                    (currentDispatcherRef: any),\n                  );\n                  if (componentStack !== '') {\n                    // Create a fake Error so that when we print it we get native source maps. Every\n                    // browser will print the .stack property of the error and then parse it back for source\n                    // mapping. Rather than print the internal slot. So it doesn't matter that the internal\n                    // slot doesn't line up.\n                    const fakeError = new Error('');\n                    // In Chromium, only the stack property is printed but in Firefox the <name>:<message>\n                    // gets printed so to make the colon make sense, we name it so we print Component Stack:\n                    // and similarly Safari leave an expandable slot.\n                    if (__IS_CHROME__ || __IS_EDGE__) {\n                      // Before sending the stack to Chrome DevTools for formatting,\n                      // V8 will reconstruct this according to the template <name>: <message><stack-frames>\n                      // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/inspector/value-mirror.cc;l=252-311;drc=bdc48d1b1312cc40c00282efb1c9c5f41dcdca9a\n                      // It has to start with ^[\\w.]*Error\\b to trigger stack formatting.\n                      fakeError.name = 'Error Component Stack'; // This gets printed\n                    } else {\n                      fakeError.name = 'Component Stack';\n                    }\n                    // In Chromium, the stack property needs to start with ^[\\w.]*Error\\b to trigger stack\n                    // formatting. Otherwise it is left alone. So we prefix it. Otherwise we just override it\n                    // to our own stack.\n                    fakeError.stack =\n                      __IS_CHROME__ || __IS_EDGE__ || __IS_NATIVE__\n                        ? 'Error Component Stack:' + componentStack\n                        : componentStack;\n                    if (alreadyHasComponentStack) {\n                      // Only modify the component stack if it matches what we would've added anyway.\n                      // Otherwise we assume it was a non-React stack.\n                      if (isStrictModeOverride(args)) {\n                        // We do nothing to Strict Mode overrides that already has a stack\n                        // because we have already lost some context for how to format it\n                        // since we've already merged the stack into the log at this point.\n                      } else if (\n                        areStackTracesEqual(\n                          args[args.length - 1],\n                          componentStack,\n                        )\n                      ) {\n                        const firstArg = args[0];\n                        if (\n                          args.length > 1 &&\n                          typeof firstArg === 'string' &&\n                          firstArg.endsWith('%s')\n                        ) {\n                          args[0] = firstArg.slice(0, firstArg.length - 2); // Strip the %s param\n                        }\n                        args[args.length - 1] = fakeError;\n                      }\n                    } else {\n                      args.push(fakeError);\n                      if (isStrictModeOverride(args)) {\n                        if (__IS_FIREFOX__) {\n                          args[0] = `${args[0]} %o`;\n                        } else {\n                          args[0] =\n                            ANSI_STYLE_DIMMING_TEMPLATE_WITH_COMPONENT_STACK;\n                        }\n                      }\n                    }\n                  }\n                }\n              } catch (error) {\n                // Don't let a DevTools or React internal error interfere with logging.\n                setTimeout(() => {\n                  throw error;\n                }, 0);\n              } finally {\n                break;\n              }\n            }\n          }\n\n          if (consoleSettingsRef.breakOnConsoleErrors) {\n            // --- Welcome to debugging with React DevTools ---\n            // This debugger statement means that you've enabled the \"break on warnings\" feature.\n            // Use the browser's Call Stack panel to step out of this override function-\n            // to where the original warning or error was logged.\n            // eslint-disable-next-line no-debugger\n            debugger;\n          }\n\n          originalMethod(...args);\n        };\n\n        overrideMethod.__REACT_DEVTOOLS_ORIGINAL_METHOD__ = originalMethod;\n        originalMethod.__REACT_DEVTOOLS_OVERRIDE_METHOD__ = overrideMethod;\n\n        targetConsole[method] = overrideMethod;\n      } catch (error) {}\n    });\n  } else {\n    unpatch();\n  }\n}\n\n// Removed component stack patch from console methods.\nexport function unpatch(): void {\n  if (unpatchFn !== null) {\n    unpatchFn();\n    unpatchFn = null;\n  }\n}\n\nlet unpatchForStrictModeFn: null | (() => void) = null;\n\n// NOTE: KEEP IN SYNC with src/hook.js:patchConsoleForInitialCommitInStrictMode\nexport function patchForStrictMode() {\n  const overrideConsoleMethods = [\n    'error',\n    'group',\n    'groupCollapsed',\n    'info',\n    'log',\n    'trace',\n    'warn',\n  ];\n\n  if (unpatchForStrictModeFn !== null) {\n    // Don't patch twice.\n    return;\n  }\n\n  const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n  unpatchForStrictModeFn = () => {\n    for (const method in originalConsoleMethods) {\n      try {\n        targetConsole[method] = originalConsoleMethods[method];\n      } catch (error) {}\n    }\n  };\n\n  overrideConsoleMethods.forEach(method => {\n    try {\n      const originalMethod = (originalConsoleMethods[method] = targetConsole[\n        method\n      ].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n        ? targetConsole[method].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n        : targetConsole[method]);\n\n      // $FlowFixMe[missing-local-annot]\n      const overrideMethod = (...args) => {\n        if (!consoleSettingsRef.hideConsoleLogsInStrictMode) {\n          // Dim the text color of the double logs if we're not hiding them.\n          if (__IS_FIREFOX__) {\n            originalMethod(\n              ...formatWithStyles(args, FIREFOX_CONSOLE_DIMMING_COLOR),\n            );\n          } else {\n            originalMethod(\n              ANSI_STYLE_DIMMING_TEMPLATE,\n              ...formatConsoleArguments(...args),\n            );\n          }\n        }\n      };\n\n      overrideMethod.__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__ =\n        originalMethod;\n      originalMethod.__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__ =\n        overrideMethod;\n\n      targetConsole[method] = overrideMethod;\n    } catch (error) {}\n  });\n}\n\n// NOTE: KEEP IN SYNC with src/hook.js:unpatchConsoleForInitialCommitInStrictMode\nexport function unpatchForStrictMode(): void {\n  if (unpatchForStrictModeFn !== null) {\n    unpatchForStrictModeFn();\n    unpatchForStrictModeFn = null;\n  }\n}\n\nexport function patchConsoleUsingWindowValues() {\n  const appendComponentStack =\n    castBool(window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__) ?? true;\n  const breakOnConsoleErrors =\n    castBool(window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__) ?? false;\n  const showInlineWarningsAndErrors =\n    castBool(window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__) ?? true;\n  const hideConsoleLogsInStrictMode =\n    castBool(window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__) ??\n    false;\n  const browserTheme =\n    castBrowserTheme(window.__REACT_DEVTOOLS_BROWSER_THEME__) ?? 'dark';\n\n  patch({\n    appendComponentStack,\n    breakOnConsoleErrors,\n    showInlineWarningsAndErrors,\n    hideConsoleLogsInStrictMode,\n    browserTheme,\n  });\n}\n\n// After receiving cached console patch settings from React Native, we set them on window.\n// When the console is initially patched (in renderer.js and hook.js), these values are read.\n// The browser extension (etc.) sets these values on window, but through another method.\nexport function writeConsolePatchSettingsToWindow(\n  settings: ConsolePatchSettings,\n): void {\n  window.__REACT_DEVTOOLS_APPEND_COMPONENT_STACK__ =\n    settings.appendComponentStack;\n  window.__REACT_DEVTOOLS_BREAK_ON_CONSOLE_ERRORS__ =\n    settings.breakOnConsoleErrors;\n  window.__REACT_DEVTOOLS_SHOW_INLINE_WARNINGS_AND_ERRORS__ =\n    settings.showInlineWarningsAndErrors;\n  window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__ =\n    settings.hideConsoleLogsInStrictMode;\n  window.__REACT_DEVTOOLS_BROWSER_THEME__ = settings.browserTheme;\n}\n\nexport function installConsoleFunctionsToWindow(): void {\n  window.__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__ = {\n    patchConsoleUsingWindowValues,\n    registerRendererWithConsole: registerRenderer,\n  };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport EventEmitter from './events';\n\nimport type {ComponentFilter, Wall} from './frontend/types';\nimport type {\n  InspectedElementPayload,\n  OwnersList,\n  ProfilingDataBackend,\n  RendererID,\n  ConsolePatchSettings,\n} from 'react-devtools-shared/src/backend/types';\nimport type {StyleAndLayout as StyleAndLayoutPayload} from 'react-devtools-shared/src/backend/NativeStyleEditor/types';\n\nconst BATCH_DURATION = 100;\n\n// This message specifies the version of the DevTools protocol currently supported by the backend,\n// as well as the earliest NPM version (e.g. \"4.13.0\") that protocol is supported by on the frontend.\n// This enables an older frontend to display an upgrade message to users for a newer, unsupported backend.\nexport type BridgeProtocol = {\n  // Version supported by the current frontend/backend.\n  version: number,\n\n  // NPM version range that also supports this version.\n  // Note that 'maxNpmVersion' is only set when the version is bumped.\n  minNpmVersion: string,\n  maxNpmVersion: string | null,\n};\n\n// Bump protocol version whenever a backwards breaking change is made\n// in the messages sent between BackendBridge and FrontendBridge.\n// This mapping is embedded in both frontend and backend builds.\n//\n// The backend protocol will always be the latest entry in the BRIDGE_PROTOCOL array.\n//\n// When an older frontend connects to a newer backend,\n// the backend can send the minNpmVersion and the frontend can display an NPM upgrade prompt.\n//\n// When a newer frontend connects with an older protocol version,\n// the frontend can use the embedded minNpmVersion/maxNpmVersion values to display a downgrade prompt.\nexport const BRIDGE_PROTOCOL: Array<BridgeProtocol> = [\n  // This version technically never existed,\n  // but a backwards breaking change was added in 4.11,\n  // so the safest guess to downgrade the frontend would be to version 4.10.\n  {\n    version: 0,\n    minNpmVersion: '\"<4.11.0\"',\n    maxNpmVersion: '\"<4.11.0\"',\n  },\n  // Versions 4.11.x – 4.12.x contained the backwards breaking change,\n  // but we didn't add the \"fix\" of checking the protocol version until 4.13,\n  // so we don't recommend downgrading to 4.11 or 4.12.\n  {\n    version: 1,\n    minNpmVersion: '4.13.0',\n    maxNpmVersion: '4.21.0',\n  },\n  // Version 2 adds a StrictMode-enabled and supports-StrictMode bits to add-root operation.\n  {\n    version: 2,\n    minNpmVersion: '4.22.0',\n    maxNpmVersion: null,\n  },\n];\n\nexport const currentBridgeProtocol: BridgeProtocol =\n  BRIDGE_PROTOCOL[BRIDGE_PROTOCOL.length - 1];\n\ntype ElementAndRendererID = {id: number, rendererID: RendererID};\n\ntype Message = {\n  event: string,\n  payload: any,\n};\n\ntype HighlightElementInDOM = {\n  ...ElementAndRendererID,\n  displayName: string | null,\n  hideAfterTimeout: boolean,\n  openNativeElementsPanel: boolean,\n  scrollIntoView: boolean,\n};\n\ntype OverrideValue = {\n  ...ElementAndRendererID,\n  path: Array<string | number>,\n  wasForwarded?: boolean,\n  value: any,\n};\n\ntype OverrideHookState = {\n  ...OverrideValue,\n  hookID: number,\n};\n\ntype PathType = 'props' | 'hooks' | 'state' | 'context';\n\ntype DeletePath = {\n  ...ElementAndRendererID,\n  type: PathType,\n  hookID?: ?number,\n  path: Array<string | number>,\n};\n\ntype RenamePath = {\n  ...ElementAndRendererID,\n  type: PathType,\n  hookID?: ?number,\n  oldPath: Array<string | number>,\n  newPath: Array<string | number>,\n};\n\ntype OverrideValueAtPath = {\n  ...ElementAndRendererID,\n  type: PathType,\n  hookID?: ?number,\n  path: Array<string | number>,\n  value: any,\n};\n\ntype OverrideError = {\n  ...ElementAndRendererID,\n  forceError: boolean,\n};\n\ntype OverrideSuspense = {\n  ...ElementAndRendererID,\n  forceFallback: boolean,\n};\n\ntype CopyElementPathParams = {\n  ...ElementAndRendererID,\n  path: Array<string | number>,\n};\n\ntype ViewAttributeSourceParams = {\n  ...ElementAndRendererID,\n  path: Array<string | number>,\n};\n\ntype InspectElementParams = {\n  ...ElementAndRendererID,\n  forceFullData: boolean,\n  path: Array<number | string> | null,\n  requestID: number,\n};\n\ntype StoreAsGlobalParams = {\n  ...ElementAndRendererID,\n  count: number,\n  path: Array<string | number>,\n};\n\ntype NativeStyleEditor_RenameAttributeParams = {\n  ...ElementAndRendererID,\n  oldName: string,\n  newName: string,\n  value: string,\n};\n\ntype NativeStyleEditor_SetValueParams = {\n  ...ElementAndRendererID,\n  name: string,\n  value: string,\n};\n\ntype SavedPreferencesParams = {\n  appendComponentStack: boolean,\n  breakOnConsoleErrors: boolean,\n  componentFilters: Array<ComponentFilter>,\n  showInlineWarningsAndErrors: boolean,\n  hideConsoleLogsInStrictMode: boolean,\n};\n\nexport type BackendEvents = {\n  backendVersion: [string],\n  bridgeProtocol: [BridgeProtocol],\n  extensionBackendInitialized: [],\n  fastRefreshScheduled: [],\n  getSavedPreferences: [],\n  inspectedElement: [InspectedElementPayload],\n  isBackendStorageAPISupported: [boolean],\n  isSynchronousXHRSupported: [boolean],\n  operations: [Array<number>],\n  ownersList: [OwnersList],\n  overrideComponentFilters: [Array<ComponentFilter>],\n  profilingData: [ProfilingDataBackend],\n  profilingStatus: [boolean],\n  reloadAppForProfiling: [],\n  saveToClipboard: [string],\n  selectFiber: [number],\n  shutdown: [],\n  stopInspectingNative: [boolean],\n  syncSelectionFromNativeElementsPanel: [],\n  syncSelectionToNativeElementsPanel: [],\n  unsupportedRendererVersion: [RendererID],\n\n  // React Native style editor plug-in.\n  isNativeStyleEditorSupported: [\n    {isSupported: boolean, validAttributes: ?$ReadOnlyArray<string>},\n  ],\n  NativeStyleEditor_styleAndLayout: [StyleAndLayoutPayload],\n};\n\ntype FrontendEvents = {\n  clearErrorsAndWarnings: [{rendererID: RendererID}],\n  clearErrorsForFiberID: [ElementAndRendererID],\n  clearNativeElementHighlight: [],\n  clearWarningsForFiberID: [ElementAndRendererID],\n  copyElementPath: [CopyElementPathParams],\n  deletePath: [DeletePath],\n  getBackendVersion: [],\n  getBridgeProtocol: [],\n  getOwnersList: [ElementAndRendererID],\n  getProfilingData: [{rendererID: RendererID}],\n  getProfilingStatus: [],\n  highlightNativeElement: [HighlightElementInDOM],\n  inspectElement: [InspectElementParams],\n  logElementToConsole: [ElementAndRendererID],\n  overrideError: [OverrideError],\n  overrideSuspense: [OverrideSuspense],\n  overrideValueAtPath: [OverrideValueAtPath],\n  profilingData: [ProfilingDataBackend],\n  reloadAndProfile: [boolean],\n  renamePath: [RenamePath],\n  savedPreferences: [SavedPreferencesParams],\n  selectFiber: [number],\n  setTraceUpdatesEnabled: [boolean],\n  shutdown: [],\n  startInspectingNative: [],\n  startProfiling: [boolean],\n  stopInspectingNative: [boolean],\n  stopProfiling: [],\n  storeAsGlobal: [StoreAsGlobalParams],\n  updateComponentFilters: [Array<ComponentFilter>],\n  updateConsolePatchSettings: [ConsolePatchSettings],\n  viewAttributeSource: [ViewAttributeSourceParams],\n  viewElementSource: [ElementAndRendererID],\n\n  // React Native style editor plug-in.\n  NativeStyleEditor_measure: [ElementAndRendererID],\n  NativeStyleEditor_renameAttribute: [NativeStyleEditor_RenameAttributeParams],\n  NativeStyleEditor_setValue: [NativeStyleEditor_SetValueParams],\n\n  // Temporarily support newer standalone front-ends sending commands to older embedded backends.\n  // We do this because React Native embeds the React DevTools backend,\n  // but cannot control which version of the frontend users use.\n  //\n  // Note that nothing in the newer backend actually listens to these events,\n  // but the new frontend still dispatches them (in case older backends are listening to them instead).\n  //\n  // Note that this approach does no support the combination of a newer backend with an older frontend.\n  // It would be more work to support both approaches (and not run handlers twice)\n  // so I chose to support the more likely/common scenario (and the one more difficult for an end user to \"fix\").\n  overrideContext: [OverrideValue],\n  overrideHookState: [OverrideHookState],\n  overrideProps: [OverrideValue],\n  overrideState: [OverrideValue],\n\n  resumeElementPolling: [],\n  pauseElementPolling: [],\n};\n\nclass Bridge<\n  OutgoingEvents: Object,\n  IncomingEvents: Object,\n> extends EventEmitter<{\n  ...IncomingEvents,\n  ...OutgoingEvents,\n}> {\n  _isShutdown: boolean = false;\n  _messageQueue: Array<any> = [];\n  _timeoutID: TimeoutID | null = null;\n  _wall: Wall;\n  _wallUnlisten: Function | null = null;\n\n  constructor(wall: Wall) {\n    super();\n\n    this._wall = wall;\n\n    this._wallUnlisten =\n      wall.listen((message: Message) => {\n        if (message && message.event) {\n          (this: any).emit(message.event, message.payload);\n        }\n      }) || null;\n\n    // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n    // We do this because React Native embeds the React DevTools backend,\n    // but cannot control which version of the frontend users use.\n    this.addListener('overrideValueAtPath', this.overrideValueAtPath);\n  }\n\n  // Listening directly to the wall isn't advised.\n  // It can be used to listen for legacy (v3) messages (since they use a different format).\n  get wall(): Wall {\n    return this._wall;\n  }\n\n  send<EventName: $Keys<OutgoingEvents>>(\n    event: EventName,\n    ...payload: $ElementType<OutgoingEvents, EventName>\n  ) {\n    if (this._isShutdown) {\n      console.warn(\n        `Cannot send message \"${event}\" through a Bridge that has been shutdown.`,\n      );\n      return;\n    }\n\n    // When we receive a message:\n    // - we add it to our queue of messages to be sent\n    // - if there hasn't been a message recently, we set a timer for 0 ms in\n    //   the future, allowing all messages created in the same tick to be sent\n    //   together\n    // - if there *has* been a message flushed in the last BATCH_DURATION ms\n    //   (or we're waiting for our setTimeout-0 to fire), then _timeoutID will\n    //   be set, and we'll simply add to the queue and wait for that\n    this._messageQueue.push(event, payload);\n    if (!this._timeoutID) {\n      this._timeoutID = setTimeout(this._flush, 0);\n    }\n  }\n\n  shutdown() {\n    if (this._isShutdown) {\n      console.warn('Bridge was already shutdown.');\n      return;\n    }\n\n    // Queue the shutdown outgoing message for subscribers.\n    this.emit('shutdown');\n    this.send('shutdown');\n\n    // Mark this bridge as destroyed, i.e. disable its public API.\n    this._isShutdown = true;\n\n    // Disable the API inherited from EventEmitter that can add more listeners and send more messages.\n    // $FlowFixMe[cannot-write] This property is not writable.\n    this.addListener = function () {};\n    // $FlowFixMe[cannot-write] This property is not writable.\n    this.emit = function () {};\n    // NOTE: There's also EventEmitter API like `on` and `prependListener` that we didn't add to our Flow type of EventEmitter.\n\n    // Unsubscribe this bridge incoming message listeners to be sure, and so they don't have to do that.\n    this.removeAllListeners();\n\n    // Stop accepting and emitting incoming messages from the wall.\n    const wallUnlisten = this._wallUnlisten;\n    if (wallUnlisten) {\n      wallUnlisten();\n    }\n\n    // Synchronously flush all queued outgoing messages.\n    // At this step the subscribers' code may run in this call stack.\n    do {\n      this._flush();\n    } while (this._messageQueue.length);\n\n    // Make sure once again that there is no dangling timer.\n    if (this._timeoutID !== null) {\n      clearTimeout(this._timeoutID);\n      this._timeoutID = null;\n    }\n  }\n\n  _flush: () => void = () => {\n    // This method is used after the bridge is marked as destroyed in shutdown sequence,\n    // so we do not bail out if the bridge marked as destroyed.\n    // It is a private method that the bridge ensures is only called at the right times.\n\n    if (this._timeoutID !== null) {\n      clearTimeout(this._timeoutID);\n      this._timeoutID = null;\n    }\n\n    if (this._messageQueue.length) {\n      for (let i = 0; i < this._messageQueue.length; i += 2) {\n        this._wall.send(this._messageQueue[i], ...this._messageQueue[i + 1]);\n      }\n      this._messageQueue.length = 0;\n\n      // Check again for queued messages in BATCH_DURATION ms. This will keep\n      // flushing in a loop as long as messages continue to be added. Once no\n      // more are, the timer expires.\n      this._timeoutID = setTimeout(this._flush, BATCH_DURATION);\n    }\n  };\n\n  // Temporarily support older standalone backends by forwarding \"overrideValueAtPath\" commands\n  // to the older message types they may be listening to.\n  overrideValueAtPath: OverrideValueAtPath => void = ({\n    id,\n    path,\n    rendererID,\n    type,\n    value,\n  }: OverrideValueAtPath) => {\n    switch (type) {\n      case 'context':\n        this.send('overrideContext', {\n          id,\n          path,\n          rendererID,\n          wasForwarded: true,\n          value,\n        });\n        break;\n      case 'hooks':\n        this.send('overrideHookState', {\n          id,\n          path,\n          rendererID,\n          wasForwarded: true,\n          value,\n        });\n        break;\n      case 'props':\n        this.send('overrideProps', {\n          id,\n          path,\n          rendererID,\n          wasForwarded: true,\n          value,\n        });\n        break;\n      case 'state':\n        this.send('overrideState', {\n          id,\n          path,\n          rendererID,\n          wasForwarded: true,\n          value,\n        });\n        break;\n    }\n  };\n}\n\nexport type BackendBridge = Bridge<BackendEvents, FrontendEvents>;\nexport type FrontendBridge = Bridge<FrontendEvents, BackendEvents>;\n\nexport default Bridge;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport EventEmitter from '../events';\nimport throttle from 'lodash.throttle';\nimport {\n  SESSION_STORAGE_LAST_SELECTION_KEY,\n  SESSION_STORAGE_RELOAD_AND_PROFILE_KEY,\n  SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n  __DEBUG__,\n} from '../constants';\nimport {\n  sessionStorageGetItem,\n  sessionStorageRemoveItem,\n  sessionStorageSetItem,\n} from 'react-devtools-shared/src/storage';\nimport setupHighlighter from './views/Highlighter';\nimport {\n  initialize as setupTraceUpdates,\n  toggleEnabled as setTraceUpdatesEnabled,\n} from './views/TraceUpdates';\nimport {patch as patchConsole} from './console';\nimport {currentBridgeProtocol} from 'react-devtools-shared/src/bridge';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {\n  InstanceAndStyle,\n  NativeType,\n  OwnersList,\n  PathFrame,\n  PathMatch,\n  RendererID,\n  RendererInterface,\n  ConsolePatchSettings,\n} from './types';\nimport type {\n  ComponentFilter,\n  BrowserTheme,\n} from 'react-devtools-shared/src/frontend/types';\nimport {isSynchronousXHRSupported} from './utils';\n\nconst debug = (methodName: string, ...args: Array<string>) => {\n  if (__DEBUG__) {\n    console.log(\n      `%cAgent %c${methodName}`,\n      'color: purple; font-weight: bold;',\n      'font-weight: bold;',\n      ...args,\n    );\n  }\n};\n\ntype ElementAndRendererID = {\n  id: number,\n  rendererID: number,\n};\n\ntype StoreAsGlobalParams = {\n  count: number,\n  id: number,\n  path: Array<string | number>,\n  rendererID: number,\n};\n\ntype CopyElementParams = {\n  id: number,\n  path: Array<string | number>,\n  rendererID: number,\n};\n\ntype InspectElementParams = {\n  forceFullData: boolean,\n  id: number,\n  path: Array<string | number> | null,\n  rendererID: number,\n  requestID: number,\n};\n\ntype OverrideHookParams = {\n  id: number,\n  hookID: number,\n  path: Array<string | number>,\n  rendererID: number,\n  wasForwarded?: boolean,\n  value: any,\n};\n\ntype SetInParams = {\n  id: number,\n  path: Array<string | number>,\n  rendererID: number,\n  wasForwarded?: boolean,\n  value: any,\n};\n\ntype PathType = 'props' | 'hooks' | 'state' | 'context';\n\ntype DeletePathParams = {\n  type: PathType,\n  hookID?: ?number,\n  id: number,\n  path: Array<string | number>,\n  rendererID: number,\n};\n\ntype RenamePathParams = {\n  type: PathType,\n  hookID?: ?number,\n  id: number,\n  oldPath: Array<string | number>,\n  newPath: Array<string | number>,\n  rendererID: number,\n};\n\ntype OverrideValueAtPathParams = {\n  type: PathType,\n  hookID?: ?number,\n  id: number,\n  path: Array<string | number>,\n  rendererID: number,\n  value: any,\n};\n\ntype OverrideErrorParams = {\n  id: number,\n  rendererID: number,\n  forceError: boolean,\n};\n\ntype OverrideSuspenseParams = {\n  id: number,\n  rendererID: number,\n  forceFallback: boolean,\n};\n\ntype PersistedSelection = {\n  rendererID: number,\n  path: Array<PathFrame>,\n};\n\nexport default class Agent extends EventEmitter<{\n  hideNativeHighlight: [],\n  showNativeHighlight: [NativeType],\n  startInspectingNative: [],\n  stopInspectingNative: [],\n  shutdown: [],\n  traceUpdates: [Set<NativeType>],\n  drawTraceUpdates: [Array<NativeType>],\n  disableTraceUpdates: [],\n}> {\n  _bridge: BackendBridge;\n  _isProfiling: boolean = false;\n  _recordChangeDescriptions: boolean = false;\n  _rendererInterfaces: {[key: RendererID]: RendererInterface, ...} = {};\n  _persistedSelection: PersistedSelection | null = null;\n  _persistedSelectionMatch: PathMatch | null = null;\n  _traceUpdatesEnabled: boolean = false;\n\n  constructor(bridge: BackendBridge) {\n    super();\n\n    if (\n      sessionStorageGetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY) === 'true'\n    ) {\n      this._recordChangeDescriptions =\n        sessionStorageGetItem(\n          SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n        ) === 'true';\n      this._isProfiling = true;\n\n      sessionStorageRemoveItem(SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY);\n      sessionStorageRemoveItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY);\n    }\n\n    const persistedSelectionString = sessionStorageGetItem(\n      SESSION_STORAGE_LAST_SELECTION_KEY,\n    );\n    if (persistedSelectionString != null) {\n      this._persistedSelection = JSON.parse(persistedSelectionString);\n    }\n\n    this._bridge = bridge;\n\n    bridge.addListener('clearErrorsAndWarnings', this.clearErrorsAndWarnings);\n    bridge.addListener('clearErrorsForFiberID', this.clearErrorsForFiberID);\n    bridge.addListener('clearWarningsForFiberID', this.clearWarningsForFiberID);\n    bridge.addListener('copyElementPath', this.copyElementPath);\n    bridge.addListener('deletePath', this.deletePath);\n    bridge.addListener('getBackendVersion', this.getBackendVersion);\n    bridge.addListener('getBridgeProtocol', this.getBridgeProtocol);\n    bridge.addListener('getProfilingData', this.getProfilingData);\n    bridge.addListener('getProfilingStatus', this.getProfilingStatus);\n    bridge.addListener('getOwnersList', this.getOwnersList);\n    bridge.addListener('inspectElement', this.inspectElement);\n    bridge.addListener('logElementToConsole', this.logElementToConsole);\n    bridge.addListener('overrideError', this.overrideError);\n    bridge.addListener('overrideSuspense', this.overrideSuspense);\n    bridge.addListener('overrideValueAtPath', this.overrideValueAtPath);\n    bridge.addListener('reloadAndProfile', this.reloadAndProfile);\n    bridge.addListener('renamePath', this.renamePath);\n    bridge.addListener('setTraceUpdatesEnabled', this.setTraceUpdatesEnabled);\n    bridge.addListener('startProfiling', this.startProfiling);\n    bridge.addListener('stopProfiling', this.stopProfiling);\n    bridge.addListener('storeAsGlobal', this.storeAsGlobal);\n    bridge.addListener(\n      'syncSelectionFromNativeElementsPanel',\n      this.syncSelectionFromNativeElementsPanel,\n    );\n    bridge.addListener('shutdown', this.shutdown);\n    bridge.addListener(\n      'updateConsolePatchSettings',\n      this.updateConsolePatchSettings,\n    );\n    bridge.addListener('updateComponentFilters', this.updateComponentFilters);\n    bridge.addListener('viewAttributeSource', this.viewAttributeSource);\n    bridge.addListener('viewElementSource', this.viewElementSource);\n\n    // Temporarily support older standalone front-ends sending commands to newer embedded backends.\n    // We do this because React Native embeds the React DevTools backend,\n    // but cannot control which version of the frontend users use.\n    bridge.addListener('overrideContext', this.overrideContext);\n    bridge.addListener('overrideHookState', this.overrideHookState);\n    bridge.addListener('overrideProps', this.overrideProps);\n    bridge.addListener('overrideState', this.overrideState);\n\n    if (this._isProfiling) {\n      bridge.send('profilingStatus', true);\n    }\n\n    // Send the Bridge protocol and backend versions, after initialization, in case the frontend has already requested it.\n    // The Store may be instantiated beore the agent.\n    const version = process.env.DEVTOOLS_VERSION;\n    if (version) {\n      this._bridge.send('backendVersion', version);\n    }\n    this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n\n    // Notify the frontend if the backend supports the Storage API (e.g. localStorage).\n    // If not, features like reload-and-profile will not work correctly and must be disabled.\n    let isBackendStorageAPISupported = false;\n    try {\n      localStorage.getItem('test');\n      isBackendStorageAPISupported = true;\n    } catch (error) {}\n    bridge.send('isBackendStorageAPISupported', isBackendStorageAPISupported);\n    bridge.send('isSynchronousXHRSupported', isSynchronousXHRSupported());\n\n    setupHighlighter(bridge, this);\n    setupTraceUpdates(this);\n  }\n\n  get rendererInterfaces(): {[key: RendererID]: RendererInterface, ...} {\n    return this._rendererInterfaces;\n  }\n\n  clearErrorsAndWarnings: ({rendererID: RendererID}) => void = ({\n    rendererID,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\"`);\n    } else {\n      renderer.clearErrorsAndWarnings();\n    }\n  };\n\n  clearErrorsForFiberID: ElementAndRendererID => void = ({id, rendererID}) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\"`);\n    } else {\n      renderer.clearErrorsForFiberID(id);\n    }\n  };\n\n  clearWarningsForFiberID: ElementAndRendererID => void = ({\n    id,\n    rendererID,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\"`);\n    } else {\n      renderer.clearWarningsForFiberID(id);\n    }\n  };\n\n  copyElementPath: CopyElementParams => void = ({\n    id,\n    path,\n    rendererID,\n  }: CopyElementParams) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      const value = renderer.getSerializedElementValueByPath(id, path);\n\n      if (value != null) {\n        this._bridge.send('saveToClipboard', value);\n      } else {\n        console.warn(`Unable to obtain serialized value for element \"${id}\"`);\n      }\n    }\n  };\n\n  deletePath: DeletePathParams => void = ({\n    hookID,\n    id,\n    path,\n    rendererID,\n    type,\n  }: DeletePathParams) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.deletePath(type, id, hookID, path);\n    }\n  };\n\n  getInstanceAndStyle({\n    id,\n    rendererID,\n  }: ElementAndRendererID): InstanceAndStyle | null {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\"`);\n      return null;\n    }\n    return renderer.getInstanceAndStyle(id);\n  }\n\n  getBestMatchingRendererInterface(node: Object): RendererInterface | null {\n    let bestMatch = null;\n    for (const rendererID in this._rendererInterfaces) {\n      const renderer = ((this._rendererInterfaces[\n        (rendererID: any)\n      ]: any): RendererInterface);\n      const fiber = renderer.getFiberForNative(node);\n      if (fiber !== null) {\n        // check if fiber.stateNode is matching the original hostInstance\n        if (fiber.stateNode === node) {\n          return renderer;\n        } else if (bestMatch === null) {\n          bestMatch = renderer;\n        }\n      }\n    }\n    // if an exact match is not found, return the first valid renderer as fallback\n    return bestMatch;\n  }\n\n  getIDForNode(node: Object): number | null {\n    const rendererInterface = this.getBestMatchingRendererInterface(node);\n    if (rendererInterface != null) {\n      try {\n        return rendererInterface.getFiberIDForNative(node, true);\n      } catch (error) {\n        // Some old React versions might throw if they can't find a match.\n        // If so we should ignore it...\n      }\n    }\n    return null;\n  }\n\n  getBackendVersion: () => void = () => {\n    const version = process.env.DEVTOOLS_VERSION;\n    if (version) {\n      this._bridge.send('backendVersion', version);\n    }\n  };\n\n  getBridgeProtocol: () => void = () => {\n    this._bridge.send('bridgeProtocol', currentBridgeProtocol);\n  };\n\n  getProfilingData: ({rendererID: RendererID}) => void = ({rendererID}) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\"`);\n    }\n\n    this._bridge.send('profilingData', renderer.getProfilingData());\n  };\n\n  getProfilingStatus: () => void = () => {\n    this._bridge.send('profilingStatus', this._isProfiling);\n  };\n\n  getOwnersList: ElementAndRendererID => void = ({id, rendererID}) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      const owners = renderer.getOwnersList(id);\n      this._bridge.send('ownersList', ({id, owners}: OwnersList));\n    }\n  };\n\n  inspectElement: InspectElementParams => void = ({\n    forceFullData,\n    id,\n    path,\n    rendererID,\n    requestID,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      this._bridge.send(\n        'inspectedElement',\n        renderer.inspectElement(requestID, id, path, forceFullData),\n      );\n\n      // When user selects an element, stop trying to restore the selection,\n      // and instead remember the current selection for the next reload.\n      if (\n        this._persistedSelectionMatch === null ||\n        this._persistedSelectionMatch.id !== id\n      ) {\n        this._persistedSelection = null;\n        this._persistedSelectionMatch = null;\n        renderer.setTrackedPath(null);\n        this._throttledPersistSelection(rendererID, id);\n      }\n\n      // TODO: If there was a way to change the selected DOM element\n      // in native Elements tab without forcing a switch to it, we'd do it here.\n      // For now, it doesn't seem like there is a way to do that:\n      // https://github.com/bvaughn/react-devtools-experimental/issues/102\n      // (Setting $0 doesn't work, and calling inspect() switches the tab.)\n    }\n  };\n\n  logElementToConsole: ElementAndRendererID => void = ({id, rendererID}) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.logElementToConsole(id);\n    }\n  };\n\n  overrideError: OverrideErrorParams => void = ({\n    id,\n    rendererID,\n    forceError,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.overrideError(id, forceError);\n    }\n  };\n\n  overrideSuspense: OverrideSuspenseParams => void = ({\n    id,\n    rendererID,\n    forceFallback,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.overrideSuspense(id, forceFallback);\n    }\n  };\n\n  overrideValueAtPath: OverrideValueAtPathParams => void = ({\n    hookID,\n    id,\n    path,\n    rendererID,\n    type,\n    value,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.overrideValueAtPath(type, id, hookID, path, value);\n    }\n  };\n\n  // Temporarily support older standalone front-ends by forwarding the older message types\n  // to the new \"overrideValueAtPath\" command the backend is now listening to.\n  overrideContext: SetInParams => void = ({\n    id,\n    path,\n    rendererID,\n    wasForwarded,\n    value,\n  }) => {\n    // Don't forward a message that's already been forwarded by the front-end Bridge.\n    // We only need to process the override command once!\n    if (!wasForwarded) {\n      this.overrideValueAtPath({\n        id,\n        path,\n        rendererID,\n        type: 'context',\n        value,\n      });\n    }\n  };\n\n  // Temporarily support older standalone front-ends by forwarding the older message types\n  // to the new \"overrideValueAtPath\" command the backend is now listening to.\n  overrideHookState: OverrideHookParams => void = ({\n    id,\n    hookID,\n    path,\n    rendererID,\n    wasForwarded,\n    value,\n  }) => {\n    // Don't forward a message that's already been forwarded by the front-end Bridge.\n    // We only need to process the override command once!\n    if (!wasForwarded) {\n      this.overrideValueAtPath({\n        id,\n        path,\n        rendererID,\n        type: 'hooks',\n        value,\n      });\n    }\n  };\n\n  // Temporarily support older standalone front-ends by forwarding the older message types\n  // to the new \"overrideValueAtPath\" command the backend is now listening to.\n  overrideProps: SetInParams => void = ({\n    id,\n    path,\n    rendererID,\n    wasForwarded,\n    value,\n  }) => {\n    // Don't forward a message that's already been forwarded by the front-end Bridge.\n    // We only need to process the override command once!\n    if (!wasForwarded) {\n      this.overrideValueAtPath({\n        id,\n        path,\n        rendererID,\n        type: 'props',\n        value,\n      });\n    }\n  };\n\n  // Temporarily support older standalone front-ends by forwarding the older message types\n  // to the new \"overrideValueAtPath\" command the backend is now listening to.\n  overrideState: SetInParams => void = ({\n    id,\n    path,\n    rendererID,\n    wasForwarded,\n    value,\n  }) => {\n    // Don't forward a message that's already been forwarded by the front-end Bridge.\n    // We only need to process the override command once!\n    if (!wasForwarded) {\n      this.overrideValueAtPath({\n        id,\n        path,\n        rendererID,\n        type: 'state',\n        value,\n      });\n    }\n  };\n\n  reloadAndProfile: (recordChangeDescriptions: boolean) => void =\n    recordChangeDescriptions => {\n      sessionStorageSetItem(SESSION_STORAGE_RELOAD_AND_PROFILE_KEY, 'true');\n      sessionStorageSetItem(\n        SESSION_STORAGE_RECORD_CHANGE_DESCRIPTIONS_KEY,\n        recordChangeDescriptions ? 'true' : 'false',\n      );\n\n      // This code path should only be hit if the shell has explicitly told the Store that it supports profiling.\n      // In that case, the shell must also listen for this specific message to know when it needs to reload the app.\n      // The agent can't do this in a way that is renderer agnostic.\n      this._bridge.send('reloadAppForProfiling');\n    };\n\n  renamePath: RenamePathParams => void = ({\n    hookID,\n    id,\n    newPath,\n    oldPath,\n    rendererID,\n    type,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.renamePath(type, id, hookID, oldPath, newPath);\n    }\n  };\n\n  selectNode(target: Object): void {\n    const id = this.getIDForNode(target);\n    if (id !== null) {\n      this._bridge.send('selectFiber', id);\n    }\n  }\n\n  setRendererInterface(\n    rendererID: RendererID,\n    rendererInterface: RendererInterface,\n  ) {\n    this._rendererInterfaces[rendererID] = rendererInterface;\n\n    if (this._isProfiling) {\n      rendererInterface.startProfiling(this._recordChangeDescriptions);\n    }\n\n    rendererInterface.setTraceUpdatesEnabled(this._traceUpdatesEnabled);\n\n    // When the renderer is attached, we need to tell it whether\n    // we remember the previous selection that we'd like to restore.\n    // It'll start tracking mounts for matches to the last selection path.\n    const selection = this._persistedSelection;\n    if (selection !== null && selection.rendererID === rendererID) {\n      rendererInterface.setTrackedPath(selection.path);\n    }\n  }\n\n  setTraceUpdatesEnabled: (traceUpdatesEnabled: boolean) => void =\n    traceUpdatesEnabled => {\n      this._traceUpdatesEnabled = traceUpdatesEnabled;\n\n      setTraceUpdatesEnabled(traceUpdatesEnabled);\n\n      for (const rendererID in this._rendererInterfaces) {\n        const renderer = ((this._rendererInterfaces[\n          (rendererID: any)\n        ]: any): RendererInterface);\n        renderer.setTraceUpdatesEnabled(traceUpdatesEnabled);\n      }\n    };\n\n  syncSelectionFromNativeElementsPanel: () => void = () => {\n    const target = window.__REACT_DEVTOOLS_GLOBAL_HOOK__.$0;\n    if (target == null) {\n      return;\n    }\n    this.selectNode(target);\n  };\n\n  shutdown: () => void = () => {\n    // Clean up the overlay if visible, and associated events.\n    this.emit('shutdown');\n  };\n\n  startProfiling: (recordChangeDescriptions: boolean) => void =\n    recordChangeDescriptions => {\n      this._recordChangeDescriptions = recordChangeDescriptions;\n      this._isProfiling = true;\n      for (const rendererID in this._rendererInterfaces) {\n        const renderer = ((this._rendererInterfaces[\n          (rendererID: any)\n        ]: any): RendererInterface);\n        renderer.startProfiling(recordChangeDescriptions);\n      }\n      this._bridge.send('profilingStatus', this._isProfiling);\n    };\n\n  stopProfiling: () => void = () => {\n    this._isProfiling = false;\n    this._recordChangeDescriptions = false;\n    for (const rendererID in this._rendererInterfaces) {\n      const renderer = ((this._rendererInterfaces[\n        (rendererID: any)\n      ]: any): RendererInterface);\n      renderer.stopProfiling();\n    }\n    this._bridge.send('profilingStatus', this._isProfiling);\n  };\n\n  stopInspectingNative: (selected: boolean) => void = selected => {\n    this._bridge.send('stopInspectingNative', selected);\n  };\n\n  storeAsGlobal: StoreAsGlobalParams => void = ({\n    count,\n    id,\n    path,\n    rendererID,\n  }) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.storeAsGlobal(id, path, count);\n    }\n  };\n\n  updateConsolePatchSettings: ({\n    appendComponentStack: boolean,\n    breakOnConsoleErrors: boolean,\n    browserTheme: BrowserTheme,\n    hideConsoleLogsInStrictMode: boolean,\n    showInlineWarningsAndErrors: boolean,\n  }) => void = ({\n    appendComponentStack,\n    breakOnConsoleErrors,\n    showInlineWarningsAndErrors,\n    hideConsoleLogsInStrictMode,\n    browserTheme,\n  }: ConsolePatchSettings) => {\n    // If the frontend preferences have changed,\n    // or in the case of React Native- if the backend is just finding out the preferences-\n    // then reinstall the console overrides.\n    // It's safe to call `patchConsole` multiple times.\n    patchConsole({\n      appendComponentStack,\n      breakOnConsoleErrors,\n      showInlineWarningsAndErrors,\n      hideConsoleLogsInStrictMode,\n      browserTheme,\n    });\n  };\n\n  updateComponentFilters: (componentFilters: Array<ComponentFilter>) => void =\n    componentFilters => {\n      for (const rendererID in this._rendererInterfaces) {\n        const renderer = ((this._rendererInterfaces[\n          (rendererID: any)\n        ]: any): RendererInterface);\n        renderer.updateComponentFilters(componentFilters);\n      }\n    };\n\n  viewAttributeSource: CopyElementParams => void = ({id, path, rendererID}) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.prepareViewAttributeSource(id, path);\n    }\n  };\n\n  viewElementSource: ElementAndRendererID => void = ({id, rendererID}) => {\n    const renderer = this._rendererInterfaces[rendererID];\n    if (renderer == null) {\n      console.warn(`Invalid renderer id \"${rendererID}\" for element \"${id}\"`);\n    } else {\n      renderer.prepareViewElementSource(id);\n    }\n  };\n\n  onTraceUpdates: (nodes: Set<NativeType>) => void = nodes => {\n    this.emit('traceUpdates', nodes);\n  };\n\n  onFastRefreshScheduled: () => void = () => {\n    if (__DEBUG__) {\n      debug('onFastRefreshScheduled');\n    }\n\n    this._bridge.send('fastRefreshScheduled');\n  };\n\n  onHookOperations: (operations: Array<number>) => void = operations => {\n    if (__DEBUG__) {\n      debug(\n        'onHookOperations',\n        `(${operations.length}) [${operations.join(', ')}]`,\n      );\n    }\n\n    // TODO:\n    // The chrome.runtime does not currently support transferables; it forces JSON serialization.\n    // See bug https://bugs.chromium.org/p/chromium/issues/detail?id=927134\n    //\n    // Regarding transferables, the postMessage doc states:\n    // If the ownership of an object is transferred, it becomes unusable (neutered)\n    // in the context it was sent from and becomes available only to the worker it was sent to.\n    //\n    // Even though Chrome is eventually JSON serializing the array buffer,\n    // using the transferable approach also sometimes causes it to throw:\n    //   DOMException: Failed to execute 'postMessage' on 'Window': ArrayBuffer at index 0 is already neutered.\n    //\n    // See bug https://github.com/bvaughn/react-devtools-experimental/issues/25\n    //\n    // The Store has a fallback in place that parses the message as JSON if the type isn't an array.\n    // For now the simplest fix seems to be to not transfer the array.\n    // This will negatively impact performance on Firefox so it's unfortunate,\n    // but until we're able to fix the Chrome error mentioned above, it seems necessary.\n    //\n    // this._bridge.send('operations', operations, [operations.buffer]);\n    this._bridge.send('operations', operations);\n\n    if (this._persistedSelection !== null) {\n      const rendererID = operations[0];\n      if (this._persistedSelection.rendererID === rendererID) {\n        // Check if we can select a deeper match for the persisted selection.\n        const renderer = this._rendererInterfaces[rendererID];\n        if (renderer == null) {\n          console.warn(`Invalid renderer id \"${rendererID}\"`);\n        } else {\n          const prevMatch = this._persistedSelectionMatch;\n          const nextMatch = renderer.getBestMatchForTrackedPath();\n          this._persistedSelectionMatch = nextMatch;\n          const prevMatchID = prevMatch !== null ? prevMatch.id : null;\n          const nextMatchID = nextMatch !== null ? nextMatch.id : null;\n          if (prevMatchID !== nextMatchID) {\n            if (nextMatchID !== null) {\n              // We moved forward, unlocking a deeper node.\n              this._bridge.send('selectFiber', nextMatchID);\n            }\n          }\n          if (nextMatch !== null && nextMatch.isFullMatch) {\n            // We've just unlocked the innermost selected node.\n            // There's no point tracking it further.\n            this._persistedSelection = null;\n            this._persistedSelectionMatch = null;\n            renderer.setTrackedPath(null);\n          }\n        }\n      }\n    }\n  };\n\n  onUnsupportedRenderer(rendererID: number) {\n    this._bridge.send('unsupportedRendererVersion', rendererID);\n  }\n\n  _throttledPersistSelection: any = throttle(\n    (rendererID: number, id: number) => {\n      // This is throttled, so both renderer and selected ID\n      // might not be available by the time we read them.\n      // This is why we need the defensive checks here.\n      const renderer = this._rendererInterfaces[rendererID];\n      const path = renderer != null ? renderer.getPathForElement(id) : null;\n      if (path !== null) {\n        sessionStorageSetItem(\n          SESSION_STORAGE_LAST_SELECTION_KEY,\n          JSON.stringify(({rendererID, path}: PersistedSelection)),\n        );\n      } else {\n        sessionStorageRemoveItem(SESSION_STORAGE_LAST_SELECTION_KEY);\n      }\n    },\n    1000,\n  );\n}\n","/**\n * Install the hook on window, which is an event emitter.\n * Note: this global hook __REACT_DEVTOOLS_GLOBAL_HOOK__ is a de facto public API.\n * It's especially important to avoid creating direct dependency on the DevTools Backend.\n * That's why we still inline the whole event emitter implementation,\n * the string format implementation, and part of the console implementation here.\n *\n * @flow\n */\n\nimport type {\n  DevToolsHook,\n  Handler,\n  ReactRenderer,\n  RendererID,\n  RendererInterface,\n  DevToolsBackend,\n} from './backend/types';\n\nimport {\n  FIREFOX_CONSOLE_DIMMING_COLOR,\n  ANSI_STYLE_DIMMING_TEMPLATE,\n} from 'react-devtools-shared/src/constants';\n\ndeclare var window: any;\n\nexport function installHook(target: any): DevToolsHook | null {\n  if (target.hasOwnProperty('__REACT_DEVTOOLS_GLOBAL_HOOK__')) {\n    return null;\n  }\n\n  let targetConsole: Object = console;\n  let targetConsoleMethods: {[string]: $FlowFixMe} = {};\n  for (const method in console) {\n    targetConsoleMethods[method] = console[method];\n  }\n\n  function dangerous_setTargetConsoleForTesting(\n    targetConsoleForTesting: Object,\n  ): void {\n    targetConsole = targetConsoleForTesting;\n\n    targetConsoleMethods = ({}: {[string]: $FlowFixMe});\n    for (const method in targetConsole) {\n      targetConsoleMethods[method] = console[method];\n    }\n  }\n\n  function detectReactBuildType(renderer: ReactRenderer) {\n    try {\n      if (typeof renderer.version === 'string') {\n        // React DOM Fiber (16+)\n        if (renderer.bundleType > 0) {\n          // This is not a production build.\n          // We are currently only using 0 (PROD) and 1 (DEV)\n          // but might add 2 (PROFILE) in the future.\n          return 'development';\n        }\n\n        // React 16 uses flat bundles. If we report the bundle as production\n        // version, it means we also minified and envified it ourselves.\n        return 'production';\n        // Note: There is still a risk that the CommonJS entry point has not\n        // been envified or uglified. In this case the user would have *both*\n        // development and production bundle, but only the prod one would run.\n        // This would be really bad. We have a separate check for this because\n        // it happens *outside* of the renderer injection. See `checkDCE` below.\n      }\n\n      // $FlowFixMe[method-unbinding]\n      const toString = Function.prototype.toString;\n      if (renderer.Mount && renderer.Mount._renderNewRootComponent) {\n        // React DOM Stack\n        const renderRootCode = toString.call(\n          renderer.Mount._renderNewRootComponent,\n        );\n        // Filter out bad results (if that is even possible):\n        if (renderRootCode.indexOf('function') !== 0) {\n          // Hope for the best if we're not sure.\n          return 'production';\n        }\n        // Check for React DOM Stack < 15.1.0 in development.\n        // If it contains \"storedMeasure\" call, it's wrapped in ReactPerf (DEV only).\n        // This would be true even if it's minified, as method name still matches.\n        if (renderRootCode.indexOf('storedMeasure') !== -1) {\n          return 'development';\n        }\n        // For other versions (and configurations) it's not so easy.\n        // Let's quickly exclude proper production builds.\n        // If it contains a warning message, it's either a DEV build,\n        // or an PROD build without proper dead code elimination.\n        if (renderRootCode.indexOf('should be a pure function') !== -1) {\n          // Now how do we tell a DEV build from a bad PROD build?\n          // If we see NODE_ENV, we're going to assume this is a dev build\n          // because most likely it is referring to an empty shim.\n          if (renderRootCode.indexOf('NODE_ENV') !== -1) {\n            return 'development';\n          }\n          // If we see \"development\", we're dealing with an envified DEV build\n          // (such as the official React DEV UMD).\n          if (renderRootCode.indexOf('development') !== -1) {\n            return 'development';\n          }\n          // I've seen process.env.NODE_ENV !== 'production' being smartly\n          // replaced by `true` in DEV by Webpack. I don't know how that\n          // works but we can safely guard against it because `true` was\n          // never used in the function source since it was written.\n          if (renderRootCode.indexOf('true') !== -1) {\n            return 'development';\n          }\n          // By now either it is a production build that has not been minified,\n          // or (worse) this is a minified development build using non-standard\n          // environment (e.g. \"staging\"). We're going to look at whether\n          // the function argument name is mangled:\n          if (\n            // 0.13 to 15\n            renderRootCode.indexOf('nextElement') !== -1 ||\n            // 0.12\n            renderRootCode.indexOf('nextComponent') !== -1\n          ) {\n            // We can't be certain whether this is a development build or not,\n            // but it is definitely unminified.\n            return 'unminified';\n          } else {\n            // This is likely a minified development build.\n            return 'development';\n          }\n        }\n        // By now we know that it's envified and dead code elimination worked,\n        // but what if it's still not minified? (Is this even possible?)\n        // Let's check matches for the first argument name.\n        if (\n          // 0.13 to 15\n          renderRootCode.indexOf('nextElement') !== -1 ||\n          // 0.12\n          renderRootCode.indexOf('nextComponent') !== -1\n        ) {\n          return 'unminified';\n        }\n        // Seems like we're using the production version.\n        // However, the branch above is Stack-only so this is 15 or earlier.\n        return 'outdated';\n      }\n    } catch (err) {\n      // Weird environments may exist.\n      // This code needs a higher fault tolerance\n      // because it runs even with closed DevTools.\n      // TODO: should we catch errors in all injected code, and not just this part?\n    }\n    return 'production';\n  }\n\n  function checkDCE(fn: Function) {\n    // This runs for production versions of React.\n    // Needs to be super safe.\n    try {\n      // $FlowFixMe[method-unbinding]\n      const toString = Function.prototype.toString;\n      const code = toString.call(fn);\n\n      // This is a string embedded in the passed function under DEV-only\n      // condition. However the function executes only in PROD. Therefore,\n      // if we see it, dead code elimination did not work.\n      if (code.indexOf('^_^') > -1) {\n        // Remember to report during next injection.\n        hasDetectedBadDCE = true;\n\n        // Bonus: throw an exception hoping that it gets picked up by a reporting system.\n        // Not synchronously so that it doesn't break the calling code.\n        setTimeout(function () {\n          throw new Error(\n            'React is running in production mode, but dead code ' +\n              'elimination has not been applied. Read how to correctly ' +\n              'configure React for production: ' +\n              'https://react.dev/link/perf-use-production-build',\n          );\n        });\n      }\n    } catch (err) {}\n  }\n\n  // NOTE: KEEP IN SYNC with src/backend/utils.js\n  function formatWithStyles(\n    inputArgs: $ReadOnlyArray<any>,\n    style?: string,\n  ): $ReadOnlyArray<any> {\n    if (\n      inputArgs === undefined ||\n      inputArgs === null ||\n      inputArgs.length === 0 ||\n      // Matches any of %c but not %%c\n      (typeof inputArgs[0] === 'string' &&\n        inputArgs[0].match(/([^%]|^)(%c)/g)) ||\n      style === undefined\n    ) {\n      return inputArgs;\n    }\n\n    // Matches any of %(o|O|d|i|s|f), but not %%(o|O|d|i|s|f)\n    const REGEXP = /([^%]|^)((%%)*)(%([oOdisf]))/g;\n    if (typeof inputArgs[0] === 'string' && inputArgs[0].match(REGEXP)) {\n      return [`%c${inputArgs[0]}`, style, ...inputArgs.slice(1)];\n    } else {\n      const firstArg = inputArgs.reduce((formatStr, elem, i) => {\n        if (i > 0) {\n          formatStr += ' ';\n        }\n        switch (typeof elem) {\n          case 'string':\n          case 'boolean':\n          case 'symbol':\n            return (formatStr += '%s');\n          case 'number':\n            const formatting = Number.isInteger(elem) ? '%i' : '%f';\n            return (formatStr += formatting);\n          default:\n            return (formatStr += '%o');\n        }\n      }, '%c');\n      return [firstArg, style, ...inputArgs];\n    }\n  }\n  // NOTE: KEEP IN SYNC with src/backend/utils.js\n  function formatConsoleArguments(\n    maybeMessage: any,\n    ...inputArgs: $ReadOnlyArray<any>\n  ): $ReadOnlyArray<any> {\n    if (inputArgs.length === 0 || typeof maybeMessage !== 'string') {\n      return [maybeMessage, ...inputArgs];\n    }\n\n    const args = inputArgs.slice();\n\n    let template = '';\n    let argumentsPointer = 0;\n    for (let i = 0; i < maybeMessage.length; ++i) {\n      const currentChar = maybeMessage[i];\n      if (currentChar !== '%') {\n        template += currentChar;\n        continue;\n      }\n\n      const nextChar = maybeMessage[i + 1];\n      ++i;\n\n      // Only keep CSS and objects, inline other arguments\n      switch (nextChar) {\n        case 'c':\n        case 'O':\n        case 'o': {\n          ++argumentsPointer;\n          template += `%${nextChar}`;\n\n          break;\n        }\n        case 'd':\n        case 'i': {\n          const [arg] = args.splice(argumentsPointer, 1);\n          template += parseInt(arg, 10).toString();\n\n          break;\n        }\n        case 'f': {\n          const [arg] = args.splice(argumentsPointer, 1);\n          template += parseFloat(arg).toString();\n\n          break;\n        }\n        case 's': {\n          const [arg] = args.splice(argumentsPointer, 1);\n          template += arg.toString();\n        }\n      }\n    }\n\n    return [template, ...args];\n  }\n\n  let unpatchFn = null;\n\n  // NOTE: KEEP IN SYNC with src/backend/console.js:patchForStrictMode\n  // This function hides or dims console logs during the initial double renderer\n  // in Strict Mode. We need this function because during initial render,\n  // React and DevTools are connecting and the renderer interface isn't avaiable\n  // and we want to be able to have consistent logging behavior for double logs\n  // during the initial renderer.\n  function patchConsoleForInitialCommitInStrictMode(\n    hideConsoleLogsInStrictMode: boolean,\n  ) {\n    const overrideConsoleMethods = [\n      'error',\n      'group',\n      'groupCollapsed',\n      'info',\n      'log',\n      'trace',\n      'warn',\n    ];\n\n    if (unpatchFn !== null) {\n      // Don't patch twice.\n      return;\n    }\n\n    const originalConsoleMethods: {[string]: $FlowFixMe} = {};\n\n    unpatchFn = () => {\n      for (const method in originalConsoleMethods) {\n        try {\n          targetConsole[method] = originalConsoleMethods[method];\n        } catch (error) {}\n      }\n    };\n\n    overrideConsoleMethods.forEach(method => {\n      try {\n        const originalMethod = (originalConsoleMethods[method] = targetConsole[\n          method\n        ].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n          ? targetConsole[method].__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__\n          : targetConsole[method]);\n\n        const overrideMethod = (...args: $ReadOnlyArray<any>) => {\n          // Dim the text color of the double logs if we're not hiding them.\n          if (!hideConsoleLogsInStrictMode) {\n            // Firefox doesn't support ANSI escape sequences\n            if (__IS_FIREFOX__) {\n              originalMethod(\n                ...formatWithStyles(args, FIREFOX_CONSOLE_DIMMING_COLOR),\n              );\n            } else {\n              originalMethod(\n                ANSI_STYLE_DIMMING_TEMPLATE,\n                ...formatConsoleArguments(...args),\n              );\n            }\n          }\n        };\n\n        overrideMethod.__REACT_DEVTOOLS_STRICT_MODE_ORIGINAL_METHOD__ =\n          originalMethod;\n        originalMethod.__REACT_DEVTOOLS_STRICT_MODE_OVERRIDE_METHOD__ =\n          overrideMethod;\n\n        targetConsole[method] = overrideMethod;\n      } catch (error) {}\n    });\n  }\n\n  // NOTE: KEEP IN SYNC with src/backend/console.js:unpatchForStrictMode\n  function unpatchConsoleForInitialCommitInStrictMode() {\n    if (unpatchFn !== null) {\n      unpatchFn();\n      unpatchFn = null;\n    }\n  }\n\n  let uidCounter = 0;\n\n  function inject(renderer: ReactRenderer): number {\n    const id = ++uidCounter;\n    renderers.set(id, renderer);\n\n    const reactBuildType = hasDetectedBadDCE\n      ? 'deadcode'\n      : detectReactBuildType(renderer);\n\n    // Patching the console enables DevTools to do a few useful things:\n    // * Append component stacks to warnings and error messages\n    // * Disabling or marking logs during a double render in Strict Mode\n    // * Disable logging during re-renders to inspect hooks (see inspectHooksOfFiber)\n    //\n    // Allow patching console early (during injection) to\n    // provide developers with components stacks even if they don't run DevTools.\n    if (target.hasOwnProperty('__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__')) {\n      const {registerRendererWithConsole, patchConsoleUsingWindowValues} =\n        target.__REACT_DEVTOOLS_CONSOLE_FUNCTIONS__;\n      if (\n        typeof registerRendererWithConsole === 'function' &&\n        typeof patchConsoleUsingWindowValues === 'function'\n      ) {\n        registerRendererWithConsole(renderer);\n        patchConsoleUsingWindowValues();\n      }\n    }\n\n    // If we have just reloaded to profile, we need to inject the renderer interface before the app loads.\n    // Otherwise the renderer won't yet exist and we can skip this step.\n    const attach = target.__REACT_DEVTOOLS_ATTACH__;\n    if (typeof attach === 'function') {\n      const rendererInterface = attach(hook, id, renderer, target);\n      hook.rendererInterfaces.set(id, rendererInterface);\n    }\n\n    hook.emit('renderer', {\n      id,\n      renderer,\n      reactBuildType,\n    });\n\n    return id;\n  }\n\n  let hasDetectedBadDCE = false;\n\n  function sub(event: string, fn: Handler) {\n    hook.on(event, fn);\n    return () => hook.off(event, fn);\n  }\n\n  function on(event: string, fn: Handler) {\n    if (!listeners[event]) {\n      listeners[event] = [];\n    }\n    listeners[event].push(fn);\n  }\n\n  function off(event: string, fn: Handler) {\n    if (!listeners[event]) {\n      return;\n    }\n    const index = listeners[event].indexOf(fn);\n    if (index !== -1) {\n      listeners[event].splice(index, 1);\n    }\n    if (!listeners[event].length) {\n      delete listeners[event];\n    }\n  }\n\n  function emit(event: string, data: any) {\n    if (listeners[event]) {\n      listeners[event].map(fn => fn(data));\n    }\n  }\n\n  function getFiberRoots(rendererID: RendererID) {\n    const roots = fiberRoots;\n    if (!roots[rendererID]) {\n      roots[rendererID] = new Set();\n    }\n    return roots[rendererID];\n  }\n\n  function onCommitFiberUnmount(rendererID: RendererID, fiber: any) {\n    const rendererInterface = rendererInterfaces.get(rendererID);\n    if (rendererInterface != null) {\n      rendererInterface.handleCommitFiberUnmount(fiber);\n    }\n  }\n\n  function onCommitFiberRoot(\n    rendererID: RendererID,\n    root: any,\n    priorityLevel: void | number,\n  ) {\n    const mountedRoots = hook.getFiberRoots(rendererID);\n    const current = root.current;\n    const isKnownRoot = mountedRoots.has(root);\n    const isUnmounting =\n      current.memoizedState == null || current.memoizedState.element == null;\n\n    // Keep track of mounted roots so we can hydrate when DevTools connect.\n    if (!isKnownRoot && !isUnmounting) {\n      mountedRoots.add(root);\n    } else if (isKnownRoot && isUnmounting) {\n      mountedRoots.delete(root);\n    }\n    const rendererInterface = rendererInterfaces.get(rendererID);\n    if (rendererInterface != null) {\n      rendererInterface.handleCommitFiberRoot(root, priorityLevel);\n    }\n  }\n\n  function onPostCommitFiberRoot(rendererID: RendererID, root: any) {\n    const rendererInterface = rendererInterfaces.get(rendererID);\n    if (rendererInterface != null) {\n      rendererInterface.handlePostCommitFiberRoot(root);\n    }\n  }\n\n  function setStrictMode(rendererID: RendererID, isStrictMode: any) {\n    const rendererInterface = rendererInterfaces.get(rendererID);\n    if (rendererInterface != null) {\n      if (isStrictMode) {\n        rendererInterface.patchConsoleForStrictMode();\n      } else {\n        rendererInterface.unpatchConsoleForStrictMode();\n      }\n    } else {\n      // This should only happen during initial commit in the extension before DevTools\n      // finishes its handshake with the injected renderer\n      if (isStrictMode) {\n        const hideConsoleLogsInStrictMode =\n          window.__REACT_DEVTOOLS_HIDE_CONSOLE_LOGS_IN_STRICT_MODE__ === true;\n\n        patchConsoleForInitialCommitInStrictMode(hideConsoleLogsInStrictMode);\n      } else {\n        unpatchConsoleForInitialCommitInStrictMode();\n      }\n    }\n  }\n\n  type StackFrameString = string;\n\n  const openModuleRangesStack: Array<StackFrameString> = [];\n  const moduleRanges: Array<[StackFrameString, StackFrameString]> = [];\n\n  function getTopStackFrameString(error: Error): StackFrameString | null {\n    const frames = error.stack.split('\\n');\n    const frame = frames.length > 1 ? frames[1] : null;\n    return frame;\n  }\n\n  function getInternalModuleRanges(): Array<\n    [StackFrameString, StackFrameString],\n  > {\n    return moduleRanges;\n  }\n\n  function registerInternalModuleStart(error: Error) {\n    const startStackFrame = getTopStackFrameString(error);\n    if (startStackFrame !== null) {\n      openModuleRangesStack.push(startStackFrame);\n    }\n  }\n\n  function registerInternalModuleStop(error: Error) {\n    if (openModuleRangesStack.length > 0) {\n      const startStackFrame = openModuleRangesStack.pop();\n      const stopStackFrame = getTopStackFrameString(error);\n      if (stopStackFrame !== null) {\n        moduleRanges.push([startStackFrame, stopStackFrame]);\n      }\n    }\n  }\n\n  // TODO: More meaningful names for \"rendererInterfaces\" and \"renderers\".\n  const fiberRoots: {[RendererID]: Set<mixed>} = {};\n  const rendererInterfaces = new Map<RendererID, RendererInterface>();\n  const listeners: {[string]: Array<Handler>} = {};\n  const renderers = new Map<RendererID, ReactRenderer>();\n  const backends = new Map<string, DevToolsBackend>();\n\n  const hook: DevToolsHook = {\n    rendererInterfaces,\n    listeners,\n\n    backends,\n\n    // Fast Refresh for web relies on this.\n    renderers,\n\n    emit,\n    getFiberRoots,\n    inject,\n    on,\n    off,\n    sub,\n\n    // This is a legacy flag.\n    // React v16 checks the hook for this to ensure DevTools is new enough.\n    supportsFiber: true,\n\n    // React calls these methods.\n    checkDCE,\n    onCommitFiberUnmount,\n    onCommitFiberRoot,\n    onPostCommitFiberRoot,\n    setStrictMode,\n\n    // Schedule Profiler runtime helpers.\n    // These internal React modules to report their own boundaries\n    // which in turn enables the profiler to dim or filter internal frames.\n    getInternalModuleRanges,\n    registerInternalModuleStart,\n    registerInternalModuleStop,\n  };\n\n  if (__TEST__) {\n    hook.dangerous_setTargetConsoleForTesting =\n      dangerous_setTargetConsoleForTesting;\n  }\n\n  Object.defineProperty(\n    target,\n    '__REACT_DEVTOOLS_GLOBAL_HOOK__',\n    ({\n      // This property needs to be configurable for the test environment,\n      // else we won't be able to delete and recreate it between tests.\n      configurable: __DEV__,\n      enumerable: false,\n      get() {\n        return hook;\n      },\n    }: Object),\n  );\n\n  return hook;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {InternalInstance} from './renderer';\n\nexport function decorate(object: Object, attr: string, fn: Function): Function {\n  const old = object[attr];\n  // $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\n  object[attr] = function (instance: InternalInstance) {\n    return fn.call(this, old, arguments);\n  };\n  return old;\n}\n\nexport function decorateMany(\n  source: Object,\n  fns: {[attr: string]: Function, ...},\n): Object {\n  const olds: {[string]: $FlowFixMe} = {};\n  for (const name in fns) {\n    olds[name] = decorate(source, name, fns[name]);\n  }\n  return olds;\n}\n\nexport function restoreMany(source: Object, olds: Object): void {\n  for (const name in olds) {\n    source[name] = olds[name];\n  }\n}\n\n// $FlowFixMe[missing-this-annot] webpack config needs to be updated to allow `this` type annotations\nexport function forceUpdate(instance: InternalInstance): void {\n  if (typeof instance.forceUpdate === 'function') {\n    instance.forceUpdate();\n  } else if (\n    instance.updater != null &&\n    typeof instance.updater.enqueueForceUpdate === 'function'\n  ) {\n    instance.updater.enqueueForceUpdate(this, () => {}, 'forceUpdate');\n  }\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport {\n  ElementTypeClass,\n  ElementTypeFunction,\n  ElementTypeRoot,\n  ElementTypeHostComponent,\n  ElementTypeOtherOrUnknown,\n} from 'react-devtools-shared/src/frontend/types';\nimport {getUID, utfEncodeString, printOperationsArray} from '../../utils';\nimport {\n  cleanForBridge,\n  copyWithDelete,\n  copyWithRename,\n  copyWithSet,\n  serializeToString,\n} from '../utils';\nimport {\n  deletePathInObject,\n  getDisplayName,\n  getInObject,\n  renamePathInObject,\n  setInObject,\n} from 'react-devtools-shared/src/utils';\nimport {\n  __DEBUG__,\n  TREE_OPERATION_ADD,\n  TREE_OPERATION_REMOVE,\n  TREE_OPERATION_REORDER_CHILDREN,\n} from '../../constants';\nimport {decorateMany, forceUpdate, restoreMany} from './utils';\n\nimport type {\n  DevToolsHook,\n  GetFiberIDForNative,\n  InspectedElementPayload,\n  InstanceAndStyle,\n  NativeType,\n  PathFrame,\n  PathMatch,\n  RendererInterface,\n} from '../types';\nimport type {\n  ComponentFilter,\n  ElementType,\n} from 'react-devtools-shared/src/frontend/types';\nimport type {InspectedElement, SerializedElement} from '../types';\n\nexport type InternalInstance = Object;\ntype LegacyRenderer = Object;\n\nfunction getData(internalInstance: InternalInstance) {\n  let displayName = null;\n  let key = null;\n\n  // != used deliberately here to catch undefined and null\n  if (internalInstance._currentElement != null) {\n    if (internalInstance._currentElement.key) {\n      key = String(internalInstance._currentElement.key);\n    }\n\n    const elementType = internalInstance._currentElement.type;\n    if (typeof elementType === 'string') {\n      displayName = elementType;\n    } else if (typeof elementType === 'function') {\n      displayName = getDisplayName(elementType);\n    }\n  }\n\n  return {\n    displayName,\n    key,\n  };\n}\n\nfunction getElementType(internalInstance: InternalInstance): ElementType {\n  // != used deliberately here to catch undefined and null\n  if (internalInstance._currentElement != null) {\n    const elementType = internalInstance._currentElement.type;\n    if (typeof elementType === 'function') {\n      const publicInstance = internalInstance.getPublicInstance();\n      if (publicInstance !== null) {\n        return ElementTypeClass;\n      } else {\n        return ElementTypeFunction;\n      }\n    } else if (typeof elementType === 'string') {\n      return ElementTypeHostComponent;\n    }\n  }\n  return ElementTypeOtherOrUnknown;\n}\n\nfunction getChildren(internalInstance: Object): Array<any> {\n  const children = [];\n\n  // If the parent is a native node without rendered children, but with\n  // multiple string children, then the `element` that gets passed in here is\n  // a plain value -- a string or number.\n  if (typeof internalInstance !== 'object') {\n    // No children\n  } else if (\n    internalInstance._currentElement === null ||\n    internalInstance._currentElement === false\n  ) {\n    // No children\n  } else if (internalInstance._renderedComponent) {\n    const child = internalInstance._renderedComponent;\n    if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n      children.push(child);\n    }\n  } else if (internalInstance._renderedChildren) {\n    const renderedChildren = internalInstance._renderedChildren;\n    for (const name in renderedChildren) {\n      const child = renderedChildren[name];\n      if (getElementType(child) !== ElementTypeOtherOrUnknown) {\n        children.push(child);\n      }\n    }\n  }\n  // Note: we skip the case where children are just strings or numbers\n  // because the new DevTools skips over host text nodes anyway.\n  return children;\n}\n\nexport function attach(\n  hook: DevToolsHook,\n  rendererID: number,\n  renderer: LegacyRenderer,\n  global: Object,\n): RendererInterface {\n  const idToInternalInstanceMap: Map<number, InternalInstance> = new Map();\n  const internalInstanceToIDMap: WeakMap<InternalInstance, number> =\n    new WeakMap();\n  const internalInstanceToRootIDMap: WeakMap<InternalInstance, number> =\n    new WeakMap();\n\n  let getInternalIDForNative: GetFiberIDForNative =\n    ((null: any): GetFiberIDForNative);\n  let findNativeNodeForInternalID: (id: number) => ?NativeType;\n  let getFiberForNative = (node: NativeType) => {\n    // Not implemented.\n    return null;\n  };\n\n  if (renderer.ComponentTree) {\n    getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n      const internalInstance =\n        renderer.ComponentTree.getClosestInstanceFromNode(node);\n      return internalInstanceToIDMap.get(internalInstance) || null;\n    };\n    findNativeNodeForInternalID = (id: number) => {\n      const internalInstance = idToInternalInstanceMap.get(id);\n      return renderer.ComponentTree.getNodeFromInstance(internalInstance);\n    };\n    getFiberForNative = (node: NativeType) => {\n      return renderer.ComponentTree.getClosestInstanceFromNode(node);\n    };\n  } else if (renderer.Mount.getID && renderer.Mount.getNode) {\n    getInternalIDForNative = (node, findNearestUnfilteredAncestor) => {\n      // Not implemented.\n      return null;\n    };\n    findNativeNodeForInternalID = (id: number) => {\n      // Not implemented.\n      return null;\n    };\n  }\n\n  function getDisplayNameForFiberID(id: number): string | null {\n    const internalInstance = idToInternalInstanceMap.get(id);\n    return internalInstance ? getData(internalInstance).displayName : null;\n  }\n\n  function getID(internalInstance: InternalInstance): number {\n    if (typeof internalInstance !== 'object' || internalInstance === null) {\n      throw new Error('Invalid internal instance: ' + internalInstance);\n    }\n    if (!internalInstanceToIDMap.has(internalInstance)) {\n      const id = getUID();\n      internalInstanceToIDMap.set(internalInstance, id);\n      idToInternalInstanceMap.set(id, internalInstance);\n    }\n    return ((internalInstanceToIDMap.get(internalInstance): any): number);\n  }\n\n  function areEqualArrays(a: Array<any>, b: Array<any>) {\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  // This is shared mutable state that lets us keep track of where we are.\n  let parentIDStack = [];\n\n  let oldReconcilerMethods = null;\n  if (renderer.Reconciler) {\n    // React 15\n    oldReconcilerMethods = decorateMany(renderer.Reconciler, {\n      mountComponent(fn, args) {\n        const internalInstance = args[0];\n        const hostContainerInfo = args[3];\n        if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          return fn.apply(this, args);\n        }\n        if (hostContainerInfo._topLevelWrapper === undefined) {\n          // SSR\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          return fn.apply(this, args);\n        }\n\n        const id = getID(internalInstance);\n        // Push the operation.\n        const parentID =\n          parentIDStack.length > 0\n            ? parentIDStack[parentIDStack.length - 1]\n            : 0;\n        recordMount(internalInstance, id, parentID);\n        parentIDStack.push(id);\n\n        // Remember the root.\n        internalInstanceToRootIDMap.set(\n          internalInstance,\n          getID(hostContainerInfo._topLevelWrapper),\n        );\n\n        try {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          const result = fn.apply(this, args);\n          parentIDStack.pop();\n          return result;\n        } catch (err) {\n          parentIDStack = [];\n          throw err;\n        } finally {\n          if (parentIDStack.length === 0) {\n            const rootID = internalInstanceToRootIDMap.get(internalInstance);\n            if (rootID === undefined) {\n              throw new Error('Expected to find root ID.');\n            }\n            flushPendingEvents(rootID);\n          }\n        }\n      },\n      performUpdateIfNecessary(fn, args) {\n        const internalInstance = args[0];\n        if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          return fn.apply(this, args);\n        }\n\n        const id = getID(internalInstance);\n        parentIDStack.push(id);\n\n        const prevChildren = getChildren(internalInstance);\n        try {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          const result = fn.apply(this, args);\n\n          const nextChildren = getChildren(internalInstance);\n          if (!areEqualArrays(prevChildren, nextChildren)) {\n            // Push the operation\n            recordReorder(internalInstance, id, nextChildren);\n          }\n\n          parentIDStack.pop();\n          return result;\n        } catch (err) {\n          parentIDStack = [];\n          throw err;\n        } finally {\n          if (parentIDStack.length === 0) {\n            const rootID = internalInstanceToRootIDMap.get(internalInstance);\n            if (rootID === undefined) {\n              throw new Error('Expected to find root ID.');\n            }\n            flushPendingEvents(rootID);\n          }\n        }\n      },\n      receiveComponent(fn, args) {\n        const internalInstance = args[0];\n        if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          return fn.apply(this, args);\n        }\n\n        const id = getID(internalInstance);\n        parentIDStack.push(id);\n\n        const prevChildren = getChildren(internalInstance);\n        try {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          const result = fn.apply(this, args);\n\n          const nextChildren = getChildren(internalInstance);\n          if (!areEqualArrays(prevChildren, nextChildren)) {\n            // Push the operation\n            recordReorder(internalInstance, id, nextChildren);\n          }\n\n          parentIDStack.pop();\n          return result;\n        } catch (err) {\n          parentIDStack = [];\n          throw err;\n        } finally {\n          if (parentIDStack.length === 0) {\n            const rootID = internalInstanceToRootIDMap.get(internalInstance);\n            if (rootID === undefined) {\n              throw new Error('Expected to find root ID.');\n            }\n            flushPendingEvents(rootID);\n          }\n        }\n      },\n      unmountComponent(fn, args) {\n        const internalInstance = args[0];\n        if (getElementType(internalInstance) === ElementTypeOtherOrUnknown) {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          return fn.apply(this, args);\n        }\n\n        const id = getID(internalInstance);\n        parentIDStack.push(id);\n        try {\n          // $FlowFixMe[object-this-reference] found when upgrading Flow\n          const result = fn.apply(this, args);\n          parentIDStack.pop();\n\n          // Push the operation.\n          recordUnmount(internalInstance, id);\n\n          return result;\n        } catch (err) {\n          parentIDStack = [];\n          throw err;\n        } finally {\n          if (parentIDStack.length === 0) {\n            const rootID = internalInstanceToRootIDMap.get(internalInstance);\n            if (rootID === undefined) {\n              throw new Error('Expected to find root ID.');\n            }\n            flushPendingEvents(rootID);\n          }\n        }\n      },\n    });\n  }\n\n  function cleanup() {\n    if (oldReconcilerMethods !== null) {\n      if (renderer.Component) {\n        restoreMany(renderer.Component.Mixin, oldReconcilerMethods);\n      } else {\n        restoreMany(renderer.Reconciler, oldReconcilerMethods);\n      }\n    }\n    oldReconcilerMethods = null;\n  }\n\n  function recordMount(\n    internalInstance: InternalInstance,\n    id: number,\n    parentID: number,\n  ) {\n    const isRoot = parentID === 0;\n\n    if (__DEBUG__) {\n      console.log(\n        '%crecordMount()',\n        'color: green; font-weight: bold;',\n        id,\n        getData(internalInstance).displayName,\n      );\n    }\n\n    if (isRoot) {\n      // TODO Is this right? For all versions?\n      const hasOwnerMetadata =\n        internalInstance._currentElement != null &&\n        internalInstance._currentElement._owner != null;\n\n      pushOperation(TREE_OPERATION_ADD);\n      pushOperation(id);\n      pushOperation(ElementTypeRoot);\n      pushOperation(0); // StrictMode compliant?\n      pushOperation(0); // Profiling flag\n      pushOperation(0); // StrictMode supported?\n      pushOperation(hasOwnerMetadata ? 1 : 0);\n    } else {\n      const type = getElementType(internalInstance);\n      const {displayName, key} = getData(internalInstance);\n\n      const ownerID =\n        internalInstance._currentElement != null &&\n        internalInstance._currentElement._owner != null\n          ? getID(internalInstance._currentElement._owner)\n          : 0;\n\n      const displayNameStringID = getStringID(displayName);\n      const keyStringID = getStringID(key);\n      pushOperation(TREE_OPERATION_ADD);\n      pushOperation(id);\n      pushOperation(type);\n      pushOperation(parentID);\n      pushOperation(ownerID);\n      pushOperation(displayNameStringID);\n      pushOperation(keyStringID);\n    }\n  }\n\n  function recordReorder(\n    internalInstance: InternalInstance,\n    id: number,\n    nextChildren: Array<InternalInstance>,\n  ) {\n    pushOperation(TREE_OPERATION_REORDER_CHILDREN);\n    pushOperation(id);\n    const nextChildIDs = nextChildren.map(getID);\n    pushOperation(nextChildIDs.length);\n    for (let i = 0; i < nextChildIDs.length; i++) {\n      pushOperation(nextChildIDs[i]);\n    }\n  }\n\n  function recordUnmount(internalInstance: InternalInstance, id: number) {\n    pendingUnmountedIDs.push(id);\n    idToInternalInstanceMap.delete(id);\n  }\n\n  function crawlAndRecordInitialMounts(\n    id: number,\n    parentID: number,\n    rootID: number,\n  ) {\n    if (__DEBUG__) {\n      console.group('crawlAndRecordInitialMounts() id:', id);\n    }\n\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance != null) {\n      internalInstanceToRootIDMap.set(internalInstance, rootID);\n      recordMount(internalInstance, id, parentID);\n      getChildren(internalInstance).forEach(child =>\n        crawlAndRecordInitialMounts(getID(child), id, rootID),\n      );\n    }\n\n    if (__DEBUG__) {\n      console.groupEnd();\n    }\n  }\n\n  function flushInitialOperations() {\n    // Crawl roots though and register any nodes that mounted before we were injected.\n\n    const roots =\n      renderer.Mount._instancesByReactRootID ||\n      renderer.Mount._instancesByContainerID;\n\n    for (const key in roots) {\n      const internalInstance = roots[key];\n      const id = getID(internalInstance);\n      crawlAndRecordInitialMounts(id, 0, id);\n      flushPendingEvents(id);\n    }\n  }\n\n  const pendingOperations: Array<number> = [];\n  const pendingStringTable: Map<string, number> = new Map();\n  let pendingUnmountedIDs: Array<number> = [];\n  let pendingStringTableLength: number = 0;\n  let pendingUnmountedRootID: number | null = null;\n\n  function flushPendingEvents(rootID: number) {\n    if (\n      pendingOperations.length === 0 &&\n      pendingUnmountedIDs.length === 0 &&\n      pendingUnmountedRootID === null\n    ) {\n      return;\n    }\n\n    const numUnmountIDs =\n      pendingUnmountedIDs.length + (pendingUnmountedRootID === null ? 0 : 1);\n\n    const operations = new Array<number>(\n      // Identify which renderer this update is coming from.\n      2 + // [rendererID, rootFiberID]\n        // How big is the string table?\n        1 + // [stringTableLength]\n        // Then goes the actual string table.\n        pendingStringTableLength +\n        // All unmounts are batched in a single message.\n        // [TREE_OPERATION_REMOVE, removedIDLength, ...ids]\n        (numUnmountIDs > 0 ? 2 + numUnmountIDs : 0) +\n        // Mount operations\n        pendingOperations.length,\n    );\n\n    // Identify which renderer this update is coming from.\n    // This enables roots to be mapped to renderers,\n    // Which in turn enables fiber properations, states, and hooks to be inspected.\n    let i = 0;\n    operations[i++] = rendererID;\n    operations[i++] = rootID;\n\n    // Now fill in the string table.\n    // [stringTableLength, str1Length, ...str1, str2Length, ...str2, ...]\n    operations[i++] = pendingStringTableLength;\n    pendingStringTable.forEach((value, key) => {\n      operations[i++] = key.length;\n      const encodedKey = utfEncodeString(key);\n      for (let j = 0; j < encodedKey.length; j++) {\n        operations[i + j] = encodedKey[j];\n      }\n      i += key.length;\n    });\n\n    if (numUnmountIDs > 0) {\n      // All unmounts except roots are batched in a single message.\n      operations[i++] = TREE_OPERATION_REMOVE;\n      // The first number is how many unmounted IDs we're gonna send.\n      operations[i++] = numUnmountIDs;\n      // Fill in the unmounts\n      for (let j = 0; j < pendingUnmountedIDs.length; j++) {\n        operations[i++] = pendingUnmountedIDs[j];\n      }\n      // The root ID should always be unmounted last.\n      if (pendingUnmountedRootID !== null) {\n        operations[i] = pendingUnmountedRootID;\n        i++;\n      }\n    }\n\n    // Fill in the rest of the operations.\n    for (let j = 0; j < pendingOperations.length; j++) {\n      operations[i + j] = pendingOperations[j];\n    }\n    i += pendingOperations.length;\n\n    if (__DEBUG__) {\n      printOperationsArray(operations);\n    }\n\n    // If we've already connected to the frontend, just pass the operations through.\n    hook.emit('operations', operations);\n\n    pendingOperations.length = 0;\n    pendingUnmountedIDs = [];\n    pendingUnmountedRootID = null;\n    pendingStringTable.clear();\n    pendingStringTableLength = 0;\n  }\n\n  function pushOperation(op: number): void {\n    if (__DEV__) {\n      if (!Number.isInteger(op)) {\n        console.error(\n          'pushOperation() was called but the value is not an integer.',\n          op,\n        );\n      }\n    }\n    pendingOperations.push(op);\n  }\n\n  function getStringID(str: string | null): number {\n    if (str === null) {\n      return 0;\n    }\n    const existingID = pendingStringTable.get(str);\n    if (existingID !== undefined) {\n      return existingID;\n    }\n    const stringID = pendingStringTable.size + 1;\n    pendingStringTable.set(str, stringID);\n    // The string table total length needs to account\n    // both for the string length, and for the array item\n    // that contains the length itself. Hence + 1.\n    pendingStringTableLength += str.length + 1;\n    return stringID;\n  }\n\n  let currentlyInspectedElementID: number | null = null;\n  let currentlyInspectedPaths: Object = {};\n\n  // Track the intersection of currently inspected paths,\n  // so that we can send their data along if the element is re-rendered.\n  function mergeInspectedPaths(path: Array<string | number>) {\n    let current = currentlyInspectedPaths;\n    path.forEach(key => {\n      if (!current[key]) {\n        current[key] = {};\n      }\n      current = current[key];\n    });\n  }\n\n  function createIsPathAllowed(key: string) {\n    // This function helps prevent previously-inspected paths from being dehydrated in updates.\n    // This is important to avoid a bad user experience where expanded toggles collapse on update.\n    return function isPathAllowed(path: Array<string | number>): boolean {\n      let current = currentlyInspectedPaths[key];\n      if (!current) {\n        return false;\n      }\n      for (let i = 0; i < path.length; i++) {\n        current = current[path[i]];\n        if (!current) {\n          return false;\n        }\n      }\n      return true;\n    };\n  }\n\n  // Fast path props lookup for React Native style editor.\n  function getInstanceAndStyle(id: number): InstanceAndStyle {\n    let instance = null;\n    let style = null;\n\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance != null) {\n      instance = internalInstance._instance || null;\n\n      const element = internalInstance._currentElement;\n      if (element != null && element.props != null) {\n        style = element.props.style || null;\n      }\n    }\n\n    return {\n      instance,\n      style,\n    };\n  }\n\n  function updateSelectedElement(id: number): void {\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance == null) {\n      console.warn(`Could not find instance with id \"${id}\"`);\n      return;\n    }\n\n    switch (getElementType(internalInstance)) {\n      case ElementTypeClass:\n        global.$r = internalInstance._instance;\n        break;\n      case ElementTypeFunction:\n        const element = internalInstance._currentElement;\n        if (element == null) {\n          console.warn(`Could not find element with id \"${id}\"`);\n          return;\n        }\n\n        global.$r = {\n          props: element.props,\n          type: element.type,\n        };\n        break;\n      default:\n        global.$r = null;\n        break;\n    }\n  }\n\n  function storeAsGlobal(\n    id: number,\n    path: Array<string | number>,\n    count: number,\n  ): void {\n    const inspectedElement = inspectElementRaw(id);\n    if (inspectedElement !== null) {\n      const value = getInObject(inspectedElement, path);\n      const key = `$reactTemp${count}`;\n\n      window[key] = value;\n\n      console.log(key);\n      console.log(value);\n    }\n  }\n\n  function getSerializedElementValueByPath(\n    id: number,\n    path: Array<string | number>,\n  ): ?string {\n    const inspectedElement = inspectElementRaw(id);\n    if (inspectedElement !== null) {\n      const valueToCopy = getInObject(inspectedElement, path);\n\n      return serializeToString(valueToCopy);\n    }\n  }\n\n  function inspectElement(\n    requestID: number,\n    id: number,\n    path: Array<string | number> | null,\n    forceFullData: boolean,\n  ): InspectedElementPayload {\n    if (forceFullData || currentlyInspectedElementID !== id) {\n      currentlyInspectedElementID = id;\n      currentlyInspectedPaths = {};\n    }\n\n    const inspectedElement = inspectElementRaw(id);\n    if (inspectedElement === null) {\n      return {\n        id,\n        responseID: requestID,\n        type: 'not-found',\n      };\n    }\n\n    if (path !== null) {\n      mergeInspectedPaths(path);\n    }\n\n    // Any time an inspected element has an update,\n    // we should update the selected $r value as wel.\n    // Do this before dehydration (cleanForBridge).\n    updateSelectedElement(id);\n\n    inspectedElement.context = cleanForBridge(\n      inspectedElement.context,\n      createIsPathAllowed('context'),\n    );\n    inspectedElement.props = cleanForBridge(\n      inspectedElement.props,\n      createIsPathAllowed('props'),\n    );\n    inspectedElement.state = cleanForBridge(\n      inspectedElement.state,\n      createIsPathAllowed('state'),\n    );\n\n    return {\n      id,\n      responseID: requestID,\n      type: 'full-data',\n      value: inspectedElement,\n    };\n  }\n\n  function inspectElementRaw(id: number): InspectedElement | null {\n    const internalInstance = idToInternalInstanceMap.get(id);\n\n    if (internalInstance == null) {\n      return null;\n    }\n\n    const {displayName, key} = getData(internalInstance);\n    const type = getElementType(internalInstance);\n\n    let context = null;\n    let owners = null;\n    let props = null;\n    let state = null;\n\n    const element = internalInstance._currentElement;\n    if (element !== null) {\n      props = element.props;\n\n      let owner = element._owner;\n      if (owner) {\n        owners = ([]: Array<SerializedElement>);\n        while (owner != null) {\n          owners.push({\n            displayName: getData(owner).displayName || 'Unknown',\n            id: getID(owner),\n            key: element.key,\n            type: getElementType(owner),\n          });\n          if (owner._currentElement) {\n            owner = owner._currentElement._owner;\n          }\n        }\n      }\n    }\n\n    const publicInstance = internalInstance._instance;\n    if (publicInstance != null) {\n      context = publicInstance.context || null;\n      state = publicInstance.state || null;\n    }\n\n    // Not implemented\n    const errors: Array<[string, number]> = [];\n    const warnings: Array<[string, number]> = [];\n\n    return {\n      id,\n\n      // Does the current renderer support editable hooks and function props?\n      canEditHooks: false,\n      canEditFunctionProps: false,\n\n      // Does the current renderer support advanced editing interface?\n      canEditHooksAndDeletePaths: false,\n      canEditHooksAndRenamePaths: false,\n      canEditFunctionPropsDeletePaths: false,\n      canEditFunctionPropsRenamePaths: false,\n\n      // Toggle error boundary did not exist in legacy versions\n      canToggleError: false,\n      isErrored: false,\n      targetErrorBoundaryID: null,\n\n      // Suspense did not exist in legacy versions\n      canToggleSuspense: false,\n\n      // Can view component source location.\n      canViewSource: type === ElementTypeClass || type === ElementTypeFunction,\n      source: null,\n\n      // Only legacy context exists in legacy versions.\n      hasLegacyContext: true,\n\n      displayName: displayName,\n\n      type: type,\n\n      key: key != null ? key : null,\n\n      // Inspectable properties.\n      context,\n      hooks: null,\n      props,\n      state,\n      errors,\n      warnings,\n\n      // List of owners\n      owners,\n\n      rootType: null,\n      rendererPackageName: null,\n      rendererVersion: null,\n\n      plugins: {\n        stylex: null,\n      },\n    };\n  }\n\n  function logElementToConsole(id: number): void {\n    const result = inspectElementRaw(id);\n    if (result === null) {\n      console.warn(`Could not find element with id \"${id}\"`);\n      return;\n    }\n\n    const supportsGroup = typeof console.groupCollapsed === 'function';\n    if (supportsGroup) {\n      console.groupCollapsed(\n        `[Click to expand] %c<${result.displayName || 'Component'} />`,\n        // --dom-tag-name-color is the CSS variable Chrome styles HTML elements with in the console.\n        'color: var(--dom-tag-name-color); font-weight: normal;',\n      );\n    }\n    if (result.props !== null) {\n      console.log('Props:', result.props);\n    }\n    if (result.state !== null) {\n      console.log('State:', result.state);\n    }\n    if (result.context !== null) {\n      console.log('Context:', result.context);\n    }\n    const nativeNode = findNativeNodeForInternalID(id);\n    if (nativeNode !== null) {\n      console.log('Node:', nativeNode);\n    }\n    if (window.chrome || /firefox/i.test(navigator.userAgent)) {\n      console.log(\n        'Right-click any value to save it as a global variable for further inspection.',\n      );\n    }\n    if (supportsGroup) {\n      console.groupEnd();\n    }\n  }\n\n  function prepareViewAttributeSource(\n    id: number,\n    path: Array<string | number>,\n  ): void {\n    const inspectedElement = inspectElementRaw(id);\n    if (inspectedElement !== null) {\n      window.$attribute = getInObject(inspectedElement, path);\n    }\n  }\n\n  function prepareViewElementSource(id: number): void {\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance == null) {\n      console.warn(`Could not find instance with id \"${id}\"`);\n      return;\n    }\n\n    const element = internalInstance._currentElement;\n    if (element == null) {\n      console.warn(`Could not find element with id \"${id}\"`);\n      return;\n    }\n\n    global.$type = element.type;\n  }\n\n  function deletePath(\n    type: 'context' | 'hooks' | 'props' | 'state',\n    id: number,\n    hookID: ?number,\n    path: Array<string | number>,\n  ): void {\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance != null) {\n      const publicInstance = internalInstance._instance;\n      if (publicInstance != null) {\n        switch (type) {\n          case 'context':\n            deletePathInObject(publicInstance.context, path);\n            forceUpdate(publicInstance);\n            break;\n          case 'hooks':\n            throw new Error('Hooks not supported by this renderer');\n          case 'props':\n            const element = internalInstance._currentElement;\n            internalInstance._currentElement = {\n              ...element,\n              props: copyWithDelete(element.props, path),\n            };\n            forceUpdate(publicInstance);\n            break;\n          case 'state':\n            deletePathInObject(publicInstance.state, path);\n            forceUpdate(publicInstance);\n            break;\n        }\n      }\n    }\n  }\n\n  function renamePath(\n    type: 'context' | 'hooks' | 'props' | 'state',\n    id: number,\n    hookID: ?number,\n    oldPath: Array<string | number>,\n    newPath: Array<string | number>,\n  ): void {\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance != null) {\n      const publicInstance = internalInstance._instance;\n      if (publicInstance != null) {\n        switch (type) {\n          case 'context':\n            renamePathInObject(publicInstance.context, oldPath, newPath);\n            forceUpdate(publicInstance);\n            break;\n          case 'hooks':\n            throw new Error('Hooks not supported by this renderer');\n          case 'props':\n            const element = internalInstance._currentElement;\n            internalInstance._currentElement = {\n              ...element,\n              props: copyWithRename(element.props, oldPath, newPath),\n            };\n            forceUpdate(publicInstance);\n            break;\n          case 'state':\n            renamePathInObject(publicInstance.state, oldPath, newPath);\n            forceUpdate(publicInstance);\n            break;\n        }\n      }\n    }\n  }\n\n  function overrideValueAtPath(\n    type: 'context' | 'hooks' | 'props' | 'state',\n    id: number,\n    hookID: ?number,\n    path: Array<string | number>,\n    value: any,\n  ): void {\n    const internalInstance = idToInternalInstanceMap.get(id);\n    if (internalInstance != null) {\n      const publicInstance = internalInstance._instance;\n      if (publicInstance != null) {\n        switch (type) {\n          case 'context':\n            setInObject(publicInstance.context, path, value);\n            forceUpdate(publicInstance);\n            break;\n          case 'hooks':\n            throw new Error('Hooks not supported by this renderer');\n          case 'props':\n            const element = internalInstance._currentElement;\n            internalInstance._currentElement = {\n              ...element,\n              props: copyWithSet(element.props, path, value),\n            };\n            forceUpdate(publicInstance);\n            break;\n          case 'state':\n            setInObject(publicInstance.state, path, value);\n            forceUpdate(publicInstance);\n            break;\n        }\n      }\n    }\n  }\n\n  // v16+ only features\n  const getProfilingData = () => {\n    throw new Error('getProfilingData not supported by this renderer');\n  };\n  const handleCommitFiberRoot = () => {\n    throw new Error('handleCommitFiberRoot not supported by this renderer');\n  };\n  const handleCommitFiberUnmount = () => {\n    throw new Error('handleCommitFiberUnmount not supported by this renderer');\n  };\n  const handlePostCommitFiberRoot = () => {\n    throw new Error('handlePostCommitFiberRoot not supported by this renderer');\n  };\n  const overrideError = () => {\n    throw new Error('overrideError not supported by this renderer');\n  };\n  const overrideSuspense = () => {\n    throw new Error('overrideSuspense not supported by this renderer');\n  };\n  const startProfiling = () => {\n    // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n  };\n  const stopProfiling = () => {\n    // Do not throw, since this would break a multi-root scenario where v15 and v16 were both present.\n  };\n\n  function getBestMatchForTrackedPath(): PathMatch | null {\n    // Not implemented.\n    return null;\n  }\n\n  function getPathForElement(id: number): Array<PathFrame> | null {\n    // Not implemented.\n    return null;\n  }\n\n  function updateComponentFilters(componentFilters: Array<ComponentFilter>) {\n    // Not implemented.\n  }\n\n  function setTraceUpdatesEnabled(enabled: boolean) {\n    // Not implemented.\n  }\n\n  function setTrackedPath(path: Array<PathFrame> | null) {\n    // Not implemented.\n  }\n\n  function getOwnersList(id: number): Array<SerializedElement> | null {\n    // Not implemented.\n    return null;\n  }\n\n  function clearErrorsAndWarnings() {\n    // Not implemented\n  }\n\n  function clearErrorsForFiberID(id: number) {\n    // Not implemented\n  }\n\n  function clearWarningsForFiberID(id: number) {\n    // Not implemented\n  }\n\n  function patchConsoleForStrictMode() {}\n\n  function unpatchConsoleForStrictMode() {}\n\n  function hasFiberWithId(id: number): boolean {\n    return idToInternalInstanceMap.has(id);\n  }\n\n  return {\n    clearErrorsAndWarnings,\n    clearErrorsForFiberID,\n    clearWarningsForFiberID,\n    cleanup,\n    getSerializedElementValueByPath,\n    deletePath,\n    flushInitialOperations,\n    getBestMatchForTrackedPath,\n    getDisplayNameForFiberID,\n    getFiberForNative,\n    getFiberIDForNative: getInternalIDForNative,\n    getInstanceAndStyle,\n    findNativeNodesForFiberID: (id: number) => {\n      const nativeNode = findNativeNodeForInternalID(id);\n      return nativeNode == null ? null : [nativeNode];\n    },\n    getOwnersList,\n    getPathForElement,\n    getProfilingData,\n    handleCommitFiberRoot,\n    handleCommitFiberUnmount,\n    handlePostCommitFiberRoot,\n    hasFiberWithId,\n    inspectElement,\n    logElementToConsole,\n    overrideError,\n    overrideSuspense,\n    overrideValueAtPath,\n    renamePath,\n    patchConsoleForStrictMode,\n    prepareViewAttributeSource,\n    prepareViewElementSource,\n    renderer,\n    setTraceUpdatesEnabled,\n    setTrackedPath,\n    startProfiling,\n    stopProfiling,\n    storeAsGlobal,\n    unpatchConsoleForStrictMode,\n    updateComponentFilters,\n  };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from './agent';\n\nimport {attach} from './renderer';\nimport {attach as attachLegacy} from './legacy/renderer';\nimport {hasAssignedBackend} from './utils';\n\nimport type {DevToolsHook, ReactRenderer, RendererInterface} from './types';\n\n// this is the backend that is compatible with all older React versions\nfunction isMatchingRender(version: string): boolean {\n  return !hasAssignedBackend(version);\n}\n\nexport type InitBackend = typeof initBackend;\n\nexport function initBackend(\n  hook: DevToolsHook,\n  agent: Agent,\n  global: Object,\n): () => void {\n  if (hook == null) {\n    // DevTools didn't get injected into this page (maybe b'c of the contentType).\n    return () => {};\n  }\n\n  const subs = [\n    hook.sub(\n      'renderer-attached',\n      ({\n        id,\n        renderer,\n        rendererInterface,\n      }: {\n        id: number,\n        renderer: ReactRenderer,\n        rendererInterface: RendererInterface,\n        ...\n      }) => {\n        agent.setRendererInterface(id, rendererInterface);\n\n        // Now that the Store and the renderer interface are connected,\n        // it's time to flush the pending operation codes to the frontend.\n        rendererInterface.flushInitialOperations();\n      },\n    ),\n\n    hook.sub('unsupported-renderer-version', (id: number) => {\n      agent.onUnsupportedRenderer(id);\n    }),\n\n    hook.sub('fastRefreshScheduled', agent.onFastRefreshScheduled),\n    hook.sub('operations', agent.onHookOperations),\n    hook.sub('traceUpdates', agent.onTraceUpdates),\n\n    // TODO Add additional subscriptions required for profiling mode\n  ];\n\n  const attachRenderer = (id: number, renderer: ReactRenderer) => {\n    // only attach if the renderer is compatible with the current version of the backend\n    if (!isMatchingRender(renderer.reconcilerVersion || renderer.version)) {\n      return;\n    }\n    let rendererInterface = hook.rendererInterfaces.get(id);\n\n    // Inject any not-yet-injected renderers (if we didn't reload-and-profile)\n    if (rendererInterface == null) {\n      if (typeof renderer.findFiberByHostInstance === 'function') {\n        // react-reconciler v16+\n        rendererInterface = attach(hook, id, renderer, global);\n      } else if (renderer.ComponentTree) {\n        // react-dom v15\n        rendererInterface = attachLegacy(hook, id, renderer, global);\n      } else {\n        // Older react-dom or other unsupported renderer version\n      }\n\n      if (rendererInterface != null) {\n        hook.rendererInterfaces.set(id, rendererInterface);\n      }\n    }\n\n    // Notify the DevTools frontend about new renderers.\n    // This includes any that were attached early (via __REACT_DEVTOOLS_ATTACH__).\n    if (rendererInterface != null) {\n      hook.emit('renderer-attached', {\n        id,\n        renderer,\n        rendererInterface,\n      });\n    } else {\n      hook.emit('unsupported-renderer-version', id);\n    }\n  };\n\n  // Connect renderers that have already injected themselves.\n  hook.renderers.forEach((renderer, id) => {\n    attachRenderer(id, renderer);\n  });\n\n  // Connect any new renderers that injected themselves.\n  subs.push(\n    hook.sub(\n      'renderer',\n      ({id, renderer}: {id: number, renderer: ReactRenderer, ...}) => {\n        attachRenderer(id, renderer);\n      },\n    ),\n  );\n\n  hook.emit('react-devtools', agent);\n  hook.reactDevtoolsAgent = agent;\n  const onAgentShutdown = () => {\n    subs.forEach(fn => fn());\n    hook.rendererInterfaces.forEach(rendererInterface => {\n      rendererInterface.cleanup();\n    });\n    hook.reactDevtoolsAgent = null;\n  };\n  agent.addListener('shutdown', onAgentShutdown);\n  subs.push(() => {\n    agent.removeListener('shutdown', onAgentShutdown);\n  });\n\n  return () => {\n    subs.forEach(fn => fn());\n  };\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {BoxStyle} from './types';\n\n/**\n * This mirrors react-native/Libraries/Inspector/resolveBoxStyle.js (but without RTL support).\n *\n * Resolve a style property into it's component parts, e.g.\n *\n * resolveBoxStyle('margin', {margin: 5, marginBottom: 10})\n * -> {top: 5, left: 5, right: 5, bottom: 10}\n */\nexport default function resolveBoxStyle(\n  prefix: string,\n  style: Object,\n): BoxStyle | null {\n  let hasParts = false;\n  const result = {\n    bottom: 0,\n    left: 0,\n    right: 0,\n    top: 0,\n  };\n\n  const styleForAll = style[prefix];\n  if (styleForAll != null) {\n    // eslint-disable-next-line no-for-of-loops/no-for-of-loops\n    for (const key of Object.keys(result)) {\n      result[key] = styleForAll;\n    }\n    hasParts = true;\n  }\n\n  const styleForHorizontal = style[prefix + 'Horizontal'];\n  if (styleForHorizontal != null) {\n    result.left = styleForHorizontal;\n    result.right = styleForHorizontal;\n    hasParts = true;\n  } else {\n    const styleForLeft = style[prefix + 'Left'];\n    if (styleForLeft != null) {\n      result.left = styleForLeft;\n      hasParts = true;\n    }\n\n    const styleForRight = style[prefix + 'Right'];\n    if (styleForRight != null) {\n      result.right = styleForRight;\n      hasParts = true;\n    }\n\n    const styleForEnd = style[prefix + 'End'];\n    if (styleForEnd != null) {\n      // TODO RTL support\n      result.right = styleForEnd;\n      hasParts = true;\n    }\n    const styleForStart = style[prefix + 'Start'];\n    if (styleForStart != null) {\n      // TODO RTL support\n      result.left = styleForStart;\n      hasParts = true;\n    }\n  }\n\n  const styleForVertical = style[prefix + 'Vertical'];\n  if (styleForVertical != null) {\n    result.bottom = styleForVertical;\n    result.top = styleForVertical;\n    hasParts = true;\n  } else {\n    const styleForBottom = style[prefix + 'Bottom'];\n    if (styleForBottom != null) {\n      result.bottom = styleForBottom;\n      hasParts = true;\n    }\n\n    const styleForTop = style[prefix + 'Top'];\n    if (styleForTop != null) {\n      result.top = styleForTop;\n      hasParts = true;\n    }\n  }\n\n  return hasParts ? result : null;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport resolveBoxStyle from './resolveBoxStyle';\nimport isArray from 'react-devtools-shared/src/isArray';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {RendererID} from '../types';\nimport type {StyleAndLayout} from './types';\n\nexport type ResolveNativeStyle = (stylesheetID: any) => ?Object;\nexport type SetupNativeStyleEditor = typeof setupNativeStyleEditor;\n\nexport default function setupNativeStyleEditor(\n  bridge: BackendBridge,\n  agent: Agent,\n  resolveNativeStyle: ResolveNativeStyle,\n  validAttributes?: $ReadOnlyArray<string> | null,\n) {\n  bridge.addListener(\n    'NativeStyleEditor_measure',\n    ({id, rendererID}: {id: number, rendererID: RendererID}) => {\n      measureStyle(agent, bridge, resolveNativeStyle, id, rendererID);\n    },\n  );\n\n  bridge.addListener(\n    'NativeStyleEditor_renameAttribute',\n    ({\n      id,\n      rendererID,\n      oldName,\n      newName,\n      value,\n    }: {\n      id: number,\n      rendererID: RendererID,\n      oldName: string,\n      newName: string,\n      value: string,\n    }) => {\n      renameStyle(agent, id, rendererID, oldName, newName, value);\n      setTimeout(() =>\n        measureStyle(agent, bridge, resolveNativeStyle, id, rendererID),\n      );\n    },\n  );\n\n  bridge.addListener(\n    'NativeStyleEditor_setValue',\n    ({\n      id,\n      rendererID,\n      name,\n      value,\n    }: {\n      id: number,\n      rendererID: number,\n      name: string,\n      value: string,\n    }) => {\n      setStyle(agent, id, rendererID, name, value);\n      setTimeout(() =>\n        measureStyle(agent, bridge, resolveNativeStyle, id, rendererID),\n      );\n    },\n  );\n\n  bridge.send('isNativeStyleEditorSupported', {\n    isSupported: true,\n    validAttributes,\n  });\n}\n\nconst EMPTY_BOX_STYLE = {\n  top: 0,\n  left: 0,\n  right: 0,\n  bottom: 0,\n};\n\nconst componentIDToStyleOverrides: Map<number, Object> = new Map();\n\nfunction measureStyle(\n  agent: Agent,\n  bridge: BackendBridge,\n  resolveNativeStyle: ResolveNativeStyle,\n  id: number,\n  rendererID: RendererID,\n) {\n  const data = agent.getInstanceAndStyle({id, rendererID});\n  if (!data || !data.style) {\n    bridge.send(\n      'NativeStyleEditor_styleAndLayout',\n      ({\n        id,\n        layout: null,\n        style: null,\n      }: StyleAndLayout),\n    );\n    return;\n  }\n\n  const {instance, style} = data;\n\n  let resolvedStyle = resolveNativeStyle(style);\n\n  // If it's a host component we edited before, amend styles.\n  const styleOverrides = componentIDToStyleOverrides.get(id);\n  if (styleOverrides != null) {\n    resolvedStyle = Object.assign({}, resolvedStyle, styleOverrides);\n  }\n\n  if (!instance || typeof instance.measure !== 'function') {\n    bridge.send(\n      'NativeStyleEditor_styleAndLayout',\n      ({\n        id,\n        layout: null,\n        style: resolvedStyle || null,\n      }: StyleAndLayout),\n    );\n    return;\n  }\n\n  instance.measure((x, y, width, height, left, top) => {\n    // RN Android sometimes returns undefined here. Don't send measurements in this case.\n    // https://github.com/jhen0409/react-native-debugger/issues/84#issuecomment-304611817\n    if (typeof x !== 'number') {\n      bridge.send(\n        'NativeStyleEditor_styleAndLayout',\n        ({\n          id,\n          layout: null,\n          style: resolvedStyle || null,\n        }: StyleAndLayout),\n      );\n      return;\n    }\n    const margin =\n      (resolvedStyle != null && resolveBoxStyle('margin', resolvedStyle)) ||\n      EMPTY_BOX_STYLE;\n    const padding =\n      (resolvedStyle != null && resolveBoxStyle('padding', resolvedStyle)) ||\n      EMPTY_BOX_STYLE;\n    bridge.send(\n      'NativeStyleEditor_styleAndLayout',\n      ({\n        id,\n        layout: {\n          x,\n          y,\n          width,\n          height,\n          left,\n          top,\n          margin,\n          padding,\n        },\n        style: resolvedStyle || null,\n      }: StyleAndLayout),\n    );\n  });\n}\n\nfunction shallowClone(object: Object): Object {\n  const cloned: {[string]: $FlowFixMe} = {};\n  for (const n in object) {\n    cloned[n] = object[n];\n  }\n  return cloned;\n}\n\nfunction renameStyle(\n  agent: Agent,\n  id: number,\n  rendererID: RendererID,\n  oldName: string,\n  newName: string,\n  value: string,\n): void {\n  const data = agent.getInstanceAndStyle({id, rendererID});\n  if (!data || !data.style) {\n    return;\n  }\n\n  const {instance, style} = data;\n\n  const newStyle = newName\n    ? {[oldName]: undefined, [newName]: value}\n    : {[oldName]: undefined};\n\n  let customStyle;\n\n  // TODO It would be nice if the renderer interface abstracted this away somehow.\n  if (instance !== null && typeof instance.setNativeProps === 'function') {\n    // In the case of a host component, we need to use setNativeProps().\n    // Remember to \"correct\" resolved styles when we read them next time.\n    const styleOverrides = componentIDToStyleOverrides.get(id);\n    if (!styleOverrides) {\n      componentIDToStyleOverrides.set(id, newStyle);\n    } else {\n      Object.assign(styleOverrides, newStyle);\n    }\n    // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n    instance.setNativeProps({style: newStyle});\n  } else if (isArray(style)) {\n    const lastIndex = style.length - 1;\n    if (typeof style[lastIndex] === 'object' && !isArray(style[lastIndex])) {\n      customStyle = shallowClone(style[lastIndex]);\n      delete customStyle[oldName];\n      if (newName) {\n        customStyle[newName] = value;\n      } else {\n        customStyle[oldName] = undefined;\n      }\n\n      agent.overrideValueAtPath({\n        type: 'props',\n        id,\n        rendererID,\n        path: ['style', lastIndex],\n        value: customStyle,\n      });\n    } else {\n      agent.overrideValueAtPath({\n        type: 'props',\n        id,\n        rendererID,\n        path: ['style'],\n        value: style.concat([newStyle]),\n      });\n    }\n  } else if (typeof style === 'object') {\n    customStyle = shallowClone(style);\n    delete customStyle[oldName];\n    if (newName) {\n      customStyle[newName] = value;\n    } else {\n      customStyle[oldName] = undefined;\n    }\n\n    agent.overrideValueAtPath({\n      type: 'props',\n      id,\n      rendererID,\n      path: ['style'],\n      value: customStyle,\n    });\n  } else {\n    agent.overrideValueAtPath({\n      type: 'props',\n      id,\n      rendererID,\n      path: ['style'],\n      value: [style, newStyle],\n    });\n  }\n\n  agent.emit('hideNativeHighlight');\n}\n\nfunction setStyle(\n  agent: Agent,\n  id: number,\n  rendererID: RendererID,\n  name: string,\n  value: string,\n) {\n  const data = agent.getInstanceAndStyle({id, rendererID});\n  if (!data || !data.style) {\n    return;\n  }\n\n  const {instance, style} = data;\n  const newStyle = {[name]: value};\n\n  // TODO It would be nice if the renderer interface abstracted this away somehow.\n  if (instance !== null && typeof instance.setNativeProps === 'function') {\n    // In the case of a host component, we need to use setNativeProps().\n    // Remember to \"correct\" resolved styles when we read them next time.\n    const styleOverrides = componentIDToStyleOverrides.get(id);\n    if (!styleOverrides) {\n      componentIDToStyleOverrides.set(id, newStyle);\n    } else {\n      Object.assign(styleOverrides, newStyle);\n    }\n    // TODO Fabric does not support setNativeProps; chat with Sebastian or Eli\n    instance.setNativeProps({style: newStyle});\n  } else if (isArray(style)) {\n    const lastLength = style.length - 1;\n    if (typeof style[lastLength] === 'object' && !isArray(style[lastLength])) {\n      agent.overrideValueAtPath({\n        type: 'props',\n        id,\n        rendererID,\n        path: ['style', lastLength, name],\n        value,\n      });\n    } else {\n      agent.overrideValueAtPath({\n        type: 'props',\n        id,\n        rendererID,\n        path: ['style'],\n        value: style.concat([newStyle]),\n      });\n    }\n  } else {\n    agent.overrideValueAtPath({\n      type: 'props',\n      id,\n      rendererID,\n      path: ['style'],\n      value: [style, newStyle],\n    });\n  }\n\n  agent.emit('hideNativeHighlight');\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport type {ConsolePatchSettings} from 'react-devtools-shared/src/backend/types';\nimport {writeConsolePatchSettingsToWindow} from 'react-devtools-shared/src/backend/console';\nimport {castBool, castBrowserTheme} from 'react-devtools-shared/src/utils';\n\n// Note: all keys should be optional in this type, because users can use newer\n// versions of React DevTools with older versions of React Native, and the object\n// provided by React Native may not include all of this type's fields.\nexport type DevToolsSettingsManager = {\n  getConsolePatchSettings: ?() => string,\n  setConsolePatchSettings: ?(key: string) => void,\n};\n\nexport function initializeUsingCachedSettings(\n  devToolsSettingsManager: DevToolsSettingsManager,\n) {\n  initializeConsolePatchSettings(devToolsSettingsManager);\n}\n\nfunction initializeConsolePatchSettings(\n  devToolsSettingsManager: DevToolsSettingsManager,\n) {\n  if (devToolsSettingsManager.getConsolePatchSettings == null) {\n    return;\n  }\n  const consolePatchSettingsString =\n    devToolsSettingsManager.getConsolePatchSettings();\n  if (consolePatchSettingsString == null) {\n    return;\n  }\n  const parsedConsolePatchSettings = parseConsolePatchSettings(\n    consolePatchSettingsString,\n  );\n  if (parsedConsolePatchSettings == null) {\n    return;\n  }\n  writeConsolePatchSettingsToWindow(parsedConsolePatchSettings);\n}\n\nfunction parseConsolePatchSettings(\n  consolePatchSettingsString: string,\n): ?ConsolePatchSettings {\n  const parsedValue = JSON.parse(consolePatchSettingsString ?? '{}');\n  const {\n    appendComponentStack,\n    breakOnConsoleErrors,\n    showInlineWarningsAndErrors,\n    hideConsoleLogsInStrictMode,\n    browserTheme,\n  } = parsedValue;\n  return {\n    appendComponentStack: castBool(appendComponentStack) ?? true,\n    breakOnConsoleErrors: castBool(breakOnConsoleErrors) ?? false,\n    showInlineWarningsAndErrors: castBool(showInlineWarningsAndErrors) ?? true,\n    hideConsoleLogsInStrictMode: castBool(hideConsoleLogsInStrictMode) ?? false,\n    browserTheme: castBrowserTheme(browserTheme) ?? 'dark',\n  };\n}\n\nexport function cacheConsolePatchSettings(\n  devToolsSettingsManager: DevToolsSettingsManager,\n  value: ConsolePatchSettings,\n): void {\n  if (devToolsSettingsManager.setConsolePatchSettings == null) {\n    return;\n  }\n  devToolsSettingsManager.setConsolePatchSettings(JSON.stringify(value));\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport Agent from 'react-devtools-shared/src/backend/agent';\nimport Bridge from 'react-devtools-shared/src/bridge';\nimport {installHook} from 'react-devtools-shared/src/hook';\nimport {initBackend} from 'react-devtools-shared/src/backend';\nimport {installConsoleFunctionsToWindow} from 'react-devtools-shared/src/backend/console';\nimport {__DEBUG__} from 'react-devtools-shared/src/constants';\nimport setupNativeStyleEditor from 'react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor';\nimport {getDefaultComponentFilters} from 'react-devtools-shared/src/utils';\nimport {\n  initializeUsingCachedSettings,\n  cacheConsolePatchSettings,\n  type DevToolsSettingsManager,\n} from './cachedSettings';\n\nimport type {BackendBridge} from 'react-devtools-shared/src/bridge';\nimport type {\n  ComponentFilter,\n  Wall,\n} from 'react-devtools-shared/src/frontend/types';\nimport type {DevToolsHook} from 'react-devtools-shared/src/backend/types';\nimport type {ResolveNativeStyle} from 'react-devtools-shared/src/backend/NativeStyleEditor/setupNativeStyleEditor';\n\ntype ConnectOptions = {\n  host?: string,\n  nativeStyleEditorValidAttributes?: $ReadOnlyArray<string>,\n  port?: number,\n  useHttps?: boolean,\n  resolveRNStyle?: ResolveNativeStyle,\n  retryConnectionDelay?: number,\n  isAppActive?: () => boolean,\n  websocket?: ?WebSocket,\n  devToolsSettingsManager: ?DevToolsSettingsManager,\n};\n\n// Install a global variable to allow patching console early (during injection).\n// This provides React Native developers with components stacks even if they don't run DevTools.\ninstallConsoleFunctionsToWindow();\ninstallHook(window);\n\nconst hook: ?DevToolsHook = window.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\nlet savedComponentFilters: Array<ComponentFilter> =\n  getDefaultComponentFilters();\n\nfunction debug(methodName: string, ...args: Array<mixed>) {\n  if (__DEBUG__) {\n    console.log(\n      `%c[core/backend] %c${methodName}`,\n      'color: teal; font-weight: bold;',\n      'font-weight: bold;',\n      ...args,\n    );\n  }\n}\n\nexport function connectToDevTools(options: ?ConnectOptions) {\n  if (hook == null) {\n    // DevTools didn't get injected into this page (maybe b'c of the contentType).\n    return;\n  }\n  const {\n    host = 'localhost',\n    nativeStyleEditorValidAttributes,\n    useHttps = false,\n    port = 8097,\n    websocket,\n    resolveRNStyle = (null: $FlowFixMe),\n    retryConnectionDelay = 2000,\n    isAppActive = () => true,\n    devToolsSettingsManager,\n  } = options || {};\n\n  const protocol = useHttps ? 'wss' : 'ws';\n  let retryTimeoutID: TimeoutID | null = null;\n\n  function scheduleRetry() {\n    if (retryTimeoutID === null) {\n      // Two seconds because RN had issues with quick retries.\n      retryTimeoutID = setTimeout(\n        () => connectToDevTools(options),\n        retryConnectionDelay,\n      );\n    }\n  }\n\n  if (devToolsSettingsManager != null) {\n    try {\n      initializeUsingCachedSettings(devToolsSettingsManager);\n    } catch (e) {\n      // If we call a method on devToolsSettingsManager that throws, or if\n      // is invalid data read out, don't throw and don't interrupt initialization\n      console.error(e);\n    }\n  }\n\n  if (!isAppActive()) {\n    // If the app is in background, maybe retry later.\n    // Don't actually attempt to connect until we're in foreground.\n    scheduleRetry();\n    return;\n  }\n\n  let bridge: BackendBridge | null = null;\n\n  const messageListeners = [];\n  const uri = protocol + '://' + host + ':' + port;\n\n  // If existing websocket is passed, use it.\n  // This is necessary to support our custom integrations.\n  // See D6251744.\n  const ws = websocket ? websocket : new window.WebSocket(uri);\n  ws.onclose = handleClose;\n  ws.onerror = handleFailed;\n  ws.onmessage = handleMessage;\n  ws.onopen = function () {\n    bridge = new Bridge({\n      listen(fn) {\n        messageListeners.push(fn);\n        return () => {\n          const index = messageListeners.indexOf(fn);\n          if (index >= 0) {\n            messageListeners.splice(index, 1);\n          }\n        };\n      },\n      send(event: string, payload: any, transferable?: Array<any>) {\n        if (ws.readyState === ws.OPEN) {\n          if (__DEBUG__) {\n            debug('wall.send()', event, payload);\n          }\n\n          ws.send(JSON.stringify({event, payload}));\n        } else {\n          if (__DEBUG__) {\n            debug(\n              'wall.send()',\n              'Shutting down bridge because of closed WebSocket connection',\n            );\n          }\n\n          if (bridge !== null) {\n            bridge.shutdown();\n          }\n\n          scheduleRetry();\n        }\n      },\n    });\n    bridge.addListener(\n      'updateComponentFilters',\n      (componentFilters: Array<ComponentFilter>) => {\n        // Save filter changes in memory, in case DevTools is reloaded.\n        // In that case, the renderer will already be using the updated values.\n        // We'll lose these in between backend reloads but that can't be helped.\n        savedComponentFilters = componentFilters;\n      },\n    );\n\n    if (devToolsSettingsManager != null && bridge != null) {\n      bridge.addListener('updateConsolePatchSettings', consolePatchSettings =>\n        cacheConsolePatchSettings(\n          devToolsSettingsManager,\n          consolePatchSettings,\n        ),\n      );\n    }\n\n    // The renderer interface doesn't read saved component filters directly,\n    // because they are generally stored in localStorage within the context of the extension.\n    // Because of this it relies on the extension to pass filters.\n    // In the case of the standalone DevTools being used with a website,\n    // saved filters are injected along with the backend script tag so we shouldn't override them here.\n    // This injection strategy doesn't work for React Native though.\n    // Ideally the backend would save the filters itself, but RN doesn't provide a sync storage solution.\n    // So for now we just fall back to using the default filters...\n    if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ == null) {\n      // $FlowFixMe[incompatible-use] found when upgrading Flow\n      bridge.send('overrideComponentFilters', savedComponentFilters);\n    }\n\n    // TODO (npm-packages) Warn if \"isBackendStorageAPISupported\"\n    // $FlowFixMe[incompatible-call] found when upgrading Flow\n    const agent = new Agent(bridge);\n    agent.addListener('shutdown', () => {\n      // If we received 'shutdown' from `agent`, we assume the `bridge` is already shutting down,\n      // and that caused the 'shutdown' event on the `agent`, so we don't need to call `bridge.shutdown()` here.\n      hook.emit('shutdown');\n    });\n\n    initBackend(hook, agent, window);\n\n    // Setup React Native style editor if the environment supports it.\n    if (resolveRNStyle != null || hook.resolveRNStyle != null) {\n      setupNativeStyleEditor(\n        // $FlowFixMe[incompatible-call] found when upgrading Flow\n        bridge,\n        agent,\n        ((resolveRNStyle || hook.resolveRNStyle: any): ResolveNativeStyle),\n        nativeStyleEditorValidAttributes ||\n          hook.nativeStyleEditorValidAttributes ||\n          null,\n      );\n    } else {\n      // Otherwise listen to detect if the environment later supports it.\n      // For example, Flipper does not eagerly inject these values.\n      // Instead it relies on the React Native Inspector to lazily inject them.\n      let lazyResolveRNStyle;\n      let lazyNativeStyleEditorValidAttributes;\n\n      const initAfterTick = () => {\n        if (bridge !== null) {\n          setupNativeStyleEditor(\n            bridge,\n            agent,\n            lazyResolveRNStyle,\n            lazyNativeStyleEditorValidAttributes,\n          );\n        }\n      };\n\n      if (!hook.hasOwnProperty('resolveRNStyle')) {\n        Object.defineProperty(\n          hook,\n          'resolveRNStyle',\n          ({\n            enumerable: false,\n            get() {\n              return lazyResolveRNStyle;\n            },\n            set(value: $FlowFixMe) {\n              lazyResolveRNStyle = value;\n              initAfterTick();\n            },\n          }: Object),\n        );\n      }\n      if (!hook.hasOwnProperty('nativeStyleEditorValidAttributes')) {\n        Object.defineProperty(\n          hook,\n          'nativeStyleEditorValidAttributes',\n          ({\n            enumerable: false,\n            get() {\n              return lazyNativeStyleEditorValidAttributes;\n            },\n            set(value: $FlowFixMe) {\n              lazyNativeStyleEditorValidAttributes = value;\n              initAfterTick();\n            },\n          }: Object),\n        );\n      }\n    }\n  };\n\n  function handleClose() {\n    if (__DEBUG__) {\n      debug('WebSocket.onclose');\n    }\n\n    if (bridge !== null) {\n      bridge.emit('shutdown');\n    }\n\n    scheduleRetry();\n  }\n\n  function handleFailed() {\n    if (__DEBUG__) {\n      debug('WebSocket.onerror');\n    }\n\n    scheduleRetry();\n  }\n\n  function handleMessage(event: MessageEvent) {\n    let data;\n    try {\n      if (typeof event.data === 'string') {\n        data = JSON.parse(event.data);\n        if (__DEBUG__) {\n          debug('WebSocket.onmessage', data);\n        }\n      } else {\n        throw Error();\n      }\n    } catch (e) {\n      console.error(\n        '[React DevTools] Failed to parse JSON: ' + (event.data: any),\n      );\n      return;\n    }\n    messageListeners.forEach(fn => {\n      try {\n        fn(data);\n      } catch (error) {\n        // jsc doesn't play so well with tracebacks that go into eval'd code,\n        // so the stack trace here will stop at the `eval()` call. Getting the\n        // message that caused the error is the best we can do for now.\n        console.log('[React DevTools] Error calling listener', data);\n        console.log('error:', error);\n        throw error;\n      }\n    });\n  }\n}\n\ntype ConnectWithCustomMessagingOptions = {\n  onSubscribe: (cb: Function) => void,\n  onUnsubscribe: (cb: Function) => void,\n  onMessage: (event: string, payload: any) => void,\n  settingsManager: ?DevToolsSettingsManager,\n  nativeStyleEditorValidAttributes?: $ReadOnlyArray<string>,\n  resolveRNStyle?: ResolveNativeStyle,\n};\n\nexport function connectWithCustomMessagingProtocol({\n  onSubscribe,\n  onUnsubscribe,\n  onMessage,\n  settingsManager,\n  nativeStyleEditorValidAttributes,\n  resolveRNStyle,\n}: ConnectWithCustomMessagingOptions): Function {\n  if (hook == null) {\n    // DevTools didn't get injected into this page (maybe b'c of the contentType).\n    return;\n  }\n\n  if (settingsManager != null) {\n    try {\n      initializeUsingCachedSettings(settingsManager);\n    } catch (e) {\n      // If we call a method on devToolsSettingsManager that throws, or if\n      // is invalid data read out, don't throw and don't interrupt initialization\n      console.error(e);\n    }\n  }\n\n  const wall: Wall = {\n    listen(fn: Function) {\n      onSubscribe(fn);\n\n      return () => {\n        onUnsubscribe(fn);\n      };\n    },\n    send(event: string, payload: any) {\n      onMessage(event, payload);\n    },\n  };\n\n  const bridge: BackendBridge = new Bridge(wall);\n\n  bridge.addListener(\n    'updateComponentFilters',\n    (componentFilters: Array<ComponentFilter>) => {\n      // Save filter changes in memory, in case DevTools is reloaded.\n      // In that case, the renderer will already be using the updated values.\n      // We'll lose these in between backend reloads but that can't be helped.\n      savedComponentFilters = componentFilters;\n    },\n  );\n\n  if (settingsManager != null) {\n    bridge.addListener('updateConsolePatchSettings', consolePatchSettings =>\n      cacheConsolePatchSettings(settingsManager, consolePatchSettings),\n    );\n  }\n\n  if (window.__REACT_DEVTOOLS_COMPONENT_FILTERS__ == null) {\n    bridge.send('overrideComponentFilters', savedComponentFilters);\n  }\n\n  const agent = new Agent(bridge);\n  agent.addListener('shutdown', () => {\n    // If we received 'shutdown' from `agent`, we assume the `bridge` is already shutting down,\n    // and that caused the 'shutdown' event on the `agent`, so we don't need to call `bridge.shutdown()` here.\n    hook.emit('shutdown');\n  });\n\n  const unsubscribeBackend = initBackend(hook, agent, window);\n\n  const nativeStyleResolver: ResolveNativeStyle | void =\n    resolveRNStyle || hook.resolveRNStyle;\n\n  if (nativeStyleResolver != null) {\n    const validAttributes =\n      nativeStyleEditorValidAttributes ||\n      hook.nativeStyleEditorValidAttributes ||\n      null;\n\n    setupNativeStyleEditor(bridge, agent, nativeStyleResolver, validAttributes);\n  }\n\n  return unsubscribeBackend;\n}\n"]}